@webiny/project 6.4.0-beta.3 → 6.4.0-beta.4

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.
Files changed (45) hide show
  1. package/ProjectSdk.d.ts +1 -0
  2. package/ProjectSdk.js +4 -1
  3. package/ProjectSdk.js.map +1 -1
  4. package/abstractions/services/GetProjectInstallationIdService.d.ts +10 -0
  5. package/abstractions/services/GetProjectInstallationIdService.js +5 -0
  6. package/abstractions/services/GetProjectInstallationIdService.js.map +1 -0
  7. package/abstractions/services/index.d.ts +1 -0
  8. package/abstractions/services/index.js +1 -0
  9. package/createProjectSdkContainer.js +2 -1
  10. package/createProjectSdkContainer.js.map +1 -1
  11. package/extensions/AdminExtension.js +1 -1
  12. package/extensions/AdminExtension.js.map +1 -1
  13. package/extensions/ApiExtension.js +1 -1
  14. package/extensions/ApiExtension.js.map +1 -1
  15. package/extensions/Project/EnsureApiDeployedBeforeAdminBuild.js +1 -1
  16. package/extensions/Project/EnsureApiDeployedBeforeAdminBuild.js.map +1 -1
  17. package/extensions/Project/EnsureApiDeployedBeforeAdminWatch.js +1 -1
  18. package/extensions/Project/EnsureApiDeployedBeforeAdminWatch.js.map +1 -1
  19. package/extensions/Project/EnsureApiDeployedBeforeWatch.js +1 -1
  20. package/extensions/Project/EnsureApiDeployedBeforeWatch.js.map +1 -1
  21. package/extensions/Project/EnsureCoreDeployedBeforeApiDeploy.js +1 -1
  22. package/extensions/Project/EnsureCoreDeployedBeforeApiDeploy.js.map +1 -1
  23. package/extensions/Project/EnsureTelemetryEnabledForOss.js +1 -1
  24. package/extensions/Project/EnsureTelemetryEnabledForOss.js.map +1 -1
  25. package/extensions/Project/SetAdminAppEnvVarsBeforeBuild.d.ts +3 -2
  26. package/extensions/Project/SetAdminAppEnvVarsBeforeBuild.js +8 -2
  27. package/extensions/Project/SetAdminAppEnvVarsBeforeBuild.js.map +1 -1
  28. package/extensions/Project/SetAdminAppEnvVarsBeforeWatch.d.ts +3 -2
  29. package/extensions/Project/SetAdminAppEnvVarsBeforeWatch.js +8 -2
  30. package/extensions/Project/SetAdminAppEnvVarsBeforeWatch.js.map +1 -1
  31. package/extensions/Project/ValidateEncryptionBeforeDeploy.js +1 -1
  32. package/extensions/Project/ValidateEncryptionBeforeDeploy.js.map +1 -1
  33. package/extensions/Project/ValidateProductionPulumiState.js +1 -1
  34. package/extensions/Project/ValidateProductionPulumiState.js.map +1 -1
  35. package/package.json +16 -14
  36. package/services/GetProjectInstallationIdService/GetProjectInstallationIdService.d.ts +10 -0
  37. package/services/GetProjectInstallationIdService/GetProjectInstallationIdService.js +34 -0
  38. package/services/GetProjectInstallationIdService/GetProjectInstallationIdService.js.map +1 -0
  39. package/services/GetProjectInstallationIdService/index.d.ts +1 -0
  40. package/services/GetProjectInstallationIdService/index.js +1 -0
  41. package/services/LoadEnvVarsService/LoadEnvVarsService.d.ts +3 -2
  42. package/services/LoadEnvVarsService/LoadEnvVarsService.js +23 -15
  43. package/services/LoadEnvVarsService/LoadEnvVarsService.js.map +1 -1
  44. package/services/index.d.ts +1 -0
  45. package/services/index.js +1 -0
package/ProjectSdk.d.ts CHANGED
@@ -12,6 +12,7 @@ export declare class ProjectSdk {
12
12
  getProjectId(): Promise<string | null>;
13
13
  setProjectId(projectId: string, options?: SetProjectIdService.Options): Promise<void>;
14
14
  getProjectVersion(): string;
15
+ getProjectInstallationId(): string | null;
15
16
  getProjectInfo(): Promise<import("./abstractions/services/ProjectInfoService/ProjectInfoService.js").IProjectInfoServiceResult>;
16
17
  getFeatureFlags(): Promise<import("@webiny/feature-flags/FeatureFlags.js").FeatureFlags>;
17
18
  getApp(appName: GetApp.Params): Promise<import("./index.js").IAppModel>;
package/ProjectSdk.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { createProjectSdkContainer } from "./createProjectSdkContainer.js";
2
- import { BuildApp, DeployApp, DestroyApp, ExportStack, GetApp, GetAppOutput, GetAppStackOutput, GetFeatureFlags, GetProductionEnvironments, GetProject, GetProjectConfig, GetProjectIdService, GetProjectInfo, GetProjectVersionService, GetPulumiResourceNamePrefix, InstallExtension, IsCi, IsTelemetryEnabled, ListDeployedEnvironmentsService, LocalStorageService, LoggerService, RefreshApp, RunPulumiCommand, SetProjectIdService, ValidateProjectConfig, Watch, WcpService } from "./abstractions/index.js";
2
+ import { BuildApp, DeployApp, DestroyApp, ExportStack, GetApp, GetAppOutput, GetAppStackOutput, GetFeatureFlags, GetProductionEnvironments, GetProject, GetProjectConfig, GetProjectIdService, GetProjectInfo, GetProjectInstallationIdService, GetProjectVersionService, GetPulumiResourceNamePrefix, InstallExtension, IsCi, IsTelemetryEnabled, ListDeployedEnvironmentsService, LocalStorageService, LoggerService, RefreshApp, RunPulumiCommand, SetProjectIdService, ValidateProjectConfig, Watch, WcpService } from "./abstractions/index.js";
3
3
  import { getProjectSdkContextFromEnv, isValidRegionName, isValidVariantName } from "./utils/index.js";
4
4
  const projectSdkCache = new Map();
5
5
  class ProjectSdk {
@@ -40,6 +40,9 @@ class ProjectSdk {
40
40
  getProjectVersion() {
41
41
  return this.container.resolve(GetProjectVersionService).execute();
42
42
  }
43
+ getProjectInstallationId() {
44
+ return this.container.resolve(GetProjectInstallationIdService).execute();
45
+ }
43
46
  getProjectInfo() {
44
47
  return this.container.resolve(GetProjectInfo).execute();
45
48
  }
package/ProjectSdk.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectSdk.js","sources":["../src/ProjectSdk.ts"],"sourcesContent":["import { type Container } from \"@webiny/di\";\nimport { createProjectSdkContainer } from \"./createProjectSdkContainer.js\";\nimport {\n BuildApp,\n DeployApp,\n DestroyApp,\n ExportStack,\n GetApp,\n GetAppOutput,\n GetAppStackOutput,\n GetFeatureFlags,\n GetProductionEnvironments,\n GetProject,\n GetProjectIdService,\n SetProjectIdService,\n GetProjectConfig,\n GetProjectInfo,\n GetPulumiResourceNamePrefix,\n InstallExtension,\n IsCi,\n IsTelemetryEnabled,\n LocalStorageService,\n LoggerService,\n type ProjectSdkParamsService,\n RefreshApp,\n RunPulumiCommand,\n ValidateProjectConfig,\n ListDeployedEnvironmentsService,\n Watch,\n WcpService,\n GetProjectVersionService\n} from \"~/abstractions/index.js\";\nimport { type AppName } from \"~/abstractions/types.js\";\nimport {\n isValidRegionName,\n isValidVariantName,\n getProjectSdkContextFromEnv\n} from \"./utils/index.js\";\n\nconst projectSdkCache = new Map<string, ProjectSdk>();\n\nexport class ProjectSdk {\n container: Container;\n\n protected constructor(container: Container) {\n this.container = container;\n }\n\n static async init(params: Partial<ProjectSdkParamsService.Params> = {}) {\n // If no params provided, check if we have context from parent process via env var\n const envContext = getProjectSdkContextFromEnv();\n if (envContext && Object.keys(params).length === 0) {\n params = envContext;\n }\n\n const cacheKey = ProjectSdk.getCacheKey(params);\n\n if (projectSdkCache.has(cacheKey)) {\n return projectSdkCache.get(cacheKey)!;\n }\n\n const container = await createProjectSdkContainer(params);\n const instance = new ProjectSdk(container);\n projectSdkCache.set(cacheKey, instance);\n\n return instance;\n }\n\n private static getCacheKey(params: Partial<ProjectSdkParamsService.Params>): string {\n const env = params.env || \"\";\n const variant = params.variant || \"\";\n const region = params.region || \"\";\n return `${env}:${variant}:${region}`;\n }\n\n // Project-related methods.\n getProject() {\n return this.container.resolve(GetProject).execute();\n }\n\n getProjectConfig(params?: GetProjectConfig.Params) {\n return this.container.resolve(GetProjectConfig).execute(params);\n }\n\n validateProjectConfig(projectConfig: ValidateProjectConfig.Params) {\n return this.container.resolve(ValidateProjectConfig).execute(projectConfig);\n }\n\n async getProjectId() {\n return this.container.resolve(GetProjectIdService).execute();\n }\n async setProjectId(projectId: string, options: SetProjectIdService.Options = {}) {\n return this.container.resolve(SetProjectIdService).execute(projectId, options);\n }\n getProjectVersion() {\n return this.container.resolve(GetProjectVersionService).execute();\n }\n\n getProjectInfo() {\n return this.container.resolve(GetProjectInfo).execute();\n }\n\n getFeatureFlags() {\n return this.container.resolve(GetFeatureFlags).execute();\n }\n\n // App-related methods.\n async getApp(appName: GetApp.Params) {\n return this.container.resolve(GetApp).execute(appName);\n }\n\n // Here we have two stack output methods. Both do the same thing, but one is returning\n // raw Pulumi output, while the other is returning a JSON, which is far more suitable\n // in multiple places throughout the codebase (like Pulumi code, deploy hooks, ...).\n // TODO: we could probably merge these two methods into one, and have an option to return\n // TODO: raw or JSON output. For now, just writing it here.\n async getAppOutput(params: GetAppOutput.Params) {\n return this.container.resolve(GetAppOutput).execute(params);\n }\n\n async getAppStackOutput<\n TOutput extends GetAppStackOutput.StackOutput = GetAppStackOutput.StackOutput\n >(appName: AppName) {\n return this.container.resolve(GetAppStackOutput).execute<TOutput>(appName);\n }\n\n async getAppStackExport<TExport extends ExportStack.StackExport = ExportStack.StackExport>(\n params: ExportStack.Params\n ) {\n return this.container.resolve(ExportStack).execute<TExport>(params);\n }\n\n buildApp(params: BuildApp.Params) {\n return this.container.resolve(BuildApp).execute(params);\n }\n\n deployApp(params: DeployApp.Params) {\n return this.container.resolve(DeployApp).execute(params);\n }\n\n destroyApp(params: DestroyApp.Params) {\n return this.container.resolve(DestroyApp).execute(params);\n }\n\n refreshApp(params: RefreshApp.Params) {\n return this.container.resolve(RefreshApp).execute(params);\n }\n\n runPulumiCommand(params: RunPulumiCommand.Params) {\n return this.container.resolve(RunPulumiCommand).execute(params);\n }\n\n watch(params: Watch.Params) {\n return this.container.resolve(Watch).execute(params);\n }\n\n get wcp() {\n return this.container.resolve(WcpService);\n }\n\n get localStorage() {\n return this.container.resolve(LocalStorageService);\n }\n\n getPulumiResourceNamePrefix() {\n return this.container.resolve(GetPulumiResourceNamePrefix).execute();\n }\n\n getProductionEnvironments() {\n return this.container.resolve(GetProductionEnvironments).execute();\n }\n\n listDeployedEnvironments() {\n return this.container.resolve(ListDeployedEnvironmentsService).execute();\n }\n\n installExtension(source: string) {\n return this.container.resolve(InstallExtension).execute(source);\n }\n\n // Utility methods.\n isValidRegionName(name?: string) {\n return isValidRegionName(name);\n }\n\n isValidVariantName(name?: string) {\n return isValidVariantName(name);\n }\n\n isTelemetryEnabled() {\n return this.container.resolve(IsTelemetryEnabled).execute();\n }\n\n isCi() {\n return this.container.resolve(IsCi).execute();\n }\n\n getLogger() {\n return this.container.resolve(LoggerService);\n }\n\n getContainer() {\n return this.container;\n }\n}\n"],"names":["projectSdkCache","Map","ProjectSdk","container","params","envContext","getProjectSdkContextFromEnv","Object","cacheKey","createProjectSdkContainer","instance","env","variant","region","GetProject","GetProjectConfig","projectConfig","ValidateProjectConfig","GetProjectIdService","projectId","options","SetProjectIdService","GetProjectVersionService","GetProjectInfo","GetFeatureFlags","appName","GetApp","GetAppOutput","GetAppStackOutput","ExportStack","BuildApp","DeployApp","DestroyApp","RefreshApp","RunPulumiCommand","Watch","WcpService","LocalStorageService","GetPulumiResourceNamePrefix","GetProductionEnvironments","ListDeployedEnvironmentsService","source","InstallExtension","name","isValidRegionName","isValidVariantName","IsTelemetryEnabled","IsCi","LoggerService"],"mappings":";;;AAuCA,MAAMA,kBAAkB,IAAIC;AAErB,MAAMC;IAGT,YAAsBC,SAAoB,CAAE;QACxC,IAAI,CAAC,SAAS,GAAGA;IACrB;IAEA,aAAa,KAAKC,SAAkD,CAAC,CAAC,EAAE;QAEpE,MAAMC,aAAaC;QACnB,IAAID,cAAcE,AAA+B,MAA/BA,OAAO,IAAI,CAACH,QAAQ,MAAM,EACxCA,SAASC;QAGb,MAAMG,WAAWN,WAAW,WAAW,CAACE;QAExC,IAAIJ,gBAAgB,GAAG,CAACQ,WACpB,OAAOR,gBAAgB,GAAG,CAACQ;QAG/B,MAAML,YAAY,MAAMM,0BAA0BL;QAClD,MAAMM,WAAW,IAAIR,WAAWC;QAChCH,gBAAgB,GAAG,CAACQ,UAAUE;QAE9B,OAAOA;IACX;IAEA,OAAe,YAAYN,MAA+C,EAAU;QAChF,MAAMO,MAAMP,OAAO,GAAG,IAAI;QAC1B,MAAMQ,UAAUR,OAAO,OAAO,IAAI;QAClC,MAAMS,SAAST,OAAO,MAAM,IAAI;QAChC,OAAO,GAAGO,IAAI,CAAC,EAAEC,QAAQ,CAAC,EAAEC,QAAQ;IACxC;IAGA,aAAa;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC,YAAY,OAAO;IACrD;IAEA,iBAAiBV,MAAgC,EAAE;QAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACW,kBAAkB,OAAO,CAACX;IAC5D;IAEA,sBAAsBY,aAA2C,EAAE;QAC/D,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC,uBAAuB,OAAO,CAACD;IACjE;IAEA,MAAM,eAAe;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACE,qBAAqB,OAAO;IAC9D;IACA,MAAM,aAAaC,SAAiB,EAAEC,UAAuC,CAAC,CAAC,EAAE;QAC7E,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC,qBAAqB,OAAO,CAACF,WAAWC;IAC1E;IACA,oBAAoB;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACE,0BAA0B,OAAO;IACnE;IAEA,iBAAiB;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC,gBAAgB,OAAO;IACzD;IAEA,kBAAkB;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC,iBAAiB,OAAO;IAC1D;IAGA,MAAM,OAAOC,OAAsB,EAAE;QACjC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC,QAAQ,OAAO,CAACD;IAClD;IAOA,MAAM,aAAarB,MAA2B,EAAE;QAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACuB,cAAc,OAAO,CAACvB;IACxD;IAEA,MAAM,kBAEJqB,OAAgB,EAAE;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACG,mBAAmB,OAAO,CAAUH;IACtE;IAEA,MAAM,kBACFrB,MAA0B,EAC5B;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACyB,aAAa,OAAO,CAAUzB;IAChE;IAEA,SAASA,MAAuB,EAAE;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC0B,UAAU,OAAO,CAAC1B;IACpD;IAEA,UAAUA,MAAwB,EAAE;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC2B,WAAW,OAAO,CAAC3B;IACrD;IAEA,WAAWA,MAAyB,EAAE;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC4B,YAAY,OAAO,CAAC5B;IACtD;IAEA,WAAWA,MAAyB,EAAE;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC6B,YAAY,OAAO,CAAC7B;IACtD;IAEA,iBAAiBA,MAA+B,EAAE;QAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC8B,kBAAkB,OAAO,CAAC9B;IAC5D;IAEA,MAAMA,MAAoB,EAAE;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC+B,OAAO,OAAO,CAAC/B;IACjD;IAEA,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACgC;IAClC;IAEA,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC;IAClC;IAEA,8BAA8B;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC,6BAA6B,OAAO;IACtE;IAEA,4BAA4B;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC,2BAA2B,OAAO;IACpE;IAEA,2BAA2B;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC,iCAAiC,OAAO;IAC1E;IAEA,iBAAiBC,MAAc,EAAE;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC,kBAAkB,OAAO,CAACD;IAC5D;IAGA,kBAAkBE,IAAa,EAAE;QAC7B,OAAOC,kBAAkBD;IAC7B;IAEA,mBAAmBA,IAAa,EAAE;QAC9B,OAAOE,mBAAmBF;IAC9B;IAEA,qBAAqB;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACG,oBAAoB,OAAO;IAC7D;IAEA,OAAO;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC,MAAM,OAAO;IAC/C;IAEA,YAAY;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC;IAClC;IAEA,eAAe;QACX,OAAO,IAAI,CAAC,SAAS;IACzB;AACJ"}
1
+ {"version":3,"file":"ProjectSdk.js","sources":["../src/ProjectSdk.ts"],"sourcesContent":["import { type Container } from \"@webiny/di\";\nimport { createProjectSdkContainer } from \"./createProjectSdkContainer.js\";\nimport {\n BuildApp,\n DeployApp,\n DestroyApp,\n ExportStack,\n GetApp,\n GetAppOutput,\n GetAppStackOutput,\n GetFeatureFlags,\n GetProductionEnvironments,\n GetProject,\n GetProjectIdService,\n GetProjectInstallationIdService,\n SetProjectIdService,\n GetProjectConfig,\n GetProjectInfo,\n GetPulumiResourceNamePrefix,\n InstallExtension,\n IsCi,\n IsTelemetryEnabled,\n LocalStorageService,\n LoggerService,\n type ProjectSdkParamsService,\n RefreshApp,\n RunPulumiCommand,\n ValidateProjectConfig,\n ListDeployedEnvironmentsService,\n Watch,\n WcpService,\n GetProjectVersionService\n} from \"~/abstractions/index.js\";\nimport { type AppName } from \"~/abstractions/types.js\";\nimport {\n isValidRegionName,\n isValidVariantName,\n getProjectSdkContextFromEnv\n} from \"./utils/index.js\";\n\nconst projectSdkCache = new Map<string, ProjectSdk>();\n\nexport class ProjectSdk {\n container: Container;\n\n protected constructor(container: Container) {\n this.container = container;\n }\n\n static async init(params: Partial<ProjectSdkParamsService.Params> = {}) {\n // If no params provided, check if we have context from parent process via env var\n const envContext = getProjectSdkContextFromEnv();\n if (envContext && Object.keys(params).length === 0) {\n params = envContext;\n }\n\n const cacheKey = ProjectSdk.getCacheKey(params);\n\n if (projectSdkCache.has(cacheKey)) {\n return projectSdkCache.get(cacheKey)!;\n }\n\n const container = await createProjectSdkContainer(params);\n const instance = new ProjectSdk(container);\n projectSdkCache.set(cacheKey, instance);\n\n return instance;\n }\n\n private static getCacheKey(params: Partial<ProjectSdkParamsService.Params>): string {\n const env = params.env || \"\";\n const variant = params.variant || \"\";\n const region = params.region || \"\";\n return `${env}:${variant}:${region}`;\n }\n\n // Project-related methods.\n getProject() {\n return this.container.resolve(GetProject).execute();\n }\n\n getProjectConfig(params?: GetProjectConfig.Params) {\n return this.container.resolve(GetProjectConfig).execute(params);\n }\n\n validateProjectConfig(projectConfig: ValidateProjectConfig.Params) {\n return this.container.resolve(ValidateProjectConfig).execute(projectConfig);\n }\n\n async getProjectId() {\n return this.container.resolve(GetProjectIdService).execute();\n }\n async setProjectId(projectId: string, options: SetProjectIdService.Options = {}) {\n return this.container.resolve(SetProjectIdService).execute(projectId, options);\n }\n getProjectVersion() {\n return this.container.resolve(GetProjectVersionService).execute();\n }\n getProjectInstallationId() {\n return this.container.resolve(GetProjectInstallationIdService).execute();\n }\n\n getProjectInfo() {\n return this.container.resolve(GetProjectInfo).execute();\n }\n\n getFeatureFlags() {\n return this.container.resolve(GetFeatureFlags).execute();\n }\n\n // App-related methods.\n async getApp(appName: GetApp.Params) {\n return this.container.resolve(GetApp).execute(appName);\n }\n\n // Here we have two stack output methods. Both do the same thing, but one is returning\n // raw Pulumi output, while the other is returning a JSON, which is far more suitable\n // in multiple places throughout the codebase (like Pulumi code, deploy hooks, ...).\n // TODO: we could probably merge these two methods into one, and have an option to return\n // TODO: raw or JSON output. For now, just writing it here.\n async getAppOutput(params: GetAppOutput.Params) {\n return this.container.resolve(GetAppOutput).execute(params);\n }\n\n async getAppStackOutput<\n TOutput extends GetAppStackOutput.StackOutput = GetAppStackOutput.StackOutput\n >(appName: AppName) {\n return this.container.resolve(GetAppStackOutput).execute<TOutput>(appName);\n }\n\n async getAppStackExport<TExport extends ExportStack.StackExport = ExportStack.StackExport>(\n params: ExportStack.Params\n ) {\n return this.container.resolve(ExportStack).execute<TExport>(params);\n }\n\n buildApp(params: BuildApp.Params) {\n return this.container.resolve(BuildApp).execute(params);\n }\n\n deployApp(params: DeployApp.Params) {\n return this.container.resolve(DeployApp).execute(params);\n }\n\n destroyApp(params: DestroyApp.Params) {\n return this.container.resolve(DestroyApp).execute(params);\n }\n\n refreshApp(params: RefreshApp.Params) {\n return this.container.resolve(RefreshApp).execute(params);\n }\n\n runPulumiCommand(params: RunPulumiCommand.Params) {\n return this.container.resolve(RunPulumiCommand).execute(params);\n }\n\n watch(params: Watch.Params) {\n return this.container.resolve(Watch).execute(params);\n }\n\n get wcp() {\n return this.container.resolve(WcpService);\n }\n\n get localStorage() {\n return this.container.resolve(LocalStorageService);\n }\n\n getPulumiResourceNamePrefix() {\n return this.container.resolve(GetPulumiResourceNamePrefix).execute();\n }\n\n getProductionEnvironments() {\n return this.container.resolve(GetProductionEnvironments).execute();\n }\n\n listDeployedEnvironments() {\n return this.container.resolve(ListDeployedEnvironmentsService).execute();\n }\n\n installExtension(source: string) {\n return this.container.resolve(InstallExtension).execute(source);\n }\n\n // Utility methods.\n isValidRegionName(name?: string) {\n return isValidRegionName(name);\n }\n\n isValidVariantName(name?: string) {\n return isValidVariantName(name);\n }\n\n isTelemetryEnabled() {\n return this.container.resolve(IsTelemetryEnabled).execute();\n }\n\n isCi() {\n return this.container.resolve(IsCi).execute();\n }\n\n getLogger() {\n return this.container.resolve(LoggerService);\n }\n\n getContainer() {\n return this.container;\n }\n}\n"],"names":["projectSdkCache","Map","ProjectSdk","container","params","envContext","getProjectSdkContextFromEnv","Object","cacheKey","createProjectSdkContainer","instance","env","variant","region","GetProject","GetProjectConfig","projectConfig","ValidateProjectConfig","GetProjectIdService","projectId","options","SetProjectIdService","GetProjectVersionService","GetProjectInstallationIdService","GetProjectInfo","GetFeatureFlags","appName","GetApp","GetAppOutput","GetAppStackOutput","ExportStack","BuildApp","DeployApp","DestroyApp","RefreshApp","RunPulumiCommand","Watch","WcpService","LocalStorageService","GetPulumiResourceNamePrefix","GetProductionEnvironments","ListDeployedEnvironmentsService","source","InstallExtension","name","isValidRegionName","isValidVariantName","IsTelemetryEnabled","IsCi","LoggerService"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ type IGetProjectInstallationIdServiceResult = string | null;
2
+ interface IGetProjectInstallationIdService {
3
+ execute(): IGetProjectInstallationIdServiceResult;
4
+ }
5
+ export declare const GetProjectInstallationIdService: import("@webiny/di").Abstraction<IGetProjectInstallationIdService>;
6
+ export declare namespace GetProjectInstallationIdService {
7
+ type Interface = IGetProjectInstallationIdService;
8
+ type Result = IGetProjectInstallationIdServiceResult;
9
+ }
10
+ export {};
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "../createAbstraction.js";
2
+ const GetProjectInstallationIdService = createAbstraction("GetProjectInstallationIdService");
3
+ export { GetProjectInstallationIdService };
4
+
5
+ //# sourceMappingURL=GetProjectInstallationIdService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstractions/services/GetProjectInstallationIdService.js","sources":["../../../src/abstractions/services/GetProjectInstallationIdService.ts"],"sourcesContent":["import { createAbstraction } from \"~/abstractions/createAbstraction.js\";\n\ntype IGetProjectInstallationIdServiceResult = string | null;\n\ninterface IGetProjectInstallationIdService {\n execute(): IGetProjectInstallationIdServiceResult;\n}\n\nexport const GetProjectInstallationIdService = createAbstraction<IGetProjectInstallationIdService>(\n \"GetProjectInstallationIdService\"\n);\n\nexport namespace GetProjectInstallationIdService {\n export type Interface = IGetProjectInstallationIdService;\n export type Result = IGetProjectInstallationIdServiceResult;\n}\n"],"names":["GetProjectInstallationIdService","createAbstraction"],"mappings":";AAQO,MAAMA,kCAAkCC,kBAC3C"}
@@ -6,6 +6,7 @@ export { GetAppService } from "./GetAppService.js";
6
6
  export { GetCwdService } from "./GetCwdService.js";
7
7
  export { GetProjectConfigService } from "./GetProjectConfigService.js";
8
8
  export { GetProjectIdService } from "./GetProjectIdService.js";
9
+ export { GetProjectInstallationIdService } from "./GetProjectInstallationIdService.js";
9
10
  export { GetProjectService } from "./GetProjectService.js";
10
11
  export { GetProjectVersionService } from "./GetProjectVersionService.js";
11
12
  export { GetPulumiService } from "./GetPulumiService.js";
@@ -6,6 +6,7 @@ export { GetAppService } from "./GetAppService.js";
6
6
  export { GetCwdService } from "./GetCwdService.js";
7
7
  export { GetProjectConfigService } from "./GetProjectConfigService.js";
8
8
  export { GetProjectIdService } from "./GetProjectIdService.js";
9
+ export { GetProjectInstallationIdService } from "./GetProjectInstallationIdService.js";
9
10
  export { GetProjectService } from "./GetProjectService.js";
10
11
  export { GetProjectVersionService } from "./GetProjectVersionService.js";
11
12
  export { GetPulumiService } from "./GetPulumiService.js";
@@ -1,6 +1,6 @@
1
1
  import { Container } from "@webiny/di";
2
2
  import { adminAfterBuild, adminAfterDeploy, adminBeforeBuild, adminBeforeDeploy, adminBeforeWatch, afterBuild, afterDeploy, apiAfterBuild, apiAfterDeploy, apiBeforeBuild, apiBeforeDeploy, apiBeforeWatch, beforeBuild, beforeDeploy, beforeWatch, buildApp, coreAfterBuild, coreAfterDeploy, coreBeforeBuild, coreBeforeDeploy, coreBeforeWatch, deployApp, destroyApp, exportStack, getApp, getAppOutput, getAppStackOutput, getFeatureFlags, getLogger, getProductionEnvironments, getProject, getProjectConfig, getProjectInfo, getPulumiResourceNamePrefix, installExtension, isCi, isTelemetryEnabled, isWcpEnabled, isWebinyJsRepo, refreshApp, runPulumiCommand, validateProjectConfig, watch } from "./features/index.js";
3
- import { buildAppWorkspaceService, buildProjectWorkspaceService, getAppPackagesService, getAppService, getCwdService, getIsCiService, getNpmVersionService, getNpxVersionService, getProjectConfigService, getProjectIdService, getProjectService, getProjectVersionService, getPulumiService, getPulumiVersionService, getYarnVersionService, initProjectSdkService, installExtensionService, isRemotePulumiBackendService, listAppLambdaFunctionsService, listDeployedEnvironmentsService, listPackagesInAppWorkspaceService, listPackagesService, loadEnvVarsService, localStorageService, loggerService, projectInfoService, projectSdkParamsService, pulumiExportService, pulumiGetConfigPassphraseService, pulumiGetSecretsProviderService, pulumiGetStackOutputService, pulumiImportService, pulumiLoginService, pulumiSelectStackService, setProjectIdService, stdioService, uiService, validateProjectConfigService, watchedLambdaFunctionsService, wcpService } from "./services/index.js";
3
+ import { buildAppWorkspaceService, buildProjectWorkspaceService, getAppPackagesService, getAppService, getCwdService, getIsCiService, getNpmVersionService, getNpxVersionService, getProjectConfigService, getProjectIdService, getProjectInstallationIdService, getProjectService, getProjectVersionService, getPulumiService, getPulumiVersionService, getYarnVersionService, initProjectSdkService, installExtensionService, isRemotePulumiBackendService, listAppLambdaFunctionsService, listDeployedEnvironmentsService, listPackagesInAppWorkspaceService, listPackagesService, loadEnvVarsService, localStorageService, loggerService, projectInfoService, projectSdkParamsService, pulumiExportService, pulumiGetConfigPassphraseService, pulumiGetSecretsProviderService, pulumiGetStackOutputService, pulumiImportService, pulumiLoginService, pulumiSelectStackService, setProjectIdService, stdioService, uiService, validateProjectConfigService, watchedLambdaFunctionsService, wcpService } from "./services/index.js";
4
4
  import { BuildProjectWorkspaceService, GetProjectConfig, InitProjectSdkService, LoadEnvVarsService, LoggerService, ProjectSdkParamsService, ValidateProjectConfig } from "./abstractions/index.js";
5
5
  import { getFeatureFlagsWithLicense } from "./decorators/index.js";
6
6
  const createProjectSdkContainer = async (params)=>{
@@ -16,6 +16,7 @@ const createProjectSdkContainer = async (params)=>{
16
16
  container.register(getNpxVersionService).inSingletonScope();
17
17
  container.register(getProjectConfigService).inSingletonScope();
18
18
  container.register(getProjectIdService).inSingletonScope();
19
+ container.register(getProjectInstallationIdService).inSingletonScope();
19
20
  container.register(getProjectService).inSingletonScope();
20
21
  container.register(getProjectVersionService).inSingletonScope();
21
22
  container.register(getPulumiService).inSingletonScope();
@@ -1 +1 @@
1
- {"version":3,"file":"createProjectSdkContainer.js","sources":["../src/createProjectSdkContainer.ts"],"sourcesContent":["import { Container } from \"@webiny/di\";\nimport {\n beforeBuild,\n afterBuild,\n beforeWatch,\n beforeDeploy,\n afterDeploy,\n adminAfterBuild,\n adminAfterDeploy,\n adminBeforeBuild,\n adminBeforeDeploy,\n adminBeforeWatch,\n apiAfterBuild,\n apiAfterDeploy,\n apiBeforeBuild,\n apiBeforeDeploy,\n apiBeforeWatch,\n buildApp,\n coreAfterBuild,\n coreAfterDeploy,\n coreBeforeBuild,\n coreBeforeDeploy,\n coreBeforeWatch,\n deployApp,\n destroyApp,\n exportStack,\n getApp,\n getAppOutput,\n getAppStackOutput,\n getLogger,\n getProductionEnvironments,\n getProject,\n getProjectConfig,\n getProjectInfo,\n getPulumiResourceNamePrefix,\n getFeatureFlags,\n installExtension,\n isCi,\n isTelemetryEnabled,\n isWcpEnabled,\n isWebinyJsRepo,\n refreshApp,\n runPulumiCommand,\n validateProjectConfig,\n watch\n} from \"./features/index.js\";\n\nimport {\n getAppService,\n buildAppWorkspaceService,\n buildProjectWorkspaceService,\n watchedLambdaFunctionsService,\n getAppPackagesService,\n getCwdService,\n getIsCiService,\n getNpmVersionService,\n getNpxVersionService,\n getProjectConfigService,\n getProjectIdService,\n getProjectService,\n getProjectVersionService,\n getPulumiService,\n getPulumiVersionService,\n getYarnVersionService,\n initProjectSdkService,\n installExtensionService,\n isRemotePulumiBackendService,\n listAppLambdaFunctionsService,\n listDeployedEnvironmentsService,\n listPackagesInAppWorkspaceService,\n listPackagesService,\n loadEnvVarsService,\n localStorageService,\n loggerService,\n projectInfoService,\n projectSdkParamsService,\n pulumiGetConfigPassphraseService,\n pulumiGetSecretsProviderService,\n pulumiExportService,\n pulumiImportService,\n pulumiGetStackOutputService,\n pulumiLoginService,\n pulumiSelectStackService,\n setProjectIdService,\n stdioService,\n uiService,\n validateProjectConfigService,\n wcpService\n} from \"./services/index.js\";\n\nimport {\n GetProjectConfig,\n BuildProjectWorkspaceService,\n ProjectSdkParamsService,\n LoadEnvVarsService,\n ValidateProjectConfig,\n LoggerService,\n InitProjectSdkService\n} from \"~/abstractions/index.js\";\nimport { getFeatureFlagsWithLicense } from \"./decorators/index.js\";\n\nexport const createProjectSdkContainer = async (\n params: Partial<ProjectSdkParamsService.Params>\n) => {\n const container = new Container();\n\n // Services.\n container.register(getAppService).inSingletonScope();\n container.register(buildAppWorkspaceService).inSingletonScope();\n container.register(buildProjectWorkspaceService).inSingletonScope();\n container.register(watchedLambdaFunctionsService).inSingletonScope();\n container.register(getAppPackagesService).inSingletonScope();\n container.register(getCwdService).inSingletonScope();\n container.register(getIsCiService).inSingletonScope();\n container.register(getNpmVersionService).inSingletonScope();\n container.register(getNpxVersionService).inSingletonScope();\n container.register(getProjectConfigService).inSingletonScope();\n container.register(getProjectIdService).inSingletonScope();\n container.register(getProjectService).inSingletonScope();\n container.register(getProjectVersionService).inSingletonScope();\n container.register(getPulumiService).inSingletonScope();\n container.register(getPulumiVersionService).inSingletonScope();\n container.register(getYarnVersionService).inSingletonScope();\n container.register(initProjectSdkService).inSingletonScope();\n container.register(installExtensionService).inSingletonScope();\n container.register(isRemotePulumiBackendService).inSingletonScope();\n container.register(listAppLambdaFunctionsService).inSingletonScope();\n container.register(listDeployedEnvironmentsService).inSingletonScope();\n container.register(listPackagesInAppWorkspaceService).inSingletonScope();\n container.register(listPackagesService).inSingletonScope();\n container.register(loadEnvVarsService).inSingletonScope();\n container.register(localStorageService).inSingletonScope();\n container.register(loggerService).inSingletonScope();\n container.register(projectInfoService).inSingletonScope();\n container.register(projectSdkParamsService).inSingletonScope();\n container.register(pulumiGetConfigPassphraseService).inSingletonScope();\n container.register(pulumiGetSecretsProviderService).inSingletonScope();\n container.register(pulumiExportService).inSingletonScope();\n container.register(pulumiImportService).inSingletonScope();\n container.register(pulumiGetStackOutputService).inSingletonScope();\n container.register(pulumiLoginService).inSingletonScope();\n container.register(pulumiSelectStackService).inSingletonScope();\n container.register(setProjectIdService).inSingletonScope();\n container.register(stdioService).inSingletonScope();\n container.register(uiService).inSingletonScope();\n container.register(validateProjectConfigService).inSingletonScope();\n container.register(wcpService).inSingletonScope();\n\n // Features.\n container.register(buildApp).inSingletonScope();\n container.register(deployApp).inSingletonScope();\n container.register(destroyApp).inSingletonScope();\n container.register(exportStack).inSingletonScope();\n container.register(getApp).inSingletonScope();\n container.register(getAppOutput).inSingletonScope();\n container.register(getAppStackOutput).inSingletonScope();\n container.register(getLogger).inSingletonScope();\n container.register(getProductionEnvironments).inSingletonScope();\n container.register(getProject).inSingletonScope();\n container.register(getProjectConfig).inSingletonScope();\n container.register(getProjectInfo).inSingletonScope();\n container.register(getPulumiResourceNamePrefix).inSingletonScope();\n container.register(installExtension).inSingletonScope();\n container.register(isCi).inSingletonScope();\n container.register(isTelemetryEnabled).inSingletonScope();\n container.register(isWcpEnabled).inSingletonScope();\n container.register(isWebinyJsRepo).inSingletonScope();\n container.register(refreshApp).inSingletonScope();\n container.register(runPulumiCommand).inSingletonScope();\n container.register(getFeatureFlags).inSingletonScope();\n container.register(validateProjectConfig).inSingletonScope();\n container.register(watch).inSingletonScope();\n container.registerDecorator(getFeatureFlagsWithLicense);\n\n // Hooks.\n container.registerComposite(beforeBuild);\n container.registerComposite(afterBuild);\n container.registerComposite(beforeWatch);\n container.registerComposite(beforeDeploy);\n container.registerComposite(afterDeploy);\n container.registerComposite(apiBeforeBuild);\n container.registerComposite(apiBeforeDeploy);\n container.registerComposite(apiBeforeWatch);\n container.registerComposite(apiAfterBuild);\n container.registerComposite(apiAfterDeploy);\n container.registerComposite(adminBeforeBuild);\n container.registerComposite(adminBeforeDeploy);\n container.registerComposite(adminBeforeWatch);\n container.registerComposite(adminAfterBuild);\n container.registerComposite(adminAfterDeploy);\n container.registerComposite(coreBeforeBuild);\n container.registerComposite(coreBeforeDeploy);\n container.registerComposite(coreBeforeWatch);\n container.registerComposite(coreAfterBuild);\n container.registerComposite(coreAfterDeploy);\n\n // Initialize project SDK.\n container.resolve(ProjectSdkParamsService).set(params);\n await container.resolve(LoadEnvVarsService).execute();\n await container.resolve(BuildProjectWorkspaceService).execute();\n\n const logger = container.resolve(LoggerService);\n logger.log(\"Initializing Project SDK container...\");\n\n const projectExtensions = await container.resolve(GetProjectConfig).execute({\n tags: { runtimeContext: \"project\" }\n });\n\n await container.resolve(ValidateProjectConfig).execute(projectExtensions);\n\n // Initialize project SDK extensions (env vars, hooks, pulumi, implementations, decorators).\n await container.resolve(InitProjectSdkService).execute(container);\n\n return container;\n};\n"],"names":["createProjectSdkContainer","params","container","Container","getAppService","buildAppWorkspaceService","buildProjectWorkspaceService","watchedLambdaFunctionsService","getAppPackagesService","getCwdService","getIsCiService","getNpmVersionService","getNpxVersionService","getProjectConfigService","getProjectIdService","getProjectService","getProjectVersionService","getPulumiService","getPulumiVersionService","getYarnVersionService","initProjectSdkService","installExtensionService","isRemotePulumiBackendService","listAppLambdaFunctionsService","listDeployedEnvironmentsService","listPackagesInAppWorkspaceService","listPackagesService","loadEnvVarsService","localStorageService","loggerService","projectInfoService","projectSdkParamsService","pulumiGetConfigPassphraseService","pulumiGetSecretsProviderService","pulumiExportService","pulumiImportService","pulumiGetStackOutputService","pulumiLoginService","pulumiSelectStackService","setProjectIdService","stdioService","uiService","validateProjectConfigService","wcpService","buildApp","deployApp","destroyApp","exportStack","getApp","getAppOutput","getAppStackOutput","getLogger","getProductionEnvironments","getProject","getProjectConfig","getProjectInfo","getPulumiResourceNamePrefix","installExtension","isCi","isTelemetryEnabled","isWcpEnabled","isWebinyJsRepo","refreshApp","runPulumiCommand","getFeatureFlags","validateProjectConfig","watch","getFeatureFlagsWithLicense","beforeBuild","afterBuild","beforeWatch","beforeDeploy","afterDeploy","apiBeforeBuild","apiBeforeDeploy","apiBeforeWatch","apiAfterBuild","apiAfterDeploy","adminBeforeBuild","adminBeforeDeploy","adminBeforeWatch","adminAfterBuild","adminAfterDeploy","coreBeforeBuild","coreBeforeDeploy","coreBeforeWatch","coreAfterBuild","coreAfterDeploy","ProjectSdkParamsService","LoadEnvVarsService","BuildProjectWorkspaceService","logger","LoggerService","projectExtensions","GetProjectConfig","ValidateProjectConfig","InitProjectSdkService"],"mappings":"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"}
1
+ {"version":3,"file":"createProjectSdkContainer.js","sources":["../src/createProjectSdkContainer.ts"],"sourcesContent":["import { Container } from \"@webiny/di\";\nimport {\n beforeBuild,\n afterBuild,\n beforeWatch,\n beforeDeploy,\n afterDeploy,\n adminAfterBuild,\n adminAfterDeploy,\n adminBeforeBuild,\n adminBeforeDeploy,\n adminBeforeWatch,\n apiAfterBuild,\n apiAfterDeploy,\n apiBeforeBuild,\n apiBeforeDeploy,\n apiBeforeWatch,\n buildApp,\n coreAfterBuild,\n coreAfterDeploy,\n coreBeforeBuild,\n coreBeforeDeploy,\n coreBeforeWatch,\n deployApp,\n destroyApp,\n exportStack,\n getApp,\n getAppOutput,\n getAppStackOutput,\n getLogger,\n getProductionEnvironments,\n getProject,\n getProjectConfig,\n getProjectInfo,\n getPulumiResourceNamePrefix,\n getFeatureFlags,\n installExtension,\n isCi,\n isTelemetryEnabled,\n isWcpEnabled,\n isWebinyJsRepo,\n refreshApp,\n runPulumiCommand,\n validateProjectConfig,\n watch\n} from \"./features/index.js\";\n\nimport {\n getAppService,\n buildAppWorkspaceService,\n buildProjectWorkspaceService,\n watchedLambdaFunctionsService,\n getAppPackagesService,\n getCwdService,\n getIsCiService,\n getNpmVersionService,\n getNpxVersionService,\n getProjectConfigService,\n getProjectIdService,\n getProjectInstallationIdService,\n getProjectService,\n getProjectVersionService,\n getPulumiService,\n getPulumiVersionService,\n getYarnVersionService,\n initProjectSdkService,\n installExtensionService,\n isRemotePulumiBackendService,\n listAppLambdaFunctionsService,\n listDeployedEnvironmentsService,\n listPackagesInAppWorkspaceService,\n listPackagesService,\n loadEnvVarsService,\n localStorageService,\n loggerService,\n projectInfoService,\n projectSdkParamsService,\n pulumiGetConfigPassphraseService,\n pulumiGetSecretsProviderService,\n pulumiExportService,\n pulumiImportService,\n pulumiGetStackOutputService,\n pulumiLoginService,\n pulumiSelectStackService,\n setProjectIdService,\n stdioService,\n uiService,\n validateProjectConfigService,\n wcpService\n} from \"./services/index.js\";\n\nimport {\n GetProjectConfig,\n BuildProjectWorkspaceService,\n ProjectSdkParamsService,\n LoadEnvVarsService,\n ValidateProjectConfig,\n LoggerService,\n InitProjectSdkService\n} from \"~/abstractions/index.js\";\nimport { getFeatureFlagsWithLicense } from \"./decorators/index.js\";\n\nexport const createProjectSdkContainer = async (\n params: Partial<ProjectSdkParamsService.Params>\n) => {\n const container = new Container();\n\n // Services.\n container.register(getAppService).inSingletonScope();\n container.register(buildAppWorkspaceService).inSingletonScope();\n container.register(buildProjectWorkspaceService).inSingletonScope();\n container.register(watchedLambdaFunctionsService).inSingletonScope();\n container.register(getAppPackagesService).inSingletonScope();\n container.register(getCwdService).inSingletonScope();\n container.register(getIsCiService).inSingletonScope();\n container.register(getNpmVersionService).inSingletonScope();\n container.register(getNpxVersionService).inSingletonScope();\n container.register(getProjectConfigService).inSingletonScope();\n container.register(getProjectIdService).inSingletonScope();\n container.register(getProjectInstallationIdService).inSingletonScope();\n container.register(getProjectService).inSingletonScope();\n container.register(getProjectVersionService).inSingletonScope();\n container.register(getPulumiService).inSingletonScope();\n container.register(getPulumiVersionService).inSingletonScope();\n container.register(getYarnVersionService).inSingletonScope();\n container.register(initProjectSdkService).inSingletonScope();\n container.register(installExtensionService).inSingletonScope();\n container.register(isRemotePulumiBackendService).inSingletonScope();\n container.register(listAppLambdaFunctionsService).inSingletonScope();\n container.register(listDeployedEnvironmentsService).inSingletonScope();\n container.register(listPackagesInAppWorkspaceService).inSingletonScope();\n container.register(listPackagesService).inSingletonScope();\n container.register(loadEnvVarsService).inSingletonScope();\n container.register(localStorageService).inSingletonScope();\n container.register(loggerService).inSingletonScope();\n container.register(projectInfoService).inSingletonScope();\n container.register(projectSdkParamsService).inSingletonScope();\n container.register(pulumiGetConfigPassphraseService).inSingletonScope();\n container.register(pulumiGetSecretsProviderService).inSingletonScope();\n container.register(pulumiExportService).inSingletonScope();\n container.register(pulumiImportService).inSingletonScope();\n container.register(pulumiGetStackOutputService).inSingletonScope();\n container.register(pulumiLoginService).inSingletonScope();\n container.register(pulumiSelectStackService).inSingletonScope();\n container.register(setProjectIdService).inSingletonScope();\n container.register(stdioService).inSingletonScope();\n container.register(uiService).inSingletonScope();\n container.register(validateProjectConfigService).inSingletonScope();\n container.register(wcpService).inSingletonScope();\n\n // Features.\n container.register(buildApp).inSingletonScope();\n container.register(deployApp).inSingletonScope();\n container.register(destroyApp).inSingletonScope();\n container.register(exportStack).inSingletonScope();\n container.register(getApp).inSingletonScope();\n container.register(getAppOutput).inSingletonScope();\n container.register(getAppStackOutput).inSingletonScope();\n container.register(getLogger).inSingletonScope();\n container.register(getProductionEnvironments).inSingletonScope();\n container.register(getProject).inSingletonScope();\n container.register(getProjectConfig).inSingletonScope();\n container.register(getProjectInfo).inSingletonScope();\n container.register(getPulumiResourceNamePrefix).inSingletonScope();\n container.register(installExtension).inSingletonScope();\n container.register(isCi).inSingletonScope();\n container.register(isTelemetryEnabled).inSingletonScope();\n container.register(isWcpEnabled).inSingletonScope();\n container.register(isWebinyJsRepo).inSingletonScope();\n container.register(refreshApp).inSingletonScope();\n container.register(runPulumiCommand).inSingletonScope();\n container.register(getFeatureFlags).inSingletonScope();\n container.register(validateProjectConfig).inSingletonScope();\n container.register(watch).inSingletonScope();\n container.registerDecorator(getFeatureFlagsWithLicense);\n\n // Hooks.\n container.registerComposite(beforeBuild);\n container.registerComposite(afterBuild);\n container.registerComposite(beforeWatch);\n container.registerComposite(beforeDeploy);\n container.registerComposite(afterDeploy);\n container.registerComposite(apiBeforeBuild);\n container.registerComposite(apiBeforeDeploy);\n container.registerComposite(apiBeforeWatch);\n container.registerComposite(apiAfterBuild);\n container.registerComposite(apiAfterDeploy);\n container.registerComposite(adminBeforeBuild);\n container.registerComposite(adminBeforeDeploy);\n container.registerComposite(adminBeforeWatch);\n container.registerComposite(adminAfterBuild);\n container.registerComposite(adminAfterDeploy);\n container.registerComposite(coreBeforeBuild);\n container.registerComposite(coreBeforeDeploy);\n container.registerComposite(coreBeforeWatch);\n container.registerComposite(coreAfterBuild);\n container.registerComposite(coreAfterDeploy);\n\n // Initialize project SDK.\n container.resolve(ProjectSdkParamsService).set(params);\n await container.resolve(LoadEnvVarsService).execute();\n await container.resolve(BuildProjectWorkspaceService).execute();\n\n const logger = container.resolve(LoggerService);\n logger.log(\"Initializing Project SDK container...\");\n\n const projectExtensions = await container.resolve(GetProjectConfig).execute({\n tags: { runtimeContext: \"project\" }\n });\n\n await container.resolve(ValidateProjectConfig).execute(projectExtensions);\n\n // Initialize project SDK extensions (env vars, hooks, pulumi, implementations, decorators).\n await container.resolve(InitProjectSdkService).execute(container);\n\n return container;\n};\n"],"names":["createProjectSdkContainer","params","container","Container","getAppService","buildAppWorkspaceService","buildProjectWorkspaceService","watchedLambdaFunctionsService","getAppPackagesService","getCwdService","getIsCiService","getNpmVersionService","getNpxVersionService","getProjectConfigService","getProjectIdService","getProjectInstallationIdService","getProjectService","getProjectVersionService","getPulumiService","getPulumiVersionService","getYarnVersionService","initProjectSdkService","installExtensionService","isRemotePulumiBackendService","listAppLambdaFunctionsService","listDeployedEnvironmentsService","listPackagesInAppWorkspaceService","listPackagesService","loadEnvVarsService","localStorageService","loggerService","projectInfoService","projectSdkParamsService","pulumiGetConfigPassphraseService","pulumiGetSecretsProviderService","pulumiExportService","pulumiImportService","pulumiGetStackOutputService","pulumiLoginService","pulumiSelectStackService","setProjectIdService","stdioService","uiService","validateProjectConfigService","wcpService","buildApp","deployApp","destroyApp","exportStack","getApp","getAppOutput","getAppStackOutput","getLogger","getProductionEnvironments","getProject","getProjectConfig","getProjectInfo","getPulumiResourceNamePrefix","installExtension","isCi","isTelemetryEnabled","isWcpEnabled","isWebinyJsRepo","refreshApp","runPulumiCommand","getFeatureFlags","validateProjectConfig","watch","getFeatureFlagsWithLicense","beforeBuild","afterBuild","beforeWatch","beforeDeploy","afterDeploy","apiBeforeBuild","apiBeforeDeploy","apiBeforeWatch","apiAfterBuild","apiAfterDeploy","adminBeforeBuild","adminBeforeDeploy","adminBeforeWatch","adminAfterBuild","adminAfterDeploy","coreBeforeBuild","coreBeforeDeploy","coreBeforeWatch","coreAfterBuild","coreAfterDeploy","ProjectSdkParamsService","LoadEnvVarsService","BuildProjectWorkspaceService","logger","LoggerService","projectExtensions","GetProjectConfig","ValidateProjectConfig","InitProjectSdkService"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { defineExtension, zodSrcPath } from "./index.js";
2
- import { ExtensionSrcResolver } from "@webiny/project";
2
+ import { ExtensionSrcResolver } from "../index.js";
3
3
  import { z } from "zod";
4
4
  import path from "path";
5
5
  import { Node, Project } from "ts-morph";
@@ -1 +1 @@
1
- {"version":3,"file":"extensions/AdminExtension.js","sources":["../../src/extensions/AdminExtension.ts"],"sourcesContent":["import { defineExtension, zodSrcPath } from \"~/extensions/index.js\";\nimport { ExtensionSrcResolver } from \"@webiny/project\";\nimport { z } from \"zod\";\nimport path from \"path\";\nimport { type JsxFragment, Node, Project } from \"ts-morph\";\nimport crypto from \"crypto\";\n\nexport const AdminExtension = defineExtension({\n type: \"Admin/Extension\",\n tags: { runtimeContext: \"app-build\", appName: \"admin\" },\n description: \"Extend the Admin application with custom functionality.\",\n multiple: true,\n paramsSchema: ({ project }) => {\n return z.object({\n src: zodSrcPath({ project }),\n exportName: z.string().optional()\n });\n },\n async build(params, ctx) {\n const extensionsTsxFilePath = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"admin\", \"src\", \"Extensions.tsx\")\n .toString();\n\n const { src: extensionFilePath } = params;\n\n // Resolve to absolute path for file operations.\n const absoluteExtensionFilePath = ExtensionSrcResolver.resolvePath(\n extensionFilePath,\n ctx.project\n );\n\n const extensionFileName = path.basename(absoluteExtensionFilePath);\n\n // Export name can be customized or defaults to the file name without extension.\n const exportName = params.exportName ?? path.parse(extensionFileName).name;\n\n // Generate a constant hash-based component name to avoid using timestamps.\n const hash = crypto.createHash(\"sha256\").update(extensionFilePath).digest(\"hex\");\n const componentName = `AdminExtension_${hash.slice(-10)}`;\n\n const project = new Project();\n\n const importPath = path\n .relative(path.dirname(extensionsTsxFilePath), absoluteExtensionFilePath)\n .replace(/\\.tsx?$/, \".js\");\n\n project.addSourceFileAtPath(extensionsTsxFilePath);\n\n const source = project.getSourceFileOrThrow(extensionsTsxFilePath);\n\n const existingImportDeclaration = source.getImportDeclaration(importPath);\n if (existingImportDeclaration) {\n return;\n }\n\n // Check if the extension file has a default export or named export.\n const extensionProject = new Project();\n extensionProject.addSourceFileAtPath(absoluteExtensionFilePath);\n const extensionSource = extensionProject.getSourceFileOrThrow(absoluteExtensionFilePath);\n const hasDefaultExport = extensionSource.getDefaultExportSymbol() !== undefined;\n\n let index = 1;\n\n const importDeclarations = source.getImportDeclarations();\n if (importDeclarations.length) {\n const last = importDeclarations[importDeclarations.length - 1];\n index = last.getChildIndex() + 1;\n }\n\n // Import as default export if available, otherwise import named export.\n if (hasDefaultExport) {\n source.insertImportDeclaration(index, {\n defaultImport: componentName,\n moduleSpecifier: importPath\n });\n } else {\n source.insertImportDeclaration(index, {\n namedImports: [{ name: exportName, alias: componentName }],\n moduleSpecifier: importPath\n });\n }\n\n const extensionsIdentifier = source.getFirstDescendant(node => {\n if (!Node.isIdentifier(node)) {\n return false;\n }\n\n return node.getText() === \"Extensions\";\n });\n\n if (!extensionsIdentifier) {\n throw new Error(\n `Could not find the \"Extensions\" React component in \"${extensionsTsxFilePath}\". Did you maybe change the name of the component?`\n );\n }\n\n const extensionsArrowFn = extensionsIdentifier.getNextSibling(node =>\n Node.isArrowFunction(node)\n );\n if (!extensionsArrowFn) {\n throw new Error(\n `Could not find the \"Extensions\" React component in \"${extensionsTsxFilePath}\". Did you maybe change its definition? It should be an arrow function.`\n );\n }\n\n const extensionsArrowFnFragment = extensionsArrowFn.getFirstDescendant(node => {\n return Node.isJsxFragment(node);\n }) as JsxFragment;\n\n const extensionsArrowFnFragmentChildrenText = extensionsArrowFnFragment\n .getFullText()\n .replace(\"<>\", \"\")\n .replace(\"</>\", \"\")\n .trim();\n\n extensionsArrowFnFragment.replaceWithText(\n `<><${componentName}/>${extensionsArrowFnFragmentChildrenText}</>`\n );\n\n await source.save();\n }\n});\n"],"names":["AdminExtension","defineExtension","project","z","zodSrcPath","params","ctx","extensionsTsxFilePath","extensionFilePath","absoluteExtensionFilePath","ExtensionSrcResolver","extensionFileName","path","exportName","hash","crypto","componentName","Project","importPath","source","existingImportDeclaration","extensionProject","extensionSource","hasDefaultExport","undefined","index","importDeclarations","last","extensionsIdentifier","node","Node","Error","extensionsArrowFn","extensionsArrowFnFragment","extensionsArrowFnFragmentChildrenText"],"mappings":";;;;;;AAOO,MAAMA,iBAAiBC,gBAAgB;IAC1C,MAAM;IACN,MAAM;QAAE,gBAAgB;QAAa,SAAS;IAAQ;IACtD,aAAa;IACb,UAAU;IACV,cAAc,CAAC,EAAEC,OAAO,EAAE,GACfC,EAAE,MAAM,CAAC;YACZ,KAAKC,WAAW;gBAAEF;YAAQ;YAC1B,YAAYC,EAAE,MAAM,GAAG,QAAQ;QACnC;IAEJ,MAAM,OAAME,MAAM,EAAEC,GAAG;QACnB,MAAMC,wBAAwBD,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,CAC1D,IAAI,CAAC,QAAQ,SAAS,OAAO,kBAC7B,QAAQ;QAEb,MAAM,EAAE,KAAKE,iBAAiB,EAAE,GAAGH;QAGnC,MAAMI,4BAA4BC,qBAAqB,WAAW,CAC9DF,mBACAF,IAAI,OAAO;QAGf,MAAMK,oBAAoBC,KAAK,QAAQ,CAACH;QAGxC,MAAMI,aAAaR,OAAO,UAAU,IAAIO,KAAK,KAAK,CAACD,mBAAmB,IAAI;QAG1E,MAAMG,OAAOC,SAAAA,UAAiB,CAAC,UAAU,MAAM,CAACP,mBAAmB,MAAM,CAAC;QAC1E,MAAMQ,gBAAgB,CAAC,eAAe,EAAEF,KAAK,KAAK,CAAC,MAAM;QAEzD,MAAMZ,UAAU,IAAIe;QAEpB,MAAMC,aAAaN,KAAAA,QACN,CAACA,KAAK,OAAO,CAACL,wBAAwBE,2BAC9C,OAAO,CAAC,WAAW;QAExBP,QAAQ,mBAAmB,CAACK;QAE5B,MAAMY,SAASjB,QAAQ,oBAAoB,CAACK;QAE5C,MAAMa,4BAA4BD,OAAO,oBAAoB,CAACD;QAC9D,IAAIE,2BACA;QAIJ,MAAMC,mBAAmB,IAAIJ;QAC7BI,iBAAiB,mBAAmB,CAACZ;QACrC,MAAMa,kBAAkBD,iBAAiB,oBAAoB,CAACZ;QAC9D,MAAMc,mBAAmBD,AAA6CE,WAA7CF,gBAAgB,sBAAsB;QAE/D,IAAIG,QAAQ;QAEZ,MAAMC,qBAAqBP,OAAO,qBAAqB;QACvD,IAAIO,mBAAmB,MAAM,EAAE;YAC3B,MAAMC,OAAOD,kBAAkB,CAACA,mBAAmB,MAAM,GAAG,EAAE;YAC9DD,QAAQE,KAAK,aAAa,KAAK;QACnC;QAGA,IAAIJ,kBACAJ,OAAO,uBAAuB,CAACM,OAAO;YAClC,eAAeT;YACf,iBAAiBE;QACrB;aAEAC,OAAO,uBAAuB,CAACM,OAAO;YAClC,cAAc;gBAAC;oBAAE,MAAMZ;oBAAY,OAAOG;gBAAc;aAAE;YAC1D,iBAAiBE;QACrB;QAGJ,MAAMU,uBAAuBT,OAAO,kBAAkB,CAACU,CAAAA;YACnD,IAAI,CAACC,KAAK,YAAY,CAACD,OACnB,OAAO;YAGX,OAAOA,AAAmB,iBAAnBA,KAAK,OAAO;QACvB;QAEA,IAAI,CAACD,sBACD,MAAM,IAAIG,MACN,CAAC,oDAAoD,EAAExB,sBAAsB,kDAAkD,CAAC;QAIxI,MAAMyB,oBAAoBJ,qBAAqB,cAAc,CAACC,CAAAA,OAC1DC,KAAK,eAAe,CAACD;QAEzB,IAAI,CAACG,mBACD,MAAM,IAAID,MACN,CAAC,oDAAoD,EAAExB,sBAAsB,uEAAuE,CAAC;QAI7J,MAAM0B,4BAA4BD,kBAAkB,kBAAkB,CAACH,CAAAA,OAC5DC,KAAK,aAAa,CAACD;QAG9B,MAAMK,wCAAwCD,0BACzC,WAAW,GACX,OAAO,CAAC,MAAM,IACd,OAAO,CAAC,OAAO,IACf,IAAI;QAETA,0BAA0B,eAAe,CACrC,CAAC,GAAG,EAAEjB,cAAc,EAAE,EAAEkB,sCAAsC,GAAG,CAAC;QAGtE,MAAMf,OAAO,IAAI;IACrB;AACJ"}
1
+ {"version":3,"file":"extensions/AdminExtension.js","sources":["../../src/extensions/AdminExtension.ts"],"sourcesContent":["import { defineExtension, zodSrcPath } from \"~/extensions/index.js\";\nimport { ExtensionSrcResolver } from \"~/index.js\";\nimport { z } from \"zod\";\nimport path from \"path\";\nimport { type JsxFragment, Node, Project } from \"ts-morph\";\nimport crypto from \"crypto\";\n\nexport const AdminExtension = defineExtension({\n type: \"Admin/Extension\",\n tags: { runtimeContext: \"app-build\", appName: \"admin\" },\n description: \"Extend the Admin application with custom functionality.\",\n multiple: true,\n paramsSchema: ({ project }) => {\n return z.object({\n src: zodSrcPath({ project }),\n exportName: z.string().optional()\n });\n },\n async build(params, ctx) {\n const extensionsTsxFilePath = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"admin\", \"src\", \"Extensions.tsx\")\n .toString();\n\n const { src: extensionFilePath } = params;\n\n // Resolve to absolute path for file operations.\n const absoluteExtensionFilePath = ExtensionSrcResolver.resolvePath(\n extensionFilePath,\n ctx.project\n );\n\n const extensionFileName = path.basename(absoluteExtensionFilePath);\n\n // Export name can be customized or defaults to the file name without extension.\n const exportName = params.exportName ?? path.parse(extensionFileName).name;\n\n // Generate a constant hash-based component name to avoid using timestamps.\n const hash = crypto.createHash(\"sha256\").update(extensionFilePath).digest(\"hex\");\n const componentName = `AdminExtension_${hash.slice(-10)}`;\n\n const project = new Project();\n\n const importPath = path\n .relative(path.dirname(extensionsTsxFilePath), absoluteExtensionFilePath)\n .replace(/\\.tsx?$/, \".js\");\n\n project.addSourceFileAtPath(extensionsTsxFilePath);\n\n const source = project.getSourceFileOrThrow(extensionsTsxFilePath);\n\n const existingImportDeclaration = source.getImportDeclaration(importPath);\n if (existingImportDeclaration) {\n return;\n }\n\n // Check if the extension file has a default export or named export.\n const extensionProject = new Project();\n extensionProject.addSourceFileAtPath(absoluteExtensionFilePath);\n const extensionSource = extensionProject.getSourceFileOrThrow(absoluteExtensionFilePath);\n const hasDefaultExport = extensionSource.getDefaultExportSymbol() !== undefined;\n\n let index = 1;\n\n const importDeclarations = source.getImportDeclarations();\n if (importDeclarations.length) {\n const last = importDeclarations[importDeclarations.length - 1];\n index = last.getChildIndex() + 1;\n }\n\n // Import as default export if available, otherwise import named export.\n if (hasDefaultExport) {\n source.insertImportDeclaration(index, {\n defaultImport: componentName,\n moduleSpecifier: importPath\n });\n } else {\n source.insertImportDeclaration(index, {\n namedImports: [{ name: exportName, alias: componentName }],\n moduleSpecifier: importPath\n });\n }\n\n const extensionsIdentifier = source.getFirstDescendant(node => {\n if (!Node.isIdentifier(node)) {\n return false;\n }\n\n return node.getText() === \"Extensions\";\n });\n\n if (!extensionsIdentifier) {\n throw new Error(\n `Could not find the \"Extensions\" React component in \"${extensionsTsxFilePath}\". Did you maybe change the name of the component?`\n );\n }\n\n const extensionsArrowFn = extensionsIdentifier.getNextSibling(node =>\n Node.isArrowFunction(node)\n );\n if (!extensionsArrowFn) {\n throw new Error(\n `Could not find the \"Extensions\" React component in \"${extensionsTsxFilePath}\". Did you maybe change its definition? It should be an arrow function.`\n );\n }\n\n const extensionsArrowFnFragment = extensionsArrowFn.getFirstDescendant(node => {\n return Node.isJsxFragment(node);\n }) as JsxFragment;\n\n const extensionsArrowFnFragmentChildrenText = extensionsArrowFnFragment\n .getFullText()\n .replace(\"<>\", \"\")\n .replace(\"</>\", \"\")\n .trim();\n\n extensionsArrowFnFragment.replaceWithText(\n `<><${componentName}/>${extensionsArrowFnFragmentChildrenText}</>`\n );\n\n await source.save();\n }\n});\n"],"names":["AdminExtension","defineExtension","project","z","zodSrcPath","params","ctx","extensionsTsxFilePath","extensionFilePath","absoluteExtensionFilePath","ExtensionSrcResolver","extensionFileName","path","exportName","hash","crypto","componentName","Project","importPath","source","existingImportDeclaration","extensionProject","extensionSource","hasDefaultExport","undefined","index","importDeclarations","last","extensionsIdentifier","node","Node","Error","extensionsArrowFn","extensionsArrowFnFragment","extensionsArrowFnFragmentChildrenText"],"mappings":";;;;;;AAOO,MAAMA,iBAAiBC,gBAAgB;IAC1C,MAAM;IACN,MAAM;QAAE,gBAAgB;QAAa,SAAS;IAAQ;IACtD,aAAa;IACb,UAAU;IACV,cAAc,CAAC,EAAEC,OAAO,EAAE,GACfC,EAAE,MAAM,CAAC;YACZ,KAAKC,WAAW;gBAAEF;YAAQ;YAC1B,YAAYC,EAAE,MAAM,GAAG,QAAQ;QACnC;IAEJ,MAAM,OAAME,MAAM,EAAEC,GAAG;QACnB,MAAMC,wBAAwBD,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,CAC1D,IAAI,CAAC,QAAQ,SAAS,OAAO,kBAC7B,QAAQ;QAEb,MAAM,EAAE,KAAKE,iBAAiB,EAAE,GAAGH;QAGnC,MAAMI,4BAA4BC,qBAAqB,WAAW,CAC9DF,mBACAF,IAAI,OAAO;QAGf,MAAMK,oBAAoBC,KAAK,QAAQ,CAACH;QAGxC,MAAMI,aAAaR,OAAO,UAAU,IAAIO,KAAK,KAAK,CAACD,mBAAmB,IAAI;QAG1E,MAAMG,OAAOC,SAAAA,UAAiB,CAAC,UAAU,MAAM,CAACP,mBAAmB,MAAM,CAAC;QAC1E,MAAMQ,gBAAgB,CAAC,eAAe,EAAEF,KAAK,KAAK,CAAC,MAAM;QAEzD,MAAMZ,UAAU,IAAIe;QAEpB,MAAMC,aAAaN,KAAAA,QACN,CAACA,KAAK,OAAO,CAACL,wBAAwBE,2BAC9C,OAAO,CAAC,WAAW;QAExBP,QAAQ,mBAAmB,CAACK;QAE5B,MAAMY,SAASjB,QAAQ,oBAAoB,CAACK;QAE5C,MAAMa,4BAA4BD,OAAO,oBAAoB,CAACD;QAC9D,IAAIE,2BACA;QAIJ,MAAMC,mBAAmB,IAAIJ;QAC7BI,iBAAiB,mBAAmB,CAACZ;QACrC,MAAMa,kBAAkBD,iBAAiB,oBAAoB,CAACZ;QAC9D,MAAMc,mBAAmBD,AAA6CE,WAA7CF,gBAAgB,sBAAsB;QAE/D,IAAIG,QAAQ;QAEZ,MAAMC,qBAAqBP,OAAO,qBAAqB;QACvD,IAAIO,mBAAmB,MAAM,EAAE;YAC3B,MAAMC,OAAOD,kBAAkB,CAACA,mBAAmB,MAAM,GAAG,EAAE;YAC9DD,QAAQE,KAAK,aAAa,KAAK;QACnC;QAGA,IAAIJ,kBACAJ,OAAO,uBAAuB,CAACM,OAAO;YAClC,eAAeT;YACf,iBAAiBE;QACrB;aAEAC,OAAO,uBAAuB,CAACM,OAAO;YAClC,cAAc;gBAAC;oBAAE,MAAMZ;oBAAY,OAAOG;gBAAc;aAAE;YAC1D,iBAAiBE;QACrB;QAGJ,MAAMU,uBAAuBT,OAAO,kBAAkB,CAACU,CAAAA;YACnD,IAAI,CAACC,KAAK,YAAY,CAACD,OACnB,OAAO;YAGX,OAAOA,AAAmB,iBAAnBA,KAAK,OAAO;QACvB;QAEA,IAAI,CAACD,sBACD,MAAM,IAAIG,MACN,CAAC,oDAAoD,EAAExB,sBAAsB,kDAAkD,CAAC;QAIxI,MAAMyB,oBAAoBJ,qBAAqB,cAAc,CAACC,CAAAA,OAC1DC,KAAK,eAAe,CAACD;QAEzB,IAAI,CAACG,mBACD,MAAM,IAAID,MACN,CAAC,oDAAoD,EAAExB,sBAAsB,uEAAuE,CAAC;QAI7J,MAAM0B,4BAA4BD,kBAAkB,kBAAkB,CAACH,CAAAA,OAC5DC,KAAK,aAAa,CAACD;QAG9B,MAAMK,wCAAwCD,0BACzC,WAAW,GACX,OAAO,CAAC,MAAM,IACd,OAAO,CAAC,OAAO,IACf,IAAI;QAETA,0BAA0B,eAAe,CACrC,CAAC,GAAG,EAAEjB,cAAc,EAAE,EAAEkB,sCAAsC,GAAG,CAAC;QAGtE,MAAMf,OAAO,IAAI;IACrB;AACJ"}
@@ -1,5 +1,5 @@
1
1
  import { defineExtension, zodSrcPath } from "./index.js";
2
- import { ExtensionSrcResolver } from "@webiny/project";
2
+ import { ExtensionSrcResolver } from "../index.js";
3
3
  import { z } from "zod";
4
4
  import path from "path";
5
5
  import { Node, Project } from "ts-morph";
@@ -1 +1 @@
1
- {"version":3,"file":"extensions/ApiExtension.js","sources":["../../src/extensions/ApiExtension.ts"],"sourcesContent":["import { defineExtension, zodSrcPath } from \"~/extensions/index.js\";\nimport { ExtensionSrcResolver } from \"@webiny/project\";\nimport { z } from \"zod\";\nimport path from \"path\";\nimport { Node, Project, ArrayLiteralExpression } from \"ts-morph\";\nimport crypto from \"crypto\";\n\nexport const ApiExtension = defineExtension({\n type: \"Api/Extension\",\n tags: { runtimeContext: \"app-build\", appName: \"api\" },\n description: \"Add any API extension.\",\n multiple: true,\n paramsSchema: ({ project }) => {\n return z.object({\n src: zodSrcPath({ project }),\n exportName: z.string().optional()\n });\n },\n async build(params, ctx) {\n const extensionsTsFilePath = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"api\", \"graphql\", \"src\", \"extensions.ts\")\n .toString();\n\n const { src: extensionFilePath } = params;\n\n // Resolve to absolute path for file operations.\n const absoluteExtensionFilePath = ExtensionSrcResolver.resolvePath(\n extensionFilePath,\n ctx.project\n );\n\n const extensionFileName = path.basename(absoluteExtensionFilePath);\n\n // Export name is always the file name without extension.\n const exportName = params.exportName ?? path.parse(extensionFileName).name;\n\n // Alias name is \"ApiExtension_\" + hash of the file path. This way we\n // avoid potential naming conflicts and keep the identifier constant.\n const hash = crypto.createHash(\"sha256\").update(extensionFilePath).digest(\"hex\");\n const exportNameAlias = `ApiExtension_${hash.slice(-10)}`;\n\n // Calculate import path relative to `extensions.ts` file.\n const importPath = path\n .relative(path.dirname(extensionsTsFilePath), absoluteExtensionFilePath)\n .replace(/\\.tsx?$/, \".js\");\n\n const project = new Project();\n project.addSourceFileAtPath(extensionsTsFilePath);\n\n const source = project.getSourceFileOrThrow(extensionsTsFilePath);\n\n const existingImportDeclaration = source.getImportDeclaration(importPath);\n if (existingImportDeclaration) {\n return;\n }\n\n let index = 1;\n\n const importDeclarations = source.getImportDeclarations();\n if (importDeclarations.length) {\n const last = importDeclarations[importDeclarations.length - 1];\n index = last.getChildIndex() + 1;\n }\n\n // Check if the file has a default export using AST parsing.\n const extensionProject = new Project();\n extensionProject.addSourceFileAtPath(absoluteExtensionFilePath);\n const extensionSource = extensionProject.getSourceFileOrThrow(absoluteExtensionFilePath);\n const hasDefaultExport = extensionSource.getDefaultExportSymbol() !== undefined;\n\n // Support both default and named exports.\n if (hasDefaultExport) {\n source.insertImportDeclaration(index, {\n defaultImport: exportNameAlias,\n moduleSpecifier: importPath\n });\n } else {\n source.insertImportDeclaration(index, {\n namedImports: [{ name: exportName, alias: exportNameAlias }],\n moduleSpecifier: importPath\n });\n }\n\n const pluginsArray = source.getFirstDescendant(node =>\n Node.isArrayLiteralExpression(node)\n ) as ArrayLiteralExpression;\n\n pluginsArray.addElement(\n `\\ncreateRegisterExtensionPlugin(ctx => {\\n\\tregisterExtension(ctx.container, ${exportNameAlias});\\n})`\n );\n\n {\n let index = 1;\n\n const importDeclarations = source.getImportDeclarations();\n if (importDeclarations.length) {\n const last = importDeclarations[importDeclarations.length - 1];\n index = last.getChildIndex() + 1;\n }\n\n const registerExtensionPluginImportPath =\n \"@webiny/handler/plugins/RegisterExtensionPlugin.js\";\n const existingContextPluginImport = source.getImportDeclaration(\n registerExtensionPluginImportPath\n );\n if (!existingContextPluginImport) {\n source.insertImportDeclaration(index, {\n namedImports: [\"createRegisterExtensionPlugin\"],\n moduleSpecifier: registerExtensionPluginImportPath\n });\n }\n }\n\n await source.save();\n }\n});\n"],"names":["ApiExtension","defineExtension","project","z","zodSrcPath","params","ctx","extensionsTsFilePath","extensionFilePath","absoluteExtensionFilePath","ExtensionSrcResolver","extensionFileName","path","exportName","hash","crypto","exportNameAlias","importPath","Project","source","existingImportDeclaration","index","importDeclarations","last","extensionProject","extensionSource","hasDefaultExport","undefined","pluginsArray","node","Node","registerExtensionPluginImportPath","existingContextPluginImport"],"mappings":";;;;;;AAOO,MAAMA,eAAeC,gBAAgB;IACxC,MAAM;IACN,MAAM;QAAE,gBAAgB;QAAa,SAAS;IAAM;IACpD,aAAa;IACb,UAAU;IACV,cAAc,CAAC,EAAEC,OAAO,EAAE,GACfC,EAAE,MAAM,CAAC;YACZ,KAAKC,WAAW;gBAAEF;YAAQ;YAC1B,YAAYC,EAAE,MAAM,GAAG,QAAQ;QACnC;IAEJ,MAAM,OAAME,MAAM,EAAEC,GAAG;QACnB,MAAMC,uBAAuBD,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,CACzD,IAAI,CAAC,QAAQ,OAAO,WAAW,OAAO,iBACtC,QAAQ;QAEb,MAAM,EAAE,KAAKE,iBAAiB,EAAE,GAAGH;QAGnC,MAAMI,4BAA4BC,qBAAqB,WAAW,CAC9DF,mBACAF,IAAI,OAAO;QAGf,MAAMK,oBAAoBC,KAAK,QAAQ,CAACH;QAGxC,MAAMI,aAAaR,OAAO,UAAU,IAAIO,KAAK,KAAK,CAACD,mBAAmB,IAAI;QAI1E,MAAMG,OAAOC,SAAAA,UAAiB,CAAC,UAAU,MAAM,CAACP,mBAAmB,MAAM,CAAC;QAC1E,MAAMQ,kBAAkB,CAAC,aAAa,EAAEF,KAAK,KAAK,CAAC,MAAM;QAGzD,MAAMG,aAAaL,KAAAA,QACN,CAACA,KAAK,OAAO,CAACL,uBAAuBE,2BAC7C,OAAO,CAAC,WAAW;QAExB,MAAMP,UAAU,IAAIgB;QACpBhB,QAAQ,mBAAmB,CAACK;QAE5B,MAAMY,SAASjB,QAAQ,oBAAoB,CAACK;QAE5C,MAAMa,4BAA4BD,OAAO,oBAAoB,CAACF;QAC9D,IAAIG,2BACA;QAGJ,IAAIC,QAAQ;QAEZ,MAAMC,qBAAqBH,OAAO,qBAAqB;QACvD,IAAIG,mBAAmB,MAAM,EAAE;YAC3B,MAAMC,OAAOD,kBAAkB,CAACA,mBAAmB,MAAM,GAAG,EAAE;YAC9DD,QAAQE,KAAK,aAAa,KAAK;QACnC;QAGA,MAAMC,mBAAmB,IAAIN;QAC7BM,iBAAiB,mBAAmB,CAACf;QACrC,MAAMgB,kBAAkBD,iBAAiB,oBAAoB,CAACf;QAC9D,MAAMiB,mBAAmBD,AAA6CE,WAA7CF,gBAAgB,sBAAsB;QAG/D,IAAIC,kBACAP,OAAO,uBAAuB,CAACE,OAAO;YAClC,eAAeL;YACf,iBAAiBC;QACrB;aAEAE,OAAO,uBAAuB,CAACE,OAAO;YAClC,cAAc;gBAAC;oBAAE,MAAMR;oBAAY,OAAOG;gBAAgB;aAAE;YAC5D,iBAAiBC;QACrB;QAGJ,MAAMW,eAAeT,OAAO,kBAAkB,CAACU,CAAAA,OAC3CC,KAAK,wBAAwB,CAACD;QAGlCD,aAAa,UAAU,CACnB,CAAC,6EAA6E,EAAEZ,gBAAgB,MAAM,CAAC;QAG3G;YACI,IAAIK,QAAQ;YAEZ,MAAMC,qBAAqBH,OAAO,qBAAqB;YACvD,IAAIG,mBAAmB,MAAM,EAAE;gBAC3B,MAAMC,OAAOD,kBAAkB,CAACA,mBAAmB,MAAM,GAAG,EAAE;gBAC9DD,QAAQE,KAAK,aAAa,KAAK;YACnC;YAEA,MAAMQ,oCACF;YACJ,MAAMC,8BAA8Bb,OAAO,oBAAoB,CAC3DY;YAEJ,IAAI,CAACC,6BACDb,OAAO,uBAAuB,CAACE,OAAO;gBAClC,cAAc;oBAAC;iBAAgC;gBAC/C,iBAAiBU;YACrB;QAER;QAEA,MAAMZ,OAAO,IAAI;IACrB;AACJ"}
1
+ {"version":3,"file":"extensions/ApiExtension.js","sources":["../../src/extensions/ApiExtension.ts"],"sourcesContent":["import { defineExtension, zodSrcPath } from \"~/extensions/index.js\";\nimport { ExtensionSrcResolver } from \"~/index.js\";\nimport { z } from \"zod\";\nimport path from \"path\";\nimport { Node, Project, ArrayLiteralExpression } from \"ts-morph\";\nimport crypto from \"crypto\";\n\nexport const ApiExtension = defineExtension({\n type: \"Api/Extension\",\n tags: { runtimeContext: \"app-build\", appName: \"api\" },\n description: \"Add any API extension.\",\n multiple: true,\n paramsSchema: ({ project }) => {\n return z.object({\n src: zodSrcPath({ project }),\n exportName: z.string().optional()\n });\n },\n async build(params, ctx) {\n const extensionsTsFilePath = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"api\", \"graphql\", \"src\", \"extensions.ts\")\n .toString();\n\n const { src: extensionFilePath } = params;\n\n // Resolve to absolute path for file operations.\n const absoluteExtensionFilePath = ExtensionSrcResolver.resolvePath(\n extensionFilePath,\n ctx.project\n );\n\n const extensionFileName = path.basename(absoluteExtensionFilePath);\n\n // Export name is always the file name without extension.\n const exportName = params.exportName ?? path.parse(extensionFileName).name;\n\n // Alias name is \"ApiExtension_\" + hash of the file path. This way we\n // avoid potential naming conflicts and keep the identifier constant.\n const hash = crypto.createHash(\"sha256\").update(extensionFilePath).digest(\"hex\");\n const exportNameAlias = `ApiExtension_${hash.slice(-10)}`;\n\n // Calculate import path relative to `extensions.ts` file.\n const importPath = path\n .relative(path.dirname(extensionsTsFilePath), absoluteExtensionFilePath)\n .replace(/\\.tsx?$/, \".js\");\n\n const project = new Project();\n project.addSourceFileAtPath(extensionsTsFilePath);\n\n const source = project.getSourceFileOrThrow(extensionsTsFilePath);\n\n const existingImportDeclaration = source.getImportDeclaration(importPath);\n if (existingImportDeclaration) {\n return;\n }\n\n let index = 1;\n\n const importDeclarations = source.getImportDeclarations();\n if (importDeclarations.length) {\n const last = importDeclarations[importDeclarations.length - 1];\n index = last.getChildIndex() + 1;\n }\n\n // Check if the file has a default export using AST parsing.\n const extensionProject = new Project();\n extensionProject.addSourceFileAtPath(absoluteExtensionFilePath);\n const extensionSource = extensionProject.getSourceFileOrThrow(absoluteExtensionFilePath);\n const hasDefaultExport = extensionSource.getDefaultExportSymbol() !== undefined;\n\n // Support both default and named exports.\n if (hasDefaultExport) {\n source.insertImportDeclaration(index, {\n defaultImport: exportNameAlias,\n moduleSpecifier: importPath\n });\n } else {\n source.insertImportDeclaration(index, {\n namedImports: [{ name: exportName, alias: exportNameAlias }],\n moduleSpecifier: importPath\n });\n }\n\n const pluginsArray = source.getFirstDescendant(node =>\n Node.isArrayLiteralExpression(node)\n ) as ArrayLiteralExpression;\n\n pluginsArray.addElement(\n `\\ncreateRegisterExtensionPlugin(ctx => {\\n\\tregisterExtension(ctx.container, ${exportNameAlias});\\n})`\n );\n\n {\n let index = 1;\n\n const importDeclarations = source.getImportDeclarations();\n if (importDeclarations.length) {\n const last = importDeclarations[importDeclarations.length - 1];\n index = last.getChildIndex() + 1;\n }\n\n const registerExtensionPluginImportPath =\n \"@webiny/handler/plugins/RegisterExtensionPlugin.js\";\n const existingContextPluginImport = source.getImportDeclaration(\n registerExtensionPluginImportPath\n );\n if (!existingContextPluginImport) {\n source.insertImportDeclaration(index, {\n namedImports: [\"createRegisterExtensionPlugin\"],\n moduleSpecifier: registerExtensionPluginImportPath\n });\n }\n }\n\n await source.save();\n }\n});\n"],"names":["ApiExtension","defineExtension","project","z","zodSrcPath","params","ctx","extensionsTsFilePath","extensionFilePath","absoluteExtensionFilePath","ExtensionSrcResolver","extensionFileName","path","exportName","hash","crypto","exportNameAlias","importPath","Project","source","existingImportDeclaration","index","importDeclarations","last","extensionProject","extensionSource","hasDefaultExport","undefined","pluginsArray","node","Node","registerExtensionPluginImportPath","existingContextPluginImport"],"mappings":";;;;;;AAOO,MAAMA,eAAeC,gBAAgB;IACxC,MAAM;IACN,MAAM;QAAE,gBAAgB;QAAa,SAAS;IAAM;IACpD,aAAa;IACb,UAAU;IACV,cAAc,CAAC,EAAEC,OAAO,EAAE,GACfC,EAAE,MAAM,CAAC;YACZ,KAAKC,WAAW;gBAAEF;YAAQ;YAC1B,YAAYC,EAAE,MAAM,GAAG,QAAQ;QACnC;IAEJ,MAAM,OAAME,MAAM,EAAEC,GAAG;QACnB,MAAMC,uBAAuBD,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,CACzD,IAAI,CAAC,QAAQ,OAAO,WAAW,OAAO,iBACtC,QAAQ;QAEb,MAAM,EAAE,KAAKE,iBAAiB,EAAE,GAAGH;QAGnC,MAAMI,4BAA4BC,qBAAqB,WAAW,CAC9DF,mBACAF,IAAI,OAAO;QAGf,MAAMK,oBAAoBC,KAAK,QAAQ,CAACH;QAGxC,MAAMI,aAAaR,OAAO,UAAU,IAAIO,KAAK,KAAK,CAACD,mBAAmB,IAAI;QAI1E,MAAMG,OAAOC,SAAAA,UAAiB,CAAC,UAAU,MAAM,CAACP,mBAAmB,MAAM,CAAC;QAC1E,MAAMQ,kBAAkB,CAAC,aAAa,EAAEF,KAAK,KAAK,CAAC,MAAM;QAGzD,MAAMG,aAAaL,KAAAA,QACN,CAACA,KAAK,OAAO,CAACL,uBAAuBE,2BAC7C,OAAO,CAAC,WAAW;QAExB,MAAMP,UAAU,IAAIgB;QACpBhB,QAAQ,mBAAmB,CAACK;QAE5B,MAAMY,SAASjB,QAAQ,oBAAoB,CAACK;QAE5C,MAAMa,4BAA4BD,OAAO,oBAAoB,CAACF;QAC9D,IAAIG,2BACA;QAGJ,IAAIC,QAAQ;QAEZ,MAAMC,qBAAqBH,OAAO,qBAAqB;QACvD,IAAIG,mBAAmB,MAAM,EAAE;YAC3B,MAAMC,OAAOD,kBAAkB,CAACA,mBAAmB,MAAM,GAAG,EAAE;YAC9DD,QAAQE,KAAK,aAAa,KAAK;QACnC;QAGA,MAAMC,mBAAmB,IAAIN;QAC7BM,iBAAiB,mBAAmB,CAACf;QACrC,MAAMgB,kBAAkBD,iBAAiB,oBAAoB,CAACf;QAC9D,MAAMiB,mBAAmBD,AAA6CE,WAA7CF,gBAAgB,sBAAsB;QAG/D,IAAIC,kBACAP,OAAO,uBAAuB,CAACE,OAAO;YAClC,eAAeL;YACf,iBAAiBC;QACrB;aAEAE,OAAO,uBAAuB,CAACE,OAAO;YAClC,cAAc;gBAAC;oBAAE,MAAMR;oBAAY,OAAOG;gBAAgB;aAAE;YAC5D,iBAAiBC;QACrB;QAGJ,MAAMW,eAAeT,OAAO,kBAAkB,CAACU,CAAAA,OAC3CC,KAAK,wBAAwB,CAACD;QAGlCD,aAAa,UAAU,CACnB,CAAC,6EAA6E,EAAEZ,gBAAgB,MAAM,CAAC;QAG3G;YACI,IAAIK,QAAQ;YAEZ,MAAMC,qBAAqBH,OAAO,qBAAqB;YACvD,IAAIG,mBAAmB,MAAM,EAAE;gBAC3B,MAAMC,OAAOD,kBAAkB,CAACA,mBAAmB,MAAM,GAAG,EAAE;gBAC9DD,QAAQE,KAAK,aAAa,KAAK;YACnC;YAEA,MAAMQ,oCACF;YACJ,MAAMC,8BAA8Bb,OAAO,oBAAoB,CAC3DY;YAEJ,IAAI,CAACC,6BACDb,OAAO,uBAAuB,CAACE,OAAO;gBAClC,cAAc;oBAAC;iBAAgC;gBAC/C,iBAAiBU;YACrB;QAER;QAEA,MAAMZ,OAAO,IAAI;IACrB;AACJ"}
@@ -1,5 +1,5 @@
1
1
  import { AdminBeforeBuild, GetAppStackOutput, ProjectSdkParamsService } from "../../abstractions/index.js";
2
- import { GracefulError } from "@webiny/project";
2
+ import { GracefulError } from "../../index.js";
3
3
  const NO_DEPLOYMENT_CHECKS_FLAG_NAME = "--no-deployment-checks";
4
4
  class EnsureApiDeployedBeforeAdminBuildImpl {
5
5
  constructor(getAppStackOutput, projectSdkParamsService){
@@ -1 +1 @@
1
- {"version":3,"file":"extensions/Project/EnsureApiDeployedBeforeAdminBuild.js","sources":["../../../src/extensions/Project/EnsureApiDeployedBeforeAdminBuild.ts"],"sourcesContent":["import {\n AdminBeforeBuild,\n GetAppStackOutput,\n ProjectSdkParamsService\n} from \"~/abstractions/index.js\";\nimport { GracefulError } from \"@webiny/project\";\n\nconst NO_DEPLOYMENT_CHECKS_FLAG_NAME = \"--no-deployment-checks\";\n\nclass EnsureApiDeployedBeforeAdminBuildImpl implements AdminBeforeBuild.Interface {\n constructor(\n private getAppStackOutput: GetAppStackOutput.Interface,\n private projectSdkParamsService: ProjectSdkParamsService.Interface\n ) {}\n\n async execute(params: AdminBeforeBuild.Params) {\n // Just in case, we want to allow users to skip the system requirements check.\n if (params.deploymentChecks === false) {\n return;\n }\n\n const output = await this.getAppStackOutput.execute(\"api\");\n const apiDeployed = output && Object.keys(output).length > 0;\n if (apiDeployed) {\n return;\n }\n\n const sdkParams = this.projectSdkParamsService.get();\n const cmd = `yarn webiny deploy api --env ${sdkParams.env}`;\n\n const error = new Error(\"Cannot build Admin before deploying API.\");\n const message = [\n `Before building %s, please build %s first by running: %s.`,\n `If you think this is a mistake, you can also try skipping`,\n `deployment checks by appending the %s flag.`,\n `Learn more: https://webiny.link/deployment-checks`\n ].join(\" \");\n\n throw GracefulError.from(\n error,\n message,\n \"Admin\",\n \"API\",\n cmd,\n NO_DEPLOYMENT_CHECKS_FLAG_NAME\n );\n }\n}\n\nexport const EnsureApiDeployedBeforeAdminBuild = AdminBeforeBuild.createImplementation({\n implementation: EnsureApiDeployedBeforeAdminBuildImpl,\n dependencies: [GetAppStackOutput, ProjectSdkParamsService]\n});\n"],"names":["NO_DEPLOYMENT_CHECKS_FLAG_NAME","EnsureApiDeployedBeforeAdminBuildImpl","getAppStackOutput","projectSdkParamsService","params","output","apiDeployed","Object","sdkParams","cmd","error","Error","message","GracefulError","EnsureApiDeployedBeforeAdminBuild","AdminBeforeBuild","GetAppStackOutput","ProjectSdkParamsService"],"mappings":";;AAOA,MAAMA,iCAAiC;AAEvC,MAAMC;IACF,YACYC,iBAA8C,EAC9CC,uBAA0D,CACpE;aAFUD,iBAAiB,GAAjBA;aACAC,uBAAuB,GAAvBA;IACT;IAEH,MAAM,QAAQC,MAA+B,EAAE;QAE3C,IAAIA,AAA4B,UAA5BA,OAAO,gBAAgB,EACvB;QAGJ,MAAMC,SAAS,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;QACpD,MAAMC,cAAcD,UAAUE,OAAO,IAAI,CAACF,QAAQ,MAAM,GAAG;QAC3D,IAAIC,aACA;QAGJ,MAAME,YAAY,IAAI,CAAC,uBAAuB,CAAC,GAAG;QAClD,MAAMC,MAAM,CAAC,6BAA6B,EAAED,UAAU,GAAG,EAAE;QAE3D,MAAME,QAAQ,IAAIC,MAAM;QACxB,MAAMC,UAAU;QAOhB,MAAMC,cAAc,IAAI,CACpBH,OACAE,SACA,SACA,OACAH,KACAT;IAER;AACJ;AAEO,MAAMc,oCAAoCC,iBAAiB,oBAAoB,CAAC;IACnF,gBAAgBd;IAChB,cAAc;QAACe;QAAmBC;KAAwB;AAC9D"}
1
+ {"version":3,"file":"extensions/Project/EnsureApiDeployedBeforeAdminBuild.js","sources":["../../../src/extensions/Project/EnsureApiDeployedBeforeAdminBuild.ts"],"sourcesContent":["import {\n AdminBeforeBuild,\n GetAppStackOutput,\n ProjectSdkParamsService\n} from \"~/abstractions/index.js\";\nimport { GracefulError } from \"~/index.js\";\n\nconst NO_DEPLOYMENT_CHECKS_FLAG_NAME = \"--no-deployment-checks\";\n\nclass EnsureApiDeployedBeforeAdminBuildImpl implements AdminBeforeBuild.Interface {\n constructor(\n private getAppStackOutput: GetAppStackOutput.Interface,\n private projectSdkParamsService: ProjectSdkParamsService.Interface\n ) {}\n\n async execute(params: AdminBeforeBuild.Params) {\n // Just in case, we want to allow users to skip the system requirements check.\n if (params.deploymentChecks === false) {\n return;\n }\n\n const output = await this.getAppStackOutput.execute(\"api\");\n const apiDeployed = output && Object.keys(output).length > 0;\n if (apiDeployed) {\n return;\n }\n\n const sdkParams = this.projectSdkParamsService.get();\n const cmd = `yarn webiny deploy api --env ${sdkParams.env}`;\n\n const error = new Error(\"Cannot build Admin before deploying API.\");\n const message = [\n `Before building %s, please build %s first by running: %s.`,\n `If you think this is a mistake, you can also try skipping`,\n `deployment checks by appending the %s flag.`,\n `Learn more: https://webiny.link/deployment-checks`\n ].join(\" \");\n\n throw GracefulError.from(\n error,\n message,\n \"Admin\",\n \"API\",\n cmd,\n NO_DEPLOYMENT_CHECKS_FLAG_NAME\n );\n }\n}\n\nexport const EnsureApiDeployedBeforeAdminBuild = AdminBeforeBuild.createImplementation({\n implementation: EnsureApiDeployedBeforeAdminBuildImpl,\n dependencies: [GetAppStackOutput, ProjectSdkParamsService]\n});\n"],"names":["NO_DEPLOYMENT_CHECKS_FLAG_NAME","EnsureApiDeployedBeforeAdminBuildImpl","getAppStackOutput","projectSdkParamsService","params","output","apiDeployed","Object","sdkParams","cmd","error","Error","message","GracefulError","EnsureApiDeployedBeforeAdminBuild","AdminBeforeBuild","GetAppStackOutput","ProjectSdkParamsService"],"mappings":";;AAOA,MAAMA,iCAAiC;AAEvC,MAAMC;IACF,YACYC,iBAA8C,EAC9CC,uBAA0D,CACpE;aAFUD,iBAAiB,GAAjBA;aACAC,uBAAuB,GAAvBA;IACT;IAEH,MAAM,QAAQC,MAA+B,EAAE;QAE3C,IAAIA,AAA4B,UAA5BA,OAAO,gBAAgB,EACvB;QAGJ,MAAMC,SAAS,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;QACpD,MAAMC,cAAcD,UAAUE,OAAO,IAAI,CAACF,QAAQ,MAAM,GAAG;QAC3D,IAAIC,aACA;QAGJ,MAAME,YAAY,IAAI,CAAC,uBAAuB,CAAC,GAAG;QAClD,MAAMC,MAAM,CAAC,6BAA6B,EAAED,UAAU,GAAG,EAAE;QAE3D,MAAME,QAAQ,IAAIC,MAAM;QACxB,MAAMC,UAAU;QAOhB,MAAMC,cAAc,IAAI,CACpBH,OACAE,SACA,SACA,OACAH,KACAT;IAER;AACJ;AAEO,MAAMc,oCAAoCC,iBAAiB,oBAAoB,CAAC;IACnF,gBAAgBd;IAChB,cAAc;QAACe;QAAmBC;KAAwB;AAC9D"}
@@ -1,5 +1,5 @@
1
1
  import { AdminBeforeWatch, GetAppStackOutput, ProjectSdkParamsService } from "../../abstractions/index.js";
2
- import { GracefulError } from "@webiny/project";
2
+ import { GracefulError } from "../../index.js";
3
3
  const NO_DEPLOYMENT_CHECKS_FLAG_NAME = "--no-deployment-checks";
4
4
  class EnsureApiDeployedBeforeAdminWatchImpl {
5
5
  constructor(getAppStackOutput, projectSdkParamsService){
@@ -1 +1 @@
1
- {"version":3,"file":"extensions/Project/EnsureApiDeployedBeforeAdminWatch.js","sources":["../../../src/extensions/Project/EnsureApiDeployedBeforeAdminWatch.ts"],"sourcesContent":["import {\n AdminBeforeWatch,\n GetAppStackOutput,\n ProjectSdkParamsService\n} from \"~/abstractions/index.js\";\nimport { GracefulError } from \"@webiny/project\";\n\nconst NO_DEPLOYMENT_CHECKS_FLAG_NAME = \"--no-deployment-checks\";\n\nclass EnsureApiDeployedBeforeAdminWatchImpl implements AdminBeforeWatch.Interface {\n constructor(\n private getAppStackOutput: GetAppStackOutput.Interface,\n private projectSdkParamsService: ProjectSdkParamsService.Interface\n ) {}\n\n async execute(params: AdminBeforeWatch.Params) {\n // Just in case, we want to allow users to skip the system requirements check.\n if (params.deploymentChecks === false) {\n return;\n }\n\n const output = await this.getAppStackOutput.execute(\"api\");\n const apiDeployed = output && Object.keys(output).length > 0;\n if (apiDeployed) {\n return;\n }\n\n const sdkParams = this.projectSdkParamsService.get();\n const cmd = `yarn webiny deploy api --env ${sdkParams.env}`;\n\n const error = new Error(`Cannot watch Admin before deploying API.`);\n const message = [\n `Before watching %s, please build %s first by running: %s.`,\n `If you think this is a mistake, you can also try skipping`,\n `deployment checks by appending the %s flag.`,\n `Learn more: https://webiny.link/deployment-checks`\n ].join(\" \");\n\n throw GracefulError.from(\n error,\n message,\n \"Admin\",\n \"API\",\n cmd,\n NO_DEPLOYMENT_CHECKS_FLAG_NAME\n );\n }\n}\n\nexport const EnsureApiDeployedBeforeAdminWatch = AdminBeforeWatch.createImplementation({\n implementation: EnsureApiDeployedBeforeAdminWatchImpl,\n dependencies: [GetAppStackOutput, ProjectSdkParamsService]\n});\n"],"names":["NO_DEPLOYMENT_CHECKS_FLAG_NAME","EnsureApiDeployedBeforeAdminWatchImpl","getAppStackOutput","projectSdkParamsService","params","output","apiDeployed","Object","sdkParams","cmd","error","Error","message","GracefulError","EnsureApiDeployedBeforeAdminWatch","AdminBeforeWatch","GetAppStackOutput","ProjectSdkParamsService"],"mappings":";;AAOA,MAAMA,iCAAiC;AAEvC,MAAMC;IACF,YACYC,iBAA8C,EAC9CC,uBAA0D,CACpE;aAFUD,iBAAiB,GAAjBA;aACAC,uBAAuB,GAAvBA;IACT;IAEH,MAAM,QAAQC,MAA+B,EAAE;QAE3C,IAAIA,AAA4B,UAA5BA,OAAO,gBAAgB,EACvB;QAGJ,MAAMC,SAAS,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;QACpD,MAAMC,cAAcD,UAAUE,OAAO,IAAI,CAACF,QAAQ,MAAM,GAAG;QAC3D,IAAIC,aACA;QAGJ,MAAME,YAAY,IAAI,CAAC,uBAAuB,CAAC,GAAG;QAClD,MAAMC,MAAM,CAAC,6BAA6B,EAAED,UAAU,GAAG,EAAE;QAE3D,MAAME,QAAQ,IAAIC,MAAM;QACxB,MAAMC,UAAU;QAOhB,MAAMC,cAAc,IAAI,CACpBH,OACAE,SACA,SACA,OACAH,KACAT;IAER;AACJ;AAEO,MAAMc,oCAAoCC,iBAAiB,oBAAoB,CAAC;IACnF,gBAAgBd;IAChB,cAAc;QAACe;QAAmBC;KAAwB;AAC9D"}
1
+ {"version":3,"file":"extensions/Project/EnsureApiDeployedBeforeAdminWatch.js","sources":["../../../src/extensions/Project/EnsureApiDeployedBeforeAdminWatch.ts"],"sourcesContent":["import {\n AdminBeforeWatch,\n GetAppStackOutput,\n ProjectSdkParamsService\n} from \"~/abstractions/index.js\";\nimport { GracefulError } from \"~/index.js\";\n\nconst NO_DEPLOYMENT_CHECKS_FLAG_NAME = \"--no-deployment-checks\";\n\nclass EnsureApiDeployedBeforeAdminWatchImpl implements AdminBeforeWatch.Interface {\n constructor(\n private getAppStackOutput: GetAppStackOutput.Interface,\n private projectSdkParamsService: ProjectSdkParamsService.Interface\n ) {}\n\n async execute(params: AdminBeforeWatch.Params) {\n // Just in case, we want to allow users to skip the system requirements check.\n if (params.deploymentChecks === false) {\n return;\n }\n\n const output = await this.getAppStackOutput.execute(\"api\");\n const apiDeployed = output && Object.keys(output).length > 0;\n if (apiDeployed) {\n return;\n }\n\n const sdkParams = this.projectSdkParamsService.get();\n const cmd = `yarn webiny deploy api --env ${sdkParams.env}`;\n\n const error = new Error(`Cannot watch Admin before deploying API.`);\n const message = [\n `Before watching %s, please build %s first by running: %s.`,\n `If you think this is a mistake, you can also try skipping`,\n `deployment checks by appending the %s flag.`,\n `Learn more: https://webiny.link/deployment-checks`\n ].join(\" \");\n\n throw GracefulError.from(\n error,\n message,\n \"Admin\",\n \"API\",\n cmd,\n NO_DEPLOYMENT_CHECKS_FLAG_NAME\n );\n }\n}\n\nexport const EnsureApiDeployedBeforeAdminWatch = AdminBeforeWatch.createImplementation({\n implementation: EnsureApiDeployedBeforeAdminWatchImpl,\n dependencies: [GetAppStackOutput, ProjectSdkParamsService]\n});\n"],"names":["NO_DEPLOYMENT_CHECKS_FLAG_NAME","EnsureApiDeployedBeforeAdminWatchImpl","getAppStackOutput","projectSdkParamsService","params","output","apiDeployed","Object","sdkParams","cmd","error","Error","message","GracefulError","EnsureApiDeployedBeforeAdminWatch","AdminBeforeWatch","GetAppStackOutput","ProjectSdkParamsService"],"mappings":";;AAOA,MAAMA,iCAAiC;AAEvC,MAAMC;IACF,YACYC,iBAA8C,EAC9CC,uBAA0D,CACpE;aAFUD,iBAAiB,GAAjBA;aACAC,uBAAuB,GAAvBA;IACT;IAEH,MAAM,QAAQC,MAA+B,EAAE;QAE3C,IAAIA,AAA4B,UAA5BA,OAAO,gBAAgB,EACvB;QAGJ,MAAMC,SAAS,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;QACpD,MAAMC,cAAcD,UAAUE,OAAO,IAAI,CAACF,QAAQ,MAAM,GAAG;QAC3D,IAAIC,aACA;QAGJ,MAAME,YAAY,IAAI,CAAC,uBAAuB,CAAC,GAAG;QAClD,MAAMC,MAAM,CAAC,6BAA6B,EAAED,UAAU,GAAG,EAAE;QAE3D,MAAME,QAAQ,IAAIC,MAAM;QACxB,MAAMC,UAAU;QAOhB,MAAMC,cAAc,IAAI,CACpBH,OACAE,SACA,SACA,OACAH,KACAT;IAER;AACJ;AAEO,MAAMc,oCAAoCC,iBAAiB,oBAAoB,CAAC;IACnF,gBAAgBd;IAChB,cAAc;QAACe;QAAmBC;KAAwB;AAC9D"}
@@ -1,5 +1,5 @@
1
1
  import { ApiBeforeWatch, GetAppStackOutput, ProjectSdkParamsService } from "../../abstractions/index.js";
2
- import { GracefulError } from "@webiny/project";
2
+ import { GracefulError } from "../../index.js";
3
3
  const NO_DEPLOYMENT_CHECKS_FLAG_NAME = "--no-deployment-checks";
4
4
  class EnsureApiDeployedBeforeWatchImpl {
5
5
  constructor(getAppStackOutput, projectSdkParamsService){
@@ -1 +1 @@
1
- {"version":3,"file":"extensions/Project/EnsureApiDeployedBeforeWatch.js","sources":["../../../src/extensions/Project/EnsureApiDeployedBeforeWatch.ts"],"sourcesContent":["import {\n ApiBeforeWatch,\n GetAppStackOutput,\n ProjectSdkParamsService\n} from \"~/abstractions/index.js\";\nimport { GracefulError } from \"@webiny/project\";\n\nconst NO_DEPLOYMENT_CHECKS_FLAG_NAME = \"--no-deployment-checks\";\n\nclass EnsureApiDeployedBeforeWatchImpl implements ApiBeforeWatch.Interface {\n constructor(\n private getAppStackOutput: GetAppStackOutput.Interface,\n private projectSdkParamsService: ProjectSdkParamsService.Interface\n ) {}\n\n async execute(params: ApiBeforeWatch.Params) {\n // Just in case, we want to allow users to skip the system requirements check.\n if (params.deploymentChecks === false) {\n return;\n }\n\n const output = await this.getAppStackOutput.execute(\"api\");\n const apiDeployed = output && Object.keys(output).length > 0;\n if (apiDeployed) {\n return;\n }\n\n const error = new Error(`Cannot watch API before deploying it.`);\n const sdkParams = this.projectSdkParamsService.get();\n const cmd = `yarn webiny deploy api --env ${sdkParams.env}`;\n\n const message = [\n `Before watching %s, please deploy it first by running: %s.`,\n `If you think this is a mistake, you can also try skipping`,\n `deployment checks by appending the %s flag.`,\n `Learn more: https://webiny.link/deployment-checks`\n ].join(\" \");\n\n throw GracefulError.from(error, message, \"API\", cmd, NO_DEPLOYMENT_CHECKS_FLAG_NAME);\n }\n}\n\nexport const EnsureApiDeployedBeforeWatch = ApiBeforeWatch.createImplementation({\n implementation: EnsureApiDeployedBeforeWatchImpl,\n dependencies: [GetAppStackOutput, ProjectSdkParamsService]\n});\n"],"names":["NO_DEPLOYMENT_CHECKS_FLAG_NAME","EnsureApiDeployedBeforeWatchImpl","getAppStackOutput","projectSdkParamsService","params","output","apiDeployed","Object","error","Error","sdkParams","cmd","message","GracefulError","EnsureApiDeployedBeforeWatch","ApiBeforeWatch","GetAppStackOutput","ProjectSdkParamsService"],"mappings":";;AAOA,MAAMA,iCAAiC;AAEvC,MAAMC;IACF,YACYC,iBAA8C,EAC9CC,uBAA0D,CACpE;aAFUD,iBAAiB,GAAjBA;aACAC,uBAAuB,GAAvBA;IACT;IAEH,MAAM,QAAQC,MAA6B,EAAE;QAEzC,IAAIA,AAA4B,UAA5BA,OAAO,gBAAgB,EACvB;QAGJ,MAAMC,SAAS,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;QACpD,MAAMC,cAAcD,UAAUE,OAAO,IAAI,CAACF,QAAQ,MAAM,GAAG;QAC3D,IAAIC,aACA;QAGJ,MAAME,QAAQ,IAAIC,MAAM;QACxB,MAAMC,YAAY,IAAI,CAAC,uBAAuB,CAAC,GAAG;QAClD,MAAMC,MAAM,CAAC,6BAA6B,EAAED,UAAU,GAAG,EAAE;QAE3D,MAAME,UAAU;QAOhB,MAAMC,cAAc,IAAI,CAACL,OAAOI,SAAS,OAAOD,KAAKX;IACzD;AACJ;AAEO,MAAMc,+BAA+BC,eAAe,oBAAoB,CAAC;IAC5E,gBAAgBd;IAChB,cAAc;QAACe;QAAmBC;KAAwB;AAC9D"}
1
+ {"version":3,"file":"extensions/Project/EnsureApiDeployedBeforeWatch.js","sources":["../../../src/extensions/Project/EnsureApiDeployedBeforeWatch.ts"],"sourcesContent":["import {\n ApiBeforeWatch,\n GetAppStackOutput,\n ProjectSdkParamsService\n} from \"~/abstractions/index.js\";\nimport { GracefulError } from \"~/index.js\";\n\nconst NO_DEPLOYMENT_CHECKS_FLAG_NAME = \"--no-deployment-checks\";\n\nclass EnsureApiDeployedBeforeWatchImpl implements ApiBeforeWatch.Interface {\n constructor(\n private getAppStackOutput: GetAppStackOutput.Interface,\n private projectSdkParamsService: ProjectSdkParamsService.Interface\n ) {}\n\n async execute(params: ApiBeforeWatch.Params) {\n // Just in case, we want to allow users to skip the system requirements check.\n if (params.deploymentChecks === false) {\n return;\n }\n\n const output = await this.getAppStackOutput.execute(\"api\");\n const apiDeployed = output && Object.keys(output).length > 0;\n if (apiDeployed) {\n return;\n }\n\n const error = new Error(`Cannot watch API before deploying it.`);\n const sdkParams = this.projectSdkParamsService.get();\n const cmd = `yarn webiny deploy api --env ${sdkParams.env}`;\n\n const message = [\n `Before watching %s, please deploy it first by running: %s.`,\n `If you think this is a mistake, you can also try skipping`,\n `deployment checks by appending the %s flag.`,\n `Learn more: https://webiny.link/deployment-checks`\n ].join(\" \");\n\n throw GracefulError.from(error, message, \"API\", cmd, NO_DEPLOYMENT_CHECKS_FLAG_NAME);\n }\n}\n\nexport const EnsureApiDeployedBeforeWatch = ApiBeforeWatch.createImplementation({\n implementation: EnsureApiDeployedBeforeWatchImpl,\n dependencies: [GetAppStackOutput, ProjectSdkParamsService]\n});\n"],"names":["NO_DEPLOYMENT_CHECKS_FLAG_NAME","EnsureApiDeployedBeforeWatchImpl","getAppStackOutput","projectSdkParamsService","params","output","apiDeployed","Object","error","Error","sdkParams","cmd","message","GracefulError","EnsureApiDeployedBeforeWatch","ApiBeforeWatch","GetAppStackOutput","ProjectSdkParamsService"],"mappings":";;AAOA,MAAMA,iCAAiC;AAEvC,MAAMC;IACF,YACYC,iBAA8C,EAC9CC,uBAA0D,CACpE;aAFUD,iBAAiB,GAAjBA;aACAC,uBAAuB,GAAvBA;IACT;IAEH,MAAM,QAAQC,MAA6B,EAAE;QAEzC,IAAIA,AAA4B,UAA5BA,OAAO,gBAAgB,EACvB;QAGJ,MAAMC,SAAS,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;QACpD,MAAMC,cAAcD,UAAUE,OAAO,IAAI,CAACF,QAAQ,MAAM,GAAG;QAC3D,IAAIC,aACA;QAGJ,MAAME,QAAQ,IAAIC,MAAM;QACxB,MAAMC,YAAY,IAAI,CAAC,uBAAuB,CAAC,GAAG;QAClD,MAAMC,MAAM,CAAC,6BAA6B,EAAED,UAAU,GAAG,EAAE;QAE3D,MAAME,UAAU;QAOhB,MAAMC,cAAc,IAAI,CAACL,OAAOI,SAAS,OAAOD,KAAKX;IACzD;AACJ;AAEO,MAAMc,+BAA+BC,eAAe,oBAAoB,CAAC;IAC5E,gBAAgBd;IAChB,cAAc;QAACe;QAAmBC;KAAwB;AAC9D"}
@@ -1,5 +1,5 @@
1
1
  import { ApiBeforeDeploy, GetAppStackOutput, ProjectSdkParamsService } from "../../abstractions/index.js";
2
- import { GracefulError } from "@webiny/project";
2
+ import { GracefulError } from "../../index.js";
3
3
  class EnsureCoreDeployedBeforeApiDeployImpl {
4
4
  constructor(getAppStackOutput, projectSdkParamsService){
5
5
  this.getAppStackOutput = getAppStackOutput;
@@ -1 +1 @@
1
- {"version":3,"file":"extensions/Project/EnsureCoreDeployedBeforeApiDeploy.js","sources":["../../../src/extensions/Project/EnsureCoreDeployedBeforeApiDeploy.ts"],"sourcesContent":["import {\n ApiBeforeDeploy,\n GetAppStackOutput,\n ProjectSdkParamsService\n} from \"~/abstractions/index.js\";\nimport { GracefulError } from \"@webiny/project\";\n\nclass EnsureCoreDeployedBeforeApiDeployImpl implements ApiBeforeDeploy.Interface {\n constructor(\n private getAppStackOutput: GetAppStackOutput.Interface,\n private projectSdkParamsService: ProjectSdkParamsService.Interface\n ) {}\n\n async execute() {\n const output = await this.getAppStackOutput.execute(\"core\");\n\n const coreDeployed = output && Object.keys(output).length > 0;\n if (coreDeployed) {\n return;\n }\n\n const sdkParams = this.projectSdkParamsService.get();\n const { variant, env } = sdkParams;\n\n let variantCmd = \"\";\n if (variant) {\n variantCmd = ` --variant ${variant}`;\n }\n\n const error = new Error(`Cannot deploy API before deploying Core.`);\n\n const message = [`Before deploying %s, please`, `deploy %s first by running: %s.`].join(\n \" \"\n );\n\n const cmd = `yarn webiny deploy core --env ${env}${variantCmd}`;\n throw GracefulError.from(error, message, \"API\", \"Core\", cmd);\n }\n}\n\nexport const EnsureCoreDeployedBeforeApiDeploy = ApiBeforeDeploy.createImplementation({\n implementation: EnsureCoreDeployedBeforeApiDeployImpl,\n dependencies: [GetAppStackOutput, ProjectSdkParamsService]\n});\n"],"names":["EnsureCoreDeployedBeforeApiDeployImpl","getAppStackOutput","projectSdkParamsService","output","coreDeployed","Object","sdkParams","variant","env","variantCmd","error","Error","message","cmd","GracefulError","EnsureCoreDeployedBeforeApiDeploy","ApiBeforeDeploy","GetAppStackOutput","ProjectSdkParamsService"],"mappings":";;AAOA,MAAMA;IACF,YACYC,iBAA8C,EAC9CC,uBAA0D,CACpE;aAFUD,iBAAiB,GAAjBA;aACAC,uBAAuB,GAAvBA;IACT;IAEH,MAAM,UAAU;QACZ,MAAMC,SAAS,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;QAEpD,MAAMC,eAAeD,UAAUE,OAAO,IAAI,CAACF,QAAQ,MAAM,GAAG;QAC5D,IAAIC,cACA;QAGJ,MAAME,YAAY,IAAI,CAAC,uBAAuB,CAAC,GAAG;QAClD,MAAM,EAAEC,OAAO,EAAEC,GAAG,EAAE,GAAGF;QAEzB,IAAIG,aAAa;QACjB,IAAIF,SACAE,aAAa,CAAC,WAAW,EAAEF,SAAS;QAGxC,MAAMG,QAAQ,IAAIC,MAAM;QAExB,MAAMC,UAAU;QAIhB,MAAMC,MAAM,CAAC,8BAA8B,EAAEL,MAAMC,YAAY;QAC/D,MAAMK,cAAc,IAAI,CAACJ,OAAOE,SAAS,OAAO,QAAQC;IAC5D;AACJ;AAEO,MAAME,oCAAoCC,gBAAgB,oBAAoB,CAAC;IAClF,gBAAgBhB;IAChB,cAAc;QAACiB;QAAmBC;KAAwB;AAC9D"}
1
+ {"version":3,"file":"extensions/Project/EnsureCoreDeployedBeforeApiDeploy.js","sources":["../../../src/extensions/Project/EnsureCoreDeployedBeforeApiDeploy.ts"],"sourcesContent":["import {\n ApiBeforeDeploy,\n GetAppStackOutput,\n ProjectSdkParamsService\n} from \"~/abstractions/index.js\";\nimport { GracefulError } from \"~/index.js\";\n\nclass EnsureCoreDeployedBeforeApiDeployImpl implements ApiBeforeDeploy.Interface {\n constructor(\n private getAppStackOutput: GetAppStackOutput.Interface,\n private projectSdkParamsService: ProjectSdkParamsService.Interface\n ) {}\n\n async execute() {\n const output = await this.getAppStackOutput.execute(\"core\");\n\n const coreDeployed = output && Object.keys(output).length > 0;\n if (coreDeployed) {\n return;\n }\n\n const sdkParams = this.projectSdkParamsService.get();\n const { variant, env } = sdkParams;\n\n let variantCmd = \"\";\n if (variant) {\n variantCmd = ` --variant ${variant}`;\n }\n\n const error = new Error(`Cannot deploy API before deploying Core.`);\n\n const message = [`Before deploying %s, please`, `deploy %s first by running: %s.`].join(\n \" \"\n );\n\n const cmd = `yarn webiny deploy core --env ${env}${variantCmd}`;\n throw GracefulError.from(error, message, \"API\", \"Core\", cmd);\n }\n}\n\nexport const EnsureCoreDeployedBeforeApiDeploy = ApiBeforeDeploy.createImplementation({\n implementation: EnsureCoreDeployedBeforeApiDeployImpl,\n dependencies: [GetAppStackOutput, ProjectSdkParamsService]\n});\n"],"names":["EnsureCoreDeployedBeforeApiDeployImpl","getAppStackOutput","projectSdkParamsService","output","coreDeployed","Object","sdkParams","variant","env","variantCmd","error","Error","message","cmd","GracefulError","EnsureCoreDeployedBeforeApiDeploy","ApiBeforeDeploy","GetAppStackOutput","ProjectSdkParamsService"],"mappings":";;AAOA,MAAMA;IACF,YACYC,iBAA8C,EAC9CC,uBAA0D,CACpE;aAFUD,iBAAiB,GAAjBA;aACAC,uBAAuB,GAAvBA;IACT;IAEH,MAAM,UAAU;QACZ,MAAMC,SAAS,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;QAEpD,MAAMC,eAAeD,UAAUE,OAAO,IAAI,CAACF,QAAQ,MAAM,GAAG;QAC5D,IAAIC,cACA;QAGJ,MAAME,YAAY,IAAI,CAAC,uBAAuB,CAAC,GAAG;QAClD,MAAM,EAAEC,OAAO,EAAEC,GAAG,EAAE,GAAGF;QAEzB,IAAIG,aAAa;QACjB,IAAIF,SACAE,aAAa,CAAC,WAAW,EAAEF,SAAS;QAGxC,MAAMG,QAAQ,IAAIC,MAAM;QAExB,MAAMC,UAAU;QAIhB,MAAMC,MAAM,CAAC,8BAA8B,EAAEL,MAAMC,YAAY;QAC/D,MAAMK,cAAc,IAAI,CAACJ,OAAOE,SAAS,OAAO,QAAQC;IAC5D;AACJ;AAEO,MAAME,oCAAoCC,gBAAgB,oBAAoB,CAAC;IAClF,gBAAgBhB;IAChB,cAAc;QAACiB;QAAmBC;KAAwB;AAC9D"}
@@ -1,5 +1,5 @@
1
1
  import { BeforeDeploy, IsCi, IsTelemetryEnabled, IsWcpEnabled, IsWebinyJsRepo } from "../../abstractions/index.js";
2
- import { GracefulError } from "@webiny/project";
2
+ import { GracefulError } from "../../index.js";
3
3
  class EnsureTelemetryEnabledForOssImpl {
4
4
  constructor(isTelemetryEnabled, isWcpEnabled, isWebinyJsRepo, isCi){
5
5
  this.isTelemetryEnabled = isTelemetryEnabled;
@@ -1 +1 @@
1
- {"version":3,"file":"extensions/Project/EnsureTelemetryEnabledForOss.js","sources":["../../../src/extensions/Project/EnsureTelemetryEnabledForOss.ts"],"sourcesContent":["import {\n BeforeDeploy,\n IsCi,\n IsTelemetryEnabled,\n IsWcpEnabled,\n IsWebinyJsRepo\n} from \"~/abstractions/index.js\";\nimport { GracefulError } from \"@webiny/project\";\n\nclass EnsureTelemetryEnabledForOssImpl implements BeforeDeploy.Interface {\n constructor(\n private isTelemetryEnabled: IsTelemetryEnabled.Interface,\n private isWcpEnabled: IsWcpEnabled.Interface,\n private isWebinyJsRepo: IsWebinyJsRepo.Interface,\n private isCi: IsCi.Interface\n ) {}\n\n async execute() {\n // Skip telemetry checks in CI environments\n if (this.isCi.execute()) {\n return;\n }\n\n // Don't enforce telemetry validation in the webiny-js development repository\n const isDevRepo = this.isWebinyJsRepo.execute();\n if (isDevRepo) {\n return;\n }\n\n const telemetryEnabled = await this.isTelemetryEnabled.execute();\n const wcpEnabled = await this.isWcpEnabled.execute();\n\n // If telemetry is disabled and WCP is not connected, throw an error\n if (!telemetryEnabled && !wcpEnabled) {\n const message = [\n `You are trying to deploy your project, but telemetry is currently disabled.`,\n `The open-source edition of Webiny requires telemetry to be enabled.`,\n `To proceed with the deployment, please re-enable telemetry or upgrade your project via https://www.webiny.com/pricing.`,\n `Learn more: https://webiny.link/telemetry-oss`\n ].join(\" \");\n\n const error = new Error(\"Cannot deploy with telemetry disabled in OSS edition.\");\n\n throw GracefulError.from(error, message);\n }\n }\n}\n\nexport const EnsureTelemetryEnabledForOss = BeforeDeploy.createImplementation({\n implementation: EnsureTelemetryEnabledForOssImpl,\n dependencies: [IsTelemetryEnabled, IsWcpEnabled, IsWebinyJsRepo, IsCi]\n});\n"],"names":["EnsureTelemetryEnabledForOssImpl","isTelemetryEnabled","isWcpEnabled","isWebinyJsRepo","isCi","isDevRepo","telemetryEnabled","wcpEnabled","message","error","Error","GracefulError","EnsureTelemetryEnabledForOss","BeforeDeploy","IsTelemetryEnabled","IsWcpEnabled","IsWebinyJsRepo","IsCi"],"mappings":";;AASA,MAAMA;IACF,YACYC,kBAAgD,EAChDC,YAAoC,EACpCC,cAAwC,EACxCC,IAAoB,CAC9B;aAJUH,kBAAkB,GAAlBA;aACAC,YAAY,GAAZA;aACAC,cAAc,GAAdA;aACAC,IAAI,GAAJA;IACT;IAEH,MAAM,UAAU;QAEZ,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IACjB;QAIJ,MAAMC,YAAY,IAAI,CAAC,cAAc,CAAC,OAAO;QAC7C,IAAIA,WACA;QAGJ,MAAMC,mBAAmB,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO;QAC9D,MAAMC,aAAa,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO;QAGlD,IAAI,CAACD,oBAAoB,CAACC,YAAY;YAClC,MAAMC,UAAU;YAOhB,MAAMC,QAAQ,IAAIC,MAAM;YAExB,MAAMC,cAAc,IAAI,CAACF,OAAOD;QACpC;IACJ;AACJ;AAEO,MAAMI,+BAA+BC,aAAa,oBAAoB,CAAC;IAC1E,gBAAgBb;IAChB,cAAc;QAACc;QAAoBC;QAAcC;QAAgBC;KAAK;AAC1E"}
1
+ {"version":3,"file":"extensions/Project/EnsureTelemetryEnabledForOss.js","sources":["../../../src/extensions/Project/EnsureTelemetryEnabledForOss.ts"],"sourcesContent":["import {\n BeforeDeploy,\n IsCi,\n IsTelemetryEnabled,\n IsWcpEnabled,\n IsWebinyJsRepo\n} from \"~/abstractions/index.js\";\nimport { GracefulError } from \"~/index.js\";\n\nclass EnsureTelemetryEnabledForOssImpl implements BeforeDeploy.Interface {\n constructor(\n private isTelemetryEnabled: IsTelemetryEnabled.Interface,\n private isWcpEnabled: IsWcpEnabled.Interface,\n private isWebinyJsRepo: IsWebinyJsRepo.Interface,\n private isCi: IsCi.Interface\n ) {}\n\n async execute() {\n // Skip telemetry checks in CI environments\n if (this.isCi.execute()) {\n return;\n }\n\n // Don't enforce telemetry validation in the webiny-js development repository\n const isDevRepo = this.isWebinyJsRepo.execute();\n if (isDevRepo) {\n return;\n }\n\n const telemetryEnabled = await this.isTelemetryEnabled.execute();\n const wcpEnabled = await this.isWcpEnabled.execute();\n\n // If telemetry is disabled and WCP is not connected, throw an error\n if (!telemetryEnabled && !wcpEnabled) {\n const message = [\n `You are trying to deploy your project, but telemetry is currently disabled.`,\n `The open-source edition of Webiny requires telemetry to be enabled.`,\n `To proceed with the deployment, please re-enable telemetry or upgrade your project via https://www.webiny.com/pricing.`,\n `Learn more: https://webiny.link/telemetry-oss`\n ].join(\" \");\n\n const error = new Error(\"Cannot deploy with telemetry disabled in OSS edition.\");\n\n throw GracefulError.from(error, message);\n }\n }\n}\n\nexport const EnsureTelemetryEnabledForOss = BeforeDeploy.createImplementation({\n implementation: EnsureTelemetryEnabledForOssImpl,\n dependencies: [IsTelemetryEnabled, IsWcpEnabled, IsWebinyJsRepo, IsCi]\n});\n"],"names":["EnsureTelemetryEnabledForOssImpl","isTelemetryEnabled","isWcpEnabled","isWebinyJsRepo","isCi","isDevRepo","telemetryEnabled","wcpEnabled","message","error","Error","GracefulError","EnsureTelemetryEnabledForOss","BeforeDeploy","IsTelemetryEnabled","IsWcpEnabled","IsWebinyJsRepo","IsCi"],"mappings":";;AASA,MAAMA;IACF,YACYC,kBAAgD,EAChDC,YAAoC,EACpCC,cAAwC,EACxCC,IAAoB,CAC9B;aAJUH,kBAAkB,GAAlBA;aACAC,YAAY,GAAZA;aACAC,cAAc,GAAdA;aACAC,IAAI,GAAJA;IACT;IAEH,MAAM,UAAU;QAEZ,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IACjB;QAIJ,MAAMC,YAAY,IAAI,CAAC,cAAc,CAAC,OAAO;QAC7C,IAAIA,WACA;QAGJ,MAAMC,mBAAmB,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO;QAC9D,MAAMC,aAAa,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO;QAGlD,IAAI,CAACD,oBAAoB,CAACC,YAAY;YAClC,MAAMC,UAAU;YAOhB,MAAMC,QAAQ,IAAIC,MAAM;YAExB,MAAMC,cAAc,IAAI,CAACF,OAAOD;QACpC;IACJ;AACJ;AAEO,MAAMI,+BAA+BC,aAAa,oBAAoB,CAAC;IAC1E,gBAAgBb;IAChB,cAAc;QAACc;QAAoBC;QAAcC;QAAgBC;KAAK;AAC1E"}
@@ -1,9 +1,10 @@
1
- import { AdminBeforeBuild, GetProjectIdService, GetProjectVersionService, IsTelemetryEnabled } from "../../abstractions/index.js";
1
+ import { AdminBeforeBuild, GetProjectIdService, GetProjectInstallationIdService, GetProjectVersionService, IsTelemetryEnabled } from "../../abstractions/index.js";
2
2
  declare class SetAdminAppEnvVarsBeforeBuildImpl implements AdminBeforeBuild.Interface {
3
3
  private isTelemetryEnabled;
4
4
  private getProjectIdService;
5
+ private getProjectInstallationIdService;
5
6
  private getProjectVersionService;
6
- constructor(isTelemetryEnabled: IsTelemetryEnabled.Interface, getProjectIdService: GetProjectIdService.Interface, getProjectVersionService: GetProjectVersionService.Interface);
7
+ constructor(isTelemetryEnabled: IsTelemetryEnabled.Interface, getProjectIdService: GetProjectIdService.Interface, getProjectInstallationIdService: GetProjectInstallationIdService.Interface, getProjectVersionService: GetProjectVersionService.Interface);
7
8
  execute(): Promise<void>;
8
9
  }
9
10
  export declare const SetAdminAppEnvVarsBeforeBuild: typeof SetAdminAppEnvVarsBeforeBuildImpl & {
@@ -1,10 +1,11 @@
1
- import { AdminBeforeBuild, GetProjectIdService, GetProjectVersionService, IsTelemetryEnabled } from "../../abstractions/index.js";
1
+ import { AdminBeforeBuild, GetProjectIdService, GetProjectInstallationIdService, GetProjectVersionService, IsTelemetryEnabled } from "../../abstractions/index.js";
2
2
  import { globalConfig } from "@webiny/global-config";
3
3
  import { isCI } from "ci-info";
4
4
  class SetAdminAppEnvVarsBeforeBuildImpl {
5
- constructor(isTelemetryEnabled, getProjectIdService, getProjectVersionService){
5
+ constructor(isTelemetryEnabled, getProjectIdService, getProjectInstallationIdService, getProjectVersionService){
6
6
  this.isTelemetryEnabled = isTelemetryEnabled;
7
7
  this.getProjectIdService = getProjectIdService;
8
+ this.getProjectInstallationIdService = getProjectInstallationIdService;
8
9
  this.getProjectVersionService = getProjectVersionService;
9
10
  }
10
11
  async execute() {
@@ -15,6 +16,10 @@ class SetAdminAppEnvVarsBeforeBuildImpl {
15
16
  process.env.REACT_APP_WEBINY_PROJECT_ID = projectId;
16
17
  process.env.REACT_APP_WCP_PROJECT_ID = projectId;
17
18
  }
19
+ if (!("REACT_APP_WEBINY_INSTALLATION_ID" in process.env)) {
20
+ const installationId = this.getProjectInstallationIdService.execute();
21
+ if (installationId) process.env.REACT_APP_WEBINY_INSTALLATION_ID = installationId;
22
+ }
18
23
  if (!("REACT_APP_WEBINY_TELEMETRY" in process.env)) process.env.REACT_APP_WEBINY_TELEMETRY = String(telemetry);
19
24
  if (!("REACT_APP_WEBINY_TELEMETRY_USER_ID" in process.env)) process.env.REACT_APP_WEBINY_TELEMETRY_USER_ID = globalConfig.get("id");
20
25
  if (!("REACT_APP_WEBINY_TELEMETRY_NEW_USER" in process.env)) {
@@ -31,6 +36,7 @@ const SetAdminAppEnvVarsBeforeBuild = AdminBeforeBuild.createImplementation({
31
36
  dependencies: [
32
37
  IsTelemetryEnabled,
33
38
  GetProjectIdService,
39
+ GetProjectInstallationIdService,
34
40
  GetProjectVersionService
35
41
  ]
36
42
  });
@@ -1 +1 @@
1
- {"version":3,"file":"extensions/Project/SetAdminAppEnvVarsBeforeBuild.js","sources":["../../../src/extensions/Project/SetAdminAppEnvVarsBeforeBuild.ts"],"sourcesContent":["import {\n AdminBeforeBuild,\n GetProjectIdService,\n GetProjectVersionService,\n IsTelemetryEnabled\n} from \"~/abstractions/index.js\";\nimport { globalConfig } from \"@webiny/global-config\";\nimport { isCI } from \"ci-info\";\n\nclass SetAdminAppEnvVarsBeforeBuildImpl implements AdminBeforeBuild.Interface {\n constructor(\n private isTelemetryEnabled: IsTelemetryEnabled.Interface,\n private getProjectIdService: GetProjectIdService.Interface,\n private getProjectVersionService: GetProjectVersionService.Interface\n ) {}\n\n async execute() {\n const projectId = await this.getProjectIdService.execute();\n const projectVersion = this.getProjectVersionService.execute();\n\n const telemetry = await this.isTelemetryEnabled.execute();\n\n if (projectId) {\n process.env.REACT_APP_WEBINY_PROJECT_ID = projectId;\n process.env.REACT_APP_WCP_PROJECT_ID = projectId;\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY = String(telemetry);\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_USER_ID\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY_USER_ID = globalConfig.get(\"id\");\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_NEW_USER\" in process.env)) {\n const newUser = Boolean(globalConfig.get(\"newUser\")).toString();\n process.env.REACT_APP_WEBINY_TELEMETRY_NEW_USER = newUser;\n }\n\n if (!(\"INLINE_RUNTIME_CHUNK\" in process.env)) {\n process.env.INLINE_RUNTIME_CHUNK = \"true\";\n }\n\n if (!(\"REACT_APP_IS_CI\" in process.env)) {\n process.env.REACT_APP_IS_CI = Boolean(isCI).toString();\n }\n\n if (!(\"REACT_APP_WEBINY_VERSION\" in process.env)) {\n process.env.REACT_APP_WEBINY_VERSION = projectVersion;\n }\n }\n}\n\nexport const SetAdminAppEnvVarsBeforeBuild = AdminBeforeBuild.createImplementation({\n implementation: SetAdminAppEnvVarsBeforeBuildImpl,\n dependencies: [IsTelemetryEnabled, GetProjectIdService, GetProjectVersionService]\n});\n"],"names":["SetAdminAppEnvVarsBeforeBuildImpl","isTelemetryEnabled","getProjectIdService","getProjectVersionService","projectId","projectVersion","telemetry","process","String","globalConfig","newUser","Boolean","isCI","SetAdminAppEnvVarsBeforeBuild","AdminBeforeBuild","IsTelemetryEnabled","GetProjectIdService","GetProjectVersionService"],"mappings":";;;AASA,MAAMA;IACF,YACYC,kBAAgD,EAChDC,mBAAkD,EAClDC,wBAA4D,CACtE;aAHUF,kBAAkB,GAAlBA;aACAC,mBAAmB,GAAnBA;aACAC,wBAAwB,GAAxBA;IACT;IAEH,MAAM,UAAU;QACZ,MAAMC,YAAY,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO;QACxD,MAAMC,iBAAiB,IAAI,CAAC,wBAAwB,CAAC,OAAO;QAE5D,MAAMC,YAAY,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO;QAEvD,IAAIF,WAAW;YACXG,QAAQ,GAAG,CAAC,2BAA2B,GAAGH;YAC1CG,QAAQ,GAAG,CAAC,wBAAwB,GAAGH;QAC3C;QAEA,IAAI,CAAE,iCAAgCG,QAAQ,GAAE,GAC5CA,QAAQ,GAAG,CAAC,0BAA0B,GAAGC,OAAOF;QAGpD,IAAI,CAAE,yCAAwCC,QAAQ,GAAE,GACpDA,QAAQ,GAAG,CAAC,kCAAkC,GAAGE,aAAa,GAAG,CAAC;QAGtE,IAAI,CAAE,0CAAyCF,QAAQ,GAAE,GAAI;YACzD,MAAMG,UAAUC,QAAQF,aAAa,GAAG,CAAC,YAAY,QAAQ;YAC7DF,QAAQ,GAAG,CAAC,mCAAmC,GAAGG;QACtD;QAEA,IAAI,CAAE,2BAA0BH,QAAQ,GAAE,GACtCA,QAAQ,GAAG,CAAC,oBAAoB,GAAG;QAGvC,IAAI,CAAE,sBAAqBA,QAAQ,GAAE,GACjCA,QAAQ,GAAG,CAAC,eAAe,GAAGI,QAAQC,MAAM,QAAQ;QAGxD,IAAI,CAAE,+BAA8BL,QAAQ,GAAE,GAC1CA,QAAQ,GAAG,CAAC,wBAAwB,GAAGF;IAE/C;AACJ;AAEO,MAAMQ,gCAAgCC,iBAAiB,oBAAoB,CAAC;IAC/E,gBAAgBd;IAChB,cAAc;QAACe;QAAoBC;QAAqBC;KAAyB;AACrF"}
1
+ {"version":3,"file":"extensions/Project/SetAdminAppEnvVarsBeforeBuild.js","sources":["../../../src/extensions/Project/SetAdminAppEnvVarsBeforeBuild.ts"],"sourcesContent":["import {\n AdminBeforeBuild,\n GetProjectIdService,\n GetProjectInstallationIdService,\n GetProjectVersionService,\n IsTelemetryEnabled\n} from \"~/abstractions/index.js\";\nimport { globalConfig } from \"@webiny/global-config\";\nimport { isCI } from \"ci-info\";\n\nclass SetAdminAppEnvVarsBeforeBuildImpl implements AdminBeforeBuild.Interface {\n constructor(\n private isTelemetryEnabled: IsTelemetryEnabled.Interface,\n private getProjectIdService: GetProjectIdService.Interface,\n private getProjectInstallationIdService: GetProjectInstallationIdService.Interface,\n private getProjectVersionService: GetProjectVersionService.Interface\n ) {}\n\n async execute() {\n const projectId = await this.getProjectIdService.execute();\n const projectVersion = this.getProjectVersionService.execute();\n\n const telemetry = await this.isTelemetryEnabled.execute();\n\n if (projectId) {\n process.env.REACT_APP_WEBINY_PROJECT_ID = projectId;\n process.env.REACT_APP_WCP_PROJECT_ID = projectId;\n }\n\n if (!(\"REACT_APP_WEBINY_INSTALLATION_ID\" in process.env)) {\n const installationId = this.getProjectInstallationIdService.execute();\n if (installationId) {\n process.env.REACT_APP_WEBINY_INSTALLATION_ID = installationId;\n }\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY = String(telemetry);\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_USER_ID\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY_USER_ID = globalConfig.get(\"id\");\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_NEW_USER\" in process.env)) {\n const newUser = Boolean(globalConfig.get(\"newUser\")).toString();\n process.env.REACT_APP_WEBINY_TELEMETRY_NEW_USER = newUser;\n }\n\n if (!(\"INLINE_RUNTIME_CHUNK\" in process.env)) {\n process.env.INLINE_RUNTIME_CHUNK = \"true\";\n }\n\n if (!(\"REACT_APP_IS_CI\" in process.env)) {\n process.env.REACT_APP_IS_CI = Boolean(isCI).toString();\n }\n\n if (!(\"REACT_APP_WEBINY_VERSION\" in process.env)) {\n process.env.REACT_APP_WEBINY_VERSION = projectVersion;\n }\n }\n}\n\nexport const SetAdminAppEnvVarsBeforeBuild = AdminBeforeBuild.createImplementation({\n implementation: SetAdminAppEnvVarsBeforeBuildImpl,\n dependencies: [\n IsTelemetryEnabled,\n GetProjectIdService,\n GetProjectInstallationIdService,\n GetProjectVersionService\n ]\n});\n"],"names":["SetAdminAppEnvVarsBeforeBuildImpl","isTelemetryEnabled","getProjectIdService","getProjectInstallationIdService","getProjectVersionService","projectId","projectVersion","telemetry","process","installationId","String","globalConfig","newUser","Boolean","isCI","SetAdminAppEnvVarsBeforeBuild","AdminBeforeBuild","IsTelemetryEnabled","GetProjectIdService","GetProjectInstallationIdService","GetProjectVersionService"],"mappings":";;;AAUA,MAAMA;IACF,YACYC,kBAAgD,EAChDC,mBAAkD,EAClDC,+BAA0E,EAC1EC,wBAA4D,CACtE;aAJUH,kBAAkB,GAAlBA;aACAC,mBAAmB,GAAnBA;aACAC,+BAA+B,GAA/BA;aACAC,wBAAwB,GAAxBA;IACT;IAEH,MAAM,UAAU;QACZ,MAAMC,YAAY,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO;QACxD,MAAMC,iBAAiB,IAAI,CAAC,wBAAwB,CAAC,OAAO;QAE5D,MAAMC,YAAY,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO;QAEvD,IAAIF,WAAW;YACXG,QAAQ,GAAG,CAAC,2BAA2B,GAAGH;YAC1CG,QAAQ,GAAG,CAAC,wBAAwB,GAAGH;QAC3C;QAEA,IAAI,CAAE,uCAAsCG,QAAQ,GAAE,GAAI;YACtD,MAAMC,iBAAiB,IAAI,CAAC,+BAA+B,CAAC,OAAO;YACnE,IAAIA,gBACAD,QAAQ,GAAG,CAAC,gCAAgC,GAAGC;QAEvD;QAEA,IAAI,CAAE,iCAAgCD,QAAQ,GAAE,GAC5CA,QAAQ,GAAG,CAAC,0BAA0B,GAAGE,OAAOH;QAGpD,IAAI,CAAE,yCAAwCC,QAAQ,GAAE,GACpDA,QAAQ,GAAG,CAAC,kCAAkC,GAAGG,aAAa,GAAG,CAAC;QAGtE,IAAI,CAAE,0CAAyCH,QAAQ,GAAE,GAAI;YACzD,MAAMI,UAAUC,QAAQF,aAAa,GAAG,CAAC,YAAY,QAAQ;YAC7DH,QAAQ,GAAG,CAAC,mCAAmC,GAAGI;QACtD;QAEA,IAAI,CAAE,2BAA0BJ,QAAQ,GAAE,GACtCA,QAAQ,GAAG,CAAC,oBAAoB,GAAG;QAGvC,IAAI,CAAE,sBAAqBA,QAAQ,GAAE,GACjCA,QAAQ,GAAG,CAAC,eAAe,GAAGK,QAAQC,MAAM,QAAQ;QAGxD,IAAI,CAAE,+BAA8BN,QAAQ,GAAE,GAC1CA,QAAQ,GAAG,CAAC,wBAAwB,GAAGF;IAE/C;AACJ;AAEO,MAAMS,gCAAgCC,iBAAiB,oBAAoB,CAAC;IAC/E,gBAAgBhB;IAChB,cAAc;QACViB;QACAC;QACAC;QACAC;KACH;AACL"}
@@ -1,9 +1,10 @@
1
- import { AdminBeforeWatch, IsTelemetryEnabled, GetProjectIdService, GetProjectVersionService } from "../../abstractions/index.js";
1
+ import { AdminBeforeWatch, IsTelemetryEnabled, GetProjectIdService, GetProjectInstallationIdService, GetProjectVersionService } from "../../abstractions/index.js";
2
2
  declare class SetAdminAppEnvVarsBeforeWatchImpl implements AdminBeforeWatch.Interface {
3
3
  private isTelemetryEnabled;
4
4
  private getProjectIdService;
5
+ private getProjectInstallationIdService;
5
6
  private getProjectVersionService;
6
- constructor(isTelemetryEnabled: IsTelemetryEnabled.Interface, getProjectIdService: GetProjectIdService.Interface, getProjectVersionService: GetProjectVersionService.Interface);
7
+ constructor(isTelemetryEnabled: IsTelemetryEnabled.Interface, getProjectIdService: GetProjectIdService.Interface, getProjectInstallationIdService: GetProjectInstallationIdService.Interface, getProjectVersionService: GetProjectVersionService.Interface);
7
8
  execute(): Promise<void>;
8
9
  }
9
10
  export declare const SetAdminAppEnvVarsBeforeWatch: typeof SetAdminAppEnvVarsBeforeWatchImpl & {
@@ -1,10 +1,11 @@
1
- import { AdminBeforeWatch, GetProjectIdService, GetProjectVersionService, IsTelemetryEnabled } from "../../abstractions/index.js";
1
+ import { AdminBeforeWatch, GetProjectIdService, GetProjectInstallationIdService, GetProjectVersionService, IsTelemetryEnabled } from "../../abstractions/index.js";
2
2
  import { globalConfig } from "@webiny/global-config";
3
3
  import { isCI } from "ci-info";
4
4
  class SetAdminAppEnvVarsBeforeWatchImpl {
5
- constructor(isTelemetryEnabled, getProjectIdService, getProjectVersionService){
5
+ constructor(isTelemetryEnabled, getProjectIdService, getProjectInstallationIdService, getProjectVersionService){
6
6
  this.isTelemetryEnabled = isTelemetryEnabled;
7
7
  this.getProjectIdService = getProjectIdService;
8
+ this.getProjectInstallationIdService = getProjectInstallationIdService;
8
9
  this.getProjectVersionService = getProjectVersionService;
9
10
  }
10
11
  async execute() {
@@ -15,6 +16,10 @@ class SetAdminAppEnvVarsBeforeWatchImpl {
15
16
  process.env.REACT_APP_WEBINY_PROJECT_ID = projectId;
16
17
  process.env.REACT_APP_WCP_PROJECT_ID = projectId;
17
18
  }
19
+ if (!("REACT_APP_WEBINY_INSTALLATION_ID" in process.env)) {
20
+ const installationId = this.getProjectInstallationIdService.execute();
21
+ if (installationId) process.env.REACT_APP_WEBINY_INSTALLATION_ID = installationId;
22
+ }
18
23
  if (!("REACT_APP_WEBINY_TELEMETRY" in process.env)) process.env.REACT_APP_WEBINY_TELEMETRY = String(telemetry);
19
24
  if (!("REACT_APP_WEBINY_TELEMETRY_USER_ID" in process.env)) process.env.REACT_APP_WEBINY_TELEMETRY_USER_ID = globalConfig.get("id");
20
25
  if (!("REACT_APP_WEBINY_TELEMETRY_NEW_USER" in process.env)) {
@@ -31,6 +36,7 @@ const SetAdminAppEnvVarsBeforeWatch = AdminBeforeWatch.createImplementation({
31
36
  dependencies: [
32
37
  IsTelemetryEnabled,
33
38
  GetProjectIdService,
39
+ GetProjectInstallationIdService,
34
40
  GetProjectVersionService
35
41
  ]
36
42
  });
@@ -1 +1 @@
1
- {"version":3,"file":"extensions/Project/SetAdminAppEnvVarsBeforeWatch.js","sources":["../../../src/extensions/Project/SetAdminAppEnvVarsBeforeWatch.ts"],"sourcesContent":["import {\n AdminBeforeWatch,\n IsTelemetryEnabled,\n GetProjectIdService,\n GetProjectVersionService\n} from \"~/abstractions/index.js\";\nimport { globalConfig } from \"@webiny/global-config\";\nimport { isCI } from \"ci-info\";\n\nclass SetAdminAppEnvVarsBeforeWatchImpl implements AdminBeforeWatch.Interface {\n constructor(\n private isTelemetryEnabled: IsTelemetryEnabled.Interface,\n private getProjectIdService: GetProjectIdService.Interface,\n private getProjectVersionService: GetProjectVersionService.Interface\n ) {}\n\n async execute() {\n const projectId = await this.getProjectIdService.execute();\n const projectVersion = this.getProjectVersionService.execute();\n\n const telemetry = await this.isTelemetryEnabled.execute();\n\n if (projectId) {\n process.env.REACT_APP_WEBINY_PROJECT_ID = projectId;\n process.env.REACT_APP_WCP_PROJECT_ID = projectId;\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY = String(telemetry);\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_USER_ID\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY_USER_ID = globalConfig.get(\"id\");\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_NEW_USER\" in process.env)) {\n const newUser = Boolean(globalConfig.get(\"newUser\")).toString();\n process.env.REACT_APP_WEBINY_TELEMETRY_NEW_USER = newUser;\n }\n\n if (!(\"INLINE_RUNTIME_CHUNK\" in process.env)) {\n process.env.INLINE_RUNTIME_CHUNK = \"true\";\n }\n\n if (!(\"REACT_APP_IS_CI\" in process.env)) {\n process.env.REACT_APP_IS_CI = Boolean(isCI).toString();\n }\n\n if (!(\"REACT_APP_WEBINY_VERSION\" in process.env)) {\n process.env.REACT_APP_WEBINY_VERSION = projectVersion;\n }\n }\n}\n\nexport const SetAdminAppEnvVarsBeforeWatch = AdminBeforeWatch.createImplementation({\n implementation: SetAdminAppEnvVarsBeforeWatchImpl,\n dependencies: [IsTelemetryEnabled, GetProjectIdService, GetProjectVersionService]\n});\n"],"names":["SetAdminAppEnvVarsBeforeWatchImpl","isTelemetryEnabled","getProjectIdService","getProjectVersionService","projectId","projectVersion","telemetry","process","String","globalConfig","newUser","Boolean","isCI","SetAdminAppEnvVarsBeforeWatch","AdminBeforeWatch","IsTelemetryEnabled","GetProjectIdService","GetProjectVersionService"],"mappings":";;;AASA,MAAMA;IACF,YACYC,kBAAgD,EAChDC,mBAAkD,EAClDC,wBAA4D,CACtE;aAHUF,kBAAkB,GAAlBA;aACAC,mBAAmB,GAAnBA;aACAC,wBAAwB,GAAxBA;IACT;IAEH,MAAM,UAAU;QACZ,MAAMC,YAAY,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO;QACxD,MAAMC,iBAAiB,IAAI,CAAC,wBAAwB,CAAC,OAAO;QAE5D,MAAMC,YAAY,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO;QAEvD,IAAIF,WAAW;YACXG,QAAQ,GAAG,CAAC,2BAA2B,GAAGH;YAC1CG,QAAQ,GAAG,CAAC,wBAAwB,GAAGH;QAC3C;QAEA,IAAI,CAAE,iCAAgCG,QAAQ,GAAE,GAC5CA,QAAQ,GAAG,CAAC,0BAA0B,GAAGC,OAAOF;QAGpD,IAAI,CAAE,yCAAwCC,QAAQ,GAAE,GACpDA,QAAQ,GAAG,CAAC,kCAAkC,GAAGE,aAAa,GAAG,CAAC;QAGtE,IAAI,CAAE,0CAAyCF,QAAQ,GAAE,GAAI;YACzD,MAAMG,UAAUC,QAAQF,aAAa,GAAG,CAAC,YAAY,QAAQ;YAC7DF,QAAQ,GAAG,CAAC,mCAAmC,GAAGG;QACtD;QAEA,IAAI,CAAE,2BAA0BH,QAAQ,GAAE,GACtCA,QAAQ,GAAG,CAAC,oBAAoB,GAAG;QAGvC,IAAI,CAAE,sBAAqBA,QAAQ,GAAE,GACjCA,QAAQ,GAAG,CAAC,eAAe,GAAGI,QAAQC,MAAM,QAAQ;QAGxD,IAAI,CAAE,+BAA8BL,QAAQ,GAAE,GAC1CA,QAAQ,GAAG,CAAC,wBAAwB,GAAGF;IAE/C;AACJ;AAEO,MAAMQ,gCAAgCC,iBAAiB,oBAAoB,CAAC;IAC/E,gBAAgBd;IAChB,cAAc;QAACe;QAAoBC;QAAqBC;KAAyB;AACrF"}
1
+ {"version":3,"file":"extensions/Project/SetAdminAppEnvVarsBeforeWatch.js","sources":["../../../src/extensions/Project/SetAdminAppEnvVarsBeforeWatch.ts"],"sourcesContent":["import {\n AdminBeforeWatch,\n IsTelemetryEnabled,\n GetProjectIdService,\n GetProjectInstallationIdService,\n GetProjectVersionService\n} from \"~/abstractions/index.js\";\nimport { globalConfig } from \"@webiny/global-config\";\nimport { isCI } from \"ci-info\";\n\nclass SetAdminAppEnvVarsBeforeWatchImpl implements AdminBeforeWatch.Interface {\n constructor(\n private isTelemetryEnabled: IsTelemetryEnabled.Interface,\n private getProjectIdService: GetProjectIdService.Interface,\n private getProjectInstallationIdService: GetProjectInstallationIdService.Interface,\n private getProjectVersionService: GetProjectVersionService.Interface\n ) {}\n\n async execute() {\n const projectId = await this.getProjectIdService.execute();\n const projectVersion = this.getProjectVersionService.execute();\n\n const telemetry = await this.isTelemetryEnabled.execute();\n\n if (projectId) {\n process.env.REACT_APP_WEBINY_PROJECT_ID = projectId;\n process.env.REACT_APP_WCP_PROJECT_ID = projectId;\n }\n\n if (!(\"REACT_APP_WEBINY_INSTALLATION_ID\" in process.env)) {\n const installationId = this.getProjectInstallationIdService.execute();\n if (installationId) {\n process.env.REACT_APP_WEBINY_INSTALLATION_ID = installationId;\n }\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY = String(telemetry);\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_USER_ID\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY_USER_ID = globalConfig.get(\"id\");\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_NEW_USER\" in process.env)) {\n const newUser = Boolean(globalConfig.get(\"newUser\")).toString();\n process.env.REACT_APP_WEBINY_TELEMETRY_NEW_USER = newUser;\n }\n\n if (!(\"INLINE_RUNTIME_CHUNK\" in process.env)) {\n process.env.INLINE_RUNTIME_CHUNK = \"true\";\n }\n\n if (!(\"REACT_APP_IS_CI\" in process.env)) {\n process.env.REACT_APP_IS_CI = Boolean(isCI).toString();\n }\n\n if (!(\"REACT_APP_WEBINY_VERSION\" in process.env)) {\n process.env.REACT_APP_WEBINY_VERSION = projectVersion;\n }\n }\n}\n\nexport const SetAdminAppEnvVarsBeforeWatch = AdminBeforeWatch.createImplementation({\n implementation: SetAdminAppEnvVarsBeforeWatchImpl,\n dependencies: [\n IsTelemetryEnabled,\n GetProjectIdService,\n GetProjectInstallationIdService,\n GetProjectVersionService\n ]\n});\n"],"names":["SetAdminAppEnvVarsBeforeWatchImpl","isTelemetryEnabled","getProjectIdService","getProjectInstallationIdService","getProjectVersionService","projectId","projectVersion","telemetry","process","installationId","String","globalConfig","newUser","Boolean","isCI","SetAdminAppEnvVarsBeforeWatch","AdminBeforeWatch","IsTelemetryEnabled","GetProjectIdService","GetProjectInstallationIdService","GetProjectVersionService"],"mappings":";;;AAUA,MAAMA;IACF,YACYC,kBAAgD,EAChDC,mBAAkD,EAClDC,+BAA0E,EAC1EC,wBAA4D,CACtE;aAJUH,kBAAkB,GAAlBA;aACAC,mBAAmB,GAAnBA;aACAC,+BAA+B,GAA/BA;aACAC,wBAAwB,GAAxBA;IACT;IAEH,MAAM,UAAU;QACZ,MAAMC,YAAY,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO;QACxD,MAAMC,iBAAiB,IAAI,CAAC,wBAAwB,CAAC,OAAO;QAE5D,MAAMC,YAAY,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO;QAEvD,IAAIF,WAAW;YACXG,QAAQ,GAAG,CAAC,2BAA2B,GAAGH;YAC1CG,QAAQ,GAAG,CAAC,wBAAwB,GAAGH;QAC3C;QAEA,IAAI,CAAE,uCAAsCG,QAAQ,GAAE,GAAI;YACtD,MAAMC,iBAAiB,IAAI,CAAC,+BAA+B,CAAC,OAAO;YACnE,IAAIA,gBACAD,QAAQ,GAAG,CAAC,gCAAgC,GAAGC;QAEvD;QAEA,IAAI,CAAE,iCAAgCD,QAAQ,GAAE,GAC5CA,QAAQ,GAAG,CAAC,0BAA0B,GAAGE,OAAOH;QAGpD,IAAI,CAAE,yCAAwCC,QAAQ,GAAE,GACpDA,QAAQ,GAAG,CAAC,kCAAkC,GAAGG,aAAa,GAAG,CAAC;QAGtE,IAAI,CAAE,0CAAyCH,QAAQ,GAAE,GAAI;YACzD,MAAMI,UAAUC,QAAQF,aAAa,GAAG,CAAC,YAAY,QAAQ;YAC7DH,QAAQ,GAAG,CAAC,mCAAmC,GAAGI;QACtD;QAEA,IAAI,CAAE,2BAA0BJ,QAAQ,GAAE,GACtCA,QAAQ,GAAG,CAAC,oBAAoB,GAAG;QAGvC,IAAI,CAAE,sBAAqBA,QAAQ,GAAE,GACjCA,QAAQ,GAAG,CAAC,eAAe,GAAGK,QAAQC,MAAM,QAAQ;QAGxD,IAAI,CAAE,+BAA8BN,QAAQ,GAAE,GAC1CA,QAAQ,GAAG,CAAC,wBAAwB,GAAGF;IAE/C;AACJ;AAEO,MAAMS,gCAAgCC,iBAAiB,oBAAoB,CAAC;IAC/E,gBAAgBhB;IAChB,cAAc;QACViB;QACAC;QACAC;QACAC;KACH;AACL"}
@@ -1,5 +1,5 @@
1
1
  import { BeforeDeploy, GetProductionEnvironments, GetProjectConfig, ProjectSdkParamsService } from "../../abstractions/index.js";
2
- import { GracefulError } from "@webiny/project";
2
+ import { GracefulError } from "../../index.js";
3
3
  class ValidateEncryptionBeforeDeployImpl {
4
4
  constructor(getProductionEnvironments, projectSdkParamsService, getProjectConfig){
5
5
  this.getProductionEnvironments = getProductionEnvironments;
@@ -1 +1 @@
1
- {"version":3,"file":"extensions/Project/ValidateEncryptionBeforeDeploy.js","sources":["../../../src/extensions/Project/ValidateEncryptionBeforeDeploy.ts"],"sourcesContent":["import {\n BeforeDeploy,\n GetProductionEnvironments,\n GetProjectConfig,\n ProjectSdkParamsService\n} from \"~/abstractions/index.js\";\nimport { GracefulError } from \"@webiny/project\";\n\nclass ValidateEncryptionBeforeDeployImpl implements BeforeDeploy.Interface {\n constructor(\n private getProductionEnvironments: GetProductionEnvironments.Interface,\n private projectSdkParamsService: ProjectSdkParamsService.Interface,\n private getProjectConfig: GetProjectConfig.Interface\n ) {}\n\n async execute() {\n const { env } = this.projectSdkParamsService.get();\n const prodEnvs = await this.getProductionEnvironments.execute();\n\n if (!prodEnvs.includes(env)) {\n return;\n }\n\n const projectConfig = await this.getProjectConfig.execute();\n const [encryption] = projectConfig.extensionsByType(\"Infra/Encryption\");\n\n if (encryption) {\n return;\n }\n\n const error = new Error(\"Encryption is not configured for production environment.\");\n\n const message = [\n \"Deploying to a production environment requires encryption to be configured.\",\n \"Set the %s environment variable and add %s to your project config.\",\n \"Learn more: https://webiny.link/encryption\"\n ].join(\" \");\n\n throw GracefulError.from(\n error,\n message,\n \"WEBINY_ENCRYPTION_PASSPHRASE\",\n \"<Infra.Encryption>\"\n );\n }\n}\n\nexport const ValidateEncryptionBeforeDeploy = BeforeDeploy.createImplementation({\n implementation: ValidateEncryptionBeforeDeployImpl,\n dependencies: [GetProductionEnvironments, ProjectSdkParamsService, GetProjectConfig]\n});\n"],"names":["ValidateEncryptionBeforeDeployImpl","getProductionEnvironments","projectSdkParamsService","getProjectConfig","env","prodEnvs","projectConfig","encryption","error","Error","message","GracefulError","ValidateEncryptionBeforeDeploy","BeforeDeploy","GetProductionEnvironments","ProjectSdkParamsService","GetProjectConfig"],"mappings":";;AAQA,MAAMA;IACF,YACYC,yBAA8D,EAC9DC,uBAA0D,EAC1DC,gBAA4C,CACtD;aAHUF,yBAAyB,GAAzBA;aACAC,uBAAuB,GAAvBA;aACAC,gBAAgB,GAAhBA;IACT;IAEH,MAAM,UAAU;QACZ,MAAM,EAAEC,GAAG,EAAE,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG;QAChD,MAAMC,WAAW,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO;QAE7D,IAAI,CAACA,SAAS,QAAQ,CAACD,MACnB;QAGJ,MAAME,gBAAgB,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO;QACzD,MAAM,CAACC,WAAW,GAAGD,cAAc,gBAAgB,CAAC;QAEpD,IAAIC,YACA;QAGJ,MAAMC,QAAQ,IAAIC,MAAM;QAExB,MAAMC,UAAU;QAMhB,MAAMC,cAAc,IAAI,CACpBH,OACAE,SACA,gCACA;IAER;AACJ;AAEO,MAAME,iCAAiCC,aAAa,oBAAoB,CAAC;IAC5E,gBAAgBb;IAChB,cAAc;QAACc;QAA2BC;QAAyBC;KAAiB;AACxF"}
1
+ {"version":3,"file":"extensions/Project/ValidateEncryptionBeforeDeploy.js","sources":["../../../src/extensions/Project/ValidateEncryptionBeforeDeploy.ts"],"sourcesContent":["import {\n BeforeDeploy,\n GetProductionEnvironments,\n GetProjectConfig,\n ProjectSdkParamsService\n} from \"~/abstractions/index.js\";\nimport { GracefulError } from \"~/index.js\";\n\nclass ValidateEncryptionBeforeDeployImpl implements BeforeDeploy.Interface {\n constructor(\n private getProductionEnvironments: GetProductionEnvironments.Interface,\n private projectSdkParamsService: ProjectSdkParamsService.Interface,\n private getProjectConfig: GetProjectConfig.Interface\n ) {}\n\n async execute() {\n const { env } = this.projectSdkParamsService.get();\n const prodEnvs = await this.getProductionEnvironments.execute();\n\n if (!prodEnvs.includes(env)) {\n return;\n }\n\n const projectConfig = await this.getProjectConfig.execute();\n const [encryption] = projectConfig.extensionsByType(\"Infra/Encryption\");\n\n if (encryption) {\n return;\n }\n\n const error = new Error(\"Encryption is not configured for production environment.\");\n\n const message = [\n \"Deploying to a production environment requires encryption to be configured.\",\n \"Set the %s environment variable and add %s to your project config.\",\n \"Learn more: https://webiny.link/encryption\"\n ].join(\" \");\n\n throw GracefulError.from(\n error,\n message,\n \"WEBINY_ENCRYPTION_PASSPHRASE\",\n \"<Infra.Encryption>\"\n );\n }\n}\n\nexport const ValidateEncryptionBeforeDeploy = BeforeDeploy.createImplementation({\n implementation: ValidateEncryptionBeforeDeployImpl,\n dependencies: [GetProductionEnvironments, ProjectSdkParamsService, GetProjectConfig]\n});\n"],"names":["ValidateEncryptionBeforeDeployImpl","getProductionEnvironments","projectSdkParamsService","getProjectConfig","env","prodEnvs","projectConfig","encryption","error","Error","message","GracefulError","ValidateEncryptionBeforeDeploy","BeforeDeploy","GetProductionEnvironments","ProjectSdkParamsService","GetProjectConfig"],"mappings":";;AAQA,MAAMA;IACF,YACYC,yBAA8D,EAC9DC,uBAA0D,EAC1DC,gBAA4C,CACtD;aAHUF,yBAAyB,GAAzBA;aACAC,uBAAuB,GAAvBA;aACAC,gBAAgB,GAAhBA;IACT;IAEH,MAAM,UAAU;QACZ,MAAM,EAAEC,GAAG,EAAE,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG;QAChD,MAAMC,WAAW,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO;QAE7D,IAAI,CAACA,SAAS,QAAQ,CAACD,MACnB;QAGJ,MAAME,gBAAgB,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO;QACzD,MAAM,CAACC,WAAW,GAAGD,cAAc,gBAAgB,CAAC;QAEpD,IAAIC,YACA;QAGJ,MAAMC,QAAQ,IAAIC,MAAM;QAExB,MAAMC,UAAU;QAMhB,MAAMC,cAAc,IAAI,CACpBH,OACAE,SACA,gCACA;IAER;AACJ;AAEO,MAAME,iCAAiCC,aAAa,oBAAoB,CAAC;IAC5E,gBAAgBb;IAChB,cAAc;QAACc;QAA2BC;QAAyBC;KAAiB;AACxF"}
@@ -1,5 +1,5 @@
1
1
  import { CoreBeforeDeploy, IsRemotePulumiBackendService, ProjectSdkParamsService } from "../../abstractions/index.js";
2
- import { GracefulError } from "@webiny/project";
2
+ import { GracefulError } from "../../index.js";
3
3
  class ValidateProductionPulumiStateImpl {
4
4
  constructor(isRemotePulumiBackendService, projectSdkParamsService){
5
5
  this.isRemotePulumiBackendService = isRemotePulumiBackendService;
@@ -1 +1 @@
1
- {"version":3,"file":"extensions/Project/ValidateProductionPulumiState.js","sources":["../../../src/extensions/Project/ValidateProductionPulumiState.ts"],"sourcesContent":["import {\n CoreBeforeDeploy,\n IsRemotePulumiBackendService,\n ProjectSdkParamsService\n} from \"~/abstractions/index.js\";\nimport { GracefulError } from \"@webiny/project\";\n\nclass ValidateProductionPulumiStateImpl implements CoreBeforeDeploy.Interface {\n constructor(\n private isRemotePulumiBackendService: IsRemotePulumiBackendService.Interface,\n private projectSdkParamsService: ProjectSdkParamsService.Interface\n ) {}\n\n async execute(params: CoreBeforeDeploy.Params) {\n const sdkParams = this.projectSdkParamsService.get();\n const { env } = sdkParams;\n const { allowLocalStateFiles } = params;\n\n const prodEnvs = [\"prod\", \"production\"];\n const isProdEnv = prodEnvs.includes(env);\n\n if (!isProdEnv) {\n return;\n }\n\n if (this.isRemotePulumiBackendService.execute()) {\n return;\n }\n\n if (allowLocalStateFiles) {\n return;\n }\n\n const error = new Error(\"Cannot deploy to production with local state files.\");\n\n const message = [\n \"Use the %s flag to continue with local Pulumi state files,\",\n \"or configure a remote backend for production deployments.\",\n \"Learn more: https://webiny.link/state-files-production.\"\n ].join(\" \");\n\n throw GracefulError.from(error, message, \"--allow-local-state-files\");\n }\n}\n\nexport const ValidateProductionPulumiState = CoreBeforeDeploy.createImplementation({\n implementation: ValidateProductionPulumiStateImpl,\n dependencies: [IsRemotePulumiBackendService, ProjectSdkParamsService]\n});\n"],"names":["ValidateProductionPulumiStateImpl","isRemotePulumiBackendService","projectSdkParamsService","params","sdkParams","env","allowLocalStateFiles","prodEnvs","isProdEnv","error","Error","message","GracefulError","ValidateProductionPulumiState","CoreBeforeDeploy","IsRemotePulumiBackendService","ProjectSdkParamsService"],"mappings":";;AAOA,MAAMA;IACF,YACYC,4BAAoE,EACpEC,uBAA0D,CACpE;aAFUD,4BAA4B,GAA5BA;aACAC,uBAAuB,GAAvBA;IACT;IAEH,MAAM,QAAQC,MAA+B,EAAE;QAC3C,MAAMC,YAAY,IAAI,CAAC,uBAAuB,CAAC,GAAG;QAClD,MAAM,EAAEC,GAAG,EAAE,GAAGD;QAChB,MAAM,EAAEE,oBAAoB,EAAE,GAAGH;QAEjC,MAAMI,WAAW;YAAC;YAAQ;SAAa;QACvC,MAAMC,YAAYD,SAAS,QAAQ,CAACF;QAEpC,IAAI,CAACG,WACD;QAGJ,IAAI,IAAI,CAAC,4BAA4B,CAAC,OAAO,IACzC;QAGJ,IAAIF,sBACA;QAGJ,MAAMG,QAAQ,IAAIC,MAAM;QAExB,MAAMC,UAAU;QAMhB,MAAMC,cAAc,IAAI,CAACH,OAAOE,SAAS;IAC7C;AACJ;AAEO,MAAME,gCAAgCC,iBAAiB,oBAAoB,CAAC;IAC/E,gBAAgBd;IAChB,cAAc;QAACe;QAA8BC;KAAwB;AACzE"}
1
+ {"version":3,"file":"extensions/Project/ValidateProductionPulumiState.js","sources":["../../../src/extensions/Project/ValidateProductionPulumiState.ts"],"sourcesContent":["import {\n CoreBeforeDeploy,\n IsRemotePulumiBackendService,\n ProjectSdkParamsService\n} from \"~/abstractions/index.js\";\nimport { GracefulError } from \"~/index.js\";\n\nclass ValidateProductionPulumiStateImpl implements CoreBeforeDeploy.Interface {\n constructor(\n private isRemotePulumiBackendService: IsRemotePulumiBackendService.Interface,\n private projectSdkParamsService: ProjectSdkParamsService.Interface\n ) {}\n\n async execute(params: CoreBeforeDeploy.Params) {\n const sdkParams = this.projectSdkParamsService.get();\n const { env } = sdkParams;\n const { allowLocalStateFiles } = params;\n\n const prodEnvs = [\"prod\", \"production\"];\n const isProdEnv = prodEnvs.includes(env);\n\n if (!isProdEnv) {\n return;\n }\n\n if (this.isRemotePulumiBackendService.execute()) {\n return;\n }\n\n if (allowLocalStateFiles) {\n return;\n }\n\n const error = new Error(\"Cannot deploy to production with local state files.\");\n\n const message = [\n \"Use the %s flag to continue with local Pulumi state files,\",\n \"or configure a remote backend for production deployments.\",\n \"Learn more: https://webiny.link/state-files-production.\"\n ].join(\" \");\n\n throw GracefulError.from(error, message, \"--allow-local-state-files\");\n }\n}\n\nexport const ValidateProductionPulumiState = CoreBeforeDeploy.createImplementation({\n implementation: ValidateProductionPulumiStateImpl,\n dependencies: [IsRemotePulumiBackendService, ProjectSdkParamsService]\n});\n"],"names":["ValidateProductionPulumiStateImpl","isRemotePulumiBackendService","projectSdkParamsService","params","sdkParams","env","allowLocalStateFiles","prodEnvs","isProdEnv","error","Error","message","GracefulError","ValidateProductionPulumiState","CoreBeforeDeploy","IsRemotePulumiBackendService","ProjectSdkParamsService"],"mappings":";;AAOA,MAAMA;IACF,YACYC,4BAAoE,EACpEC,uBAA0D,CACpE;aAFUD,4BAA4B,GAA5BA;aACAC,uBAAuB,GAAvBA;IACT;IAEH,MAAM,QAAQC,MAA+B,EAAE;QAC3C,MAAMC,YAAY,IAAI,CAAC,uBAAuB,CAAC,GAAG;QAClD,MAAM,EAAEC,GAAG,EAAE,GAAGD;QAChB,MAAM,EAAEE,oBAAoB,EAAE,GAAGH;QAEjC,MAAMI,WAAW;YAAC;YAAQ;SAAa;QACvC,MAAMC,YAAYD,SAAS,QAAQ,CAACF;QAEpC,IAAI,CAACG,WACD;QAGJ,IAAI,IAAI,CAAC,4BAA4B,CAAC,OAAO,IACzC;QAGJ,IAAIF,sBACA;QAGJ,MAAMG,QAAQ,IAAIC,MAAM;QAExB,MAAMC,UAAU;QAMhB,MAAMC,cAAc,IAAI,CAACH,OAAOE,SAAS;IAC7C;AACJ;AAEO,MAAME,gCAAgCC,iBAAiB,oBAAoB,CAAC;IAC/E,gBAAgBd;IAChB,cAAc;QAACe;QAA8BC;KAAwB;AACzE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/project",
3
- "version": "6.4.0-beta.3",
3
+ "version": "6.4.0-beta.4",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -13,17 +13,17 @@
13
13
  "description": "An SDK for managing Webiny projects.",
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
- "@webiny/aws-sdk": "6.4.0-beta.3",
17
- "@webiny/build-tools": "6.4.0-beta.3",
16
+ "@webiny/aws-sdk": "6.4.0-beta.4",
17
+ "@webiny/build-tools": "6.4.0-beta.4",
18
18
  "@webiny/di": "1.0.1",
19
- "@webiny/feature-flags": "6.4.0-beta.3",
20
- "@webiny/global-config": "6.4.0-beta.3",
21
- "@webiny/pulumi-sdk": "6.4.0-beta.3",
22
- "@webiny/react-properties": "6.4.0-beta.3",
23
- "@webiny/system-requirements": "6.4.0-beta.3",
24
- "@webiny/telemetry": "6.4.0-beta.3",
25
- "@webiny/utils": "6.4.0-beta.3",
26
- "@webiny/wcp": "6.4.0-beta.3",
19
+ "@webiny/feature-flags": "6.4.0-beta.4",
20
+ "@webiny/global-config": "6.4.0-beta.4",
21
+ "@webiny/pulumi-sdk": "6.4.0-beta.4",
22
+ "@webiny/react-properties": "6.4.0-beta.4",
23
+ "@webiny/system-requirements": "6.4.0-beta.4",
24
+ "@webiny/telemetry": "6.4.0-beta.4",
25
+ "@webiny/utils": "6.4.0-beta.4",
26
+ "@webiny/wcp": "6.4.0-beta.4",
27
27
  "chalk": "5.6.2",
28
28
  "chokidar": "5.0.0",
29
29
  "ci-info": "4.4.0",
@@ -72,8 +72,10 @@
72
72
  }
73
73
  },
74
74
  "publishConfig": {
75
- "access": "public",
76
- "directory": "dist"
75
+ "access": "public"
77
76
  },
78
- "gitHead": "2e58681d4344024bfb60e6180338e2f154ec87f0"
77
+ "gitHead": "8476da73b653c89cc1474d968baf55c1b0ae0e5f",
78
+ "webiny": {
79
+ "publishFrom": "dist"
80
+ }
79
81
  }
@@ -0,0 +1,10 @@
1
+ import { GetCwdService, GetProjectInstallationIdService } from "../../abstractions/index.js";
2
+ declare class DefaultGetProjectInstallationIdService implements GetProjectInstallationIdService.Interface {
3
+ private getCwdService;
4
+ private loaded;
5
+ private installationId;
6
+ constructor(getCwdService: GetCwdService.Interface);
7
+ execute(): string | null;
8
+ }
9
+ export declare const getProjectInstallationIdService: import("@webiny/di").Implementation<typeof DefaultGetProjectInstallationIdService>;
10
+ export {};
@@ -0,0 +1,34 @@
1
+ import { createImplementation } from "@webiny/di";
2
+ import { existsSync, readFileSync } from "node:fs";
3
+ import { join } from "node:path";
4
+ import { GetCwdService, GetProjectInstallationIdService } from "../../abstractions/index.js";
5
+ class DefaultGetProjectInstallationIdService {
6
+ constructor(getCwdService){
7
+ this.getCwdService = getCwdService;
8
+ this.loaded = false;
9
+ this.installationId = null;
10
+ }
11
+ execute() {
12
+ if (this.loaded) return this.installationId;
13
+ try {
14
+ const path = join(this.getCwdService.execute(), "package.json");
15
+ if (!existsSync(path)) return null;
16
+ const data = JSON.parse(readFileSync(path, "utf8"));
17
+ this.installationId = "string" == typeof data?.webiny?.installationId ? data.webiny.installationId : null;
18
+ } catch {
19
+ this.installationId = null;
20
+ }
21
+ this.loaded = true;
22
+ return this.installationId;
23
+ }
24
+ }
25
+ const getProjectInstallationIdService = createImplementation({
26
+ abstraction: GetProjectInstallationIdService,
27
+ implementation: DefaultGetProjectInstallationIdService,
28
+ dependencies: [
29
+ GetCwdService
30
+ ]
31
+ });
32
+ export { getProjectInstallationIdService };
33
+
34
+ //# sourceMappingURL=GetProjectInstallationIdService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services/GetProjectInstallationIdService/GetProjectInstallationIdService.js","sources":["../../../src/services/GetProjectInstallationIdService/GetProjectInstallationIdService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { GetCwdService, GetProjectInstallationIdService } from \"~/abstractions/index.js\";\n\nclass DefaultGetProjectInstallationIdService implements GetProjectInstallationIdService.Interface {\n private loaded = false;\n private installationId: string | null = null;\n\n constructor(private getCwdService: GetCwdService.Interface) {}\n\n execute() {\n if (this.loaded) {\n return this.installationId;\n }\n\n try {\n const path = join(this.getCwdService.execute(), \"package.json\");\n if (!existsSync(path)) {\n return null;\n }\n const data = JSON.parse(readFileSync(path, \"utf8\"));\n this.installationId =\n typeof data?.webiny?.installationId === \"string\"\n ? data.webiny.installationId\n : null;\n } catch {\n this.installationId = null;\n }\n\n this.loaded = true;\n return this.installationId;\n }\n}\n\nexport const getProjectInstallationIdService = createImplementation({\n abstraction: GetProjectInstallationIdService,\n implementation: DefaultGetProjectInstallationIdService,\n dependencies: [GetCwdService]\n});\n"],"names":["DefaultGetProjectInstallationIdService","getCwdService","path","join","existsSync","data","JSON","readFileSync","getProjectInstallationIdService","createImplementation","GetProjectInstallationIdService","GetCwdService"],"mappings":";;;;AAKA,MAAMA;IAIF,YAAoBC,aAAsC,CAAE;aAAxCA,aAAa,GAAbA;aAHZ,MAAM,GAAG;aACT,cAAc,GAAkB;IAEqB;IAE7D,UAAU;QACN,IAAI,IAAI,CAAC,MAAM,EACX,OAAO,IAAI,CAAC,cAAc;QAG9B,IAAI;YACA,MAAMC,OAAOC,KAAK,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI;YAChD,IAAI,CAACC,WAAWF,OACZ,OAAO;YAEX,MAAMG,OAAOC,KAAK,KAAK,CAACC,aAAaL,MAAM;YAC3C,IAAI,CAAC,cAAc,GACf,AAAwC,YAAxC,OAAOG,MAAM,QAAQ,iBACfA,KAAK,MAAM,CAAC,cAAc,GAC1B;QACd,EAAE,OAAM;YACJ,IAAI,CAAC,cAAc,GAAG;QAC1B;QAEA,IAAI,CAAC,MAAM,GAAG;QACd,OAAO,IAAI,CAAC,cAAc;IAC9B;AACJ;AAEO,MAAMG,kCAAkCC,qBAAqB;IAChE,aAAaC;IACb,gBAAgBV;IAChB,cAAc;QAACW;KAAc;AACjC"}
@@ -0,0 +1 @@
1
+ export * from "./GetProjectInstallationIdService.js";
@@ -0,0 +1 @@
1
+ export * from "./GetProjectInstallationIdService.js";
@@ -1,8 +1,9 @@
1
- import { GetProjectService, LoadEnvVarsService, LoggerService } from "../../abstractions/index.js";
1
+ import { GetProjectService, LoadEnvVarsService, LoggerService, ProjectSdkParamsService } from "../../abstractions/index.js";
2
2
  export declare class DefaultLoadEnvVarsService implements LoadEnvVarsService.Interface {
3
3
  private getProjectService;
4
4
  private loggerService;
5
- constructor(getProjectService: GetProjectService.Interface, loggerService: LoggerService.Interface);
5
+ private projectSdkParamsService;
6
+ constructor(getProjectService: GetProjectService.Interface, loggerService: LoggerService.Interface, projectSdkParamsService: ProjectSdkParamsService.Interface);
6
7
  execute(): Promise<void>;
7
8
  }
8
9
  export declare const loadEnvVarsService: import("@webiny/di").Implementation<typeof DefaultLoadEnvVarsService>;
@@ -1,26 +1,33 @@
1
1
  import { createImplementation } from "@webiny/di";
2
- import { GetProjectService, LoadEnvVarsService, LoggerService } from "../../abstractions/index.js";
2
+ import { GetProjectService, LoadEnvVarsService, LoggerService, ProjectSdkParamsService } from "../../abstractions/index.js";
3
3
  import dotenv from "dotenv";
4
4
  class DefaultLoadEnvVarsService {
5
- constructor(getProjectService, loggerService){
5
+ constructor(getProjectService, loggerService, projectSdkParamsService){
6
6
  this.getProjectService = getProjectService;
7
7
  this.loggerService = loggerService;
8
+ this.projectSdkParamsService = projectSdkParamsService;
8
9
  }
9
10
  async execute() {
10
11
  const project = this.getProjectService.execute();
11
12
  const logger = this.loggerService;
12
- const dotEnvFilePath = project.paths.rootFolder.join(".env").toString();
13
- const { error } = dotenv.config({
14
- path: dotEnvFilePath,
15
- quiet: true
16
- });
17
- if (error) logger.warn({
18
- err: error,
19
- dotEnvFilePath
20
- }, "No environment variables file found.");
21
- else logger.trace({
22
- dotEnvFilePath
23
- }, "Successfully loaded environment variables.");
13
+ const loadEnvFile = (filePath, override = false)=>{
14
+ const { error } = dotenv.config({
15
+ path: filePath,
16
+ quiet: true,
17
+ override
18
+ });
19
+ if (error) logger.trace({
20
+ err: error,
21
+ filePath
22
+ }, "No environment variables file found.");
23
+ else logger.trace({
24
+ filePath
25
+ }, "Successfully loaded environment variables.");
26
+ };
27
+ const rootFolder = project.paths.rootFolder;
28
+ loadEnvFile(rootFolder.join(".env").toString());
29
+ const { env } = this.projectSdkParamsService.get();
30
+ if (env) loadEnvFile(rootFolder.join(`.env.${env}`).toString(), true);
24
31
  }
25
32
  }
26
33
  const loadEnvVarsService = createImplementation({
@@ -28,7 +35,8 @@ const loadEnvVarsService = createImplementation({
28
35
  implementation: DefaultLoadEnvVarsService,
29
36
  dependencies: [
30
37
  GetProjectService,
31
- LoggerService
38
+ LoggerService,
39
+ ProjectSdkParamsService
32
40
  ]
33
41
  });
34
42
  export { DefaultLoadEnvVarsService, loadEnvVarsService };
@@ -1 +1 @@
1
- {"version":3,"file":"services/LoadEnvVarsService/LoadEnvVarsService.js","sources":["../../../src/services/LoadEnvVarsService/LoadEnvVarsService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { GetProjectService, LoadEnvVarsService, LoggerService } from \"~/abstractions/index.js\";\nimport dotenv from \"dotenv\";\n\nexport class DefaultLoadEnvVarsService implements LoadEnvVarsService.Interface {\n constructor(\n private getProjectService: GetProjectService.Interface,\n private loggerService: LoggerService.Interface\n ) {}\n\n async execute() {\n const project = this.getProjectService.execute();\n\n const logger = this.loggerService;\n\n const dotEnvFilePath = project.paths.rootFolder.join(\".env\").toString();\n const { error } = dotenv.config({ path: dotEnvFilePath, quiet: true });\n if (error) {\n logger.warn({ err: error, dotEnvFilePath }, `No environment variables file found.`);\n } else {\n logger.trace({ dotEnvFilePath }, `Successfully loaded environment variables.`);\n }\n }\n}\n\nexport const loadEnvVarsService = createImplementation({\n abstraction: LoadEnvVarsService,\n implementation: DefaultLoadEnvVarsService,\n dependencies: [GetProjectService, LoggerService]\n});\n"],"names":["DefaultLoadEnvVarsService","getProjectService","loggerService","project","logger","dotEnvFilePath","error","dotenv","loadEnvVarsService","createImplementation","LoadEnvVarsService","GetProjectService","LoggerService"],"mappings":";;;AAIO,MAAMA;IACT,YACYC,iBAA8C,EAC9CC,aAAsC,CAChD;aAFUD,iBAAiB,GAAjBA;aACAC,aAAa,GAAbA;IACT;IAEH,MAAM,UAAU;QACZ,MAAMC,UAAU,IAAI,CAAC,iBAAiB,CAAC,OAAO;QAE9C,MAAMC,SAAS,IAAI,CAAC,aAAa;QAEjC,MAAMC,iBAAiBF,QAAQ,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,QAAQ;QACrE,MAAM,EAAEG,KAAK,EAAE,GAAGC,OAAO,MAAM,CAAC;YAAE,MAAMF;YAAgB,OAAO;QAAK;QACpE,IAAIC,OACAF,OAAO,IAAI,CAAC;YAAE,KAAKE;YAAOD;QAAe,GAAG;aAE5CD,OAAO,KAAK,CAAC;YAAEC;QAAe,GAAG;IAEzC;AACJ;AAEO,MAAMG,qBAAqBC,qBAAqB;IACnD,aAAaC;IACb,gBAAgBV;IAChB,cAAc;QAACW;QAAmBC;KAAc;AACpD"}
1
+ {"version":3,"file":"services/LoadEnvVarsService/LoadEnvVarsService.js","sources":["../../../src/services/LoadEnvVarsService/LoadEnvVarsService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport {\n GetProjectService,\n LoadEnvVarsService,\n LoggerService,\n ProjectSdkParamsService\n} from \"~/abstractions/index.js\";\nimport dotenv from \"dotenv\";\n\nexport class DefaultLoadEnvVarsService implements LoadEnvVarsService.Interface {\n constructor(\n private getProjectService: GetProjectService.Interface,\n private loggerService: LoggerService.Interface,\n private projectSdkParamsService: ProjectSdkParamsService.Interface\n ) {}\n\n async execute() {\n const project = this.getProjectService.execute();\n const logger = this.loggerService;\n\n const loadEnvFile = (filePath: string, override = false) => {\n const { error } = dotenv.config({ path: filePath, quiet: true, override });\n if (error) {\n logger.trace({ err: error, filePath }, `No environment variables file found.`);\n } else {\n logger.trace({ filePath }, `Successfully loaded environment variables.`);\n }\n };\n\n const rootFolder = project.paths.rootFolder;\n\n loadEnvFile(rootFolder.join(\".env\").toString());\n\n const { env } = this.projectSdkParamsService.get();\n if (env) {\n loadEnvFile(rootFolder.join(`.env.${env}`).toString(), true);\n }\n }\n}\n\nexport const loadEnvVarsService = createImplementation({\n abstraction: LoadEnvVarsService,\n implementation: DefaultLoadEnvVarsService,\n dependencies: [GetProjectService, LoggerService, ProjectSdkParamsService]\n});\n"],"names":["DefaultLoadEnvVarsService","getProjectService","loggerService","projectSdkParamsService","project","logger","loadEnvFile","filePath","override","error","dotenv","rootFolder","env","loadEnvVarsService","createImplementation","LoadEnvVarsService","GetProjectService","LoggerService","ProjectSdkParamsService"],"mappings":";;;AASO,MAAMA;IACT,YACYC,iBAA8C,EAC9CC,aAAsC,EACtCC,uBAA0D,CACpE;aAHUF,iBAAiB,GAAjBA;aACAC,aAAa,GAAbA;aACAC,uBAAuB,GAAvBA;IACT;IAEH,MAAM,UAAU;QACZ,MAAMC,UAAU,IAAI,CAAC,iBAAiB,CAAC,OAAO;QAC9C,MAAMC,SAAS,IAAI,CAAC,aAAa;QAEjC,MAAMC,cAAc,CAACC,UAAkBC,WAAW,KAAK;YACnD,MAAM,EAAEC,KAAK,EAAE,GAAGC,OAAO,MAAM,CAAC;gBAAE,MAAMH;gBAAU,OAAO;gBAAMC;YAAS;YACxE,IAAIC,OACAJ,OAAO,KAAK,CAAC;gBAAE,KAAKI;gBAAOF;YAAS,GAAG;iBAEvCF,OAAO,KAAK,CAAC;gBAAEE;YAAS,GAAG;QAEnC;QAEA,MAAMI,aAAaP,QAAQ,KAAK,CAAC,UAAU;QAE3CE,YAAYK,WAAW,IAAI,CAAC,QAAQ,QAAQ;QAE5C,MAAM,EAAEC,GAAG,EAAE,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG;QAChD,IAAIA,KACAN,YAAYK,WAAW,IAAI,CAAC,CAAC,KAAK,EAAEC,KAAK,EAAE,QAAQ,IAAI;IAE/D;AACJ;AAEO,MAAMC,qBAAqBC,qBAAqB;IACnD,aAAaC;IACb,gBAAgBf;IAChB,cAAc;QAACgB;QAAmBC;QAAeC;KAAwB;AAC7E"}
@@ -6,6 +6,7 @@ export * from "./GetCwdService/index.js";
6
6
  export * from "./GetProjectConfigService/index.js";
7
7
  export * from "./GetProjectIdService/index.js";
8
8
  export * from "./GetProjectService/index.js";
9
+ export * from "./GetProjectInstallationIdService/index.js";
9
10
  export * from "./GetProjectVersionService/index.js";
10
11
  export * from "./GetPulumiService/index.js";
11
12
  export * from "./InitProjectSdkService/index.js";
package/services/index.js CHANGED
@@ -6,6 +6,7 @@ export * from "./GetCwdService/index.js";
6
6
  export * from "./GetProjectConfigService/index.js";
7
7
  export * from "./GetProjectIdService/index.js";
8
8
  export * from "./GetProjectService/index.js";
9
+ export * from "./GetProjectInstallationIdService/index.js";
9
10
  export * from "./GetProjectVersionService/index.js";
10
11
  export * from "./GetPulumiService/index.js";
11
12
  export * from "./InitProjectSdkService/index.js";