@webiny/project 6.3.0 → 6.4.0-beta.0
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/GracefulError.js +13 -15
- package/GracefulError.js.map +1 -1
- package/ProjectError.js +11 -13
- package/ProjectError.js.map +1 -1
- package/ProjectSdk.js +113 -129
- package/ProjectSdk.js.map +1 -1
- package/abstractions/createAbstraction.js +3 -2
- package/abstractions/createAbstraction.js.map +1 -1
- package/abstractions/features/BuildApp.js +2 -1
- package/abstractions/features/BuildApp.js.map +1 -1
- package/abstractions/features/BuildExtension.js +2 -1
- package/abstractions/features/BuildExtension.js.map +1 -1
- package/abstractions/features/DeployApp.js +2 -1
- package/abstractions/features/DeployApp.js.map +1 -1
- package/abstractions/features/DestroyApp.js +2 -1
- package/abstractions/features/DestroyApp.js.map +1 -1
- package/abstractions/features/ExportStack.js +2 -1
- package/abstractions/features/ExportStack.js.map +1 -1
- package/abstractions/features/GetApp.js +2 -1
- package/abstractions/features/GetApp.js.map +1 -1
- package/abstractions/features/GetAppOutput.js +2 -1
- package/abstractions/features/GetAppOutput.js.map +1 -1
- package/abstractions/features/GetAppStackOutput.js +2 -6
- package/abstractions/features/GetAppStackOutput.js.map +1 -1
- package/abstractions/features/GetFeatureFlags.js +2 -1
- package/abstractions/features/GetFeatureFlags.js.map +1 -1
- package/abstractions/features/GetLogger.js +2 -1
- package/abstractions/features/GetLogger.js.map +1 -1
- package/abstractions/features/GetProductionEnvironments.js +2 -1
- package/abstractions/features/GetProductionEnvironments.js.map +1 -1
- package/abstractions/features/GetProject.js +2 -1
- package/abstractions/features/GetProject.js.map +1 -1
- package/abstractions/features/GetProjectConfig.js +2 -1
- package/abstractions/features/GetProjectConfig.js.map +1 -1
- package/abstractions/features/GetProjectInfo.js +2 -1
- package/abstractions/features/GetProjectInfo.js.map +1 -1
- package/abstractions/features/GetPulumiResourceNamePrefix.js +2 -1
- package/abstractions/features/GetPulumiResourceNamePrefix.js.map +1 -1
- package/abstractions/features/InstallExtension.js +2 -1
- package/abstractions/features/InstallExtension.js.map +1 -1
- package/abstractions/features/IsCi.js +2 -1
- package/abstractions/features/IsCi.js.map +1 -1
- package/abstractions/features/IsTelemetryEnabled.js +2 -1
- package/abstractions/features/IsTelemetryEnabled.js.map +1 -1
- package/abstractions/features/IsWcpEnabled.js +2 -1
- package/abstractions/features/IsWcpEnabled.js.map +1 -1
- package/abstractions/features/IsWebinyJsRepo.js +2 -1
- package/abstractions/features/IsWebinyJsRepo.js.map +1 -1
- package/abstractions/features/RefreshApp.js +2 -1
- package/abstractions/features/RefreshApp.js.map +1 -1
- package/abstractions/features/RunPulumiCommand.js +2 -1
- package/abstractions/features/RunPulumiCommand.js.map +1 -1
- package/abstractions/features/ValidateProjectConfig.js +2 -1
- package/abstractions/features/ValidateProjectConfig.js.map +1 -1
- package/abstractions/features/Watch.js +2 -1
- package/abstractions/features/Watch.js.map +1 -1
- package/abstractions/features/hooks/AdminAfterBuild.js +2 -1
- package/abstractions/features/hooks/AdminAfterBuild.js.map +1 -1
- package/abstractions/features/hooks/AdminAfterDeploy.js +2 -1
- package/abstractions/features/hooks/AdminAfterDeploy.js.map +1 -1
- package/abstractions/features/hooks/AdminBeforeBuild.js +2 -1
- package/abstractions/features/hooks/AdminBeforeBuild.js.map +1 -1
- package/abstractions/features/hooks/AdminBeforeDeploy.js +2 -1
- package/abstractions/features/hooks/AdminBeforeDeploy.js.map +1 -1
- package/abstractions/features/hooks/AdminBeforeWatch.js +2 -1
- package/abstractions/features/hooks/AdminBeforeWatch.js.map +1 -1
- package/abstractions/features/hooks/AfterBuild.js +2 -1
- package/abstractions/features/hooks/AfterBuild.js.map +1 -1
- package/abstractions/features/hooks/AfterDeploy.js +2 -1
- package/abstractions/features/hooks/AfterDeploy.js.map +1 -1
- package/abstractions/features/hooks/ApiAfterBuild.js +2 -1
- package/abstractions/features/hooks/ApiAfterBuild.js.map +1 -1
- package/abstractions/features/hooks/ApiAfterDeploy.js +2 -1
- package/abstractions/features/hooks/ApiAfterDeploy.js.map +1 -1
- package/abstractions/features/hooks/ApiBeforeBuild.js +2 -1
- package/abstractions/features/hooks/ApiBeforeBuild.js.map +1 -1
- package/abstractions/features/hooks/ApiBeforeDeploy.js +2 -1
- package/abstractions/features/hooks/ApiBeforeDeploy.js.map +1 -1
- package/abstractions/features/hooks/ApiBeforeWatch.js +2 -1
- package/abstractions/features/hooks/ApiBeforeWatch.js.map +1 -1
- package/abstractions/features/hooks/BeforeBuild.js +2 -1
- package/abstractions/features/hooks/BeforeBuild.js.map +1 -1
- package/abstractions/features/hooks/BeforeDeploy.js +2 -1
- package/abstractions/features/hooks/BeforeDeploy.js.map +1 -1
- package/abstractions/features/hooks/BeforeWatch.js +2 -1
- package/abstractions/features/hooks/BeforeWatch.js.map +1 -1
- package/abstractions/features/hooks/CoreAfterBuild.js +2 -1
- package/abstractions/features/hooks/CoreAfterBuild.js.map +1 -1
- package/abstractions/features/hooks/CoreAfterDeploy.js +2 -1
- package/abstractions/features/hooks/CoreAfterDeploy.js.map +1 -1
- package/abstractions/features/hooks/CoreBeforeBuild.js +2 -1
- package/abstractions/features/hooks/CoreBeforeBuild.js.map +1 -1
- package/abstractions/features/hooks/CoreBeforeDeploy.js +2 -1
- package/abstractions/features/hooks/CoreBeforeDeploy.js.map +1 -1
- package/abstractions/features/hooks/CoreBeforeWatch.js +2 -1
- package/abstractions/features/hooks/CoreBeforeWatch.js.map +1 -1
- package/abstractions/features/hooks/index.js +0 -2
- package/abstractions/features/index.js +0 -2
- package/abstractions/index.js +0 -2
- package/abstractions/models/IAppModel.js +0 -3
- package/abstractions/models/IAppPackageModel.js +0 -3
- package/abstractions/models/IPathModel.js +0 -3
- package/abstractions/models/IProjectConfigDto.js +0 -3
- package/abstractions/models/IProjectConfigModel.js +0 -3
- package/abstractions/models/IProjectModel.js +0 -3
- package/abstractions/models/IUrlModel.js +0 -3
- package/abstractions/models/IWcpEnvironmentDto.js +0 -3
- package/abstractions/models/IWcpEnvironmentModel.js +0 -3
- package/abstractions/models/IWcpUserDto.js +0 -3
- package/abstractions/models/IWcpUserModel.js +0 -3
- package/abstractions/models/IWcpUserPatDto.js +0 -3
- package/abstractions/models/IWcpUserPatModel.js +0 -3
- package/abstractions/models/PackagesBuilder/IPackagesBuilder.js +0 -3
- package/abstractions/models/PackagesBuilder/IRunnableBuildProcess.js +0 -3
- package/abstractions/models/PackagesBuilder/IRunnableBuildProcesses.js +0 -3
- package/abstractions/models/PackagesBuilder/index.js +0 -3
- package/abstractions/models/index.js +0 -3
- package/abstractions/services/BuildAppWorkspaceService.js +2 -1
- package/abstractions/services/BuildAppWorkspaceService.js.map +1 -1
- package/abstractions/services/BuildProjectWorkspaceService.js +2 -1
- package/abstractions/services/BuildProjectWorkspaceService.js.map +1 -1
- package/abstractions/services/GetAppPackagesService.js +2 -1
- package/abstractions/services/GetAppPackagesService.js.map +1 -1
- package/abstractions/services/GetAppService.js +2 -1
- package/abstractions/services/GetAppService.js.map +1 -1
- package/abstractions/services/GetCwdService.js +2 -1
- package/abstractions/services/GetCwdService.js.map +1 -1
- package/abstractions/services/GetProjectConfigService.js +2 -1
- package/abstractions/services/GetProjectConfigService.js.map +1 -1
- package/abstractions/services/GetProjectIdService.js +2 -1
- package/abstractions/services/GetProjectIdService.js.map +1 -1
- package/abstractions/services/GetProjectService.js +2 -1
- package/abstractions/services/GetProjectService.js.map +1 -1
- package/abstractions/services/GetProjectVersionService.js +2 -1
- package/abstractions/services/GetProjectVersionService.js.map +1 -1
- package/abstractions/services/GetPulumiService.js +2 -1
- package/abstractions/services/GetPulumiService.js.map +1 -1
- package/abstractions/services/InitProjectSdkService.js +2 -1
- package/abstractions/services/InitProjectSdkService.js.map +1 -1
- package/abstractions/services/InstallExtensionService.js +2 -1
- package/abstractions/services/InstallExtensionService.js.map +1 -1
- package/abstractions/services/IsRemotePulumiBackendService.js +2 -1
- package/abstractions/services/IsRemotePulumiBackendService.js.map +1 -1
- package/abstractions/services/ListAppLambdaFunctionsService.js +2 -1
- package/abstractions/services/ListAppLambdaFunctionsService.js.map +1 -1
- package/abstractions/services/ListDeployedEnvironmentsService.js +2 -1
- package/abstractions/services/ListDeployedEnvironmentsService.js.map +1 -1
- package/abstractions/services/ListPackagesInAppWorkspaceService.js +2 -1
- package/abstractions/services/ListPackagesInAppWorkspaceService.js.map +1 -1
- package/abstractions/services/ListPackagesService.js +2 -1
- package/abstractions/services/ListPackagesService.js.map +1 -1
- package/abstractions/services/LoadEnvVarsService.js +2 -1
- package/abstractions/services/LoadEnvVarsService.js.map +1 -1
- package/abstractions/services/LocalStorageService.js +2 -1
- package/abstractions/services/LocalStorageService.js.map +1 -1
- package/abstractions/services/LoggerService.js +2 -1
- package/abstractions/services/LoggerService.js.map +1 -1
- package/abstractions/services/ProjectInfoService/GetIsCiService.js +2 -1
- package/abstractions/services/ProjectInfoService/GetIsCiService.js.map +1 -1
- package/abstractions/services/ProjectInfoService/GetNpmVersionService.js +2 -1
- package/abstractions/services/ProjectInfoService/GetNpmVersionService.js.map +1 -1
- package/abstractions/services/ProjectInfoService/GetNpxVersionService.js +2 -1
- package/abstractions/services/ProjectInfoService/GetNpxVersionService.js.map +1 -1
- package/abstractions/services/ProjectInfoService/GetPulumiVersionService.js +2 -1
- package/abstractions/services/ProjectInfoService/GetPulumiVersionService.js.map +1 -1
- package/abstractions/services/ProjectInfoService/GetYarnVersionService.js +2 -1
- package/abstractions/services/ProjectInfoService/GetYarnVersionService.js.map +1 -1
- package/abstractions/services/ProjectInfoService/ProjectInfoService.js +2 -1
- package/abstractions/services/ProjectInfoService/ProjectInfoService.js.map +1 -1
- package/abstractions/services/ProjectInfoService/index.js +0 -2
- package/abstractions/services/ProjectSdkParamsService.js +2 -1
- package/abstractions/services/ProjectSdkParamsService.js.map +1 -1
- package/abstractions/services/PulumiExportService.js +3 -4
- package/abstractions/services/PulumiExportService.js.map +1 -1
- package/abstractions/services/PulumiGetConfigPassphraseService.js +2 -1
- package/abstractions/services/PulumiGetConfigPassphraseService.js.map +1 -1
- package/abstractions/services/PulumiGetSecretsProviderService.js +2 -1
- package/abstractions/services/PulumiGetSecretsProviderService.js.map +1 -1
- package/abstractions/services/PulumiGetStackOutputService.js +2 -1
- package/abstractions/services/PulumiGetStackOutputService.js.map +1 -1
- package/abstractions/services/PulumiImportService.js +2 -1
- package/abstractions/services/PulumiImportService.js.map +1 -1
- package/abstractions/services/PulumiLoginService.js +2 -1
- package/abstractions/services/PulumiLoginService.js.map +1 -1
- package/abstractions/services/PulumiSelectStackService.js +2 -1
- package/abstractions/services/PulumiSelectStackService.js.map +1 -1
- package/abstractions/services/SetProjectIdService.js +2 -1
- package/abstractions/services/SetProjectIdService.js.map +1 -1
- package/abstractions/services/StdioService.js +2 -1
- package/abstractions/services/StdioService.js.map +1 -1
- package/abstractions/services/UiService.js +2 -1
- package/abstractions/services/UiService.js.map +1 -1
- package/abstractions/services/ValidateProjectConfigService.js +2 -1
- package/abstractions/services/ValidateProjectConfigService.js.map +1 -1
- package/abstractions/services/WatchedLambdaFunctionsService.js +2 -1
- package/abstractions/services/WatchedLambdaFunctionsService.js.map +1 -1
- package/abstractions/services/WcpService.js +2 -1
- package/abstractions/services/WcpService.js.map +1 -1
- package/abstractions/services/index.js +0 -2
- package/abstractions/types.js +0 -3
- package/components/Wcp.js +27 -38
- package/components/Wcp.js.map +1 -1
- package/createProjectSdkContainer.js +103 -112
- package/createProjectSdkContainer.js.map +1 -1
- package/decorators/BuildAppWithHooks.js +54 -44
- package/decorators/BuildAppWithHooks.js.map +1 -1
- package/decorators/DeployAppClearWatchedLambdaFunctions.js +27 -29
- package/decorators/DeployAppClearWatchedLambdaFunctions.js.map +1 -1
- package/decorators/DeployAppRefreshStackOutputCache.js +26 -30
- package/decorators/DeployAppRefreshStackOutputCache.js.map +1 -1
- package/decorators/DeployAppWithHooks.js +51 -41
- package/decorators/DeployAppWithHooks.js.map +1 -1
- package/decorators/DeployAppWithWatchedLambdaReplacement.js +33 -37
- package/decorators/DeployAppWithWatchedLambdaReplacement.js.map +1 -1
- package/decorators/GetFeatureFlagsWithLicense.js +36 -57
- package/decorators/GetFeatureFlagsWithLicense.js.map +1 -1
- package/decorators/GetPulumiServiceWithDownloadInfo.js +21 -19
- package/decorators/GetPulumiServiceWithDownloadInfo.js.map +1 -1
- package/decorators/WatchWithHooks.js +30 -27
- package/decorators/WatchWithHooks.js.map +1 -1
- package/decorators/index.js +0 -2
- package/defineExtension/createExtensionDefinition.js +12 -19
- package/defineExtension/createExtensionDefinition.js.map +1 -1
- package/defineExtension/createExtensionReactComponent.js +40 -46
- package/defineExtension/createExtensionReactComponent.js.map +1 -1
- package/defineExtension/defineExtension.js +8 -9
- package/defineExtension/defineExtension.js.map +1 -1
- package/defineExtension/index.js +0 -2
- package/defineExtension/models/ExtensionDefinitionModel.js +11 -10
- package/defineExtension/models/ExtensionDefinitionModel.js.map +1 -1
- package/defineExtension/models/ExtensionInstanceModel.js +23 -24
- package/defineExtension/models/ExtensionInstanceModel.js.map +1 -1
- package/defineExtension/models/index.js +0 -2
- package/defineExtension/types.js +0 -3
- package/defineExtension/zodTypes/zodSrcPath.js +35 -61
- package/defineExtension/zodTypes/zodSrcPath.js.map +1 -1
- package/exports/infra/admin.js +0 -2
- package/exports/infra/api.js +0 -2
- package/exports/infra/core.js +0 -2
- package/exports/infra.js +0 -2
- package/extensions/AdminBuildParam.js +105 -147
- package/extensions/AdminBuildParam.js.map +1 -1
- package/extensions/AdminExtension.js +64 -90
- package/extensions/AdminExtension.js.map +1 -1
- package/extensions/ApiBuildParam.js +71 -97
- package/extensions/ApiBuildParam.js.map +1 -1
- package/extensions/ApiExtension.js +71 -92
- package/extensions/ApiExtension.js.map +1 -1
- package/extensions/DatabaseSetup.js +14 -9
- package/extensions/DatabaseSetup.js.map +1 -1
- package/extensions/EnvVar.js +12 -16
- package/extensions/EnvVar.js.map +1 -1
- package/extensions/ExtensionDefinitions.js +11 -10
- package/extensions/ExtensionDefinitions.js.map +1 -1
- package/extensions/FeatureFlags.js +47 -48
- package/extensions/FeatureFlags.js.map +1 -1
- package/extensions/Project/EnsureApiDeployedBeforeAdminBuild.js +20 -21
- package/extensions/Project/EnsureApiDeployedBeforeAdminBuild.js.map +1 -1
- package/extensions/Project/EnsureApiDeployedBeforeAdminWatch.js +20 -21
- package/extensions/Project/EnsureApiDeployedBeforeAdminWatch.js.map +1 -1
- package/extensions/Project/EnsureApiDeployedBeforeWatch.js +20 -21
- package/extensions/Project/EnsureApiDeployedBeforeWatch.js.map +1 -1
- package/extensions/Project/EnsureCoreDeployedBeforeApiDeploy.js +22 -25
- package/extensions/Project/EnsureCoreDeployedBeforeApiDeploy.js.map +1 -1
- package/extensions/Project/EnsureTelemetryEnabledForOss.js +25 -28
- package/extensions/Project/EnsureTelemetryEnabledForOss.js.map +1 -1
- package/extensions/Project/SetAdminAppEnvVarsBeforeBuild.js +29 -34
- package/extensions/Project/SetAdminAppEnvVarsBeforeBuild.js.map +1 -1
- package/extensions/Project/SetAdminAppEnvVarsBeforeWatch.js +30 -35
- package/extensions/Project/SetAdminAppEnvVarsBeforeWatch.js.map +1 -1
- package/extensions/Project/ShowConfigChangeInfoBeforeAdminWatch.js +12 -9
- package/extensions/Project/ShowConfigChangeInfoBeforeAdminWatch.js.map +1 -1
- package/extensions/Project/ShowConfigChangeInfoBeforeApiWatch.js +12 -9
- package/extensions/Project/ShowConfigChangeInfoBeforeApiWatch.js.map +1 -1
- package/extensions/Project/TelemetryNoLongerNewUser.js +7 -7
- package/extensions/Project/TelemetryNoLongerNewUser.js.map +1 -1
- package/extensions/Project/ValidateEncryptionBeforeDeploy.js +22 -23
- package/extensions/Project/ValidateEncryptionBeforeDeploy.js.map +1 -1
- package/extensions/Project/ValidateProductionPulumiState.js +25 -28
- package/extensions/Project/ValidateProductionPulumiState.js.map +1 -1
- package/extensions/Project/WcpInjectTelemetryClientAfterBuild.js +46 -51
- package/extensions/Project/WcpInjectTelemetryClientAfterBuild.js.map +1 -1
- package/extensions/Project.js +29 -30
- package/extensions/Project.js.map +1 -1
- package/extensions/ProjectDecorator.js +13 -16
- package/extensions/ProjectDecorator.js.map +1 -1
- package/extensions/ProjectId.js +11 -13
- package/extensions/ProjectId.js.map +1 -1
- package/extensions/ProjectImplementation.js +14 -17
- package/extensions/ProjectImplementation.js.map +1 -1
- package/extensions/Telemetry.js +10 -9
- package/extensions/Telemetry.js.map +1 -1
- package/extensions/hooks/AdminAfterBuild.js +16 -19
- package/extensions/hooks/AdminAfterBuild.js.map +1 -1
- package/extensions/hooks/AdminAfterDeploy.js +16 -19
- package/extensions/hooks/AdminAfterDeploy.js.map +1 -1
- package/extensions/hooks/AdminBeforeBuild.js +16 -19
- package/extensions/hooks/AdminBeforeBuild.js.map +1 -1
- package/extensions/hooks/AdminBeforeDeploy.js +16 -19
- package/extensions/hooks/AdminBeforeDeploy.js.map +1 -1
- package/extensions/hooks/AdminBeforeWatch.js +16 -19
- package/extensions/hooks/AdminBeforeWatch.js.map +1 -1
- package/extensions/hooks/AfterBuild.js +15 -18
- package/extensions/hooks/AfterBuild.js.map +1 -1
- package/extensions/hooks/AfterDeploy.js +15 -18
- package/extensions/hooks/AfterDeploy.js.map +1 -1
- package/extensions/hooks/ApiAfterBuild.js +16 -19
- package/extensions/hooks/ApiAfterBuild.js.map +1 -1
- package/extensions/hooks/ApiAfterDeploy.js +16 -19
- package/extensions/hooks/ApiAfterDeploy.js.map +1 -1
- package/extensions/hooks/ApiBeforeBuild.js +16 -19
- package/extensions/hooks/ApiBeforeBuild.js.map +1 -1
- package/extensions/hooks/ApiBeforeDeploy.js +16 -19
- package/extensions/hooks/ApiBeforeDeploy.js.map +1 -1
- package/extensions/hooks/ApiBeforeWatch.js +16 -19
- package/extensions/hooks/ApiBeforeWatch.js.map +1 -1
- package/extensions/hooks/BeforeBuild.js +15 -18
- package/extensions/hooks/BeforeBuild.js.map +1 -1
- package/extensions/hooks/BeforeDeploy.js +15 -18
- package/extensions/hooks/BeforeDeploy.js.map +1 -1
- package/extensions/hooks/BeforeWatch.js +15 -18
- package/extensions/hooks/BeforeWatch.js.map +1 -1
- package/extensions/hooks/CoreAfterBuild.js +16 -19
- package/extensions/hooks/CoreAfterBuild.js.map +1 -1
- package/extensions/hooks/CoreAfterDeploy.js +16 -19
- package/extensions/hooks/CoreAfterDeploy.js.map +1 -1
- package/extensions/hooks/CoreBeforeBuild.js +16 -19
- package/extensions/hooks/CoreBeforeBuild.js.map +1 -1
- package/extensions/hooks/CoreBeforeDeploy.js +16 -19
- package/extensions/hooks/CoreBeforeDeploy.js.map +1 -1
- package/extensions/hooks/CoreBeforeWatch.js +16 -19
- package/extensions/hooks/CoreBeforeWatch.js.map +1 -1
- package/extensions/hooks/index.js +0 -2
- package/extensions/index.js +43 -57
- package/extensions/index.js.map +1 -1
- package/extensions/infra/Ci.js +8 -24
- package/extensions/infra/Ci.js.map +1 -1
- package/extensions/infra/Env.js +35 -92
- package/extensions/infra/Env.js.map +1 -1
- package/extensions/infra/index.js +0 -2
- package/extensions/pulumi/AdminStackOutputValue.js +13 -12
- package/extensions/pulumi/AdminStackOutputValue.js.map +1 -1
- package/extensions/pulumi/ApiStackOutputValue.js +13 -12
- package/extensions/pulumi/ApiStackOutputValue.js.map +1 -1
- package/extensions/pulumi/CoreStackOutputValue.js +13 -12
- package/extensions/pulumi/CoreStackOutputValue.js.map +1 -1
- package/extensions/pulumi/ProductionEnvironments.js +29 -39
- package/extensions/pulumi/ProductionEnvironments.js.map +1 -1
- package/extensions/pulumi/PulumiResourceNamePrefix.js +10 -9
- package/extensions/pulumi/PulumiResourceNamePrefix.js.map +1 -1
- package/extensions/pulumi/index.js +0 -2
- package/features/BuildApp/BuildApp.js +49 -40
- package/features/BuildApp/BuildApp.js.map +1 -1
- package/features/BuildApp/PackagesBuilder/PackagesBuilder.js +34 -39
- package/features/BuildApp/PackagesBuilder/PackagesBuilder.js.map +1 -1
- package/features/BuildApp/PackagesBuilder/RunnableBuildProcess.js +39 -33
- package/features/BuildApp/PackagesBuilder/RunnableBuildProcess.js.map +1 -1
- package/features/BuildApp/PackagesBuilder/RunnableBuildProcesses.js +39 -46
- package/features/BuildApp/PackagesBuilder/RunnableBuildProcesses.js.map +1 -1
- package/features/BuildApp/PackagesBuilder/worker.js +26 -34
- package/features/BuildApp/PackagesBuilder/worker.js.map +1 -1
- package/features/BuildApp/index.js +0 -2
- package/features/DeployApp/DeployApp.js +79 -79
- package/features/DeployApp/DeployApp.js.map +1 -1
- package/features/DeployApp/index.js +0 -2
- package/features/DestroyApp/DestroyApp.js +60 -46
- package/features/DestroyApp/DestroyApp.js.map +1 -1
- package/features/DestroyApp/index.js +0 -2
- package/features/ExportStack/ExportStack.js +21 -16
- package/features/ExportStack/ExportStack.js.map +1 -1
- package/features/ExportStack/index.js +0 -2
- package/features/GetApp/GetApp.js +14 -11
- package/features/GetApp/GetApp.js.map +1 -1
- package/features/GetApp/index.js +0 -2
- package/features/GetAppOutput/GetAppOutput.js +44 -33
- package/features/GetAppOutput/GetAppOutput.js.map +1 -1
- package/features/GetAppOutput/index.js +0 -2
- package/features/GetAppStackOutput/GetAppStackOutput.js +20 -15
- package/features/GetAppStackOutput/GetAppStackOutput.js.map +1 -1
- package/features/GetAppStackOutput/index.js +0 -2
- package/features/GetFeatureFlags/GetFeatureFlags.js +20 -19
- package/features/GetFeatureFlags/GetFeatureFlags.js.map +1 -1
- package/features/GetFeatureFlags/index.js +0 -2
- package/features/GetLogger/GetLogger.js +14 -11
- package/features/GetLogger/GetLogger.js.map +1 -1
- package/features/GetLogger/index.js +0 -2
- package/features/GetProductionEnvironments/GetProductionEnvironments.js +24 -19
- package/features/GetProductionEnvironments/GetProductionEnvironments.js.map +1 -1
- package/features/GetProductionEnvironments/index.js +0 -2
- package/features/GetProject/GetProject.js +14 -11
- package/features/GetProject/GetProject.js.map +1 -1
- package/features/GetProject/index.js +0 -2
- package/features/GetProjectConfig/GetProjectConfig.js +14 -11
- package/features/GetProjectConfig/GetProjectConfig.js.map +1 -1
- package/features/GetProjectConfig/index.js +0 -2
- package/features/GetProjectInfo/GetProjectInfo.js +14 -11
- package/features/GetProjectInfo/GetProjectInfo.js.map +1 -1
- package/features/GetProjectInfo/index.js +0 -2
- package/features/GetPulumiResourceNamePrefix/GetPulumiResourceNamePrefix.js +18 -17
- package/features/GetPulumiResourceNamePrefix/GetPulumiResourceNamePrefix.js.map +1 -1
- package/features/GetPulumiResourceNamePrefix/index.js +0 -2
- package/features/InstallExtension/InstallExtension.js +14 -11
- package/features/InstallExtension/InstallExtension.js.map +1 -1
- package/features/InstallExtension/index.js +0 -2
- package/features/IsCi/IsCi.js +14 -11
- package/features/IsCi/IsCi.js.map +1 -1
- package/features/IsCi/index.js +0 -2
- package/features/IsTelemetryEnabled/IsTelemetryEnabled.js +19 -18
- package/features/IsTelemetryEnabled/IsTelemetryEnabled.js.map +1 -1
- package/features/IsTelemetryEnabled/index.js +0 -2
- package/features/IsWcpEnabled/IsWcpEnabled.js +15 -12
- package/features/IsWcpEnabled/IsWcpEnabled.js.map +1 -1
- package/features/IsWcpEnabled/index.js +0 -2
- package/features/IsWebinyJsRepo/IsWebinyJsRepo.js +17 -14
- package/features/IsWebinyJsRepo/IsWebinyJsRepo.js.map +1 -1
- package/features/IsWebinyJsRepo/index.js +0 -2
- package/features/RefreshApp/RefreshApp.js +57 -46
- package/features/RefreshApp/RefreshApp.js.map +1 -1
- package/features/RefreshApp/index.js +0 -2
- package/features/RunPulumiCommand/RunPulumiCommand.js +54 -43
- package/features/RunPulumiCommand/RunPulumiCommand.js.map +1 -1
- package/features/RunPulumiCommand/index.js +0 -2
- package/features/ValidateProjectConfig/ValidateProjectConfig.js +14 -11
- package/features/ValidateProjectConfig/ValidateProjectConfig.js.map +1 -1
- package/features/ValidateProjectConfig/index.js +0 -2
- package/features/Watch/Watch.js +178 -181
- package/features/Watch/Watch.js.map +1 -1
- package/features/Watch/getIotEndpoint.js +14 -12
- package/features/Watch/getIotEndpoint.js.map +1 -1
- package/features/Watch/index.js +0 -2
- package/features/Watch/initInvocationForwarding.js +76 -95
- package/features/Watch/initInvocationForwarding.js.map +1 -1
- package/features/Watch/localInvocationWorker.js +24 -33
- package/features/Watch/localInvocationWorker.js.map +1 -1
- package/features/Watch/replaceLambdaFunctions.js +61 -84
- package/features/Watch/replaceLambdaFunctions.js.map +1 -1
- package/features/Watch/watchers/BasePackagesWatcher.js +10 -13
- package/features/Watch/watchers/BasePackagesWatcher.js.map +1 -1
- package/features/Watch/watchers/MultiplePackagesWatcher.js +11 -12
- package/features/Watch/watchers/MultiplePackagesWatcher.js.map +1 -1
- package/features/Watch/watchers/PackagesWatcher.js +15 -18
- package/features/Watch/watchers/PackagesWatcher.js.map +1 -1
- package/features/Watch/watchers/RunnableWatchProcess.js +41 -40
- package/features/Watch/watchers/RunnableWatchProcess.js.map +1 -1
- package/features/Watch/watchers/RunnableWatchProcesses.js +35 -34
- package/features/Watch/watchers/RunnableWatchProcesses.js.map +1 -1
- package/features/Watch/watchers/SinglePackageWatcher.js +11 -8
- package/features/Watch/watchers/SinglePackageWatcher.js.map +1 -1
- package/features/Watch/watchers/WebinyConfigWatcher.js +30 -40
- package/features/Watch/watchers/WebinyConfigWatcher.js.map +1 -1
- package/features/Watch/watchers/ZeroPackagesWatcher.js +5 -5
- package/features/Watch/watchers/ZeroPackagesWatcher.js.map +1 -1
- package/features/Watch/watchers/utils/measureDuration.js +7 -8
- package/features/Watch/watchers/utils/measureDuration.js.map +1 -1
- package/features/Watch/watchers/worker.js +12 -21
- package/features/Watch/watchers/worker.js.map +1 -1
- package/features/hooks/AdminAfterBuild/AdminBeforeBuild.js +19 -15
- package/features/hooks/AdminAfterBuild/AdminBeforeBuild.js.map +1 -1
- package/features/hooks/AdminAfterBuild/index.js +0 -2
- package/features/hooks/AdminAfterDeploy/AdminBeforeBuild.js +19 -15
- package/features/hooks/AdminAfterDeploy/AdminBeforeBuild.js.map +1 -1
- package/features/hooks/AdminAfterDeploy/index.js +0 -2
- package/features/hooks/AdminBeforeBuild/AdminBeforeBuild.js +19 -15
- package/features/hooks/AdminBeforeBuild/AdminBeforeBuild.js.map +1 -1
- package/features/hooks/AdminBeforeBuild/index.js +0 -2
- package/features/hooks/AdminBeforeDeploy/AdminBeforeDeploy.js +19 -15
- package/features/hooks/AdminBeforeDeploy/AdminBeforeDeploy.js.map +1 -1
- package/features/hooks/AdminBeforeDeploy/index.js +0 -2
- package/features/hooks/AdminBeforeWatch/AdminBeforeWatch.js +18 -14
- package/features/hooks/AdminBeforeWatch/AdminBeforeWatch.js.map +1 -1
- package/features/hooks/AdminBeforeWatch/index.js +0 -2
- package/features/hooks/AfterBuild/AfterBuild.js +19 -15
- package/features/hooks/AfterBuild/AfterBuild.js.map +1 -1
- package/features/hooks/AfterBuild/index.js +0 -2
- package/features/hooks/AfterDeploy/AfterDeploy.js +19 -15
- package/features/hooks/AfterDeploy/AfterDeploy.js.map +1 -1
- package/features/hooks/AfterDeploy/index.js +0 -2
- package/features/hooks/ApiAfterBuild/ApiBeforeBuild.js +18 -14
- package/features/hooks/ApiAfterBuild/ApiBeforeBuild.js.map +1 -1
- package/features/hooks/ApiAfterBuild/index.js +0 -2
- package/features/hooks/ApiAfterDeploy/ApiBeforeBuild.js +18 -14
- package/features/hooks/ApiAfterDeploy/ApiBeforeBuild.js.map +1 -1
- package/features/hooks/ApiAfterDeploy/index.js +0 -2
- package/features/hooks/ApiBeforeBuild/ApiBeforeBuild.js +18 -14
- package/features/hooks/ApiBeforeBuild/ApiBeforeBuild.js.map +1 -1
- package/features/hooks/ApiBeforeBuild/index.js +0 -2
- package/features/hooks/ApiBeforeDeploy/ApiBeforeDeploy.js +18 -14
- package/features/hooks/ApiBeforeDeploy/ApiBeforeDeploy.js.map +1 -1
- package/features/hooks/ApiBeforeDeploy/index.js +0 -2
- package/features/hooks/ApiBeforeWatch/ApiBeforeWatch.js +18 -14
- package/features/hooks/ApiBeforeWatch/ApiBeforeWatch.js.map +1 -1
- package/features/hooks/ApiBeforeWatch/index.js +0 -2
- package/features/hooks/BeforeBuild/BeforeBuild.js +19 -15
- package/features/hooks/BeforeBuild/BeforeBuild.js.map +1 -1
- package/features/hooks/BeforeBuild/index.js +0 -2
- package/features/hooks/BeforeDeploy/BeforeDeploy.js +19 -15
- package/features/hooks/BeforeDeploy/BeforeDeploy.js.map +1 -1
- package/features/hooks/BeforeDeploy/index.js +0 -2
- package/features/hooks/BeforeWatch/BeforeWatch.js +19 -15
- package/features/hooks/BeforeWatch/BeforeWatch.js.map +1 -1
- package/features/hooks/BeforeWatch/index.js +0 -2
- package/features/hooks/CoreAfterBuild/CoreBeforeBuild.js +18 -14
- package/features/hooks/CoreAfterBuild/CoreBeforeBuild.js.map +1 -1
- package/features/hooks/CoreAfterBuild/index.js +0 -2
- package/features/hooks/CoreAfterDeploy/CoreBeforeBuild.js +18 -14
- package/features/hooks/CoreAfterDeploy/CoreBeforeBuild.js.map +1 -1
- package/features/hooks/CoreAfterDeploy/index.js +0 -2
- package/features/hooks/CoreBeforeBuild/CoreBeforeBuild.js +18 -14
- package/features/hooks/CoreBeforeBuild/CoreBeforeBuild.js.map +1 -1
- package/features/hooks/CoreBeforeBuild/index.js +0 -2
- package/features/hooks/CoreBeforeDeploy/CoreBeforeDeploy.js +18 -14
- package/features/hooks/CoreBeforeDeploy/CoreBeforeDeploy.js.map +1 -1
- package/features/hooks/CoreBeforeDeploy/index.js +0 -2
- package/features/hooks/CoreBeforeWatch/CoreBeforeWatch.js +18 -14
- package/features/hooks/CoreBeforeWatch/CoreBeforeWatch.js.map +1 -1
- package/features/hooks/CoreBeforeWatch/index.js +0 -2
- package/features/hooks/index.js +0 -2
- package/features/index.js +0 -2
- package/index.js +5 -10
- package/index.js.map +1 -1
- package/models/AppModel.js +20 -19
- package/models/AppModel.js.map +1 -1
- package/models/AppPackageModel.js +10 -9
- package/models/AppPackageModel.js.map +1 -1
- package/models/PathModel.js +23 -26
- package/models/PathModel.js.map +1 -1
- package/models/ProjectConfigModel.js +12 -16
- package/models/ProjectConfigModel.js.map +1 -1
- package/models/ProjectModel.js +37 -36
- package/models/ProjectModel.js.map +1 -1
- package/models/UrlModel.js +23 -23
- package/models/UrlModel.js.map +1 -1
- package/models/WcpEnvironmentModel.js +23 -22
- package/models/WcpEnvironmentModel.js.map +1 -1
- package/models/WcpUserModel.js +13 -12
- package/models/WcpUserModel.js.map +1 -1
- package/models/WcpUserPatModel.js +12 -11
- package/models/WcpUserPatModel.js.map +1 -1
- package/models/index.js +0 -2
- package/package.json +14 -14
- package/rslib-runtime.js +14 -0
- package/rslib-runtime.js.map +1 -0
- package/services/BuildAppWorkspaceService/BuildAppWorkspaceService.js +62 -69
- package/services/BuildAppWorkspaceService/BuildAppWorkspaceService.js.map +1 -1
- package/services/BuildAppWorkspaceService/index.js +0 -2
- package/services/BuildProjectWorkspaceService/BuildProjectWorkspaceService.js +21 -17
- package/services/BuildProjectWorkspaceService/BuildProjectWorkspaceService.js.map +1 -1
- package/services/BuildProjectWorkspaceService/index.js +0 -2
- package/services/GetAppPackagesService/GetAppPackagesService.js +24 -23
- package/services/GetAppPackagesService/GetAppPackagesService.js.map +1 -1
- package/services/GetAppPackagesService/index.js +0 -2
- package/services/GetAppService/GetAppService.js +24 -27
- package/services/GetAppService/GetAppService.js.map +1 -1
- package/services/GetAppService/index.js +0 -2
- package/services/GetCwdService/GetCwdService.js +15 -12
- package/services/GetCwdService/GetCwdService.js.map +1 -1
- package/services/GetCwdService/index.js +0 -2
- package/services/GetProjectConfigService/EnvContext.js +29 -38
- package/services/GetProjectConfigService/EnvContext.js.map +1 -1
- package/services/GetProjectConfigService/GetProjectConfigService.js +102 -115
- package/services/GetProjectConfigService/GetProjectConfigService.js.map +1 -1
- package/services/GetProjectConfigService/ProductionEnvironmentsContext.js +13 -18
- package/services/GetProjectConfigService/ProductionEnvironmentsContext.js.map +1 -1
- package/services/GetProjectConfigService/WcpProjectLicenseContext.js +32 -37
- package/services/GetProjectConfigService/WcpProjectLicenseContext.js.map +1 -1
- package/services/GetProjectConfigService/index.js +0 -2
- package/services/GetProjectConfigService/renderConfig.js +32 -38
- package/services/GetProjectConfigService/renderConfig.js.map +1 -1
- package/services/GetProjectConfigService/renderConfigWorker.js +37 -48
- package/services/GetProjectConfigService/renderConfigWorker.js.map +1 -1
- package/services/GetProjectIdService/GetProjectIdService.js +22 -23
- package/services/GetProjectIdService/GetProjectIdService.js.map +1 -1
- package/services/GetProjectIdService/index.js +0 -2
- package/services/GetProjectService/GetProjectService.js +43 -45
- package/services/GetProjectService/GetProjectService.js.map +1 -1
- package/services/GetProjectService/index.js +0 -2
- package/services/GetProjectVersionService/GetProjectVersionService.js +23 -22
- package/services/GetProjectVersionService/GetProjectVersionService.js.map +1 -1
- package/services/GetProjectVersionService/index.js +0 -2
- package/services/GetPulumiService/GetPulumiService.js +36 -41
- package/services/GetPulumiService/GetPulumiService.js.map +1 -1
- package/services/GetPulumiService/index.js +0 -2
- package/services/InitProjectSdkService/InitProjectSdkService.js +36 -46
- package/services/InitProjectSdkService/InitProjectSdkService.js.map +1 -1
- package/services/InitProjectSdkService/applyEnvVars.js +5 -8
- package/services/InitProjectSdkService/applyEnvVars.js.map +1 -1
- package/services/InitProjectSdkService/applyWcpEnvVars.js +91 -136
- package/services/InitProjectSdkService/applyWcpEnvVars.js.map +1 -1
- package/services/InitProjectSdkService/index.js +0 -2
- package/services/InitProjectSdkService/registerDecorators.js +10 -7
- package/services/InitProjectSdkService/registerDecorators.js.map +1 -1
- package/services/InitProjectSdkService/registerHooks.js +30 -7
- package/services/InitProjectSdkService/registerHooks.js.map +1 -1
- package/services/InitProjectSdkService/registerImplementations.js +10 -11
- package/services/InitProjectSdkService/registerImplementations.js.map +1 -1
- package/services/InitProjectSdkService/registerPulumiExtensions.js +12 -9
- package/services/InitProjectSdkService/registerPulumiExtensions.js.map +1 -1
- package/services/InstallExtensionService/InstallExtensionService.js +78 -121
- package/services/InstallExtensionService/InstallExtensionService.js.map +1 -1
- package/services/InstallExtensionService/downloadFolderFromS3.js +46 -65
- package/services/InstallExtensionService/downloadFolderFromS3.js.map +1 -1
- package/services/InstallExtensionService/index.js +0 -2
- package/services/InstallExtensionService/mergePackageJson.js +15 -25
- package/services/InstallExtensionService/mergePackageJson.js.map +1 -1
- package/services/InstallExtensionService/types.js +0 -3
- package/services/InstallExtensionService/updateWebinyConfig.js +60 -137
- package/services/InstallExtensionService/updateWebinyConfig.js.map +1 -1
- package/services/IsRemotePulumiBackendService/IsRemotePulumiBackendService.js +9 -17
- package/services/IsRemotePulumiBackendService/IsRemotePulumiBackendService.js.map +1 -1
- package/services/IsRemotePulumiBackendService/index.js +0 -2
- package/services/ListAppLambdaFunctionsService/ListAppLambdaFunctionsService.js +50 -73
- package/services/ListAppLambdaFunctionsService/ListAppLambdaFunctionsService.js.map +1 -1
- package/services/ListAppLambdaFunctionsService/index.js +0 -2
- package/services/ListDeployedEnvironmentsService/ListDeployedEnvironmentsService.js +21 -23
- package/services/ListDeployedEnvironmentsService/ListDeployedEnvironmentsService.js.map +1 -1
- package/services/ListDeployedEnvironmentsService/index.js +0 -2
- package/services/ListPackagesInAppWorkspaceService/ListPackagesInAppWorkspaceService.js +34 -29
- package/services/ListPackagesInAppWorkspaceService/ListPackagesInAppWorkspaceService.js.map +1 -1
- package/services/ListPackagesInAppWorkspaceService/index.js +0 -2
- package/services/ListPackagesService/ListPackagesService.js +81 -114
- package/services/ListPackagesService/ListPackagesService.js.map +1 -1
- package/services/ListPackagesService/index.js +0 -2
- package/services/LoadEnvVarsService/LoadEnvVarsService.js +28 -29
- package/services/LoadEnvVarsService/LoadEnvVarsService.js.map +1 -1
- package/services/LoadEnvVarsService/index.js +0 -2
- package/services/LocalStorageService/LocalStorageService.js +41 -44
- package/services/LocalStorageService/LocalStorageService.js.map +1 -1
- package/services/LocalStorageService/index.js +0 -2
- package/services/LoggerService/LoggerService.js +76 -84
- package/services/LoggerService/LoggerService.js.map +1 -1
- package/services/LoggerService/index.js +0 -2
- package/services/ProjectInfoService/GetIsCiService.js +9 -8
- package/services/ProjectInfoService/GetIsCiService.js.map +1 -1
- package/services/ProjectInfoService/GetNpmVersionService.js +9 -8
- package/services/ProjectInfoService/GetNpmVersionService.js.map +1 -1
- package/services/ProjectInfoService/GetNpxVersionService.js +9 -8
- package/services/ProjectInfoService/GetNpxVersionService.js.map +1 -1
- package/services/ProjectInfoService/GetPulumiVersionService.js +38 -30
- package/services/ProjectInfoService/GetPulumiVersionService.js.map +1 -1
- package/services/ProjectInfoService/GetYarnVersionService.js +9 -8
- package/services/ProjectInfoService/GetYarnVersionService.js.map +1 -1
- package/services/ProjectInfoService/ProjectInfoService.js +56 -51
- package/services/ProjectInfoService/ProjectInfoService.js.map +1 -1
- package/services/ProjectInfoService/index.js +0 -2
- package/services/ProjectSdkParamsService/ProjectSdkParamsService.js +37 -34
- package/services/ProjectSdkParamsService/ProjectSdkParamsService.js.map +1 -1
- package/services/ProjectSdkParamsService/index.js +0 -2
- package/services/PulumiExportService/PulumiExportService.js +42 -35
- package/services/PulumiExportService/PulumiExportService.js.map +1 -1
- package/services/PulumiExportService/index.js +0 -2
- package/services/PulumiGetConfigPassphraseService/PulumiGetConfigPassphraseService.js +9 -8
- package/services/PulumiGetConfigPassphraseService/PulumiGetConfigPassphraseService.js.map +1 -1
- package/services/PulumiGetConfigPassphraseService/index.js +0 -2
- package/services/PulumiGetSecretsProviderService/PulumiGetSecretsProviderService.js +9 -8
- package/services/PulumiGetSecretsProviderService/PulumiGetSecretsProviderService.js.map +1 -1
- package/services/PulumiGetSecretsProviderService/index.js +0 -2
- package/services/PulumiGetStackOutputService/PulumiGetStackOutputService.js +108 -100
- package/services/PulumiGetStackOutputService/PulumiGetStackOutputService.js.map +1 -1
- package/services/PulumiGetStackOutputService/index.js +0 -2
- package/services/PulumiGetStackOutputService/mapStackOutput.js +17 -29
- package/services/PulumiGetStackOutputService/mapStackOutput.js.map +1 -1
- package/services/PulumiImportService/PulumiImportService.js +48 -45
- package/services/PulumiImportService/PulumiImportService.js.map +1 -1
- package/services/PulumiImportService/index.js +0 -2
- package/services/PulumiLoginService/PulumiLoginService.js +43 -40
- package/services/PulumiLoginService/PulumiLoginService.js.map +1 -1
- package/services/PulumiLoginService/index.js +0 -2
- package/services/PulumiSelectStackService/PulumiSelectStackService.js +91 -86
- package/services/PulumiSelectStackService/PulumiSelectStackService.js.map +1 -1
- package/services/PulumiSelectStackService/index.js +0 -2
- package/services/SetProjectIdService/SetProjectIdService.js +43 -57
- package/services/SetProjectIdService/SetProjectIdService.js.map +1 -1
- package/services/SetProjectIdService/index.js +0 -2
- package/services/StdioService/StdioService.js +15 -14
- package/services/StdioService/StdioService.js.map +1 -1
- package/services/StdioService/index.js +0 -2
- package/services/UiService/UiService.js +55 -58
- package/services/UiService/UiService.js.map +1 -1
- package/services/UiService/index.js +0 -2
- package/services/ValidateProjectConfigService/ValidateProjectConfigService.js +18 -19
- package/services/ValidateProjectConfigService/ValidateProjectConfigService.js.map +1 -1
- package/services/ValidateProjectConfigService/index.js +0 -2
- package/services/WatchedLambdaFunctionsService/WatchedLambdaFunctionsService.js +47 -54
- package/services/WatchedLambdaFunctionsService/WatchedLambdaFunctionsService.js.map +1 -1
- package/services/WatchedLambdaFunctionsService/index.js +0 -2
- package/services/WcpService/CreateUserPat.js +20 -23
- package/services/WcpService/CreateUserPat.js.map +1 -1
- package/services/WcpService/GenerateUserPat.js +15 -18
- package/services/WcpService/GenerateUserPat.js.map +1 -1
- package/services/WcpService/GetPatFromLocalStorage.js +9 -10
- package/services/WcpService/GetPatFromLocalStorage.js.map +1 -1
- package/services/WcpService/GetProjectEnvironment.js +34 -47
- package/services/WcpService/GetProjectEnvironment.js.map +1 -1
- package/services/WcpService/GetProjectLicense.js +28 -38
- package/services/WcpService/GetProjectLicense.js.map +1 -1
- package/services/WcpService/GetUser.js +43 -46
- package/services/WcpService/GetUser.js.map +1 -1
- package/services/WcpService/GetUserPat.js +20 -23
- package/services/WcpService/GetUserPat.js.map +1 -1
- package/services/WcpService/LogoutUser.js +9 -8
- package/services/WcpService/LogoutUser.js.map +1 -1
- package/services/WcpService/StorePatToLocalStorage.js +9 -10
- package/services/WcpService/StorePatToLocalStorage.js.map +1 -1
- package/services/WcpService/UnsetPatFromLocalStorage.js +9 -10
- package/services/WcpService/UnsetPatFromLocalStorage.js.map +1 -1
- package/services/WcpService/WcpGqlClient.js +6 -5
- package/services/WcpService/WcpGqlClient.js.map +1 -1
- package/services/WcpService/WcpService.js +74 -75
- package/services/WcpService/WcpService.js.map +1 -1
- package/services/WcpService/index.js +0 -2
- package/services/index.js +0 -2
- package/utils/ExtensionSrcResolver.js +51 -106
- package/utils/ExtensionSrcResolver.js.map +1 -1
- package/utils/constants.js +8 -7
- package/utils/constants.js.map +1 -1
- package/utils/createPathResolver.js +2 -5
- package/utils/createPathResolver.js.map +1 -1
- package/utils/env/configuration.js +16 -25
- package/utils/env/configuration.js.map +1 -1
- package/utils/env/index.js +0 -2
- package/utils/env/types.js +0 -3
- package/utils/env/withEnv.js +4 -7
- package/utils/env/withEnv.js.map +1 -1
- package/utils/env/withEnvVariant.js +8 -11
- package/utils/env/withEnvVariant.js.map +1 -1
- package/utils/env/withProjectName.js +4 -9
- package/utils/env/withProjectName.js.map +1 -1
- package/utils/env/withPulumiConfigPassphrase.js +4 -8
- package/utils/env/withPulumiConfigPassphrase.js.map +1 -1
- package/utils/env/withRegion.js +10 -17
- package/utils/env/withRegion.js.map +1 -1
- package/utils/getRandomColorForString.js +86 -8
- package/utils/getRandomColorForString.js.map +1 -1
- package/utils/getStackName.js +11 -18
- package/utils/getStackName.js.map +1 -1
- package/utils/getTemplatesFolderPath.js +6 -8
- package/utils/getTemplatesFolderPath.js.map +1 -1
- package/utils/index.js +0 -2
- package/utils/isValidRegionName.js +8 -13
- package/utils/isValidRegionName.js.map +1 -1
- package/utils/isValidVariantName.js +11 -10
- package/utils/isValidVariantName.js.map +1 -1
- package/utils/measureDuration.js +7 -8
- package/utils/measureDuration.js.map +1 -1
- package/utils/projectSdkContext.js +23 -39
- package/utils/projectSdkContext.js.map +1 -1
- package/utils/regions.js +75 -63
- package/utils/regions.js.map +1 -1
- package/utils/registerExtension.js +6 -15
- package/utils/registerExtension.js.map +1 -1
- package/utils/requireConfig.js +7 -12
- package/utils/requireConfig.js.map +1 -1
- package/utils/toImportSpecifier.js +3 -9
- package/utils/toImportSpecifier.js.map +1 -1
- package/abstractions/features/hooks/index.js.map +0 -1
- package/abstractions/features/index.js.map +0 -1
- package/abstractions/index.js.map +0 -1
- package/abstractions/models/IAppModel.js.map +0 -1
- package/abstractions/models/IAppPackageModel.js.map +0 -1
- package/abstractions/models/IPathModel.js.map +0 -1
- package/abstractions/models/IProjectConfigDto.js.map +0 -1
- package/abstractions/models/IProjectConfigModel.js.map +0 -1
- package/abstractions/models/IProjectModel.js.map +0 -1
- package/abstractions/models/IUrlModel.js.map +0 -1
- package/abstractions/models/IWcpEnvironmentDto.js.map +0 -1
- package/abstractions/models/IWcpEnvironmentModel.js.map +0 -1
- package/abstractions/models/IWcpUserDto.js.map +0 -1
- package/abstractions/models/IWcpUserModel.js.map +0 -1
- package/abstractions/models/IWcpUserPatDto.js.map +0 -1
- package/abstractions/models/IWcpUserPatModel.js.map +0 -1
- package/abstractions/models/PackagesBuilder/IPackagesBuilder.js.map +0 -1
- package/abstractions/models/PackagesBuilder/IRunnableBuildProcess.js.map +0 -1
- package/abstractions/models/PackagesBuilder/IRunnableBuildProcesses.js.map +0 -1
- package/abstractions/models/PackagesBuilder/index.js.map +0 -1
- package/abstractions/models/index.js.map +0 -1
- package/abstractions/services/ProjectInfoService/index.js.map +0 -1
- package/abstractions/services/index.js.map +0 -1
- package/abstractions/types.js.map +0 -1
- package/decorators/index.js.map +0 -1
- package/defineExtension/index.js.map +0 -1
- package/defineExtension/models/index.js.map +0 -1
- package/defineExtension/types.js.map +0 -1
- package/exports/infra/admin.js.map +0 -1
- package/exports/infra/api.js.map +0 -1
- package/exports/infra/core.js.map +0 -1
- package/exports/infra.js.map +0 -1
- package/extensions/hooks/index.js.map +0 -1
- package/extensions/infra/index.js.map +0 -1
- package/extensions/pulumi/index.js.map +0 -1
- package/features/BuildApp/index.js.map +0 -1
- package/features/DeployApp/index.js.map +0 -1
- package/features/DestroyApp/index.js.map +0 -1
- package/features/ExportStack/index.js.map +0 -1
- package/features/GetApp/index.js.map +0 -1
- package/features/GetAppOutput/index.js.map +0 -1
- package/features/GetAppStackOutput/index.js.map +0 -1
- package/features/GetFeatureFlags/index.js.map +0 -1
- package/features/GetLogger/index.js.map +0 -1
- package/features/GetProductionEnvironments/index.js.map +0 -1
- package/features/GetProject/index.js.map +0 -1
- package/features/GetProjectConfig/index.js.map +0 -1
- package/features/GetProjectInfo/index.js.map +0 -1
- package/features/GetPulumiResourceNamePrefix/index.js.map +0 -1
- package/features/InstallExtension/index.js.map +0 -1
- package/features/IsCi/index.js.map +0 -1
- package/features/IsTelemetryEnabled/index.js.map +0 -1
- package/features/IsWcpEnabled/index.js.map +0 -1
- package/features/IsWebinyJsRepo/index.js.map +0 -1
- package/features/RefreshApp/index.js.map +0 -1
- package/features/RunPulumiCommand/index.js.map +0 -1
- package/features/ValidateProjectConfig/index.js.map +0 -1
- package/features/Watch/index.js.map +0 -1
- package/features/hooks/AdminAfterBuild/index.js.map +0 -1
- package/features/hooks/AdminAfterDeploy/index.js.map +0 -1
- package/features/hooks/AdminBeforeBuild/index.js.map +0 -1
- package/features/hooks/AdminBeforeDeploy/index.js.map +0 -1
- package/features/hooks/AdminBeforeWatch/index.js.map +0 -1
- package/features/hooks/AfterBuild/index.js.map +0 -1
- package/features/hooks/AfterDeploy/index.js.map +0 -1
- package/features/hooks/ApiAfterBuild/index.js.map +0 -1
- package/features/hooks/ApiAfterDeploy/index.js.map +0 -1
- package/features/hooks/ApiBeforeBuild/index.js.map +0 -1
- package/features/hooks/ApiBeforeDeploy/index.js.map +0 -1
- package/features/hooks/ApiBeforeWatch/index.js.map +0 -1
- package/features/hooks/BeforeBuild/index.js.map +0 -1
- package/features/hooks/BeforeDeploy/index.js.map +0 -1
- package/features/hooks/BeforeWatch/index.js.map +0 -1
- package/features/hooks/CoreAfterBuild/index.js.map +0 -1
- package/features/hooks/CoreAfterDeploy/index.js.map +0 -1
- package/features/hooks/CoreBeforeBuild/index.js.map +0 -1
- package/features/hooks/CoreBeforeDeploy/index.js.map +0 -1
- package/features/hooks/CoreBeforeWatch/index.js.map +0 -1
- package/features/hooks/index.js.map +0 -1
- package/features/index.js.map +0 -1
- package/models/index.js.map +0 -1
- package/services/BuildAppWorkspaceService/index.js.map +0 -1
- package/services/BuildProjectWorkspaceService/index.js.map +0 -1
- package/services/GetAppPackagesService/index.js.map +0 -1
- package/services/GetAppService/index.js.map +0 -1
- package/services/GetCwdService/index.js.map +0 -1
- package/services/GetProjectConfigService/index.js.map +0 -1
- package/services/GetProjectIdService/index.js.map +0 -1
- package/services/GetProjectService/index.js.map +0 -1
- package/services/GetProjectVersionService/index.js.map +0 -1
- package/services/GetPulumiService/index.js.map +0 -1
- package/services/InitProjectSdkService/index.js.map +0 -1
- package/services/InstallExtensionService/index.js.map +0 -1
- package/services/InstallExtensionService/types.js.map +0 -1
- package/services/IsRemotePulumiBackendService/index.js.map +0 -1
- package/services/ListAppLambdaFunctionsService/index.js.map +0 -1
- package/services/ListDeployedEnvironmentsService/index.js.map +0 -1
- package/services/ListPackagesInAppWorkspaceService/index.js.map +0 -1
- package/services/ListPackagesService/index.js.map +0 -1
- package/services/LoadEnvVarsService/index.js.map +0 -1
- package/services/LocalStorageService/index.js.map +0 -1
- package/services/LoggerService/index.js.map +0 -1
- package/services/ProjectInfoService/index.js.map +0 -1
- package/services/ProjectSdkParamsService/index.js.map +0 -1
- package/services/PulumiExportService/index.js.map +0 -1
- package/services/PulumiGetConfigPassphraseService/index.js.map +0 -1
- package/services/PulumiGetSecretsProviderService/index.js.map +0 -1
- package/services/PulumiGetStackOutputService/index.js.map +0 -1
- package/services/PulumiImportService/index.js.map +0 -1
- package/services/PulumiLoginService/index.js.map +0 -1
- package/services/PulumiSelectStackService/index.js.map +0 -1
- package/services/SetProjectIdService/index.js.map +0 -1
- package/services/StdioService/index.js.map +0 -1
- package/services/UiService/index.js.map +0 -1
- package/services/ValidateProjectConfigService/index.js.map +0 -1
- package/services/WatchedLambdaFunctionsService/index.js.map +0 -1
- package/services/WcpService/index.js.map +0 -1
- package/services/index.js.map +0 -1
- package/utils/env/index.js.map +0 -1
- package/utils/env/types.js.map +0 -1
- package/utils/index.js.map +0 -1
|
@@ -1,147 +1,70 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
for (const [key, value] of Object.entries(props)) {
|
|
13
|
-
// Skip undefined values.
|
|
14
|
-
if (value === undefined) {
|
|
15
|
-
continue;
|
|
2
|
+
const serializePropsToJsx = (props)=>{
|
|
3
|
+
const attributes = [];
|
|
4
|
+
for (const [key, value] of Object.entries(props)){
|
|
5
|
+
if (void 0 === value) continue;
|
|
6
|
+
let serializedValue;
|
|
7
|
+
if ("string" == typeof value) serializedValue = `{${JSON.stringify(value)}}`;
|
|
8
|
+
else if ("number" == typeof value || "boolean" == typeof value) serializedValue = `{${value}}`;
|
|
9
|
+
else if (null === value) serializedValue = "{null}";
|
|
10
|
+
else Array.isArray(value), serializedValue = `{${JSON.stringify(value)}}`;
|
|
11
|
+
attributes.push(`${key}=${serializedValue}`);
|
|
16
12
|
}
|
|
17
|
-
|
|
18
|
-
// Determine the serialization based on value type.
|
|
19
|
-
let serializedValue;
|
|
20
|
-
if (typeof value === "string") {
|
|
21
|
-
// Strings: use JSON.stringify to handle escaping, then wrap in curly braces.
|
|
22
|
-
serializedValue = `{${JSON.stringify(value)}}`;
|
|
23
|
-
} else if (typeof value === "number" || typeof value === "boolean") {
|
|
24
|
-
// Numbers and booleans: wrap in curly braces without quotes.
|
|
25
|
-
serializedValue = `{${value}}`;
|
|
26
|
-
} else if (value === null) {
|
|
27
|
-
// Null values.
|
|
28
|
-
serializedValue = `{null}`;
|
|
29
|
-
} else if (Array.isArray(value) || typeof value === "object") {
|
|
30
|
-
// Arrays and objects: use JSON.stringify, then wrap in curly braces.
|
|
31
|
-
serializedValue = `{${JSON.stringify(value)}}`;
|
|
32
|
-
} else {
|
|
33
|
-
// Fallback for any other types.
|
|
34
|
-
serializedValue = `{${JSON.stringify(value)}}`;
|
|
35
|
-
}
|
|
36
|
-
attributes.push(`${key}=${serializedValue}`);
|
|
37
|
-
}
|
|
38
|
-
return attributes.join(" ");
|
|
13
|
+
return attributes.join(" ");
|
|
39
14
|
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if (!extensionsFuncMatch) {
|
|
61
|
-
return content;
|
|
62
|
-
}
|
|
63
|
-
const funcContent = extensionsFuncMatch[0];
|
|
64
|
-
// Find all </> in the function - the last one closes the return statement.
|
|
65
|
-
const closingTags = [...funcContent.matchAll(/<\/>/g)];
|
|
66
|
-
if (closingTags.length === 0) {
|
|
67
|
-
return content;
|
|
68
|
-
}
|
|
69
|
-
const lastClosingTag = closingTags[closingTags.length - 1];
|
|
70
|
-
const lastClosingTagIndex = lastClosingTag.index;
|
|
71
|
-
|
|
72
|
-
// Find the indentation of the line containing the last </>.
|
|
73
|
-
const beforeClosing = funcContent.substring(0, lastClosingTagIndex);
|
|
74
|
-
const lines = beforeClosing.split("\n");
|
|
75
|
-
const lastLine = lines[lines.length - 1];
|
|
76
|
-
const indent = lastLine.match(/^(\s*)/)?.[1] || " ";
|
|
77
|
-
|
|
78
|
-
// Insert the component before the last </>.
|
|
79
|
-
const newFuncContent = funcContent.substring(0, lastClosingTagIndex) + `${indent}${componentTag}\n${indent}` + funcContent.substring(lastClosingTagIndex);
|
|
80
|
-
return content.replace(extensionsFuncRegex, newFuncContent);
|
|
15
|
+
const addComponentToExtensions = (content, componentName, props)=>{
|
|
16
|
+
const propsString = props ? serializePropsToJsx(props) : "";
|
|
17
|
+
const componentTag = propsString ? `<${componentName} ${propsString} />` : `<${componentName} />`;
|
|
18
|
+
if (content.includes(componentTag)) return content;
|
|
19
|
+
const extensionsFuncRegex = /export const Extensions = \(\) => \{[\s\S]*?\};/;
|
|
20
|
+
const extensionsFuncMatch = content.match(extensionsFuncRegex);
|
|
21
|
+
if (!extensionsFuncMatch) return content;
|
|
22
|
+
const funcContent = extensionsFuncMatch[0];
|
|
23
|
+
const closingTags = [
|
|
24
|
+
...funcContent.matchAll(/<\/>/g)
|
|
25
|
+
];
|
|
26
|
+
if (0 === closingTags.length) return content;
|
|
27
|
+
const lastClosingTag = closingTags[closingTags.length - 1];
|
|
28
|
+
const lastClosingTagIndex = lastClosingTag.index;
|
|
29
|
+
const beforeClosing = funcContent.substring(0, lastClosingTagIndex);
|
|
30
|
+
const lines = beforeClosing.split("\n");
|
|
31
|
+
const lastLine = lines[lines.length - 1];
|
|
32
|
+
const indent = lastLine.match(/^(\s*)/)?.[1] || " ";
|
|
33
|
+
const newFuncContent = funcContent.substring(0, lastClosingTagIndex) + `${indent}${componentTag}\n${indent}` + funcContent.substring(lastClosingTagIndex);
|
|
34
|
+
return content.replace(extensionsFuncRegex, newFuncContent);
|
|
81
35
|
};
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
// Check if we need to add to an existing import from the same path.
|
|
100
|
-
const existingImportRegex = new RegExp(`import\\s+{([^}]+)}\\s+from\\s+["']${importStatement.path.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}["'];?`, "m");
|
|
101
|
-
const existingImportMatch = content.match(existingImportRegex);
|
|
102
|
-
if (existingImportMatch) {
|
|
103
|
-
// Import from this path exists, check if specifier is already imported.
|
|
104
|
-
const existingSpecifiers = existingImportMatch[1].split(",").map(s => s.trim());
|
|
105
|
-
if (!existingSpecifiers.includes(importStatement.specifier)) {
|
|
106
|
-
// Append the new specifier to the existing import.
|
|
107
|
-
const updatedSpecifiers = [...existingSpecifiers, importStatement.specifier].join(", ");
|
|
108
|
-
const updatedImportLine = `import { ${updatedSpecifiers} } from "${importStatement.path}";`;
|
|
109
|
-
content = content.replace(existingImportRegex, updatedImportLine);
|
|
110
|
-
}
|
|
111
|
-
} else {
|
|
112
|
-
// No existing import from this path, add a new import line.
|
|
113
|
-
const importLine = `import { ${importStatement.specifier} } from "${importStatement.path}";`;
|
|
114
|
-
|
|
115
|
-
// Find the position after the last import or at the beginning.
|
|
116
|
-
const importRegex = /^import\s+.*?from\s+["'].*?["'];?\s*$/gm;
|
|
117
|
-
const matches = Array.from(content.matchAll(importRegex));
|
|
118
|
-
if (matches.length > 0) {
|
|
119
|
-
// Add after the last import.
|
|
120
|
-
const lastImport = matches[matches.length - 1];
|
|
121
|
-
const lastImportEnd = lastImport.index + lastImport[0].length;
|
|
122
|
-
content = content.slice(0, lastImportEnd) + "\n" + importLine + content.slice(lastImportEnd);
|
|
36
|
+
const updateWebinyConfig = async (params)=>{
|
|
37
|
+
const { projectRoot, webinyConfigTsx } = params;
|
|
38
|
+
const webinyConfigPath = `${projectRoot}/webiny.config.tsx`;
|
|
39
|
+
let content = fs.readFileSync(webinyConfigPath, "utf-8");
|
|
40
|
+
if (webinyConfigTsx.imports && webinyConfigTsx.imports.length > 0) for (const importStatement of webinyConfigTsx.imports){
|
|
41
|
+
const existingImportRegex = new RegExp(`import\\s+{([^}]+)}\\s+from\\s+["']${importStatement.path.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}["'];?`, "m");
|
|
42
|
+
const existingImportMatch = content.match(existingImportRegex);
|
|
43
|
+
if (existingImportMatch) {
|
|
44
|
+
const existingSpecifiers = existingImportMatch[1].split(",").map((s)=>s.trim());
|
|
45
|
+
if (!existingSpecifiers.includes(importStatement.specifier)) {
|
|
46
|
+
const updatedSpecifiers = [
|
|
47
|
+
...existingSpecifiers,
|
|
48
|
+
importStatement.specifier
|
|
49
|
+
].join(", ");
|
|
50
|
+
const updatedImportLine = `import { ${updatedSpecifiers} } from "${importStatement.path}";`;
|
|
51
|
+
content = content.replace(existingImportRegex, updatedImportLine);
|
|
52
|
+
}
|
|
123
53
|
} else {
|
|
124
|
-
|
|
125
|
-
|
|
54
|
+
const importLine = `import { ${importStatement.specifier} } from "${importStatement.path}";`;
|
|
55
|
+
const importRegex = /^import\s+.*?from\s+["'].*?["'];?\s*$/gm;
|
|
56
|
+
const matches = Array.from(content.matchAll(importRegex));
|
|
57
|
+
if (matches.length > 0) {
|
|
58
|
+
const lastImport = matches[matches.length - 1];
|
|
59
|
+
const lastImportEnd = lastImport.index + lastImport[0].length;
|
|
60
|
+
content = content.slice(0, lastImportEnd) + "\n" + importLine + content.slice(lastImportEnd);
|
|
61
|
+
} else content = importLine + "\n\n" + content;
|
|
126
62
|
}
|
|
127
|
-
}
|
|
128
63
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
if (webinyConfigTsx.component) {
|
|
133
|
-
content = addComponentToExtensions(content, webinyConfigTsx.component.name, webinyConfigTsx.component.props);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
// Add multiple components to the Extensions function.
|
|
137
|
-
if (webinyConfigTsx.components && webinyConfigTsx.components.length > 0) {
|
|
138
|
-
for (const component of webinyConfigTsx.components) {
|
|
139
|
-
content = addComponentToExtensions(content, component.name, component.props);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
// Write the updated content back
|
|
144
|
-
fs.writeFileSync(webinyConfigPath, content, "utf-8");
|
|
64
|
+
if (webinyConfigTsx.component) content = addComponentToExtensions(content, webinyConfigTsx.component.name, webinyConfigTsx.component.props);
|
|
65
|
+
if (webinyConfigTsx.components && webinyConfigTsx.components.length > 0) for (const component of webinyConfigTsx.components)content = addComponentToExtensions(content, component.name, component.props);
|
|
66
|
+
fs.writeFileSync(webinyConfigPath, content, "utf-8");
|
|
145
67
|
};
|
|
68
|
+
export { updateWebinyConfig };
|
|
146
69
|
|
|
147
70
|
//# sourceMappingURL=updateWebinyConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["fs","serializePropsToJsx","props","attributes","key","value","Object","entries","undefined","serializedValue","JSON","stringify","Array","isArray","push","join","addComponentToExtensions","content","componentName","propsString","componentTag","includes","extensionsFuncRegex","extensionsFuncMatch","match","funcContent","closingTags","matchAll","length","lastClosingTag","lastClosingTagIndex","index","beforeClosing","substring","lines","split","lastLine","indent","newFuncContent","replace","updateWebinyConfig","params","projectRoot","webinyConfigTsx","webinyConfigPath","readFileSync","imports","importStatement","existingImportRegex","RegExp","path","existingImportMatch","existingSpecifiers","map","s","trim","specifier","updatedSpecifiers","updatedImportLine","importLine","importRegex","matches","from","lastImport","lastImportEnd","slice","component","name","components","writeFileSync"],"sources":["updateWebinyConfig.ts"],"sourcesContent":["import fs from \"fs\";\nimport { ExtensionWebinyConfigTsx } from \"./types.js\";\n\ninterface UpdateWebinyConfigParams {\n projectRoot: string;\n webinyConfigTsx: ExtensionWebinyConfigTsx;\n}\n\n/**\n * Serializes a props object to JSX attribute syntax.\n * Examples:\n * - { secretKey: \"value\" } => 'secretKey={\"value\"}'\n * - { enabled: true } => 'enabled={true}'\n * - { count: 42 } => 'count={42}'\n * - { config: { key: \"value\" } } => 'config={{\"key\":\"value\"}}'\n */\nconst serializePropsToJsx = (props: Record<string, any>): string => {\n const attributes: string[] = [];\n\n for (const [key, value] of Object.entries(props)) {\n // Skip undefined values.\n if (value === undefined) {\n continue;\n }\n\n // Determine the serialization based on value type.\n let serializedValue: string;\n\n if (typeof value === \"string\") {\n // Strings: use JSON.stringify to handle escaping, then wrap in curly braces.\n serializedValue = `{${JSON.stringify(value)}}`;\n } else if (typeof value === \"number\" || typeof value === \"boolean\") {\n // Numbers and booleans: wrap in curly braces without quotes.\n serializedValue = `{${value}}`;\n } else if (value === null) {\n // Null values.\n serializedValue = `{null}`;\n } else if (Array.isArray(value) || typeof value === \"object\") {\n // Arrays and objects: use JSON.stringify, then wrap in curly braces.\n serializedValue = `{${JSON.stringify(value)}}`;\n } else {\n // Fallback for any other types.\n serializedValue = `{${JSON.stringify(value)}}`;\n }\n\n attributes.push(`${key}=${serializedValue}`);\n }\n\n return attributes.join(\" \");\n};\n\n/**\n * Adds a component to the Extensions function in the webiny.config.tsx content.\n */\nconst addComponentToExtensions = (\n content: string,\n componentName: string,\n props?: Record<string, any>\n): string => {\n // Serialize props to JSX attributes.\n const propsString = props ? serializePropsToJsx(props) : \"\";\n\n // Generate component tag with or without props.\n const componentTag = propsString\n ? `<${componentName} ${propsString} />`\n : `<${componentName} />`;\n\n // Check if component already exists.\n if (content.includes(componentTag)) {\n return content;\n }\n\n // Find the Extensions function's return statement and add component before the final </>.\n // Strategy: Find \"export const Extensions\" block, then find the last </> and insert before it.\n const extensionsFuncRegex = /export const Extensions = \\(\\) => \\{[\\s\\S]*?\\};/;\n const extensionsFuncMatch = content.match(extensionsFuncRegex);\n\n if (!extensionsFuncMatch) {\n return content;\n }\n\n const funcContent = extensionsFuncMatch[0];\n // Find all </> in the function - the last one closes the return statement.\n const closingTags = [...funcContent.matchAll(/<\\/>/g)];\n\n if (closingTags.length === 0) {\n return content;\n }\n\n const lastClosingTag = closingTags[closingTags.length - 1];\n const lastClosingTagIndex = lastClosingTag.index!;\n\n // Find the indentation of the line containing the last </>.\n const beforeClosing = funcContent.substring(0, lastClosingTagIndex);\n const lines = beforeClosing.split(\"\\n\");\n const lastLine = lines[lines.length - 1];\n const indent = lastLine.match(/^(\\s*)/)?.[1] || \" \";\n\n // Insert the component before the last </>.\n const newFuncContent =\n funcContent.substring(0, lastClosingTagIndex) +\n `${indent}${componentTag}\\n${indent}` +\n funcContent.substring(lastClosingTagIndex);\n\n return content.replace(extensionsFuncRegex, newFuncContent);\n};\n\n/**\n * Update the webiny.config.tsx file to add extension imports and component.\n */\nexport const updateWebinyConfig = async (params: UpdateWebinyConfigParams): Promise<void> => {\n const { projectRoot, webinyConfigTsx } = params;\n\n const webinyConfigPath = `${projectRoot}/webiny.config.tsx`;\n\n // Read the current webiny.config.tsx\n let content = fs.readFileSync(webinyConfigPath, \"utf-8\");\n\n // Add imports at the top (after existing imports)\n if (webinyConfigTsx.imports && webinyConfigTsx.imports.length > 0) {\n for (const importStatement of webinyConfigTsx.imports) {\n // Check if we need to add to an existing import from the same path.\n const existingImportRegex = new RegExp(\n `import\\\\s+{([^}]+)}\\\\s+from\\\\s+[\"']${importStatement.path.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")}[\"'];?`,\n \"m\"\n );\n const existingImportMatch = content.match(existingImportRegex);\n\n if (existingImportMatch) {\n // Import from this path exists, check if specifier is already imported.\n const existingSpecifiers = existingImportMatch[1].split(\",\").map(s => s.trim());\n\n if (!existingSpecifiers.includes(importStatement.specifier)) {\n // Append the new specifier to the existing import.\n const updatedSpecifiers = [\n ...existingSpecifiers,\n importStatement.specifier\n ].join(\", \");\n const updatedImportLine = `import { ${updatedSpecifiers} } from \"${importStatement.path}\";`;\n content = content.replace(existingImportRegex, updatedImportLine);\n }\n } else {\n // No existing import from this path, add a new import line.\n const importLine = `import { ${importStatement.specifier} } from \"${importStatement.path}\";`;\n\n // Find the position after the last import or at the beginning.\n const importRegex = /^import\\s+.*?from\\s+[\"'].*?[\"'];?\\s*$/gm;\n const matches = Array.from(content.matchAll(importRegex));\n\n if (matches.length > 0) {\n // Add after the last import.\n const lastImport = matches[matches.length - 1];\n const lastImportEnd = lastImport.index! + lastImport[0].length;\n content =\n content.slice(0, lastImportEnd) +\n \"\\n\" +\n importLine +\n content.slice(lastImportEnd);\n } else {\n // No imports found, add at the beginning.\n content = importLine + \"\\n\\n\" + content;\n }\n }\n }\n }\n\n // Add component to the Extensions function.\n if (webinyConfigTsx.component) {\n content = addComponentToExtensions(\n content,\n webinyConfigTsx.component.name,\n webinyConfigTsx.component.props\n );\n }\n\n // Add multiple components to the Extensions function.\n if (webinyConfigTsx.components && webinyConfigTsx.components.length > 0) {\n for (const component of webinyConfigTsx.components) {\n content = addComponentToExtensions(content, component.name, component.props);\n }\n }\n\n // Write the updated content back\n fs.writeFileSync(webinyConfigPath, content, \"utf-8\");\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"services/InstallExtensionService/updateWebinyConfig.js","sources":["../../../src/services/InstallExtensionService/updateWebinyConfig.ts"],"sourcesContent":["import fs from \"fs\";\nimport { ExtensionWebinyConfigTsx } from \"./types.js\";\n\ninterface UpdateWebinyConfigParams {\n projectRoot: string;\n webinyConfigTsx: ExtensionWebinyConfigTsx;\n}\n\n/**\n * Serializes a props object to JSX attribute syntax.\n * Examples:\n * - { secretKey: \"value\" } => 'secretKey={\"value\"}'\n * - { enabled: true } => 'enabled={true}'\n * - { count: 42 } => 'count={42}'\n * - { config: { key: \"value\" } } => 'config={{\"key\":\"value\"}}'\n */\nconst serializePropsToJsx = (props: Record<string, any>): string => {\n const attributes: string[] = [];\n\n for (const [key, value] of Object.entries(props)) {\n // Skip undefined values.\n if (value === undefined) {\n continue;\n }\n\n // Determine the serialization based on value type.\n let serializedValue: string;\n\n if (typeof value === \"string\") {\n // Strings: use JSON.stringify to handle escaping, then wrap in curly braces.\n serializedValue = `{${JSON.stringify(value)}}`;\n } else if (typeof value === \"number\" || typeof value === \"boolean\") {\n // Numbers and booleans: wrap in curly braces without quotes.\n serializedValue = `{${value}}`;\n } else if (value === null) {\n // Null values.\n serializedValue = `{null}`;\n } else if (Array.isArray(value) || typeof value === \"object\") {\n // Arrays and objects: use JSON.stringify, then wrap in curly braces.\n serializedValue = `{${JSON.stringify(value)}}`;\n } else {\n // Fallback for any other types.\n serializedValue = `{${JSON.stringify(value)}}`;\n }\n\n attributes.push(`${key}=${serializedValue}`);\n }\n\n return attributes.join(\" \");\n};\n\n/**\n * Adds a component to the Extensions function in the webiny.config.tsx content.\n */\nconst addComponentToExtensions = (\n content: string,\n componentName: string,\n props?: Record<string, any>\n): string => {\n // Serialize props to JSX attributes.\n const propsString = props ? serializePropsToJsx(props) : \"\";\n\n // Generate component tag with or without props.\n const componentTag = propsString\n ? `<${componentName} ${propsString} />`\n : `<${componentName} />`;\n\n // Check if component already exists.\n if (content.includes(componentTag)) {\n return content;\n }\n\n // Find the Extensions function's return statement and add component before the final </>.\n // Strategy: Find \"export const Extensions\" block, then find the last </> and insert before it.\n const extensionsFuncRegex = /export const Extensions = \\(\\) => \\{[\\s\\S]*?\\};/;\n const extensionsFuncMatch = content.match(extensionsFuncRegex);\n\n if (!extensionsFuncMatch) {\n return content;\n }\n\n const funcContent = extensionsFuncMatch[0];\n // Find all </> in the function - the last one closes the return statement.\n const closingTags = [...funcContent.matchAll(/<\\/>/g)];\n\n if (closingTags.length === 0) {\n return content;\n }\n\n const lastClosingTag = closingTags[closingTags.length - 1];\n const lastClosingTagIndex = lastClosingTag.index!;\n\n // Find the indentation of the line containing the last </>.\n const beforeClosing = funcContent.substring(0, lastClosingTagIndex);\n const lines = beforeClosing.split(\"\\n\");\n const lastLine = lines[lines.length - 1];\n const indent = lastLine.match(/^(\\s*)/)?.[1] || \" \";\n\n // Insert the component before the last </>.\n const newFuncContent =\n funcContent.substring(0, lastClosingTagIndex) +\n `${indent}${componentTag}\\n${indent}` +\n funcContent.substring(lastClosingTagIndex);\n\n return content.replace(extensionsFuncRegex, newFuncContent);\n};\n\n/**\n * Update the webiny.config.tsx file to add extension imports and component.\n */\nexport const updateWebinyConfig = async (params: UpdateWebinyConfigParams): Promise<void> => {\n const { projectRoot, webinyConfigTsx } = params;\n\n const webinyConfigPath = `${projectRoot}/webiny.config.tsx`;\n\n // Read the current webiny.config.tsx\n let content = fs.readFileSync(webinyConfigPath, \"utf-8\");\n\n // Add imports at the top (after existing imports)\n if (webinyConfigTsx.imports && webinyConfigTsx.imports.length > 0) {\n for (const importStatement of webinyConfigTsx.imports) {\n // Check if we need to add to an existing import from the same path.\n const existingImportRegex = new RegExp(\n `import\\\\s+{([^}]+)}\\\\s+from\\\\s+[\"']${importStatement.path.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")}[\"'];?`,\n \"m\"\n );\n const existingImportMatch = content.match(existingImportRegex);\n\n if (existingImportMatch) {\n // Import from this path exists, check if specifier is already imported.\n const existingSpecifiers = existingImportMatch[1].split(\",\").map(s => s.trim());\n\n if (!existingSpecifiers.includes(importStatement.specifier)) {\n // Append the new specifier to the existing import.\n const updatedSpecifiers = [\n ...existingSpecifiers,\n importStatement.specifier\n ].join(\", \");\n const updatedImportLine = `import { ${updatedSpecifiers} } from \"${importStatement.path}\";`;\n content = content.replace(existingImportRegex, updatedImportLine);\n }\n } else {\n // No existing import from this path, add a new import line.\n const importLine = `import { ${importStatement.specifier} } from \"${importStatement.path}\";`;\n\n // Find the position after the last import or at the beginning.\n const importRegex = /^import\\s+.*?from\\s+[\"'].*?[\"'];?\\s*$/gm;\n const matches = Array.from(content.matchAll(importRegex));\n\n if (matches.length > 0) {\n // Add after the last import.\n const lastImport = matches[matches.length - 1];\n const lastImportEnd = lastImport.index! + lastImport[0].length;\n content =\n content.slice(0, lastImportEnd) +\n \"\\n\" +\n importLine +\n content.slice(lastImportEnd);\n } else {\n // No imports found, add at the beginning.\n content = importLine + \"\\n\\n\" + content;\n }\n }\n }\n }\n\n // Add component to the Extensions function.\n if (webinyConfigTsx.component) {\n content = addComponentToExtensions(\n content,\n webinyConfigTsx.component.name,\n webinyConfigTsx.component.props\n );\n }\n\n // Add multiple components to the Extensions function.\n if (webinyConfigTsx.components && webinyConfigTsx.components.length > 0) {\n for (const component of webinyConfigTsx.components) {\n content = addComponentToExtensions(content, component.name, component.props);\n }\n }\n\n // Write the updated content back\n fs.writeFileSync(webinyConfigPath, content, \"utf-8\");\n};\n"],"names":["serializePropsToJsx","props","attributes","key","value","Object","undefined","serializedValue","JSON","Array","addComponentToExtensions","content","componentName","propsString","componentTag","extensionsFuncRegex","extensionsFuncMatch","funcContent","closingTags","lastClosingTag","lastClosingTagIndex","beforeClosing","lines","lastLine","indent","newFuncContent","updateWebinyConfig","params","projectRoot","webinyConfigTsx","webinyConfigPath","fs","importStatement","existingImportRegex","RegExp","existingImportMatch","existingSpecifiers","s","updatedSpecifiers","updatedImportLine","importLine","importRegex","matches","lastImport","lastImportEnd","component"],"mappings":"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"}
|
|
@@ -1,23 +1,15 @@
|
|
|
1
1
|
import { createImplementation } from "@webiny/di";
|
|
2
2
|
import { IsRemotePulumiBackendService } from "../../abstractions/index.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* Checks for the following environment variables in order:
|
|
8
|
-
* - WEBINY_CLI_PULUMI_BACKEND
|
|
9
|
-
* - WEBINY_CLI_PULUMI_BACKEND_URL
|
|
10
|
-
* - PULUMI_LOGIN (fallback for standard Pulumi configuration)
|
|
11
|
-
*/
|
|
12
|
-
export class DefaultIsRemotePulumiBackendService {
|
|
13
|
-
execute() {
|
|
14
|
-
return !!(process.env.WEBINY_CLI_PULUMI_BACKEND || process.env.WEBINY_CLI_PULUMI_BACKEND_URL || process.env.PULUMI_LOGIN);
|
|
15
|
-
}
|
|
3
|
+
class DefaultIsRemotePulumiBackendService {
|
|
4
|
+
execute() {
|
|
5
|
+
return !!(process.env.WEBINY_CLI_PULUMI_BACKEND || process.env.WEBINY_CLI_PULUMI_BACKEND_URL || process.env.PULUMI_LOGIN);
|
|
6
|
+
}
|
|
16
7
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
8
|
+
const isRemotePulumiBackendService = createImplementation({
|
|
9
|
+
abstraction: IsRemotePulumiBackendService,
|
|
10
|
+
implementation: DefaultIsRemotePulumiBackendService,
|
|
11
|
+
dependencies: []
|
|
21
12
|
});
|
|
13
|
+
export { DefaultIsRemotePulumiBackendService, isRemotePulumiBackendService };
|
|
22
14
|
|
|
23
15
|
//# sourceMappingURL=IsRemotePulumiBackendService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"services/IsRemotePulumiBackendService/IsRemotePulumiBackendService.js","sources":["../../../src/services/IsRemotePulumiBackendService/IsRemotePulumiBackendService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { IsRemotePulumiBackendService } from \"~/abstractions/index.js\";\n\n/**\n * Service to check if a remote Pulumi backend is configured via environment variables.\n *\n * Checks for the following environment variables in order:\n * - WEBINY_CLI_PULUMI_BACKEND\n * - WEBINY_CLI_PULUMI_BACKEND_URL\n * - PULUMI_LOGIN (fallback for standard Pulumi configuration)\n */\nexport class DefaultIsRemotePulumiBackendService implements IsRemotePulumiBackendService.Interface {\n execute(): boolean {\n return !!(\n process.env.WEBINY_CLI_PULUMI_BACKEND ||\n process.env.WEBINY_CLI_PULUMI_BACKEND_URL ||\n process.env.PULUMI_LOGIN\n );\n }\n}\n\nexport const isRemotePulumiBackendService = createImplementation({\n abstraction: IsRemotePulumiBackendService,\n implementation: DefaultIsRemotePulumiBackendService,\n dependencies: []\n});\n"],"names":["DefaultIsRemotePulumiBackendService","process","isRemotePulumiBackendService","createImplementation","IsRemotePulumiBackendService"],"mappings":";;AAWO,MAAMA;IACT,UAAmB;QACf,OAAO,CAAC,CACJC,CAAAA,QAAQ,GAAG,CAAC,yBAAyB,IACrCA,QAAQ,GAAG,CAAC,6BAA6B,IACzCA,QAAQ,GAAG,CAAC,YAAW;IAE/B;AACJ;AAEO,MAAMC,+BAA+BC,qBAAqB;IAC7D,aAAaC;IACb,gBAAgBJ;IAChB,cAAc,EAAE;AACpB"}
|
|
@@ -1,84 +1,61 @@
|
|
|
1
1
|
import { createImplementation } from "@webiny/di";
|
|
2
|
-
import { ListAppLambdaFunctionsService,
|
|
2
|
+
import { ListAppLambdaFunctionsService, LoggerService, PulumiExportService } from "../../abstractions/index.js";
|
|
3
3
|
import path from "path";
|
|
4
4
|
import { minimatch } from "minimatch";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
async execute(app, params) {
|
|
11
|
-
const stackExport = await this.pulumiExportService.execute(app);
|
|
12
|
-
if (!stackExport) {
|
|
13
|
-
// If no stack export is found, return an empty array. This is a valid scenario.
|
|
14
|
-
// For example, watching the Admin app locally, but not deploying it.
|
|
15
|
-
return {
|
|
16
|
-
list: [],
|
|
17
|
-
meta: {
|
|
18
|
-
count: 0,
|
|
19
|
-
totalCount: 0
|
|
20
|
-
}
|
|
21
|
-
};
|
|
5
|
+
class DefaultListAppLambdaFunctionsService {
|
|
6
|
+
constructor(pulumiExportService, loggerService){
|
|
7
|
+
this.pulumiExportService = pulumiExportService;
|
|
8
|
+
this.loggerService = loggerService;
|
|
22
9
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
// we can't determine the path to the handler. Probably needs revisiting. 🤦♂️
|
|
37
|
-
.filter(resource => {
|
|
38
|
-
return "." in resource.inputs.code.assets;
|
|
39
|
-
}).map(resource => {
|
|
40
|
-
const fnName = resource.inputs.name;
|
|
41
|
-
const handlerBuildFolderPath = resource.inputs.code.assets["."].path;
|
|
42
|
-
const handlerPath = path.join(handlerBuildFolderPath, "handler.mjs");
|
|
43
|
-
return {
|
|
44
|
-
name: fnName,
|
|
45
|
-
path: handlerPath
|
|
46
|
-
};
|
|
47
|
-
});
|
|
48
|
-
if (params?.whitelist?.length) {
|
|
49
|
-
const functionNamesToMatch = Array.isArray(params.whitelist) ? params.whitelist : [params.whitelist];
|
|
50
|
-
|
|
51
|
-
// `functionNamesToWatch` is an array of glob patterns, which denote which functions to watch.
|
|
52
|
-
filteredFunctionsList = filteredFunctionsList.filter(fn => {
|
|
53
|
-
return functionNamesToMatch.some(pattern => {
|
|
54
|
-
if (pattern.includes("*")) {
|
|
55
|
-
return minimatch(fn.name, pattern);
|
|
56
|
-
}
|
|
57
|
-
return fn.name.includes(pattern);
|
|
10
|
+
async execute(app, params) {
|
|
11
|
+
const stackExport = await this.pulumiExportService.execute(app);
|
|
12
|
+
if (!stackExport) return {
|
|
13
|
+
list: [],
|
|
14
|
+
meta: {
|
|
15
|
+
count: 0,
|
|
16
|
+
totalCount: 0
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const resources = stackExport.deployment?.resources ?? [];
|
|
20
|
+
const allFunctionsList = resources.filter((r)=>"aws:lambda/function:Function" === r.type).filter((resource)=>{
|
|
21
|
+
const isAuthorizerFunction = resource.inputs.name.includes("watch-command-iot-authorizer");
|
|
22
|
+
return !isAuthorizerFunction;
|
|
58
23
|
});
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
24
|
+
let filteredFunctionsList = allFunctionsList.filter((resource)=>"." in resource.inputs.code.assets).map((resource)=>{
|
|
25
|
+
const fnName = resource.inputs.name;
|
|
26
|
+
const handlerBuildFolderPath = resource.inputs.code.assets["."].path;
|
|
27
|
+
const handlerPath = path.join(handlerBuildFolderPath, "handler.mjs");
|
|
28
|
+
return {
|
|
29
|
+
name: fnName,
|
|
30
|
+
path: handlerPath
|
|
31
|
+
};
|
|
66
32
|
});
|
|
67
|
-
|
|
33
|
+
if (params?.whitelist?.length) {
|
|
34
|
+
const functionNamesToMatch = Array.isArray(params.whitelist) ? params.whitelist : [
|
|
35
|
+
params.whitelist
|
|
36
|
+
];
|
|
37
|
+
filteredFunctionsList = filteredFunctionsList.filter((fn)=>functionNamesToMatch.some((pattern)=>{
|
|
38
|
+
if (pattern.includes("*")) return minimatch(fn.name, pattern);
|
|
39
|
+
return fn.name.includes(pattern);
|
|
40
|
+
}));
|
|
41
|
+
} else if ("api" === app.name) filteredFunctionsList = filteredFunctionsList.filter((fn)=>fn.name.includes("graphql"));
|
|
42
|
+
return {
|
|
43
|
+
list: filteredFunctionsList,
|
|
44
|
+
meta: {
|
|
45
|
+
count: filteredFunctionsList.length,
|
|
46
|
+
totalCount: allFunctionsList.length
|
|
47
|
+
}
|
|
48
|
+
};
|
|
68
49
|
}
|
|
69
|
-
return {
|
|
70
|
-
list: filteredFunctionsList,
|
|
71
|
-
meta: {
|
|
72
|
-
count: filteredFunctionsList.length,
|
|
73
|
-
totalCount: allFunctionsList.length
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
50
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
51
|
+
const listAppLambdaFunctionsService = createImplementation({
|
|
52
|
+
abstraction: ListAppLambdaFunctionsService,
|
|
53
|
+
implementation: DefaultListAppLambdaFunctionsService,
|
|
54
|
+
dependencies: [
|
|
55
|
+
PulumiExportService,
|
|
56
|
+
LoggerService
|
|
57
|
+
]
|
|
82
58
|
});
|
|
59
|
+
export { DefaultListAppLambdaFunctionsService, listAppLambdaFunctionsService };
|
|
83
60
|
|
|
84
61
|
//# sourceMappingURL=ListAppLambdaFunctionsService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"services/ListAppLambdaFunctionsService/ListAppLambdaFunctionsService.js","sources":["../../../src/services/ListAppLambdaFunctionsService/ListAppLambdaFunctionsService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport {\n ListAppLambdaFunctionsService,\n PulumiExportService,\n LoggerService\n} from \"~/abstractions/index.js\";\nimport { type AppModel } from \"~/models/index.js\";\nimport path from \"path\";\nimport { minimatch } from \"minimatch\";\n\ninterface ExpectedStackExport {\n deployment: {\n resources: Array<{\n type: string;\n inputs: {\n name: string;\n code: {\n assets: Record<string, { path: string }>;\n };\n };\n }>;\n };\n}\n\nexport class DefaultListAppLambdaFunctionsService\n implements ListAppLambdaFunctionsService.Interface\n{\n constructor(\n private pulumiExportService: PulumiExportService.Interface,\n private loggerService: LoggerService.Interface\n ) {}\n\n async execute(app: AppModel, params?: ListAppLambdaFunctionsService.Params) {\n const stackExport = await this.pulumiExportService.execute<ExpectedStackExport>(app);\n\n if (!stackExport) {\n // If no stack export is found, return an empty array. This is a valid scenario.\n // For example, watching the Admin app locally, but not deploying it.\n return {\n list: [],\n meta: {\n count: 0,\n totalCount: 0\n }\n };\n }\n\n // If an app is not deployed, resources will not exist.\n const resources = stackExport.deployment?.resources ?? [];\n\n const allFunctionsList = resources\n .filter(r => r.type === \"aws:lambda/function:Function\")\n // We don't need to watch the authorizer function.\n .filter(resource => {\n const isAuthorizerFunction = resource.inputs.name.includes(\n \"watch-command-iot-authorizer\"\n );\n return !isAuthorizerFunction;\n });\n\n let filteredFunctionsList = allFunctionsList\n // First, this filter ensures that Lambda@Edge functions are excluded. Second,\n // it also ensures a function is filtered out if a `pulumi refresh` was called.\n // This is because, when called, the paths in Pulumi state file disappear, and\n // we can't determine the path to the handler. Probably needs revisiting. 🤦♂️\n .filter(resource => {\n return \".\" in resource.inputs.code.assets;\n })\n .map(resource => {\n const fnName = resource.inputs.name;\n const handlerBuildFolderPath = resource.inputs.code.assets[\".\"].path;\n\n const handlerPath = path.join(handlerBuildFolderPath, \"handler.mjs\");\n return {\n name: fnName,\n path: handlerPath\n };\n });\n\n if (params?.whitelist?.length) {\n const functionNamesToMatch = Array.isArray(params.whitelist)\n ? params.whitelist\n : [params.whitelist];\n\n // `functionNamesToWatch` is an array of glob patterns, which denote which functions to watch.\n filteredFunctionsList = filteredFunctionsList.filter(fn => {\n return functionNamesToMatch.some(pattern => {\n if (pattern.includes(\"*\")) {\n return minimatch(fn.name, pattern);\n }\n\n return fn.name.includes(pattern);\n });\n });\n } else {\n // We've hardcoded this filtering here just because of lack of time.\n // With v5, these \"presets\" were located within `webiny.application.ts` files.\n if (app.name === \"api\") {\n filteredFunctionsList = filteredFunctionsList.filter(fn => {\n return fn.name.includes(\"graphql\");\n });\n }\n }\n\n return {\n list: filteredFunctionsList,\n meta: { count: filteredFunctionsList.length, totalCount: allFunctionsList.length }\n };\n }\n}\n\nexport const listAppLambdaFunctionsService = createImplementation({\n abstraction: ListAppLambdaFunctionsService,\n implementation: DefaultListAppLambdaFunctionsService,\n dependencies: [PulumiExportService, LoggerService]\n});\n"],"names":["DefaultListAppLambdaFunctionsService","pulumiExportService","loggerService","app","params","stackExport","resources","allFunctionsList","r","resource","isAuthorizerFunction","filteredFunctionsList","fnName","handlerBuildFolderPath","handlerPath","path","functionNamesToMatch","Array","fn","pattern","minimatch","listAppLambdaFunctionsService","createImplementation","ListAppLambdaFunctionsService","PulumiExportService","LoggerService"],"mappings":";;;;AAwBO,MAAMA;IAGT,YACYC,mBAAkD,EAClDC,aAAsC,CAChD;aAFUD,mBAAmB,GAAnBA;aACAC,aAAa,GAAbA;IACT;IAEH,MAAM,QAAQC,GAAa,EAAEC,MAA6C,EAAE;QACxE,MAAMC,cAAc,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAsBF;QAEhF,IAAI,CAACE,aAGD,OAAO;YACH,MAAM,EAAE;YACR,MAAM;gBACF,OAAO;gBACP,YAAY;YAChB;QACJ;QAIJ,MAAMC,YAAYD,YAAY,UAAU,EAAE,aAAa,EAAE;QAEzD,MAAME,mBAAmBD,UACpB,MAAM,CAACE,CAAAA,IAAKA,AAAW,mCAAXA,EAAE,IAAI,EAElB,MAAM,CAACC,CAAAA;YACJ,MAAMC,uBAAuBD,SAAS,MAAM,CAAC,IAAI,CAAC,QAAQ,CACtD;YAEJ,OAAO,CAACC;QACZ;QAEJ,IAAIC,wBAAwBJ,iBAKvB,MAAM,CAACE,CAAAA,WACG,OAAOA,SAAS,MAAM,CAAC,IAAI,CAAC,MAAM,EAE5C,GAAG,CAACA,CAAAA;YACD,MAAMG,SAASH,SAAS,MAAM,CAAC,IAAI;YACnC,MAAMI,yBAAyBJ,SAAS,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;YAEpE,MAAMK,cAAcC,KAAK,IAAI,CAACF,wBAAwB;YACtD,OAAO;gBACH,MAAMD;gBACN,MAAME;YACV;QACJ;QAEJ,IAAIV,QAAQ,WAAW,QAAQ;YAC3B,MAAMY,uBAAuBC,MAAM,OAAO,CAACb,OAAO,SAAS,IACrDA,OAAO,SAAS,GAChB;gBAACA,OAAO,SAAS;aAAC;YAGxBO,wBAAwBA,sBAAsB,MAAM,CAACO,CAAAA,KAC1CF,qBAAqB,IAAI,CAACG,CAAAA;oBAC7B,IAAIA,QAAQ,QAAQ,CAAC,MACjB,OAAOC,UAAUF,GAAG,IAAI,EAAEC;oBAG9B,OAAOD,GAAG,IAAI,CAAC,QAAQ,CAACC;gBAC5B;QAER,OAGI,IAAIhB,AAAa,UAAbA,IAAI,IAAI,EACRQ,wBAAwBA,sBAAsB,MAAM,CAACO,CAAAA,KAC1CA,GAAG,IAAI,CAAC,QAAQ,CAAC;QAKpC,OAAO;YACH,MAAMP;YACN,MAAM;gBAAE,OAAOA,sBAAsB,MAAM;gBAAE,YAAYJ,iBAAiB,MAAM;YAAC;QACrF;IACJ;AACJ;AAEO,MAAMc,gCAAgCC,qBAAqB;IAC9D,aAAaC;IACb,gBAAgBvB;IAChB,cAAc;QAACwB;QAAqBC;KAAc;AACtD"}
|
|
@@ -1,32 +1,30 @@
|
|
|
1
1
|
import { createImplementation } from "@webiny/di";
|
|
2
2
|
import { GetProjectService, ListDeployedEnvironmentsService } from "../../abstractions/index.js";
|
|
3
3
|
import path from "path";
|
|
4
|
-
import
|
|
4
|
+
import fast_glob from "fast-glob";
|
|
5
5
|
import { splitStackName } from "../../utils/index.js";
|
|
6
6
|
const STACK_JSONS_GLOB = ".pulumi/**/apps/core/.pulumi/stacks/**/*.json";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
});
|
|
21
|
-
return pulumiCoreStackFilesPaths.map(current => {
|
|
22
|
-
return splitStackName(path.basename(current, ".json"));
|
|
23
|
-
});
|
|
24
|
-
}
|
|
7
|
+
class DefaultListDeployedEnvironmentsService {
|
|
8
|
+
constructor(getProjectService){
|
|
9
|
+
this.getProjectService = getProjectService;
|
|
10
|
+
}
|
|
11
|
+
async execute() {
|
|
12
|
+
const project = this.getProjectService.execute();
|
|
13
|
+
const pulumiCoreStackFilesPaths = fast_glob.sync(STACK_JSONS_GLOB, {
|
|
14
|
+
cwd: project.paths.rootFolder.toString(),
|
|
15
|
+
onlyFiles: true,
|
|
16
|
+
dot: true
|
|
17
|
+
});
|
|
18
|
+
return pulumiCoreStackFilesPaths.map((current)=>splitStackName(path.basename(current, ".json")));
|
|
19
|
+
}
|
|
25
20
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
21
|
+
const listDeployedEnvironmentsService = createImplementation({
|
|
22
|
+
abstraction: ListDeployedEnvironmentsService,
|
|
23
|
+
implementation: DefaultListDeployedEnvironmentsService,
|
|
24
|
+
dependencies: [
|
|
25
|
+
GetProjectService
|
|
26
|
+
]
|
|
30
27
|
});
|
|
28
|
+
export { DefaultListDeployedEnvironmentsService, listDeployedEnvironmentsService };
|
|
31
29
|
|
|
32
30
|
//# sourceMappingURL=ListDeployedEnvironmentsService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"services/ListDeployedEnvironmentsService/ListDeployedEnvironmentsService.js","sources":["../../../src/services/ListDeployedEnvironmentsService/ListDeployedEnvironmentsService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { GetProjectService, ListDeployedEnvironmentsService } from \"~/abstractions/index.js\";\nimport path from \"path\";\nimport glob from \"fast-glob\";\nimport { splitStackName } from \"~/utils/index.js\";\n\nconst STACK_JSONS_GLOB = \".pulumi/**/apps/core/.pulumi/stacks/**/*.json\";\n\nexport class DefaultListDeployedEnvironmentsService\n implements ListDeployedEnvironmentsService.Interface\n{\n constructor(private getProjectService: GetProjectService.Interface) {}\n\n async execute() {\n const project = this.getProjectService.execute();\n\n // We just get stack files for deployed Core application. That's enough\n // to determine into which environments the user has deployed their project.\n const pulumiCoreStackFilesPaths = glob.sync(STACK_JSONS_GLOB, {\n cwd: project.paths.rootFolder.toString(),\n onlyFiles: true,\n dot: true\n });\n\n return pulumiCoreStackFilesPaths.map(current => {\n return splitStackName(path.basename(current, \".json\"));\n });\n }\n}\n\nexport const listDeployedEnvironmentsService = createImplementation({\n abstraction: ListDeployedEnvironmentsService,\n implementation: DefaultListDeployedEnvironmentsService,\n dependencies: [GetProjectService]\n});\n"],"names":["STACK_JSONS_GLOB","DefaultListDeployedEnvironmentsService","getProjectService","project","pulumiCoreStackFilesPaths","glob","current","splitStackName","path","listDeployedEnvironmentsService","createImplementation","ListDeployedEnvironmentsService","GetProjectService"],"mappings":";;;;;AAMA,MAAMA,mBAAmB;AAElB,MAAMC;IAGT,YAAoBC,iBAA8C,CAAE;aAAhDA,iBAAiB,GAAjBA;IAAiD;IAErE,MAAM,UAAU;QACZ,MAAMC,UAAU,IAAI,CAAC,iBAAiB,CAAC,OAAO;QAI9C,MAAMC,4BAA4BC,UAAAA,IAAS,CAACL,kBAAkB;YAC1D,KAAKG,QAAQ,KAAK,CAAC,UAAU,CAAC,QAAQ;YACtC,WAAW;YACX,KAAK;QACT;QAEA,OAAOC,0BAA0B,GAAG,CAACE,CAAAA,UAC1BC,eAAeC,KAAK,QAAQ,CAACF,SAAS;IAErD;AACJ;AAEO,MAAMG,kCAAkCC,qBAAqB;IAChE,aAAaC;IACb,gBAAgBV;IAChB,cAAc;QAACW;KAAkB;AACrC"}
|