@webiny/project 6.0.0-rc.2 → 6.0.0-rc.3
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/GetFeatureFlags.d.ts +8 -0
- package/abstractions/features/GetFeatureFlags.js +4 -0
- package/abstractions/features/GetFeatureFlags.js.map +1 -0
- package/abstractions/features/index.d.ts +1 -0
- package/abstractions/features/index.js +1 -0
- package/abstractions/features/index.js.map +1 -1
- package/components/Wcp.d.ts +2 -0
- package/components/Wcp.js +8 -1
- package/components/Wcp.js.map +1 -1
- package/createProjectSdkContainer.js +4 -1
- package/createProjectSdkContainer.js.map +1 -1
- package/decorators/GetFeatureFlagsWithLicense.d.ts +13 -0
- package/decorators/GetFeatureFlagsWithLicense.js +71 -0
- package/decorators/GetFeatureFlagsWithLicense.js.map +1 -0
- package/decorators/index.d.ts +1 -0
- package/decorators/index.js +1 -0
- package/decorators/index.js.map +1 -1
- package/extensions/FeatureFlags.d.ts +13 -6
- package/extensions/FeatureFlags.js +5 -4
- package/extensions/FeatureFlags.js.map +1 -1
- package/extensions/index.d.ts +13 -6
- package/features/GetFeatureFlags/GetFeatureFlags.d.ts +10 -0
- package/features/GetFeatureFlags/GetFeatureFlags.js +29 -0
- package/features/GetFeatureFlags/GetFeatureFlags.js.map +1 -0
- package/features/GetFeatureFlags/index.d.ts +1 -0
- package/features/GetFeatureFlags/index.js +3 -0
- package/features/GetFeatureFlags/index.js.map +1 -0
- package/features/index.d.ts +1 -0
- package/features/index.js +1 -0
- package/features/index.js.map +1 -1
- package/package.json +12 -11
- package/services/GetProjectConfigService/WcpProjectLicenseContext.d.ts +1 -0
- package/services/GetProjectConfigService/WcpProjectLicenseContext.js +2 -1
- package/services/GetProjectConfigService/WcpProjectLicenseContext.js.map +1 -1
package/ProjectSdk.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export declare class ProjectSdk {
|
|
|
13
13
|
setProjectId(projectId: string, options?: SetProjectIdService.Options): Promise<void>;
|
|
14
14
|
getProjectVersion(): string;
|
|
15
15
|
getProjectInfo(): Promise<import("./abstractions/services/ProjectInfoService/ProjectInfoService.js").IProjectInfoServiceResult>;
|
|
16
|
+
getFeatureFlags(): Promise<import("@webiny/feature-flags/FeatureFlags.js").FeatureFlags>;
|
|
16
17
|
getApp(appName: GetApp.Params): Promise<import("./index.js").IAppModel>;
|
|
17
18
|
getAppOutput(params: GetAppOutput.Params): Promise<{
|
|
18
19
|
pulumiProcess: import("child_process").ChildProcess & import("execa").ExecaChildPromise<string> & Promise<import("execa").ExecaReturnValue<string>>;
|
package/ProjectSdk.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createProjectSdkContainer } from "./createProjectSdkContainer.js";
|
|
2
|
-
import { BuildApp, DeployApp, DestroyApp, ExportStack, GetApp, GetAppOutput, GetAppStackOutput, GetProductionEnvironments, GetProject, GetProjectIdService, SetProjectIdService, GetProjectConfig, GetProjectInfo, GetPulumiResourceNamePrefix, InstallExtension, IsCi, IsTelemetryEnabled, LocalStorageService, LoggerService, RefreshApp, RunPulumiCommand, ValidateProjectConfig, ListDeployedEnvironmentsService, Watch, WcpService, GetProjectVersionService } from "./abstractions/index.js";
|
|
2
|
+
import { BuildApp, DeployApp, DestroyApp, ExportStack, GetApp, GetAppOutput, GetAppStackOutput, GetFeatureFlags, GetProductionEnvironments, GetProject, GetProjectIdService, SetProjectIdService, GetProjectConfig, GetProjectInfo, GetPulumiResourceNamePrefix, InstallExtension, IsCi, IsTelemetryEnabled, LocalStorageService, LoggerService, RefreshApp, RunPulumiCommand, ValidateProjectConfig, ListDeployedEnvironmentsService, Watch, WcpService, GetProjectVersionService } from "./abstractions/index.js";
|
|
3
3
|
import { isValidRegionName, isValidVariantName, getProjectSdkContextFromEnv } from "./utils/index.js";
|
|
4
4
|
const projectSdkCache = new Map();
|
|
5
5
|
export class ProjectSdk {
|
|
@@ -50,6 +50,9 @@ export class ProjectSdk {
|
|
|
50
50
|
getProjectInfo() {
|
|
51
51
|
return this.container.resolve(GetProjectInfo).execute();
|
|
52
52
|
}
|
|
53
|
+
getFeatureFlags() {
|
|
54
|
+
return this.container.resolve(GetFeatureFlags).execute();
|
|
55
|
+
}
|
|
53
56
|
|
|
54
57
|
// App-related methods.
|
|
55
58
|
async getApp(appName) {
|
package/ProjectSdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createProjectSdkContainer","BuildApp","DeployApp","DestroyApp","ExportStack","GetApp","GetAppOutput","GetAppStackOutput","GetProductionEnvironments","GetProject","GetProjectIdService","SetProjectIdService","GetProjectConfig","GetProjectInfo","GetPulumiResourceNamePrefix","InstallExtension","IsCi","IsTelemetryEnabled","LocalStorageService","LoggerService","RefreshApp","RunPulumiCommand","ValidateProjectConfig","ListDeployedEnvironmentsService","Watch","WcpService","GetProjectVersionService","isValidRegionName","isValidVariantName","getProjectSdkContextFromEnv","projectSdkCache","Map","ProjectSdk","constructor","container","init","params","envContext","Object","keys","length","cacheKey","getCacheKey","has","get","instance","set","env","variant","region","getProject","resolve","execute","getProjectConfig","validateProjectConfig","projectConfig","getProjectId","setProjectId","projectId","options","getProjectVersion","getProjectInfo","getApp","appName","getAppOutput","getAppStackOutput","getAppStackExport","buildApp","deployApp","destroyApp","refreshApp","runPulumiCommand","watch","wcp","localStorage","getPulumiResourceNamePrefix","getProductionEnvironments","listDeployedEnvironments","installExtension","source","name","isTelemetryEnabled","isCi","getLogger","getContainer"],"sources":["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 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 // 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"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createProjectSdkContainer","BuildApp","DeployApp","DestroyApp","ExportStack","GetApp","GetAppOutput","GetAppStackOutput","GetFeatureFlags","GetProductionEnvironments","GetProject","GetProjectIdService","SetProjectIdService","GetProjectConfig","GetProjectInfo","GetPulumiResourceNamePrefix","InstallExtension","IsCi","IsTelemetryEnabled","LocalStorageService","LoggerService","RefreshApp","RunPulumiCommand","ValidateProjectConfig","ListDeployedEnvironmentsService","Watch","WcpService","GetProjectVersionService","isValidRegionName","isValidVariantName","getProjectSdkContextFromEnv","projectSdkCache","Map","ProjectSdk","constructor","container","init","params","envContext","Object","keys","length","cacheKey","getCacheKey","has","get","instance","set","env","variant","region","getProject","resolve","execute","getProjectConfig","validateProjectConfig","projectConfig","getProjectId","setProjectId","projectId","options","getProjectVersion","getProjectInfo","getFeatureFlags","getApp","appName","getAppOutput","getAppStackOutput","getAppStackExport","buildApp","deployApp","destroyApp","refreshApp","runPulumiCommand","watch","wcp","localStorage","getPulumiResourceNamePrefix","getProductionEnvironments","listDeployedEnvironments","installExtension","source","name","isTelemetryEnabled","isCi","getLogger","getContainer"],"sources":["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"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type FeatureFlags } from "@webiny/feature-flags";
|
|
2
|
+
export interface IGetFeatureFlags {
|
|
3
|
+
execute(): Promise<FeatureFlags>;
|
|
4
|
+
}
|
|
5
|
+
export declare const GetFeatureFlags: import("@webiny/di").Abstraction<IGetFeatureFlags>;
|
|
6
|
+
export declare namespace GetFeatureFlags {
|
|
7
|
+
type Interface = IGetFeatureFlags;
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAbstraction","GetFeatureFlags"],"sources":["GetFeatureFlags.ts"],"sourcesContent":["import { createAbstraction } from \"~/abstractions/createAbstraction.js\";\nimport { type FeatureFlags } from \"@webiny/feature-flags\";\n\nexport interface IGetFeatureFlags {\n execute(): Promise<FeatureFlags>;\n}\n\nexport const GetFeatureFlags = createAbstraction<IGetFeatureFlags>(\"GetFeatureFlags\");\n\nexport namespace GetFeatureFlags {\n export type Interface = IGetFeatureFlags;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB;AAO1B,OAAO,MAAMC,eAAe,GAAGD,iBAAiB,CAAmB,iBAAiB,CAAC","ignoreList":[]}
|
|
@@ -23,3 +23,4 @@ export { RefreshApp } from "./RefreshApp.js";
|
|
|
23
23
|
export { RunPulumiCommand } from "./RunPulumiCommand.js";
|
|
24
24
|
export { ValidateProjectConfig } from "./ValidateProjectConfig.js";
|
|
25
25
|
export { Watch } from "./Watch.js";
|
|
26
|
+
export { GetFeatureFlags } from "./GetFeatureFlags.js";
|
|
@@ -23,5 +23,6 @@ export { RefreshApp } from "./RefreshApp.js";
|
|
|
23
23
|
export { RunPulumiCommand } from "./RunPulumiCommand.js";
|
|
24
24
|
export { ValidateProjectConfig } from "./ValidateProjectConfig.js";
|
|
25
25
|
export { Watch } from "./Watch.js";
|
|
26
|
+
export { GetFeatureFlags } from "./GetFeatureFlags.js";
|
|
26
27
|
|
|
27
28
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BuildApp","BuildExtension","DeployApp","DestroyApp","ExportStack","GetApp","GetAppOutput","GetAppStackOutput","GetLogger","GetProductionEnvironments","GetProject","GetProjectConfig","GetProjectInfo","GetPulumiResourceNamePrefix","InstallExtension","IsCi","IsTelemetryEnabled","IsWcpEnabled","IsWebinyJsRepo","RefreshApp","RunPulumiCommand","ValidateProjectConfig","Watch"],"sources":["index.ts"],"sourcesContent":["export * from \"./hooks/index.js\";\nexport * from \"./pulumi/index.js\";\nexport { BuildApp } from \"./BuildApp.js\";\nexport { BuildExtension } from \"./BuildExtension.js\";\nexport { DeployApp } from \"./DeployApp.js\";\nexport { DestroyApp } from \"./DestroyApp.js\";\nexport { ExportStack } from \"./ExportStack.js\";\nexport { GetApp } from \"./GetApp.js\";\nexport { GetAppOutput } from \"./GetAppOutput.js\";\nexport { GetAppStackOutput } from \"./GetAppStackOutput.js\";\nexport { GetLogger } from \"./GetLogger.js\";\nexport { GetProductionEnvironments } from \"./GetProductionEnvironments.js\";\nexport { GetProject } from \"./GetProject.js\";\nexport { GetProjectConfig } from \"./GetProjectConfig.js\";\nexport { GetProjectInfo } from \"./GetProjectInfo.js\";\nexport { GetPulumiResourceNamePrefix } from \"./GetPulumiResourceNamePrefix.js\";\nexport { InstallExtension } from \"./InstallExtension.js\";\nexport { IsCi } from \"./IsCi.js\";\nexport { IsTelemetryEnabled } from \"./IsTelemetryEnabled.js\";\nexport { IsWcpEnabled } from \"./IsWcpEnabled.js\";\nexport { IsWebinyJsRepo } from \"./IsWebinyJsRepo.js\";\nexport { RefreshApp } from \"./RefreshApp.js\";\nexport { RunPulumiCommand } from \"./RunPulumiCommand.js\";\nexport { ValidateProjectConfig } from \"./ValidateProjectConfig.js\";\nexport { Watch } from \"./Watch.js\";\n"],"mappings":"AAAA;AACA;AACA,SAASA,QAAQ;AACjB,SAASC,cAAc;AACvB,SAASC,SAAS;AAClB,SAASC,UAAU;AACnB,SAASC,WAAW;AACpB,SAASC,MAAM;AACf,SAASC,YAAY;AACrB,SAASC,iBAAiB;AAC1B,SAASC,SAAS;AAClB,SAASC,yBAAyB;AAClC,SAASC,UAAU;AACnB,SAASC,gBAAgB;AACzB,SAASC,cAAc;AACvB,SAASC,2BAA2B;AACpC,SAASC,gBAAgB;AACzB,SAASC,IAAI;AACb,SAASC,kBAAkB;AAC3B,SAASC,YAAY;AACrB,SAASC,cAAc;AACvB,SAASC,UAAU;AACnB,SAASC,gBAAgB;AACzB,SAASC,qBAAqB;AAC9B,SAASC,KAAK","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["BuildApp","BuildExtension","DeployApp","DestroyApp","ExportStack","GetApp","GetAppOutput","GetAppStackOutput","GetLogger","GetProductionEnvironments","GetProject","GetProjectConfig","GetProjectInfo","GetPulumiResourceNamePrefix","InstallExtension","IsCi","IsTelemetryEnabled","IsWcpEnabled","IsWebinyJsRepo","RefreshApp","RunPulumiCommand","ValidateProjectConfig","Watch","GetFeatureFlags"],"sources":["index.ts"],"sourcesContent":["export * from \"./hooks/index.js\";\nexport * from \"./pulumi/index.js\";\nexport { BuildApp } from \"./BuildApp.js\";\nexport { BuildExtension } from \"./BuildExtension.js\";\nexport { DeployApp } from \"./DeployApp.js\";\nexport { DestroyApp } from \"./DestroyApp.js\";\nexport { ExportStack } from \"./ExportStack.js\";\nexport { GetApp } from \"./GetApp.js\";\nexport { GetAppOutput } from \"./GetAppOutput.js\";\nexport { GetAppStackOutput } from \"./GetAppStackOutput.js\";\nexport { GetLogger } from \"./GetLogger.js\";\nexport { GetProductionEnvironments } from \"./GetProductionEnvironments.js\";\nexport { GetProject } from \"./GetProject.js\";\nexport { GetProjectConfig } from \"./GetProjectConfig.js\";\nexport { GetProjectInfo } from \"./GetProjectInfo.js\";\nexport { GetPulumiResourceNamePrefix } from \"./GetPulumiResourceNamePrefix.js\";\nexport { InstallExtension } from \"./InstallExtension.js\";\nexport { IsCi } from \"./IsCi.js\";\nexport { IsTelemetryEnabled } from \"./IsTelemetryEnabled.js\";\nexport { IsWcpEnabled } from \"./IsWcpEnabled.js\";\nexport { IsWebinyJsRepo } from \"./IsWebinyJsRepo.js\";\nexport { RefreshApp } from \"./RefreshApp.js\";\nexport { RunPulumiCommand } from \"./RunPulumiCommand.js\";\nexport { ValidateProjectConfig } from \"./ValidateProjectConfig.js\";\nexport { Watch } from \"./Watch.js\";\nexport { GetFeatureFlags } from \"./GetFeatureFlags.js\";\n"],"mappings":"AAAA;AACA;AACA,SAASA,QAAQ;AACjB,SAASC,cAAc;AACvB,SAASC,SAAS;AAClB,SAASC,UAAU;AACnB,SAASC,WAAW;AACpB,SAASC,MAAM;AACf,SAASC,YAAY;AACrB,SAASC,iBAAiB;AAC1B,SAASC,SAAS;AAClB,SAASC,yBAAyB;AAClC,SAASC,UAAU;AACnB,SAASC,gBAAgB;AACzB,SAASC,cAAc;AACvB,SAASC,2BAA2B;AACpC,SAASC,gBAAgB;AACzB,SAASC,IAAI;AACb,SAASC,kBAAkB;AAC3B,SAASC,YAAY;AACrB,SAASC,cAAc;AACvB,SAASC,UAAU;AACnB,SAASC,gBAAgB;AACzB,SAASC,qBAAqB;AAC9B,SAASC,KAAK;AACd,SAASC,eAAe","ignoreList":[]}
|
package/components/Wcp.d.ts
CHANGED
|
@@ -7,11 +7,13 @@ declare function CanUseTeams({ children }: ChildrenProps): React.JSX.Element | n
|
|
|
7
7
|
declare function CanUsePrivateFiles({ children }: ChildrenProps): React.JSX.Element | null;
|
|
8
8
|
declare function CanUseFileManagerThreatDetection({ children }: ChildrenProps): React.JSX.Element | null;
|
|
9
9
|
declare function CanUseWorkflows({ children }: ChildrenProps): React.JSX.Element | null;
|
|
10
|
+
declare function CanUseHcmsFieldPermissions({ children }: ChildrenProps): React.JSX.Element | null;
|
|
10
11
|
export declare const Wcp: {
|
|
11
12
|
CanUseMultiTenancy: typeof CanUseMultiTenancy;
|
|
12
13
|
CanUseTeams: typeof CanUseTeams;
|
|
13
14
|
CanUsePrivateFiles: typeof CanUsePrivateFiles;
|
|
14
15
|
CanUseFileManagerThreatDetection: typeof CanUseFileManagerThreatDetection;
|
|
15
16
|
CanUseWorkflows: typeof CanUseWorkflows;
|
|
17
|
+
CanUseHcmsFieldPermissions: typeof CanUseHcmsFieldPermissions;
|
|
16
18
|
};
|
|
17
19
|
export {};
|
package/components/Wcp.js
CHANGED
|
@@ -30,12 +30,19 @@ function CanUseWorkflows({
|
|
|
30
30
|
const wcp = useWcpProjectLicense();
|
|
31
31
|
return wcp.canUseWorkflows() ? /*#__PURE__*/React.createElement(React.Fragment, null, children) : null;
|
|
32
32
|
}
|
|
33
|
+
function CanUseHcmsFieldPermissions({
|
|
34
|
+
children
|
|
35
|
+
}) {
|
|
36
|
+
const wcp = useWcpProjectLicense();
|
|
37
|
+
return wcp.canUseHcmsFieldPermissions() ? /*#__PURE__*/React.createElement(React.Fragment, null, children) : null;
|
|
38
|
+
}
|
|
33
39
|
export const Wcp = {
|
|
34
40
|
CanUseMultiTenancy,
|
|
35
41
|
CanUseTeams,
|
|
36
42
|
CanUsePrivateFiles,
|
|
37
43
|
CanUseFileManagerThreatDetection,
|
|
38
|
-
CanUseWorkflows
|
|
44
|
+
CanUseWorkflows,
|
|
45
|
+
CanUseHcmsFieldPermissions
|
|
39
46
|
};
|
|
40
47
|
|
|
41
48
|
//# sourceMappingURL=Wcp.js.map
|
package/components/Wcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useWcpProjectLicense","CanUseMultiTenancy","children","wcp","canUseMultiTenancy","createElement","Fragment","CanUseTeams","canUseTeams","CanUsePrivateFiles","canUsePrivateFiles","CanUseFileManagerThreatDetection","canUseFileManagerThreatDetection","CanUseWorkflows","canUseWorkflows","Wcp"],"sources":["Wcp.tsx"],"sourcesContent":["import React from \"react\";\nimport { useWcpProjectLicense } from \"~/services/GetProjectConfigService/WcpProjectLicenseContext.js\";\n\ninterface ChildrenProps {\n children: React.ReactNode;\n}\n\nfunction CanUseMultiTenancy({ children }: ChildrenProps) {\n const wcp = useWcpProjectLicense();\n\n return wcp.canUseMultiTenancy() ? <>{children}</> : null;\n}\n\nfunction CanUseTeams({ children }: ChildrenProps) {\n const wcp = useWcpProjectLicense();\n\n return wcp.canUseTeams() ? <>{children}</> : null;\n}\n\nfunction CanUsePrivateFiles({ children }: ChildrenProps) {\n const wcp = useWcpProjectLicense();\n\n return wcp.canUsePrivateFiles() ? <>{children}</> : null;\n}\n\nfunction CanUseFileManagerThreatDetection({ children }: ChildrenProps) {\n const wcp = useWcpProjectLicense();\n\n return wcp.canUseFileManagerThreatDetection() ? <>{children}</> : null;\n}\n\nfunction CanUseWorkflows({ children }: ChildrenProps) {\n const wcp = useWcpProjectLicense();\n\n return wcp.canUseWorkflows() ? <>{children}</> : null;\n}\n\nexport const Wcp = {\n CanUseMultiTenancy,\n CanUseTeams,\n CanUsePrivateFiles,\n CanUseFileManagerThreatDetection,\n CanUseWorkflows\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,oBAAoB;AAM7B,SAASC,kBAAkBA,CAAC;EAAEC;AAAwB,CAAC,EAAE;EACrD,MAAMC,GAAG,GAAGH,oBAAoB,CAAC,CAAC;EAElC,OAAOG,GAAG,CAACC,kBAAkB,CAAC,CAAC,gBAAGL,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AAC5D;AAEA,SAASK,WAAWA,CAAC;EAAEL;AAAwB,CAAC,EAAE;EAC9C,MAAMC,GAAG,GAAGH,oBAAoB,CAAC,CAAC;EAElC,OAAOG,GAAG,CAACK,WAAW,CAAC,CAAC,gBAAGT,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AACrD;AAEA,SAASO,kBAAkBA,CAAC;EAAEP;AAAwB,CAAC,EAAE;EACrD,MAAMC,GAAG,GAAGH,oBAAoB,CAAC,CAAC;EAElC,OAAOG,GAAG,CAACO,kBAAkB,CAAC,CAAC,gBAAGX,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AAC5D;AAEA,SAASS,gCAAgCA,CAAC;EAAET;AAAwB,CAAC,EAAE;EACnE,MAAMC,GAAG,GAAGH,oBAAoB,CAAC,CAAC;EAElC,OAAOG,GAAG,CAACS,gCAAgC,CAAC,CAAC,gBAAGb,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AAC1E;AAEA,SAASW,eAAeA,CAAC;EAAEX;AAAwB,CAAC,EAAE;EAClD,MAAMC,GAAG,GAAGH,oBAAoB,CAAC,CAAC;EAElC,OAAOG,GAAG,CAACW,eAAe,CAAC,CAAC,gBAAGf,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AACzD;AAEA,OAAO,
|
|
1
|
+
{"version":3,"names":["React","useWcpProjectLicense","CanUseMultiTenancy","children","wcp","canUseMultiTenancy","createElement","Fragment","CanUseTeams","canUseTeams","CanUsePrivateFiles","canUsePrivateFiles","CanUseFileManagerThreatDetection","canUseFileManagerThreatDetection","CanUseWorkflows","canUseWorkflows","CanUseHcmsFieldPermissions","canUseHcmsFieldPermissions","Wcp"],"sources":["Wcp.tsx"],"sourcesContent":["import React from \"react\";\nimport { useWcpProjectLicense } from \"~/services/GetProjectConfigService/WcpProjectLicenseContext.js\";\n\ninterface ChildrenProps {\n children: React.ReactNode;\n}\n\nfunction CanUseMultiTenancy({ children }: ChildrenProps) {\n const wcp = useWcpProjectLicense();\n\n return wcp.canUseMultiTenancy() ? <>{children}</> : null;\n}\n\nfunction CanUseTeams({ children }: ChildrenProps) {\n const wcp = useWcpProjectLicense();\n\n return wcp.canUseTeams() ? <>{children}</> : null;\n}\n\nfunction CanUsePrivateFiles({ children }: ChildrenProps) {\n const wcp = useWcpProjectLicense();\n\n return wcp.canUsePrivateFiles() ? <>{children}</> : null;\n}\n\nfunction CanUseFileManagerThreatDetection({ children }: ChildrenProps) {\n const wcp = useWcpProjectLicense();\n\n return wcp.canUseFileManagerThreatDetection() ? <>{children}</> : null;\n}\n\nfunction CanUseWorkflows({ children }: ChildrenProps) {\n const wcp = useWcpProjectLicense();\n\n return wcp.canUseWorkflows() ? <>{children}</> : null;\n}\n\nfunction CanUseHcmsFieldPermissions({ children }: ChildrenProps) {\n const wcp = useWcpProjectLicense();\n\n return wcp.canUseHcmsFieldPermissions() ? <>{children}</> : null;\n}\n\nexport const Wcp = {\n CanUseMultiTenancy,\n CanUseTeams,\n CanUsePrivateFiles,\n CanUseFileManagerThreatDetection,\n CanUseWorkflows,\n CanUseHcmsFieldPermissions\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,oBAAoB;AAM7B,SAASC,kBAAkBA,CAAC;EAAEC;AAAwB,CAAC,EAAE;EACrD,MAAMC,GAAG,GAAGH,oBAAoB,CAAC,CAAC;EAElC,OAAOG,GAAG,CAACC,kBAAkB,CAAC,CAAC,gBAAGL,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AAC5D;AAEA,SAASK,WAAWA,CAAC;EAAEL;AAAwB,CAAC,EAAE;EAC9C,MAAMC,GAAG,GAAGH,oBAAoB,CAAC,CAAC;EAElC,OAAOG,GAAG,CAACK,WAAW,CAAC,CAAC,gBAAGT,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AACrD;AAEA,SAASO,kBAAkBA,CAAC;EAAEP;AAAwB,CAAC,EAAE;EACrD,MAAMC,GAAG,GAAGH,oBAAoB,CAAC,CAAC;EAElC,OAAOG,GAAG,CAACO,kBAAkB,CAAC,CAAC,gBAAGX,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AAC5D;AAEA,SAASS,gCAAgCA,CAAC;EAAET;AAAwB,CAAC,EAAE;EACnE,MAAMC,GAAG,GAAGH,oBAAoB,CAAC,CAAC;EAElC,OAAOG,GAAG,CAACS,gCAAgC,CAAC,CAAC,gBAAGb,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AAC1E;AAEA,SAASW,eAAeA,CAAC;EAAEX;AAAwB,CAAC,EAAE;EAClD,MAAMC,GAAG,GAAGH,oBAAoB,CAAC,CAAC;EAElC,OAAOG,GAAG,CAACW,eAAe,CAAC,CAAC,gBAAGf,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AACzD;AAEA,SAASa,0BAA0BA,CAAC;EAAEb;AAAwB,CAAC,EAAE;EAC7D,MAAMC,GAAG,GAAGH,oBAAoB,CAAC,CAAC;EAElC,OAAOG,GAAG,CAACa,0BAA0B,CAAC,CAAC,gBAAGjB,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AACpE;AAEA,OAAO,MAAMe,GAAG,GAAG;EACfhB,kBAAkB;EAClBM,WAAW;EACXE,kBAAkB;EAClBE,gCAAgC;EAChCE,eAAe;EACfE;AACJ,CAAC","ignoreList":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Container } from "@webiny/di";
|
|
2
|
-
import { beforeBuild, afterBuild, beforeWatch, beforeDeploy, afterDeploy, adminAfterBuild, adminAfterDeploy, adminBeforeBuild, adminBeforeDeploy, adminBeforeWatch, apiAfterBuild, apiAfterDeploy, apiBeforeBuild, apiBeforeDeploy, apiBeforeWatch, buildApp, coreAfterBuild, coreAfterDeploy, coreBeforeBuild, coreBeforeDeploy, coreBeforeWatch, deployApp, destroyApp, exportStack, getApp, getAppOutput, getAppStackOutput, getLogger, getProductionEnvironments, getProject, getProjectConfig, getProjectInfo, getPulumiResourceNamePrefix, installExtension, isCi, isTelemetryEnabled, isWcpEnabled, isWebinyJsRepo, refreshApp, runPulumiCommand, validateProjectConfig, watch } from "./features/index.js";
|
|
2
|
+
import { beforeBuild, afterBuild, beforeWatch, beforeDeploy, afterDeploy, adminAfterBuild, adminAfterDeploy, adminBeforeBuild, adminBeforeDeploy, adminBeforeWatch, apiAfterBuild, apiAfterDeploy, apiBeforeBuild, apiBeforeDeploy, apiBeforeWatch, buildApp, coreAfterBuild, coreAfterDeploy, coreBeforeBuild, coreBeforeDeploy, coreBeforeWatch, deployApp, destroyApp, exportStack, getApp, getAppOutput, getAppStackOutput, getLogger, getProductionEnvironments, getProject, getProjectConfig, getProjectInfo, getPulumiResourceNamePrefix, getFeatureFlags, installExtension, isCi, isTelemetryEnabled, isWcpEnabled, isWebinyJsRepo, refreshApp, runPulumiCommand, validateProjectConfig, watch } from "./features/index.js";
|
|
3
3
|
import { 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 } from "./services/index.js";
|
|
4
4
|
import { GetProjectConfig, BuildProjectWorkspaceService, ProjectSdkParamsService, LoadEnvVarsService, ValidateProjectConfig, LoggerService, InitProjectSdkService } from "./abstractions/index.js";
|
|
5
|
+
import { getFeatureFlagsWithLicense } from "./decorators/index.js";
|
|
5
6
|
export const createProjectSdkContainer = async params => {
|
|
6
7
|
const container = new Container();
|
|
7
8
|
|
|
@@ -68,8 +69,10 @@ export const createProjectSdkContainer = async params => {
|
|
|
68
69
|
container.register(isWebinyJsRepo).inSingletonScope();
|
|
69
70
|
container.register(refreshApp).inSingletonScope();
|
|
70
71
|
container.register(runPulumiCommand).inSingletonScope();
|
|
72
|
+
container.register(getFeatureFlags).inSingletonScope();
|
|
71
73
|
container.register(validateProjectConfig).inSingletonScope();
|
|
72
74
|
container.register(watch).inSingletonScope();
|
|
75
|
+
container.registerDecorator(getFeatureFlagsWithLicense);
|
|
73
76
|
|
|
74
77
|
// Hooks.
|
|
75
78
|
container.registerComposite(beforeBuild);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Container","beforeBuild","afterBuild","beforeWatch","beforeDeploy","afterDeploy","adminAfterBuild","adminAfterDeploy","adminBeforeBuild","adminBeforeDeploy","adminBeforeWatch","apiAfterBuild","apiAfterDeploy","apiBeforeBuild","apiBeforeDeploy","apiBeforeWatch","buildApp","coreAfterBuild","coreAfterDeploy","coreBeforeBuild","coreBeforeDeploy","coreBeforeWatch","deployApp","destroyApp","exportStack","getApp","getAppOutput","getAppStackOutput","getLogger","getProductionEnvironments","getProject","getProjectConfig","getProjectInfo","getPulumiResourceNamePrefix","installExtension","isCi","isTelemetryEnabled","isWcpEnabled","isWebinyJsRepo","refreshApp","runPulumiCommand","validateProjectConfig","watch","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","GetProjectConfig","BuildProjectWorkspaceService","ProjectSdkParamsService","LoadEnvVarsService","ValidateProjectConfig","LoggerService","InitProjectSdkService","createProjectSdkContainer","params","container","register","inSingletonScope","registerComposite","resolve","set","execute","logger","log","projectExtensions","tags","runtimeContext"],"sources":["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 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\";\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(validateProjectConfig).inSingletonScope();\n container.register(watch).inSingletonScope();\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"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Container","beforeBuild","afterBuild","beforeWatch","beforeDeploy","afterDeploy","adminAfterBuild","adminAfterDeploy","adminBeforeBuild","adminBeforeDeploy","adminBeforeWatch","apiAfterBuild","apiAfterDeploy","apiBeforeBuild","apiBeforeDeploy","apiBeforeWatch","buildApp","coreAfterBuild","coreAfterDeploy","coreBeforeBuild","coreBeforeDeploy","coreBeforeWatch","deployApp","destroyApp","exportStack","getApp","getAppOutput","getAppStackOutput","getLogger","getProductionEnvironments","getProject","getProjectConfig","getProjectInfo","getPulumiResourceNamePrefix","getFeatureFlags","installExtension","isCi","isTelemetryEnabled","isWcpEnabled","isWebinyJsRepo","refreshApp","runPulumiCommand","validateProjectConfig","watch","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","GetProjectConfig","BuildProjectWorkspaceService","ProjectSdkParamsService","LoadEnvVarsService","ValidateProjectConfig","LoggerService","InitProjectSdkService","getFeatureFlagsWithLicense","createProjectSdkContainer","params","container","register","inSingletonScope","registerDecorator","registerComposite","resolve","set","execute","logger","log","projectExtensions","tags","runtimeContext"],"sources":["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"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FeatureFlags } from "@webiny/feature-flags";
|
|
2
|
+
import { GetFeatureFlags } from "../abstractions/index.js";
|
|
3
|
+
declare class GetFeatureFlagsWithLicenseDecorator implements GetFeatureFlags.Interface {
|
|
4
|
+
private decoratee;
|
|
5
|
+
constructor(decoratee: GetFeatureFlags.Interface);
|
|
6
|
+
execute(): Promise<FeatureFlags>;
|
|
7
|
+
private getLicenseFromEnv;
|
|
8
|
+
private applyLicense;
|
|
9
|
+
}
|
|
10
|
+
export declare const getFeatureFlagsWithLicense: typeof GetFeatureFlagsWithLicenseDecorator & {
|
|
11
|
+
__abstraction: import("@webiny/di").Abstraction<import("../abstractions/features/GetFeatureFlags").IGetFeatureFlags>;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { License } from "@webiny/wcp";
|
|
2
|
+
import { FeatureFlags } from "@webiny/feature-flags";
|
|
3
|
+
import { GetFeatureFlags } from "../abstractions/index.js";
|
|
4
|
+
|
|
5
|
+
/* Returns the user's value when the license permits it, otherwise false.
|
|
6
|
+
* This preserves an explicit user false (opt-out), while blocking features
|
|
7
|
+
* the license doesn't cover. */
|
|
8
|
+
function applyLicenseFlag(userValue, licenseAllows) {
|
|
9
|
+
return licenseAllows ? userValue : false;
|
|
10
|
+
}
|
|
11
|
+
class GetFeatureFlagsWithLicenseDecorator {
|
|
12
|
+
constructor(decoratee) {
|
|
13
|
+
this.decoratee = decoratee;
|
|
14
|
+
}
|
|
15
|
+
async execute() {
|
|
16
|
+
const userFlags = await this.decoratee.execute();
|
|
17
|
+
const license = this.getLicenseFromEnv();
|
|
18
|
+
// toDto() returns a structuredClone, so we can safely mutate it in applyLicense.
|
|
19
|
+
return FeatureFlags.fromDto(this.applyLicense(userFlags.toDto(), license));
|
|
20
|
+
}
|
|
21
|
+
getLicenseFromEnv() {
|
|
22
|
+
const licenseEnv = process.env.WCP_PROJECT_LICENSE;
|
|
23
|
+
if (!licenseEnv) {
|
|
24
|
+
return License.fromLicenseDto(null);
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
const licenseDto = JSON.parse(licenseEnv);
|
|
28
|
+
return License.fromLicenseDto(licenseDto);
|
|
29
|
+
} catch {
|
|
30
|
+
return License.fromLicenseDto(null);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* For each licensable flag: final = user_value && license_allows.
|
|
35
|
+
* If the user disables a feature they have access to, we respect false.
|
|
36
|
+
* If the user enables a feature the license doesn't allow, we force false.
|
|
37
|
+
* fileManager (base) is always allowed; only threatDetection is restricted. */
|
|
38
|
+
applyLicense(featureFlagsDto, license) {
|
|
39
|
+
featureFlagsDto.multiTenancy = applyLicenseFlag(featureFlagsDto.multiTenancy, license.canUseFeature("multiTenancy"));
|
|
40
|
+
featureFlagsDto.advancedPublishingWorkflow = applyLicenseFlag(featureFlagsDto.advancedPublishingWorkflow, license.canUseWorkflows());
|
|
41
|
+
|
|
42
|
+
// advancedAccessControlLayer.
|
|
43
|
+
if (featureFlagsDto.advancedAccessControlLayer !== false) {
|
|
44
|
+
if (!license.canUseAacl()) {
|
|
45
|
+
// License doesn't allow AACL at all.
|
|
46
|
+
featureFlagsDto.advancedAccessControlLayer = false;
|
|
47
|
+
} else if (typeof featureFlagsDto.advancedAccessControlLayer === "object") {
|
|
48
|
+
// License allows AACL; constrain sub-options.
|
|
49
|
+
const aacl = featureFlagsDto.advancedAccessControlLayer;
|
|
50
|
+
aacl.teams = applyLicenseFlag(aacl.teams, license.canUseTeams());
|
|
51
|
+
aacl.privateFiles = applyLicenseFlag(aacl.privateFiles, license.canUsePrivateFiles());
|
|
52
|
+
aacl.folderLevelPermissions = applyLicenseFlag(aacl.folderLevelPermissions, license.canUseFolderLevelPermissions());
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
featureFlagsDto.auditLogs = applyLicenseFlag(featureFlagsDto.auditLogs, license.canUseAuditLogs());
|
|
56
|
+
featureFlagsDto.recordLocking = applyLicenseFlag(featureFlagsDto.recordLocking, license.canUseRecordLocking());
|
|
57
|
+
|
|
58
|
+
// fileManager is always enabled; only restrict threatDetection via license.
|
|
59
|
+
if (!featureFlagsDto.fileManager) {
|
|
60
|
+
featureFlagsDto.fileManager = {};
|
|
61
|
+
}
|
|
62
|
+
featureFlagsDto.fileManager.threatDetection = applyLicenseFlag(featureFlagsDto.fileManager.threatDetection, license.canUseFileManagerThreatDetection());
|
|
63
|
+
return featureFlagsDto;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export const getFeatureFlagsWithLicense = GetFeatureFlags.createDecorator({
|
|
67
|
+
decorator: GetFeatureFlagsWithLicenseDecorator,
|
|
68
|
+
dependencies: []
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
//# sourceMappingURL=GetFeatureFlagsWithLicense.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["License","FeatureFlags","GetFeatureFlags","applyLicenseFlag","userValue","licenseAllows","GetFeatureFlagsWithLicenseDecorator","constructor","decoratee","execute","userFlags","license","getLicenseFromEnv","fromDto","applyLicense","toDto","licenseEnv","process","env","WCP_PROJECT_LICENSE","fromLicenseDto","licenseDto","JSON","parse","featureFlagsDto","multiTenancy","canUseFeature","advancedPublishingWorkflow","canUseWorkflows","advancedAccessControlLayer","canUseAacl","aacl","teams","canUseTeams","privateFiles","canUsePrivateFiles","folderLevelPermissions","canUseFolderLevelPermissions","auditLogs","canUseAuditLogs","recordLocking","canUseRecordLocking","fileManager","threatDetection","canUseFileManagerThreatDetection","getFeatureFlagsWithLicense","createDecorator","decorator","dependencies"],"sources":["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"],"mappings":"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","ignoreList":[]}
|
package/decorators/index.d.ts
CHANGED
package/decorators/index.js
CHANGED
|
@@ -5,5 +5,6 @@ export * from "./DeployAppWithHooks.js";
|
|
|
5
5
|
export * from "./DeployAppWithWatchedLambdaReplacement.js";
|
|
6
6
|
export * from "./WatchWithHooks.js";
|
|
7
7
|
export * from "./GetPulumiServiceWithDownloadInfo.js";
|
|
8
|
+
export * from "./GetFeatureFlagsWithLicense.js";
|
|
8
9
|
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
package/decorators/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./BuildAppWithHooks.js\";\nexport * from \"./DeployAppClearWatchedLambdaFunctions.js\";\nexport * from \"./DeployAppRefreshStackOutputCache.js\";\nexport * from \"./DeployAppWithHooks.js\";\nexport * from \"./DeployAppWithWatchedLambdaReplacement.js\";\nexport * from \"./WatchWithHooks.js\";\nexport * from \"./GetPulumiServiceWithDownloadInfo.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./BuildAppWithHooks.js\";\nexport * from \"./DeployAppClearWatchedLambdaFunctions.js\";\nexport * from \"./DeployAppRefreshStackOutputCache.js\";\nexport * from \"./DeployAppWithHooks.js\";\nexport * from \"./DeployAppWithWatchedLambdaReplacement.js\";\nexport * from \"./WatchWithHooks.js\";\nexport * from \"./GetPulumiServiceWithDownloadInfo.js\";\nexport * from \"./GetFeatureFlagsWithLicense.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
|
@@ -7,24 +7,27 @@ export declare const FeatureFlags: import("~/defineExtension/index.js").Extensio
|
|
|
7
7
|
teams: z.ZodOptional<z.ZodBoolean>;
|
|
8
8
|
privateFiles: z.ZodOptional<z.ZodBoolean>;
|
|
9
9
|
folderLevelPermissions: z.ZodOptional<z.ZodBoolean>;
|
|
10
|
+
hcmsFieldPermissions: z.ZodOptional<z.ZodBoolean>;
|
|
10
11
|
}, "strip", z.ZodTypeAny, {
|
|
11
12
|
teams?: boolean | undefined;
|
|
12
13
|
privateFiles?: boolean | undefined;
|
|
13
14
|
folderLevelPermissions?: boolean | undefined;
|
|
15
|
+
hcmsFieldPermissions?: boolean | undefined;
|
|
14
16
|
}, {
|
|
15
17
|
teams?: boolean | undefined;
|
|
16
18
|
privateFiles?: boolean | undefined;
|
|
17
19
|
folderLevelPermissions?: boolean | undefined;
|
|
20
|
+
hcmsFieldPermissions?: boolean | undefined;
|
|
18
21
|
}>]>>;
|
|
19
22
|
auditLogs: z.ZodOptional<z.ZodBoolean>;
|
|
20
23
|
recordLocking: z.ZodOptional<z.ZodBoolean>;
|
|
21
|
-
fileManager: z.ZodOptional<z.
|
|
24
|
+
fileManager: z.ZodOptional<z.ZodObject<{
|
|
22
25
|
threatDetection: z.ZodOptional<z.ZodBoolean>;
|
|
23
26
|
}, "strip", z.ZodTypeAny, {
|
|
24
27
|
threatDetection?: boolean | undefined;
|
|
25
28
|
}, {
|
|
26
29
|
threatDetection?: boolean | undefined;
|
|
27
|
-
}
|
|
30
|
+
}>>;
|
|
28
31
|
}, "strip", z.ZodTypeAny, {
|
|
29
32
|
multiTenancy?: boolean | undefined;
|
|
30
33
|
advancedPublishingWorkflow?: boolean | undefined;
|
|
@@ -32,10 +35,11 @@ export declare const FeatureFlags: import("~/defineExtension/index.js").Extensio
|
|
|
32
35
|
teams?: boolean | undefined;
|
|
33
36
|
privateFiles?: boolean | undefined;
|
|
34
37
|
folderLevelPermissions?: boolean | undefined;
|
|
38
|
+
hcmsFieldPermissions?: boolean | undefined;
|
|
35
39
|
} | undefined;
|
|
36
40
|
auditLogs?: boolean | undefined;
|
|
37
41
|
recordLocking?: boolean | undefined;
|
|
38
|
-
fileManager?:
|
|
42
|
+
fileManager?: {
|
|
39
43
|
threatDetection?: boolean | undefined;
|
|
40
44
|
} | undefined;
|
|
41
45
|
}, {
|
|
@@ -45,10 +49,11 @@ export declare const FeatureFlags: import("~/defineExtension/index.js").Extensio
|
|
|
45
49
|
teams?: boolean | undefined;
|
|
46
50
|
privateFiles?: boolean | undefined;
|
|
47
51
|
folderLevelPermissions?: boolean | undefined;
|
|
52
|
+
hcmsFieldPermissions?: boolean | undefined;
|
|
48
53
|
} | undefined;
|
|
49
54
|
auditLogs?: boolean | undefined;
|
|
50
55
|
recordLocking?: boolean | undefined;
|
|
51
|
-
fileManager?:
|
|
56
|
+
fileManager?: {
|
|
52
57
|
threatDetection?: boolean | undefined;
|
|
53
58
|
} | undefined;
|
|
54
59
|
}>;
|
|
@@ -60,10 +65,11 @@ export declare const FeatureFlags: import("~/defineExtension/index.js").Extensio
|
|
|
60
65
|
teams?: boolean | undefined;
|
|
61
66
|
privateFiles?: boolean | undefined;
|
|
62
67
|
folderLevelPermissions?: boolean | undefined;
|
|
68
|
+
hcmsFieldPermissions?: boolean | undefined;
|
|
63
69
|
} | undefined;
|
|
64
70
|
auditLogs?: boolean | undefined;
|
|
65
71
|
recordLocking?: boolean | undefined;
|
|
66
|
-
fileManager?:
|
|
72
|
+
fileManager?: {
|
|
67
73
|
threatDetection?: boolean | undefined;
|
|
68
74
|
} | undefined;
|
|
69
75
|
};
|
|
@@ -75,10 +81,11 @@ export declare const FeatureFlags: import("~/defineExtension/index.js").Extensio
|
|
|
75
81
|
teams?: boolean | undefined;
|
|
76
82
|
privateFiles?: boolean | undefined;
|
|
77
83
|
folderLevelPermissions?: boolean | undefined;
|
|
84
|
+
hcmsFieldPermissions?: boolean | undefined;
|
|
78
85
|
} | undefined;
|
|
79
86
|
auditLogs?: boolean | undefined;
|
|
80
87
|
recordLocking?: boolean | undefined;
|
|
81
|
-
fileManager?:
|
|
88
|
+
fileManager?: {
|
|
82
89
|
threatDetection?: boolean | undefined;
|
|
83
90
|
} | undefined;
|
|
84
91
|
};
|
|
@@ -10,20 +10,21 @@ export const FeatureFlags = defineExtension({
|
|
|
10
10
|
},
|
|
11
11
|
description: "Enable or disable WCP features.",
|
|
12
12
|
paramsSchema: z.object({
|
|
13
|
-
// Follows `IFeatureFlagsDto` from `packages/feature-flags/src/
|
|
13
|
+
// Follows `IFeatureFlagsDto` from `packages/feature-flags/src/types.ts`.
|
|
14
14
|
features: z.object({
|
|
15
15
|
multiTenancy: z.boolean().optional(),
|
|
16
16
|
advancedPublishingWorkflow: z.boolean().optional(),
|
|
17
17
|
advancedAccessControlLayer: z.union([z.boolean(), z.object({
|
|
18
18
|
teams: z.boolean().optional(),
|
|
19
19
|
privateFiles: z.boolean().optional(),
|
|
20
|
-
folderLevelPermissions: z.boolean().optional()
|
|
20
|
+
folderLevelPermissions: z.boolean().optional(),
|
|
21
|
+
hcmsFieldPermissions: z.boolean().optional()
|
|
21
22
|
})]).optional(),
|
|
22
23
|
auditLogs: z.boolean().optional(),
|
|
23
24
|
recordLocking: z.boolean().optional(),
|
|
24
|
-
fileManager: z.
|
|
25
|
+
fileManager: z.object({
|
|
25
26
|
threatDetection: z.boolean().optional()
|
|
26
|
-
})
|
|
27
|
+
}).optional()
|
|
27
28
|
})
|
|
28
29
|
}),
|
|
29
30
|
render: ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","z","BuildParam","AdminBuildParam","defineExtension","FeatureFlags","type","tags","runtimeContext","description","paramsSchema","object","features","multiTenancy","boolean","optional","advancedPublishingWorkflow","advancedAccessControlLayer","union","teams","privateFiles","folderLevelPermissions","auditLogs","recordLocking","fileManager","threatDetection","render","createElement","Fragment","paramName","value"],"sources":["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/
|
|
1
|
+
{"version":3,"names":["React","z","BuildParam","AdminBuildParam","defineExtension","FeatureFlags","type","tags","runtimeContext","description","paramsSchema","object","features","multiTenancy","boolean","optional","advancedPublishingWorkflow","advancedAccessControlLayer","union","teams","privateFiles","folderLevelPermissions","hcmsFieldPermissions","auditLogs","recordLocking","fileManager","threatDetection","render","createElement","Fragment","paramName","value"],"sources":["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 })\n }),\n render: ({ features = {} }) => {\n return (\n <>\n <BuildParam paramName=\"FeatureFlags\" value={features} />\n <AdminBuildParam paramName=\"FeatureFlags\" value={features} />\n </>\n );\n }\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,CAAC,QAAQ,KAAK;AACvB,SAASC,UAAU;AACnB,SAASC,eAAe;AACxB,SAASC,eAAe;AAExB,OAAO,MAAMC,YAAY,GAAGD,eAAe,CAAC;EACxCE,IAAI,EAAE,cAAc;EACpBC,IAAI,EAAE;IAAEC,cAAc,EAAE;EAAU,CAAC;EACnCC,WAAW,EAAE,iCAAiC;EAC9CC,YAAY,EAAET,CAAC,CAACU,MAAM,CAAC;IACnB;IACAC,QAAQ,EAAEX,CAAC,CAACU,MAAM,CAAC;MACfE,YAAY,EAAEZ,CAAC,CAACa,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;MACpCC,0BAA0B,EAAEf,CAAC,CAACa,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;MAClDE,0BAA0B,EAAEhB,CAAC,CACxBiB,KAAK,CAAC,CACHjB,CAAC,CAACa,OAAO,CAAC,CAAC,EACXb,CAAC,CAACU,MAAM,CAAC;QACLQ,KAAK,EAAElB,CAAC,CAACa,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;QAC7BK,YAAY,EAAEnB,CAAC,CAACa,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;QACpCM,sBAAsB,EAAEpB,CAAC,CAACa,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;QAC9CO,oBAAoB,EAAErB,CAAC,CAACa,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC;MAC/C,CAAC,CAAC,CACL,CAAC,CACDA,QAAQ,CAAC,CAAC;MACfQ,SAAS,EAAEtB,CAAC,CAACa,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;MACjCS,aAAa,EAAEvB,CAAC,CAACa,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;MACrCU,WAAW,EAAExB,CAAC,CACTU,MAAM,CAAC;QACJe,eAAe,EAAEzB,CAAC,CAACa,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC;MAC1C,CAAC,CAAC,CACDA,QAAQ,CAAC;IAClB,CAAC;EACL,CAAC,CAAC;EACFY,MAAM,EAAEA,CAAC;IAAEf,QAAQ,GAAG,CAAC;EAAE,CAAC,KAAK;IAC3B,oBACIZ,KAAA,CAAA4B,aAAA,CAAA5B,KAAA,CAAA6B,QAAA,qBACI7B,KAAA,CAAA4B,aAAA,CAAC1B,UAAU;MAAC4B,SAAS,EAAC,cAAc;MAACC,KAAK,EAAEnB;IAAS,CAAE,CAAC,eACxDZ,KAAA,CAAA4B,aAAA,CAACzB,eAAe;MAAC2B,SAAS,EAAC,cAAc;MAACC,KAAK,EAAEnB;IAAS,CAAE,CAC9D,CAAC;EAEX;AACJ,CAAC,CAAC","ignoreList":[]}
|
package/extensions/index.d.ts
CHANGED
|
@@ -93,24 +93,27 @@ export declare const definitions: (import("../defineExtension/index.js").Extensi
|
|
|
93
93
|
teams: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
94
94
|
privateFiles: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
95
95
|
folderLevelPermissions: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
96
|
+
hcmsFieldPermissions: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
96
97
|
}, "strip", import("zod").ZodTypeAny, {
|
|
97
98
|
teams?: boolean | undefined;
|
|
98
99
|
privateFiles?: boolean | undefined;
|
|
99
100
|
folderLevelPermissions?: boolean | undefined;
|
|
101
|
+
hcmsFieldPermissions?: boolean | undefined;
|
|
100
102
|
}, {
|
|
101
103
|
teams?: boolean | undefined;
|
|
102
104
|
privateFiles?: boolean | undefined;
|
|
103
105
|
folderLevelPermissions?: boolean | undefined;
|
|
106
|
+
hcmsFieldPermissions?: boolean | undefined;
|
|
104
107
|
}>]>>;
|
|
105
108
|
auditLogs: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
106
109
|
recordLocking: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
107
|
-
fileManager: import("zod").ZodOptional<import("zod").
|
|
110
|
+
fileManager: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
108
111
|
threatDetection: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
109
112
|
}, "strip", import("zod").ZodTypeAny, {
|
|
110
113
|
threatDetection?: boolean | undefined;
|
|
111
114
|
}, {
|
|
112
115
|
threatDetection?: boolean | undefined;
|
|
113
|
-
}
|
|
116
|
+
}>>;
|
|
114
117
|
}, "strip", import("zod").ZodTypeAny, {
|
|
115
118
|
multiTenancy?: boolean | undefined;
|
|
116
119
|
advancedPublishingWorkflow?: boolean | undefined;
|
|
@@ -118,10 +121,11 @@ export declare const definitions: (import("../defineExtension/index.js").Extensi
|
|
|
118
121
|
teams?: boolean | undefined;
|
|
119
122
|
privateFiles?: boolean | undefined;
|
|
120
123
|
folderLevelPermissions?: boolean | undefined;
|
|
124
|
+
hcmsFieldPermissions?: boolean | undefined;
|
|
121
125
|
} | undefined;
|
|
122
126
|
auditLogs?: boolean | undefined;
|
|
123
127
|
recordLocking?: boolean | undefined;
|
|
124
|
-
fileManager?:
|
|
128
|
+
fileManager?: {
|
|
125
129
|
threatDetection?: boolean | undefined;
|
|
126
130
|
} | undefined;
|
|
127
131
|
}, {
|
|
@@ -131,10 +135,11 @@ export declare const definitions: (import("../defineExtension/index.js").Extensi
|
|
|
131
135
|
teams?: boolean | undefined;
|
|
132
136
|
privateFiles?: boolean | undefined;
|
|
133
137
|
folderLevelPermissions?: boolean | undefined;
|
|
138
|
+
hcmsFieldPermissions?: boolean | undefined;
|
|
134
139
|
} | undefined;
|
|
135
140
|
auditLogs?: boolean | undefined;
|
|
136
141
|
recordLocking?: boolean | undefined;
|
|
137
|
-
fileManager?:
|
|
142
|
+
fileManager?: {
|
|
138
143
|
threatDetection?: boolean | undefined;
|
|
139
144
|
} | undefined;
|
|
140
145
|
}>;
|
|
@@ -146,10 +151,11 @@ export declare const definitions: (import("../defineExtension/index.js").Extensi
|
|
|
146
151
|
teams?: boolean | undefined;
|
|
147
152
|
privateFiles?: boolean | undefined;
|
|
148
153
|
folderLevelPermissions?: boolean | undefined;
|
|
154
|
+
hcmsFieldPermissions?: boolean | undefined;
|
|
149
155
|
} | undefined;
|
|
150
156
|
auditLogs?: boolean | undefined;
|
|
151
157
|
recordLocking?: boolean | undefined;
|
|
152
|
-
fileManager?:
|
|
158
|
+
fileManager?: {
|
|
153
159
|
threatDetection?: boolean | undefined;
|
|
154
160
|
} | undefined;
|
|
155
161
|
};
|
|
@@ -161,10 +167,11 @@ export declare const definitions: (import("../defineExtension/index.js").Extensi
|
|
|
161
167
|
teams?: boolean | undefined;
|
|
162
168
|
privateFiles?: boolean | undefined;
|
|
163
169
|
folderLevelPermissions?: boolean | undefined;
|
|
170
|
+
hcmsFieldPermissions?: boolean | undefined;
|
|
164
171
|
} | undefined;
|
|
165
172
|
auditLogs?: boolean | undefined;
|
|
166
173
|
recordLocking?: boolean | undefined;
|
|
167
|
-
fileManager?:
|
|
174
|
+
fileManager?: {
|
|
168
175
|
threatDetection?: boolean | undefined;
|
|
169
176
|
} | undefined;
|
|
170
177
|
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FeatureFlags } from "@webiny/feature-flags";
|
|
2
|
+
import { GetFeatureFlags } from "../../abstractions/index.js";
|
|
3
|
+
import { GetProjectConfig } from "../../abstractions/index.js";
|
|
4
|
+
declare class DefaultGetFeatureFlags implements GetFeatureFlags.Interface {
|
|
5
|
+
private getProjectConfig;
|
|
6
|
+
constructor(getProjectConfig: GetProjectConfig.Interface);
|
|
7
|
+
execute(): Promise<FeatureFlags>;
|
|
8
|
+
}
|
|
9
|
+
export declare const getFeatureFlags: import("@webiny/di").Implementation<typeof DefaultGetFeatureFlags>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { createImplementation } from "@webiny/di";
|
|
2
|
+
import { FeatureFlags } from "@webiny/feature-flags";
|
|
3
|
+
import { GetFeatureFlags } from "../../abstractions/index.js";
|
|
4
|
+
import { GetProjectConfig } from "../../abstractions/index.js";
|
|
5
|
+
import { FeatureFlags as FeatureFlagsExtension } from "../../extensions/FeatureFlags.js";
|
|
6
|
+
class DefaultGetFeatureFlags {
|
|
7
|
+
constructor(getProjectConfig) {
|
|
8
|
+
this.getProjectConfig = getProjectConfig;
|
|
9
|
+
}
|
|
10
|
+
async execute() {
|
|
11
|
+
const projectConfig = await this.getProjectConfig.execute({
|
|
12
|
+
tags: {
|
|
13
|
+
runtimeContext: "project"
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
const extensions = projectConfig.extensionsByType(FeatureFlagsExtension);
|
|
17
|
+
if (extensions.length === 0) {
|
|
18
|
+
return new FeatureFlags({});
|
|
19
|
+
}
|
|
20
|
+
return FeatureFlags.fromDto(extensions[0].params.features);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export const getFeatureFlags = createImplementation({
|
|
24
|
+
abstraction: GetFeatureFlags,
|
|
25
|
+
implementation: DefaultGetFeatureFlags,
|
|
26
|
+
dependencies: [GetProjectConfig]
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=GetFeatureFlags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createImplementation","FeatureFlags","GetFeatureFlags","GetProjectConfig","FeatureFlagsExtension","DefaultGetFeatureFlags","constructor","getProjectConfig","execute","projectConfig","tags","runtimeContext","extensions","extensionsByType","length","fromDto","params","features","getFeatureFlags","abstraction","implementation","dependencies"],"sources":["GetFeatureFlags.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { FeatureFlags } from \"@webiny/feature-flags\";\nimport { GetFeatureFlags } from \"~/abstractions/index.js\";\nimport { GetProjectConfig } from \"~/abstractions/index.js\";\nimport { FeatureFlags as FeatureFlagsExtension } from \"~/extensions/FeatureFlags.js\";\n\nclass DefaultGetFeatureFlags implements GetFeatureFlags.Interface {\n constructor(private getProjectConfig: GetProjectConfig.Interface) {}\n\n async execute(): Promise<FeatureFlags> {\n const projectConfig = await this.getProjectConfig.execute({\n tags: { runtimeContext: \"project\" }\n });\n\n const extensions = projectConfig.extensionsByType(FeatureFlagsExtension);\n\n if (extensions.length === 0) {\n return new FeatureFlags({});\n }\n\n return FeatureFlags.fromDto(extensions[0].params.features);\n }\n}\n\nexport const getFeatureFlags = createImplementation({\n abstraction: GetFeatureFlags,\n implementation: DefaultGetFeatureFlags,\n dependencies: [GetProjectConfig]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,eAAe;AACxB,SAASC,gBAAgB;AACzB,SAASF,YAAY,IAAIG,qBAAqB;AAE9C,MAAMC,sBAAsB,CAAsC;EAC9DC,WAAWA,CAASC,gBAA4C,EAAE;IAAA,KAA9CA,gBAA4C,GAA5CA,gBAA4C;EAAG;EAEnE,MAAMC,OAAOA,CAAA,EAA0B;IACnC,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACF,gBAAgB,CAACC,OAAO,CAAC;MACtDE,IAAI,EAAE;QAAEC,cAAc,EAAE;MAAU;IACtC,CAAC,CAAC;IAEF,MAAMC,UAAU,GAAGH,aAAa,CAACI,gBAAgB,CAACT,qBAAqB,CAAC;IAExE,IAAIQ,UAAU,CAACE,MAAM,KAAK,CAAC,EAAE;MACzB,OAAO,IAAIb,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/B;IAEA,OAAOA,YAAY,CAACc,OAAO,CAACH,UAAU,CAAC,CAAC,CAAC,CAACI,MAAM,CAACC,QAAQ,CAAC;EAC9D;AACJ;AAEA,OAAO,MAAMC,eAAe,GAAGlB,oBAAoB,CAAC;EAChDmB,WAAW,EAAEjB,eAAe;EAC5BkB,cAAc,EAAEf,sBAAsB;EACtCgB,YAAY,EAAE,CAAClB,gBAAgB;AACnC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./GetFeatureFlags.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./GetFeatureFlags.js\";\n"],"mappings":"AAAA","ignoreList":[]}
|
package/features/index.d.ts
CHANGED
package/features/index.js
CHANGED
package/features/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./hooks/index.js\";\nexport * from \"./pulumi/index.js\";\nexport * from \"./BuildApp/index.js\";\nexport * from \"./DeployApp/index.js\";\nexport * from \"./DestroyApp/index.js\";\nexport * from \"./ExportStack/index.js\";\nexport * from \"./GetApp/index.js\";\nexport * from \"./GetAppOutput/index.js\";\nexport * from \"./GetAppStackOutput/index.js\";\nexport * from \"./GetLogger/index.js\";\nexport * from \"./GetProductionEnvironments/index.js\";\nexport * from \"./GetProject/index.js\";\nexport * from \"./GetProjectConfig/index.js\";\nexport * from \"./GetProjectInfo/index.js\";\nexport * from \"./GetPulumiResourceNamePrefix/index.js\";\nexport * from \"./InstallExtension/index.js\";\nexport * from \"./IsCi/index.js\";\nexport * from \"./IsTelemetryEnabled/index.js\";\nexport * from \"./IsWcpEnabled/index.js\";\nexport * from \"./IsWebinyJsRepo/index.js\";\nexport * from \"./RefreshApp/index.js\";\nexport * from \"./RunPulumiCommand/index.js\";\nexport * from \"./ValidateProjectConfig/index.js\";\nexport * from \"./Watch/index.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./hooks/index.js\";\nexport * from \"./pulumi/index.js\";\nexport * from \"./BuildApp/index.js\";\nexport * from \"./DeployApp/index.js\";\nexport * from \"./DestroyApp/index.js\";\nexport * from \"./ExportStack/index.js\";\nexport * from \"./GetApp/index.js\";\nexport * from \"./GetAppOutput/index.js\";\nexport * from \"./GetAppStackOutput/index.js\";\nexport * from \"./GetLogger/index.js\";\nexport * from \"./GetProductionEnvironments/index.js\";\nexport * from \"./GetProject/index.js\";\nexport * from \"./GetProjectConfig/index.js\";\nexport * from \"./GetProjectInfo/index.js\";\nexport * from \"./GetPulumiResourceNamePrefix/index.js\";\nexport * from \"./InstallExtension/index.js\";\nexport * from \"./IsCi/index.js\";\nexport * from \"./IsTelemetryEnabled/index.js\";\nexport * from \"./IsWcpEnabled/index.js\";\nexport * from \"./IsWebinyJsRepo/index.js\";\nexport * from \"./RefreshApp/index.js\";\nexport * from \"./RunPulumiCommand/index.js\";\nexport * from \"./ValidateProjectConfig/index.js\";\nexport * from \"./Watch/index.js\";\nexport * from \"./GetFeatureFlags/index.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/project",
|
|
3
|
-
"version": "6.0.0-rc.
|
|
3
|
+
"version": "6.0.0-rc.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"repository": {
|
|
@@ -10,16 +10,17 @@
|
|
|
10
10
|
"description": "An SDK for managing Webiny projects.",
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@webiny/aws-sdk": "6.0.0-rc.
|
|
14
|
-
"@webiny/build-tools": "6.0.0-rc.
|
|
13
|
+
"@webiny/aws-sdk": "6.0.0-rc.3",
|
|
14
|
+
"@webiny/build-tools": "6.0.0-rc.3",
|
|
15
15
|
"@webiny/di": "0.2.3",
|
|
16
|
-
"@webiny/
|
|
17
|
-
"@webiny/
|
|
18
|
-
"@webiny/
|
|
19
|
-
"@webiny/
|
|
20
|
-
"@webiny/
|
|
21
|
-
"@webiny/
|
|
22
|
-
"@webiny/
|
|
16
|
+
"@webiny/feature-flags": "6.0.0-rc.3",
|
|
17
|
+
"@webiny/global-config": "6.0.0-rc.3",
|
|
18
|
+
"@webiny/pulumi-sdk": "6.0.0-rc.3",
|
|
19
|
+
"@webiny/react-properties": "6.0.0-rc.3",
|
|
20
|
+
"@webiny/system-requirements": "6.0.0-rc.3",
|
|
21
|
+
"@webiny/telemetry": "6.0.0-rc.3",
|
|
22
|
+
"@webiny/utils": "6.0.0-rc.3",
|
|
23
|
+
"@webiny/wcp": "6.0.0-rc.3",
|
|
23
24
|
"chalk": "4.1.2",
|
|
24
25
|
"chokidar": "4.0.3",
|
|
25
26
|
"ci-info": "4.4.0",
|
|
@@ -75,5 +76,5 @@
|
|
|
75
76
|
"access": "public",
|
|
76
77
|
"directory": "dist"
|
|
77
78
|
},
|
|
78
|
-
"gitHead": "
|
|
79
|
+
"gitHead": "228fe25e1a17f248d566bce1c33d11c291955513"
|
|
79
80
|
}
|
|
@@ -6,6 +6,7 @@ export interface WcpProjectLicenseContextValue {
|
|
|
6
6
|
canUsePrivateFiles: () => boolean;
|
|
7
7
|
canUseFileManagerThreatDetection: () => boolean;
|
|
8
8
|
canUseWorkflows: () => boolean;
|
|
9
|
+
canUseHcmsFieldPermissions: () => boolean;
|
|
9
10
|
}
|
|
10
11
|
export declare const WcpProjectLicenseProvider: React.FC<{
|
|
11
12
|
children: React.ReactNode;
|
|
@@ -24,7 +24,8 @@ export const WcpProjectLicenseProvider = ({
|
|
|
24
24
|
canUseTeams: () => license?.canUseTeams() ?? false,
|
|
25
25
|
canUsePrivateFiles: () => license?.canUsePrivateFiles() ?? false,
|
|
26
26
|
canUseFileManagerThreatDetection: () => license?.canUseFileManagerThreatDetection() ?? false,
|
|
27
|
-
canUseWorkflows: () => license?.canUseWorkflows() ?? false
|
|
27
|
+
canUseWorkflows: () => license?.canUseWorkflows() ?? false,
|
|
28
|
+
canUseHcmsFieldPermissions: () => license?.canUseHcmsFieldPermissions() ?? false
|
|
28
29
|
};
|
|
29
30
|
return /*#__PURE__*/React.createElement(WcpProjectLicenseContext.Provider, {
|
|
30
31
|
value: value
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createContext","useContext","useMemo","License","WcpProjectLicenseContext","WcpProjectLicenseProvider","children","license","licenseEnv","process","env","WCP_PROJECT_LICENSE","licenseDto","JSON","parse","fromLicenseDto","e","console","warn","hasLicense","value","canUseMultiTenancy","canUseTeams","canUsePrivateFiles","canUseFileManagerThreatDetection","canUseWorkflows","createElement","Provider","useWcpProjectLicense","context","Error"],"sources":["WcpProjectLicenseContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useMemo } from \"react\";\nimport { License } from \"@webiny/wcp\";\nimport type { DecryptedWcpProjectLicense } from \"@webiny/wcp/types.js\";\n\nexport interface WcpProjectLicenseContextValue {\n hasLicense: boolean;\n canUseMultiTenancy: () => boolean;\n canUseTeams: () => boolean;\n canUsePrivateFiles: () => boolean;\n canUseFileManagerThreatDetection: () => boolean;\n canUseWorkflows: () => boolean;\n}\n\nconst WcpProjectLicenseContext = createContext<WcpProjectLicenseContextValue | null>(null);\n\nexport const WcpProjectLicenseProvider: React.FC<{ children: React.ReactNode }> = ({\n children\n}) => {\n const license = useMemo(() => {\n const licenseEnv = process.env.WCP_PROJECT_LICENSE;\n if (!licenseEnv) {\n return null;\n }\n\n try {\n const licenseDto = JSON.parse(licenseEnv) as DecryptedWcpProjectLicense;\n return License.fromLicenseDto(licenseDto);\n } catch (e) {\n console.warn(\n \"Failed to parse WCP_PROJECT_LICENSE environment variable. Expected valid JSON with DecryptedWcpProjectLicense format:\",\n e\n );\n return null;\n }\n }, []);\n\n const hasLicense = !!license;\n\n const value: WcpProjectLicenseContextValue = {\n hasLicense,\n canUseMultiTenancy: () => hasLicense,\n canUseTeams: () => license?.canUseTeams() ?? false,\n canUsePrivateFiles: () => license?.canUsePrivateFiles() ?? false,\n canUseFileManagerThreatDetection: () =>\n license?.canUseFileManagerThreatDetection() ?? false,\n canUseWorkflows: () => license?.canUseWorkflows() ?? false\n };\n\n return (\n <WcpProjectLicenseContext.Provider value={value}>\n {children}\n </WcpProjectLicenseContext.Provider>\n );\n};\n\nexport const useWcpProjectLicense = () => {\n const context = useContext(WcpProjectLicenseContext);\n if (!context) {\n throw new Error(\"useWcpProjectLicense must be used within a WcpProjectLicenseProvider\");\n }\n return context;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,aAAa,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AACjE,SAASC,OAAO,QAAQ,aAAa;
|
|
1
|
+
{"version":3,"names":["React","createContext","useContext","useMemo","License","WcpProjectLicenseContext","WcpProjectLicenseProvider","children","license","licenseEnv","process","env","WCP_PROJECT_LICENSE","licenseDto","JSON","parse","fromLicenseDto","e","console","warn","hasLicense","value","canUseMultiTenancy","canUseTeams","canUsePrivateFiles","canUseFileManagerThreatDetection","canUseWorkflows","canUseHcmsFieldPermissions","createElement","Provider","useWcpProjectLicense","context","Error"],"sources":["WcpProjectLicenseContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useMemo } from \"react\";\nimport { License } from \"@webiny/wcp\";\nimport type { DecryptedWcpProjectLicense } from \"@webiny/wcp/types.js\";\n\nexport interface WcpProjectLicenseContextValue {\n hasLicense: boolean;\n canUseMultiTenancy: () => boolean;\n canUseTeams: () => boolean;\n canUsePrivateFiles: () => boolean;\n canUseFileManagerThreatDetection: () => boolean;\n canUseWorkflows: () => boolean;\n canUseHcmsFieldPermissions: () => boolean;\n}\n\nconst WcpProjectLicenseContext = createContext<WcpProjectLicenseContextValue | null>(null);\n\nexport const WcpProjectLicenseProvider: React.FC<{ children: React.ReactNode }> = ({\n children\n}) => {\n const license = useMemo(() => {\n const licenseEnv = process.env.WCP_PROJECT_LICENSE;\n if (!licenseEnv) {\n return null;\n }\n\n try {\n const licenseDto = JSON.parse(licenseEnv) as DecryptedWcpProjectLicense;\n return License.fromLicenseDto(licenseDto);\n } catch (e) {\n console.warn(\n \"Failed to parse WCP_PROJECT_LICENSE environment variable. Expected valid JSON with DecryptedWcpProjectLicense format:\",\n e\n );\n return null;\n }\n }, []);\n\n const hasLicense = !!license;\n\n const value: WcpProjectLicenseContextValue = {\n hasLicense,\n canUseMultiTenancy: () => hasLicense,\n canUseTeams: () => license?.canUseTeams() ?? false,\n canUsePrivateFiles: () => license?.canUsePrivateFiles() ?? false,\n canUseFileManagerThreatDetection: () =>\n license?.canUseFileManagerThreatDetection() ?? false,\n canUseWorkflows: () => license?.canUseWorkflows() ?? false,\n canUseHcmsFieldPermissions: () => license?.canUseHcmsFieldPermissions() ?? false\n };\n\n return (\n <WcpProjectLicenseContext.Provider value={value}>\n {children}\n </WcpProjectLicenseContext.Provider>\n );\n};\n\nexport const useWcpProjectLicense = () => {\n const context = useContext(WcpProjectLicenseContext);\n if (!context) {\n throw new Error(\"useWcpProjectLicense must be used within a WcpProjectLicenseProvider\");\n }\n return context;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,aAAa,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AACjE,SAASC,OAAO,QAAQ,aAAa;AAarC,MAAMC,wBAAwB,gBAAGJ,aAAa,CAAuC,IAAI,CAAC;AAE1F,OAAO,MAAMK,yBAAkE,GAAGA,CAAC;EAC/EC;AACJ,CAAC,KAAK;EACF,MAAMC,OAAO,GAAGL,OAAO,CAAC,MAAM;IAC1B,MAAMM,UAAU,GAAGC,OAAO,CAACC,GAAG,CAACC,mBAAmB;IAClD,IAAI,CAACH,UAAU,EAAE;MACb,OAAO,IAAI;IACf;IAEA,IAAI;MACA,MAAMI,UAAU,GAAGC,IAAI,CAACC,KAAK,CAACN,UAAU,CAA+B;MACvE,OAAOL,OAAO,CAACY,cAAc,CAACH,UAAU,CAAC;IAC7C,CAAC,CAAC,OAAOI,CAAC,EAAE;MACRC,OAAO,CAACC,IAAI,CACR,uHAAuH,EACvHF,CACJ,CAAC;MACD,OAAO,IAAI;IACf;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,UAAU,GAAG,CAAC,CAACZ,OAAO;EAE5B,MAAMa,KAAoC,GAAG;IACzCD,UAAU;IACVE,kBAAkB,EAAEA,CAAA,KAAMF,UAAU;IACpCG,WAAW,EAAEA,CAAA,KAAMf,OAAO,EAAEe,WAAW,CAAC,CAAC,IAAI,KAAK;IAClDC,kBAAkB,EAAEA,CAAA,KAAMhB,OAAO,EAAEgB,kBAAkB,CAAC,CAAC,IAAI,KAAK;IAChEC,gCAAgC,EAAEA,CAAA,KAC9BjB,OAAO,EAAEiB,gCAAgC,CAAC,CAAC,IAAI,KAAK;IACxDC,eAAe,EAAEA,CAAA,KAAMlB,OAAO,EAAEkB,eAAe,CAAC,CAAC,IAAI,KAAK;IAC1DC,0BAA0B,EAAEA,CAAA,KAAMnB,OAAO,EAAEmB,0BAA0B,CAAC,CAAC,IAAI;EAC/E,CAAC;EAED,oBACI3B,KAAA,CAAA4B,aAAA,CAACvB,wBAAwB,CAACwB,QAAQ;IAACR,KAAK,EAAEA;EAAM,GAC3Cd,QAC8B,CAAC;AAE5C,CAAC;AAED,OAAO,MAAMuB,oBAAoB,GAAGA,CAAA,KAAM;EACtC,MAAMC,OAAO,GAAG7B,UAAU,CAACG,wBAAwB,CAAC;EACpD,IAAI,CAAC0B,OAAO,EAAE;IACV,MAAM,IAAIC,KAAK,CAAC,sEAAsE,CAAC;EAC3F;EACA,OAAOD,OAAO;AAClB,CAAC","ignoreList":[]}
|