donobu 2.16.0 → 2.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apis/EnvDataApi.d.ts +26 -0
- package/dist/apis/EnvDataApi.d.ts.map +1 -0
- package/dist/apis/EnvDataApi.js +59 -0
- package/dist/apis/EnvDataApi.js.map +1 -0
- package/dist/apis/EnvironmentDataApi.d.ts +26 -0
- package/dist/apis/EnvironmentDataApi.d.ts.map +1 -0
- package/dist/apis/EnvironmentDataApi.js +59 -0
- package/dist/apis/EnvironmentDataApi.js.map +1 -0
- package/dist/apis/FlowsApi.d.ts +4 -0
- package/dist/apis/FlowsApi.d.ts.map +1 -1
- package/dist/apis/FlowsApi.js +26 -2
- package/dist/apis/FlowsApi.js.map +1 -1
- package/dist/apis/FlowsFilesApi.d.ts +1 -1
- package/dist/apis/FlowsFilesApi.d.ts.map +1 -1
- package/dist/apis/SpecialFlowsApi.js +1 -1
- package/dist/apis/SpecialFlowsApi.js.map +1 -1
- package/dist/assets/generated/parameter-schemas.json +51 -37
- package/dist/assets/generated/version +1 -1
- package/dist/esm/apis/EnvDataApi.d.ts +26 -0
- package/dist/esm/apis/EnvDataApi.d.ts.map +1 -0
- package/dist/esm/apis/EnvDataApi.js +59 -0
- package/dist/esm/apis/EnvDataApi.js.map +1 -0
- package/dist/esm/apis/EnvironmentDataApi.d.ts +26 -0
- package/dist/esm/apis/EnvironmentDataApi.d.ts.map +1 -0
- package/dist/esm/apis/EnvironmentDataApi.js +59 -0
- package/dist/esm/apis/EnvironmentDataApi.js.map +1 -0
- package/dist/esm/apis/FlowsApi.d.ts +4 -0
- package/dist/esm/apis/FlowsApi.d.ts.map +1 -1
- package/dist/esm/apis/FlowsApi.js +26 -2
- package/dist/esm/apis/FlowsApi.js.map +1 -1
- package/dist/esm/apis/FlowsFilesApi.d.ts +1 -1
- package/dist/esm/apis/FlowsFilesApi.d.ts.map +1 -1
- package/dist/esm/apis/SpecialFlowsApi.js +1 -1
- package/dist/esm/apis/SpecialFlowsApi.js.map +1 -1
- package/dist/esm/assets/generated/parameter-schemas.json +51 -37
- package/dist/esm/assets/generated/version +1 -1
- package/dist/esm/lib/DonobuExtendedPage.d.ts +106 -0
- package/dist/esm/lib/DonobuExtendedPage.d.ts.map +1 -0
- package/dist/esm/lib/DonobuExtendedPage.js +3 -0
- package/dist/esm/lib/DonobuExtendedPage.js.map +1 -0
- package/dist/esm/lib/constants.d.ts +8 -0
- package/dist/esm/lib/constants.d.ts.map +1 -0
- package/dist/esm/lib/constants.js +14 -0
- package/dist/esm/lib/constants.js.map +1 -0
- package/dist/esm/lib/fixtures/browserState.d.ts +6 -0
- package/dist/esm/lib/fixtures/browserState.d.ts.map +1 -0
- package/dist/esm/lib/fixtures/browserState.js +15 -0
- package/dist/esm/lib/fixtures/browserState.js.map +1 -0
- package/dist/esm/lib/fixtures/gptClients.d.ts +40 -0
- package/dist/esm/lib/fixtures/gptClients.d.ts.map +1 -0
- package/dist/esm/lib/fixtures/gptClients.js +187 -0
- package/dist/esm/lib/fixtures/gptClients.js.map +1 -0
- package/dist/esm/lib/fixtures/testExtension.d.ts +10 -0
- package/dist/esm/lib/fixtures/testExtension.d.ts.map +1 -0
- package/dist/esm/lib/fixtures/testExtension.js +383 -0
- package/dist/esm/lib/fixtures/testExtension.js.map +1 -0
- package/dist/esm/lib/testExtension.d.ts +10 -0
- package/dist/esm/lib/testExtension.d.ts.map +1 -0
- package/dist/esm/lib/testExtension.js +383 -0
- package/dist/esm/lib/testExtension.js.map +1 -0
- package/dist/esm/lib/types.d.ts +106 -0
- package/dist/esm/lib/types.d.ts.map +1 -0
- package/dist/esm/lib/types.js +3 -0
- package/dist/esm/lib/types.js.map +1 -0
- package/dist/esm/lib/utils/donobuTestStack.d.ts +7 -0
- package/dist/esm/lib/utils/donobuTestStack.d.ts.map +1 -0
- package/dist/esm/lib/utils/donobuTestStack.js +31 -0
- package/dist/esm/lib/utils/donobuTestStack.js.map +1 -0
- package/dist/esm/lib/utils/selfHealing.d.ts +15 -0
- package/dist/esm/lib/utils/selfHealing.d.ts.map +1 -0
- package/dist/esm/lib/utils/selfHealing.js +89 -0
- package/dist/esm/lib/utils/selfHealing.js.map +1 -0
- package/dist/esm/main.d.ts +5 -1
- package/dist/esm/main.d.ts.map +1 -1
- package/dist/esm/main.js +8 -5
- package/dist/esm/main.js.map +1 -1
- package/dist/esm/managers/AdminApiController.d.ts.map +1 -1
- package/dist/esm/managers/AdminApiController.js +7 -0
- package/dist/esm/managers/AdminApiController.js.map +1 -1
- package/dist/esm/managers/AgentsManager.d.ts +1 -1
- package/dist/esm/managers/AgentsManager.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlow.d.ts +3 -2
- package/dist/esm/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlow.js +90 -21
- package/dist/esm/managers/DonobuFlow.js.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.d.ts +47 -6
- package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.js +104 -24
- package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/esm/managers/DonobuStack.d.ts +18 -4
- package/dist/esm/managers/DonobuStack.d.ts.map +1 -1
- package/dist/esm/managers/DonobuStack.js +21 -5
- package/dist/esm/managers/DonobuStack.js.map +1 -1
- package/dist/esm/managers/EnvDataManager.d.ts +58 -0
- package/dist/esm/managers/EnvDataManager.d.ts.map +1 -0
- package/dist/esm/managers/EnvDataManager.js +134 -0
- package/dist/esm/managers/EnvDataManager.js.map +1 -0
- package/dist/esm/managers/EnvironmentDataManager.d.ts +58 -0
- package/dist/esm/managers/EnvironmentDataManager.d.ts.map +1 -0
- package/dist/esm/managers/EnvironmentDataManager.js +134 -0
- package/dist/esm/managers/EnvironmentDataManager.js.map +1 -0
- package/dist/esm/managers/GptConfigsManager.d.ts +1 -1
- package/dist/esm/managers/GptConfigsManager.d.ts.map +1 -1
- package/dist/esm/managers/InteractionVisualizer.d.ts +8 -30
- package/dist/esm/managers/InteractionVisualizer.d.ts.map +1 -1
- package/dist/esm/managers/InteractionVisualizer.js +132 -204
- package/dist/esm/managers/InteractionVisualizer.js.map +1 -1
- package/dist/esm/managers/PageInspector.d.ts +0 -1
- package/dist/esm/managers/PageInspector.d.ts.map +1 -1
- package/dist/esm/managers/PageInspector.js +59 -58
- package/dist/esm/managers/PageInspector.js.map +1 -1
- package/dist/esm/managers/ToolManager.d.ts +10 -0
- package/dist/esm/managers/ToolManager.d.ts.map +1 -1
- package/dist/esm/managers/ToolManager.js +46 -3
- package/dist/esm/managers/ToolManager.js.map +1 -1
- package/dist/esm/models/BrowserConfig.d.ts +1 -6
- package/dist/esm/models/BrowserConfig.d.ts.map +1 -1
- package/dist/esm/models/BrowserFramework.d.ts +2 -6
- package/dist/esm/models/BrowserFramework.d.ts.map +1 -1
- package/dist/esm/models/BrowserFramework.js +4 -22
- package/dist/esm/models/BrowserFramework.js.map +1 -1
- package/dist/esm/models/CreateDonobuFlow.d.ts +4 -0
- package/dist/esm/models/CreateDonobuFlow.d.ts.map +1 -1
- package/dist/esm/models/EnvironmentDatum.d.ts +54 -0
- package/dist/esm/models/EnvironmentDatum.d.ts.map +1 -0
- package/dist/esm/models/EnvironmentDatum.js +57 -0
- package/dist/esm/models/EnvironmentDatum.js.map +1 -0
- package/dist/esm/models/FlowMetadata.d.ts +14 -1
- package/dist/esm/models/FlowMetadata.d.ts.map +1 -1
- package/dist/esm/models/FlowMetadata.js.map +1 -1
- package/dist/esm/models/PaginatedResult.d.ts +10 -0
- package/dist/esm/models/PaginatedResult.d.ts.map +1 -0
- package/dist/esm/models/PaginatedResult.js +6 -0
- package/dist/esm/models/PaginatedResult.js.map +1 -0
- package/dist/esm/models/ToolCallContext.d.ts +2 -1
- package/dist/esm/models/ToolCallContext.d.ts.map +1 -1
- package/dist/esm/models/ToolTemplateDataSource.d.ts +40 -0
- package/dist/esm/models/ToolTemplateDataSource.d.ts.map +1 -0
- package/dist/esm/models/ToolTemplateDataSource.js +3 -0
- package/dist/esm/models/ToolTemplateDataSource.js.map +1 -0
- package/dist/esm/persistence/DonobuSqliteDb.d.ts.map +1 -1
- package/dist/esm/persistence/DonobuSqliteDb.js +12 -0
- package/dist/esm/persistence/DonobuSqliteDb.js.map +1 -1
- package/dist/esm/persistence/FlowsPersistence.d.ts +23 -14
- package/dist/esm/persistence/FlowsPersistence.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts +10 -5
- package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceAwsS3.js +79 -1
- package/dist/esm/persistence/FlowsPersistenceAwsS3.js.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js +1 -1
- package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts +32 -5
- package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceFilesystem.js +114 -4
- package/dist/esm/persistence/FlowsPersistenceFilesystem.js.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +10 -5
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js +58 -1
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts +12 -5
- package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceSqlite.js +35 -1
- package/dist/esm/persistence/FlowsPersistenceSqlite.js.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts +10 -5
- package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceSupabase.js +46 -1
- package/dist/esm/persistence/FlowsPersistenceSupabase.js.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts +10 -5
- package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceVolatile.js +21 -1
- package/dist/esm/persistence/FlowsPersistenceVolatile.js.map +1 -1
- package/dist/esm/persistence/agents/AgentsPersistence.d.ts +12 -0
- package/dist/esm/persistence/agents/AgentsPersistence.d.ts.map +1 -0
- package/dist/esm/persistence/agents/AgentsPersistence.js +3 -0
- package/dist/esm/persistence/agents/AgentsPersistence.js.map +1 -0
- package/dist/esm/persistence/agents/AgentsPersistenceSqlite.d.ts +15 -0
- package/dist/esm/persistence/agents/AgentsPersistenceSqlite.d.ts.map +1 -0
- package/dist/esm/persistence/agents/AgentsPersistenceSqlite.js +50 -0
- package/dist/esm/persistence/agents/AgentsPersistenceSqlite.js.map +1 -0
- package/dist/esm/persistence/agents/AgentsPersistenceVolatile.d.ts +14 -0
- package/dist/esm/persistence/agents/AgentsPersistenceVolatile.d.ts.map +1 -0
- package/dist/esm/persistence/agents/AgentsPersistenceVolatile.js +26 -0
- package/dist/esm/persistence/agents/AgentsPersistenceVolatile.js.map +1 -0
- package/dist/esm/persistence/env/EnvPersistence.d.ts +20 -0
- package/dist/esm/persistence/env/EnvPersistence.d.ts.map +1 -0
- package/dist/esm/persistence/env/EnvPersistence.js +3 -0
- package/dist/esm/persistence/env/EnvPersistence.js.map +1 -0
- package/dist/esm/persistence/env/EnvPersistenceAwsS3.d.ts +31 -0
- package/dist/esm/persistence/env/EnvPersistenceAwsS3.d.ts.map +1 -0
- package/dist/esm/persistence/env/EnvPersistenceAwsS3.js +117 -0
- package/dist/esm/persistence/env/EnvPersistenceAwsS3.js.map +1 -0
- package/dist/esm/persistence/env/EnvPersistenceFactory.d.ts +6 -0
- package/dist/esm/persistence/env/EnvPersistenceFactory.d.ts.map +1 -0
- package/dist/esm/persistence/env/EnvPersistenceFactory.js +3 -0
- package/dist/esm/persistence/env/EnvPersistenceFactory.js.map +1 -0
- package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.d.ts +45 -0
- package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.d.ts.map +1 -0
- package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.js +86 -0
- package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.js.map +1 -0
- package/dist/esm/persistence/env/EnvPersistenceFactoryPreset.d.ts +12 -0
- package/dist/esm/persistence/env/EnvPersistenceFactoryPreset.d.ts.map +1 -0
- package/dist/esm/persistence/env/EnvPersistenceFactoryPreset.js +17 -0
- package/dist/esm/persistence/env/EnvPersistenceFactoryPreset.js.map +1 -0
- package/dist/esm/persistence/env/EnvPersistenceFilesystem.d.ts +36 -0
- package/dist/esm/persistence/env/EnvPersistenceFilesystem.d.ts.map +1 -0
- package/dist/esm/persistence/env/EnvPersistenceFilesystem.js +132 -0
- package/dist/esm/persistence/env/EnvPersistenceFilesystem.js.map +1 -0
- package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts +30 -0
- package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts.map +1 -0
- package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.js +131 -0
- package/dist/esm/persistence/env/EnvPersistenceGoogleCloudStorage.js.map +1 -0
- package/dist/esm/persistence/env/EnvPersistenceSqlite.d.ts +19 -0
- package/dist/esm/persistence/env/EnvPersistenceSqlite.d.ts.map +1 -0
- package/dist/esm/persistence/env/EnvPersistenceSqlite.js +54 -0
- package/dist/esm/persistence/env/EnvPersistenceSqlite.js.map +1 -0
- package/dist/esm/persistence/env/EnvPersistenceSupabase.d.ts +17 -0
- package/dist/esm/persistence/env/EnvPersistenceSupabase.d.ts.map +1 -0
- package/dist/esm/persistence/env/EnvPersistenceSupabase.js +60 -0
- package/dist/esm/persistence/env/EnvPersistenceSupabase.js.map +1 -0
- package/dist/esm/persistence/env/EnvPersistenceVolatile.d.ts +13 -0
- package/dist/esm/persistence/env/EnvPersistenceVolatile.d.ts.map +1 -0
- package/dist/esm/persistence/env/EnvPersistenceVolatile.js +31 -0
- package/dist/esm/persistence/env/EnvPersistenceVolatile.js.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistence.d.ts +87 -0
- package/dist/esm/persistence/flows/FlowsPersistence.d.ts.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistence.js +3 -0
- package/dist/esm/persistence/flows/FlowsPersistence.js.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.d.ts +71 -0
- package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.d.ts.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.js +448 -0
- package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.js.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistenceFactory.d.ts +10 -0
- package/dist/esm/persistence/flows/FlowsPersistenceFactory.d.ts.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistenceFactory.js +3 -0
- package/dist/esm/persistence/flows/FlowsPersistenceFactory.js.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.d.ts +57 -0
- package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.d.ts.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.js +238 -0
- package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.js.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistenceFactoryPreset.d.ts +13 -0
- package/dist/esm/persistence/flows/FlowsPersistenceFactoryPreset.d.ts.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistenceFactoryPreset.js +24 -0
- package/dist/esm/persistence/flows/FlowsPersistenceFactoryPreset.js.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.d.ts +52 -0
- package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.d.ts.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.js +291 -0
- package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.js.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts +71 -0
- package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.js +429 -0
- package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.js.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistenceSqlite.d.ts +43 -0
- package/dist/esm/persistence/flows/FlowsPersistenceSqlite.d.ts.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistenceSqlite.js +259 -0
- package/dist/esm/persistence/flows/FlowsPersistenceSqlite.js.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistenceSupabase.d.ts +40 -0
- package/dist/esm/persistence/flows/FlowsPersistenceSupabase.d.ts.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistenceSupabase.js +218 -0
- package/dist/esm/persistence/flows/FlowsPersistenceSupabase.js.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistenceVolatile.d.ts +37 -0
- package/dist/esm/persistence/flows/FlowsPersistenceVolatile.d.ts.map +1 -0
- package/dist/esm/persistence/flows/FlowsPersistenceVolatile.js +151 -0
- package/dist/esm/persistence/flows/FlowsPersistenceVolatile.js.map +1 -0
- package/dist/esm/persistence/gptconfigs/GptConfigsPersistence.d.ts +12 -0
- package/dist/esm/persistence/gptconfigs/GptConfigsPersistence.d.ts.map +1 -0
- package/dist/esm/persistence/gptconfigs/GptConfigsPersistence.js +3 -0
- package/dist/esm/persistence/gptconfigs/GptConfigsPersistence.js.map +1 -0
- package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceSqlite.d.ts +13 -0
- package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceSqlite.d.ts.map +1 -0
- package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceSqlite.js +35 -0
- package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceSqlite.js.map +1 -0
- package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceVolatile.d.ts +15 -0
- package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceVolatile.d.ts.map +1 -0
- package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceVolatile.js +31 -0
- package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceVolatile.js.map +1 -0
- package/dist/esm/playwrightTestExtensions.d.ts.map +1 -1
- package/dist/esm/playwrightTestExtensions.js +31 -10
- package/dist/esm/playwrightTestExtensions.js.map +1 -1
- package/dist/esm/tools/GoToWebpageTool.d.ts.map +1 -1
- package/dist/esm/tools/GoToWebpageTool.js +3 -2
- package/dist/esm/tools/GoToWebpageTool.js.map +1 -1
- package/dist/esm/tools/SolveMfaChallenge.d.ts +32 -0
- package/dist/esm/tools/SolveMfaChallenge.d.ts.map +1 -0
- package/dist/esm/tools/SolveMfaChallenge.js +185 -0
- package/dist/esm/tools/SolveMfaChallenge.js.map +1 -0
- package/dist/esm/utils/TemplateInterpolator.d.ts +47 -0
- package/dist/esm/utils/TemplateInterpolator.d.ts.map +1 -0
- package/dist/esm/utils/TemplateInterpolator.js +352 -0
- package/dist/esm/utils/TemplateInterpolator.js.map +1 -0
- package/dist/lib/DonobuExtendedPage.d.ts +106 -0
- package/dist/lib/DonobuExtendedPage.d.ts.map +1 -0
- package/dist/lib/DonobuExtendedPage.js +3 -0
- package/dist/lib/DonobuExtendedPage.js.map +1 -0
- package/dist/lib/constants.d.ts +8 -0
- package/dist/lib/constants.d.ts.map +1 -0
- package/dist/lib/constants.js +14 -0
- package/dist/lib/constants.js.map +1 -0
- package/dist/lib/fixtures/browserState.d.ts +6 -0
- package/dist/lib/fixtures/browserState.d.ts.map +1 -0
- package/dist/lib/fixtures/browserState.js +15 -0
- package/dist/lib/fixtures/browserState.js.map +1 -0
- package/dist/lib/fixtures/gptClients.d.ts +40 -0
- package/dist/lib/fixtures/gptClients.d.ts.map +1 -0
- package/dist/lib/fixtures/gptClients.js +187 -0
- package/dist/lib/fixtures/gptClients.js.map +1 -0
- package/dist/lib/fixtures/testExtension.d.ts +10 -0
- package/dist/lib/fixtures/testExtension.d.ts.map +1 -0
- package/dist/lib/fixtures/testExtension.js +383 -0
- package/dist/lib/fixtures/testExtension.js.map +1 -0
- package/dist/lib/testExtension.d.ts +10 -0
- package/dist/lib/testExtension.d.ts.map +1 -0
- package/dist/lib/testExtension.js +383 -0
- package/dist/lib/testExtension.js.map +1 -0
- package/dist/lib/types.d.ts +106 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +3 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/utils/donobuTestStack.d.ts +7 -0
- package/dist/lib/utils/donobuTestStack.d.ts.map +1 -0
- package/dist/lib/utils/donobuTestStack.js +31 -0
- package/dist/lib/utils/donobuTestStack.js.map +1 -0
- package/dist/lib/utils/selfHealing.d.ts +15 -0
- package/dist/lib/utils/selfHealing.d.ts.map +1 -0
- package/dist/lib/utils/selfHealing.js +89 -0
- package/dist/lib/utils/selfHealing.js.map +1 -0
- package/dist/main.d.ts +5 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +8 -5
- package/dist/main.js.map +1 -1
- package/dist/managers/AdminApiController.d.ts.map +1 -1
- package/dist/managers/AdminApiController.js +7 -0
- package/dist/managers/AdminApiController.js.map +1 -1
- package/dist/managers/AgentsManager.d.ts +1 -1
- package/dist/managers/AgentsManager.d.ts.map +1 -1
- package/dist/managers/DonobuFlow.d.ts +3 -2
- package/dist/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/managers/DonobuFlow.js +90 -21
- package/dist/managers/DonobuFlow.js.map +1 -1
- package/dist/managers/DonobuFlowsManager.d.ts +47 -6
- package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/managers/DonobuFlowsManager.js +104 -24
- package/dist/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/managers/DonobuStack.d.ts +18 -4
- package/dist/managers/DonobuStack.d.ts.map +1 -1
- package/dist/managers/DonobuStack.js +21 -5
- package/dist/managers/DonobuStack.js.map +1 -1
- package/dist/managers/EnvDataManager.d.ts +58 -0
- package/dist/managers/EnvDataManager.d.ts.map +1 -0
- package/dist/managers/EnvDataManager.js +134 -0
- package/dist/managers/EnvDataManager.js.map +1 -0
- package/dist/managers/EnvironmentDataManager.d.ts +58 -0
- package/dist/managers/EnvironmentDataManager.d.ts.map +1 -0
- package/dist/managers/EnvironmentDataManager.js +134 -0
- package/dist/managers/EnvironmentDataManager.js.map +1 -0
- package/dist/managers/GptConfigsManager.d.ts +1 -1
- package/dist/managers/GptConfigsManager.d.ts.map +1 -1
- package/dist/managers/InteractionVisualizer.d.ts +8 -30
- package/dist/managers/InteractionVisualizer.d.ts.map +1 -1
- package/dist/managers/InteractionVisualizer.js +132 -204
- package/dist/managers/InteractionVisualizer.js.map +1 -1
- package/dist/managers/PageInspector.d.ts +0 -1
- package/dist/managers/PageInspector.d.ts.map +1 -1
- package/dist/managers/PageInspector.js +59 -58
- package/dist/managers/PageInspector.js.map +1 -1
- package/dist/managers/ToolManager.d.ts +10 -0
- package/dist/managers/ToolManager.d.ts.map +1 -1
- package/dist/managers/ToolManager.js +46 -3
- package/dist/managers/ToolManager.js.map +1 -1
- package/dist/models/BrowserConfig.d.ts +1 -6
- package/dist/models/BrowserConfig.d.ts.map +1 -1
- package/dist/models/BrowserFramework.d.ts +2 -6
- package/dist/models/BrowserFramework.d.ts.map +1 -1
- package/dist/models/BrowserFramework.js +4 -22
- package/dist/models/BrowserFramework.js.map +1 -1
- package/dist/models/CreateDonobuFlow.d.ts +4 -0
- package/dist/models/CreateDonobuFlow.d.ts.map +1 -1
- package/dist/models/EnvironmentDatum.d.ts +54 -0
- package/dist/models/EnvironmentDatum.d.ts.map +1 -0
- package/dist/models/EnvironmentDatum.js +57 -0
- package/dist/models/EnvironmentDatum.js.map +1 -0
- package/dist/models/FlowMetadata.d.ts +14 -1
- package/dist/models/FlowMetadata.d.ts.map +1 -1
- package/dist/models/FlowMetadata.js.map +1 -1
- package/dist/models/PaginatedResult.d.ts +10 -0
- package/dist/models/PaginatedResult.d.ts.map +1 -0
- package/dist/models/PaginatedResult.js +6 -0
- package/dist/models/PaginatedResult.js.map +1 -0
- package/dist/models/ToolCallContext.d.ts +2 -1
- package/dist/models/ToolCallContext.d.ts.map +1 -1
- package/dist/models/ToolTemplateDataSource.d.ts +40 -0
- package/dist/models/ToolTemplateDataSource.d.ts.map +1 -0
- package/dist/models/ToolTemplateDataSource.js +3 -0
- package/dist/models/ToolTemplateDataSource.js.map +1 -0
- package/dist/persistence/DonobuSqliteDb.d.ts.map +1 -1
- package/dist/persistence/DonobuSqliteDb.js +12 -0
- package/dist/persistence/DonobuSqliteDb.js.map +1 -1
- package/dist/persistence/FlowsPersistence.d.ts +23 -14
- package/dist/persistence/FlowsPersistence.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceAwsS3.d.ts +10 -5
- package/dist/persistence/FlowsPersistenceAwsS3.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceAwsS3.js +79 -1
- package/dist/persistence/FlowsPersistenceAwsS3.js.map +1 -1
- package/dist/persistence/FlowsPersistenceFactoryImpl.js +1 -1
- package/dist/persistence/FlowsPersistenceFactoryImpl.js.map +1 -1
- package/dist/persistence/FlowsPersistenceFilesystem.d.ts +32 -5
- package/dist/persistence/FlowsPersistenceFilesystem.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceFilesystem.js +114 -4
- package/dist/persistence/FlowsPersistenceFilesystem.js.map +1 -1
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +10 -5
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js +58 -1
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js.map +1 -1
- package/dist/persistence/FlowsPersistenceSqlite.d.ts +12 -5
- package/dist/persistence/FlowsPersistenceSqlite.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceSqlite.js +35 -1
- package/dist/persistence/FlowsPersistenceSqlite.js.map +1 -1
- package/dist/persistence/FlowsPersistenceSupabase.d.ts +10 -5
- package/dist/persistence/FlowsPersistenceSupabase.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceSupabase.js +46 -1
- package/dist/persistence/FlowsPersistenceSupabase.js.map +1 -1
- package/dist/persistence/FlowsPersistenceVolatile.d.ts +10 -5
- package/dist/persistence/FlowsPersistenceVolatile.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceVolatile.js +21 -1
- package/dist/persistence/FlowsPersistenceVolatile.js.map +1 -1
- package/dist/persistence/agents/AgentsPersistence.d.ts +12 -0
- package/dist/persistence/agents/AgentsPersistence.d.ts.map +1 -0
- package/dist/persistence/agents/AgentsPersistence.js +3 -0
- package/dist/persistence/agents/AgentsPersistence.js.map +1 -0
- package/dist/persistence/agents/AgentsPersistenceSqlite.d.ts +15 -0
- package/dist/persistence/agents/AgentsPersistenceSqlite.d.ts.map +1 -0
- package/dist/persistence/agents/AgentsPersistenceSqlite.js +50 -0
- package/dist/persistence/agents/AgentsPersistenceSqlite.js.map +1 -0
- package/dist/persistence/agents/AgentsPersistenceVolatile.d.ts +14 -0
- package/dist/persistence/agents/AgentsPersistenceVolatile.d.ts.map +1 -0
- package/dist/persistence/agents/AgentsPersistenceVolatile.js +26 -0
- package/dist/persistence/agents/AgentsPersistenceVolatile.js.map +1 -0
- package/dist/persistence/env/EnvPersistence.d.ts +20 -0
- package/dist/persistence/env/EnvPersistence.d.ts.map +1 -0
- package/dist/persistence/env/EnvPersistence.js +3 -0
- package/dist/persistence/env/EnvPersistence.js.map +1 -0
- package/dist/persistence/env/EnvPersistenceAwsS3.d.ts +31 -0
- package/dist/persistence/env/EnvPersistenceAwsS3.d.ts.map +1 -0
- package/dist/persistence/env/EnvPersistenceAwsS3.js +117 -0
- package/dist/persistence/env/EnvPersistenceAwsS3.js.map +1 -0
- package/dist/persistence/env/EnvPersistenceFactory.d.ts +6 -0
- package/dist/persistence/env/EnvPersistenceFactory.d.ts.map +1 -0
- package/dist/persistence/env/EnvPersistenceFactory.js +3 -0
- package/dist/persistence/env/EnvPersistenceFactory.js.map +1 -0
- package/dist/persistence/env/EnvPersistenceFactoryImpl.d.ts +45 -0
- package/dist/persistence/env/EnvPersistenceFactoryImpl.d.ts.map +1 -0
- package/dist/persistence/env/EnvPersistenceFactoryImpl.js +86 -0
- package/dist/persistence/env/EnvPersistenceFactoryImpl.js.map +1 -0
- package/dist/persistence/env/EnvPersistenceFactoryPreset.d.ts +12 -0
- package/dist/persistence/env/EnvPersistenceFactoryPreset.d.ts.map +1 -0
- package/dist/persistence/env/EnvPersistenceFactoryPreset.js +17 -0
- package/dist/persistence/env/EnvPersistenceFactoryPreset.js.map +1 -0
- package/dist/persistence/env/EnvPersistenceFilesystem.d.ts +36 -0
- package/dist/persistence/env/EnvPersistenceFilesystem.d.ts.map +1 -0
- package/dist/persistence/env/EnvPersistenceFilesystem.js +132 -0
- package/dist/persistence/env/EnvPersistenceFilesystem.js.map +1 -0
- package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts +30 -0
- package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.d.ts.map +1 -0
- package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.js +131 -0
- package/dist/persistence/env/EnvPersistenceGoogleCloudStorage.js.map +1 -0
- package/dist/persistence/env/EnvPersistenceSqlite.d.ts +19 -0
- package/dist/persistence/env/EnvPersistenceSqlite.d.ts.map +1 -0
- package/dist/persistence/env/EnvPersistenceSqlite.js +54 -0
- package/dist/persistence/env/EnvPersistenceSqlite.js.map +1 -0
- package/dist/persistence/env/EnvPersistenceSupabase.d.ts +17 -0
- package/dist/persistence/env/EnvPersistenceSupabase.d.ts.map +1 -0
- package/dist/persistence/env/EnvPersistenceSupabase.js +60 -0
- package/dist/persistence/env/EnvPersistenceSupabase.js.map +1 -0
- package/dist/persistence/env/EnvPersistenceVolatile.d.ts +13 -0
- package/dist/persistence/env/EnvPersistenceVolatile.d.ts.map +1 -0
- package/dist/persistence/env/EnvPersistenceVolatile.js +31 -0
- package/dist/persistence/env/EnvPersistenceVolatile.js.map +1 -0
- package/dist/persistence/flows/FlowsPersistence.d.ts +87 -0
- package/dist/persistence/flows/FlowsPersistence.d.ts.map +1 -0
- package/dist/persistence/flows/FlowsPersistence.js +3 -0
- package/dist/persistence/flows/FlowsPersistence.js.map +1 -0
- package/dist/persistence/flows/FlowsPersistenceAwsS3.d.ts +71 -0
- package/dist/persistence/flows/FlowsPersistenceAwsS3.d.ts.map +1 -0
- package/dist/persistence/flows/FlowsPersistenceAwsS3.js +448 -0
- package/dist/persistence/flows/FlowsPersistenceAwsS3.js.map +1 -0
- package/dist/persistence/flows/FlowsPersistenceFactory.d.ts +10 -0
- package/dist/persistence/flows/FlowsPersistenceFactory.d.ts.map +1 -0
- package/dist/persistence/flows/FlowsPersistenceFactory.js +3 -0
- package/dist/persistence/flows/FlowsPersistenceFactory.js.map +1 -0
- package/dist/persistence/flows/FlowsPersistenceFactoryImpl.d.ts +57 -0
- package/dist/persistence/flows/FlowsPersistenceFactoryImpl.d.ts.map +1 -0
- package/dist/persistence/flows/FlowsPersistenceFactoryImpl.js +238 -0
- package/dist/persistence/flows/FlowsPersistenceFactoryImpl.js.map +1 -0
- package/dist/persistence/flows/FlowsPersistenceFactoryPreset.d.ts +13 -0
- package/dist/persistence/flows/FlowsPersistenceFactoryPreset.d.ts.map +1 -0
- package/dist/persistence/flows/FlowsPersistenceFactoryPreset.js +24 -0
- package/dist/persistence/flows/FlowsPersistenceFactoryPreset.js.map +1 -0
- package/dist/persistence/flows/FlowsPersistenceFilesystem.d.ts +52 -0
- package/dist/persistence/flows/FlowsPersistenceFilesystem.d.ts.map +1 -0
- package/dist/persistence/flows/FlowsPersistenceFilesystem.js +291 -0
- package/dist/persistence/flows/FlowsPersistenceFilesystem.js.map +1 -0
- package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts +71 -0
- package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -0
- package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.js +429 -0
- package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.js.map +1 -0
- package/dist/persistence/flows/FlowsPersistenceSqlite.d.ts +43 -0
- package/dist/persistence/flows/FlowsPersistenceSqlite.d.ts.map +1 -0
- package/dist/persistence/flows/FlowsPersistenceSqlite.js +259 -0
- package/dist/persistence/flows/FlowsPersistenceSqlite.js.map +1 -0
- package/dist/persistence/flows/FlowsPersistenceSupabase.d.ts +40 -0
- package/dist/persistence/flows/FlowsPersistenceSupabase.d.ts.map +1 -0
- package/dist/persistence/flows/FlowsPersistenceSupabase.js +218 -0
- package/dist/persistence/flows/FlowsPersistenceSupabase.js.map +1 -0
- package/dist/persistence/flows/FlowsPersistenceVolatile.d.ts +37 -0
- package/dist/persistence/flows/FlowsPersistenceVolatile.d.ts.map +1 -0
- package/dist/persistence/flows/FlowsPersistenceVolatile.js +151 -0
- package/dist/persistence/flows/FlowsPersistenceVolatile.js.map +1 -0
- package/dist/persistence/gptconfigs/GptConfigsPersistence.d.ts +12 -0
- package/dist/persistence/gptconfigs/GptConfigsPersistence.d.ts.map +1 -0
- package/dist/persistence/gptconfigs/GptConfigsPersistence.js +3 -0
- package/dist/persistence/gptconfigs/GptConfigsPersistence.js.map +1 -0
- package/dist/persistence/gptconfigs/GptConfigsPersistenceSqlite.d.ts +13 -0
- package/dist/persistence/gptconfigs/GptConfigsPersistenceSqlite.d.ts.map +1 -0
- package/dist/persistence/gptconfigs/GptConfigsPersistenceSqlite.js +35 -0
- package/dist/persistence/gptconfigs/GptConfigsPersistenceSqlite.js.map +1 -0
- package/dist/persistence/gptconfigs/GptConfigsPersistenceVolatile.d.ts +15 -0
- package/dist/persistence/gptconfigs/GptConfigsPersistenceVolatile.d.ts.map +1 -0
- package/dist/persistence/gptconfigs/GptConfigsPersistenceVolatile.js +31 -0
- package/dist/persistence/gptconfigs/GptConfigsPersistenceVolatile.js.map +1 -0
- package/dist/playwrightTestExtensions.d.ts.map +1 -1
- package/dist/playwrightTestExtensions.js +31 -10
- package/dist/playwrightTestExtensions.js.map +1 -1
- package/dist/tools/GoToWebpageTool.d.ts.map +1 -1
- package/dist/tools/GoToWebpageTool.js +3 -2
- package/dist/tools/GoToWebpageTool.js.map +1 -1
- package/dist/tools/SolveMfaChallenge.d.ts +32 -0
- package/dist/tools/SolveMfaChallenge.d.ts.map +1 -0
- package/dist/tools/SolveMfaChallenge.js +185 -0
- package/dist/tools/SolveMfaChallenge.js.map +1 -0
- package/dist/utils/TemplateInterpolator.d.ts +47 -0
- package/dist/utils/TemplateInterpolator.d.ts.map +1 -0
- package/dist/utils/TemplateInterpolator.js +352 -0
- package/dist/utils/TemplateInterpolator.js.map +1 -0
- package/package.json +3 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { EnvPersistence } from './EnvPersistence';
|
|
2
|
+
import { RequestContextHolder } from '../../managers/RequestContextHolder';
|
|
3
|
+
import { DonobuDeploymentEnvironment } from '../../models/DonobuDeploymentEnvironment';
|
|
4
|
+
import { EnvPersistenceFactory } from './EnvPersistenceFactory';
|
|
5
|
+
import { EnvPersistenceVolatile } from './EnvPersistenceVolatile';
|
|
6
|
+
/**
|
|
7
|
+
* A factory class for creating new EnvPersistence instances. The type of persistence
|
|
8
|
+
* objects created varies depending on this factory's constructor arguments and the current API
|
|
9
|
+
* request context.
|
|
10
|
+
*/
|
|
11
|
+
export declare class EnvPersistenceFactoryImpl implements EnvPersistenceFactory {
|
|
12
|
+
private readonly deploymentEnvironment;
|
|
13
|
+
private readonly awsS3Bucket;
|
|
14
|
+
private readonly awsS3Region;
|
|
15
|
+
private readonly googleCloudStorageBucket;
|
|
16
|
+
private readonly supabaseJwtSecretKey;
|
|
17
|
+
private readonly requestContextHolder;
|
|
18
|
+
private readonly envPersistenceVolatile;
|
|
19
|
+
/**
|
|
20
|
+
* Creates an instance.
|
|
21
|
+
*
|
|
22
|
+
* @param deploymentEnvironment The deployment environment for this application. If this is set to
|
|
23
|
+
* a value of DonobuDeploymentEnvironment.DONOBU_HOSTED_MULTI_TENANT, then the
|
|
24
|
+
* supabaseJwtSecretKey must also be specified.
|
|
25
|
+
* @param awsS3Bucket The name of the AWS S3 bucket to use for persistence.
|
|
26
|
+
* @param awsS3Region The region of the AWS S3 bucket.
|
|
27
|
+
* @param googleCloudStorageBucket The name of the Google Cloud storage bucket to use for
|
|
28
|
+
* persistence. Note that no special authentication is performed, so the current environment
|
|
29
|
+
* must be able to reach said bucket. If deployed in Google Cloud, this may be done
|
|
30
|
+
* automatically. If running locally, this may mean you have to log in to Google Cloud using
|
|
31
|
+
* the Google Cloud CLI before running this application.
|
|
32
|
+
* @param supabaseJwtSecretKey The Supabase JWT secret key used to generate new JWTs for the
|
|
33
|
+
* purposes of authentication. This key is extremely sensitive! This parameter MUST be
|
|
34
|
+
* specified if deploymentEnvironment is set to DonobuDeploymentEnvironment.DONOBU_HOSTED_MULTI_TENANT.
|
|
35
|
+
* @param requestContextHolder The object used to get the current API request context.
|
|
36
|
+
*/
|
|
37
|
+
constructor(deploymentEnvironment: DonobuDeploymentEnvironment, awsS3Bucket: string | null, awsS3Region: string | null, googleCloudStorageBucket: string | null, supabaseJwtSecretKey: string | null, requestContextHolder: RequestContextHolder, envPersistenceVolatile: EnvPersistenceVolatile | null);
|
|
38
|
+
/**
|
|
39
|
+
* Creates an instance.
|
|
40
|
+
*/
|
|
41
|
+
static fromEnvironment(deploymentEnvironment: DonobuDeploymentEnvironment, requestContextHolder: RequestContextHolder, envPersistenceVolatile: EnvPersistenceVolatile | null): Promise<EnvPersistenceFactoryImpl>;
|
|
42
|
+
/** Returns a list of all valid persistence layers. Note that the returned list may be empty! */
|
|
43
|
+
createPersistenceLayers(): Promise<EnvPersistence[]>;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=EnvPersistenceFactoryImpl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvPersistenceFactoryImpl.d.ts","sourceRoot":"","sources":["../../../src/persistence/env/EnvPersistenceFactoryImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAKhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,qBAAqB;IAoBnE,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAzBzC;;;;;;;;;;;;;;;;;OAiBG;gBAEgB,qBAAqB,EAAE,2BAA2B,EAClD,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,wBAAwB,EAAE,MAAM,GAAG,IAAI,EACvC,oBAAoB,EAAE,MAAM,GAAG,IAAI,EACnC,oBAAoB,EAAE,oBAAoB,EAC1C,sBAAsB,EAAE,sBAAsB,GAAG,IAAI;IAaxE;;OAEG;WACiB,eAAe,CACjC,qBAAqB,EAAE,2BAA2B,EAClD,oBAAoB,EAAE,oBAAoB,EAC1C,sBAAsB,EAAE,sBAAsB,GAAG,IAAI,GACpD,OAAO,CAAC,yBAAyB,CAAC;IAmBrC,gGAAgG;IACnF,uBAAuB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;CA0ClE"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EnvPersistenceFactoryImpl = void 0;
|
|
4
|
+
const EnvPersistenceGoogleCloudStorage_1 = require("./EnvPersistenceGoogleCloudStorage");
|
|
5
|
+
const EnvPersistenceSupabase_1 = require("./EnvPersistenceSupabase");
|
|
6
|
+
const SupabaseClient_1 = require("../../clients/SupabaseClient");
|
|
7
|
+
const DonobuDeploymentEnvironment_1 = require("../../models/DonobuDeploymentEnvironment");
|
|
8
|
+
const EnvPersistenceAwsS3_1 = require("./EnvPersistenceAwsS3");
|
|
9
|
+
const EnvPersistenceSqlite_1 = require("./EnvPersistenceSqlite");
|
|
10
|
+
const DonobuSqliteDb_1 = require("../DonobuSqliteDb");
|
|
11
|
+
const envVars_1 = require("../../envVars");
|
|
12
|
+
/**
|
|
13
|
+
* A factory class for creating new EnvPersistence instances. The type of persistence
|
|
14
|
+
* objects created varies depending on this factory's constructor arguments and the current API
|
|
15
|
+
* request context.
|
|
16
|
+
*/
|
|
17
|
+
class EnvPersistenceFactoryImpl {
|
|
18
|
+
/**
|
|
19
|
+
* Creates an instance.
|
|
20
|
+
*
|
|
21
|
+
* @param deploymentEnvironment The deployment environment for this application. If this is set to
|
|
22
|
+
* a value of DonobuDeploymentEnvironment.DONOBU_HOSTED_MULTI_TENANT, then the
|
|
23
|
+
* supabaseJwtSecretKey must also be specified.
|
|
24
|
+
* @param awsS3Bucket The name of the AWS S3 bucket to use for persistence.
|
|
25
|
+
* @param awsS3Region The region of the AWS S3 bucket.
|
|
26
|
+
* @param googleCloudStorageBucket The name of the Google Cloud storage bucket to use for
|
|
27
|
+
* persistence. Note that no special authentication is performed, so the current environment
|
|
28
|
+
* must be able to reach said bucket. If deployed in Google Cloud, this may be done
|
|
29
|
+
* automatically. If running locally, this may mean you have to log in to Google Cloud using
|
|
30
|
+
* the Google Cloud CLI before running this application.
|
|
31
|
+
* @param supabaseJwtSecretKey The Supabase JWT secret key used to generate new JWTs for the
|
|
32
|
+
* purposes of authentication. This key is extremely sensitive! This parameter MUST be
|
|
33
|
+
* specified if deploymentEnvironment is set to DonobuDeploymentEnvironment.DONOBU_HOSTED_MULTI_TENANT.
|
|
34
|
+
* @param requestContextHolder The object used to get the current API request context.
|
|
35
|
+
*/
|
|
36
|
+
constructor(deploymentEnvironment, awsS3Bucket, awsS3Region, googleCloudStorageBucket, supabaseJwtSecretKey, requestContextHolder, envPersistenceVolatile) {
|
|
37
|
+
this.deploymentEnvironment = deploymentEnvironment;
|
|
38
|
+
this.awsS3Bucket = awsS3Bucket;
|
|
39
|
+
this.awsS3Region = awsS3Region;
|
|
40
|
+
this.googleCloudStorageBucket = googleCloudStorageBucket;
|
|
41
|
+
this.supabaseJwtSecretKey = supabaseJwtSecretKey;
|
|
42
|
+
this.requestContextHolder = requestContextHolder;
|
|
43
|
+
this.envPersistenceVolatile = envPersistenceVolatile;
|
|
44
|
+
if (deploymentEnvironment ===
|
|
45
|
+
DonobuDeploymentEnvironment_1.DonobuDeploymentEnvironment.DONOBU_HOSTED_MULTI_TENANT &&
|
|
46
|
+
!supabaseJwtSecretKey) {
|
|
47
|
+
throw new Error('supabaseJwtSecretKey cannot be null if deploymentEnvironment is set to DONOBU_HOSTED_MULTI_TENANT.');
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Creates an instance.
|
|
52
|
+
*/
|
|
53
|
+
static async fromEnvironment(deploymentEnvironment, requestContextHolder, envPersistenceVolatile) {
|
|
54
|
+
const awsS3Bucket = process.env[envVars_1.ENV_VAR_NAMES.AWS_S3_BUCKET];
|
|
55
|
+
const awsS3Region = process.env[envVars_1.ENV_VAR_NAMES.AWS_S3_REGION || envVars_1.ENV_VAR_NAMES.AWS_REGION];
|
|
56
|
+
const googleCloudStorageBucket = process.env[envVars_1.ENV_VAR_NAMES.GOOGLE_CLOUD_STORAGE_BUCKET];
|
|
57
|
+
const supabaseJwtSecretKey = process.env[envVars_1.ENV_VAR_NAMES.SUPABASE_JWT_SECRET_KEY];
|
|
58
|
+
return new EnvPersistenceFactoryImpl(deploymentEnvironment, awsS3Bucket ?? null, awsS3Region ?? null, googleCloudStorageBucket ?? null, supabaseJwtSecretKey ?? null, requestContextHolder, envPersistenceVolatile ?? null);
|
|
59
|
+
}
|
|
60
|
+
/** Returns a list of all valid persistence layers. Note that the returned list may be empty! */
|
|
61
|
+
async createPersistenceLayers() {
|
|
62
|
+
const layers = [];
|
|
63
|
+
const requestContext = this.requestContextHolder.get();
|
|
64
|
+
if (this.awsS3Bucket && this.awsS3Region) {
|
|
65
|
+
layers.push(new EnvPersistenceAwsS3_1.EnvPersistenceAwsS3(this.awsS3Bucket, this.awsS3Region));
|
|
66
|
+
}
|
|
67
|
+
if (this.googleCloudStorageBucket) {
|
|
68
|
+
layers.push(await EnvPersistenceGoogleCloudStorage_1.EnvPersistenceGoogleCloudStorage.create(this.googleCloudStorageBucket));
|
|
69
|
+
}
|
|
70
|
+
if (this.deploymentEnvironment ===
|
|
71
|
+
DonobuDeploymentEnvironment_1.DonobuDeploymentEnvironment.DONOBU_HOSTED_MULTI_TENANT &&
|
|
72
|
+
requestContext.accessToken &&
|
|
73
|
+
this.supabaseJwtSecretKey) {
|
|
74
|
+
layers.push(new EnvPersistenceSupabase_1.EnvPersistenceSupabase(SupabaseClient_1.SupabaseClient.createClient(requestContext.accessToken, this.supabaseJwtSecretKey)));
|
|
75
|
+
}
|
|
76
|
+
else if (this.deploymentEnvironment === DonobuDeploymentEnvironment_1.DonobuDeploymentEnvironment.LOCAL) {
|
|
77
|
+
layers.push(await EnvPersistenceSqlite_1.EnvPersistenceSqlite.create((0, DonobuSqliteDb_1.getDonobuSqliteDatabase)()));
|
|
78
|
+
}
|
|
79
|
+
if (this.envPersistenceVolatile) {
|
|
80
|
+
layers.push(this.envPersistenceVolatile);
|
|
81
|
+
}
|
|
82
|
+
return layers;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.EnvPersistenceFactoryImpl = EnvPersistenceFactoryImpl;
|
|
86
|
+
//# sourceMappingURL=EnvPersistenceFactoryImpl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvPersistenceFactoryImpl.js","sourceRoot":"","sources":["../../../src/persistence/env/EnvPersistenceFactoryImpl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EnvPersistence } from './EnvPersistence';
|
|
2
|
+
import { EnvPersistenceFactory } from './EnvPersistenceFactory';
|
|
3
|
+
/**
|
|
4
|
+
* An implementation of EnvPersistenceFactory that always returns the same
|
|
5
|
+
* persistence layers given at construction time.
|
|
6
|
+
*/
|
|
7
|
+
export declare class EnvPersistenceFactoryPreset implements EnvPersistenceFactory {
|
|
8
|
+
private readonly persistenceLayers;
|
|
9
|
+
constructor(persistenceLayers: EnvPersistence[]);
|
|
10
|
+
createPersistenceLayers(): Promise<EnvPersistence[]>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=EnvPersistenceFactoryPreset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvPersistenceFactoryPreset.d.ts","sourceRoot":"","sources":["../../../src/persistence/env/EnvPersistenceFactoryPreset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;GAGG;AACH,qBAAa,2BAA4B,YAAW,qBAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,cAAc,EAAE;IAE1D,uBAAuB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;CAGlE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EnvPersistenceFactoryPreset = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* An implementation of EnvPersistenceFactory that always returns the same
|
|
6
|
+
* persistence layers given at construction time.
|
|
7
|
+
*/
|
|
8
|
+
class EnvPersistenceFactoryPreset {
|
|
9
|
+
constructor(persistenceLayers) {
|
|
10
|
+
this.persistenceLayers = persistenceLayers;
|
|
11
|
+
}
|
|
12
|
+
async createPersistenceLayers() {
|
|
13
|
+
return this.persistenceLayers;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.EnvPersistenceFactoryPreset = EnvPersistenceFactoryPreset;
|
|
17
|
+
//# sourceMappingURL=EnvPersistenceFactoryPreset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvPersistenceFactoryPreset.js","sourceRoot":"","sources":["../../../src/persistence/env/EnvPersistenceFactoryPreset.ts"],"names":[],"mappings":";;;AAGA;;;GAGG;AACH,MAAa,2BAA2B;IACtC,YAAoC,iBAAmC;QAAnC,sBAAiB,GAAjB,iBAAiB,CAAkB;IAAG,CAAC;IAEpE,KAAK,CAAC,uBAAuB;QAClC,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;CACF;AAND,kEAMC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { EnvPersistence } from './EnvPersistence';
|
|
2
|
+
/**
|
|
3
|
+
* A persistence implementation that uses the filesystem.
|
|
4
|
+
*/
|
|
5
|
+
export declare class EnvPersistenceFilesystem implements EnvPersistence {
|
|
6
|
+
readonly environmentDirectory: string;
|
|
7
|
+
private constructor();
|
|
8
|
+
static create(storageDirectory: string): Promise<EnvPersistenceFilesystem>;
|
|
9
|
+
/**
|
|
10
|
+
* Set a piece of environment data that is available across all flows.
|
|
11
|
+
*/
|
|
12
|
+
setEnvironmentDatum(key: string, value: string): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Delete a piece of environment data by its key.
|
|
15
|
+
* No-op if the data does not exist.
|
|
16
|
+
*/
|
|
17
|
+
deleteEnvironmentDatum(key: string): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Retrieve a piece of environment data by its key.
|
|
20
|
+
*/
|
|
21
|
+
getEnvironmentDatum(key: string): Promise<string | undefined>;
|
|
22
|
+
/**
|
|
23
|
+
* Get all environment data.
|
|
24
|
+
*/
|
|
25
|
+
getEnvironmentData(): Promise<Record<string, string>>;
|
|
26
|
+
/**
|
|
27
|
+
* Encode a key to be used as a filename.
|
|
28
|
+
* This ensures special characters in keys don't cause filesystem issues.
|
|
29
|
+
*/
|
|
30
|
+
private encodeKey;
|
|
31
|
+
/**
|
|
32
|
+
* Decode a filename back to the original key.
|
|
33
|
+
*/
|
|
34
|
+
private decodeKey;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=EnvPersistenceFilesystem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvPersistenceFilesystem.d.ts","sourceRoot":"","sources":["../../../src/persistence/env/EnvPersistenceFilesystem.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;GAEG;AACH,qBAAa,wBAAyB,YAAW,cAAc;aACzB,oBAAoB,EAAE,MAAM;IAAhE,OAAO;WAGa,MAAM,CACxB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,wBAAwB,CAAC;IAWpC;;OAEG;IACU,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa3E;;;OAGG;IACU,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB/D;;OAEG;IACU,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAsB1E;;OAEG;IACU,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAuClE;;;OAGG;IACH,OAAO,CAAC,SAAS;IAKjB;;OAEG;IACH,OAAO,CAAC,SAAS;CAGlB"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.EnvPersistenceFilesystem = void 0;
|
|
7
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const Logger_1 = require("../../utils/Logger");
|
|
10
|
+
/**
|
|
11
|
+
* A persistence implementation that uses the filesystem.
|
|
12
|
+
*/
|
|
13
|
+
class EnvPersistenceFilesystem {
|
|
14
|
+
constructor(environmentDirectory) {
|
|
15
|
+
this.environmentDirectory = environmentDirectory;
|
|
16
|
+
}
|
|
17
|
+
// Update the create method to also create the environment directory
|
|
18
|
+
static async create(storageDirectory) {
|
|
19
|
+
const environmentDirectory = path_1.default.join(storageDirectory, 'environment');
|
|
20
|
+
// Ensure directory exists
|
|
21
|
+
await promises_1.default.mkdir(environmentDirectory, { recursive: true }).catch((err) => {
|
|
22
|
+
Logger_1.appLogger.error('Failed to create environment directory', err);
|
|
23
|
+
});
|
|
24
|
+
return new EnvPersistenceFilesystem(environmentDirectory);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Set a piece of environment data that is available across all flows.
|
|
28
|
+
*/
|
|
29
|
+
async setEnvironmentDatum(key, value) {
|
|
30
|
+
if (!key) {
|
|
31
|
+
throw new Error('Key cannot be empty');
|
|
32
|
+
}
|
|
33
|
+
// Create the environment directory if it doesn't exist
|
|
34
|
+
await promises_1.default.mkdir(this.environmentDirectory, { recursive: true });
|
|
35
|
+
// Create a file with the key as the filename (properly encoded)
|
|
36
|
+
const filePath = path_1.default.join(this.environmentDirectory, this.encodeKey(key));
|
|
37
|
+
await promises_1.default.writeFile(filePath, value, 'utf-8');
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Delete a piece of environment data by its key.
|
|
41
|
+
* No-op if the data does not exist.
|
|
42
|
+
*/
|
|
43
|
+
async deleteEnvironmentDatum(key) {
|
|
44
|
+
if (!key) {
|
|
45
|
+
return; // No-op if key is empty
|
|
46
|
+
}
|
|
47
|
+
const filePath = path_1.default.join(this.environmentDirectory, this.encodeKey(key));
|
|
48
|
+
try {
|
|
49
|
+
// Check if file exists before attempting to delete
|
|
50
|
+
await promises_1.default.access(filePath);
|
|
51
|
+
await promises_1.default.unlink(filePath);
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
// Ignore file not found errors
|
|
55
|
+
if (error.code !== 'ENOENT') {
|
|
56
|
+
Logger_1.appLogger.warn(`Failed to delete environment data for key: ${key}`, error);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Retrieve a piece of environment data by its key.
|
|
62
|
+
*/
|
|
63
|
+
async getEnvironmentDatum(key) {
|
|
64
|
+
if (!key) {
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
const filePath = path_1.default.join(this.environmentDirectory, this.encodeKey(key));
|
|
68
|
+
try {
|
|
69
|
+
const content = await promises_1.default.readFile(filePath, 'utf-8');
|
|
70
|
+
return content;
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
// Return undefined if the file doesn't exist
|
|
74
|
+
if (error.code === 'ENOENT') {
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
// Log other errors but still return undefined
|
|
78
|
+
Logger_1.appLogger.warn(`Failed to read environment data for key: ${key}`, error);
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get all environment data.
|
|
84
|
+
*/
|
|
85
|
+
async getEnvironmentData() {
|
|
86
|
+
const result = {};
|
|
87
|
+
try {
|
|
88
|
+
// Create the directory if it doesn't exist
|
|
89
|
+
await promises_1.default.mkdir(this.environmentDirectory, { recursive: true });
|
|
90
|
+
// Get all files in the environment directory
|
|
91
|
+
const files = await promises_1.default.readdir(this.environmentDirectory);
|
|
92
|
+
// Process each file
|
|
93
|
+
for (const encodedKey of files) {
|
|
94
|
+
try {
|
|
95
|
+
const filePath = path_1.default.join(this.environmentDirectory, encodedKey);
|
|
96
|
+
// Skip directories and non-files
|
|
97
|
+
const stats = await promises_1.default.stat(filePath);
|
|
98
|
+
if (!stats.isFile()) {
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
// Read file content and add to result
|
|
102
|
+
const content = await promises_1.default.readFile(filePath, 'utf-8');
|
|
103
|
+
const key = this.decodeKey(encodedKey);
|
|
104
|
+
result[key] = content;
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
Logger_1.appLogger.warn(`Failed to read environment data file: ${encodedKey}`, error);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
Logger_1.appLogger.error('Failed to read environment directory', error);
|
|
113
|
+
}
|
|
114
|
+
return result;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Encode a key to be used as a filename.
|
|
118
|
+
* This ensures special characters in keys don't cause filesystem issues.
|
|
119
|
+
*/
|
|
120
|
+
encodeKey(key) {
|
|
121
|
+
// Base64 encode to handle any special characters
|
|
122
|
+
return Buffer.from(key).toString('base64');
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Decode a filename back to the original key.
|
|
126
|
+
*/
|
|
127
|
+
decodeKey(encodedKey) {
|
|
128
|
+
return Buffer.from(encodedKey, 'base64').toString('utf-8');
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
exports.EnvPersistenceFilesystem = EnvPersistenceFilesystem;
|
|
132
|
+
//# sourceMappingURL=EnvPersistenceFilesystem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvPersistenceFilesystem.js","sourceRoot":"","sources":["../../../src/persistence/env/EnvPersistenceFilesystem.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { EnvPersistence } from './EnvPersistence';
|
|
2
|
+
/**
|
|
3
|
+
* A persistence implementation that uses Google Cloud Storage.
|
|
4
|
+
*
|
|
5
|
+
* If you are running locally, be sure to have the Google Cloud CLI installed
|
|
6
|
+
* so that you can authenticate using `gcloud auth application-default login`
|
|
7
|
+
* before running Donobu.
|
|
8
|
+
*
|
|
9
|
+
* If Donobu is being run in the Google cloud, be sure that the service account
|
|
10
|
+
* in which it is being run has permissions to read and write the Google Cloud
|
|
11
|
+
* Storage bucket specified as a constructor argument.
|
|
12
|
+
*/
|
|
13
|
+
export declare class EnvPersistenceGoogleCloudStorage implements EnvPersistence {
|
|
14
|
+
private readonly bucket;
|
|
15
|
+
private static readonly ENVIRONMENT_DATA_PREFIX;
|
|
16
|
+
/**
|
|
17
|
+
* Dynamically imports the Google Cloud Storage library.
|
|
18
|
+
* This helps to delay loading the library until it's actually needed.
|
|
19
|
+
*/
|
|
20
|
+
private static importGoogleCloudStorage;
|
|
21
|
+
static create(bucketName: string): Promise<EnvPersistenceGoogleCloudStorage>;
|
|
22
|
+
private constructor();
|
|
23
|
+
setEnvironmentDatum(key: string, value: string): Promise<void>;
|
|
24
|
+
deleteEnvironmentDatum(key: string): Promise<void>;
|
|
25
|
+
getEnvironmentDatum(key: string): Promise<string | undefined>;
|
|
26
|
+
getEnvironmentData(): Promise<Record<string, string>>;
|
|
27
|
+
private uploadString;
|
|
28
|
+
private downloadString;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=EnvPersistenceGoogleCloudStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvPersistenceGoogleCloudStorage.d.ts","sourceRoot":"","sources":["../../../src/persistence/env/EnvPersistenceGoogleCloudStorage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AASlD;;;;;;;;;;GAUG;AACH,qBAAa,gCAAiC,YAAW,cAAc;IA6CjD,OAAO,CAAC,QAAQ,CAAC,MAAM;IA5C3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAkB;IAEjE;;;OAGG;mBACkB,wBAAwB;WAezB,MAAM,CACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gCAAgC,CAAC;IAqB5C,OAAO;IAEM,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9D,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBlD,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAS7D,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YA+BpD,YAAY;YAYZ,cAAc;CAW7B"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EnvPersistenceGoogleCloudStorage = void 0;
|
|
4
|
+
const Logger_1 = require("../../utils/Logger");
|
|
5
|
+
/**
|
|
6
|
+
* A persistence implementation that uses Google Cloud Storage.
|
|
7
|
+
*
|
|
8
|
+
* If you are running locally, be sure to have the Google Cloud CLI installed
|
|
9
|
+
* so that you can authenticate using `gcloud auth application-default login`
|
|
10
|
+
* before running Donobu.
|
|
11
|
+
*
|
|
12
|
+
* If Donobu is being run in the Google cloud, be sure that the service account
|
|
13
|
+
* in which it is being run has permissions to read and write the Google Cloud
|
|
14
|
+
* Storage bucket specified as a constructor argument.
|
|
15
|
+
*/
|
|
16
|
+
class EnvPersistenceGoogleCloudStorage {
|
|
17
|
+
/**
|
|
18
|
+
* Dynamically imports the Google Cloud Storage library.
|
|
19
|
+
* This helps to delay loading the library until it's actually needed.
|
|
20
|
+
*/
|
|
21
|
+
static async importGoogleCloudStorage() {
|
|
22
|
+
try {
|
|
23
|
+
// Dynamic import to delay loading until needed
|
|
24
|
+
const module = await import('@google-cloud/storage');
|
|
25
|
+
return {
|
|
26
|
+
Storage: module.Storage,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
Logger_1.appLogger.error('Failed to import Google Cloud Storage', error);
|
|
31
|
+
throw new Error('Failed to import Google Cloud Storage library');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
static async create(bucketName) {
|
|
35
|
+
// Only import the Google Cloud Storage library when creating an instance
|
|
36
|
+
const { Storage } = await EnvPersistenceGoogleCloudStorage.importGoogleCloudStorage();
|
|
37
|
+
const storage = new Storage();
|
|
38
|
+
const bucket = storage.bucket(bucketName);
|
|
39
|
+
return bucket
|
|
40
|
+
.exists()
|
|
41
|
+
.then(([exists]) => {
|
|
42
|
+
if (!exists) {
|
|
43
|
+
throw new Error(`Bucket ${bucketName} does not exist.`);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
return bucket;
|
|
47
|
+
}
|
|
48
|
+
})
|
|
49
|
+
.then((bucket) => {
|
|
50
|
+
return new EnvPersistenceGoogleCloudStorage(bucket);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
constructor(bucket) {
|
|
54
|
+
this.bucket = bucket;
|
|
55
|
+
}
|
|
56
|
+
async setEnvironmentDatum(key, value) {
|
|
57
|
+
if (!key) {
|
|
58
|
+
throw new Error('Key cannot be empty');
|
|
59
|
+
}
|
|
60
|
+
const objectName = `${EnvPersistenceGoogleCloudStorage.ENVIRONMENT_DATA_PREFIX}${encodeURIComponent(key)}`;
|
|
61
|
+
await this.uploadString(objectName, value, 'text/plain');
|
|
62
|
+
}
|
|
63
|
+
async deleteEnvironmentDatum(key) {
|
|
64
|
+
if (!key) {
|
|
65
|
+
return; // No-op if key is empty
|
|
66
|
+
}
|
|
67
|
+
const objectName = `${EnvPersistenceGoogleCloudStorage.ENVIRONMENT_DATA_PREFIX}${encodeURIComponent(key)}`;
|
|
68
|
+
const file = this.bucket.file(objectName);
|
|
69
|
+
try {
|
|
70
|
+
const [exists] = await file.exists();
|
|
71
|
+
if (exists) {
|
|
72
|
+
await file.delete();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
// Ignore errors if the object doesn't exist
|
|
77
|
+
Logger_1.appLogger.warn(`Failed to delete environment data for key: ${key}`, error);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async getEnvironmentDatum(key) {
|
|
81
|
+
if (!key) {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
const objectName = `${EnvPersistenceGoogleCloudStorage.ENVIRONMENT_DATA_PREFIX}${encodeURIComponent(key)}`;
|
|
85
|
+
return (await this.downloadString(objectName)) ?? undefined;
|
|
86
|
+
}
|
|
87
|
+
async getEnvironmentData() {
|
|
88
|
+
const result = {};
|
|
89
|
+
try {
|
|
90
|
+
const prefix = EnvPersistenceGoogleCloudStorage.ENVIRONMENT_DATA_PREFIX;
|
|
91
|
+
const [files] = await this.bucket.getFiles({ prefix });
|
|
92
|
+
// Process each file
|
|
93
|
+
for (const file of files) {
|
|
94
|
+
try {
|
|
95
|
+
// Extract the key from the file path
|
|
96
|
+
const encodedKey = file.name.substring(prefix.length);
|
|
97
|
+
const key = decodeURIComponent(encodedKey);
|
|
98
|
+
// Get the file content
|
|
99
|
+
const [content] = await file.download();
|
|
100
|
+
result[key] = content.toString('utf-8');
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
Logger_1.appLogger.warn(`Failed to get environment data for key: ${file.name}`, error);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
Logger_1.appLogger.error('Failed to list environment data files', error);
|
|
109
|
+
}
|
|
110
|
+
return result;
|
|
111
|
+
}
|
|
112
|
+
async uploadString(objectName, data, contentType) {
|
|
113
|
+
const file = this.bucket.file(objectName);
|
|
114
|
+
await file.save(data, {
|
|
115
|
+
contentType,
|
|
116
|
+
metadata: { contentType },
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
async downloadString(objectName) {
|
|
120
|
+
const file = this.bucket.file(objectName);
|
|
121
|
+
const [exists] = await file.exists();
|
|
122
|
+
if (!exists) {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
const [content] = await file.download();
|
|
126
|
+
return content.toString();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
exports.EnvPersistenceGoogleCloudStorage = EnvPersistenceGoogleCloudStorage;
|
|
130
|
+
EnvPersistenceGoogleCloudStorage.ENVIRONMENT_DATA_PREFIX = 'environment/';
|
|
131
|
+
//# sourceMappingURL=EnvPersistenceGoogleCloudStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvPersistenceGoogleCloudStorage.js","sourceRoot":"","sources":["../../../src/persistence/env/EnvPersistenceGoogleCloudStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import Database from 'better-sqlite3';
|
|
2
|
+
import { EnvPersistence } from './EnvPersistence';
|
|
3
|
+
/**
|
|
4
|
+
* A persistence implementation that uses SQLite for storage.
|
|
5
|
+
*/
|
|
6
|
+
export declare class EnvPersistenceSqlite implements EnvPersistence {
|
|
7
|
+
private readonly db;
|
|
8
|
+
private constructor();
|
|
9
|
+
static create(db: Database.Database): Promise<EnvPersistenceSqlite>;
|
|
10
|
+
setEnvironmentDatum(key: string, value: string): Promise<void>;
|
|
11
|
+
deleteEnvironmentDatum(key: string): Promise<void>;
|
|
12
|
+
getEnvironmentDatum(key: string): Promise<string | undefined>;
|
|
13
|
+
/**
|
|
14
|
+
* Get all environment data.
|
|
15
|
+
*/
|
|
16
|
+
getEnvironmentData(): Promise<Record<string, string>>;
|
|
17
|
+
close(): void;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=EnvPersistenceSqlite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvPersistenceSqlite.d.ts","sourceRoot":"","sources":["../../../src/persistence/env/EnvPersistenceSqlite.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;GAEG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,EAAE;IAAvC,OAAO;WAEa,MAAM,CACxB,EAAE,EAAE,QAAQ,CAAC,QAAQ,GACpB,OAAO,CAAC,oBAAoB,CAAC;IAInB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9D,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASlD,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAa1E;;OAEG;IACU,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAc3D,KAAK,IAAI,IAAI;CAGrB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EnvPersistenceSqlite = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* A persistence implementation that uses SQLite for storage.
|
|
6
|
+
*/
|
|
7
|
+
class EnvPersistenceSqlite {
|
|
8
|
+
constructor(db) {
|
|
9
|
+
this.db = db;
|
|
10
|
+
}
|
|
11
|
+
static async create(db) {
|
|
12
|
+
return new EnvPersistenceSqlite(db);
|
|
13
|
+
}
|
|
14
|
+
async setEnvironmentDatum(key, value) {
|
|
15
|
+
if (!key) {
|
|
16
|
+
throw new Error('Key cannot be empty');
|
|
17
|
+
}
|
|
18
|
+
const stmt = this.db.prepare('INSERT OR REPLACE INTO environment_data (name, value) VALUES (?, ?)');
|
|
19
|
+
stmt.run(key, value);
|
|
20
|
+
}
|
|
21
|
+
async deleteEnvironmentDatum(key) {
|
|
22
|
+
if (!key) {
|
|
23
|
+
return; // No-op if key is empty
|
|
24
|
+
}
|
|
25
|
+
const stmt = this.db.prepare('DELETE FROM environment_data WHERE name = ?');
|
|
26
|
+
stmt.run(key);
|
|
27
|
+
}
|
|
28
|
+
async getEnvironmentDatum(key) {
|
|
29
|
+
if (!key) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
const stmt = this.db.prepare('SELECT value FROM environment_data WHERE name = ?');
|
|
33
|
+
const row = stmt.get(key);
|
|
34
|
+
return row ? row.value : undefined;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Get all environment data.
|
|
38
|
+
*/
|
|
39
|
+
async getEnvironmentData() {
|
|
40
|
+
const result = {};
|
|
41
|
+
const stmt = this.db.prepare('SELECT name, value FROM environment_data');
|
|
42
|
+
const rows = stmt.all();
|
|
43
|
+
for (const row of rows) {
|
|
44
|
+
result[row.name] = row.value;
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
// Database management
|
|
49
|
+
close() {
|
|
50
|
+
this.db.close();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.EnvPersistenceSqlite = EnvPersistenceSqlite;
|
|
54
|
+
//# sourceMappingURL=EnvPersistenceSqlite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvPersistenceSqlite.js","sourceRoot":"","sources":["../../../src/persistence/env/EnvPersistenceSqlite.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACH,MAAa,oBAAoB;IAC/B,YAAqC,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAEvD,MAAM,CAAC,KAAK,CAAC,MAAM,CACxB,EAAqB;QAErB,OAAO,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,GAAW,EAAE,KAAa;QACzD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,qEAAqE,CACtE,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,GAAW;QAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,wBAAwB;QAClC,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;QAC5E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,GAAW;QAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,mDAAmD,CACpD,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAkC,CAAC;QAC3D,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,kBAAkB;QAC7B,MAAM,MAAM,GAA2B,EAAE,CAAC;QAE1C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAuC,CAAC;QAE7D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;QAC/B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sBAAsB;IACf,KAAK;QACV,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;CACF;AA/DD,oDA+DC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SupabaseClient } from '../../clients/SupabaseClient';
|
|
2
|
+
import { EnvPersistence } from './EnvPersistence';
|
|
3
|
+
/**
|
|
4
|
+
* A persistence implementation that uses Supabase for storage via
|
|
5
|
+
* its PostgREST endpoints. This implementation assumes that row-Level Security (RLS) is enabled and
|
|
6
|
+
* enforced by Supabase.
|
|
7
|
+
*/
|
|
8
|
+
export declare class EnvPersistenceSupabase implements EnvPersistence {
|
|
9
|
+
private readonly supabaseHttpClient;
|
|
10
|
+
private static readonly ENVIRONMENT_DATA_TABLE;
|
|
11
|
+
constructor(supabaseHttpClient: SupabaseClient);
|
|
12
|
+
setEnvironmentDatum(key: string, value: string): Promise<void>;
|
|
13
|
+
deleteEnvironmentDatum(key: string): Promise<void>;
|
|
14
|
+
getEnvironmentDatum(key: string): Promise<string | undefined>;
|
|
15
|
+
getEnvironmentData(): Promise<Record<string, string>>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=EnvPersistenceSupabase.d.ts.map
|