@webiny/ai-powerups 0.0.0-unstable.0d717d18dd
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 +45 -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/compareEntryRevisions/CompareEntryRevisionsGateway.d.ts +12 -0
- package/admin/features/compareEntryRevisions/CompareEntryRevisionsGateway.js +46 -0
- package/admin/features/compareEntryRevisions/CompareEntryRevisionsGateway.js.map +1 -0
- package/admin/features/compareEntryRevisions/CompareEntryRevisionsRepository.d.ts +11 -0
- package/admin/features/compareEntryRevisions/CompareEntryRevisionsRepository.js +18 -0
- package/admin/features/compareEntryRevisions/CompareEntryRevisionsRepository.js.map +1 -0
- package/admin/features/compareEntryRevisions/CompareEntryRevisionsUseCase.d.ts +11 -0
- package/admin/features/compareEntryRevisions/CompareEntryRevisionsUseCase.js +18 -0
- package/admin/features/compareEntryRevisions/CompareEntryRevisionsUseCase.js.map +1 -0
- package/admin/features/compareEntryRevisions/abstractions.d.ts +32 -0
- package/admin/features/compareEntryRevisions/abstractions.js +7 -0
- package/admin/features/compareEntryRevisions/abstractions.js.map +1 -0
- package/admin/features/compareEntryRevisions/feature.d.ts +1 -0
- package/admin/features/compareEntryRevisions/feature.js +15 -0
- package/admin/features/compareEntryRevisions/feature.js.map +1 -0
- package/admin/features/compareEntryRevisions/index.d.ts +2 -0
- package/admin/features/compareEntryRevisions/index.js +2 -0
- package/admin/features/feature.d.ts +1 -0
- package/admin/features/feature.js +24 -0
- package/admin/features/feature.js.map +1 -0
- package/admin/features/generateEntryContent/GenerateEntryContentGateway.d.ts +12 -0
- package/admin/features/generateEntryContent/GenerateEntryContentGateway.js +45 -0
- package/admin/features/generateEntryContent/GenerateEntryContentGateway.js.map +1 -0
- package/admin/features/generateEntryContent/GenerateEntryContentUseCase.d.ts +11 -0
- package/admin/features/generateEntryContent/GenerateEntryContentUseCase.js +18 -0
- package/admin/features/generateEntryContent/GenerateEntryContentUseCase.js.map +1 -0
- package/admin/features/generateEntryContent/abstractions.d.ts +24 -0
- package/admin/features/generateEntryContent/abstractions.js +6 -0
- package/admin/features/generateEntryContent/abstractions.js.map +1 -0
- package/admin/features/generateEntryContent/feature.d.ts +1 -0
- package/admin/features/generateEntryContent/feature.js +13 -0
- package/admin/features/generateEntryContent/feature.js.map +1 -0
- package/admin/features/generateEntryContent/index.d.ts +3 -0
- package/admin/features/generateEntryContent/index.js +2 -0
- package/admin/features/generatePageContent/GeneratePageContentGateway.d.ts +12 -0
- package/admin/features/generatePageContent/GeneratePageContentGateway.js +47 -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 +25 -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 +49 -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/AiPromptFormFactory/AiPromptFormFactory.d.ts +20 -0
- package/admin/presentation/AiPromptFormFactory/AiPromptFormFactory.js +108 -0
- package/admin/presentation/AiPromptFormFactory/AiPromptFormFactory.js.map +1 -0
- package/admin/presentation/AiPromptFormFactory/abstractions.d.ts +14 -0
- package/admin/presentation/AiPromptFormFactory/abstractions.js +5 -0
- package/admin/presentation/AiPromptFormFactory/abstractions.js.map +1 -0
- package/admin/presentation/AiPromptFormFactory/feature.d.ts +1 -0
- package/admin/presentation/AiPromptFormFactory/feature.js +11 -0
- package/admin/presentation/AiPromptFormFactory/feature.js.map +1 -0
- package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsDialog.d.ts +9 -0
- package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsDialog.js +118 -0
- package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsDialog.js.map +1 -0
- package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsDrawer.d.ts +9 -0
- package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsDrawer.js +72 -0
- package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsDrawer.js.map +1 -0
- package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsMenuItem.d.ts +4 -0
- package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsMenuItem.js +21 -0
- package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsMenuItem.js.map +1 -0
- package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsOverlays.d.ts +2 -0
- package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsOverlays.js +17 -0
- package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsOverlays.js.map +1 -0
- package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsPresenter.d.ts +25 -0
- package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsPresenter.js +90 -0
- package/admin/presentation/CmsCompareEntryRevisions/CmsCompareEntryRevisionsPresenter.js.map +1 -0
- package/admin/presentation/CmsCompareEntryRevisions/Extension.d.ts +2 -0
- package/admin/presentation/CmsCompareEntryRevisions/Extension.js +16 -0
- package/admin/presentation/CmsCompareEntryRevisions/Extension.js.map +1 -0
- package/admin/presentation/CmsCompareEntryRevisions/abstractions.d.ts +29 -0
- package/admin/presentation/CmsCompareEntryRevisions/abstractions.js +5 -0
- package/admin/presentation/CmsCompareEntryRevisions/abstractions.js.map +1 -0
- package/admin/presentation/CmsCompareEntryRevisions/feature.d.ts +3 -0
- package/admin/presentation/CmsCompareEntryRevisions/feature.js +17 -0
- package/admin/presentation/CmsCompareEntryRevisions/feature.js.map +1 -0
- package/admin/presentation/CmsContentGeneration/CmsGenerateContentButton.d.ts +4 -0
- package/admin/presentation/CmsContentGeneration/CmsGenerateContentButton.js +27 -0
- package/admin/presentation/CmsContentGeneration/CmsGenerateContentButton.js.map +1 -0
- package/admin/presentation/CmsContentGeneration/CmsGenerateContentDialog.d.ts +5 -0
- package/admin/presentation/CmsContentGeneration/CmsGenerateContentDialog.js +106 -0
- package/admin/presentation/CmsContentGeneration/CmsGenerateContentDialog.js.map +1 -0
- package/admin/presentation/CmsContentGeneration/CmsGenerateContentPresenter.d.ts +29 -0
- package/admin/presentation/CmsContentGeneration/CmsGenerateContentPresenter.js +120 -0
- package/admin/presentation/CmsContentGeneration/CmsGenerateContentPresenter.js.map +1 -0
- package/admin/presentation/CmsContentGeneration/Extension.d.ts +2 -0
- package/admin/presentation/CmsContentGeneration/Extension.js +27 -0
- package/admin/presentation/CmsContentGeneration/Extension.js.map +1 -0
- package/admin/presentation/CmsContentGeneration/abstractions.d.ts +20 -0
- package/admin/presentation/CmsContentGeneration/abstractions.js +5 -0
- package/admin/presentation/CmsContentGeneration/abstractions.js.map +1 -0
- package/admin/presentation/CmsContentGeneration/feature.d.ts +3 -0
- package/admin/presentation/CmsContentGeneration/feature.js +17 -0
- package/admin/presentation/CmsContentGeneration/feature.js.map +1 -0
- package/admin/presentation/CmsEntryWizard/CmsEntryWizard.d.ts +4 -0
- package/admin/presentation/CmsEntryWizard/CmsEntryWizard.js +113 -0
- package/admin/presentation/CmsEntryWizard/CmsEntryWizard.js.map +1 -0
- package/admin/presentation/CmsEntryWizard/CmsEntryWizardGate.d.ts +4 -0
- package/admin/presentation/CmsEntryWizard/CmsEntryWizardGate.js +19 -0
- package/admin/presentation/CmsEntryWizard/CmsEntryWizardGate.js.map +1 -0
- package/admin/presentation/CmsEntryWizard/Extension.d.ts +2 -0
- package/admin/presentation/CmsEntryWizard/Extension.js +10 -0
- package/admin/presentation/CmsEntryWizard/Extension.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 +125 -0
- package/admin/presentation/WbContentGeneration/GenerateContentDialog.js.map +1 -0
- package/admin/presentation/WbContentGeneration/GenerateContentPresenter.d.ts +33 -0
- package/admin/presentation/WbContentGeneration/GenerateContentPresenter.js +161 -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 +31 -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 +45 -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 +13 -0
- package/api/features/AiImageEnrichment/AiImageEnrichmentAfterCreateHandler.js +31 -0
- package/api/features/AiImageEnrichment/AiImageEnrichmentAfterCreateHandler.js.map +1 -0
- package/api/features/AiImageEnrichment/AiImageEnrichmentTask.d.ts +36 -0
- package/api/features/AiImageEnrichment/AiImageEnrichmentTask.js +142 -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 +19 -0
- package/api/features/AiPromptContext/AiPromptContextBuilder.js +147 -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 +71 -0
- package/api/features/AiPromptContext/abstractions.js +15 -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/CmsCompareEntryRevisions/CmsCompareEntryRevisionsUseCase.d.ts +22 -0
- package/api/features/CmsCompareEntryRevisions/CmsCompareEntryRevisionsUseCase.js +136 -0
- package/api/features/CmsCompareEntryRevisions/CmsCompareEntryRevisionsUseCase.js.map +1 -0
- package/api/features/CmsCompareEntryRevisions/abstractions.d.ts +18 -0
- package/api/features/CmsCompareEntryRevisions/abstractions.js +5 -0
- package/api/features/CmsCompareEntryRevisions/abstractions.js.map +1 -0
- package/api/features/CmsCompareEntryRevisions/feature.d.ts +4 -0
- package/api/features/CmsCompareEntryRevisions/feature.js +11 -0
- package/api/features/CmsCompareEntryRevisions/feature.js.map +1 -0
- package/api/features/CmsCompareEntryRevisions/index.d.ts +2 -0
- package/api/features/CmsCompareEntryRevisions/index.js +2 -0
- package/api/features/CmsGenerateEntryContent/CmsGenerateEntryContentTask.d.ts +33 -0
- package/api/features/CmsGenerateEntryContent/CmsGenerateEntryContentTask.js +84 -0
- package/api/features/CmsGenerateEntryContent/CmsGenerateEntryContentTask.js.map +1 -0
- package/api/features/CmsGenerateEntryContent/CmsGenerateEntryContentUseCase.d.ts +29 -0
- package/api/features/CmsGenerateEntryContent/CmsGenerateEntryContentUseCase.js +141 -0
- package/api/features/CmsGenerateEntryContent/CmsGenerateEntryContentUseCase.js.map +1 -0
- package/api/features/CmsGenerateEntryContent/abstractions.d.ts +36 -0
- package/api/features/CmsGenerateEntryContent/abstractions.js +5 -0
- package/api/features/CmsGenerateEntryContent/abstractions.js.map +1 -0
- package/api/features/CmsGenerateEntryContent/buildPrompt.d.ts +2 -0
- package/api/features/CmsGenerateEntryContent/buildPrompt.js +61 -0
- package/api/features/CmsGenerateEntryContent/buildPrompt.js.map +1 -0
- package/api/features/CmsGenerateEntryContent/feature.d.ts +4 -0
- package/api/features/CmsGenerateEntryContent/feature.js +13 -0
- package/api/features/CmsGenerateEntryContent/feature.js.map +1 -0
- package/api/features/CmsGenerateEntryContent/index.d.ts +1 -0
- package/api/features/CmsGenerateEntryContent/index.js +1 -0
- package/api/features/CmsGenerateEntryContent/injectDynamicZoneTypenames.d.ts +2 -0
- package/api/features/CmsGenerateEntryContent/injectDynamicZoneTypenames.js +30 -0
- package/api/features/CmsGenerateEntryContent/injectDynamicZoneTypenames.js.map +1 -0
- package/api/features/CmsResolveImageTool/CmsResolveImageTool.d.ts +14 -0
- package/api/features/CmsResolveImageTool/CmsResolveImageTool.js +27 -0
- package/api/features/CmsResolveImageTool/CmsResolveImageTool.js.map +1 -0
- package/api/features/CmsResolveImageTool/feature.d.ts +4 -0
- package/api/features/CmsResolveImageTool/feature.js +11 -0
- package/api/features/CmsResolveImageTool/feature.js.map +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 +2 -0
- package/api/features/GetSettings/index.js +2 -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/ComponentFilter.d.ts +18 -0
- package/api/features/WbGeneratePageContent/ComponentFilter.js +69 -0
- package/api/features/WbGeneratePageContent/ComponentFilter.js.map +1 -0
- package/api/features/WbGeneratePageContent/LlmJsonResponse.d.ts +7 -0
- package/api/features/WbGeneratePageContent/LlmJsonResponse.js +35 -0
- package/api/features/WbGeneratePageContent/LlmJsonResponse.js.map +1 -0
- package/api/features/WbGeneratePageContent/WbGeneratePageContentTask.d.ts +34 -0
- package/api/features/WbGeneratePageContent/WbGeneratePageContentTask.js +85 -0
- package/api/features/WbGeneratePageContent/WbGeneratePageContentTask.js.map +1 -0
- package/api/features/WbGeneratePageContent/WbGeneratePageContentUseCase.d.ts +23 -0
- package/api/features/WbGeneratePageContent/WbGeneratePageContentUseCase.js +121 -0
- package/api/features/WbGeneratePageContent/WbGeneratePageContentUseCase.js.map +1 -0
- package/api/features/WbGeneratePageContent/abstractions.d.ts +31 -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 +3 -0
- package/api/features/WbGeneratePageContent/buildPrompt.js +158 -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/WbTranslatePage/LexicalParser.d.ts +10 -0
- package/api/features/WbTranslatePage/LexicalParser.js +37 -0
- package/api/features/WbTranslatePage/LexicalParser.js.map +1 -0
- package/api/features/WbTranslatePage/WbTranslatePageDecorator.d.ts +27 -0
- package/api/features/WbTranslatePage/WbTranslatePageDecorator.js +134 -0
- package/api/features/WbTranslatePage/WbTranslatePageDecorator.js.map +1 -0
- package/api/features/WbTranslatePage/abstractions/LexicalParser.d.ts +7 -0
- package/api/features/WbTranslatePage/abstractions/LexicalParser.js +5 -0
- package/api/features/WbTranslatePage/abstractions/LexicalParser.js.map +1 -0
- package/api/features/WbTranslatePage/feature.d.ts +4 -0
- package/api/features/WbTranslatePage/feature.js +13 -0
- package/api/features/WbTranslatePage/feature.js.map +1 -0
- package/api/features/WbTranslatePage/index.d.ts +2 -0
- package/api/features/WbTranslatePage/index.js +2 -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 +172 -0
- package/api/graphql/BaseGraphQLSchema.js.map +1 -0
- package/api/graphql/CmsCompareEntryRevisionsSchema.d.ts +8 -0
- package/api/graphql/CmsCompareEntryRevisionsSchema.js +68 -0
- package/api/graphql/CmsCompareEntryRevisionsSchema.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/exports/admin/ai-powerups.d.ts +1 -0
- package/exports/admin/ai-powerups.js +1 -0
- package/exports/api/ai-powerups.d.ts +2 -0
- package/exports/api/ai-powerups.js +2 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import set from "lodash/set";
|
|
2
|
+
import { Result } from "@webiny/feature/api";
|
|
3
|
+
import { Ai } from "@webiny/api-core/features/ai/index.js";
|
|
4
|
+
import { Encryption } from "@webiny/api-core/features/encryption/index.js";
|
|
5
|
+
import { GetDefaultLanguageUseCase } from "@webiny/languages/exports/api/languages.js";
|
|
6
|
+
import { TranslatePageUseCase } from "@webiny/api-website-builder/features/pages/TranslatePage/index.js";
|
|
7
|
+
import { UpdatePageRepository } from "@webiny/api-website-builder/features/pages/UpdatePage/abstractions.js";
|
|
8
|
+
import { GetSettingsUseCase } from "../GetSettings/index.js";
|
|
9
|
+
import { LexicalParser } from "./abstractions/LexicalParser.js";
|
|
10
|
+
class WbTranslatePageDecoratorImpl {
|
|
11
|
+
constructor(getDefaultLanguage, getSettings, ai, encryption, lexicalParser, updatePageRepository, decoratee){
|
|
12
|
+
this.getDefaultLanguage = getDefaultLanguage;
|
|
13
|
+
this.getSettings = getSettings;
|
|
14
|
+
this.ai = ai;
|
|
15
|
+
this.encryption = encryption;
|
|
16
|
+
this.lexicalParser = lexicalParser;
|
|
17
|
+
this.updatePageRepository = updatePageRepository;
|
|
18
|
+
this.decoratee = decoratee;
|
|
19
|
+
}
|
|
20
|
+
async execute(params) {
|
|
21
|
+
const result = await this.decoratee.execute(params);
|
|
22
|
+
if (result.isFail()) return result;
|
|
23
|
+
const page = result.value;
|
|
24
|
+
const sourceLanguage = await this.resolveSourceLanguage(page);
|
|
25
|
+
const translations = await this.translate(page, sourceLanguage, params.languageCode);
|
|
26
|
+
if (!translations) return Result.ok(page);
|
|
27
|
+
const updateData = await this.buildUpdateData(page, translations);
|
|
28
|
+
const updateResult = await this.updatePageRepository.execute(page.id, updateData);
|
|
29
|
+
if (updateResult.isFail()) return Result.ok(page);
|
|
30
|
+
return Result.ok(updateResult.value);
|
|
31
|
+
}
|
|
32
|
+
async resolveSourceLanguage(page) {
|
|
33
|
+
if (page.properties["sourcePage"]) return page.properties["language"] ?? "en";
|
|
34
|
+
const result = await this.getDefaultLanguage.execute();
|
|
35
|
+
if (result.isOk()) return result.value.code;
|
|
36
|
+
return "en";
|
|
37
|
+
}
|
|
38
|
+
async translate(page, sourceLanguage, targetLanguage) {
|
|
39
|
+
const settingsResult = await this.getSettings.execute();
|
|
40
|
+
if (settingsResult.isFail()) return null;
|
|
41
|
+
const settings = settingsResult.value;
|
|
42
|
+
const firstProvider = settings.providers.presets[0];
|
|
43
|
+
if (!firstProvider) return null;
|
|
44
|
+
const apiKey = await this.encryption.decrypt(firstProvider.apiKeyEncrypted);
|
|
45
|
+
const properties = {
|
|
46
|
+
title: page.properties["title"],
|
|
47
|
+
snippet: page.properties["snippet"],
|
|
48
|
+
pathSlug: page.properties["title"]
|
|
49
|
+
};
|
|
50
|
+
const bindings = this.extractBindings(page.bindings);
|
|
51
|
+
const input = JSON.stringify({
|
|
52
|
+
properties,
|
|
53
|
+
bindings
|
|
54
|
+
});
|
|
55
|
+
const result = await this.ai.generateText({
|
|
56
|
+
model: firstProvider.model,
|
|
57
|
+
connection: {
|
|
58
|
+
sdkName: firstProvider.model.split("/")[0],
|
|
59
|
+
apiKey
|
|
60
|
+
},
|
|
61
|
+
system: `You are a professional translator. Translate all user-provided text to language code "${targetLanguage}", preserving placeholders and formatting. Return a JSON object with the same keys, only changing the values.`,
|
|
62
|
+
prompt: `Translate given key-value pairs from "${sourceLanguage}" to language code "${targetLanguage}". Do not modify the keys. "properties" is a simple key-value pair. "bindings" values are located in the "value" key. ${input}`,
|
|
63
|
+
temperature: 0.3
|
|
64
|
+
});
|
|
65
|
+
try {
|
|
66
|
+
return JSON.parse(result.text);
|
|
67
|
+
} catch {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
extractBindings(bindings) {
|
|
72
|
+
const result = {};
|
|
73
|
+
for(const elementId in bindings){
|
|
74
|
+
const element = bindings[elementId];
|
|
75
|
+
const inputs = element.inputs;
|
|
76
|
+
if (inputs) for(const inputName in inputs){
|
|
77
|
+
const input = inputs[inputName];
|
|
78
|
+
if ("text" === input.type || "longText" === input.type) result[`${elementId}.inputs.${inputName}`] = {
|
|
79
|
+
type: input.type,
|
|
80
|
+
value: input.static
|
|
81
|
+
};
|
|
82
|
+
else if ("lexical" === input.type && input.static?.html) result[`${elementId}.inputs.${inputName}`] = {
|
|
83
|
+
type: input.type,
|
|
84
|
+
value: input.static.html
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return result;
|
|
89
|
+
}
|
|
90
|
+
slugify(text) {
|
|
91
|
+
return text.toLowerCase().normalize("NFKD").replace(/[̀-ͯ]/g, "").replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
92
|
+
}
|
|
93
|
+
async buildUpdateData(page, translations) {
|
|
94
|
+
const properties = {
|
|
95
|
+
...page.properties
|
|
96
|
+
};
|
|
97
|
+
const bindings = structuredClone(page.bindings);
|
|
98
|
+
const translatedPathSlug = translations.properties["pathSlug"];
|
|
99
|
+
delete translations.properties["pathSlug"];
|
|
100
|
+
for (const [key, value] of Object.entries(translations.properties))properties[key] = value;
|
|
101
|
+
if (translatedPathSlug) {
|
|
102
|
+
const slug = this.slugify(translatedPathSlug);
|
|
103
|
+
if (slug) {
|
|
104
|
+
const languageCode = page.properties["language"];
|
|
105
|
+
properties["path"] = `/${languageCode}/${slug}`;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
for (const [key, binding] of Object.entries(translations.bindings))if ("lexical" === binding.type) {
|
|
109
|
+
const state = await this.lexicalParser.parse(binding.value);
|
|
110
|
+
if (state) {
|
|
111
|
+
set(bindings, `${key}.static.state`, JSON.stringify(state));
|
|
112
|
+
set(bindings, `${key}.static.html`, binding.value);
|
|
113
|
+
}
|
|
114
|
+
} else set(bindings, `${key}.static`, binding.value);
|
|
115
|
+
return {
|
|
116
|
+
properties,
|
|
117
|
+
bindings
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
const WbTranslatePageDecorator = TranslatePageUseCase.createDecorator({
|
|
122
|
+
decorator: WbTranslatePageDecoratorImpl,
|
|
123
|
+
dependencies: [
|
|
124
|
+
GetDefaultLanguageUseCase,
|
|
125
|
+
GetSettingsUseCase,
|
|
126
|
+
Ai,
|
|
127
|
+
Encryption,
|
|
128
|
+
LexicalParser,
|
|
129
|
+
UpdatePageRepository
|
|
130
|
+
]
|
|
131
|
+
});
|
|
132
|
+
export { WbTranslatePageDecorator };
|
|
133
|
+
|
|
134
|
+
//# sourceMappingURL=WbTranslatePageDecorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/WbTranslatePage/WbTranslatePageDecorator.js","sources":["../../../../src/api/features/WbTranslatePage/WbTranslatePageDecorator.ts"],"sourcesContent":["import set from \"lodash/set\";\nimport { Result } from \"@webiny/feature/api\";\nimport { Ai } from \"@webiny/api-core/features/ai/index.js\";\nimport { Encryption } from \"@webiny/api-core/features/encryption/index.js\";\nimport { GetDefaultLanguageUseCase } from \"@webiny/languages/exports/api/languages.js\";\nimport { TranslatePageUseCase } from \"@webiny/api-website-builder/features/pages/TranslatePage/index.js\";\nimport { UpdatePageRepository } from \"@webiny/api-website-builder/features/pages/UpdatePage/abstractions.js\";\nimport type { WbPage } from \"@webiny/api-website-builder/domain/page/abstractions.js\";\nimport { GetSettingsUseCase } from \"~/api/features/GetSettings/index.js\";\nimport { LexicalParser } from \"./abstractions/LexicalParser.js\";\n\ntype InputType = \"text\" | \"longText\" | \"lexical\";\n\ninterface TranslatableBinding {\n type: InputType;\n value: string;\n}\n\ntype TranslatableBindings = Record<string, TranslatableBinding>;\n\ninterface TranslatedBindings {\n [key: string]: { type: InputType; value: string };\n}\n\ninterface TranslatedData {\n properties: Record<string, string>;\n bindings: TranslatedBindings;\n}\n\nclass WbTranslatePageDecoratorImpl implements TranslatePageUseCase.Interface {\n constructor(\n private getDefaultLanguage: GetDefaultLanguageUseCase.Interface,\n private getSettings: GetSettingsUseCase.Interface,\n private ai: Ai.Interface,\n private encryption: Encryption.Interface,\n private lexicalParser: LexicalParser.Interface,\n private updatePageRepository: UpdatePageRepository.Interface,\n private decoratee: TranslatePageUseCase.Interface\n ) {}\n\n async execute(params: TranslatePageUseCase.Params): TranslatePageUseCase.Return {\n const result = await this.decoratee.execute(params);\n if (result.isFail()) {\n return result;\n }\n\n const page = result.value;\n const sourceLanguage = await this.resolveSourceLanguage(page);\n\n const translations = await this.translate(page, sourceLanguage, params.languageCode);\n if (!translations) {\n return Result.ok(page);\n }\n\n const updateData = await this.buildUpdateData(page, translations);\n const updateResult = await this.updatePageRepository.execute(page.id, updateData);\n if (updateResult.isFail()) {\n return Result.ok(page);\n }\n\n return Result.ok(updateResult.value);\n }\n\n private async resolveSourceLanguage(page: WbPage): Promise<string> {\n if (page.properties[\"sourcePage\"]) {\n return page.properties[\"language\"] ?? \"en\";\n }\n\n const result = await this.getDefaultLanguage.execute();\n if (result.isOk()) {\n return result.value.code;\n }\n\n return \"en\";\n }\n\n private async translate(\n page: WbPage,\n sourceLanguage: string,\n targetLanguage: string\n ): Promise<TranslatedData | null> {\n const settingsResult = await this.getSettings.execute();\n if (settingsResult.isFail()) {\n return null;\n }\n\n const settings = settingsResult.value;\n const firstProvider = settings.providers.presets[0];\n\n if (!firstProvider) {\n return null;\n }\n\n const apiKey = await this.encryption.decrypt(firstProvider.apiKeyEncrypted);\n\n const properties = {\n title: page.properties[\"title\"],\n snippet: page.properties[\"snippet\"],\n pathSlug: page.properties[\"title\"]\n };\n const bindings = this.extractBindings(page.bindings);\n const input = JSON.stringify({ properties, bindings });\n\n const result = await this.ai.generateText({\n model: firstProvider.model,\n connection: {\n sdkName: firstProvider.model.split(\"/\")[0],\n apiKey\n },\n system: `You are a professional translator. Translate all user-provided text to language code \"${targetLanguage}\", preserving placeholders and formatting. Return a JSON object with the same keys, only changing the values.`,\n prompt: `Translate given key-value pairs from \"${sourceLanguage}\" to language code \"${targetLanguage}\". Do not modify the keys. \"properties\" is a simple key-value pair. \"bindings\" values are located in the \"value\" key. ${input}`,\n temperature: 0.3\n });\n\n try {\n return JSON.parse(result.text);\n } catch {\n return null;\n }\n }\n\n private extractBindings(bindings: Record<string, any>): TranslatableBindings {\n const result: TranslatableBindings = {};\n\n for (const elementId in bindings) {\n const element = bindings[elementId];\n const inputs = element.inputs;\n if (!inputs) {\n continue;\n }\n\n for (const inputName in inputs) {\n const input = inputs[inputName];\n if (input.type === \"text\" || input.type === \"longText\") {\n result[`${elementId}.inputs.${inputName}`] = {\n type: input.type,\n value: input.static\n };\n } else if (input.type === \"lexical\" && input.static?.html) {\n result[`${elementId}.inputs.${inputName}`] = {\n type: input.type,\n value: input.static.html\n };\n }\n }\n }\n\n return result;\n }\n\n private slugify(text: string): string {\n return text\n .toLowerCase()\n .normalize(\"NFKD\")\n .replace(/[̀-ͯ]/g, \"\")\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n }\n\n private async buildUpdateData(\n page: WbPage,\n translations: TranslatedData\n ): Promise<{ properties: Record<string, any>; bindings: Record<string, any> }> {\n const properties: Record<string, any> = { ...page.properties };\n const bindings: Record<string, any> = structuredClone(page.bindings);\n\n const translatedPathSlug = translations.properties[\"pathSlug\"];\n delete translations.properties[\"pathSlug\"];\n\n for (const [key, value] of Object.entries(translations.properties)) {\n properties[key] = value;\n }\n\n if (translatedPathSlug) {\n const slug = this.slugify(translatedPathSlug);\n if (slug) {\n const languageCode = page.properties[\"language\"];\n properties[\"path\"] = `/${languageCode}/${slug}`;\n }\n }\n\n for (const [key, binding] of Object.entries(translations.bindings)) {\n if (binding.type === \"lexical\") {\n const state = await this.lexicalParser.parse(binding.value);\n if (state) {\n set(bindings, `${key}.static.state`, JSON.stringify(state));\n set(bindings, `${key}.static.html`, binding.value);\n }\n } else {\n set(bindings, `${key}.static`, binding.value);\n }\n }\n\n return { properties, bindings };\n }\n}\n\nexport const WbTranslatePageDecorator = TranslatePageUseCase.createDecorator({\n decorator: WbTranslatePageDecoratorImpl,\n dependencies: [\n GetDefaultLanguageUseCase,\n GetSettingsUseCase,\n Ai,\n Encryption,\n LexicalParser,\n UpdatePageRepository\n ]\n});\n"],"names":["WbTranslatePageDecoratorImpl","getDefaultLanguage","getSettings","ai","encryption","lexicalParser","updatePageRepository","decoratee","params","result","page","sourceLanguage","translations","Result","updateData","updateResult","targetLanguage","settingsResult","settings","firstProvider","apiKey","properties","bindings","input","JSON","elementId","element","inputs","inputName","text","structuredClone","translatedPathSlug","key","value","Object","slug","languageCode","binding","state","set","WbTranslatePageDecorator","TranslatePageUseCase","GetDefaultLanguageUseCase","GetSettingsUseCase","Ai","Encryption","LexicalParser","UpdatePageRepository"],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface ILexicalParser {
|
|
2
|
+
parse(html: string): Promise<Record<string, unknown> | null>;
|
|
3
|
+
}
|
|
4
|
+
export declare const LexicalParser: import("@webiny/di").Abstraction<ILexicalParser>;
|
|
5
|
+
export declare namespace LexicalParser {
|
|
6
|
+
type Interface = ILexicalParser;
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/WbTranslatePage/abstractions/LexicalParser.js","sources":["../../../../../src/api/features/WbTranslatePage/abstractions/LexicalParser.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\n\nexport interface ILexicalParser {\n parse(html: string): Promise<Record<string, unknown> | null>;\n}\n\nexport const LexicalParser = createAbstraction<ILexicalParser>(\n \"AiPowerUps/WbTranslatePage/LexicalParser\"\n);\n\nexport namespace LexicalParser {\n export type Interface = ILexicalParser;\n}\n"],"names":["LexicalParser","createAbstraction"],"mappings":";AAMO,MAAMA,gBAAgBC,kBACzB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { WbTranslatePageDecorator } from "./WbTranslatePageDecorator.js";
|
|
3
|
+
import { LexicalParser } from "./LexicalParser.js";
|
|
4
|
+
const WbTranslatePageFeature = createFeature({
|
|
5
|
+
name: "AiPowerUps/WbTranslatePage",
|
|
6
|
+
register (container) {
|
|
7
|
+
container.register(LexicalParser).inSingletonScope();
|
|
8
|
+
container.registerDecorator(WbTranslatePageDecorator);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
export { WbTranslatePageFeature };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/WbTranslatePage/feature.js","sources":["../../../../src/api/features/WbTranslatePage/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { WbTranslatePageDecorator } from \"./WbTranslatePageDecorator.js\";\nimport { LexicalParser } from \"./LexicalParser.js\";\n\nexport const WbTranslatePageFeature = createFeature({\n name: \"AiPowerUps/WbTranslatePage\",\n register(container) {\n container.register(LexicalParser).inSingletonScope();\n container.registerDecorator(WbTranslatePageDecorator);\n }\n});\n"],"names":["WbTranslatePageFeature","createFeature","container","LexicalParser","WbTranslatePageDecorator"],"mappings":";;;AAIO,MAAMA,yBAAyBC,cAAc;IAChD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,eAAe,gBAAgB;QAClDD,UAAU,iBAAiB,CAACE;IAChC;AACJ"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { AiPowerUpsSettingsGroupHandler } from "../../../api/features/shared/index.js";
|
|
3
|
+
import type { PersistedWriterPersonas, WriterPersonasSettings } from "./types.js";
|
|
4
|
+
declare class WriterPersonasHandlerImpl implements AiPowerUpsSettingsGroupHandler.Interface {
|
|
5
|
+
readonly name = "writerPersonas";
|
|
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): WriterPersonasSettings;
|
|
15
|
+
mapToStorage(internal: unknown): Promise<PersistedWriterPersonas>;
|
|
16
|
+
}
|
|
17
|
+
declare const _default: typeof WriterPersonasHandlerImpl & {
|
|
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 WriterPersonasHandlerImpl {
|
|
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 = "writerPersonas";
|
|
34
|
+
this.inputSchema = inputSchema;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const WriterPersonasHandler = AiPowerUpsSettingsGroupHandler.createImplementation({
|
|
38
|
+
implementation: WriterPersonasHandlerImpl,
|
|
39
|
+
dependencies: []
|
|
40
|
+
});
|
|
41
|
+
export default WriterPersonasHandler;
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=WriterPersonasHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/WriterPersonas/WriterPersonasHandler.js","sources":["../../../../src/api/features/WriterPersonas/WriterPersonasHandler.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { AiPowerUpsSettingsGroupHandler } from \"~/api/features/shared/index.js\";\nimport type { PersistedWriterPersonas, WriterPersonasSettings } 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 WriterPersonasHandlerImpl implements AiPowerUpsSettingsGroupHandler.Interface {\n readonly name = \"writerPersonas\";\n readonly inputSchema = inputSchema;\n\n mapFromStorage(persisted: unknown): WriterPersonasSettings {\n if (!persisted || typeof persisted !== \"object\") {\n return { presets: [] };\n }\n\n const data = persisted as PersistedWriterPersonas;\n return { presets: data.presets ?? [] };\n }\n\n async mapToStorage(internal: unknown): Promise<PersistedWriterPersonas> {\n const input = internal as WriterPersonasSettings;\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: WriterPersonasHandlerImpl,\n dependencies: []\n});\n"],"names":["inputSchema","z","WriterPersonasHandlerImpl","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 WriterPersonasHandler from "./WriterPersonasHandler.js";
|
|
3
|
+
const WriterPersonasFeature = createFeature({
|
|
4
|
+
name: "AiPowerUpsWriterPersonas",
|
|
5
|
+
register (container) {
|
|
6
|
+
container.register(WriterPersonasHandler);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
export { WriterPersonasFeature };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/WriterPersonas/feature.js","sources":["../../../../src/api/features/WriterPersonas/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport WriterPersonasHandler from \"./WriterPersonasHandler.js\";\n\nexport const WriterPersonasFeature = createFeature({\n name: \"AiPowerUpsWriterPersonas\",\n register(container) {\n container.register(WriterPersonasHandler);\n }\n});\n"],"names":["WriterPersonasFeature","createFeature","container","WriterPersonasHandler"],"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 WriterPersonaPreset {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
style?: string;
|
|
7
|
+
}
|
|
8
|
+
declare module "~/api/types.js" {
|
|
9
|
+
interface IAiPowerUpsSettings {
|
|
10
|
+
writerPersonas: {
|
|
11
|
+
presets: WriterPersonaPreset[];
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export type WriterPersonasSettings = IAiPowerUpsSettings["writerPersonas"];
|
|
16
|
+
export interface PersistedWriterPersonaPreset {
|
|
17
|
+
id: string;
|
|
18
|
+
name: string;
|
|
19
|
+
description: string;
|
|
20
|
+
style?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface PersistedWriterPersonas {
|
|
23
|
+
presets: PersistedWriterPersonaPreset[];
|
|
24
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SettingsCacheEntry } from "./abstractions.js";
|
|
2
|
+
import { AiPowerUpsSettingsCache as Abstraction } from "./abstractions.js";
|
|
3
|
+
import type { IAiPowerUpsSettings } from "../../../api/types.js";
|
|
4
|
+
declare class AiPowerUpsSettingsCacheImpl implements Abstraction.Interface {
|
|
5
|
+
private cached;
|
|
6
|
+
get(): SettingsCacheEntry | null;
|
|
7
|
+
set(raw: Record<string, unknown>, mapped: IAiPowerUpsSettings): void;
|
|
8
|
+
}
|
|
9
|
+
export declare const AiPowerUpsSettingsCache: typeof AiPowerUpsSettingsCacheImpl & {
|
|
10
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IAiPowerUpsSettingsCache>;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AiPowerUpsSettingsCache } from "./abstractions.js";
|
|
2
|
+
class AiPowerUpsSettingsCacheImpl {
|
|
3
|
+
get() {
|
|
4
|
+
return this.cached;
|
|
5
|
+
}
|
|
6
|
+
set(raw, mapped) {
|
|
7
|
+
this.cached = {
|
|
8
|
+
raw,
|
|
9
|
+
mapped
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
constructor(){
|
|
13
|
+
this.cached = null;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
const SettingsCache_AiPowerUpsSettingsCache = AiPowerUpsSettingsCache.createImplementation({
|
|
17
|
+
implementation: AiPowerUpsSettingsCacheImpl,
|
|
18
|
+
dependencies: []
|
|
19
|
+
});
|
|
20
|
+
export { SettingsCache_AiPowerUpsSettingsCache as AiPowerUpsSettingsCache };
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=SettingsCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/shared/SettingsCache.js","sources":["../../../../src/api/features/shared/SettingsCache.ts"],"sourcesContent":["import type { SettingsCacheEntry } from \"./abstractions.js\";\nimport { AiPowerUpsSettingsCache as Abstraction } from \"./abstractions.js\";\nimport type { IAiPowerUpsSettings } from \"~/api/types.js\";\n\nclass AiPowerUpsSettingsCacheImpl implements Abstraction.Interface {\n private cached: SettingsCacheEntry | null = null;\n\n get(): SettingsCacheEntry | null {\n return this.cached;\n }\n\n set(raw: Record<string, unknown>, mapped: IAiPowerUpsSettings): void {\n this.cached = { raw, mapped };\n }\n}\n\nexport const AiPowerUpsSettingsCache = Abstraction.createImplementation({\n implementation: AiPowerUpsSettingsCacheImpl,\n dependencies: []\n});\n"],"names":["AiPowerUpsSettingsCacheImpl","raw","mapped","AiPowerUpsSettingsCache","Abstraction"],"mappings":";AAIA,MAAMA;IAGF,MAAiC;QAC7B,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,IAAIC,GAA4B,EAAEC,MAA2B,EAAQ;QACjE,IAAI,CAAC,MAAM,GAAG;YAAED;YAAKC;QAAO;IAChC;;aARQ,MAAM,GAA8B;;AAShD;AAEO,MAAMC,wCAA0BC,wBAAAA,oBAAgC,CAAC;IACpE,gBAAgBJ;IAChB,cAAc,EAAE;AACpB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ZodType } from "zod";
|
|
2
|
+
export interface IAiPowerUpsSettingsGroupHandler {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly inputSchema: ZodType<unknown>;
|
|
5
|
+
mapFromStorage(persisted: unknown): unknown;
|
|
6
|
+
mapToStorage(internal: unknown, existing: unknown | null): Promise<unknown>;
|
|
7
|
+
}
|
|
8
|
+
export declare const AiPowerUpsSettingsGroupHandler: import("@webiny/di").Abstraction<IAiPowerUpsSettingsGroupHandler>;
|
|
9
|
+
export declare namespace AiPowerUpsSettingsGroupHandler {
|
|
10
|
+
type Interface = IAiPowerUpsSettingsGroupHandler;
|
|
11
|
+
}
|
|
12
|
+
export interface IAiPowerUpsSettingsGroupGraphQLMapper {
|
|
13
|
+
readonly name: string;
|
|
14
|
+
toApi(internal: unknown): unknown | Promise<unknown>;
|
|
15
|
+
fromApi(api: unknown, existing: unknown | null): unknown | Promise<unknown>;
|
|
16
|
+
}
|
|
17
|
+
export declare const AiPowerUpsSettingsGroupGraphQLMapper: import("@webiny/di").Abstraction<IAiPowerUpsSettingsGroupGraphQLMapper>;
|
|
18
|
+
export declare namespace AiPowerUpsSettingsGroupGraphQLMapper {
|
|
19
|
+
type Interface = IAiPowerUpsSettingsGroupGraphQLMapper;
|
|
20
|
+
}
|
|
21
|
+
import type { IAiPowerUpsSettings } from "../../../api/types.js";
|
|
22
|
+
export interface SettingsCacheEntry {
|
|
23
|
+
raw: Record<string, unknown>;
|
|
24
|
+
mapped: IAiPowerUpsSettings;
|
|
25
|
+
}
|
|
26
|
+
export interface IAiPowerUpsSettingsCache {
|
|
27
|
+
get(): SettingsCacheEntry | null;
|
|
28
|
+
set(raw: Record<string, unknown>, mapped: IAiPowerUpsSettings): void;
|
|
29
|
+
}
|
|
30
|
+
export declare const AiPowerUpsSettingsCache: import("@webiny/di").Abstraction<IAiPowerUpsSettingsCache>;
|
|
31
|
+
export declare namespace AiPowerUpsSettingsCache {
|
|
32
|
+
type Interface = IAiPowerUpsSettingsCache;
|
|
33
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
+
const AiPowerUpsSettingsGroupHandler = createAbstraction("AiPowerUpsSettingsGroupHandler");
|
|
3
|
+
const AiPowerUpsSettingsGroupGraphQLMapper = createAbstraction("AiPowerUpsSettingsGroupGraphQLMapper");
|
|
4
|
+
const AiPowerUpsSettingsCache = createAbstraction("AiPowerUpsSettingsCache");
|
|
5
|
+
export { AiPowerUpsSettingsCache, AiPowerUpsSettingsGroupGraphQLMapper, AiPowerUpsSettingsGroupHandler };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/shared/abstractions.js","sources":["../../../../src/api/features/shared/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { ZodType } from \"zod\";\n\nexport interface IAiPowerUpsSettingsGroupHandler {\n readonly name: string;\n readonly inputSchema: ZodType<unknown>;\n mapFromStorage(persisted: unknown): unknown;\n mapToStorage(internal: unknown, existing: unknown | null): Promise<unknown>;\n}\n\nexport const AiPowerUpsSettingsGroupHandler = createAbstraction<IAiPowerUpsSettingsGroupHandler>(\n \"AiPowerUpsSettingsGroupHandler\"\n);\n\nexport namespace AiPowerUpsSettingsGroupHandler {\n export type Interface = IAiPowerUpsSettingsGroupHandler;\n}\n\nexport interface IAiPowerUpsSettingsGroupGraphQLMapper {\n readonly name: string;\n toApi(internal: unknown): unknown | Promise<unknown>;\n fromApi(api: unknown, existing: unknown | null): unknown | Promise<unknown>;\n}\n\nexport const AiPowerUpsSettingsGroupGraphQLMapper =\n createAbstraction<IAiPowerUpsSettingsGroupGraphQLMapper>(\n \"AiPowerUpsSettingsGroupGraphQLMapper\"\n );\n\nexport namespace AiPowerUpsSettingsGroupGraphQLMapper {\n export type Interface = IAiPowerUpsSettingsGroupGraphQLMapper;\n}\n\nimport type { IAiPowerUpsSettings } from \"~/api/types.js\";\n\nexport interface SettingsCacheEntry {\n raw: Record<string, unknown>;\n mapped: IAiPowerUpsSettings;\n}\n\nexport interface IAiPowerUpsSettingsCache {\n get(): SettingsCacheEntry | null;\n set(raw: Record<string, unknown>, mapped: IAiPowerUpsSettings): void;\n}\n\nexport const AiPowerUpsSettingsCache =\n createAbstraction<IAiPowerUpsSettingsCache>(\"AiPowerUpsSettingsCache\");\n\nexport namespace AiPowerUpsSettingsCache {\n export type Interface = IAiPowerUpsSettingsCache;\n}\n"],"names":["AiPowerUpsSettingsGroupHandler","createAbstraction","AiPowerUpsSettingsGroupGraphQLMapper","AiPowerUpsSettingsCache"],"mappings":";AAUO,MAAMA,iCAAiCC,kBAC1C;AAaG,MAAMC,uCACTD,kBACI;AAmBD,MAAME,0BACTF,kBAA4C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { AiPowerUpsSettingsCache, AiPowerUpsSettingsGroupGraphQLMapper, AiPowerUpsSettingsGroupHandler } from "./abstractions.js";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AiPowerUpsSettingsGroupGraphQLMapper } from "../../api/features/shared/index.js";
|
|
2
|
+
import { AiPowerUpsSettingsGraphQLMapper } from "./abstractions.js";
|
|
3
|
+
import type { IAiPowerUpsSettings } from "../../api/types.js";
|
|
4
|
+
declare class AiPowerUpsSettingsGraphQLMapperImpl implements AiPowerUpsSettingsGraphQLMapper.Interface {
|
|
5
|
+
private mapperLookup;
|
|
6
|
+
constructor(mappers: AiPowerUpsSettingsGroupGraphQLMapper.Interface[]);
|
|
7
|
+
toApi(settings: IAiPowerUpsSettings): Promise<Record<string, unknown>>;
|
|
8
|
+
fromApi(input: Record<string, unknown>, current: IAiPowerUpsSettings): Promise<IAiPowerUpsSettings>;
|
|
9
|
+
}
|
|
10
|
+
declare const _default: typeof AiPowerUpsSettingsGraphQLMapperImpl & {
|
|
11
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IAiPowerUpsSettingsGraphQLMapper>;
|
|
12
|
+
};
|
|
13
|
+
export default _default;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { AiPowerUpsSettingsGroupGraphQLMapper } from "../features/shared/index.js";
|
|
2
|
+
import { AiPowerUpsSettingsGraphQLMapper } from "./abstractions.js";
|
|
3
|
+
class AiPowerUpsSettingsGraphQLMapperImpl {
|
|
4
|
+
constructor(mappers){
|
|
5
|
+
this.mapperLookup = new Map(mappers.map((m)=>[
|
|
6
|
+
m.name,
|
|
7
|
+
m
|
|
8
|
+
]));
|
|
9
|
+
}
|
|
10
|
+
async toApi(settings) {
|
|
11
|
+
const raw = settings;
|
|
12
|
+
const result = {};
|
|
13
|
+
for (const key of Object.keys(raw)){
|
|
14
|
+
const mapper = this.mapperLookup.get(key);
|
|
15
|
+
result[key] = mapper ? await mapper.toApi(raw[key]) : raw[key];
|
|
16
|
+
}
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
async fromApi(input, current) {
|
|
20
|
+
const currentRaw = current;
|
|
21
|
+
const assembled = {
|
|
22
|
+
...currentRaw
|
|
23
|
+
};
|
|
24
|
+
for (const key of Object.keys(input)){
|
|
25
|
+
const mapper = this.mapperLookup.get(key);
|
|
26
|
+
assembled[key] = mapper ? await mapper.fromApi(input[key], currentRaw[key]) : input[key];
|
|
27
|
+
}
|
|
28
|
+
return assembled;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const graphql_AiPowerUpsSettingsGraphQLMapper = AiPowerUpsSettingsGraphQLMapper.createImplementation({
|
|
32
|
+
implementation: AiPowerUpsSettingsGraphQLMapperImpl,
|
|
33
|
+
dependencies: [
|
|
34
|
+
[
|
|
35
|
+
AiPowerUpsSettingsGroupGraphQLMapper,
|
|
36
|
+
{
|
|
37
|
+
multiple: true
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
]
|
|
41
|
+
});
|
|
42
|
+
export default graphql_AiPowerUpsSettingsGraphQLMapper;
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=AiPowerUpsSettingsGraphQLMapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/graphql/AiPowerUpsSettingsGraphQLMapper.js","sources":["../../../src/api/graphql/AiPowerUpsSettingsGraphQLMapper.ts"],"sourcesContent":["import { AiPowerUpsSettingsGroupGraphQLMapper } from \"~/api/features/shared/index.js\";\nimport { AiPowerUpsSettingsGraphQLMapper } from \"./abstractions.js\";\nimport type { IAiPowerUpsSettings } from \"~/api/types.js\";\n\nclass AiPowerUpsSettingsGraphQLMapperImpl implements AiPowerUpsSettingsGraphQLMapper.Interface {\n private mapperLookup: Map<string, AiPowerUpsSettingsGroupGraphQLMapper.Interface>;\n\n constructor(mappers: AiPowerUpsSettingsGroupGraphQLMapper.Interface[]) {\n this.mapperLookup = new Map(mappers.map(m => [m.name, m]));\n }\n\n async toApi(settings: IAiPowerUpsSettings): Promise<Record<string, unknown>> {\n const raw = settings as unknown as Record<string, unknown>;\n const result: Record<string, unknown> = {};\n\n for (const key of Object.keys(raw)) {\n const mapper = this.mapperLookup.get(key);\n result[key] = mapper ? await mapper.toApi(raw[key]) : raw[key];\n }\n\n return result;\n }\n\n async fromApi(\n input: Record<string, unknown>,\n current: IAiPowerUpsSettings\n ): Promise<IAiPowerUpsSettings> {\n const currentRaw = current as unknown as Record<string, unknown>;\n const assembled: Record<string, unknown> = { ...currentRaw };\n\n for (const key of Object.keys(input)) {\n const mapper = this.mapperLookup.get(key);\n assembled[key] = mapper\n ? await mapper.fromApi(input[key], currentRaw[key])\n : input[key];\n }\n\n return assembled as unknown as IAiPowerUpsSettings;\n }\n}\n\nexport default AiPowerUpsSettingsGraphQLMapper.createImplementation({\n implementation: AiPowerUpsSettingsGraphQLMapperImpl,\n dependencies: [[AiPowerUpsSettingsGroupGraphQLMapper, { multiple: true }]]\n});\n"],"names":["AiPowerUpsSettingsGraphQLMapperImpl","mappers","Map","m","settings","raw","result","key","Object","mapper","input","current","currentRaw","assembled","AiPowerUpsSettingsGraphQLMapper","AiPowerUpsSettingsGroupGraphQLMapper"],"mappings":";;AAIA,MAAMA;IAGF,YAAYC,OAAyD,CAAE;QACnE,IAAI,CAAC,YAAY,GAAG,IAAIC,IAAID,QAAQ,GAAG,CAACE,CAAAA,IAAK;gBAACA,EAAE,IAAI;gBAAEA;aAAE;IAC5D;IAEA,MAAM,MAAMC,QAA6B,EAAoC;QACzE,MAAMC,MAAMD;QACZ,MAAME,SAAkC,CAAC;QAEzC,KAAK,MAAMC,OAAOC,OAAO,IAAI,CAACH,KAAM;YAChC,MAAMI,SAAS,IAAI,CAAC,YAAY,CAAC,GAAG,CAACF;YACrCD,MAAM,CAACC,IAAI,GAAGE,SAAS,MAAMA,OAAO,KAAK,CAACJ,GAAG,CAACE,IAAI,IAAIF,GAAG,CAACE,IAAI;QAClE;QAEA,OAAOD;IACX;IAEA,MAAM,QACFI,KAA8B,EAC9BC,OAA4B,EACA;QAC5B,MAAMC,aAAaD;QACnB,MAAME,YAAqC;YAAE,GAAGD,UAAU;QAAC;QAE3D,KAAK,MAAML,OAAOC,OAAO,IAAI,CAACE,OAAQ;YAClC,MAAMD,SAAS,IAAI,CAAC,YAAY,CAAC,GAAG,CAACF;YACrCM,SAAS,CAACN,IAAI,GAAGE,SACX,MAAMA,OAAO,OAAO,CAACC,KAAK,CAACH,IAAI,EAAEK,UAAU,CAACL,IAAI,IAChDG,KAAK,CAACH,IAAI;QACpB;QAEA,OAAOM;IACX;AACJ;AAEA,gDAAeC,gCAAgC,oBAAoB,CAAC;IAChE,gBAAgBd;IAChB,cAAc;QAAC;YAACe;YAAsC;gBAAE,UAAU;YAAK;SAAE;KAAC;AAC9E"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CoreGraphQLSchemaFactory } from "@webiny/api-graphql/graphql/abstractions.core.js";
|
|
2
|
+
declare class BaseGraphQLSchemaImpl implements CoreGraphQLSchemaFactory.Interface {
|
|
3
|
+
execute(builder: CoreGraphQLSchemaFactory.SchemaBuilder): Promise<CoreGraphQLSchemaFactory.SchemaBuilder>;
|
|
4
|
+
}
|
|
5
|
+
export declare const BaseGraphQLSchema: typeof BaseGraphQLSchemaImpl & {
|
|
6
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-graphql/graphql/abstractions.core.js").ICoreGraphQLSchemaFactory>;
|
|
7
|
+
};
|
|
8
|
+
export {};
|