@webiny/project 0.0.0-unstable.7be00a75a9 → 0.0.0-unstable.9f53ea597d
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/ProjectSdk.d.ts +1 -0
- package/ProjectSdk.js +4 -1
- package/ProjectSdk.js.map +1 -1
- package/abstractions/features/DestroyApp.d.ts +2 -2
- package/abstractions/features/DestroyApp.js.map +1 -1
- package/abstractions/services/GetProjectInstallationIdService.d.ts +10 -0
- package/abstractions/services/GetProjectInstallationIdService.js +5 -0
- package/abstractions/services/GetProjectInstallationIdService.js.map +1 -0
- package/abstractions/services/StackOutputCacheService.d.ts +10 -0
- package/abstractions/services/StackOutputCacheService.js +5 -0
- package/abstractions/services/StackOutputCacheService.js.map +1 -0
- package/abstractions/services/index.d.ts +2 -0
- package/abstractions/services/index.js +2 -0
- package/createProjectSdkContainer.js +3 -1
- package/createProjectSdkContainer.js.map +1 -1
- package/decorators/DestroyAppClearStackOutputCache.d.ts +25 -0
- package/decorators/DestroyAppClearStackOutputCache.js +29 -0
- package/decorators/DestroyAppClearStackOutputCache.js.map +1 -0
- package/decorators/GetFeatureFlagsWithLicense.js +1 -0
- package/decorators/GetFeatureFlagsWithLicense.js.map +1 -1
- package/decorators/index.d.ts +1 -0
- package/decorators/index.js +1 -0
- package/extensions/FeatureFlags.d.ts +7 -0
- package/extensions/FeatureFlags.js +10 -3
- package/extensions/FeatureFlags.js.map +1 -1
- package/extensions/Project/SetAdminAppEnvVarsBeforeBuild.d.ts +3 -2
- package/extensions/Project/SetAdminAppEnvVarsBeforeBuild.js +8 -2
- package/extensions/Project/SetAdminAppEnvVarsBeforeBuild.js.map +1 -1
- package/extensions/Project/SetAdminAppEnvVarsBeforeWatch.d.ts +3 -2
- package/extensions/Project/SetAdminAppEnvVarsBeforeWatch.js +8 -2
- package/extensions/Project/SetAdminAppEnvVarsBeforeWatch.js.map +1 -1
- package/extensions/Project/ValidateProductionPulumiState.d.ts +3 -2
- package/extensions/Project/ValidateProductionPulumiState.js +6 -7
- package/extensions/Project/ValidateProductionPulumiState.js.map +1 -1
- package/extensions/index.d.ts +24 -17
- package/package.json +17 -17
- package/services/GetProjectConfigService/renderConfigWorker.js +8 -2
- package/services/GetProjectConfigService/renderConfigWorker.js.map +1 -1
- package/services/GetProjectInstallationIdService/GetProjectInstallationIdService.d.ts +10 -0
- package/services/GetProjectInstallationIdService/GetProjectInstallationIdService.js +34 -0
- package/services/GetProjectInstallationIdService/GetProjectInstallationIdService.js.map +1 -0
- package/services/GetProjectInstallationIdService/index.d.ts +1 -0
- package/services/GetProjectInstallationIdService/index.js +1 -0
- package/services/InitProjectSdkService/InitProjectSdkService.js +2 -1
- package/services/InitProjectSdkService/InitProjectSdkService.js.map +1 -1
- package/services/IsRemotePulumiBackendService/IsRemotePulumiBackendService.d.ts +3 -2
- package/services/IsRemotePulumiBackendService/IsRemotePulumiBackendService.js +1 -1
- package/services/IsRemotePulumiBackendService/IsRemotePulumiBackendService.js.map +1 -1
- package/services/LoggerService/LoggerService.js +3 -3
- package/services/PulumiGetStackOutputService/PulumiGetStackOutputService.d.ts +3 -11
- package/services/PulumiGetStackOutputService/PulumiGetStackOutputService.js +7 -64
- package/services/PulumiGetStackOutputService/PulumiGetStackOutputService.js.map +1 -1
- package/services/PulumiLoginService/PulumiLoginService.js +1 -1
- package/services/PulumiLoginService/PulumiLoginService.js.map +1 -1
- package/services/StackOutputCacheService/StackOutputCacheService.d.ts +18 -0
- package/services/StackOutputCacheService/StackOutputCacheService.js +89 -0
- package/services/StackOutputCacheService/StackOutputCacheService.js.map +1 -0
- package/services/StackOutputCacheService/index.d.ts +1 -0
- package/services/StackOutputCacheService/index.js +1 -0
- package/services/index.d.ts +2 -0
- package/services/index.js +2 -0
package/ProjectSdk.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export declare class ProjectSdk {
|
|
|
12
12
|
getProjectId(): Promise<string | null>;
|
|
13
13
|
setProjectId(projectId: string, options?: SetProjectIdService.Options): Promise<void>;
|
|
14
14
|
getProjectVersion(): string;
|
|
15
|
+
getProjectInstallationId(): string | null;
|
|
15
16
|
getProjectInfo(): Promise<import("./abstractions/services/ProjectInfoService/ProjectInfoService.js").IProjectInfoServiceResult>;
|
|
16
17
|
getFeatureFlags(): Promise<import("@webiny/feature-flags/FeatureFlags.js").FeatureFlags>;
|
|
17
18
|
getApp(appName: GetApp.Params): Promise<import("./index.js").IAppModel>;
|
package/ProjectSdk.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createProjectSdkContainer } from "./createProjectSdkContainer.js";
|
|
2
|
-
import { BuildApp, DeployApp, DestroyApp, ExportStack, GetApp, GetAppOutput, GetAppStackOutput, GetFeatureFlags, GetProductionEnvironments, GetProject, GetProjectConfig, GetProjectIdService, GetProjectInfo, GetProjectVersionService, GetPulumiResourceNamePrefix, InstallExtension, IsCi, IsTelemetryEnabled, ListDeployedEnvironmentsService, LocalStorageService, LoggerService, RefreshApp, RunPulumiCommand, SetProjectIdService, ValidateProjectConfig, Watch, WcpService } from "./abstractions/index.js";
|
|
2
|
+
import { BuildApp, DeployApp, DestroyApp, ExportStack, GetApp, GetAppOutput, GetAppStackOutput, GetFeatureFlags, GetProductionEnvironments, GetProject, GetProjectConfig, GetProjectIdService, GetProjectInfo, GetProjectInstallationIdService, GetProjectVersionService, GetPulumiResourceNamePrefix, InstallExtension, IsCi, IsTelemetryEnabled, ListDeployedEnvironmentsService, LocalStorageService, LoggerService, RefreshApp, RunPulumiCommand, SetProjectIdService, ValidateProjectConfig, Watch, WcpService } from "./abstractions/index.js";
|
|
3
3
|
import { getProjectSdkContextFromEnv, isValidRegionName, isValidVariantName } from "./utils/index.js";
|
|
4
4
|
const projectSdkCache = new Map();
|
|
5
5
|
class ProjectSdk {
|
|
@@ -40,6 +40,9 @@ class ProjectSdk {
|
|
|
40
40
|
getProjectVersion() {
|
|
41
41
|
return this.container.resolve(GetProjectVersionService).execute();
|
|
42
42
|
}
|
|
43
|
+
getProjectInstallationId() {
|
|
44
|
+
return this.container.resolve(GetProjectInstallationIdService).execute();
|
|
45
|
+
}
|
|
43
46
|
getProjectInfo() {
|
|
44
47
|
return this.container.resolve(GetProjectInfo).execute();
|
|
45
48
|
}
|
package/ProjectSdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectSdk.js","sources":["../src/ProjectSdk.ts"],"sourcesContent":["import { type Container } from \"@webiny/di\";\nimport { createProjectSdkContainer } from \"./createProjectSdkContainer.js\";\nimport {\n BuildApp,\n DeployApp,\n DestroyApp,\n ExportStack,\n GetApp,\n GetAppOutput,\n GetAppStackOutput,\n GetFeatureFlags,\n GetProductionEnvironments,\n GetProject,\n GetProjectIdService,\n SetProjectIdService,\n GetProjectConfig,\n GetProjectInfo,\n GetPulumiResourceNamePrefix,\n InstallExtension,\n IsCi,\n IsTelemetryEnabled,\n LocalStorageService,\n LoggerService,\n type ProjectSdkParamsService,\n RefreshApp,\n RunPulumiCommand,\n ValidateProjectConfig,\n ListDeployedEnvironmentsService,\n Watch,\n WcpService,\n GetProjectVersionService\n} from \"~/abstractions/index.js\";\nimport { type AppName } from \"~/abstractions/types.js\";\nimport {\n isValidRegionName,\n isValidVariantName,\n getProjectSdkContextFromEnv\n} from \"./utils/index.js\";\n\nconst projectSdkCache = new Map<string, ProjectSdk>();\n\nexport class ProjectSdk {\n container: Container;\n\n protected constructor(container: Container) {\n this.container = container;\n }\n\n static async init(params: Partial<ProjectSdkParamsService.Params> = {}) {\n // If no params provided, check if we have context from parent process via env var\n const envContext = getProjectSdkContextFromEnv();\n if (envContext && Object.keys(params).length === 0) {\n params = envContext;\n }\n\n const cacheKey = ProjectSdk.getCacheKey(params);\n\n if (projectSdkCache.has(cacheKey)) {\n return projectSdkCache.get(cacheKey)!;\n }\n\n const container = await createProjectSdkContainer(params);\n const instance = new ProjectSdk(container);\n projectSdkCache.set(cacheKey, instance);\n\n return instance;\n }\n\n private static getCacheKey(params: Partial<ProjectSdkParamsService.Params>): string {\n const env = params.env || \"\";\n const variant = params.variant || \"\";\n const region = params.region || \"\";\n return `${env}:${variant}:${region}`;\n }\n\n // Project-related methods.\n getProject() {\n return this.container.resolve(GetProject).execute();\n }\n\n getProjectConfig(params?: GetProjectConfig.Params) {\n return this.container.resolve(GetProjectConfig).execute(params);\n }\n\n validateProjectConfig(projectConfig: ValidateProjectConfig.Params) {\n return this.container.resolve(ValidateProjectConfig).execute(projectConfig);\n }\n\n async getProjectId() {\n return this.container.resolve(GetProjectIdService).execute();\n }\n async setProjectId(projectId: string, options: SetProjectIdService.Options = {}) {\n return this.container.resolve(SetProjectIdService).execute(projectId, options);\n }\n getProjectVersion() {\n return this.container.resolve(GetProjectVersionService).execute();\n }\n\n getProjectInfo() {\n return this.container.resolve(GetProjectInfo).execute();\n }\n\n getFeatureFlags() {\n return this.container.resolve(GetFeatureFlags).execute();\n }\n\n // App-related methods.\n async getApp(appName: GetApp.Params) {\n return this.container.resolve(GetApp).execute(appName);\n }\n\n // Here we have two stack output methods. Both do the same thing, but one is returning\n // raw Pulumi output, while the other is returning a JSON, which is far more suitable\n // in multiple places throughout the codebase (like Pulumi code, deploy hooks, ...).\n // TODO: we could probably merge these two methods into one, and have an option to return\n // TODO: raw or JSON output. For now, just writing it here.\n async getAppOutput(params: GetAppOutput.Params) {\n return this.container.resolve(GetAppOutput).execute(params);\n }\n\n async getAppStackOutput<\n TOutput extends GetAppStackOutput.StackOutput = GetAppStackOutput.StackOutput\n >(appName: AppName) {\n return this.container.resolve(GetAppStackOutput).execute<TOutput>(appName);\n }\n\n async getAppStackExport<TExport extends ExportStack.StackExport = ExportStack.StackExport>(\n params: ExportStack.Params\n ) {\n return this.container.resolve(ExportStack).execute<TExport>(params);\n }\n\n buildApp(params: BuildApp.Params) {\n return this.container.resolve(BuildApp).execute(params);\n }\n\n deployApp(params: DeployApp.Params) {\n return this.container.resolve(DeployApp).execute(params);\n }\n\n destroyApp(params: DestroyApp.Params) {\n return this.container.resolve(DestroyApp).execute(params);\n }\n\n refreshApp(params: RefreshApp.Params) {\n return this.container.resolve(RefreshApp).execute(params);\n }\n\n runPulumiCommand(params: RunPulumiCommand.Params) {\n return this.container.resolve(RunPulumiCommand).execute(params);\n }\n\n watch(params: Watch.Params) {\n return this.container.resolve(Watch).execute(params);\n }\n\n get wcp() {\n return this.container.resolve(WcpService);\n }\n\n get localStorage() {\n return this.container.resolve(LocalStorageService);\n }\n\n getPulumiResourceNamePrefix() {\n return this.container.resolve(GetPulumiResourceNamePrefix).execute();\n }\n\n getProductionEnvironments() {\n return this.container.resolve(GetProductionEnvironments).execute();\n }\n\n listDeployedEnvironments() {\n return this.container.resolve(ListDeployedEnvironmentsService).execute();\n }\n\n installExtension(source: string) {\n return this.container.resolve(InstallExtension).execute(source);\n }\n\n // Utility methods.\n isValidRegionName(name?: string) {\n return isValidRegionName(name);\n }\n\n isValidVariantName(name?: string) {\n return isValidVariantName(name);\n }\n\n isTelemetryEnabled() {\n return this.container.resolve(IsTelemetryEnabled).execute();\n }\n\n isCi() {\n return this.container.resolve(IsCi).execute();\n }\n\n getLogger() {\n return this.container.resolve(LoggerService);\n }\n\n getContainer() {\n return this.container;\n }\n}\n"],"names":["projectSdkCache","Map","ProjectSdk","container","params","envContext","getProjectSdkContextFromEnv","Object","cacheKey","createProjectSdkContainer","instance","env","variant","region","GetProject","GetProjectConfig","projectConfig","ValidateProjectConfig","GetProjectIdService","projectId","options","SetProjectIdService","GetProjectVersionService","GetProjectInfo","GetFeatureFlags","appName","GetApp","GetAppOutput","GetAppStackOutput","ExportStack","BuildApp","DeployApp","DestroyApp","RefreshApp","RunPulumiCommand","Watch","WcpService","LocalStorageService","GetPulumiResourceNamePrefix","GetProductionEnvironments","ListDeployedEnvironmentsService","source","InstallExtension","name","isValidRegionName","isValidVariantName","IsTelemetryEnabled","IsCi","LoggerService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProjectSdk.js","sources":["../src/ProjectSdk.ts"],"sourcesContent":["import { type Container } from \"@webiny/di\";\nimport { createProjectSdkContainer } from \"./createProjectSdkContainer.js\";\nimport {\n BuildApp,\n DeployApp,\n DestroyApp,\n ExportStack,\n GetApp,\n GetAppOutput,\n GetAppStackOutput,\n GetFeatureFlags,\n GetProductionEnvironments,\n GetProject,\n GetProjectIdService,\n GetProjectInstallationIdService,\n SetProjectIdService,\n GetProjectConfig,\n GetProjectInfo,\n GetPulumiResourceNamePrefix,\n InstallExtension,\n IsCi,\n IsTelemetryEnabled,\n LocalStorageService,\n LoggerService,\n type ProjectSdkParamsService,\n RefreshApp,\n RunPulumiCommand,\n ValidateProjectConfig,\n ListDeployedEnvironmentsService,\n Watch,\n WcpService,\n GetProjectVersionService\n} from \"~/abstractions/index.js\";\nimport { type AppName } from \"~/abstractions/types.js\";\nimport {\n isValidRegionName,\n isValidVariantName,\n getProjectSdkContextFromEnv\n} from \"./utils/index.js\";\n\nconst projectSdkCache = new Map<string, ProjectSdk>();\n\nexport class ProjectSdk {\n container: Container;\n\n protected constructor(container: Container) {\n this.container = container;\n }\n\n static async init(params: Partial<ProjectSdkParamsService.Params> = {}) {\n // If no params provided, check if we have context from parent process via env var\n const envContext = getProjectSdkContextFromEnv();\n if (envContext && Object.keys(params).length === 0) {\n params = envContext;\n }\n\n const cacheKey = ProjectSdk.getCacheKey(params);\n\n if (projectSdkCache.has(cacheKey)) {\n return projectSdkCache.get(cacheKey)!;\n }\n\n const container = await createProjectSdkContainer(params);\n const instance = new ProjectSdk(container);\n projectSdkCache.set(cacheKey, instance);\n\n return instance;\n }\n\n private static getCacheKey(params: Partial<ProjectSdkParamsService.Params>): string {\n const env = params.env || \"\";\n const variant = params.variant || \"\";\n const region = params.region || \"\";\n return `${env}:${variant}:${region}`;\n }\n\n // Project-related methods.\n getProject() {\n return this.container.resolve(GetProject).execute();\n }\n\n getProjectConfig(params?: GetProjectConfig.Params) {\n return this.container.resolve(GetProjectConfig).execute(params);\n }\n\n validateProjectConfig(projectConfig: ValidateProjectConfig.Params) {\n return this.container.resolve(ValidateProjectConfig).execute(projectConfig);\n }\n\n async getProjectId() {\n return this.container.resolve(GetProjectIdService).execute();\n }\n async setProjectId(projectId: string, options: SetProjectIdService.Options = {}) {\n return this.container.resolve(SetProjectIdService).execute(projectId, options);\n }\n getProjectVersion() {\n return this.container.resolve(GetProjectVersionService).execute();\n }\n getProjectInstallationId() {\n return this.container.resolve(GetProjectInstallationIdService).execute();\n }\n\n getProjectInfo() {\n return this.container.resolve(GetProjectInfo).execute();\n }\n\n getFeatureFlags() {\n return this.container.resolve(GetFeatureFlags).execute();\n }\n\n // App-related methods.\n async getApp(appName: GetApp.Params) {\n return this.container.resolve(GetApp).execute(appName);\n }\n\n // Here we have two stack output methods. Both do the same thing, but one is returning\n // raw Pulumi output, while the other is returning a JSON, which is far more suitable\n // in multiple places throughout the codebase (like Pulumi code, deploy hooks, ...).\n // TODO: we could probably merge these two methods into one, and have an option to return\n // TODO: raw or JSON output. For now, just writing it here.\n async getAppOutput(params: GetAppOutput.Params) {\n return this.container.resolve(GetAppOutput).execute(params);\n }\n\n async getAppStackOutput<\n TOutput extends GetAppStackOutput.StackOutput = GetAppStackOutput.StackOutput\n >(appName: AppName) {\n return this.container.resolve(GetAppStackOutput).execute<TOutput>(appName);\n }\n\n async getAppStackExport<TExport extends ExportStack.StackExport = ExportStack.StackExport>(\n params: ExportStack.Params\n ) {\n return this.container.resolve(ExportStack).execute<TExport>(params);\n }\n\n buildApp(params: BuildApp.Params) {\n return this.container.resolve(BuildApp).execute(params);\n }\n\n deployApp(params: DeployApp.Params) {\n return this.container.resolve(DeployApp).execute(params);\n }\n\n destroyApp(params: DestroyApp.Params) {\n return this.container.resolve(DestroyApp).execute(params);\n }\n\n refreshApp(params: RefreshApp.Params) {\n return this.container.resolve(RefreshApp).execute(params);\n }\n\n runPulumiCommand(params: RunPulumiCommand.Params) {\n return this.container.resolve(RunPulumiCommand).execute(params);\n }\n\n watch(params: Watch.Params) {\n return this.container.resolve(Watch).execute(params);\n }\n\n get wcp() {\n return this.container.resolve(WcpService);\n }\n\n get localStorage() {\n return this.container.resolve(LocalStorageService);\n }\n\n getPulumiResourceNamePrefix() {\n return this.container.resolve(GetPulumiResourceNamePrefix).execute();\n }\n\n getProductionEnvironments() {\n return this.container.resolve(GetProductionEnvironments).execute();\n }\n\n listDeployedEnvironments() {\n return this.container.resolve(ListDeployedEnvironmentsService).execute();\n }\n\n installExtension(source: string) {\n return this.container.resolve(InstallExtension).execute(source);\n }\n\n // Utility methods.\n isValidRegionName(name?: string) {\n return isValidRegionName(name);\n }\n\n isValidVariantName(name?: string) {\n return isValidVariantName(name);\n }\n\n isTelemetryEnabled() {\n return this.container.resolve(IsTelemetryEnabled).execute();\n }\n\n isCi() {\n return this.container.resolve(IsCi).execute();\n }\n\n getLogger() {\n return this.container.resolve(LoggerService);\n }\n\n getContainer() {\n return this.container;\n }\n}\n"],"names":["projectSdkCache","Map","ProjectSdk","container","params","envContext","getProjectSdkContextFromEnv","Object","cacheKey","createProjectSdkContainer","instance","env","variant","region","GetProject","GetProjectConfig","projectConfig","ValidateProjectConfig","GetProjectIdService","projectId","options","SetProjectIdService","GetProjectVersionService","GetProjectInstallationIdService","GetProjectInfo","GetFeatureFlags","appName","GetApp","GetAppOutput","GetAppStackOutput","ExportStack","BuildApp","DeployApp","DestroyApp","RefreshApp","RunPulumiCommand","Watch","WcpService","LocalStorageService","GetPulumiResourceNamePrefix","GetProductionEnvironments","ListDeployedEnvironmentsService","source","InstallExtension","name","isValidRegionName","isValidVariantName","IsTelemetryEnabled","IsCi","LoggerService"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { type AppName } from "../../abstractions/types.js";
|
|
2
2
|
import { type ExecaChildProcess } from "execa";
|
|
3
3
|
type IPulumiProcess = ExecaChildProcess<string>;
|
|
4
|
-
interface IDestroyAppParams {
|
|
4
|
+
export interface IDestroyAppParams {
|
|
5
5
|
app: AppName;
|
|
6
6
|
}
|
|
7
|
-
interface IDestroyApp {
|
|
7
|
+
export interface IDestroyApp {
|
|
8
8
|
execute(params: IDestroyAppParams): Promise<{
|
|
9
9
|
pulumiProcess: IPulumiProcess;
|
|
10
10
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstractions/features/DestroyApp.js","sources":["../../../src/abstractions/features/DestroyApp.ts"],"sourcesContent":["import { createAbstraction } from \"~/abstractions/createAbstraction.js\";\nimport { type AppName } from \"~/abstractions/types.js\";\nimport { type ExecaChildProcess } from \"execa\";\n\ntype IPulumiProcess = ExecaChildProcess<string>;\n\
|
|
1
|
+
{"version":3,"file":"abstractions/features/DestroyApp.js","sources":["../../../src/abstractions/features/DestroyApp.ts"],"sourcesContent":["import { createAbstraction } from \"~/abstractions/createAbstraction.js\";\nimport { type AppName } from \"~/abstractions/types.js\";\nimport { type ExecaChildProcess } from \"execa\";\n\ntype IPulumiProcess = ExecaChildProcess<string>;\n\nexport interface IDestroyAppParams {\n app: AppName;\n}\n\nexport interface IDestroyApp {\n execute(params: IDestroyAppParams): Promise<{ pulumiProcess: IPulumiProcess }>;\n}\n\nexport const DestroyApp = createAbstraction<IDestroyApp>(\"DestroyApp\");\n\nexport namespace DestroyApp {\n export type Interface = IDestroyApp;\n\n export type Params = IDestroyAppParams;\n\n export type PulumiProcess = IPulumiProcess;\n}\n"],"names":["DestroyApp","createAbstraction"],"mappings":";AAcO,MAAMA,aAAaC,kBAA+B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type IGetProjectInstallationIdServiceResult = string | null;
|
|
2
|
+
interface IGetProjectInstallationIdService {
|
|
3
|
+
execute(): IGetProjectInstallationIdServiceResult;
|
|
4
|
+
}
|
|
5
|
+
export declare const GetProjectInstallationIdService: import("@webiny/di").Abstraction<IGetProjectInstallationIdService>;
|
|
6
|
+
export declare namespace GetProjectInstallationIdService {
|
|
7
|
+
type Interface = IGetProjectInstallationIdService;
|
|
8
|
+
type Result = IGetProjectInstallationIdServiceResult;
|
|
9
|
+
}
|
|
10
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstractions/services/GetProjectInstallationIdService.js","sources":["../../../src/abstractions/services/GetProjectInstallationIdService.ts"],"sourcesContent":["import { createAbstraction } from \"~/abstractions/createAbstraction.js\";\n\ntype IGetProjectInstallationIdServiceResult = string | null;\n\ninterface IGetProjectInstallationIdService {\n execute(): IGetProjectInstallationIdServiceResult;\n}\n\nexport const GetProjectInstallationIdService = createAbstraction<IGetProjectInstallationIdService>(\n \"GetProjectInstallationIdService\"\n);\n\nexport namespace GetProjectInstallationIdService {\n export type Interface = IGetProjectInstallationIdService;\n export type Result = IGetProjectInstallationIdServiceResult;\n}\n"],"names":["GetProjectInstallationIdService","createAbstraction"],"mappings":";AAQO,MAAMA,kCAAkCC,kBAC3C"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type IAppModel } from "../../abstractions/models/IAppModel.js";
|
|
2
|
+
export interface IStackOutputCacheService {
|
|
3
|
+
read(app: IAppModel): Promise<Record<string, any> | null>;
|
|
4
|
+
write(app: IAppModel, data: Record<string, any>): Promise<void>;
|
|
5
|
+
delete(app: IAppModel): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
export declare const StackOutputCacheService: import("@webiny/di").Abstraction<IStackOutputCacheService>;
|
|
8
|
+
export declare namespace StackOutputCacheService {
|
|
9
|
+
type Interface = IStackOutputCacheService;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstractions/services/StackOutputCacheService.js","sources":["../../../src/abstractions/services/StackOutputCacheService.ts"],"sourcesContent":["import { createAbstraction } from \"~/abstractions/createAbstraction.js\";\nimport { type IAppModel } from \"~/abstractions/models/IAppModel.js\";\n\nexport interface IStackOutputCacheService {\n read(app: IAppModel): Promise<Record<string, any> | null>;\n write(app: IAppModel, data: Record<string, any>): Promise<void>;\n delete(app: IAppModel): Promise<void>;\n}\n\nexport const StackOutputCacheService =\n createAbstraction<IStackOutputCacheService>(\"StackOutputCacheService\");\n\nexport namespace StackOutputCacheService {\n export type Interface = IStackOutputCacheService;\n}\n"],"names":["StackOutputCacheService","createAbstraction"],"mappings":";AASO,MAAMA,0BACTC,kBAA4C"}
|
|
@@ -6,6 +6,7 @@ export { GetAppService } from "./GetAppService.js";
|
|
|
6
6
|
export { GetCwdService } from "./GetCwdService.js";
|
|
7
7
|
export { GetProjectConfigService } from "./GetProjectConfigService.js";
|
|
8
8
|
export { GetProjectIdService } from "./GetProjectIdService.js";
|
|
9
|
+
export { GetProjectInstallationIdService } from "./GetProjectInstallationIdService.js";
|
|
9
10
|
export { GetProjectService } from "./GetProjectService.js";
|
|
10
11
|
export { GetProjectVersionService } from "./GetProjectVersionService.js";
|
|
11
12
|
export { GetPulumiService } from "./GetPulumiService.js";
|
|
@@ -28,6 +29,7 @@ export { PulumiGetStackOutputService } from "./PulumiGetStackOutputService.js";
|
|
|
28
29
|
export { PulumiLoginService } from "./PulumiLoginService.js";
|
|
29
30
|
export { PulumiSelectStackService } from "./PulumiSelectStackService.js";
|
|
30
31
|
export { SetProjectIdService } from "./SetProjectIdService.js";
|
|
32
|
+
export { StackOutputCacheService } from "./StackOutputCacheService.js";
|
|
31
33
|
export { StdioService } from "./StdioService.js";
|
|
32
34
|
export { UiService } from "./UiService.js";
|
|
33
35
|
export { ValidateProjectConfigService } from "./ValidateProjectConfigService.js";
|
|
@@ -6,6 +6,7 @@ export { GetAppService } from "./GetAppService.js";
|
|
|
6
6
|
export { GetCwdService } from "./GetCwdService.js";
|
|
7
7
|
export { GetProjectConfigService } from "./GetProjectConfigService.js";
|
|
8
8
|
export { GetProjectIdService } from "./GetProjectIdService.js";
|
|
9
|
+
export { GetProjectInstallationIdService } from "./GetProjectInstallationIdService.js";
|
|
9
10
|
export { GetProjectService } from "./GetProjectService.js";
|
|
10
11
|
export { GetProjectVersionService } from "./GetProjectVersionService.js";
|
|
11
12
|
export { GetPulumiService } from "./GetPulumiService.js";
|
|
@@ -28,6 +29,7 @@ export { PulumiGetStackOutputService } from "./PulumiGetStackOutputService.js";
|
|
|
28
29
|
export { PulumiLoginService } from "./PulumiLoginService.js";
|
|
29
30
|
export { PulumiSelectStackService } from "./PulumiSelectStackService.js";
|
|
30
31
|
export { SetProjectIdService } from "./SetProjectIdService.js";
|
|
32
|
+
export { StackOutputCacheService } from "./StackOutputCacheService.js";
|
|
31
33
|
export { StdioService } from "./StdioService.js";
|
|
32
34
|
export { UiService } from "./UiService.js";
|
|
33
35
|
export { ValidateProjectConfigService } from "./ValidateProjectConfigService.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Container } from "@webiny/di";
|
|
2
2
|
import { adminAfterBuild, adminAfterDeploy, adminBeforeBuild, adminBeforeDeploy, adminBeforeWatch, afterBuild, afterDeploy, apiAfterBuild, apiAfterDeploy, apiBeforeBuild, apiBeforeDeploy, apiBeforeWatch, beforeBuild, beforeDeploy, beforeWatch, buildApp, coreAfterBuild, coreAfterDeploy, coreBeforeBuild, coreBeforeDeploy, coreBeforeWatch, deployApp, destroyApp, exportStack, getApp, getAppOutput, getAppStackOutput, getFeatureFlags, getLogger, getProductionEnvironments, getProject, getProjectConfig, getProjectInfo, getPulumiResourceNamePrefix, installExtension, isCi, isTelemetryEnabled, isWcpEnabled, isWebinyJsRepo, refreshApp, runPulumiCommand, validateProjectConfig, watch } from "./features/index.js";
|
|
3
|
-
import { buildAppWorkspaceService, buildProjectWorkspaceService, getAppPackagesService, getAppService, getCwdService, getIsCiService, getNpmVersionService, getNpxVersionService, getProjectConfigService, getProjectIdService, getProjectService, getProjectVersionService, getPulumiService, getPulumiVersionService, getYarnVersionService, initProjectSdkService, installExtensionService, isRemotePulumiBackendService, listAppLambdaFunctionsService, listDeployedEnvironmentsService, listPackagesInAppWorkspaceService, listPackagesService, loadEnvVarsService, localStorageService, loggerService, projectInfoService, projectSdkParamsService, pulumiExportService, pulumiGetConfigPassphraseService, pulumiGetSecretsProviderService, pulumiGetStackOutputService, pulumiImportService, pulumiLoginService, pulumiSelectStackService, setProjectIdService, stdioService, uiService, validateProjectConfigService, watchedLambdaFunctionsService, wcpService } from "./services/index.js";
|
|
3
|
+
import { buildAppWorkspaceService, buildProjectWorkspaceService, getAppPackagesService, getAppService, getCwdService, getIsCiService, getNpmVersionService, getNpxVersionService, getProjectConfigService, getProjectIdService, getProjectInstallationIdService, getProjectService, getProjectVersionService, getPulumiService, getPulumiVersionService, getYarnVersionService, initProjectSdkService, installExtensionService, isRemotePulumiBackendService, listAppLambdaFunctionsService, listDeployedEnvironmentsService, listPackagesInAppWorkspaceService, listPackagesService, loadEnvVarsService, localStorageService, loggerService, projectInfoService, projectSdkParamsService, pulumiExportService, pulumiGetConfigPassphraseService, pulumiGetSecretsProviderService, pulumiGetStackOutputService, pulumiImportService, pulumiLoginService, pulumiSelectStackService, setProjectIdService, stackOutputCacheService, stdioService, uiService, validateProjectConfigService, watchedLambdaFunctionsService, wcpService } from "./services/index.js";
|
|
4
4
|
import { BuildProjectWorkspaceService, GetProjectConfig, InitProjectSdkService, LoadEnvVarsService, LoggerService, ProjectSdkParamsService, ValidateProjectConfig } from "./abstractions/index.js";
|
|
5
5
|
import { getFeatureFlagsWithLicense } from "./decorators/index.js";
|
|
6
6
|
const createProjectSdkContainer = async (params)=>{
|
|
@@ -16,6 +16,7 @@ const createProjectSdkContainer = async (params)=>{
|
|
|
16
16
|
container.register(getNpxVersionService).inSingletonScope();
|
|
17
17
|
container.register(getProjectConfigService).inSingletonScope();
|
|
18
18
|
container.register(getProjectIdService).inSingletonScope();
|
|
19
|
+
container.register(getProjectInstallationIdService).inSingletonScope();
|
|
19
20
|
container.register(getProjectService).inSingletonScope();
|
|
20
21
|
container.register(getProjectVersionService).inSingletonScope();
|
|
21
22
|
container.register(getPulumiService).inSingletonScope();
|
|
@@ -41,6 +42,7 @@ const createProjectSdkContainer = async (params)=>{
|
|
|
41
42
|
container.register(pulumiLoginService).inSingletonScope();
|
|
42
43
|
container.register(pulumiSelectStackService).inSingletonScope();
|
|
43
44
|
container.register(setProjectIdService).inSingletonScope();
|
|
45
|
+
container.register(stackOutputCacheService).inSingletonScope();
|
|
44
46
|
container.register(stdioService).inSingletonScope();
|
|
45
47
|
container.register(uiService).inSingletonScope();
|
|
46
48
|
container.register(validateProjectConfigService).inSingletonScope();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createProjectSdkContainer.js","sources":["../src/createProjectSdkContainer.ts"],"sourcesContent":["import { Container } from \"@webiny/di\";\nimport {\n beforeBuild,\n afterBuild,\n beforeWatch,\n beforeDeploy,\n afterDeploy,\n adminAfterBuild,\n adminAfterDeploy,\n adminBeforeBuild,\n adminBeforeDeploy,\n adminBeforeWatch,\n apiAfterBuild,\n apiAfterDeploy,\n apiBeforeBuild,\n apiBeforeDeploy,\n apiBeforeWatch,\n buildApp,\n coreAfterBuild,\n coreAfterDeploy,\n coreBeforeBuild,\n coreBeforeDeploy,\n coreBeforeWatch,\n deployApp,\n destroyApp,\n exportStack,\n getApp,\n getAppOutput,\n getAppStackOutput,\n getLogger,\n getProductionEnvironments,\n getProject,\n getProjectConfig,\n getProjectInfo,\n getPulumiResourceNamePrefix,\n getFeatureFlags,\n installExtension,\n isCi,\n isTelemetryEnabled,\n isWcpEnabled,\n isWebinyJsRepo,\n refreshApp,\n runPulumiCommand,\n validateProjectConfig,\n watch\n} from \"./features/index.js\";\n\nimport {\n getAppService,\n buildAppWorkspaceService,\n buildProjectWorkspaceService,\n watchedLambdaFunctionsService,\n getAppPackagesService,\n getCwdService,\n getIsCiService,\n getNpmVersionService,\n getNpxVersionService,\n getProjectConfigService,\n getProjectIdService,\n getProjectService,\n getProjectVersionService,\n getPulumiService,\n getPulumiVersionService,\n getYarnVersionService,\n initProjectSdkService,\n installExtensionService,\n isRemotePulumiBackendService,\n listAppLambdaFunctionsService,\n listDeployedEnvironmentsService,\n listPackagesInAppWorkspaceService,\n listPackagesService,\n loadEnvVarsService,\n localStorageService,\n loggerService,\n projectInfoService,\n projectSdkParamsService,\n pulumiGetConfigPassphraseService,\n pulumiGetSecretsProviderService,\n pulumiExportService,\n pulumiImportService,\n pulumiGetStackOutputService,\n pulumiLoginService,\n pulumiSelectStackService,\n setProjectIdService,\n stdioService,\n uiService,\n validateProjectConfigService,\n wcpService\n} from \"./services/index.js\";\n\nimport {\n GetProjectConfig,\n BuildProjectWorkspaceService,\n ProjectSdkParamsService,\n LoadEnvVarsService,\n ValidateProjectConfig,\n LoggerService,\n InitProjectSdkService\n} from \"~/abstractions/index.js\";\nimport { getFeatureFlagsWithLicense } from \"./decorators/index.js\";\n\nexport const createProjectSdkContainer = async (\n params: Partial<ProjectSdkParamsService.Params>\n) => {\n const container = new Container();\n\n // Services.\n container.register(getAppService).inSingletonScope();\n container.register(buildAppWorkspaceService).inSingletonScope();\n container.register(buildProjectWorkspaceService).inSingletonScope();\n container.register(watchedLambdaFunctionsService).inSingletonScope();\n container.register(getAppPackagesService).inSingletonScope();\n container.register(getCwdService).inSingletonScope();\n container.register(getIsCiService).inSingletonScope();\n container.register(getNpmVersionService).inSingletonScope();\n container.register(getNpxVersionService).inSingletonScope();\n container.register(getProjectConfigService).inSingletonScope();\n container.register(getProjectIdService).inSingletonScope();\n container.register(getProjectService).inSingletonScope();\n container.register(getProjectVersionService).inSingletonScope();\n container.register(getPulumiService).inSingletonScope();\n container.register(getPulumiVersionService).inSingletonScope();\n container.register(getYarnVersionService).inSingletonScope();\n container.register(initProjectSdkService).inSingletonScope();\n container.register(installExtensionService).inSingletonScope();\n container.register(isRemotePulumiBackendService).inSingletonScope();\n container.register(listAppLambdaFunctionsService).inSingletonScope();\n container.register(listDeployedEnvironmentsService).inSingletonScope();\n container.register(listPackagesInAppWorkspaceService).inSingletonScope();\n container.register(listPackagesService).inSingletonScope();\n container.register(loadEnvVarsService).inSingletonScope();\n container.register(localStorageService).inSingletonScope();\n container.register(loggerService).inSingletonScope();\n container.register(projectInfoService).inSingletonScope();\n container.register(projectSdkParamsService).inSingletonScope();\n container.register(pulumiGetConfigPassphraseService).inSingletonScope();\n container.register(pulumiGetSecretsProviderService).inSingletonScope();\n container.register(pulumiExportService).inSingletonScope();\n container.register(pulumiImportService).inSingletonScope();\n container.register(pulumiGetStackOutputService).inSingletonScope();\n container.register(pulumiLoginService).inSingletonScope();\n container.register(pulumiSelectStackService).inSingletonScope();\n container.register(setProjectIdService).inSingletonScope();\n container.register(stdioService).inSingletonScope();\n container.register(uiService).inSingletonScope();\n container.register(validateProjectConfigService).inSingletonScope();\n container.register(wcpService).inSingletonScope();\n\n // Features.\n container.register(buildApp).inSingletonScope();\n container.register(deployApp).inSingletonScope();\n container.register(destroyApp).inSingletonScope();\n container.register(exportStack).inSingletonScope();\n container.register(getApp).inSingletonScope();\n container.register(getAppOutput).inSingletonScope();\n container.register(getAppStackOutput).inSingletonScope();\n container.register(getLogger).inSingletonScope();\n container.register(getProductionEnvironments).inSingletonScope();\n container.register(getProject).inSingletonScope();\n container.register(getProjectConfig).inSingletonScope();\n container.register(getProjectInfo).inSingletonScope();\n container.register(getPulumiResourceNamePrefix).inSingletonScope();\n container.register(installExtension).inSingletonScope();\n container.register(isCi).inSingletonScope();\n container.register(isTelemetryEnabled).inSingletonScope();\n container.register(isWcpEnabled).inSingletonScope();\n container.register(isWebinyJsRepo).inSingletonScope();\n container.register(refreshApp).inSingletonScope();\n container.register(runPulumiCommand).inSingletonScope();\n container.register(getFeatureFlags).inSingletonScope();\n container.register(validateProjectConfig).inSingletonScope();\n container.register(watch).inSingletonScope();\n container.registerDecorator(getFeatureFlagsWithLicense);\n\n // Hooks.\n container.registerComposite(beforeBuild);\n container.registerComposite(afterBuild);\n container.registerComposite(beforeWatch);\n container.registerComposite(beforeDeploy);\n container.registerComposite(afterDeploy);\n container.registerComposite(apiBeforeBuild);\n container.registerComposite(apiBeforeDeploy);\n container.registerComposite(apiBeforeWatch);\n container.registerComposite(apiAfterBuild);\n container.registerComposite(apiAfterDeploy);\n container.registerComposite(adminBeforeBuild);\n container.registerComposite(adminBeforeDeploy);\n container.registerComposite(adminBeforeWatch);\n container.registerComposite(adminAfterBuild);\n container.registerComposite(adminAfterDeploy);\n container.registerComposite(coreBeforeBuild);\n container.registerComposite(coreBeforeDeploy);\n container.registerComposite(coreBeforeWatch);\n container.registerComposite(coreAfterBuild);\n container.registerComposite(coreAfterDeploy);\n\n // Initialize project SDK.\n container.resolve(ProjectSdkParamsService).set(params);\n await container.resolve(LoadEnvVarsService).execute();\n await container.resolve(BuildProjectWorkspaceService).execute();\n\n const logger = container.resolve(LoggerService);\n logger.log(\"Initializing Project SDK container...\");\n\n const projectExtensions = await container.resolve(GetProjectConfig).execute({\n tags: { runtimeContext: \"project\" }\n });\n\n await container.resolve(ValidateProjectConfig).execute(projectExtensions);\n\n // Initialize project SDK extensions (env vars, hooks, pulumi, implementations, decorators).\n await container.resolve(InitProjectSdkService).execute(container);\n\n return container;\n};\n"],"names":["createProjectSdkContainer","params","container","Container","getAppService","buildAppWorkspaceService","buildProjectWorkspaceService","watchedLambdaFunctionsService","getAppPackagesService","getCwdService","getIsCiService","getNpmVersionService","getNpxVersionService","getProjectConfigService","getProjectIdService","getProjectService","getProjectVersionService","getPulumiService","getPulumiVersionService","getYarnVersionService","initProjectSdkService","installExtensionService","isRemotePulumiBackendService","listAppLambdaFunctionsService","listDeployedEnvironmentsService","listPackagesInAppWorkspaceService","listPackagesService","loadEnvVarsService","localStorageService","loggerService","projectInfoService","projectSdkParamsService","pulumiGetConfigPassphraseService","pulumiGetSecretsProviderService","pulumiExportService","pulumiImportService","pulumiGetStackOutputService","pulumiLoginService","pulumiSelectStackService","setProjectIdService","stdioService","uiService","validateProjectConfigService","wcpService","buildApp","deployApp","destroyApp","exportStack","getApp","getAppOutput","getAppStackOutput","getLogger","getProductionEnvironments","getProject","getProjectConfig","getProjectInfo","getPulumiResourceNamePrefix","installExtension","isCi","isTelemetryEnabled","isWcpEnabled","isWebinyJsRepo","refreshApp","runPulumiCommand","getFeatureFlags","validateProjectConfig","watch","getFeatureFlagsWithLicense","beforeBuild","afterBuild","beforeWatch","beforeDeploy","afterDeploy","apiBeforeBuild","apiBeforeDeploy","apiBeforeWatch","apiAfterBuild","apiAfterDeploy","adminBeforeBuild","adminBeforeDeploy","adminBeforeWatch","adminAfterBuild","adminAfterDeploy","coreBeforeBuild","coreBeforeDeploy","coreBeforeWatch","coreAfterBuild","coreAfterDeploy","ProjectSdkParamsService","LoadEnvVarsService","BuildProjectWorkspaceService","logger","LoggerService","projectExtensions","GetProjectConfig","ValidateProjectConfig","InitProjectSdkService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"createProjectSdkContainer.js","sources":["../src/createProjectSdkContainer.ts"],"sourcesContent":["import { Container } from \"@webiny/di\";\nimport {\n beforeBuild,\n afterBuild,\n beforeWatch,\n beforeDeploy,\n afterDeploy,\n adminAfterBuild,\n adminAfterDeploy,\n adminBeforeBuild,\n adminBeforeDeploy,\n adminBeforeWatch,\n apiAfterBuild,\n apiAfterDeploy,\n apiBeforeBuild,\n apiBeforeDeploy,\n apiBeforeWatch,\n buildApp,\n coreAfterBuild,\n coreAfterDeploy,\n coreBeforeBuild,\n coreBeforeDeploy,\n coreBeforeWatch,\n deployApp,\n destroyApp,\n exportStack,\n getApp,\n getAppOutput,\n getAppStackOutput,\n getLogger,\n getProductionEnvironments,\n getProject,\n getProjectConfig,\n getProjectInfo,\n getPulumiResourceNamePrefix,\n getFeatureFlags,\n installExtension,\n isCi,\n isTelemetryEnabled,\n isWcpEnabled,\n isWebinyJsRepo,\n refreshApp,\n runPulumiCommand,\n validateProjectConfig,\n watch\n} from \"./features/index.js\";\n\nimport {\n getAppService,\n buildAppWorkspaceService,\n buildProjectWorkspaceService,\n watchedLambdaFunctionsService,\n getAppPackagesService,\n getCwdService,\n getIsCiService,\n getNpmVersionService,\n getNpxVersionService,\n getProjectConfigService,\n getProjectIdService,\n getProjectInstallationIdService,\n getProjectService,\n getProjectVersionService,\n getPulumiService,\n getPulumiVersionService,\n getYarnVersionService,\n initProjectSdkService,\n installExtensionService,\n isRemotePulumiBackendService,\n listAppLambdaFunctionsService,\n listDeployedEnvironmentsService,\n listPackagesInAppWorkspaceService,\n listPackagesService,\n loadEnvVarsService,\n localStorageService,\n loggerService,\n projectInfoService,\n projectSdkParamsService,\n pulumiGetConfigPassphraseService,\n pulumiGetSecretsProviderService,\n pulumiExportService,\n pulumiImportService,\n pulumiGetStackOutputService,\n pulumiLoginService,\n pulumiSelectStackService,\n setProjectIdService,\n stackOutputCacheService,\n stdioService,\n uiService,\n validateProjectConfigService,\n wcpService\n} from \"./services/index.js\";\n\nimport {\n GetProjectConfig,\n BuildProjectWorkspaceService,\n ProjectSdkParamsService,\n LoadEnvVarsService,\n ValidateProjectConfig,\n LoggerService,\n InitProjectSdkService\n} from \"~/abstractions/index.js\";\nimport { getFeatureFlagsWithLicense } from \"./decorators/index.js\";\n\nexport const createProjectSdkContainer = async (\n params: Partial<ProjectSdkParamsService.Params>\n) => {\n const container = new Container();\n\n // Services.\n container.register(getAppService).inSingletonScope();\n container.register(buildAppWorkspaceService).inSingletonScope();\n container.register(buildProjectWorkspaceService).inSingletonScope();\n container.register(watchedLambdaFunctionsService).inSingletonScope();\n container.register(getAppPackagesService).inSingletonScope();\n container.register(getCwdService).inSingletonScope();\n container.register(getIsCiService).inSingletonScope();\n container.register(getNpmVersionService).inSingletonScope();\n container.register(getNpxVersionService).inSingletonScope();\n container.register(getProjectConfigService).inSingletonScope();\n container.register(getProjectIdService).inSingletonScope();\n container.register(getProjectInstallationIdService).inSingletonScope();\n container.register(getProjectService).inSingletonScope();\n container.register(getProjectVersionService).inSingletonScope();\n container.register(getPulumiService).inSingletonScope();\n container.register(getPulumiVersionService).inSingletonScope();\n container.register(getYarnVersionService).inSingletonScope();\n container.register(initProjectSdkService).inSingletonScope();\n container.register(installExtensionService).inSingletonScope();\n container.register(isRemotePulumiBackendService).inSingletonScope();\n container.register(listAppLambdaFunctionsService).inSingletonScope();\n container.register(listDeployedEnvironmentsService).inSingletonScope();\n container.register(listPackagesInAppWorkspaceService).inSingletonScope();\n container.register(listPackagesService).inSingletonScope();\n container.register(loadEnvVarsService).inSingletonScope();\n container.register(localStorageService).inSingletonScope();\n container.register(loggerService).inSingletonScope();\n container.register(projectInfoService).inSingletonScope();\n container.register(projectSdkParamsService).inSingletonScope();\n container.register(pulumiGetConfigPassphraseService).inSingletonScope();\n container.register(pulumiGetSecretsProviderService).inSingletonScope();\n container.register(pulumiExportService).inSingletonScope();\n container.register(pulumiImportService).inSingletonScope();\n container.register(pulumiGetStackOutputService).inSingletonScope();\n container.register(pulumiLoginService).inSingletonScope();\n container.register(pulumiSelectStackService).inSingletonScope();\n container.register(setProjectIdService).inSingletonScope();\n container.register(stackOutputCacheService).inSingletonScope();\n container.register(stdioService).inSingletonScope();\n container.register(uiService).inSingletonScope();\n container.register(validateProjectConfigService).inSingletonScope();\n container.register(wcpService).inSingletonScope();\n\n // Features.\n container.register(buildApp).inSingletonScope();\n container.register(deployApp).inSingletonScope();\n container.register(destroyApp).inSingletonScope();\n container.register(exportStack).inSingletonScope();\n container.register(getApp).inSingletonScope();\n container.register(getAppOutput).inSingletonScope();\n container.register(getAppStackOutput).inSingletonScope();\n container.register(getLogger).inSingletonScope();\n container.register(getProductionEnvironments).inSingletonScope();\n container.register(getProject).inSingletonScope();\n container.register(getProjectConfig).inSingletonScope();\n container.register(getProjectInfo).inSingletonScope();\n container.register(getPulumiResourceNamePrefix).inSingletonScope();\n container.register(installExtension).inSingletonScope();\n container.register(isCi).inSingletonScope();\n container.register(isTelemetryEnabled).inSingletonScope();\n container.register(isWcpEnabled).inSingletonScope();\n container.register(isWebinyJsRepo).inSingletonScope();\n container.register(refreshApp).inSingletonScope();\n container.register(runPulumiCommand).inSingletonScope();\n container.register(getFeatureFlags).inSingletonScope();\n container.register(validateProjectConfig).inSingletonScope();\n container.register(watch).inSingletonScope();\n container.registerDecorator(getFeatureFlagsWithLicense);\n\n // Hooks.\n container.registerComposite(beforeBuild);\n container.registerComposite(afterBuild);\n container.registerComposite(beforeWatch);\n container.registerComposite(beforeDeploy);\n container.registerComposite(afterDeploy);\n container.registerComposite(apiBeforeBuild);\n container.registerComposite(apiBeforeDeploy);\n container.registerComposite(apiBeforeWatch);\n container.registerComposite(apiAfterBuild);\n container.registerComposite(apiAfterDeploy);\n container.registerComposite(adminBeforeBuild);\n container.registerComposite(adminBeforeDeploy);\n container.registerComposite(adminBeforeWatch);\n container.registerComposite(adminAfterBuild);\n container.registerComposite(adminAfterDeploy);\n container.registerComposite(coreBeforeBuild);\n container.registerComposite(coreBeforeDeploy);\n container.registerComposite(coreBeforeWatch);\n container.registerComposite(coreAfterBuild);\n container.registerComposite(coreAfterDeploy);\n\n // Initialize project SDK.\n container.resolve(ProjectSdkParamsService).set(params);\n await container.resolve(LoadEnvVarsService).execute();\n await container.resolve(BuildProjectWorkspaceService).execute();\n\n const logger = container.resolve(LoggerService);\n logger.log(\"Initializing Project SDK container...\");\n\n const projectExtensions = await container.resolve(GetProjectConfig).execute({\n tags: { runtimeContext: \"project\" }\n });\n\n await container.resolve(ValidateProjectConfig).execute(projectExtensions);\n\n // Initialize project SDK extensions (env vars, hooks, pulumi, implementations, decorators).\n await container.resolve(InitProjectSdkService).execute(container);\n\n return container;\n};\n"],"names":["createProjectSdkContainer","params","container","Container","getAppService","buildAppWorkspaceService","buildProjectWorkspaceService","watchedLambdaFunctionsService","getAppPackagesService","getCwdService","getIsCiService","getNpmVersionService","getNpxVersionService","getProjectConfigService","getProjectIdService","getProjectInstallationIdService","getProjectService","getProjectVersionService","getPulumiService","getPulumiVersionService","getYarnVersionService","initProjectSdkService","installExtensionService","isRemotePulumiBackendService","listAppLambdaFunctionsService","listDeployedEnvironmentsService","listPackagesInAppWorkspaceService","listPackagesService","loadEnvVarsService","localStorageService","loggerService","projectInfoService","projectSdkParamsService","pulumiGetConfigPassphraseService","pulumiGetSecretsProviderService","pulumiExportService","pulumiImportService","pulumiGetStackOutputService","pulumiLoginService","pulumiSelectStackService","setProjectIdService","stackOutputCacheService","stdioService","uiService","validateProjectConfigService","wcpService","buildApp","deployApp","destroyApp","exportStack","getApp","getAppOutput","getAppStackOutput","getLogger","getProductionEnvironments","getProject","getProjectConfig","getProjectInfo","getPulumiResourceNamePrefix","installExtension","isCi","isTelemetryEnabled","isWcpEnabled","isWebinyJsRepo","refreshApp","runPulumiCommand","getFeatureFlags","validateProjectConfig","watch","getFeatureFlagsWithLicense","beforeBuild","afterBuild","beforeWatch","beforeDeploy","afterDeploy","apiBeforeBuild","apiBeforeDeploy","apiBeforeWatch","apiAfterBuild","apiAfterDeploy","adminBeforeBuild","adminBeforeDeploy","adminBeforeWatch","adminAfterBuild","adminAfterDeploy","coreBeforeBuild","coreBeforeDeploy","coreBeforeWatch","coreAfterBuild","coreAfterDeploy","ProjectSdkParamsService","LoadEnvVarsService","BuildProjectWorkspaceService","logger","LoggerService","projectExtensions","GetProjectConfig","ValidateProjectConfig","InitProjectSdkService"],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DestroyApp, GetApp, LoggerService, StackOutputCacheService } from "../abstractions/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Decorator that clears the stack output cache when an app is destroyed.
|
|
4
|
+
*
|
|
5
|
+
* Without this, the cache file written during deploy would remain on disk after a
|
|
6
|
+
* destroy, and a subsequent deploy (or any stack output read) would use it and behave
|
|
7
|
+
* as if the stack were still deployed.
|
|
8
|
+
*
|
|
9
|
+
* The cache is cleared before the destroy runs. Since the cache is only a performance
|
|
10
|
+
* optimization, this is safe even if the destroy fails and the stack remains: the next
|
|
11
|
+
* read simply fetches fresh output from Pulumi again.
|
|
12
|
+
*/
|
|
13
|
+
export declare class DestroyAppClearStackOutputCache implements DestroyApp.Interface {
|
|
14
|
+
private getApp;
|
|
15
|
+
private logger;
|
|
16
|
+
private stackOutputCacheService;
|
|
17
|
+
private decoratee;
|
|
18
|
+
constructor(getApp: GetApp.Interface, logger: LoggerService.Interface, stackOutputCacheService: StackOutputCacheService.Interface, decoratee: DestroyApp.Interface);
|
|
19
|
+
execute(params: DestroyApp.Params): Promise<{
|
|
20
|
+
pulumiProcess: import("child_process").ChildProcess & import("execa").ExecaChildPromise<string> & Promise<import("execa").ExecaReturnValue<string>>;
|
|
21
|
+
}>;
|
|
22
|
+
}
|
|
23
|
+
export declare const destroyAppClearStackOutputCache: typeof DestroyAppClearStackOutputCache & {
|
|
24
|
+
__abstraction: import("@webiny/di").Abstraction<import("../abstractions/features/DestroyApp").IDestroyApp>;
|
|
25
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { DestroyApp, GetApp, LoggerService, StackOutputCacheService } from "../abstractions/index.js";
|
|
2
|
+
class DestroyAppClearStackOutputCache {
|
|
3
|
+
constructor(getApp, logger, stackOutputCacheService, decoratee){
|
|
4
|
+
this.getApp = getApp;
|
|
5
|
+
this.logger = logger;
|
|
6
|
+
this.stackOutputCacheService = stackOutputCacheService;
|
|
7
|
+
this.decoratee = decoratee;
|
|
8
|
+
}
|
|
9
|
+
async execute(params) {
|
|
10
|
+
try {
|
|
11
|
+
const app = this.getApp.execute(params.app);
|
|
12
|
+
await this.stackOutputCacheService.delete(app);
|
|
13
|
+
} catch (error) {
|
|
14
|
+
this.logger.error("Failed to clear stack output cache before destroy.", error);
|
|
15
|
+
}
|
|
16
|
+
return this.decoratee.execute(params);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const destroyAppClearStackOutputCache = DestroyApp.createDecorator({
|
|
20
|
+
decorator: DestroyAppClearStackOutputCache,
|
|
21
|
+
dependencies: [
|
|
22
|
+
GetApp,
|
|
23
|
+
LoggerService,
|
|
24
|
+
StackOutputCacheService
|
|
25
|
+
]
|
|
26
|
+
});
|
|
27
|
+
export { DestroyAppClearStackOutputCache, destroyAppClearStackOutputCache };
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=DestroyAppClearStackOutputCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators/DestroyAppClearStackOutputCache.js","sources":["../../src/decorators/DestroyAppClearStackOutputCache.ts"],"sourcesContent":["import {\n DestroyApp,\n GetApp,\n LoggerService,\n StackOutputCacheService\n} from \"~/abstractions/index.js\";\n\n/**\n * Decorator that clears the stack output cache when an app is destroyed.\n *\n * Without this, the cache file written during deploy would remain on disk after a\n * destroy, and a subsequent deploy (or any stack output read) would use it and behave\n * as if the stack were still deployed.\n *\n * The cache is cleared before the destroy runs. Since the cache is only a performance\n * optimization, this is safe even if the destroy fails and the stack remains: the next\n * read simply fetches fresh output from Pulumi again.\n */\nexport class DestroyAppClearStackOutputCache implements DestroyApp.Interface {\n constructor(\n private getApp: GetApp.Interface,\n private logger: LoggerService.Interface,\n private stackOutputCacheService: StackOutputCacheService.Interface,\n private decoratee: DestroyApp.Interface\n ) {}\n\n async execute(params: DestroyApp.Params) {\n try {\n const app = this.getApp.execute(params.app);\n await this.stackOutputCacheService.delete(app);\n } catch (error) {\n // Cache clearing failure shouldn't prevent the destroy from running.\n this.logger.error(\"Failed to clear stack output cache before destroy.\", error);\n }\n\n return this.decoratee.execute(params);\n }\n}\n\nexport const destroyAppClearStackOutputCache = DestroyApp.createDecorator({\n decorator: DestroyAppClearStackOutputCache,\n dependencies: [GetApp, LoggerService, StackOutputCacheService]\n});\n"],"names":["DestroyAppClearStackOutputCache","getApp","logger","stackOutputCacheService","decoratee","params","app","error","destroyAppClearStackOutputCache","DestroyApp","GetApp","LoggerService","StackOutputCacheService"],"mappings":";AAkBO,MAAMA;IACT,YACYC,MAAwB,EACxBC,MAA+B,EAC/BC,uBAA0D,EAC1DC,SAA+B,CACzC;aAJUH,MAAM,GAANA;aACAC,MAAM,GAANA;aACAC,uBAAuB,GAAvBA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,QAAQC,MAAyB,EAAE;QACrC,IAAI;YACA,MAAMC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAACD,OAAO,GAAG;YAC1C,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAACC;QAC9C,EAAE,OAAOC,OAAO;YAEZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsDA;QAC5E;QAEA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACF;IAClC;AACJ;AAEO,MAAMG,kCAAkCC,WAAW,eAAe,CAAC;IACtE,WAAWT;IACX,cAAc;QAACU;QAAQC;QAAeC;KAAwB;AAClE"}
|
|
@@ -36,6 +36,7 @@ class GetFeatureFlagsWithLicenseDecorator {
|
|
|
36
36
|
} else featureFlagsDto.advancedAccessControlLayer = false;
|
|
37
37
|
featureFlagsDto.auditLogs = applyLicenseFlag(featureFlagsDto.auditLogs, license.canUseAuditLogs());
|
|
38
38
|
featureFlagsDto.recordLocking = applyLicenseFlag(featureFlagsDto.recordLocking, license.canUseRecordLocking());
|
|
39
|
+
featureFlagsDto.abTesting = applyLicenseFlag(featureFlagsDto.abTesting, license.canUseAbTesting());
|
|
39
40
|
if (!featureFlagsDto.fileManager) featureFlagsDto.fileManager = {};
|
|
40
41
|
featureFlagsDto.fileManager.threatDetection = applyLicenseFlag(featureFlagsDto.fileManager.threatDetection, license.canUseFileManagerThreatDetection());
|
|
41
42
|
return featureFlagsDto;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators/GetFeatureFlagsWithLicense.js","sources":["../../src/decorators/GetFeatureFlagsWithLicense.ts"],"sourcesContent":["import { License } from \"@webiny/wcp\";\nimport type { ILicense, DecryptedWcpProjectLicense } from \"@webiny/wcp/types.js\";\nimport { FeatureFlags } from \"@webiny/feature-flags\";\nimport type { IFeatureFlagsDto, IAaclFeatureFlags } from \"@webiny/feature-flags\";\nimport { GetFeatureFlags } from \"~/abstractions/index.js\";\n\n/* Returns the user's value when the license permits it, otherwise false.\n * This preserves an explicit user false (opt-out), while blocking features\n * the license doesn't cover. */\nfunction applyLicenseFlag<T extends boolean | undefined>(\n userValue: T,\n licenseAllows: boolean\n): T | false {\n return licenseAllows ? userValue : false;\n}\n\nclass GetFeatureFlagsWithLicenseDecorator implements GetFeatureFlags.Interface {\n constructor(private decoratee: GetFeatureFlags.Interface) {}\n\n async execute(): Promise<FeatureFlags> {\n const userFlags = await this.decoratee.execute();\n const license = this.getLicenseFromEnv();\n // toDto() returns a structuredClone, so we can safely mutate it in applyLicense.\n return FeatureFlags.fromDto(this.applyLicense(userFlags.toDto(), license));\n }\n\n private getLicenseFromEnv(): ILicense {\n const licenseEnv = process.env.WCP_PROJECT_LICENSE;\n if (!licenseEnv) {\n return License.fromLicenseDto(null);\n }\n\n try {\n const licenseDto = JSON.parse(licenseEnv) as DecryptedWcpProjectLicense;\n return License.fromLicenseDto(licenseDto);\n } catch {\n return License.fromLicenseDto(null);\n }\n }\n\n /* For each licensable flag: final = user_value && license_allows.\n * If the user disables a feature they have access to, we respect false.\n * If the user enables a feature the license doesn't allow, we force false.\n * fileManager (base) is always allowed; only threatDetection is restricted. */\n private applyLicense(featureFlagsDto: IFeatureFlagsDto, license: ILicense): IFeatureFlagsDto {\n featureFlagsDto.multiTenancy = applyLicenseFlag(\n featureFlagsDto.multiTenancy,\n license.canUseFeature(\"multiTenancy\")\n );\n\n featureFlagsDto.advancedPublishingWorkflow = applyLicenseFlag(\n featureFlagsDto.advancedPublishingWorkflow,\n license.canUseWorkflows()\n );\n\n // advancedAccessControlLayer.\n if (featureFlagsDto.advancedAccessControlLayer !== false) {\n if (!license.canUseAacl()) {\n // License doesn't allow AACL at all.\n featureFlagsDto.advancedAccessControlLayer = false;\n } else if (typeof featureFlagsDto.advancedAccessControlLayer === \"object\") {\n // License allows AACL; constrain sub-options.\n const aacl = featureFlagsDto.advancedAccessControlLayer as IAaclFeatureFlags;\n aacl.teams = applyLicenseFlag(aacl.teams, license.canUseTeams());\n aacl.privateFiles = applyLicenseFlag(\n aacl.privateFiles,\n license.canUsePrivateFiles()\n );\n aacl.folderLevelPermissions = applyLicenseFlag(\n aacl.folderLevelPermissions,\n license.canUseFolderLevelPermissions()\n );\n }\n }\n\n featureFlagsDto.auditLogs = applyLicenseFlag(\n featureFlagsDto.auditLogs,\n license.canUseAuditLogs()\n );\n featureFlagsDto.recordLocking = applyLicenseFlag(\n featureFlagsDto.recordLocking,\n license.canUseRecordLocking()\n );\n\n // fileManager is always enabled; only restrict threatDetection via license.\n if (!featureFlagsDto.fileManager) {\n featureFlagsDto.fileManager = {};\n }\n featureFlagsDto.fileManager.threatDetection = applyLicenseFlag(\n featureFlagsDto.fileManager.threatDetection,\n license.canUseFileManagerThreatDetection()\n );\n\n return featureFlagsDto;\n }\n}\n\nexport const getFeatureFlagsWithLicense = GetFeatureFlags.createDecorator({\n decorator: GetFeatureFlagsWithLicenseDecorator,\n dependencies: []\n});\n"],"names":["applyLicenseFlag","userValue","licenseAllows","GetFeatureFlagsWithLicenseDecorator","decoratee","userFlags","license","FeatureFlags","licenseEnv","process","License","licenseDto","JSON","featureFlagsDto","aacl","getFeatureFlagsWithLicense","GetFeatureFlags"],"mappings":";;;AASA,SAASA,iBACLC,SAAY,EACZC,aAAsB;IAEtB,OAAOA,gBAAgBD,YAAY;AACvC;AAEA,MAAME;IACF,YAAoBC,SAAoC,CAAE;aAAtCA,SAAS,GAATA;IAAuC;IAE3D,MAAM,UAAiC;QACnC,MAAMC,YAAY,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO;QAC9C,MAAMC,UAAU,IAAI,CAAC,iBAAiB;QAEtC,OAAOC,aAAa,OAAO,CAAC,IAAI,CAAC,YAAY,CAACF,UAAU,KAAK,IAAIC;IACrE;IAEQ,oBAA8B;QAClC,MAAME,aAAaC,QAAQ,GAAG,CAAC,mBAAmB;QAClD,IAAI,CAACD,YACD,OAAOE,QAAQ,cAAc,CAAC;QAGlC,IAAI;YACA,MAAMC,aAAaC,KAAK,KAAK,CAACJ;YAC9B,OAAOE,QAAQ,cAAc,CAACC;QAClC,EAAE,OAAM;YACJ,OAAOD,QAAQ,cAAc,CAAC;QAClC;IACJ;IAMQ,aAAaG,eAAiC,EAAEP,OAAiB,EAAoB;QACzFO,gBAAgB,YAAY,GAAGb,iBAC3Ba,gBAAgB,YAAY,EAC5BP,QAAQ,aAAa,CAAC;QAG1BO,gBAAgB,0BAA0B,GAAGb,iBACzCa,gBAAgB,0BAA0B,EAC1CP,QAAQ,eAAe;QAI3B,IAAIO,AAA+C,UAA/CA,gBAAgB,0BAA0B,EAC1C,IAAKP,QAAQ,UAAU,IAGhB;YAAA,IAAI,AAAsD,YAAtD,OAAOO,gBAAgB,0BAA0B,EAAe;gBAEvE,MAAMC,OAAOD,gBAAgB,0BAA0B;gBACvDC,KAAK,KAAK,GAAGd,iBAAiBc,KAAK,KAAK,EAAER,QAAQ,WAAW;gBAC7DQ,KAAK,YAAY,GAAGd,iBAChBc,KAAK,YAAY,EACjBR,QAAQ,kBAAkB;gBAE9BQ,KAAK,sBAAsB,GAAGd,iBAC1Bc,KAAK,sBAAsB,EAC3BR,QAAQ,4BAA4B;YAE5C;QAAA,OAbIO,gBAAgB,0BAA0B,GAAG;QAgBrDA,gBAAgB,SAAS,GAAGb,iBACxBa,gBAAgB,SAAS,EACzBP,QAAQ,eAAe;QAE3BO,gBAAgB,aAAa,GAAGb,iBAC5Ba,gBAAgB,aAAa,EAC7BP,QAAQ,mBAAmB;
|
|
1
|
+
{"version":3,"file":"decorators/GetFeatureFlagsWithLicense.js","sources":["../../src/decorators/GetFeatureFlagsWithLicense.ts"],"sourcesContent":["import { License } from \"@webiny/wcp\";\nimport type { ILicense, DecryptedWcpProjectLicense } from \"@webiny/wcp/types.js\";\nimport { FeatureFlags } from \"@webiny/feature-flags\";\nimport type { IFeatureFlagsDto, IAaclFeatureFlags } from \"@webiny/feature-flags\";\nimport { GetFeatureFlags } from \"~/abstractions/index.js\";\n\n/* Returns the user's value when the license permits it, otherwise false.\n * This preserves an explicit user false (opt-out), while blocking features\n * the license doesn't cover. */\nfunction applyLicenseFlag<T extends boolean | undefined>(\n userValue: T,\n licenseAllows: boolean\n): T | false {\n return licenseAllows ? userValue : false;\n}\n\nclass GetFeatureFlagsWithLicenseDecorator implements GetFeatureFlags.Interface {\n constructor(private decoratee: GetFeatureFlags.Interface) {}\n\n async execute(): Promise<FeatureFlags> {\n const userFlags = await this.decoratee.execute();\n const license = this.getLicenseFromEnv();\n // toDto() returns a structuredClone, so we can safely mutate it in applyLicense.\n return FeatureFlags.fromDto(this.applyLicense(userFlags.toDto(), license));\n }\n\n private getLicenseFromEnv(): ILicense {\n const licenseEnv = process.env.WCP_PROJECT_LICENSE;\n if (!licenseEnv) {\n return License.fromLicenseDto(null);\n }\n\n try {\n const licenseDto = JSON.parse(licenseEnv) as DecryptedWcpProjectLicense;\n return License.fromLicenseDto(licenseDto);\n } catch {\n return License.fromLicenseDto(null);\n }\n }\n\n /* For each licensable flag: final = user_value && license_allows.\n * If the user disables a feature they have access to, we respect false.\n * If the user enables a feature the license doesn't allow, we force false.\n * fileManager (base) is always allowed; only threatDetection is restricted. */\n private applyLicense(featureFlagsDto: IFeatureFlagsDto, license: ILicense): IFeatureFlagsDto {\n featureFlagsDto.multiTenancy = applyLicenseFlag(\n featureFlagsDto.multiTenancy,\n license.canUseFeature(\"multiTenancy\")\n );\n\n featureFlagsDto.advancedPublishingWorkflow = applyLicenseFlag(\n featureFlagsDto.advancedPublishingWorkflow,\n license.canUseWorkflows()\n );\n\n // advancedAccessControlLayer.\n if (featureFlagsDto.advancedAccessControlLayer !== false) {\n if (!license.canUseAacl()) {\n // License doesn't allow AACL at all.\n featureFlagsDto.advancedAccessControlLayer = false;\n } else if (typeof featureFlagsDto.advancedAccessControlLayer === \"object\") {\n // License allows AACL; constrain sub-options.\n const aacl = featureFlagsDto.advancedAccessControlLayer as IAaclFeatureFlags;\n aacl.teams = applyLicenseFlag(aacl.teams, license.canUseTeams());\n aacl.privateFiles = applyLicenseFlag(\n aacl.privateFiles,\n license.canUsePrivateFiles()\n );\n aacl.folderLevelPermissions = applyLicenseFlag(\n aacl.folderLevelPermissions,\n license.canUseFolderLevelPermissions()\n );\n }\n }\n\n featureFlagsDto.auditLogs = applyLicenseFlag(\n featureFlagsDto.auditLogs,\n license.canUseAuditLogs()\n );\n featureFlagsDto.recordLocking = applyLicenseFlag(\n featureFlagsDto.recordLocking,\n license.canUseRecordLocking()\n );\n featureFlagsDto.abTesting = applyLicenseFlag(\n featureFlagsDto.abTesting,\n license.canUseAbTesting()\n );\n\n // fileManager is always enabled; only restrict threatDetection via license.\n if (!featureFlagsDto.fileManager) {\n featureFlagsDto.fileManager = {};\n }\n featureFlagsDto.fileManager.threatDetection = applyLicenseFlag(\n featureFlagsDto.fileManager.threatDetection,\n license.canUseFileManagerThreatDetection()\n );\n\n return featureFlagsDto;\n }\n}\n\nexport const getFeatureFlagsWithLicense = GetFeatureFlags.createDecorator({\n decorator: GetFeatureFlagsWithLicenseDecorator,\n dependencies: []\n});\n"],"names":["applyLicenseFlag","userValue","licenseAllows","GetFeatureFlagsWithLicenseDecorator","decoratee","userFlags","license","FeatureFlags","licenseEnv","process","License","licenseDto","JSON","featureFlagsDto","aacl","getFeatureFlagsWithLicense","GetFeatureFlags"],"mappings":";;;AASA,SAASA,iBACLC,SAAY,EACZC,aAAsB;IAEtB,OAAOA,gBAAgBD,YAAY;AACvC;AAEA,MAAME;IACF,YAAoBC,SAAoC,CAAE;aAAtCA,SAAS,GAATA;IAAuC;IAE3D,MAAM,UAAiC;QACnC,MAAMC,YAAY,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO;QAC9C,MAAMC,UAAU,IAAI,CAAC,iBAAiB;QAEtC,OAAOC,aAAa,OAAO,CAAC,IAAI,CAAC,YAAY,CAACF,UAAU,KAAK,IAAIC;IACrE;IAEQ,oBAA8B;QAClC,MAAME,aAAaC,QAAQ,GAAG,CAAC,mBAAmB;QAClD,IAAI,CAACD,YACD,OAAOE,QAAQ,cAAc,CAAC;QAGlC,IAAI;YACA,MAAMC,aAAaC,KAAK,KAAK,CAACJ;YAC9B,OAAOE,QAAQ,cAAc,CAACC;QAClC,EAAE,OAAM;YACJ,OAAOD,QAAQ,cAAc,CAAC;QAClC;IACJ;IAMQ,aAAaG,eAAiC,EAAEP,OAAiB,EAAoB;QACzFO,gBAAgB,YAAY,GAAGb,iBAC3Ba,gBAAgB,YAAY,EAC5BP,QAAQ,aAAa,CAAC;QAG1BO,gBAAgB,0BAA0B,GAAGb,iBACzCa,gBAAgB,0BAA0B,EAC1CP,QAAQ,eAAe;QAI3B,IAAIO,AAA+C,UAA/CA,gBAAgB,0BAA0B,EAC1C,IAAKP,QAAQ,UAAU,IAGhB;YAAA,IAAI,AAAsD,YAAtD,OAAOO,gBAAgB,0BAA0B,EAAe;gBAEvE,MAAMC,OAAOD,gBAAgB,0BAA0B;gBACvDC,KAAK,KAAK,GAAGd,iBAAiBc,KAAK,KAAK,EAAER,QAAQ,WAAW;gBAC7DQ,KAAK,YAAY,GAAGd,iBAChBc,KAAK,YAAY,EACjBR,QAAQ,kBAAkB;gBAE9BQ,KAAK,sBAAsB,GAAGd,iBAC1Bc,KAAK,sBAAsB,EAC3BR,QAAQ,4BAA4B;YAE5C;QAAA,OAbIO,gBAAgB,0BAA0B,GAAG;QAgBrDA,gBAAgB,SAAS,GAAGb,iBACxBa,gBAAgB,SAAS,EACzBP,QAAQ,eAAe;QAE3BO,gBAAgB,aAAa,GAAGb,iBAC5Ba,gBAAgB,aAAa,EAC7BP,QAAQ,mBAAmB;QAE/BO,gBAAgB,SAAS,GAAGb,iBACxBa,gBAAgB,SAAS,EACzBP,QAAQ,eAAe;QAI3B,IAAI,CAACO,gBAAgB,WAAW,EAC5BA,gBAAgB,WAAW,GAAG,CAAC;QAEnCA,gBAAgB,WAAW,CAAC,eAAe,GAAGb,iBAC1Ca,gBAAgB,WAAW,CAAC,eAAe,EAC3CP,QAAQ,gCAAgC;QAG5C,OAAOO;IACX;AACJ;AAEO,MAAME,6BAA6BC,gBAAgB,eAAe,CAAC;IACtE,WAAWb;IACX,cAAc,EAAE;AACpB"}
|
package/decorators/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export * from "./DeployAppClearWatchedLambdaFunctions.js";
|
|
|
3
3
|
export * from "./DeployAppRefreshStackOutputCache.js";
|
|
4
4
|
export * from "./DeployAppWithHooks.js";
|
|
5
5
|
export * from "./DeployAppWithWatchedLambdaReplacement.js";
|
|
6
|
+
export * from "./DestroyAppClearStackOutputCache.js";
|
|
6
7
|
export * from "./WatchWithHooks.js";
|
|
7
8
|
export * from "./GetPulumiServiceWithDownloadInfo.js";
|
|
8
9
|
export * from "./GetFeatureFlagsWithLicense.js";
|
package/decorators/index.js
CHANGED
|
@@ -3,6 +3,7 @@ export * from "./DeployAppClearWatchedLambdaFunctions.js";
|
|
|
3
3
|
export * from "./DeployAppRefreshStackOutputCache.js";
|
|
4
4
|
export * from "./DeployAppWithHooks.js";
|
|
5
5
|
export * from "./DeployAppWithWatchedLambdaReplacement.js";
|
|
6
|
+
export * from "./DestroyAppClearStackOutputCache.js";
|
|
6
7
|
export * from "./WatchWithHooks.js";
|
|
7
8
|
export * from "./GetPulumiServiceWithDownloadInfo.js";
|
|
8
9
|
export * from "./GetFeatureFlagsWithLicense.js";
|
|
@@ -19,12 +19,19 @@ export declare const FeatureFlags: import("~/defineExtension/index.js").Extensio
|
|
|
19
19
|
options: z.ZodOptional<z.ZodObject<{
|
|
20
20
|
websiteBuilder: z.ZodOptional<z.ZodObject<{
|
|
21
21
|
pageGeneration: z.ZodOptional<z.ZodBoolean>;
|
|
22
|
+
pageTranslation: z.ZodOptional<z.ZodBoolean>;
|
|
22
23
|
}, z.core.$strip>>;
|
|
23
24
|
fileManager: z.ZodOptional<z.ZodObject<{
|
|
24
25
|
imageEnrichment: z.ZodOptional<z.ZodBoolean>;
|
|
25
26
|
}, z.core.$strip>>;
|
|
26
27
|
lexicalGeneration: z.ZodOptional<z.ZodBoolean>;
|
|
28
|
+
cms: z.ZodOptional<z.ZodObject<{
|
|
29
|
+
entryGeneration: z.ZodOptional<z.ZodBoolean>;
|
|
30
|
+
entryComparison: z.ZodOptional<z.ZodBoolean>;
|
|
31
|
+
entryTranslation: z.ZodOptional<z.ZodBoolean>;
|
|
32
|
+
}, z.core.$strip>>;
|
|
27
33
|
}, z.core.$strip>>;
|
|
28
34
|
}, z.core.$strip>>;
|
|
35
|
+
abTesting: z.ZodOptional<z.ZodBoolean>;
|
|
29
36
|
}, z.core.$strip>;
|
|
30
37
|
}, z.core.$strip>>;
|
|
@@ -31,14 +31,21 @@ const FeatureFlags = defineExtension({
|
|
|
31
31
|
enabled: z.boolean().optional(),
|
|
32
32
|
options: z.object({
|
|
33
33
|
websiteBuilder: z.object({
|
|
34
|
-
pageGeneration: z.boolean().optional()
|
|
34
|
+
pageGeneration: z.boolean().optional(),
|
|
35
|
+
pageTranslation: z.boolean().optional()
|
|
35
36
|
}).optional(),
|
|
36
37
|
fileManager: z.object({
|
|
37
38
|
imageEnrichment: z.boolean().optional()
|
|
38
39
|
}).optional(),
|
|
39
|
-
lexicalGeneration: z.boolean().optional()
|
|
40
|
+
lexicalGeneration: z.boolean().optional(),
|
|
41
|
+
cms: z.object({
|
|
42
|
+
entryGeneration: z.boolean().optional(),
|
|
43
|
+
entryComparison: z.boolean().optional(),
|
|
44
|
+
entryTranslation: z.boolean().optional()
|
|
45
|
+
}).optional()
|
|
40
46
|
}).optional()
|
|
41
|
-
}).optional()
|
|
47
|
+
}).optional(),
|
|
48
|
+
abTesting: z.boolean().optional()
|
|
42
49
|
})
|
|
43
50
|
}),
|
|
44
51
|
render: ({ features = {} })=>/*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(BuildParam, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensions/FeatureFlags.js","sources":["../../src/extensions/FeatureFlags.tsx"],"sourcesContent":["import React from \"react\";\nimport { z } from \"zod\";\nimport { BuildParam } from \"./ApiBuildParam.js\";\nimport { AdminBuildParam } from \"./AdminBuildParam.js\";\nimport { defineExtension } from \"~/defineExtension/index.js\";\n\nexport const FeatureFlags = defineExtension({\n type: \"FeatureFlags\",\n tags: { runtimeContext: \"project\" },\n description: \"Enable or disable WCP features.\",\n paramsSchema: z.object({\n // Follows `IFeatureFlagsDto` from `packages/feature-flags/src/types.ts`.\n features: z.object({\n multiTenancy: z.boolean().optional(),\n advancedPublishingWorkflow: z.boolean().optional(),\n advancedAccessControlLayer: z\n .union([\n z.boolean(),\n z.object({\n teams: z.boolean().optional(),\n privateFiles: z.boolean().optional(),\n folderLevelPermissions: z.boolean().optional(),\n hcmsFieldPermissions: z.boolean().optional()\n })\n ])\n .optional(),\n auditLogs: z.boolean().optional(),\n recordLocking: z.boolean().optional(),\n fileManager: z\n .object({\n threatDetection: z.boolean().optional()\n })\n .optional(),\n aiPowerups: z\n .object({\n enabled: z.boolean().optional(),\n options: z\n .object({\n websiteBuilder: z\n .object({\n pageGeneration: z.boolean().optional()\n })\n .optional(),\n fileManager: z\n .object({\n imageEnrichment: z.boolean().optional()\n })\n .optional(),\n lexicalGeneration: z.boolean().optional()\n })\n .optional()\n })\n .optional()\n })\n }),\n render: ({ features = {} }) => {\n return (\n <>\n <BuildParam paramName=\"FeatureFlags\" value={features} />\n <AdminBuildParam paramName=\"FeatureFlags\" value={features} />\n </>\n );\n }\n});\n"],"names":["FeatureFlags","defineExtension","z","features","BuildParam","AdminBuildParam"],"mappings":";;;;;AAMO,MAAMA,eAAeC,gBAAgB;IACxC,MAAM;IACN,MAAM;QAAE,gBAAgB;IAAU;IAClC,aAAa;IACb,cAAcC,EAAE,MAAM,CAAC;QAEnB,UAAUA,EAAE,MAAM,CAAC;YACf,cAAcA,EAAE,OAAO,GAAG,QAAQ;YAClC,4BAA4BA,EAAE,OAAO,GAAG,QAAQ;YAChD,4BAA4BA,EAAAA,KAClB,CAAC;gBACHA,EAAE,OAAO;gBACTA,EAAE,MAAM,CAAC;oBACL,OAAOA,EAAE,OAAO,GAAG,QAAQ;oBAC3B,cAAcA,EAAE,OAAO,GAAG,QAAQ;oBAClC,wBAAwBA,EAAE,OAAO,GAAG,QAAQ;oBAC5C,sBAAsBA,EAAE,OAAO,GAAG,QAAQ;gBAC9C;aACH,EACA,QAAQ;YACb,WAAWA,EAAE,OAAO,GAAG,QAAQ;YAC/B,eAAeA,EAAE,OAAO,GAAG,QAAQ;YACnC,aAAaA,EAAAA,MACF,CAAC;gBACJ,iBAAiBA,EAAE,OAAO,GAAG,QAAQ;YACzC,GACC,QAAQ;YACb,YAAYA,EAAAA,MACD,CAAC;gBACJ,SAASA,EAAE,OAAO,GAAG,QAAQ;gBAC7B,SAASA,EAAAA,MACE,CAAC;oBACJ,gBAAgBA,EAAAA,MACL,CAAC;wBACJ,gBAAgBA,EAAE,OAAO,GAAG,QAAQ;
|
|
1
|
+
{"version":3,"file":"extensions/FeatureFlags.js","sources":["../../src/extensions/FeatureFlags.tsx"],"sourcesContent":["import React from \"react\";\nimport { z } from \"zod\";\nimport { BuildParam } from \"./ApiBuildParam.js\";\nimport { AdminBuildParam } from \"./AdminBuildParam.js\";\nimport { defineExtension } from \"~/defineExtension/index.js\";\n\nexport const FeatureFlags = defineExtension({\n type: \"FeatureFlags\",\n tags: { runtimeContext: \"project\" },\n description: \"Enable or disable WCP features.\",\n paramsSchema: z.object({\n // Follows `IFeatureFlagsDto` from `packages/feature-flags/src/types.ts`.\n features: z.object({\n multiTenancy: z.boolean().optional(),\n advancedPublishingWorkflow: z.boolean().optional(),\n advancedAccessControlLayer: z\n .union([\n z.boolean(),\n z.object({\n teams: z.boolean().optional(),\n privateFiles: z.boolean().optional(),\n folderLevelPermissions: z.boolean().optional(),\n hcmsFieldPermissions: z.boolean().optional()\n })\n ])\n .optional(),\n auditLogs: z.boolean().optional(),\n recordLocking: z.boolean().optional(),\n fileManager: z\n .object({\n threatDetection: z.boolean().optional()\n })\n .optional(),\n aiPowerups: z\n .object({\n enabled: z.boolean().optional(),\n options: z\n .object({\n websiteBuilder: z\n .object({\n pageGeneration: z.boolean().optional(),\n pageTranslation: z.boolean().optional()\n })\n .optional(),\n fileManager: z\n .object({\n imageEnrichment: z.boolean().optional()\n })\n .optional(),\n lexicalGeneration: z.boolean().optional(),\n cms: z\n .object({\n entryGeneration: z.boolean().optional(),\n entryComparison: z.boolean().optional(),\n entryTranslation: z.boolean().optional()\n })\n .optional()\n })\n .optional()\n })\n .optional(),\n abTesting: z.boolean().optional()\n })\n }),\n render: ({ features = {} }) => {\n return (\n <>\n <BuildParam paramName=\"FeatureFlags\" value={features} />\n <AdminBuildParam paramName=\"FeatureFlags\" value={features} />\n </>\n );\n }\n});\n"],"names":["FeatureFlags","defineExtension","z","features","BuildParam","AdminBuildParam"],"mappings":";;;;;AAMO,MAAMA,eAAeC,gBAAgB;IACxC,MAAM;IACN,MAAM;QAAE,gBAAgB;IAAU;IAClC,aAAa;IACb,cAAcC,EAAE,MAAM,CAAC;QAEnB,UAAUA,EAAE,MAAM,CAAC;YACf,cAAcA,EAAE,OAAO,GAAG,QAAQ;YAClC,4BAA4BA,EAAE,OAAO,GAAG,QAAQ;YAChD,4BAA4BA,EAAAA,KAClB,CAAC;gBACHA,EAAE,OAAO;gBACTA,EAAE,MAAM,CAAC;oBACL,OAAOA,EAAE,OAAO,GAAG,QAAQ;oBAC3B,cAAcA,EAAE,OAAO,GAAG,QAAQ;oBAClC,wBAAwBA,EAAE,OAAO,GAAG,QAAQ;oBAC5C,sBAAsBA,EAAE,OAAO,GAAG,QAAQ;gBAC9C;aACH,EACA,QAAQ;YACb,WAAWA,EAAE,OAAO,GAAG,QAAQ;YAC/B,eAAeA,EAAE,OAAO,GAAG,QAAQ;YACnC,aAAaA,EAAAA,MACF,CAAC;gBACJ,iBAAiBA,EAAE,OAAO,GAAG,QAAQ;YACzC,GACC,QAAQ;YACb,YAAYA,EAAAA,MACD,CAAC;gBACJ,SAASA,EAAE,OAAO,GAAG,QAAQ;gBAC7B,SAASA,EAAAA,MACE,CAAC;oBACJ,gBAAgBA,EAAAA,MACL,CAAC;wBACJ,gBAAgBA,EAAE,OAAO,GAAG,QAAQ;wBACpC,iBAAiBA,EAAE,OAAO,GAAG,QAAQ;oBACzC,GACC,QAAQ;oBACb,aAAaA,EAAAA,MACF,CAAC;wBACJ,iBAAiBA,EAAE,OAAO,GAAG,QAAQ;oBACzC,GACC,QAAQ;oBACb,mBAAmBA,EAAE,OAAO,GAAG,QAAQ;oBACvC,KAAKA,EAAAA,MACM,CAAC;wBACJ,iBAAiBA,EAAE,OAAO,GAAG,QAAQ;wBACrC,iBAAiBA,EAAE,OAAO,GAAG,QAAQ;wBACrC,kBAAkBA,EAAE,OAAO,GAAG,QAAQ;oBAC1C,GACC,QAAQ;gBACjB,GACC,QAAQ;YACjB,GACC,QAAQ;YACb,WAAWA,EAAE,OAAO,GAAG,QAAQ;QACnC;IACJ;IACA,QAAQ,CAAC,EAAEC,WAAW,CAAC,CAAC,EAAE,GACf,WAAP,GACI,wDACI,oBAACC,YAAUA;YAAC,WAAU;YAAe,OAAOD;0BAC5C,oBAACE,iBAAeA;YAAC,WAAU;YAAe,OAAOF;;AAIjE"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { AdminBeforeBuild, GetProjectIdService, GetProjectVersionService, IsTelemetryEnabled } from "../../abstractions/index.js";
|
|
1
|
+
import { AdminBeforeBuild, GetProjectIdService, GetProjectInstallationIdService, GetProjectVersionService, IsTelemetryEnabled } from "../../abstractions/index.js";
|
|
2
2
|
declare class SetAdminAppEnvVarsBeforeBuildImpl implements AdminBeforeBuild.Interface {
|
|
3
3
|
private isTelemetryEnabled;
|
|
4
4
|
private getProjectIdService;
|
|
5
|
+
private getProjectInstallationIdService;
|
|
5
6
|
private getProjectVersionService;
|
|
6
|
-
constructor(isTelemetryEnabled: IsTelemetryEnabled.Interface, getProjectIdService: GetProjectIdService.Interface, getProjectVersionService: GetProjectVersionService.Interface);
|
|
7
|
+
constructor(isTelemetryEnabled: IsTelemetryEnabled.Interface, getProjectIdService: GetProjectIdService.Interface, getProjectInstallationIdService: GetProjectInstallationIdService.Interface, getProjectVersionService: GetProjectVersionService.Interface);
|
|
7
8
|
execute(): Promise<void>;
|
|
8
9
|
}
|
|
9
10
|
export declare const SetAdminAppEnvVarsBeforeBuild: typeof SetAdminAppEnvVarsBeforeBuildImpl & {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { AdminBeforeBuild, GetProjectIdService, GetProjectVersionService, IsTelemetryEnabled } from "../../abstractions/index.js";
|
|
1
|
+
import { AdminBeforeBuild, GetProjectIdService, GetProjectInstallationIdService, GetProjectVersionService, IsTelemetryEnabled } from "../../abstractions/index.js";
|
|
2
2
|
import { globalConfig } from "@webiny/global-config";
|
|
3
3
|
import { isCI } from "ci-info";
|
|
4
4
|
class SetAdminAppEnvVarsBeforeBuildImpl {
|
|
5
|
-
constructor(isTelemetryEnabled, getProjectIdService, getProjectVersionService){
|
|
5
|
+
constructor(isTelemetryEnabled, getProjectIdService, getProjectInstallationIdService, getProjectVersionService){
|
|
6
6
|
this.isTelemetryEnabled = isTelemetryEnabled;
|
|
7
7
|
this.getProjectIdService = getProjectIdService;
|
|
8
|
+
this.getProjectInstallationIdService = getProjectInstallationIdService;
|
|
8
9
|
this.getProjectVersionService = getProjectVersionService;
|
|
9
10
|
}
|
|
10
11
|
async execute() {
|
|
@@ -15,6 +16,10 @@ class SetAdminAppEnvVarsBeforeBuildImpl {
|
|
|
15
16
|
process.env.REACT_APP_WEBINY_PROJECT_ID = projectId;
|
|
16
17
|
process.env.REACT_APP_WCP_PROJECT_ID = projectId;
|
|
17
18
|
}
|
|
19
|
+
if (!("REACT_APP_WEBINY_INSTALLATION_ID" in process.env)) {
|
|
20
|
+
const installationId = this.getProjectInstallationIdService.execute();
|
|
21
|
+
if (installationId) process.env.REACT_APP_WEBINY_INSTALLATION_ID = installationId;
|
|
22
|
+
}
|
|
18
23
|
if (!("REACT_APP_WEBINY_TELEMETRY" in process.env)) process.env.REACT_APP_WEBINY_TELEMETRY = String(telemetry);
|
|
19
24
|
if (!("REACT_APP_WEBINY_TELEMETRY_USER_ID" in process.env)) process.env.REACT_APP_WEBINY_TELEMETRY_USER_ID = globalConfig.get("id");
|
|
20
25
|
if (!("REACT_APP_WEBINY_TELEMETRY_NEW_USER" in process.env)) {
|
|
@@ -31,6 +36,7 @@ const SetAdminAppEnvVarsBeforeBuild = AdminBeforeBuild.createImplementation({
|
|
|
31
36
|
dependencies: [
|
|
32
37
|
IsTelemetryEnabled,
|
|
33
38
|
GetProjectIdService,
|
|
39
|
+
GetProjectInstallationIdService,
|
|
34
40
|
GetProjectVersionService
|
|
35
41
|
]
|
|
36
42
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensions/Project/SetAdminAppEnvVarsBeforeBuild.js","sources":["../../../src/extensions/Project/SetAdminAppEnvVarsBeforeBuild.ts"],"sourcesContent":["import {\n AdminBeforeBuild,\n GetProjectIdService,\n GetProjectVersionService,\n IsTelemetryEnabled\n} from \"~/abstractions/index.js\";\nimport { globalConfig } from \"@webiny/global-config\";\nimport { isCI } from \"ci-info\";\n\nclass SetAdminAppEnvVarsBeforeBuildImpl implements AdminBeforeBuild.Interface {\n constructor(\n private isTelemetryEnabled: IsTelemetryEnabled.Interface,\n private getProjectIdService: GetProjectIdService.Interface,\n private getProjectVersionService: GetProjectVersionService.Interface\n ) {}\n\n async execute() {\n const projectId = await this.getProjectIdService.execute();\n const projectVersion = this.getProjectVersionService.execute();\n\n const telemetry = await this.isTelemetryEnabled.execute();\n\n if (projectId) {\n process.env.REACT_APP_WEBINY_PROJECT_ID = projectId;\n process.env.REACT_APP_WCP_PROJECT_ID = projectId;\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY = String(telemetry);\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_USER_ID\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY_USER_ID = globalConfig.get(\"id\");\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_NEW_USER\" in process.env)) {\n const newUser = Boolean(globalConfig.get(\"newUser\")).toString();\n process.env.REACT_APP_WEBINY_TELEMETRY_NEW_USER = newUser;\n }\n\n if (!(\"INLINE_RUNTIME_CHUNK\" in process.env)) {\n process.env.INLINE_RUNTIME_CHUNK = \"true\";\n }\n\n if (!(\"REACT_APP_IS_CI\" in process.env)) {\n process.env.REACT_APP_IS_CI = Boolean(isCI).toString();\n }\n\n if (!(\"REACT_APP_WEBINY_VERSION\" in process.env)) {\n process.env.REACT_APP_WEBINY_VERSION = projectVersion;\n }\n }\n}\n\nexport const SetAdminAppEnvVarsBeforeBuild = AdminBeforeBuild.createImplementation({\n implementation: SetAdminAppEnvVarsBeforeBuildImpl,\n dependencies: [IsTelemetryEnabled
|
|
1
|
+
{"version":3,"file":"extensions/Project/SetAdminAppEnvVarsBeforeBuild.js","sources":["../../../src/extensions/Project/SetAdminAppEnvVarsBeforeBuild.ts"],"sourcesContent":["import {\n AdminBeforeBuild,\n GetProjectIdService,\n GetProjectInstallationIdService,\n GetProjectVersionService,\n IsTelemetryEnabled\n} from \"~/abstractions/index.js\";\nimport { globalConfig } from \"@webiny/global-config\";\nimport { isCI } from \"ci-info\";\n\nclass SetAdminAppEnvVarsBeforeBuildImpl implements AdminBeforeBuild.Interface {\n constructor(\n private isTelemetryEnabled: IsTelemetryEnabled.Interface,\n private getProjectIdService: GetProjectIdService.Interface,\n private getProjectInstallationIdService: GetProjectInstallationIdService.Interface,\n private getProjectVersionService: GetProjectVersionService.Interface\n ) {}\n\n async execute() {\n const projectId = await this.getProjectIdService.execute();\n const projectVersion = this.getProjectVersionService.execute();\n\n const telemetry = await this.isTelemetryEnabled.execute();\n\n if (projectId) {\n process.env.REACT_APP_WEBINY_PROJECT_ID = projectId;\n process.env.REACT_APP_WCP_PROJECT_ID = projectId;\n }\n\n if (!(\"REACT_APP_WEBINY_INSTALLATION_ID\" in process.env)) {\n const installationId = this.getProjectInstallationIdService.execute();\n if (installationId) {\n process.env.REACT_APP_WEBINY_INSTALLATION_ID = installationId;\n }\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY = String(telemetry);\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_USER_ID\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY_USER_ID = globalConfig.get(\"id\");\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_NEW_USER\" in process.env)) {\n const newUser = Boolean(globalConfig.get(\"newUser\")).toString();\n process.env.REACT_APP_WEBINY_TELEMETRY_NEW_USER = newUser;\n }\n\n if (!(\"INLINE_RUNTIME_CHUNK\" in process.env)) {\n process.env.INLINE_RUNTIME_CHUNK = \"true\";\n }\n\n if (!(\"REACT_APP_IS_CI\" in process.env)) {\n process.env.REACT_APP_IS_CI = Boolean(isCI).toString();\n }\n\n if (!(\"REACT_APP_WEBINY_VERSION\" in process.env)) {\n process.env.REACT_APP_WEBINY_VERSION = projectVersion;\n }\n }\n}\n\nexport const SetAdminAppEnvVarsBeforeBuild = AdminBeforeBuild.createImplementation({\n implementation: SetAdminAppEnvVarsBeforeBuildImpl,\n dependencies: [\n IsTelemetryEnabled,\n GetProjectIdService,\n GetProjectInstallationIdService,\n GetProjectVersionService\n ]\n});\n"],"names":["SetAdminAppEnvVarsBeforeBuildImpl","isTelemetryEnabled","getProjectIdService","getProjectInstallationIdService","getProjectVersionService","projectId","projectVersion","telemetry","process","installationId","String","globalConfig","newUser","Boolean","isCI","SetAdminAppEnvVarsBeforeBuild","AdminBeforeBuild","IsTelemetryEnabled","GetProjectIdService","GetProjectInstallationIdService","GetProjectVersionService"],"mappings":";;;AAUA,MAAMA;IACF,YACYC,kBAAgD,EAChDC,mBAAkD,EAClDC,+BAA0E,EAC1EC,wBAA4D,CACtE;aAJUH,kBAAkB,GAAlBA;aACAC,mBAAmB,GAAnBA;aACAC,+BAA+B,GAA/BA;aACAC,wBAAwB,GAAxBA;IACT;IAEH,MAAM,UAAU;QACZ,MAAMC,YAAY,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO;QACxD,MAAMC,iBAAiB,IAAI,CAAC,wBAAwB,CAAC,OAAO;QAE5D,MAAMC,YAAY,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO;QAEvD,IAAIF,WAAW;YACXG,QAAQ,GAAG,CAAC,2BAA2B,GAAGH;YAC1CG,QAAQ,GAAG,CAAC,wBAAwB,GAAGH;QAC3C;QAEA,IAAI,CAAE,uCAAsCG,QAAQ,GAAE,GAAI;YACtD,MAAMC,iBAAiB,IAAI,CAAC,+BAA+B,CAAC,OAAO;YACnE,IAAIA,gBACAD,QAAQ,GAAG,CAAC,gCAAgC,GAAGC;QAEvD;QAEA,IAAI,CAAE,iCAAgCD,QAAQ,GAAE,GAC5CA,QAAQ,GAAG,CAAC,0BAA0B,GAAGE,OAAOH;QAGpD,IAAI,CAAE,yCAAwCC,QAAQ,GAAE,GACpDA,QAAQ,GAAG,CAAC,kCAAkC,GAAGG,aAAa,GAAG,CAAC;QAGtE,IAAI,CAAE,0CAAyCH,QAAQ,GAAE,GAAI;YACzD,MAAMI,UAAUC,QAAQF,aAAa,GAAG,CAAC,YAAY,QAAQ;YAC7DH,QAAQ,GAAG,CAAC,mCAAmC,GAAGI;QACtD;QAEA,IAAI,CAAE,2BAA0BJ,QAAQ,GAAE,GACtCA,QAAQ,GAAG,CAAC,oBAAoB,GAAG;QAGvC,IAAI,CAAE,sBAAqBA,QAAQ,GAAE,GACjCA,QAAQ,GAAG,CAAC,eAAe,GAAGK,QAAQC,MAAM,QAAQ;QAGxD,IAAI,CAAE,+BAA8BN,QAAQ,GAAE,GAC1CA,QAAQ,GAAG,CAAC,wBAAwB,GAAGF;IAE/C;AACJ;AAEO,MAAMS,gCAAgCC,iBAAiB,oBAAoB,CAAC;IAC/E,gBAAgBhB;IAChB,cAAc;QACViB;QACAC;QACAC;QACAC;KACH;AACL"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { AdminBeforeWatch, IsTelemetryEnabled, GetProjectIdService, GetProjectVersionService } from "../../abstractions/index.js";
|
|
1
|
+
import { AdminBeforeWatch, IsTelemetryEnabled, GetProjectIdService, GetProjectInstallationIdService, GetProjectVersionService } from "../../abstractions/index.js";
|
|
2
2
|
declare class SetAdminAppEnvVarsBeforeWatchImpl implements AdminBeforeWatch.Interface {
|
|
3
3
|
private isTelemetryEnabled;
|
|
4
4
|
private getProjectIdService;
|
|
5
|
+
private getProjectInstallationIdService;
|
|
5
6
|
private getProjectVersionService;
|
|
6
|
-
constructor(isTelemetryEnabled: IsTelemetryEnabled.Interface, getProjectIdService: GetProjectIdService.Interface, getProjectVersionService: GetProjectVersionService.Interface);
|
|
7
|
+
constructor(isTelemetryEnabled: IsTelemetryEnabled.Interface, getProjectIdService: GetProjectIdService.Interface, getProjectInstallationIdService: GetProjectInstallationIdService.Interface, getProjectVersionService: GetProjectVersionService.Interface);
|
|
7
8
|
execute(): Promise<void>;
|
|
8
9
|
}
|
|
9
10
|
export declare const SetAdminAppEnvVarsBeforeWatch: typeof SetAdminAppEnvVarsBeforeWatchImpl & {
|