@webiny/project 0.0.0-unstable.e2758ee1cf → 0.0.0-unstable.e6f0dc8ca7

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 (209) hide show
  1. package/abstractions/features/DeployApp.d.ts +0 -1
  2. package/abstractions/features/DeployApp.js.map +1 -1
  3. package/abstractions/features/index.d.ts +0 -1
  4. package/abstractions/features/index.js +0 -1
  5. package/abstractions/features/index.js.map +1 -1
  6. package/defineExtension/models/ExtensionDefinitionModel.d.ts +4 -4
  7. package/defineExtension/models/ExtensionDefinitionModel.js.map +1 -1
  8. package/defineExtension/models/ExtensionInstanceModel.js +4 -1
  9. package/defineExtension/models/ExtensionInstanceModel.js.map +1 -1
  10. package/defineExtension/zodTypes/zodSrcPath.d.ts +1 -1
  11. package/defineExtension/zodTypes/zodSrcPath.js +11 -0
  12. package/defineExtension/zodTypes/zodSrcPath.js.map +1 -1
  13. package/exports/infra/admin.d.ts +0 -1
  14. package/exports/infra/admin.js +0 -1
  15. package/exports/infra/admin.js.map +1 -1
  16. package/exports/infra/api.d.ts +0 -1
  17. package/exports/infra/api.js +0 -1
  18. package/exports/infra/api.js.map +1 -1
  19. package/exports/infra/core.d.ts +0 -1
  20. package/exports/infra/core.js +0 -1
  21. package/exports/infra/core.js.map +1 -1
  22. package/exports/infra.d.ts +8 -0
  23. package/exports/infra.js +10 -0
  24. package/exports/{infra/index.js.map → infra.js.map} +1 -1
  25. package/extensions/AdminBuildParam.d.ts +2 -8
  26. package/extensions/AdminBuildParam.js +1 -1
  27. package/extensions/AdminBuildParam.js.map +1 -1
  28. package/extensions/AdminExtension.d.ts +2 -8
  29. package/extensions/ApiBuildParam.d.ts +2 -8
  30. package/extensions/ApiBuildParam.js +4 -4
  31. package/extensions/ApiBuildParam.js.map +1 -1
  32. package/extensions/ApiExtension.d.ts +2 -8
  33. package/extensions/ApiExtension.js +5 -5
  34. package/extensions/ApiExtension.js.map +1 -1
  35. package/extensions/DatabaseSetup.d.ts +7 -7
  36. package/extensions/EnvVar.d.ts +4 -7
  37. package/extensions/EnvVar.js +4 -0
  38. package/extensions/EnvVar.js.map +1 -1
  39. package/extensions/ExtensionDefinitions.d.ts +1 -5
  40. package/extensions/FeatureFlags.d.ts +17 -79
  41. package/extensions/FeatureFlags.js +12 -0
  42. package/extensions/FeatureFlags.js.map +1 -1
  43. package/extensions/Project/EnsureTelemetryEnabledForOss.js +1 -1
  44. package/extensions/Project/EnsureTelemetryEnabledForOss.js.map +1 -1
  45. package/extensions/Project/SetAdminAppEnvVarsBeforeBuild.js +1 -0
  46. package/extensions/Project/SetAdminAppEnvVarsBeforeBuild.js.map +1 -1
  47. package/extensions/Project/SetAdminAppEnvVarsBeforeWatch.js +1 -0
  48. package/extensions/Project/SetAdminAppEnvVarsBeforeWatch.js.map +1 -1
  49. package/extensions/Project/ValidateEncryptionBeforeDeploy.d.ts +12 -0
  50. package/extensions/Project/ValidateEncryptionBeforeDeploy.js +32 -0
  51. package/extensions/Project/ValidateEncryptionBeforeDeploy.js.map +1 -0
  52. package/extensions/Project.js +2 -0
  53. package/extensions/Project.js.map +1 -1
  54. package/extensions/ProjectDecorator.d.ts +3 -7
  55. package/extensions/ProjectId.d.ts +3 -7
  56. package/extensions/ProjectId.js +1 -1
  57. package/extensions/ProjectId.js.map +1 -1
  58. package/extensions/ProjectImplementation.d.ts +3 -9
  59. package/extensions/Telemetry.d.ts +2 -6
  60. package/extensions/hooks/AdminAfterBuild.d.ts +2 -6
  61. package/extensions/hooks/AdminAfterDeploy.d.ts +2 -6
  62. package/extensions/hooks/AdminBeforeBuild.d.ts +2 -6
  63. package/extensions/hooks/AdminBeforeDeploy.d.ts +2 -6
  64. package/extensions/hooks/AdminBeforeWatch.d.ts +2 -6
  65. package/extensions/hooks/AfterBuild.d.ts +2 -6
  66. package/extensions/hooks/AfterDeploy.d.ts +2 -6
  67. package/extensions/hooks/ApiAfterBuild.d.ts +2 -6
  68. package/extensions/hooks/ApiAfterDeploy.d.ts +2 -6
  69. package/extensions/hooks/ApiBeforeBuild.d.ts +2 -6
  70. package/extensions/hooks/ApiBeforeDeploy.d.ts +2 -6
  71. package/extensions/hooks/ApiBeforeWatch.d.ts +2 -6
  72. package/extensions/hooks/BeforeBuild.d.ts +2 -6
  73. package/extensions/hooks/BeforeDeploy.d.ts +2 -6
  74. package/extensions/hooks/BeforeWatch.d.ts +2 -6
  75. package/extensions/hooks/CoreAfterBuild.d.ts +2 -6
  76. package/extensions/hooks/CoreAfterDeploy.d.ts +2 -6
  77. package/extensions/hooks/CoreBeforeBuild.d.ts +2 -6
  78. package/extensions/hooks/CoreBeforeDeploy.d.ts +2 -6
  79. package/extensions/hooks/CoreBeforeWatch.d.ts +2 -6
  80. package/extensions/index.d.ts +38 -145
  81. package/extensions/index.js +5 -8
  82. package/extensions/index.js.map +1 -1
  83. package/extensions/infra/Ci.d.ts +14 -0
  84. package/extensions/infra/Ci.js +29 -0
  85. package/extensions/infra/Ci.js.map +1 -0
  86. package/extensions/infra/Env.d.ts +6 -0
  87. package/extensions/infra/Env.js +21 -0
  88. package/extensions/infra/Env.js.map +1 -1
  89. package/extensions/infra/index.d.ts +1 -0
  90. package/extensions/infra/index.js +1 -0
  91. package/extensions/infra/index.js.map +1 -1
  92. package/extensions/pulumi/AdminStackOutputValue.d.ts +1 -7
  93. package/extensions/pulumi/ApiStackOutputValue.d.ts +1 -7
  94. package/extensions/pulumi/CoreStackOutputValue.d.ts +1 -7
  95. package/extensions/pulumi/ProductionEnvironments.d.ts +2 -6
  96. package/extensions/pulumi/ProductionEnvironments.js +16 -1
  97. package/extensions/pulumi/ProductionEnvironments.js.map +1 -1
  98. package/extensions/pulumi/PulumiResourceNamePrefix.d.ts +1 -5
  99. package/extensions/pulumi/index.d.ts +0 -3
  100. package/extensions/pulumi/index.js +0 -3
  101. package/extensions/pulumi/index.js.map +1 -1
  102. package/features/BuildApp/PackagesBuilder/worker.js +1 -1
  103. package/features/BuildApp/PackagesBuilder/worker.js.map +1 -1
  104. package/features/GetFeatureFlags/GetFeatureFlags.d.ts +1 -2
  105. package/features/GetFeatureFlags/GetFeatureFlags.js +1 -2
  106. package/features/GetFeatureFlags/GetFeatureFlags.js.map +1 -1
  107. package/features/Watch/initInvocationForwarding.d.ts +1 -1
  108. package/features/Watch/initInvocationForwarding.js +1 -1
  109. package/features/Watch/initInvocationForwarding.js.map +1 -1
  110. package/features/Watch/localInvocationWorker.js +5 -1
  111. package/features/Watch/localInvocationWorker.js.map +1 -1
  112. package/features/index.d.ts +0 -1
  113. package/features/index.js +0 -1
  114. package/features/index.js.map +1 -1
  115. package/index.d.ts +1 -0
  116. package/index.js +1 -0
  117. package/index.js.map +1 -1
  118. package/package.json +38 -39
  119. package/services/BuildAppWorkspaceService/BuildAppWorkspaceService.js +4 -4
  120. package/services/BuildAppWorkspaceService/BuildAppWorkspaceService.js.map +1 -1
  121. package/services/GetProjectConfigService/GetProjectConfigService.js +2 -1
  122. package/services/GetProjectConfigService/GetProjectConfigService.js.map +1 -1
  123. package/services/GetProjectConfigService/ProductionEnvironmentsContext.d.ts +6 -0
  124. package/services/GetProjectConfigService/ProductionEnvironmentsContext.js +21 -0
  125. package/services/GetProjectConfigService/ProductionEnvironmentsContext.js.map +1 -0
  126. package/services/GetProjectConfigService/renderConfigWorker.js +14 -4
  127. package/services/GetProjectConfigService/renderConfigWorker.js.map +1 -1
  128. package/services/GetProjectIdService/GetProjectIdService.js +1 -1
  129. package/services/GetProjectIdService/GetProjectIdService.js.map +1 -1
  130. package/services/GetProjectService/GetProjectService.js +2 -2
  131. package/services/GetProjectService/GetProjectService.js.map +1 -1
  132. package/services/GetProjectVersionService/GetProjectVersionService.js +4 -4
  133. package/services/GetProjectVersionService/GetProjectVersionService.js.map +1 -1
  134. package/services/InitProjectSdkService/InitProjectSdkService.js +0 -6
  135. package/services/InitProjectSdkService/InitProjectSdkService.js.map +1 -1
  136. package/services/InitProjectSdkService/applyWcpEnvVars.js +10 -8
  137. package/services/InitProjectSdkService/applyWcpEnvVars.js.map +1 -1
  138. package/services/InitProjectSdkService/registerPulumiExtensions.js +5 -3
  139. package/services/InitProjectSdkService/registerPulumiExtensions.js.map +1 -1
  140. package/services/InstallExtensionService/downloadFolderFromS3.js +33 -42
  141. package/services/InstallExtensionService/downloadFolderFromS3.js.map +1 -1
  142. package/services/InstallExtensionService/types.d.ts +4 -0
  143. package/services/InstallExtensionService/types.js.map +1 -1
  144. package/services/InstallExtensionService/updateWebinyConfig.js +74 -47
  145. package/services/InstallExtensionService/updateWebinyConfig.js.map +1 -1
  146. package/services/ListPackagesService/ListPackagesService.js +1 -1
  147. package/services/ListPackagesService/ListPackagesService.js.map +1 -1
  148. package/services/ProjectInfoService/ProjectInfoService.js +3 -3
  149. package/services/ProjectInfoService/ProjectInfoService.js.map +1 -1
  150. package/utils/ExtensionSrcResolver.js +2 -1
  151. package/utils/ExtensionSrcResolver.js.map +1 -1
  152. package/utils/index.d.ts +1 -0
  153. package/utils/index.js +1 -0
  154. package/utils/index.js.map +1 -1
  155. package/utils/requireConfig.js +9 -5
  156. package/utils/requireConfig.js.map +1 -1
  157. package/utils/toImportSpecifier.d.ts +5 -0
  158. package/utils/toImportSpecifier.js +12 -0
  159. package/utils/toImportSpecifier.js.map +1 -0
  160. package/abstractions/features/pulumi/AdminPulumi.d.ts +0 -8
  161. package/abstractions/features/pulumi/AdminPulumi.js +0 -4
  162. package/abstractions/features/pulumi/AdminPulumi.js.map +0 -1
  163. package/abstractions/features/pulumi/ApiPulumi.d.ts +0 -8
  164. package/abstractions/features/pulumi/ApiPulumi.js +0 -4
  165. package/abstractions/features/pulumi/ApiPulumi.js.map +0 -1
  166. package/abstractions/features/pulumi/CorePulumi.d.ts +0 -8
  167. package/abstractions/features/pulumi/CorePulumi.js +0 -4
  168. package/abstractions/features/pulumi/CorePulumi.js.map +0 -1
  169. package/abstractions/features/pulumi/index.d.ts +0 -3
  170. package/abstractions/features/pulumi/index.js +0 -5
  171. package/abstractions/features/pulumi/index.js.map +0 -1
  172. package/exports/infra/index.d.ts +0 -8
  173. package/exports/infra/index.js +0 -10
  174. package/extensions/pulumi/AdminPulumi.d.ts +0 -8
  175. package/extensions/pulumi/AdminPulumi.js +0 -25
  176. package/extensions/pulumi/AdminPulumi.js.map +0 -1
  177. package/extensions/pulumi/ApiPulumi.d.ts +0 -8
  178. package/extensions/pulumi/ApiPulumi.js +0 -25
  179. package/extensions/pulumi/ApiPulumi.js.map +0 -1
  180. package/extensions/pulumi/CorePulumi.d.ts +0 -8
  181. package/extensions/pulumi/CorePulumi.js +0 -25
  182. package/extensions/pulumi/CorePulumi.js.map +0 -1
  183. package/features/BuildApp/PackagesBuilder/utils/requireConfig.d.ts +0 -18
  184. package/features/BuildApp/PackagesBuilder/utils/requireConfig.js +0 -15
  185. package/features/BuildApp/PackagesBuilder/utils/requireConfig.js.map +0 -1
  186. package/features/Watch/watchers/utils/requireConfig.d.ts +0 -18
  187. package/features/Watch/watchers/utils/requireConfig.js +0 -15
  188. package/features/Watch/watchers/utils/requireConfig.js.map +0 -1
  189. package/features/pulumi/AdminPulumi/AdminPulumi.d.ts +0 -7
  190. package/features/pulumi/AdminPulumi/AdminPulumi.js +0 -21
  191. package/features/pulumi/AdminPulumi/AdminPulumi.js.map +0 -1
  192. package/features/pulumi/AdminPulumi/index.d.ts +0 -1
  193. package/features/pulumi/AdminPulumi/index.js +0 -3
  194. package/features/pulumi/AdminPulumi/index.js.map +0 -1
  195. package/features/pulumi/ApiPulumi/ApiPulumi.d.ts +0 -7
  196. package/features/pulumi/ApiPulumi/ApiPulumi.js +0 -21
  197. package/features/pulumi/ApiPulumi/ApiPulumi.js.map +0 -1
  198. package/features/pulumi/ApiPulumi/index.d.ts +0 -1
  199. package/features/pulumi/ApiPulumi/index.js +0 -3
  200. package/features/pulumi/ApiPulumi/index.js.map +0 -1
  201. package/features/pulumi/CorePulumi/CorePulumi.d.ts +0 -7
  202. package/features/pulumi/CorePulumi/CorePulumi.js +0 -21
  203. package/features/pulumi/CorePulumi/CorePulumi.js.map +0 -1
  204. package/features/pulumi/CorePulumi/index.d.ts +0 -1
  205. package/features/pulumi/CorePulumi/index.js +0 -3
  206. package/features/pulumi/CorePulumi/index.js.map +0 -1
  207. package/features/pulumi/index.d.ts +0 -3
  208. package/features/pulumi/index.js +0 -5
  209. package/features/pulumi/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["createImplementation","GetProjectConfigService","GetProjectService","LoggerService","ProjectSdkParamsService","ExtensionDefinitions","ExtensionDefinitionsExtension","ExtensionInstanceModel","ProjectConfigModel","renderConfig","DefaultGetProjectConfigService","cachedRenderedConfigs","constructor","getProjectService","projectSdkParamsService","loggerService","execute","params","project","currentTime","Date","now","cacheKey","JSON","stringify","renderArgs","info","projectSdkParams","get","args","sdkParams","err","error","Error","message","renderedConfig","debug","config","hydratedConfig","hydrateConfig","model","create","duration","configDto","importFromPath","filePath","importPath","startsWith","paths","rootFolder","join","toString","tagsFilters","tags","extensionDefinitionsType","def","type","extensionsTypes","Object","keys","filter","key","allExtensionDefinitions","extensions","extensionDefinitionsExtensions","ext","default","importedExtensionDefinitions","src","push","scopesFilter","reduce","acc","extensionType","oneOrMoreExtensions","extensionsArray","Array","isArray","matchedExtensions","map","extensionParams","extDef","find","e","warn","length","extDefTags","hasMatchingTags","every","tag","filterValue","extDefValue","Boolean","getProjectConfigService","abstraction","implementation","dependencies"],"sources":["GetProjectConfigService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport {\n GetProjectConfigService,\n GetProjectService,\n LoggerService,\n ProjectSdkParamsService\n} from \"~/abstractions/index.js\";\nimport {\n type ExtensionDto,\n type ExtensionType,\n type IHydratedProjectConfig,\n type IProjectConfigDto\n} from \"~/abstractions/models/index.js\";\nimport { ExtensionDefinitions as ExtensionDefinitionsExtension } from \"~/extensions/ExtensionDefinitions.js\";\nimport { ExtensionInstanceModel } from \"~/defineExtension/index.js\";\nimport { ProjectConfigModel } from \"~/models/ProjectConfigModel.js\";\nimport { renderConfig } from \"./renderConfig.js\";\n\nexport class DefaultGetProjectConfigService implements GetProjectConfigService.Interface {\n cachedRenderedConfigs: Record<string, IProjectConfigDto> = {};\n\n constructor(\n private readonly getProjectService: GetProjectService.Interface,\n private readonly projectSdkParamsService: ProjectSdkParamsService.Interface,\n private readonly loggerService: LoggerService.Interface\n ) {}\n\n async execute(\n params: GetProjectConfigService.Params = {}\n ): Promise<GetProjectConfigService.Result> {\n const project = this.getProjectService.execute();\n\n const currentTime = Date.now();\n const cacheKey = JSON.stringify(params.renderArgs);\n if (!this.cachedRenderedConfigs[cacheKey]) {\n this.loggerService.info(\n { renderArgs: params.renderArgs },\n `Rendering project config...`\n );\n\n try {\n const projectSdkParams = this.projectSdkParamsService.get();\n this.cachedRenderedConfigs[cacheKey] = await renderConfig({\n project,\n args: params.renderArgs,\n sdkParams: projectSdkParams\n });\n } catch (err) {\n this.loggerService.error(\n { err },\n `There was an error while rendering the project config. `\n );\n\n throw new Error(\n `An error occurred while rendering \"webiny.config.tsx\" config file:\\n${err.message}`\n );\n }\n } else {\n this.loggerService.info(\n { renderArgs: params.renderArgs },\n `Skipping rendering project config (cache hit)...`\n );\n }\n\n const renderedConfig = this.cachedRenderedConfigs[cacheKey];\n this.loggerService.debug({ config: renderedConfig }, `Project config rendering complete.`);\n\n const hydratedConfig = await this.hydrateConfig(renderedConfig, params);\n this.loggerService.debug({ config: hydratedConfig }, `Project config hydration complete.`);\n\n const model = ProjectConfigModel.create(hydratedConfig);\n\n const duration = Date.now() - currentTime;\n this.loggerService.info(`Project config rendered and hydrated in ${duration}ms.`);\n\n return model;\n }\n\n private async hydrateConfig(\n configDto: IProjectConfigDto,\n params: GetProjectConfigService.Params\n ): Promise<IHydratedProjectConfig> {\n const projectSdkParams = this.projectSdkParamsService.get();\n const project = this.getProjectService.execute();\n\n const importFromPath = (filePath: string) => {\n let importPath: string;\n if (filePath.startsWith(\"/extensions/\")) {\n // Resolve from project root.\n importPath = project.paths.rootFolder.join(filePath).toString();\n } else {\n // Treat as absolute path.\n importPath = filePath;\n }\n\n return import(importPath);\n };\n\n const tagsFilters = params?.tags || {};\n\n // Exclude extra extension definitions because we are handling these separately.\n const extensionDefinitionsType = ExtensionDefinitionsExtension.def.type;\n\n const extensionsTypes = Object.keys(configDto).filter(\n key => key !== extensionDefinitionsType\n ) as ExtensionType[];\n\n const allExtensionDefinitions = projectSdkParams.extensions;\n\n // Extra definitions registered via config (e.g. `packages/project-aws/src/Webiny.tsx`).\n const extensionDefinitionsExtensions = (configDto[extensionDefinitionsType] ||\n []) as ExtensionDto[];\n\n for (const ext of extensionDefinitionsExtensions) {\n // Load the extension from give `src`.\n const { default: importedExtensionDefinitions } = await importFromPath(ext.src);\n\n allExtensionDefinitions?.push(...importedExtensionDefinitions);\n }\n\n this.loggerService.info({ scopesFilter: tagsFilters }, `Hydrating project config...`);\n\n return extensionsTypes.reduce<IHydratedProjectConfig>(\n (acc, extensionType: ExtensionType) => {\n const oneOrMoreExtensions = configDto[extensionType];\n const extensionsArray = Array.isArray(oneOrMoreExtensions)\n ? [...oneOrMoreExtensions]\n : [oneOrMoreExtensions];\n\n const matchedExtensions = extensionsArray\n .map(extensionParams => {\n const extDef = projectSdkParams.extensions?.find(e => {\n return e.type === extensionType;\n });\n\n if (!extDef) {\n this.loggerService.warn(\n `Could not find extension definition for type: ${extensionType}. Skipping...`\n );\n return null;\n }\n\n if (Object.keys(tagsFilters).length > 0) {\n const extDefTags = extDef.tags;\n\n const hasMatchingTags = Object.keys(tagsFilters).every(tag => {\n const filterValue = tagsFilters[tag];\n const extDefValue = extDefTags[tag];\n\n // Otherwise, check for strict equality.\n return extDefValue === filterValue;\n });\n\n if (!hasMatchingTags) {\n return null;\n }\n }\n\n return new ExtensionInstanceModel(extDef, extensionParams, { project });\n })\n .filter(Boolean) as ExtensionInstanceModel<any>[];\n\n if (matchedExtensions.length > 0) {\n acc[extensionType] = matchedExtensions;\n }\n\n return acc;\n },\n {} as IHydratedProjectConfig\n );\n }\n}\n\nexport const getProjectConfigService = createImplementation({\n abstraction: GetProjectConfigService,\n implementation: DefaultGetProjectConfigService,\n dependencies: [GetProjectService, ProjectSdkParamsService, LoggerService]\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createImplementation","GetProjectConfigService","GetProjectService","LoggerService","ProjectSdkParamsService","ExtensionDefinitions","ExtensionDefinitionsExtension","ExtensionInstanceModel","ProjectConfigModel","toImportSpecifier","renderConfig","DefaultGetProjectConfigService","cachedRenderedConfigs","constructor","getProjectService","projectSdkParamsService","loggerService","execute","params","project","currentTime","Date","now","cacheKey","JSON","stringify","renderArgs","info","projectSdkParams","get","args","sdkParams","err","error","Error","message","renderedConfig","debug","config","hydratedConfig","hydrateConfig","model","create","duration","configDto","importFromPath","filePath","importPath","startsWith","paths","rootFolder","join","toString","tagsFilters","tags","extensionDefinitionsType","def","type","extensionsTypes","Object","keys","filter","key","allExtensionDefinitions","extensions","extensionDefinitionsExtensions","ext","default","importedExtensionDefinitions","src","push","scopesFilter","reduce","acc","extensionType","oneOrMoreExtensions","extensionsArray","Array","isArray","matchedExtensions","map","extensionParams","extDef","find","e","warn","length","extDefTags","hasMatchingTags","every","tag","filterValue","extDefValue","Boolean","getProjectConfigService","abstraction","implementation","dependencies"],"sources":["GetProjectConfigService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport {\n GetProjectConfigService,\n GetProjectService,\n LoggerService,\n ProjectSdkParamsService\n} from \"~/abstractions/index.js\";\nimport {\n type ExtensionDto,\n type ExtensionType,\n type IHydratedProjectConfig,\n type IProjectConfigDto\n} from \"~/abstractions/models/index.js\";\nimport { ExtensionDefinitions as ExtensionDefinitionsExtension } from \"~/extensions/ExtensionDefinitions.js\";\nimport { ExtensionInstanceModel } from \"~/defineExtension/index.js\";\nimport { ProjectConfigModel } from \"~/models/ProjectConfigModel.js\";\nimport { toImportSpecifier } from \"~/utils/index.js\";\nimport { renderConfig } from \"./renderConfig.js\";\n\nexport class DefaultGetProjectConfigService implements GetProjectConfigService.Interface {\n cachedRenderedConfigs: Record<string, IProjectConfigDto> = {};\n\n constructor(\n private readonly getProjectService: GetProjectService.Interface,\n private readonly projectSdkParamsService: ProjectSdkParamsService.Interface,\n private readonly loggerService: LoggerService.Interface\n ) {}\n\n async execute(\n params: GetProjectConfigService.Params = {}\n ): Promise<GetProjectConfigService.Result> {\n const project = this.getProjectService.execute();\n\n const currentTime = Date.now();\n const cacheKey = JSON.stringify(params.renderArgs);\n if (!this.cachedRenderedConfigs[cacheKey]) {\n this.loggerService.info(\n { renderArgs: params.renderArgs },\n `Rendering project config...`\n );\n\n try {\n const projectSdkParams = this.projectSdkParamsService.get();\n this.cachedRenderedConfigs[cacheKey] = await renderConfig({\n project,\n args: params.renderArgs,\n sdkParams: projectSdkParams\n });\n } catch (err) {\n this.loggerService.error(\n { err },\n `There was an error while rendering the project config. `\n );\n\n throw new Error(\n `An error occurred while rendering \"webiny.config.tsx\" config file:\\n${err.message}`\n );\n }\n } else {\n this.loggerService.info(\n { renderArgs: params.renderArgs },\n `Skipping rendering project config (cache hit)...`\n );\n }\n\n const renderedConfig = this.cachedRenderedConfigs[cacheKey];\n this.loggerService.debug({ config: renderedConfig }, `Project config rendering complete.`);\n\n const hydratedConfig = await this.hydrateConfig(renderedConfig, params);\n this.loggerService.debug({ config: hydratedConfig }, `Project config hydration complete.`);\n\n const model = ProjectConfigModel.create(hydratedConfig);\n\n const duration = Date.now() - currentTime;\n this.loggerService.info(`Project config rendered and hydrated in ${duration}ms.`);\n\n return model;\n }\n\n private async hydrateConfig(\n configDto: IProjectConfigDto,\n params: GetProjectConfigService.Params\n ): Promise<IHydratedProjectConfig> {\n const projectSdkParams = this.projectSdkParamsService.get();\n const project = this.getProjectService.execute();\n\n const importFromPath = (filePath: string) => {\n let importPath: string;\n if (filePath.startsWith(\"/extensions/\")) {\n // Resolve from project root.\n importPath = project.paths.rootFolder.join(filePath).toString();\n } else {\n // Treat as absolute path.\n importPath = filePath;\n }\n\n return import(toImportSpecifier(importPath));\n };\n\n const tagsFilters = params?.tags || {};\n\n // Exclude extra extension definitions because we are handling these separately.\n const extensionDefinitionsType = ExtensionDefinitionsExtension.def.type;\n\n const extensionsTypes = Object.keys(configDto).filter(\n key => key !== extensionDefinitionsType\n ) as ExtensionType[];\n\n const allExtensionDefinitions = projectSdkParams.extensions;\n\n // Extra definitions registered via config (e.g. `packages/project-aws/src/Webiny.tsx`).\n const extensionDefinitionsExtensions = (configDto[extensionDefinitionsType] ||\n []) as ExtensionDto[];\n\n for (const ext of extensionDefinitionsExtensions) {\n // Load the extension from give `src`.\n const { default: importedExtensionDefinitions } = await importFromPath(ext.src);\n\n allExtensionDefinitions?.push(...importedExtensionDefinitions);\n }\n\n this.loggerService.info({ scopesFilter: tagsFilters }, `Hydrating project config...`);\n\n return extensionsTypes.reduce<IHydratedProjectConfig>(\n (acc, extensionType: ExtensionType) => {\n const oneOrMoreExtensions = configDto[extensionType];\n const extensionsArray = Array.isArray(oneOrMoreExtensions)\n ? [...oneOrMoreExtensions]\n : [oneOrMoreExtensions];\n\n const matchedExtensions = extensionsArray\n .map(extensionParams => {\n const extDef = projectSdkParams.extensions?.find(e => {\n return e.type === extensionType;\n });\n\n if (!extDef) {\n this.loggerService.warn(\n `Could not find extension definition for type: ${extensionType}. Skipping...`\n );\n return null;\n }\n\n if (Object.keys(tagsFilters).length > 0) {\n const extDefTags = extDef.tags;\n\n const hasMatchingTags = Object.keys(tagsFilters).every(tag => {\n const filterValue = tagsFilters[tag];\n const extDefValue = extDefTags[tag];\n\n // Otherwise, check for strict equality.\n return extDefValue === filterValue;\n });\n\n if (!hasMatchingTags) {\n return null;\n }\n }\n\n return new ExtensionInstanceModel(extDef, extensionParams, { project });\n })\n .filter(Boolean) as ExtensionInstanceModel<any>[];\n\n if (matchedExtensions.length > 0) {\n acc[extensionType] = matchedExtensions;\n }\n\n return acc;\n },\n {} as IHydratedProjectConfig\n );\n }\n}\n\nexport const getProjectConfigService = createImplementation({\n abstraction: GetProjectConfigService,\n implementation: DefaultGetProjectConfigService,\n dependencies: [GetProjectService, ProjectSdkParamsService, LoggerService]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SACIC,uBAAuB,EACvBC,iBAAiB,EACjBC,aAAa,EACbC,uBAAuB;AAQ3B,SAASC,oBAAoB,IAAIC,6BAA6B;AAC9D,SAASC,sBAAsB;AAC/B,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAC1B,SAASC,YAAY;AAErB,OAAO,MAAMC,8BAA8B,CAA8C;EACrFC,qBAAqB,GAAsC,CAAC,CAAC;EAE7DC,WAAWA,CACUC,iBAA8C,EAC9CC,uBAA0D,EAC1DC,aAAsC,EACzD;IAAA,KAHmBF,iBAA8C,GAA9CA,iBAA8C;IAAA,KAC9CC,uBAA0D,GAA1DA,uBAA0D;IAAA,KAC1DC,aAAsC,GAAtCA,aAAsC;EACxD;EAEH,MAAMC,OAAOA,CACTC,MAAsC,GAAG,CAAC,CAAC,EACJ;IACvC,MAAMC,OAAO,GAAG,IAAI,CAACL,iBAAiB,CAACG,OAAO,CAAC,CAAC;IAEhD,MAAMG,WAAW,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IAC9B,MAAMC,QAAQ,GAAGC,IAAI,CAACC,SAAS,CAACP,MAAM,CAACQ,UAAU,CAAC;IAClD,IAAI,CAAC,IAAI,CAACd,qBAAqB,CAACW,QAAQ,CAAC,EAAE;MACvC,IAAI,CAACP,aAAa,CAACW,IAAI,CACnB;QAAED,UAAU,EAAER,MAAM,CAACQ;MAAW,CAAC,EACjC,6BACJ,CAAC;MAED,IAAI;QACA,MAAME,gBAAgB,GAAG,IAAI,CAACb,uBAAuB,CAACc,GAAG,CAAC,CAAC;QAC3D,IAAI,CAACjB,qBAAqB,CAACW,QAAQ,CAAC,GAAG,MAAMb,YAAY,CAAC;UACtDS,OAAO;UACPW,IAAI,EAAEZ,MAAM,CAACQ,UAAU;UACvBK,SAAS,EAAEH;QACf,CAAC,CAAC;MACN,CAAC,CAAC,OAAOI,GAAG,EAAE;QACV,IAAI,CAAChB,aAAa,CAACiB,KAAK,CACpB;UAAED;QAAI,CAAC,EACP,yDACJ,CAAC;QAED,MAAM,IAAIE,KAAK,CACX,uEAAuEF,GAAG,CAACG,OAAO,EACtF,CAAC;MACL;IACJ,CAAC,MAAM;MACH,IAAI,CAACnB,aAAa,CAACW,IAAI,CACnB;QAAED,UAAU,EAAER,MAAM,CAACQ;MAAW,CAAC,EACjC,kDACJ,CAAC;IACL;IAEA,MAAMU,cAAc,GAAG,IAAI,CAACxB,qBAAqB,CAACW,QAAQ,CAAC;IAC3D,IAAI,CAACP,aAAa,CAACqB,KAAK,CAAC;MAAEC,MAAM,EAAEF;IAAe,CAAC,EAAE,oCAAoC,CAAC;IAE1F,MAAMG,cAAc,GAAG,MAAM,IAAI,CAACC,aAAa,CAACJ,cAAc,EAAElB,MAAM,CAAC;IACvE,IAAI,CAACF,aAAa,CAACqB,KAAK,CAAC;MAAEC,MAAM,EAAEC;IAAe,CAAC,EAAE,oCAAoC,CAAC;IAE1F,MAAME,KAAK,GAAGjC,kBAAkB,CAACkC,MAAM,CAACH,cAAc,CAAC;IAEvD,MAAMI,QAAQ,GAAGtB,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGF,WAAW;IACzC,IAAI,CAACJ,aAAa,CAACW,IAAI,CAAC,2CAA2CgB,QAAQ,KAAK,CAAC;IAEjF,OAAOF,KAAK;EAChB;EAEA,MAAcD,aAAaA,CACvBI,SAA4B,EAC5B1B,MAAsC,EACP;IAC/B,MAAMU,gBAAgB,GAAG,IAAI,CAACb,uBAAuB,CAACc,GAAG,CAAC,CAAC;IAC3D,MAAMV,OAAO,GAAG,IAAI,CAACL,iBAAiB,CAACG,OAAO,CAAC,CAAC;IAEhD,MAAM4B,cAAc,GAAIC,QAAgB,IAAK;MACzC,IAAIC,UAAkB;MACtB,IAAID,QAAQ,CAACE,UAAU,CAAC,cAAc,CAAC,EAAE;QACrC;QACAD,UAAU,GAAG5B,OAAO,CAAC8B,KAAK,CAACC,UAAU,CAACC,IAAI,CAACL,QAAQ,CAAC,CAACM,QAAQ,CAAC,CAAC;MACnE,CAAC,MAAM;QACH;QACAL,UAAU,GAAGD,QAAQ;MACzB;MAEA,OAAO,MAAM,CAACrC,iBAAiB,CAACsC,UAAU,CAAC,CAAC;IAChD,CAAC;IAED,MAAMM,WAAW,GAAGnC,MAAM,EAAEoC,IAAI,IAAI,CAAC,CAAC;;IAEtC;IACA,MAAMC,wBAAwB,GAAGjD,6BAA6B,CAACkD,GAAG,CAACC,IAAI;IAEvE,MAAMC,eAAe,GAAGC,MAAM,CAACC,IAAI,CAAChB,SAAS,CAAC,CAACiB,MAAM,CACjDC,GAAG,IAAIA,GAAG,KAAKP,wBACnB,CAAoB;IAEpB,MAAMQ,uBAAuB,GAAGnC,gBAAgB,CAACoC,UAAU;;IAE3D;IACA,MAAMC,8BAA8B,GAAIrB,SAAS,CAACW,wBAAwB,CAAC,IACvE,EAAqB;IAEzB,KAAK,MAAMW,GAAG,IAAID,8BAA8B,EAAE;MAC9C;MACA,MAAM;QAAEE,OAAO,EAAEC;MAA6B,CAAC,GAAG,MAAMvB,cAAc,CAACqB,GAAG,CAACG,GAAG,CAAC;MAE/EN,uBAAuB,EAAEO,IAAI,CAAC,GAAGF,4BAA4B,CAAC;IAClE;IAEA,IAAI,CAACpD,aAAa,CAACW,IAAI,CAAC;MAAE4C,YAAY,EAAElB;IAAY,CAAC,EAAE,6BAA6B,CAAC;IAErF,OAAOK,eAAe,CAACc,MAAM,CACzB,CAACC,GAAG,EAAEC,aAA4B,KAAK;MACnC,MAAMC,mBAAmB,GAAG/B,SAAS,CAAC8B,aAAa,CAAC;MACpD,MAAME,eAAe,GAAGC,KAAK,CAACC,OAAO,CAACH,mBAAmB,CAAC,GACpD,CAAC,GAAGA,mBAAmB,CAAC,GACxB,CAACA,mBAAmB,CAAC;MAE3B,MAAMI,iBAAiB,GAAGH,eAAe,CACpCI,GAAG,CAACC,eAAe,IAAI;QACpB,MAAMC,MAAM,GAAGtD,gBAAgB,CAACoC,UAAU,EAAEmB,IAAI,CAACC,CAAC,IAAI;UAClD,OAAOA,CAAC,CAAC3B,IAAI,KAAKiB,aAAa;QACnC,CAAC,CAAC;QAEF,IAAI,CAACQ,MAAM,EAAE;UACT,IAAI,CAAClE,aAAa,CAACqE,IAAI,CACnB,iDAAiDX,aAAa,eAClE,CAAC;UACD,OAAO,IAAI;QACf;QAEA,IAAIf,MAAM,CAACC,IAAI,CAACP,WAAW,CAAC,CAACiC,MAAM,GAAG,CAAC,EAAE;UACrC,MAAMC,UAAU,GAAGL,MAAM,CAAC5B,IAAI;UAE9B,MAAMkC,eAAe,GAAG7B,MAAM,CAACC,IAAI,CAACP,WAAW,CAAC,CAACoC,KAAK,CAACC,GAAG,IAAI;YAC1D,MAAMC,WAAW,GAAGtC,WAAW,CAACqC,GAAG,CAAC;YACpC,MAAME,WAAW,GAAGL,UAAU,CAACG,GAAG,CAAC;;YAEnC;YACA,OAAOE,WAAW,KAAKD,WAAW;UACtC,CAAC,CAAC;UAEF,IAAI,CAACH,eAAe,EAAE;YAClB,OAAO,IAAI;UACf;QACJ;QAEA,OAAO,IAAIjF,sBAAsB,CAAC2E,MAAM,EAAED,eAAe,EAAE;UAAE9D;QAAQ,CAAC,CAAC;MAC3E,CAAC,CAAC,CACD0C,MAAM,CAACgC,OAAO,CAAkC;MAErD,IAAId,iBAAiB,CAACO,MAAM,GAAG,CAAC,EAAE;QAC9Bb,GAAG,CAACC,aAAa,CAAC,GAAGK,iBAAiB;MAC1C;MAEA,OAAON,GAAG;IACd,CAAC,EACD,CAAC,CACL,CAAC;EACL;AACJ;AAEA,OAAO,MAAMqB,uBAAuB,GAAG9F,oBAAoB,CAAC;EACxD+F,WAAW,EAAE9F,uBAAuB;EACpC+F,cAAc,EAAErF,8BAA8B;EAC9CsF,YAAY,EAAE,CAAC/F,iBAAiB,EAAEE,uBAAuB,EAAED,aAAa;AAC5E,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ export declare const ProductionEnvironmentsCollector: React.FC<{
3
+ children: React.ReactNode;
4
+ }>;
5
+ export declare const useProductionEnvironments: () => string[];
6
+ export declare const useRegisterProductionEnvironments: () => React.Dispatch<React.SetStateAction<string[]>> | null;
@@ -0,0 +1,21 @@
1
+ import React, { createContext, useContext, useState } from "react";
2
+ const ProductionEnvironmentsContext = /*#__PURE__*/createContext(null);
3
+ export const ProductionEnvironmentsCollector = ({
4
+ children
5
+ }) => {
6
+ const [prodEnvs, setProdEnvs] = useState([]);
7
+ return /*#__PURE__*/React.createElement(ProductionEnvironmentsContext.Provider, {
8
+ value: {
9
+ prodEnvs,
10
+ setProdEnvs
11
+ }
12
+ }, children);
13
+ };
14
+ export const useProductionEnvironments = () => {
15
+ return useContext(ProductionEnvironmentsContext)?.prodEnvs ?? [];
16
+ };
17
+ export const useRegisterProductionEnvironments = () => {
18
+ return useContext(ProductionEnvironmentsContext)?.setProdEnvs ?? null;
19
+ };
20
+
21
+ //# sourceMappingURL=ProductionEnvironmentsContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","createContext","useContext","useState","ProductionEnvironmentsContext","ProductionEnvironmentsCollector","children","prodEnvs","setProdEnvs","createElement","Provider","value","useProductionEnvironments","useRegisterProductionEnvironments"],"sources":["ProductionEnvironmentsContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useState } from \"react\";\n\ninterface ProductionEnvironmentsContextValue {\n prodEnvs: string[];\n setProdEnvs: React.Dispatch<React.SetStateAction<string[]>>;\n}\n\nconst ProductionEnvironmentsContext = createContext<ProductionEnvironmentsContextValue | null>(\n null\n);\n\nexport const ProductionEnvironmentsCollector: React.FC<{ children: React.ReactNode }> = ({\n children\n}) => {\n const [prodEnvs, setProdEnvs] = useState<string[]>([]);\n return (\n <ProductionEnvironmentsContext.Provider value={{ prodEnvs, setProdEnvs }}>\n {children}\n </ProductionEnvironmentsContext.Provider>\n );\n};\n\nexport const useProductionEnvironments = (): string[] => {\n return useContext(ProductionEnvironmentsContext)?.prodEnvs ?? [];\n};\n\nexport const useRegisterProductionEnvironments = () => {\n return useContext(ProductionEnvironmentsContext)?.setProdEnvs ?? null;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,aAAa,EAAEC,UAAU,EAAEC,QAAQ,QAAQ,OAAO;AAOlE,MAAMC,6BAA6B,gBAAGH,aAAa,CAC/C,IACJ,CAAC;AAED,OAAO,MAAMI,+BAAwE,GAAGA,CAAC;EACrFC;AACJ,CAAC,KAAK;EACF,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGL,QAAQ,CAAW,EAAE,CAAC;EACtD,oBACIH,KAAA,CAAAS,aAAA,CAACL,6BAA6B,CAACM,QAAQ;IAACC,KAAK,EAAE;MAAEJ,QAAQ;MAAEC;IAAY;EAAE,GACpEF,QACmC,CAAC;AAEjD,CAAC;AAED,OAAO,MAAMM,yBAAyB,GAAGA,CAAA,KAAgB;EACrD,OAAOV,UAAU,CAACE,6BAA6B,CAAC,EAAEG,QAAQ,IAAI,EAAE;AACpE,CAAC;AAED,OAAO,MAAMM,iCAAiC,GAAGA,CAAA,KAAM;EACnD,OAAOX,UAAU,CAACE,6BAA6B,CAAC,EAAEI,WAAW,IAAI,IAAI;AACzE,CAAC","ignoreList":[]}
@@ -2,11 +2,14 @@ import "tsx/esm";
2
2
  import { Properties, toObject } from "@webiny/react-properties";
3
3
  import debounce from "debounce";
4
4
  import React from "react";
5
- import Renderer from "react-test-renderer";
5
+ import { createRoot } from "react-dom/client";
6
+ import { JSDOM } from "jsdom";
6
7
  import { serializeError } from "serialize-error";
7
8
  import { ProjectModel } from "../../models/ProjectModel.js";
9
+ import { toImportSpecifier } from "../../utils/index.js";
8
10
  import { EnvProvider } from "./EnvContext.js";
9
11
  import { WcpProjectLicenseProvider } from "./WcpProjectLicenseContext.js";
12
+ import { ProductionEnvironmentsCollector } from "./ProductionEnvironmentsContext.js";
10
13
  const sendError = err => {
11
14
  const message = {
12
15
  type: "error",
@@ -46,13 +49,20 @@ const {
46
49
  const project = ProjectModel.fromDto(projectModelDto);
47
50
  const {
48
51
  Extensions
49
- } = await import(project.paths.webinyConfigBaseFile.toString());
52
+ } = await import(toImportSpecifier(project.paths.webinyConfigBaseFile.toString()));
50
53
  const onChange = debounce(value => {
51
54
  sendSuccess(toObject(value));
52
55
  process.exit(0);
53
56
  });
54
- Renderer.create(/*#__PURE__*/React.createElement(WcpProjectLicenseProvider, null, /*#__PURE__*/React.createElement(EnvProvider, null, /*#__PURE__*/React.createElement(Properties, {
57
+ const {
58
+ window
59
+ } = new JSDOM(`<div id="root"/>`);
60
+ global.window = window;
61
+ global.document = window.document;
62
+ const root = window.document.getElementById("root");
63
+ const reactRoot = createRoot(root);
64
+ reactRoot.render(/*#__PURE__*/React.createElement(WcpProjectLicenseProvider, null, /*#__PURE__*/React.createElement(EnvProvider, null, /*#__PURE__*/React.createElement(ProductionEnvironmentsCollector, null, /*#__PURE__*/React.createElement(Properties, {
55
65
  onChange: onChange
56
- }, /*#__PURE__*/React.createElement(Extensions, null)))));
66
+ }, /*#__PURE__*/React.createElement(Extensions, null))))));
57
67
 
58
68
  //# sourceMappingURL=renderConfigWorker.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Properties","toObject","debounce","React","Renderer","serializeError","ProjectModel","EnvProvider","WcpProjectLicenseProvider","sendError","err","message","type","error","data","process","send","console","sendSuccess","log","on","exit","reason","Error","String","project","projectModelDto","JSON","parse","argv","fromDto","Extensions","paths","webinyConfigBaseFile","toString","onChange","value","create","createElement"],"sources":["renderConfigWorker.tsx"],"sourcesContent":["import \"tsx/esm\";\nimport { Properties, toObject } from \"@webiny/react-properties\";\nimport debounce from \"debounce\";\nimport React from \"react\";\nimport Renderer from \"react-test-renderer\";\nimport { serializeError } from \"serialize-error\";\nimport type { RenderConfigWorkerMessageDto, RenderConfigParamsDto } from \"./renderConfig.js\";\nimport { ProjectModel } from \"~/models/ProjectModel.js\";\nimport { EnvProvider } from \"./EnvContext.js\";\nimport { WcpProjectLicenseProvider } from \"./WcpProjectLicenseContext.js\";\n\nconst sendError = (err: Error) => {\n const message: RenderConfigWorkerMessageDto = {\n type: \"error\",\n error: serializeError(err),\n data: null\n };\n\n if (process.send) {\n process.send!(message);\n } else {\n console.error(message);\n }\n};\n\nconst sendSuccess = (data: Record<string, any> = {}) => {\n const message: RenderConfigWorkerMessageDto = {\n type: \"success\",\n error: null,\n data\n };\n\n if (process.send) {\n process.send!(message);\n } else {\n console.log(message);\n }\n};\n\nprocess.on(\"uncaughtException\", err => {\n sendError(err);\n process.exit(1);\n});\n\nprocess.on(\"unhandledRejection\", reason => {\n const err = reason instanceof Error ? reason : new Error(String(reason));\n sendError(err);\n process.exit(1);\n});\n\nconst { project: projectModelDto } = JSON.parse(process.argv[2]) as RenderConfigParamsDto;\nconst project = ProjectModel.fromDto(projectModelDto);\n\nconst { Extensions } = await import(project.paths.webinyConfigBaseFile.toString());\n\nconst onChange = debounce((value: any) => {\n sendSuccess(toObject(value));\n process.exit(0);\n});\n\nRenderer.create(\n <WcpProjectLicenseProvider>\n <EnvProvider>\n <Properties onChange={onChange}>\n <Extensions />\n </Properties>\n </EnvProvider>\n </WcpProjectLicenseProvider>\n);\n"],"mappings":"AAAA,OAAO,SAAS;AAChB,SAASA,UAAU,EAAEC,QAAQ,QAAQ,0BAA0B;AAC/D,OAAOC,QAAQ,MAAM,UAAU;AAC/B,OAAOC,KAAK,MAAM,OAAO;AACzB,OAAOC,QAAQ,MAAM,qBAAqB;AAC1C,SAASC,cAAc,QAAQ,iBAAiB;AAEhD,SAASC,YAAY;AACrB,SAASC,WAAW;AACpB,SAASC,yBAAyB;AAElC,MAAMC,SAAS,GAAIC,GAAU,IAAK;EAC9B,MAAMC,OAAqC,GAAG;IAC1CC,IAAI,EAAE,OAAO;IACbC,KAAK,EAAER,cAAc,CAACK,GAAG,CAAC;IAC1BI,IAAI,EAAE;EACV,CAAC;EAED,IAAIC,OAAO,CAACC,IAAI,EAAE;IACdD,OAAO,CAACC,IAAI,CAAEL,OAAO,CAAC;EAC1B,CAAC,MAAM;IACHM,OAAO,CAACJ,KAAK,CAACF,OAAO,CAAC;EAC1B;AACJ,CAAC;AAED,MAAMO,WAAW,GAAGA,CAACJ,IAAyB,GAAG,CAAC,CAAC,KAAK;EACpD,MAAMH,OAAqC,GAAG;IAC1CC,IAAI,EAAE,SAAS;IACfC,KAAK,EAAE,IAAI;IACXC;EACJ,CAAC;EAED,IAAIC,OAAO,CAACC,IAAI,EAAE;IACdD,OAAO,CAACC,IAAI,CAAEL,OAAO,CAAC;EAC1B,CAAC,MAAM;IACHM,OAAO,CAACE,GAAG,CAACR,OAAO,CAAC;EACxB;AACJ,CAAC;AAEDI,OAAO,CAACK,EAAE,CAAC,mBAAmB,EAAEV,GAAG,IAAI;EACnCD,SAAS,CAACC,GAAG,CAAC;EACdK,OAAO,CAACM,IAAI,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC;AAEFN,OAAO,CAACK,EAAE,CAAC,oBAAoB,EAAEE,MAAM,IAAI;EACvC,MAAMZ,GAAG,GAAGY,MAAM,YAAYC,KAAK,GAAGD,MAAM,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACF,MAAM,CAAC,CAAC;EACxEb,SAAS,CAACC,GAAG,CAAC;EACdK,OAAO,CAACM,IAAI,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM;EAAEI,OAAO,EAAEC;AAAgB,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACb,OAAO,CAACc,IAAI,CAAC,CAAC,CAAC,CAA0B;AACzF,MAAMJ,OAAO,GAAGnB,YAAY,CAACwB,OAAO,CAACJ,eAAe,CAAC;AAErD,MAAM;EAAEK;AAAW,CAAC,GAAG,MAAM,MAAM,CAACN,OAAO,CAACO,KAAK,CAACC,oBAAoB,CAACC,QAAQ,CAAC,CAAC,CAAC;AAElF,MAAMC,QAAQ,GAAGjC,QAAQ,CAAEkC,KAAU,IAAK;EACtClB,WAAW,CAACjB,QAAQ,CAACmC,KAAK,CAAC,CAAC;EAC5BrB,OAAO,CAACM,IAAI,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC;AAEFjB,QAAQ,CAACiC,MAAM,cACXlC,KAAA,CAAAmC,aAAA,CAAC9B,yBAAyB,qBACtBL,KAAA,CAAAmC,aAAA,CAAC/B,WAAW,qBACRJ,KAAA,CAAAmC,aAAA,CAACtC,UAAU;EAACmC,QAAQ,EAAEA;AAAS,gBAC3BhC,KAAA,CAAAmC,aAAA,CAACP,UAAU,MAAE,CACL,CACH,CACU,CAC/B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Properties","toObject","debounce","React","createRoot","JSDOM","serializeError","ProjectModel","toImportSpecifier","EnvProvider","WcpProjectLicenseProvider","ProductionEnvironmentsCollector","sendError","err","message","type","error","data","process","send","console","sendSuccess","log","on","exit","reason","Error","String","project","projectModelDto","JSON","parse","argv","fromDto","Extensions","paths","webinyConfigBaseFile","toString","onChange","value","window","global","document","root","getElementById","reactRoot","render","createElement"],"sources":["renderConfigWorker.tsx"],"sourcesContent":["import \"tsx/esm\";\nimport { Properties, toObject } from \"@webiny/react-properties\";\nimport debounce from \"debounce\";\nimport React from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { JSDOM } from \"jsdom\";\nimport { serializeError } from \"serialize-error\";\nimport type { RenderConfigParamsDto, RenderConfigWorkerMessageDto } from \"./renderConfig.js\";\nimport { ProjectModel } from \"~/models/ProjectModel.js\";\nimport { toImportSpecifier } from \"~/utils/index.js\";\nimport { EnvProvider } from \"./EnvContext.js\";\nimport { WcpProjectLicenseProvider } from \"./WcpProjectLicenseContext.js\";\nimport { ProductionEnvironmentsCollector } from \"./ProductionEnvironmentsContext.js\";\n\nconst sendError = (err: Error) => {\n const message: RenderConfigWorkerMessageDto = {\n type: \"error\",\n error: serializeError(err),\n data: null\n };\n\n if (process.send) {\n process.send!(message);\n } else {\n console.error(message);\n }\n};\n\nconst sendSuccess = (data: Record<string, any> = {}) => {\n const message: RenderConfigWorkerMessageDto = {\n type: \"success\",\n error: null,\n data\n };\n\n if (process.send) {\n process.send!(message);\n } else {\n console.log(message);\n }\n};\n\nprocess.on(\"uncaughtException\", err => {\n sendError(err);\n process.exit(1);\n});\n\nprocess.on(\"unhandledRejection\", reason => {\n const err = reason instanceof Error ? reason : new Error(String(reason));\n sendError(err);\n process.exit(1);\n});\n\nconst { project: projectModelDto } = JSON.parse(process.argv[2]) as RenderConfigParamsDto;\nconst project = ProjectModel.fromDto(projectModelDto);\n\nconst { Extensions } = await import(\n toImportSpecifier(project.paths.webinyConfigBaseFile.toString())\n);\n\nconst onChange = debounce((value: any) => {\n sendSuccess(toObject(value));\n process.exit(0);\n});\n\nconst { window } = new JSDOM(`<div id=\"root\"/>`);\n\n(global as any).window = window;\n\n(global as any).document = window.document;\n\nconst root = window.document.getElementById(\"root\")!;\n\nconst reactRoot = createRoot(root);\n\nreactRoot.render(\n <WcpProjectLicenseProvider>\n <EnvProvider>\n <ProductionEnvironmentsCollector>\n <Properties onChange={onChange}>\n <Extensions />\n </Properties>\n </ProductionEnvironmentsCollector>\n </EnvProvider>\n </WcpProjectLicenseProvider>\n);\n"],"mappings":"AAAA,OAAO,SAAS;AAChB,SAASA,UAAU,EAAEC,QAAQ,QAAQ,0BAA0B;AAC/D,OAAOC,QAAQ,MAAM,UAAU;AAC/B,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,KAAK,QAAQ,OAAO;AAC7B,SAASC,cAAc,QAAQ,iBAAiB;AAEhD,SAASC,YAAY;AACrB,SAASC,iBAAiB;AAC1B,SAASC,WAAW;AACpB,SAASC,yBAAyB;AAClC,SAASC,+BAA+B;AAExC,MAAMC,SAAS,GAAIC,GAAU,IAAK;EAC9B,MAAMC,OAAqC,GAAG;IAC1CC,IAAI,EAAE,OAAO;IACbC,KAAK,EAAEV,cAAc,CAACO,GAAG,CAAC;IAC1BI,IAAI,EAAE;EACV,CAAC;EAED,IAAIC,OAAO,CAACC,IAAI,EAAE;IACdD,OAAO,CAACC,IAAI,CAAEL,OAAO,CAAC;EAC1B,CAAC,MAAM;IACHM,OAAO,CAACJ,KAAK,CAACF,OAAO,CAAC;EAC1B;AACJ,CAAC;AAED,MAAMO,WAAW,GAAGA,CAACJ,IAAyB,GAAG,CAAC,CAAC,KAAK;EACpD,MAAMH,OAAqC,GAAG;IAC1CC,IAAI,EAAE,SAAS;IACfC,KAAK,EAAE,IAAI;IACXC;EACJ,CAAC;EAED,IAAIC,OAAO,CAACC,IAAI,EAAE;IACdD,OAAO,CAACC,IAAI,CAAEL,OAAO,CAAC;EAC1B,CAAC,MAAM;IACHM,OAAO,CAACE,GAAG,CAACR,OAAO,CAAC;EACxB;AACJ,CAAC;AAEDI,OAAO,CAACK,EAAE,CAAC,mBAAmB,EAAEV,GAAG,IAAI;EACnCD,SAAS,CAACC,GAAG,CAAC;EACdK,OAAO,CAACM,IAAI,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC;AAEFN,OAAO,CAACK,EAAE,CAAC,oBAAoB,EAAEE,MAAM,IAAI;EACvC,MAAMZ,GAAG,GAAGY,MAAM,YAAYC,KAAK,GAAGD,MAAM,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACF,MAAM,CAAC,CAAC;EACxEb,SAAS,CAACC,GAAG,CAAC;EACdK,OAAO,CAACM,IAAI,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM;EAAEI,OAAO,EAAEC;AAAgB,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACb,OAAO,CAACc,IAAI,CAAC,CAAC,CAAC,CAA0B;AACzF,MAAMJ,OAAO,GAAGrB,YAAY,CAAC0B,OAAO,CAACJ,eAAe,CAAC;AAErD,MAAM;EAAEK;AAAW,CAAC,GAAG,MAAM,MAAM,CAC/B1B,iBAAiB,CAACoB,OAAO,CAACO,KAAK,CAACC,oBAAoB,CAACC,QAAQ,CAAC,CAAC,CACnE,CAAC;AAED,MAAMC,QAAQ,GAAGpC,QAAQ,CAAEqC,KAAU,IAAK;EACtClB,WAAW,CAACpB,QAAQ,CAACsC,KAAK,CAAC,CAAC;EAC5BrB,OAAO,CAACM,IAAI,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM;EAAEgB;AAAO,CAAC,GAAG,IAAInC,KAAK,CAAC,kBAAkB,CAAC;AAE/CoC,MAAM,CAASD,MAAM,GAAGA,MAAM;AAE9BC,MAAM,CAASC,QAAQ,GAAGF,MAAM,CAACE,QAAQ;AAE1C,MAAMC,IAAI,GAAGH,MAAM,CAACE,QAAQ,CAACE,cAAc,CAAC,MAAM,CAAE;AAEpD,MAAMC,SAAS,GAAGzC,UAAU,CAACuC,IAAI,CAAC;AAElCE,SAAS,CAACC,MAAM,cACZ3C,KAAA,CAAA4C,aAAA,CAACrC,yBAAyB,qBACtBP,KAAA,CAAA4C,aAAA,CAACtC,WAAW,qBACRN,KAAA,CAAA4C,aAAA,CAACpC,+BAA+B,qBAC5BR,KAAA,CAAA4C,aAAA,CAAC/C,UAAU;EAACsC,QAAQ,EAAEA;AAAS,gBAC3BnC,KAAA,CAAA4C,aAAA,CAACb,UAAU,MAAE,CACL,CACiB,CACxB,CACU,CAC/B,CAAC","ignoreList":[]}
@@ -10,7 +10,7 @@ class DefaultGetProjectIdService {
10
10
  if (this.cachedProjectId) {
11
11
  return this.cachedProjectId;
12
12
  }
13
- const envProjectId = process.env.WCP_PROJECT_ID;
13
+ const envProjectId = process.env.WEBINY_PROJECT_ID || process.env.WCP_PROJECT_ID;
14
14
  if (envProjectId) {
15
15
  this.cachedProjectId = envProjectId;
16
16
  return this.cachedProjectId;
@@ -1 +1 @@
1
- {"version":3,"names":["createImplementation","GetProjectConfigService","GetProjectIdService","ProjectId","ProjectIdExt","DefaultGetProjectIdService","cachedProjectId","constructor","getProjectConfigService","execute","envProjectId","process","env","WCP_PROJECT_ID","projectConfig","projectIdExtension","extensionsByType","params","id","getProjectIdService","abstraction","implementation","dependencies"],"sources":["GetProjectIdService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { GetProjectConfigService, GetProjectIdService } from \"~/abstractions/index.js\";\nimport { ProjectId as ProjectIdExt } from \"~/extensions/ProjectId.js\";\n\nclass DefaultGetProjectIdService implements GetProjectIdService.Interface {\n cachedProjectId: string | null = null;\n\n constructor(private getProjectConfigService: GetProjectConfigService.Interface) {}\n\n async execute() {\n if (this.cachedProjectId) {\n return this.cachedProjectId;\n }\n\n const envProjectId = process.env.WCP_PROJECT_ID;\n if (envProjectId) {\n this.cachedProjectId = envProjectId;\n return this.cachedProjectId;\n }\n\n const projectConfig = await this.getProjectConfigService.execute();\n const [projectIdExtension] = projectConfig.extensionsByType(ProjectIdExt);\n\n if (projectIdExtension) {\n this.cachedProjectId = projectIdExtension.params.id;\n }\n\n return this.cachedProjectId;\n }\n}\n\nexport const getProjectIdService = createImplementation({\n abstraction: GetProjectIdService,\n implementation: DefaultGetProjectIdService,\n dependencies: [GetProjectConfigService]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SAASC,uBAAuB,EAAEC,mBAAmB;AACrD,SAASC,SAAS,IAAIC,YAAY;AAElC,MAAMC,0BAA0B,CAA0C;EACtEC,eAAe,GAAkB,IAAI;EAErCC,WAAWA,CAASC,uBAA0D,EAAE;IAAA,KAA5DA,uBAA0D,GAA1DA,uBAA0D;EAAG;EAEjF,MAAMC,OAAOA,CAAA,EAAG;IACZ,IAAI,IAAI,CAACH,eAAe,EAAE;MACtB,OAAO,IAAI,CAACA,eAAe;IAC/B;IAEA,MAAMI,YAAY,GAAGC,OAAO,CAACC,GAAG,CAACC,cAAc;IAC/C,IAAIH,YAAY,EAAE;MACd,IAAI,CAACJ,eAAe,GAAGI,YAAY;MACnC,OAAO,IAAI,CAACJ,eAAe;IAC/B;IAEA,MAAMQ,aAAa,GAAG,MAAM,IAAI,CAACN,uBAAuB,CAACC,OAAO,CAAC,CAAC;IAClE,MAAM,CAACM,kBAAkB,CAAC,GAAGD,aAAa,CAACE,gBAAgB,CAACZ,YAAY,CAAC;IAEzE,IAAIW,kBAAkB,EAAE;MACpB,IAAI,CAACT,eAAe,GAAGS,kBAAkB,CAACE,MAAM,CAACC,EAAE;IACvD;IAEA,OAAO,IAAI,CAACZ,eAAe;EAC/B;AACJ;AAEA,OAAO,MAAMa,mBAAmB,GAAGnB,oBAAoB,CAAC;EACpDoB,WAAW,EAAElB,mBAAmB;EAChCmB,cAAc,EAAEhB,0BAA0B;EAC1CiB,YAAY,EAAE,CAACrB,uBAAuB;AAC1C,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createImplementation","GetProjectConfigService","GetProjectIdService","ProjectId","ProjectIdExt","DefaultGetProjectIdService","cachedProjectId","constructor","getProjectConfigService","execute","envProjectId","process","env","WEBINY_PROJECT_ID","WCP_PROJECT_ID","projectConfig","projectIdExtension","extensionsByType","params","id","getProjectIdService","abstraction","implementation","dependencies"],"sources":["GetProjectIdService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { GetProjectConfigService, GetProjectIdService } from \"~/abstractions/index.js\";\nimport { ProjectId as ProjectIdExt } from \"~/extensions/ProjectId.js\";\n\nclass DefaultGetProjectIdService implements GetProjectIdService.Interface {\n cachedProjectId: string | null = null;\n\n constructor(private getProjectConfigService: GetProjectConfigService.Interface) {}\n\n async execute() {\n if (this.cachedProjectId) {\n return this.cachedProjectId;\n }\n\n const envProjectId = process.env.WEBINY_PROJECT_ID || process.env.WCP_PROJECT_ID;\n if (envProjectId) {\n this.cachedProjectId = envProjectId;\n return this.cachedProjectId;\n }\n\n const projectConfig = await this.getProjectConfigService.execute();\n const [projectIdExtension] = projectConfig.extensionsByType(ProjectIdExt);\n\n if (projectIdExtension) {\n this.cachedProjectId = projectIdExtension.params.id;\n }\n\n return this.cachedProjectId;\n }\n}\n\nexport const getProjectIdService = createImplementation({\n abstraction: GetProjectIdService,\n implementation: DefaultGetProjectIdService,\n dependencies: [GetProjectConfigService]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SAASC,uBAAuB,EAAEC,mBAAmB;AACrD,SAASC,SAAS,IAAIC,YAAY;AAElC,MAAMC,0BAA0B,CAA0C;EACtEC,eAAe,GAAkB,IAAI;EAErCC,WAAWA,CAASC,uBAA0D,EAAE;IAAA,KAA5DA,uBAA0D,GAA1DA,uBAA0D;EAAG;EAEjF,MAAMC,OAAOA,CAAA,EAAG;IACZ,IAAI,IAAI,CAACH,eAAe,EAAE;MACtB,OAAO,IAAI,CAACA,eAAe;IAC/B;IAEA,MAAMI,YAAY,GAAGC,OAAO,CAACC,GAAG,CAACC,iBAAiB,IAAIF,OAAO,CAACC,GAAG,CAACE,cAAc;IAChF,IAAIJ,YAAY,EAAE;MACd,IAAI,CAACJ,eAAe,GAAGI,YAAY;MACnC,OAAO,IAAI,CAACJ,eAAe;IAC/B;IAEA,MAAMS,aAAa,GAAG,MAAM,IAAI,CAACP,uBAAuB,CAACC,OAAO,CAAC,CAAC;IAClE,MAAM,CAACO,kBAAkB,CAAC,GAAGD,aAAa,CAACE,gBAAgB,CAACb,YAAY,CAAC;IAEzE,IAAIY,kBAAkB,EAAE;MACpB,IAAI,CAACV,eAAe,GAAGU,kBAAkB,CAACE,MAAM,CAACC,EAAE;IACvD;IAEA,OAAO,IAAI,CAACb,eAAe;EAC/B;AACJ;AAEA,OAAO,MAAMc,mBAAmB,GAAGpB,oBAAoB,CAAC;EACpDqB,WAAW,EAAEnB,mBAAmB;EAChCoB,cAAc,EAAEjB,0BAA0B;EAC1CkB,YAAY,EAAE,CAACtB,uBAAuB;AAC1C,CAAC,CAAC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { createImplementation } from "@webiny/di";
2
- import findUp from "find-up";
2
+ import { findUpSync } from "find-up";
3
3
  import { dirname } from "path";
4
4
  import { GetCwdService, GetProjectService, GetProjectVersionService } from "../../abstractions/index.js";
5
5
  import { ProjectModel } from "../../models/ProjectModel.js";
@@ -16,7 +16,7 @@ export class DefaultGetProjectService {
16
16
  return this.cachedProject;
17
17
  }
18
18
  const cwd = this.getCwdService.execute();
19
- const webinyConfigFilePathString = findUp.sync("webiny.config.tsx", {
19
+ const webinyConfigFilePathString = findUpSync("webiny.config.tsx", {
20
20
  cwd
21
21
  });
22
22
  if (!webinyConfigFilePathString) {
@@ -1 +1 @@
1
- {"version":3,"names":["createImplementation","findUp","dirname","GetCwdService","GetProjectService","GetProjectVersionService","ProjectModel","PathModel","path","DefaultGetProjectService","cachedProject","constructor","getProjectVersionService","getCwdService","execute","cwd","webinyConfigFilePathString","sync","Error","webinyConfigFilePath","from","projectRootFolderPath","toString","dotWebinyFolderPath","join","workspaceFolderPath","webinyConfigBaseFilePath","localPulumiStateFilesFolderPath","tsConfigFilePath","projectVersion","name","basename","version","paths","dotWebinyFolder","rootFolder","webinyConfigFile","webinyConfigBaseFile","workspaceFolder","localPulumiStateFilesFolder","tsConfigFile","getProjectService","abstraction","implementation","dependencies"],"sources":["GetProjectService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport findUp from \"find-up\";\nimport { dirname } from \"path\";\nimport {\n GetCwdService,\n GetProjectService,\n GetProjectVersionService\n} from \"~/abstractions/index.js\";\nimport { ProjectModel } from \"~/models/ProjectModel.js\";\nimport { PathModel } from \"~/models/PathModel.js\";\nimport path from \"path\";\n\nexport class DefaultGetProjectService implements GetProjectService.Interface {\n cachedProject: ProjectModel | null = null;\n\n constructor(\n private getProjectVersionService: GetProjectVersionService.Interface,\n private getCwdService: GetCwdService.Interface\n ) {}\n\n execute() {\n if (this.cachedProject) {\n return this.cachedProject;\n }\n\n const cwd = this.getCwdService.execute();\n const webinyConfigFilePathString = findUp.sync(\"webiny.config.tsx\", { cwd });\n if (!webinyConfigFilePathString) {\n throw new Error(`Could not detect project in given directory (${cwd}).`);\n }\n\n const webinyConfigFilePath = PathModel.from(webinyConfigFilePathString);\n const projectRootFolderPath = PathModel.from(\n dirname(webinyConfigFilePathString.toString())\n );\n const dotWebinyFolderPath = projectRootFolderPath.join(\".webiny\");\n const workspaceFolderPath = projectRootFolderPath.join(\".webiny\", \"workspace\");\n const webinyConfigBaseFilePath = workspaceFolderPath.join(\"webiny.config.base.tsx\");\n const localPulumiStateFilesFolderPath = projectRootFolderPath.join(\".pulumi\");\n const tsConfigFilePath = projectRootFolderPath.join(\"tsconfig.json\");\n const projectVersion = this.getProjectVersionService.execute();\n\n this.cachedProject = new ProjectModel({\n // TODO: read project name from config file.\n name: path.basename(projectRootFolderPath.toString()),\n version: projectVersion,\n paths: {\n dotWebinyFolder: dotWebinyFolderPath,\n rootFolder: projectRootFolderPath,\n webinyConfigFile: webinyConfigFilePath,\n webinyConfigBaseFile: webinyConfigBaseFilePath,\n workspaceFolder: workspaceFolderPath,\n localPulumiStateFilesFolder: localPulumiStateFilesFolderPath,\n tsConfigFile: tsConfigFilePath\n }\n });\n\n return this.cachedProject;\n }\n}\n\nexport const getProjectService = createImplementation({\n abstraction: GetProjectService,\n implementation: DefaultGetProjectService,\n dependencies: [GetProjectVersionService, GetCwdService]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,OAAOC,MAAM,MAAM,SAAS;AAC5B,SAASC,OAAO,QAAQ,MAAM;AAC9B,SACIC,aAAa,EACbC,iBAAiB,EACjBC,wBAAwB;AAE5B,SAASC,YAAY;AACrB,SAASC,SAAS;AAClB,OAAOC,IAAI,MAAM,MAAM;AAEvB,OAAO,MAAMC,wBAAwB,CAAwC;EACzEC,aAAa,GAAwB,IAAI;EAEzCC,WAAWA,CACCC,wBAA4D,EAC5DC,aAAsC,EAChD;IAAA,KAFUD,wBAA4D,GAA5DA,wBAA4D;IAAA,KAC5DC,aAAsC,GAAtCA,aAAsC;EAC/C;EAEHC,OAAOA,CAAA,EAAG;IACN,IAAI,IAAI,CAACJ,aAAa,EAAE;MACpB,OAAO,IAAI,CAACA,aAAa;IAC7B;IAEA,MAAMK,GAAG,GAAG,IAAI,CAACF,aAAa,CAACC,OAAO,CAAC,CAAC;IACxC,MAAME,0BAA0B,GAAGf,MAAM,CAACgB,IAAI,CAAC,mBAAmB,EAAE;MAAEF;IAAI,CAAC,CAAC;IAC5E,IAAI,CAACC,0BAA0B,EAAE;MAC7B,MAAM,IAAIE,KAAK,CAAC,gDAAgDH,GAAG,IAAI,CAAC;IAC5E;IAEA,MAAMI,oBAAoB,GAAGZ,SAAS,CAACa,IAAI,CAACJ,0BAA0B,CAAC;IACvE,MAAMK,qBAAqB,GAAGd,SAAS,CAACa,IAAI,CACxClB,OAAO,CAACc,0BAA0B,CAACM,QAAQ,CAAC,CAAC,CACjD,CAAC;IACD,MAAMC,mBAAmB,GAAGF,qBAAqB,CAACG,IAAI,CAAC,SAAS,CAAC;IACjE,MAAMC,mBAAmB,GAAGJ,qBAAqB,CAACG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;IAC9E,MAAME,wBAAwB,GAAGD,mBAAmB,CAACD,IAAI,CAAC,wBAAwB,CAAC;IACnF,MAAMG,+BAA+B,GAAGN,qBAAqB,CAACG,IAAI,CAAC,SAAS,CAAC;IAC7E,MAAMI,gBAAgB,GAAGP,qBAAqB,CAACG,IAAI,CAAC,eAAe,CAAC;IACpE,MAAMK,cAAc,GAAG,IAAI,CAACjB,wBAAwB,CAACE,OAAO,CAAC,CAAC;IAE9D,IAAI,CAACJ,aAAa,GAAG,IAAIJ,YAAY,CAAC;MAClC;MACAwB,IAAI,EAAEtB,IAAI,CAACuB,QAAQ,CAACV,qBAAqB,CAACC,QAAQ,CAAC,CAAC,CAAC;MACrDU,OAAO,EAAEH,cAAc;MACvBI,KAAK,EAAE;QACHC,eAAe,EAAEX,mBAAmB;QACpCY,UAAU,EAAEd,qBAAqB;QACjCe,gBAAgB,EAAEjB,oBAAoB;QACtCkB,oBAAoB,EAAEX,wBAAwB;QAC9CY,eAAe,EAAEb,mBAAmB;QACpCc,2BAA2B,EAAEZ,+BAA+B;QAC5Da,YAAY,EAAEZ;MAClB;IACJ,CAAC,CAAC;IAEF,OAAO,IAAI,CAAClB,aAAa;EAC7B;AACJ;AAEA,OAAO,MAAM+B,iBAAiB,GAAGzC,oBAAoB,CAAC;EAClD0C,WAAW,EAAEtC,iBAAiB;EAC9BuC,cAAc,EAAElC,wBAAwB;EACxCmC,YAAY,EAAE,CAACvC,wBAAwB,EAAEF,aAAa;AAC1D,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createImplementation","findUpSync","dirname","GetCwdService","GetProjectService","GetProjectVersionService","ProjectModel","PathModel","path","DefaultGetProjectService","cachedProject","constructor","getProjectVersionService","getCwdService","execute","cwd","webinyConfigFilePathString","Error","webinyConfigFilePath","from","projectRootFolderPath","toString","dotWebinyFolderPath","join","workspaceFolderPath","webinyConfigBaseFilePath","localPulumiStateFilesFolderPath","tsConfigFilePath","projectVersion","name","basename","version","paths","dotWebinyFolder","rootFolder","webinyConfigFile","webinyConfigBaseFile","workspaceFolder","localPulumiStateFilesFolder","tsConfigFile","getProjectService","abstraction","implementation","dependencies"],"sources":["GetProjectService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { findUpSync } from \"find-up\";\nimport { dirname } from \"path\";\nimport {\n GetCwdService,\n GetProjectService,\n GetProjectVersionService\n} from \"~/abstractions/index.js\";\nimport { ProjectModel } from \"~/models/ProjectModel.js\";\nimport { PathModel } from \"~/models/PathModel.js\";\nimport path from \"path\";\n\nexport class DefaultGetProjectService implements GetProjectService.Interface {\n cachedProject: ProjectModel | null = null;\n\n constructor(\n private getProjectVersionService: GetProjectVersionService.Interface,\n private getCwdService: GetCwdService.Interface\n ) {}\n\n execute() {\n if (this.cachedProject) {\n return this.cachedProject;\n }\n\n const cwd = this.getCwdService.execute();\n const webinyConfigFilePathString = findUpSync(\"webiny.config.tsx\", { cwd });\n if (!webinyConfigFilePathString) {\n throw new Error(`Could not detect project in given directory (${cwd}).`);\n }\n\n const webinyConfigFilePath = PathModel.from(webinyConfigFilePathString);\n const projectRootFolderPath = PathModel.from(\n dirname(webinyConfigFilePathString.toString())\n );\n const dotWebinyFolderPath = projectRootFolderPath.join(\".webiny\");\n const workspaceFolderPath = projectRootFolderPath.join(\".webiny\", \"workspace\");\n const webinyConfigBaseFilePath = workspaceFolderPath.join(\"webiny.config.base.tsx\");\n const localPulumiStateFilesFolderPath = projectRootFolderPath.join(\".pulumi\");\n const tsConfigFilePath = projectRootFolderPath.join(\"tsconfig.json\");\n const projectVersion = this.getProjectVersionService.execute();\n\n this.cachedProject = new ProjectModel({\n // TODO: read project name from config file.\n name: path.basename(projectRootFolderPath.toString()),\n version: projectVersion,\n paths: {\n dotWebinyFolder: dotWebinyFolderPath,\n rootFolder: projectRootFolderPath,\n webinyConfigFile: webinyConfigFilePath,\n webinyConfigBaseFile: webinyConfigBaseFilePath,\n workspaceFolder: workspaceFolderPath,\n localPulumiStateFilesFolder: localPulumiStateFilesFolderPath,\n tsConfigFile: tsConfigFilePath\n }\n });\n\n return this.cachedProject;\n }\n}\n\nexport const getProjectService = createImplementation({\n abstraction: GetProjectService,\n implementation: DefaultGetProjectService,\n dependencies: [GetProjectVersionService, GetCwdService]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SAASC,UAAU,QAAQ,SAAS;AACpC,SAASC,OAAO,QAAQ,MAAM;AAC9B,SACIC,aAAa,EACbC,iBAAiB,EACjBC,wBAAwB;AAE5B,SAASC,YAAY;AACrB,SAASC,SAAS;AAClB,OAAOC,IAAI,MAAM,MAAM;AAEvB,OAAO,MAAMC,wBAAwB,CAAwC;EACzEC,aAAa,GAAwB,IAAI;EAEzCC,WAAWA,CACCC,wBAA4D,EAC5DC,aAAsC,EAChD;IAAA,KAFUD,wBAA4D,GAA5DA,wBAA4D;IAAA,KAC5DC,aAAsC,GAAtCA,aAAsC;EAC/C;EAEHC,OAAOA,CAAA,EAAG;IACN,IAAI,IAAI,CAACJ,aAAa,EAAE;MACpB,OAAO,IAAI,CAACA,aAAa;IAC7B;IAEA,MAAMK,GAAG,GAAG,IAAI,CAACF,aAAa,CAACC,OAAO,CAAC,CAAC;IACxC,MAAME,0BAA0B,GAAGf,UAAU,CAAC,mBAAmB,EAAE;MAAEc;IAAI,CAAC,CAAC;IAC3E,IAAI,CAACC,0BAA0B,EAAE;MAC7B,MAAM,IAAIC,KAAK,CAAC,gDAAgDF,GAAG,IAAI,CAAC;IAC5E;IAEA,MAAMG,oBAAoB,GAAGX,SAAS,CAACY,IAAI,CAACH,0BAA0B,CAAC;IACvE,MAAMI,qBAAqB,GAAGb,SAAS,CAACY,IAAI,CACxCjB,OAAO,CAACc,0BAA0B,CAACK,QAAQ,CAAC,CAAC,CACjD,CAAC;IACD,MAAMC,mBAAmB,GAAGF,qBAAqB,CAACG,IAAI,CAAC,SAAS,CAAC;IACjE,MAAMC,mBAAmB,GAAGJ,qBAAqB,CAACG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;IAC9E,MAAME,wBAAwB,GAAGD,mBAAmB,CAACD,IAAI,CAAC,wBAAwB,CAAC;IACnF,MAAMG,+BAA+B,GAAGN,qBAAqB,CAACG,IAAI,CAAC,SAAS,CAAC;IAC7E,MAAMI,gBAAgB,GAAGP,qBAAqB,CAACG,IAAI,CAAC,eAAe,CAAC;IACpE,MAAMK,cAAc,GAAG,IAAI,CAAChB,wBAAwB,CAACE,OAAO,CAAC,CAAC;IAE9D,IAAI,CAACJ,aAAa,GAAG,IAAIJ,YAAY,CAAC;MAClC;MACAuB,IAAI,EAAErB,IAAI,CAACsB,QAAQ,CAACV,qBAAqB,CAACC,QAAQ,CAAC,CAAC,CAAC;MACrDU,OAAO,EAAEH,cAAc;MACvBI,KAAK,EAAE;QACHC,eAAe,EAAEX,mBAAmB;QACpCY,UAAU,EAAEd,qBAAqB;QACjCe,gBAAgB,EAAEjB,oBAAoB;QACtCkB,oBAAoB,EAAEX,wBAAwB;QAC9CY,eAAe,EAAEb,mBAAmB;QACpCc,2BAA2B,EAAEZ,+BAA+B;QAC5Da,YAAY,EAAEZ;MAClB;IACJ,CAAC,CAAC;IAEF,OAAO,IAAI,CAACjB,aAAa;EAC7B;AACJ;AAEA,OAAO,MAAM8B,iBAAiB,GAAGxC,oBAAoB,CAAC;EAClDyC,WAAW,EAAErC,iBAAiB;EAC9BsC,cAAc,EAAEjC,wBAAwB;EACxCkC,YAAY,EAAE,CAACtC,wBAAwB,EAAEF,aAAa;AAC1D,CAAC,CAAC","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  import { createImplementation } from "@webiny/di";
2
- import findUp from "find-up";
2
+ import { findUpSync } from "find-up";
3
3
  import path from "path";
4
4
  import { GetProjectVersionService } from "../../abstractions/index.js";
5
- import readJsonSync from "read-json-sync";
5
+ import { loadJsonFileSync } from "load-json-file";
6
6
  class DefaultGetProjectVersionService {
7
7
  cachedProjectVersion = null;
8
8
  execute() {
@@ -14,10 +14,10 @@ class DefaultGetProjectVersionService {
14
14
  this.cachedProjectVersion = envProjectVersion;
15
15
  return this.cachedProjectVersion;
16
16
  }
17
- const pkgJsonPath = findUp.sync("package.json", {
17
+ const pkgJsonPath = findUpSync("package.json", {
18
18
  cwd: path.dirname(import.meta.dirname)
19
19
  });
20
- const pkgJson = pkgJsonPath ? readJsonSync(pkgJsonPath) : null;
20
+ const pkgJson = pkgJsonPath ? loadJsonFileSync(pkgJsonPath) : null;
21
21
  if (pkgJson?.version) {
22
22
  this.cachedProjectVersion = pkgJson.version;
23
23
  return this.cachedProjectVersion;
@@ -1 +1 @@
1
- {"version":3,"names":["createImplementation","findUp","path","GetProjectVersionService","readJsonSync","DefaultGetProjectVersionService","cachedProjectVersion","execute","envProjectVersion","process","env","WEBINY_VERSION","pkgJsonPath","sync","cwd","dirname","import","meta","pkgJson","version","getProjectVersionService","abstraction","implementation","dependencies"],"sources":["GetProjectVersionService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport findUp from \"find-up\";\nimport path from \"path\";\nimport { GetProjectVersionService } from \"~/abstractions/index.js\";\nimport readJsonSync from \"read-json-sync\";\nimport type { PackageJson } from \"type-fest\";\n\nclass DefaultGetProjectVersionService implements GetProjectVersionService.Interface {\n cachedProjectVersion: string | null = null;\n\n execute() {\n if (this.cachedProjectVersion) {\n return this.cachedProjectVersion;\n }\n\n const envProjectVersion = process.env.WEBINY_VERSION;\n if (envProjectVersion) {\n this.cachedProjectVersion = envProjectVersion;\n return this.cachedProjectVersion;\n }\n\n const pkgJsonPath = findUp.sync(\"package.json\", {\n cwd: path.dirname(import.meta.dirname)\n });\n\n const pkgJson = pkgJsonPath ? (readJsonSync(pkgJsonPath) as PackageJson) : null;\n\n if (pkgJson?.version) {\n this.cachedProjectVersion = pkgJson.version;\n return this.cachedProjectVersion;\n }\n\n return \"0.0.0\";\n }\n}\n\nexport const getProjectVersionService = createImplementation({\n abstraction: GetProjectVersionService,\n implementation: DefaultGetProjectVersionService,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,OAAOC,MAAM,MAAM,SAAS;AAC5B,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,wBAAwB;AACjC,OAAOC,YAAY,MAAM,gBAAgB;AAGzC,MAAMC,+BAA+B,CAA+C;EAChFC,oBAAoB,GAAkB,IAAI;EAE1CC,OAAOA,CAAA,EAAG;IACN,IAAI,IAAI,CAACD,oBAAoB,EAAE;MAC3B,OAAO,IAAI,CAACA,oBAAoB;IACpC;IAEA,MAAME,iBAAiB,GAAGC,OAAO,CAACC,GAAG,CAACC,cAAc;IACpD,IAAIH,iBAAiB,EAAE;MACnB,IAAI,CAACF,oBAAoB,GAAGE,iBAAiB;MAC7C,OAAO,IAAI,CAACF,oBAAoB;IACpC;IAEA,MAAMM,WAAW,GAAGX,MAAM,CAACY,IAAI,CAAC,cAAc,EAAE;MAC5CC,GAAG,EAAEZ,IAAI,CAACa,OAAO,CAACC,MAAM,CAACC,IAAI,CAACF,OAAO;IACzC,CAAC,CAAC;IAEF,MAAMG,OAAO,GAAGN,WAAW,GAAIR,YAAY,CAACQ,WAAW,CAAC,GAAmB,IAAI;IAE/E,IAAIM,OAAO,EAAEC,OAAO,EAAE;MAClB,IAAI,CAACb,oBAAoB,GAAGY,OAAO,CAACC,OAAO;MAC3C,OAAO,IAAI,CAACb,oBAAoB;IACpC;IAEA,OAAO,OAAO;EAClB;AACJ;AAEA,OAAO,MAAMc,wBAAwB,GAAGpB,oBAAoB,CAAC;EACzDqB,WAAW,EAAElB,wBAAwB;EACrCmB,cAAc,EAAEjB,+BAA+B;EAC/CkB,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createImplementation","findUpSync","path","GetProjectVersionService","loadJsonFileSync","DefaultGetProjectVersionService","cachedProjectVersion","execute","envProjectVersion","process","env","WEBINY_VERSION","pkgJsonPath","cwd","dirname","import","meta","pkgJson","version","getProjectVersionService","abstraction","implementation","dependencies"],"sources":["GetProjectVersionService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { findUpSync } from \"find-up\";\nimport path from \"path\";\nimport { GetProjectVersionService } from \"~/abstractions/index.js\";\nimport { loadJsonFileSync } from \"load-json-file\";\nimport type { PackageJson } from \"type-fest\";\n\nclass DefaultGetProjectVersionService implements GetProjectVersionService.Interface {\n cachedProjectVersion: string | null = null;\n\n execute() {\n if (this.cachedProjectVersion) {\n return this.cachedProjectVersion;\n }\n\n const envProjectVersion = process.env.WEBINY_VERSION;\n if (envProjectVersion) {\n this.cachedProjectVersion = envProjectVersion;\n return this.cachedProjectVersion;\n }\n\n const pkgJsonPath = findUpSync(\"package.json\", {\n cwd: path.dirname(import.meta.dirname)\n });\n\n const pkgJson = pkgJsonPath ? (loadJsonFileSync(pkgJsonPath) as PackageJson) : null;\n\n if (pkgJson?.version) {\n this.cachedProjectVersion = pkgJson.version;\n return this.cachedProjectVersion;\n }\n\n return \"0.0.0\";\n }\n}\n\nexport const getProjectVersionService = createImplementation({\n abstraction: GetProjectVersionService,\n implementation: DefaultGetProjectVersionService,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SAASC,UAAU,QAAQ,SAAS;AACpC,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,wBAAwB;AACjC,SAASC,gBAAgB,QAAQ,gBAAgB;AAGjD,MAAMC,+BAA+B,CAA+C;EAChFC,oBAAoB,GAAkB,IAAI;EAE1CC,OAAOA,CAAA,EAAG;IACN,IAAI,IAAI,CAACD,oBAAoB,EAAE;MAC3B,OAAO,IAAI,CAACA,oBAAoB;IACpC;IAEA,MAAME,iBAAiB,GAAGC,OAAO,CAACC,GAAG,CAACC,cAAc;IACpD,IAAIH,iBAAiB,EAAE;MACnB,IAAI,CAACF,oBAAoB,GAAGE,iBAAiB;MAC7C,OAAO,IAAI,CAACF,oBAAoB;IACpC;IAEA,MAAMM,WAAW,GAAGX,UAAU,CAAC,cAAc,EAAE;MAC3CY,GAAG,EAAEX,IAAI,CAACY,OAAO,CAACC,MAAM,CAACC,IAAI,CAACF,OAAO;IACzC,CAAC,CAAC;IAEF,MAAMG,OAAO,GAAGL,WAAW,GAAIR,gBAAgB,CAACQ,WAAW,CAAC,GAAmB,IAAI;IAEnF,IAAIK,OAAO,EAAEC,OAAO,EAAE;MAClB,IAAI,CAACZ,oBAAoB,GAAGW,OAAO,CAACC,OAAO;MAC3C,OAAO,IAAI,CAACZ,oBAAoB;IACpC;IAEA,OAAO,OAAO;EAClB;AACJ;AAEA,OAAO,MAAMa,wBAAwB,GAAGnB,oBAAoB,CAAC;EACzDoB,WAAW,EAAEjB,wBAAwB;EACrCkB,cAAc,EAAEhB,+BAA+B;EAC/CiB,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -1,6 +1,5 @@
1
1
  import { createImplementation } from "@webiny/di";
2
2
  import { GetProjectService, GetProjectConfig, InitProjectSdkService } from "../../abstractions/index.js";
3
- import { corePulumi, apiPulumi, adminPulumi } from "../../features/index.js";
4
3
  import { buildAppWithHooks, deployAppClearWatchedLambdaFunctions, deployAppRefreshStackOutputCache, deployAppWithHooks, deployAppWithWatchedLambdaReplacement, watchWithHooks, getPulumiServiceWithDownloadInfo } from "../../decorators/index.js";
5
4
  import { applyEnvVars } from "./applyEnvVars.js";
6
5
  import { applyWcpEnvVars } from "./applyWcpEnvVars.js";
@@ -33,11 +32,6 @@ export class DefaultInitProjectSdkService {
33
32
  // Register Pulumi extensions.
34
33
  await registerPulumiExtensions(container, projectExtensions, project);
35
34
 
36
- // Pulumi composites.
37
- container.registerComposite(corePulumi);
38
- container.registerComposite(apiPulumi);
39
- container.registerComposite(adminPulumi);
40
-
41
35
  // Decorators that must be applied last on top of potentially custom ones.
42
36
  container.registerDecorator(buildAppWithHooks);
43
37
  container.registerDecorator(deployAppWithWatchedLambdaReplacement);
@@ -1 +1 @@
1
- {"version":3,"names":["createImplementation","GetProjectService","GetProjectConfig","InitProjectSdkService","corePulumi","apiPulumi","adminPulumi","buildAppWithHooks","deployAppClearWatchedLambdaFunctions","deployAppRefreshStackOutputCache","deployAppWithHooks","deployAppWithWatchedLambdaReplacement","watchWithHooks","getPulumiServiceWithDownloadInfo","applyEnvVars","applyWcpEnvVars","registerHooks","registerPulumiExtensions","registerImplementations","registerDecorators","DefaultInitProjectSdkService","constructor","getProjectService","getProjectConfig","execute","container","project","projectExtensions","tags","runtimeContext","registerComposite","registerDecorator","initProjectSdkService","abstraction","implementation","dependencies"],"sources":["InitProjectSdkService.ts"],"sourcesContent":["import { createImplementation, Container } from \"@webiny/di\";\nimport {\n GetProjectService,\n GetProjectConfig,\n InitProjectSdkService\n} from \"~/abstractions/index.js\";\nimport { corePulumi, apiPulumi, adminPulumi } from \"~/features/index.js\";\nimport {\n buildAppWithHooks,\n deployAppClearWatchedLambdaFunctions,\n deployAppRefreshStackOutputCache,\n deployAppWithHooks,\n deployAppWithWatchedLambdaReplacement,\n watchWithHooks,\n getPulumiServiceWithDownloadInfo\n} from \"~/decorators/index.js\";\nimport { applyEnvVars } from \"./applyEnvVars.js\";\nimport { applyWcpEnvVars } from \"./applyWcpEnvVars.js\";\nimport { registerHooks } from \"./registerHooks.js\";\nimport { registerPulumiExtensions } from \"./registerPulumiExtensions.js\";\nimport { registerImplementations } from \"./registerImplementations.js\";\nimport { registerDecorators } from \"./registerDecorators.js\";\n\nexport class DefaultInitProjectSdkService implements InitProjectSdkService.Interface {\n constructor(\n private getProjectService: GetProjectService.Interface,\n private getProjectConfig: GetProjectConfig.Interface\n ) {}\n\n async execute(container: Container) {\n const project = this.getProjectService.execute();\n const projectExtensions = await this.getProjectConfig.execute({\n tags: { runtimeContext: \"project\" }\n });\n\n // Apply environment variables from extensions.\n applyEnvVars(projectExtensions);\n\n // Set WCP environment variables if project ID exists.\n await applyWcpEnvVars(container);\n\n // Register hooks from extensions.\n await registerHooks(container, projectExtensions, project);\n\n // Register Pulumi extensions.\n await registerPulumiExtensions(container, projectExtensions, project);\n\n // Pulumi composites.\n container.registerComposite(corePulumi);\n container.registerComposite(apiPulumi);\n container.registerComposite(adminPulumi);\n\n // Decorators that must be applied last on top of potentially custom ones.\n container.registerDecorator(buildAppWithHooks);\n container.registerDecorator(deployAppWithWatchedLambdaReplacement);\n container.registerDecorator(deployAppClearWatchedLambdaFunctions);\n container.registerDecorator(deployAppRefreshStackOutputCache);\n container.registerDecorator(deployAppWithHooks);\n container.registerDecorator(watchWithHooks);\n container.registerDecorator(getPulumiServiceWithDownloadInfo);\n\n // Register custom implementations first (they replace existing implementations).\n await registerImplementations(container, projectExtensions, project);\n\n // Register decorators after implementations (they enhance existing implementations).\n await registerDecorators(container, projectExtensions, project);\n }\n}\n\nexport const initProjectSdkService = createImplementation({\n abstraction: InitProjectSdkService,\n implementation: DefaultInitProjectSdkService,\n dependencies: [GetProjectService, GetProjectConfig]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAmB,YAAY;AAC5D,SACIC,iBAAiB,EACjBC,gBAAgB,EAChBC,qBAAqB;AAEzB,SAASC,UAAU,EAAEC,SAAS,EAAEC,WAAW;AAC3C,SACIC,iBAAiB,EACjBC,oCAAoC,EACpCC,gCAAgC,EAChCC,kBAAkB,EAClBC,qCAAqC,EACrCC,cAAc,EACdC,gCAAgC;AAEpC,SAASC,YAAY;AACrB,SAASC,eAAe;AACxB,SAASC,aAAa;AACtB,SAASC,wBAAwB;AACjC,SAASC,uBAAuB;AAChC,SAASC,kBAAkB;AAE3B,OAAO,MAAMC,4BAA4B,CAA4C;EACjFC,WAAWA,CACCC,iBAA8C,EAC9CC,gBAA4C,EACtD;IAAA,KAFUD,iBAA8C,GAA9CA,iBAA8C;IAAA,KAC9CC,gBAA4C,GAA5CA,gBAA4C;EACrD;EAEH,MAAMC,OAAOA,CAACC,SAAoB,EAAE;IAChC,MAAMC,OAAO,GAAG,IAAI,CAACJ,iBAAiB,CAACE,OAAO,CAAC,CAAC;IAChD,MAAMG,iBAAiB,GAAG,MAAM,IAAI,CAACJ,gBAAgB,CAACC,OAAO,CAAC;MAC1DI,IAAI,EAAE;QAAEC,cAAc,EAAE;MAAU;IACtC,CAAC,CAAC;;IAEF;IACAf,YAAY,CAACa,iBAAiB,CAAC;;IAE/B;IACA,MAAMZ,eAAe,CAACU,SAAS,CAAC;;IAEhC;IACA,MAAMT,aAAa,CAACS,SAAS,EAAEE,iBAAiB,EAAED,OAAO,CAAC;;IAE1D;IACA,MAAMT,wBAAwB,CAACQ,SAAS,EAAEE,iBAAiB,EAAED,OAAO,CAAC;;IAErE;IACAD,SAAS,CAACK,iBAAiB,CAAC1B,UAAU,CAAC;IACvCqB,SAAS,CAACK,iBAAiB,CAACzB,SAAS,CAAC;IACtCoB,SAAS,CAACK,iBAAiB,CAACxB,WAAW,CAAC;;IAExC;IACAmB,SAAS,CAACM,iBAAiB,CAACxB,iBAAiB,CAAC;IAC9CkB,SAAS,CAACM,iBAAiB,CAACpB,qCAAqC,CAAC;IAClEc,SAAS,CAACM,iBAAiB,CAACvB,oCAAoC,CAAC;IACjEiB,SAAS,CAACM,iBAAiB,CAACtB,gCAAgC,CAAC;IAC7DgB,SAAS,CAACM,iBAAiB,CAACrB,kBAAkB,CAAC;IAC/Ce,SAAS,CAACM,iBAAiB,CAACnB,cAAc,CAAC;IAC3Ca,SAAS,CAACM,iBAAiB,CAAClB,gCAAgC,CAAC;;IAE7D;IACA,MAAMK,uBAAuB,CAACO,SAAS,EAAEE,iBAAiB,EAAED,OAAO,CAAC;;IAEpE;IACA,MAAMP,kBAAkB,CAACM,SAAS,EAAEE,iBAAiB,EAAED,OAAO,CAAC;EACnE;AACJ;AAEA,OAAO,MAAMM,qBAAqB,GAAGhC,oBAAoB,CAAC;EACtDiC,WAAW,EAAE9B,qBAAqB;EAClC+B,cAAc,EAAEd,4BAA4B;EAC5Ce,YAAY,EAAE,CAAClC,iBAAiB,EAAEC,gBAAgB;AACtD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createImplementation","GetProjectService","GetProjectConfig","InitProjectSdkService","buildAppWithHooks","deployAppClearWatchedLambdaFunctions","deployAppRefreshStackOutputCache","deployAppWithHooks","deployAppWithWatchedLambdaReplacement","watchWithHooks","getPulumiServiceWithDownloadInfo","applyEnvVars","applyWcpEnvVars","registerHooks","registerPulumiExtensions","registerImplementations","registerDecorators","DefaultInitProjectSdkService","constructor","getProjectService","getProjectConfig","execute","container","project","projectExtensions","tags","runtimeContext","registerDecorator","initProjectSdkService","abstraction","implementation","dependencies"],"sources":["InitProjectSdkService.ts"],"sourcesContent":["import { createImplementation, Container } from \"@webiny/di\";\nimport {\n GetProjectService,\n GetProjectConfig,\n InitProjectSdkService\n} from \"~/abstractions/index.js\";\nimport {\n buildAppWithHooks,\n deployAppClearWatchedLambdaFunctions,\n deployAppRefreshStackOutputCache,\n deployAppWithHooks,\n deployAppWithWatchedLambdaReplacement,\n watchWithHooks,\n getPulumiServiceWithDownloadInfo\n} from \"~/decorators/index.js\";\nimport { applyEnvVars } from \"./applyEnvVars.js\";\nimport { applyWcpEnvVars } from \"./applyWcpEnvVars.js\";\nimport { registerHooks } from \"./registerHooks.js\";\nimport { registerPulumiExtensions } from \"./registerPulumiExtensions.js\";\nimport { registerImplementations } from \"./registerImplementations.js\";\nimport { registerDecorators } from \"./registerDecorators.js\";\n\nexport class DefaultInitProjectSdkService implements InitProjectSdkService.Interface {\n constructor(\n private getProjectService: GetProjectService.Interface,\n private getProjectConfig: GetProjectConfig.Interface\n ) {}\n\n async execute(container: Container) {\n const project = this.getProjectService.execute();\n const projectExtensions = await this.getProjectConfig.execute({\n tags: { runtimeContext: \"project\" }\n });\n\n // Apply environment variables from extensions.\n applyEnvVars(projectExtensions);\n\n // Set WCP environment variables if project ID exists.\n await applyWcpEnvVars(container);\n\n // Register hooks from extensions.\n await registerHooks(container, projectExtensions, project);\n\n // Register Pulumi extensions.\n await registerPulumiExtensions(container, projectExtensions, project);\n\n // Decorators that must be applied last on top of potentially custom ones.\n container.registerDecorator(buildAppWithHooks);\n container.registerDecorator(deployAppWithWatchedLambdaReplacement);\n container.registerDecorator(deployAppClearWatchedLambdaFunctions);\n container.registerDecorator(deployAppRefreshStackOutputCache);\n container.registerDecorator(deployAppWithHooks);\n container.registerDecorator(watchWithHooks);\n container.registerDecorator(getPulumiServiceWithDownloadInfo);\n\n // Register custom implementations first (they replace existing implementations).\n await registerImplementations(container, projectExtensions, project);\n\n // Register decorators after implementations (they enhance existing implementations).\n await registerDecorators(container, projectExtensions, project);\n }\n}\n\nexport const initProjectSdkService = createImplementation({\n abstraction: InitProjectSdkService,\n implementation: DefaultInitProjectSdkService,\n dependencies: [GetProjectService, GetProjectConfig]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAmB,YAAY;AAC5D,SACIC,iBAAiB,EACjBC,gBAAgB,EAChBC,qBAAqB;AAEzB,SACIC,iBAAiB,EACjBC,oCAAoC,EACpCC,gCAAgC,EAChCC,kBAAkB,EAClBC,qCAAqC,EACrCC,cAAc,EACdC,gCAAgC;AAEpC,SAASC,YAAY;AACrB,SAASC,eAAe;AACxB,SAASC,aAAa;AACtB,SAASC,wBAAwB;AACjC,SAASC,uBAAuB;AAChC,SAASC,kBAAkB;AAE3B,OAAO,MAAMC,4BAA4B,CAA4C;EACjFC,WAAWA,CACCC,iBAA8C,EAC9CC,gBAA4C,EACtD;IAAA,KAFUD,iBAA8C,GAA9CA,iBAA8C;IAAA,KAC9CC,gBAA4C,GAA5CA,gBAA4C;EACrD;EAEH,MAAMC,OAAOA,CAACC,SAAoB,EAAE;IAChC,MAAMC,OAAO,GAAG,IAAI,CAACJ,iBAAiB,CAACE,OAAO,CAAC,CAAC;IAChD,MAAMG,iBAAiB,GAAG,MAAM,IAAI,CAACJ,gBAAgB,CAACC,OAAO,CAAC;MAC1DI,IAAI,EAAE;QAAEC,cAAc,EAAE;MAAU;IACtC,CAAC,CAAC;;IAEF;IACAf,YAAY,CAACa,iBAAiB,CAAC;;IAE/B;IACA,MAAMZ,eAAe,CAACU,SAAS,CAAC;;IAEhC;IACA,MAAMT,aAAa,CAACS,SAAS,EAAEE,iBAAiB,EAAED,OAAO,CAAC;;IAE1D;IACA,MAAMT,wBAAwB,CAACQ,SAAS,EAAEE,iBAAiB,EAAED,OAAO,CAAC;;IAErE;IACAD,SAAS,CAACK,iBAAiB,CAACvB,iBAAiB,CAAC;IAC9CkB,SAAS,CAACK,iBAAiB,CAACnB,qCAAqC,CAAC;IAClEc,SAAS,CAACK,iBAAiB,CAACtB,oCAAoC,CAAC;IACjEiB,SAAS,CAACK,iBAAiB,CAACrB,gCAAgC,CAAC;IAC7DgB,SAAS,CAACK,iBAAiB,CAACpB,kBAAkB,CAAC;IAC/Ce,SAAS,CAACK,iBAAiB,CAAClB,cAAc,CAAC;IAC3Ca,SAAS,CAACK,iBAAiB,CAACjB,gCAAgC,CAAC;;IAE7D;IACA,MAAMK,uBAAuB,CAACO,SAAS,EAAEE,iBAAiB,EAAED,OAAO,CAAC;;IAEpE;IACA,MAAMP,kBAAkB,CAACM,SAAS,EAAEE,iBAAiB,EAAED,OAAO,CAAC;EACnE;AACJ;AAEA,OAAO,MAAMK,qBAAqB,GAAG5B,oBAAoB,CAAC;EACtD6B,WAAW,EAAE1B,qBAAqB;EAClC2B,cAAc,EAAEb,4BAA4B;EAC5Cc,YAAY,EAAE,CAAC9B,iBAAiB,EAAEC,gBAAgB;AACtD,CAAC,CAAC","ignoreList":[]}
@@ -4,19 +4,19 @@ export const applyWcpEnvVars = async container => {
4
4
  /**
5
5
  * The environment variables we set via these hooks are the following:
6
6
  * - WCP_PROJECT_ENVIRONMENT - contains encrypted data about the deployed project environment
7
- * - WCP_PROJECT_ENVIRONMENT_API_KEY - for easier access, we also set the API key
7
+ * - WEBINY_PROJECT_API_KEY / WCP_PROJECT_ENVIRONMENT_API_KEY - for easier access, we also set the API key
8
8
  * - WCP_PROJECT_LICENSE - contains encrypted license data
9
9
  */
10
10
 
11
11
  /**
12
12
  * There are multiple ways the hooks below prepare the WCP-enabled project for deployment.
13
13
  * 1. If `WCP_PROJECT_ENVIRONMENT` metadata env var is defined, we decrypt it, retrieve the
14
- * API key from it, and assign it as the `WCP_PROJECT_ENVIRONMENT_API_KEY` env var.
15
- * 2. If `WCP_PROJECT_ENVIRONMENT_API_KEY` env var is defined, then we use that as the
14
+ * API key from it, and assign it as the `WEBINY_PROJECT_API_KEY` and `WCP_PROJECT_ENVIRONMENT_API_KEY` env vars.
15
+ * 2. If `WEBINY_PROJECT_API_KEY` or `WCP_PROJECT_ENVIRONMENT_API_KEY` env var is defined, then we use that as the
16
16
  * project environment API key. We use that to load the project environment data
17
17
  * and to also assign the `WCP_PROJECT_ENVIRONMENT` metadata env var.
18
18
  * 3. If none of the above is defined, we retrieve (or create) the project environment,
19
- * retrieve its API key and again assign it as `WCP_PROJECT_ENVIRONMENT_API_KEY` env var.
19
+ * retrieve its API key and again assign it as `WEBINY_PROJECT_API_KEY` and `WCP_PROJECT_ENVIRONMENT_API_KEY` env vars.
20
20
  * As in 2), we also assign the `WCP_PROJECT_ENVIRONMENT` metadata env var.
21
21
  */
22
22
 
@@ -35,8 +35,9 @@ export const applyWcpEnvVars = async container => {
35
35
  // Case 1: For development purposes, we allow setting the WCP_PROJECT_ENVIRONMENT env var directly.
36
36
  if (process.env.WCP_PROJECT_ENVIRONMENT) {
37
37
  loggerService.info('The "WCP_PROJECT_ENVIRONMENT" env var is already set. Using that value and skipping the rest of the process.');
38
- // If we have WCP_PROJECT_ENVIRONMENT env var, we set the WCP_PROJECT_ENVIRONMENT_API_KEY too.
38
+ // If we have WCP_PROJECT_ENVIRONMENT env var, we set the WEBINY_PROJECT_API_KEY and WCP_PROJECT_ENVIRONMENT_API_KEY too.
39
39
  const decryptedProjectEnvironment = decrypt(process.env.WCP_PROJECT_ENVIRONMENT);
40
+ process.env.WEBINY_PROJECT_API_KEY = decryptedProjectEnvironment.apiKey;
40
41
  process.env.WCP_PROJECT_ENVIRONMENT_API_KEY = decryptedProjectEnvironment.apiKey;
41
42
  return;
42
43
  }
@@ -44,8 +45,8 @@ export const applyWcpEnvVars = async container => {
44
45
  // The `id` has the orgId/projectId structure, for example `my-org-x/my-project-y`.
45
46
  const [orgId, projectId] = wcpProjectId.split("/");
46
47
 
47
- // Check if API key is already set
48
- const apiKey = process.env.WCP_PROJECT_ENVIRONMENT_API_KEY;
48
+ // Check if API key is already set (prefer WEBINY_PROJECT_API_KEY over WCP_PROJECT_ENVIRONMENT_API_KEY).
49
+ const apiKey = process.env.WEBINY_PROJECT_API_KEY || process.env.WCP_PROJECT_ENVIRONMENT_API_KEY;
49
50
  const sdkParams = projectSdkParamsService.get();
50
51
  const env = sdkParams.env;
51
52
  let projectEnvironment;
@@ -109,7 +110,7 @@ export const applyWcpEnvVars = async container => {
109
110
  });
110
111
  }
111
112
 
112
- // Assign `WCP_PROJECT_ENVIRONMENT`, `WCP_PROJECT_ENVIRONMENT_API_KEY`, and `WCP_PROJECT_LICENSE`
113
+ // Assign `WCP_PROJECT_ENVIRONMENT`, `WEBINY_PROJECT_API_KEY`, `WCP_PROJECT_ENVIRONMENT_API_KEY`, and `WCP_PROJECT_LICENSE`.
113
114
  const wcpProjectEnvironment = {
114
115
  id: projectEnvironment.id,
115
116
  apiKey: projectEnvironment.apiKey,
@@ -121,6 +122,7 @@ export const applyWcpEnvVars = async container => {
121
122
  }
122
123
  };
123
124
  process.env.WCP_PROJECT_ENVIRONMENT = encrypt(wcpProjectEnvironment);
125
+ process.env.WEBINY_PROJECT_API_KEY = projectEnvironment.apiKey;
124
126
  process.env.WCP_PROJECT_ENVIRONMENT_API_KEY = projectEnvironment.apiKey;
125
127
  if (license) {
126
128
  const licenseDto = license.toDto();
@@ -1 +1 @@
1
- {"version":3,"names":["encrypt","decrypt","GetProjectIdService","LoggerService","ProjectSdkParamsService","WcpService","applyWcpEnvVars","container","getProjectIdService","resolve","wcpService","loggerService","projectSdkParamsService","wcpProjectId","execute","debug","process","env","WCP_PROJECT_ENVIRONMENT","info","decryptedProjectEnvironment","WCP_PROJECT_ENVIRONMENT_API_KEY","apiKey","orgId","projectId","split","sdkParams","get","projectEnvironment","getProjectEnvironment","isValidId","error","Error","user","getUser","project","projects","find","item","id","name","userId","environmentId","org","status","license","getProjectLicense","wcpProjectEnvironment","licenseDto","toDto","WCP_PROJECT_LICENSE","JSON","stringify","replace"],"sources":["applyWcpEnvVars.ts"],"sourcesContent":["import { encrypt, decrypt } from \"@webiny/wcp\";\nimport type { ILicense } from \"@webiny/wcp/types\";\nimport { Container } from \"@webiny/di\";\nimport {\n GetProjectIdService,\n LoggerService,\n ProjectSdkParamsService,\n WcpService\n} from \"~/abstractions/index.js\";\n\nexport const applyWcpEnvVars = async (container: Container) => {\n /**\n * The environment variables we set via these hooks are the following:\n * - WCP_PROJECT_ENVIRONMENT - contains encrypted data about the deployed project environment\n * - WCP_PROJECT_ENVIRONMENT_API_KEY - for easier access, we also set the API key\n * - WCP_PROJECT_LICENSE - contains encrypted license data\n */\n\n /**\n * There are multiple ways the hooks below prepare the WCP-enabled project for deployment.\n * 1. If `WCP_PROJECT_ENVIRONMENT` metadata env var is defined, we decrypt it, retrieve the\n * API key from it, and assign it as the `WCP_PROJECT_ENVIRONMENT_API_KEY` env var.\n * 2. If `WCP_PROJECT_ENVIRONMENT_API_KEY` env var is defined, then we use that as the\n * project environment API key. We use that to load the project environment data\n * and to also assign the `WCP_PROJECT_ENVIRONMENT` metadata env var.\n * 3. If none of the above is defined, we retrieve (or create) the project environment,\n * retrieve its API key and again assign it as `WCP_PROJECT_ENVIRONMENT_API_KEY` env var.\n * As in 2), we also assign the `WCP_PROJECT_ENVIRONMENT` metadata env var.\n */\n\n const getProjectIdService = container.resolve(GetProjectIdService);\n const wcpService = container.resolve(WcpService);\n const loggerService = container.resolve(LoggerService);\n const projectSdkParamsService = container.resolve(ProjectSdkParamsService);\n\n const wcpProjectId = await getProjectIdService.execute();\n\n // If the project isn't linked with WCP, do nothing.\n if (!wcpProjectId) {\n loggerService.debug(\n 'Was not able to determine the WCP project ID. Skipping the setting of \"WCP_PROJECT_ENVIRONMENT\" and \"WCP_PROJECT_ENVIRONMENT_API_KEY\" env vars.'\n );\n return;\n }\n\n // Case 1: For development purposes, we allow setting the WCP_PROJECT_ENVIRONMENT env var directly.\n if (process.env.WCP_PROJECT_ENVIRONMENT) {\n loggerService.info(\n 'The \"WCP_PROJECT_ENVIRONMENT\" env var is already set. Using that value and skipping the rest of the process.'\n );\n // If we have WCP_PROJECT_ENVIRONMENT env var, we set the WCP_PROJECT_ENVIRONMENT_API_KEY too.\n const decryptedProjectEnvironment = decrypt(process.env.WCP_PROJECT_ENVIRONMENT);\n process.env.WCP_PROJECT_ENVIRONMENT_API_KEY = decryptedProjectEnvironment.apiKey;\n return;\n }\n\n // The `id` has the orgId/projectId structure, for example `my-org-x/my-project-y`.\n const [orgId, projectId] = wcpProjectId.split(\"/\");\n\n // Check if API key is already set\n const apiKey = process.env.WCP_PROJECT_ENVIRONMENT_API_KEY;\n\n const sdkParams = projectSdkParamsService.get();\n const env = sdkParams.env;\n\n let projectEnvironment;\n if (apiKey) {\n projectEnvironment = await wcpService.getProjectEnvironment({ apiKey });\n } else {\n const isValidId = orgId && projectId;\n if (!isValidId) {\n loggerService.error(\n { orgId, projectId, wcpProjectId },\n `The project ID, specified in \"webiny.config.tsx\" file, seems to be invalid.`\n );\n throw new Error(\n `It seems the project ID, specified in \"webiny.config.tsx\" file, is invalid.`\n );\n }\n\n // If there is no API key, that means we need to retrieve the currently logged-in user.\n const user = await wcpService.getUser();\n if (!user) {\n throw new Error(\n `It seems you are not logged into your WCP project. Please log in using the \"yarn webiny login\" command.`\n );\n }\n\n const project = user.projects.find(item => item.id === projectId);\n if (!project) {\n loggerService.error(\n { projects: user.projects },\n `The \"${projectId}\" project doesn't exist or you don't belong to it.`\n );\n throw new Error(\n `It seems you don't belong to the current project or the current project has been deleted.`\n );\n }\n\n loggerService.debug(\n `Retrieving the \"${env}\" project environment for the \"${project.name}\" project.`\n );\n\n projectEnvironment = await wcpService.getProjectEnvironment({\n orgId,\n projectId,\n userId: user.id,\n environmentId: env\n });\n }\n\n // Validate the project environment belongs to the correct org and project\n if (projectEnvironment.org.id !== orgId) {\n loggerService.error(\n `The \"${projectEnvironment.name}\" project environment doesn't belong to the \"${orgId}\" organization.`\n );\n throw new Error(\n `Cannot retrieve project environment because the \"${projectEnvironment.name}\" project environment doesn't belong to the \"${orgId}\" organization. Please check your WCP project ID (currently set to \"${wcpProjectId}\").`\n );\n }\n\n if (projectEnvironment.project.id !== projectId) {\n loggerService.error(\n `The \"${projectEnvironment.name}\" project environment doesn't belong to the \"${projectId}\" project.`\n );\n throw new Error(\n `Cannot retrieve project environment because the \"${projectEnvironment.name}\" project environment doesn't belong to the \"${wcpProjectId}\" project. Please check your WCP project ID (currently set to \"${wcpProjectId}\").`\n );\n }\n\n if (projectEnvironment && projectEnvironment.status !== \"enabled\") {\n loggerService.error(\n `The \"${projectEnvironment.name}\" project environment has been disabled.`\n );\n throw new Error(\n `Cannot retrieve project environment because the \"${projectEnvironment.name}\" project environment has been disabled.`\n );\n }\n\n // Fetch license\n let license: ILicense | null = null;\n if (projectEnvironment.apiKey) {\n license = await wcpService.getProjectLicense({\n apiKey: projectEnvironment.apiKey,\n orgId,\n projectId\n });\n }\n\n // Assign `WCP_PROJECT_ENVIRONMENT`, `WCP_PROJECT_ENVIRONMENT_API_KEY`, and `WCP_PROJECT_LICENSE`\n const wcpProjectEnvironment = {\n id: projectEnvironment.id,\n apiKey: projectEnvironment.apiKey,\n org: { id: projectEnvironment.org.id },\n project: { id: projectEnvironment.project.id }\n };\n\n process.env.WCP_PROJECT_ENVIRONMENT = encrypt(wcpProjectEnvironment);\n process.env.WCP_PROJECT_ENVIRONMENT_API_KEY = projectEnvironment.apiKey;\n if (license) {\n const licenseDto = license.toDto();\n if (licenseDto) {\n process.env.WCP_PROJECT_LICENSE = JSON.stringify(licenseDto);\n }\n }\n\n loggerService.debug(\n {\n id: projectEnvironment.id,\n apiKey: projectEnvironment.apiKey.replace(/./g, \"#\"),\n org: { id: projectEnvironment.org.id },\n project: { id: projectEnvironment.project.id },\n license: license ? \"present\" : \"not fetched\"\n },\n `WCP project environment \"${projectEnvironment.name}\" (ID: ${projectEnvironment.id}) has been set.`\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["encrypt","decrypt","GetProjectIdService","LoggerService","ProjectSdkParamsService","WcpService","applyWcpEnvVars","container","getProjectIdService","resolve","wcpService","loggerService","projectSdkParamsService","wcpProjectId","execute","debug","process","env","WCP_PROJECT_ENVIRONMENT","info","decryptedProjectEnvironment","WEBINY_PROJECT_API_KEY","apiKey","WCP_PROJECT_ENVIRONMENT_API_KEY","orgId","projectId","split","sdkParams","get","projectEnvironment","getProjectEnvironment","isValidId","error","Error","user","getUser","project","projects","find","item","id","name","userId","environmentId","org","status","license","getProjectLicense","wcpProjectEnvironment","licenseDto","toDto","WCP_PROJECT_LICENSE","JSON","stringify","replace"],"sources":["applyWcpEnvVars.ts"],"sourcesContent":["import { encrypt, decrypt } from \"@webiny/wcp\";\nimport type { ILicense } from \"@webiny/wcp/types\";\nimport { Container } from \"@webiny/di\";\nimport {\n GetProjectIdService,\n LoggerService,\n ProjectSdkParamsService,\n WcpService\n} from \"~/abstractions/index.js\";\n\nexport const applyWcpEnvVars = async (container: Container) => {\n /**\n * The environment variables we set via these hooks are the following:\n * - WCP_PROJECT_ENVIRONMENT - contains encrypted data about the deployed project environment\n * - WEBINY_PROJECT_API_KEY / WCP_PROJECT_ENVIRONMENT_API_KEY - for easier access, we also set the API key\n * - WCP_PROJECT_LICENSE - contains encrypted license data\n */\n\n /**\n * There are multiple ways the hooks below prepare the WCP-enabled project for deployment.\n * 1. If `WCP_PROJECT_ENVIRONMENT` metadata env var is defined, we decrypt it, retrieve the\n * API key from it, and assign it as the `WEBINY_PROJECT_API_KEY` and `WCP_PROJECT_ENVIRONMENT_API_KEY` env vars.\n * 2. If `WEBINY_PROJECT_API_KEY` or `WCP_PROJECT_ENVIRONMENT_API_KEY` env var is defined, then we use that as the\n * project environment API key. We use that to load the project environment data\n * and to also assign the `WCP_PROJECT_ENVIRONMENT` metadata env var.\n * 3. If none of the above is defined, we retrieve (or create) the project environment,\n * retrieve its API key and again assign it as `WEBINY_PROJECT_API_KEY` and `WCP_PROJECT_ENVIRONMENT_API_KEY` env vars.\n * As in 2), we also assign the `WCP_PROJECT_ENVIRONMENT` metadata env var.\n */\n\n const getProjectIdService = container.resolve(GetProjectIdService);\n const wcpService = container.resolve(WcpService);\n const loggerService = container.resolve(LoggerService);\n const projectSdkParamsService = container.resolve(ProjectSdkParamsService);\n\n const wcpProjectId = await getProjectIdService.execute();\n\n // If the project isn't linked with WCP, do nothing.\n if (!wcpProjectId) {\n loggerService.debug(\n 'Was not able to determine the WCP project ID. Skipping the setting of \"WCP_PROJECT_ENVIRONMENT\" and \"WCP_PROJECT_ENVIRONMENT_API_KEY\" env vars.'\n );\n return;\n }\n\n // Case 1: For development purposes, we allow setting the WCP_PROJECT_ENVIRONMENT env var directly.\n if (process.env.WCP_PROJECT_ENVIRONMENT) {\n loggerService.info(\n 'The \"WCP_PROJECT_ENVIRONMENT\" env var is already set. Using that value and skipping the rest of the process.'\n );\n // If we have WCP_PROJECT_ENVIRONMENT env var, we set the WEBINY_PROJECT_API_KEY and WCP_PROJECT_ENVIRONMENT_API_KEY too.\n const decryptedProjectEnvironment = decrypt(process.env.WCP_PROJECT_ENVIRONMENT);\n process.env.WEBINY_PROJECT_API_KEY = decryptedProjectEnvironment.apiKey;\n process.env.WCP_PROJECT_ENVIRONMENT_API_KEY = decryptedProjectEnvironment.apiKey;\n return;\n }\n\n // The `id` has the orgId/projectId structure, for example `my-org-x/my-project-y`.\n const [orgId, projectId] = wcpProjectId.split(\"/\");\n\n // Check if API key is already set (prefer WEBINY_PROJECT_API_KEY over WCP_PROJECT_ENVIRONMENT_API_KEY).\n const apiKey =\n process.env.WEBINY_PROJECT_API_KEY || process.env.WCP_PROJECT_ENVIRONMENT_API_KEY;\n\n const sdkParams = projectSdkParamsService.get();\n const env = sdkParams.env;\n\n let projectEnvironment;\n if (apiKey) {\n projectEnvironment = await wcpService.getProjectEnvironment({ apiKey });\n } else {\n const isValidId = orgId && projectId;\n if (!isValidId) {\n loggerService.error(\n { orgId, projectId, wcpProjectId },\n `The project ID, specified in \"webiny.config.tsx\" file, seems to be invalid.`\n );\n throw new Error(\n `It seems the project ID, specified in \"webiny.config.tsx\" file, is invalid.`\n );\n }\n\n // If there is no API key, that means we need to retrieve the currently logged-in user.\n const user = await wcpService.getUser();\n if (!user) {\n throw new Error(\n `It seems you are not logged into your WCP project. Please log in using the \"yarn webiny login\" command.`\n );\n }\n\n const project = user.projects.find(item => item.id === projectId);\n if (!project) {\n loggerService.error(\n { projects: user.projects },\n `The \"${projectId}\" project doesn't exist or you don't belong to it.`\n );\n throw new Error(\n `It seems you don't belong to the current project or the current project has been deleted.`\n );\n }\n\n loggerService.debug(\n `Retrieving the \"${env}\" project environment for the \"${project.name}\" project.`\n );\n\n projectEnvironment = await wcpService.getProjectEnvironment({\n orgId,\n projectId,\n userId: user.id,\n environmentId: env\n });\n }\n\n // Validate the project environment belongs to the correct org and project\n if (projectEnvironment.org.id !== orgId) {\n loggerService.error(\n `The \"${projectEnvironment.name}\" project environment doesn't belong to the \"${orgId}\" organization.`\n );\n throw new Error(\n `Cannot retrieve project environment because the \"${projectEnvironment.name}\" project environment doesn't belong to the \"${orgId}\" organization. Please check your WCP project ID (currently set to \"${wcpProjectId}\").`\n );\n }\n\n if (projectEnvironment.project.id !== projectId) {\n loggerService.error(\n `The \"${projectEnvironment.name}\" project environment doesn't belong to the \"${projectId}\" project.`\n );\n throw new Error(\n `Cannot retrieve project environment because the \"${projectEnvironment.name}\" project environment doesn't belong to the \"${wcpProjectId}\" project. Please check your WCP project ID (currently set to \"${wcpProjectId}\").`\n );\n }\n\n if (projectEnvironment && projectEnvironment.status !== \"enabled\") {\n loggerService.error(\n `The \"${projectEnvironment.name}\" project environment has been disabled.`\n );\n throw new Error(\n `Cannot retrieve project environment because the \"${projectEnvironment.name}\" project environment has been disabled.`\n );\n }\n\n // Fetch license\n let license: ILicense | null = null;\n if (projectEnvironment.apiKey) {\n license = await wcpService.getProjectLicense({\n apiKey: projectEnvironment.apiKey,\n orgId,\n projectId\n });\n }\n\n // Assign `WCP_PROJECT_ENVIRONMENT`, `WEBINY_PROJECT_API_KEY`, `WCP_PROJECT_ENVIRONMENT_API_KEY`, and `WCP_PROJECT_LICENSE`.\n const wcpProjectEnvironment = {\n id: projectEnvironment.id,\n apiKey: projectEnvironment.apiKey,\n org: { id: projectEnvironment.org.id },\n project: { id: projectEnvironment.project.id }\n };\n\n process.env.WCP_PROJECT_ENVIRONMENT = encrypt(wcpProjectEnvironment);\n process.env.WEBINY_PROJECT_API_KEY = projectEnvironment.apiKey;\n process.env.WCP_PROJECT_ENVIRONMENT_API_KEY = projectEnvironment.apiKey;\n if (license) {\n const licenseDto = license.toDto();\n if (licenseDto) {\n process.env.WCP_PROJECT_LICENSE = JSON.stringify(licenseDto);\n }\n }\n\n loggerService.debug(\n {\n id: projectEnvironment.id,\n apiKey: projectEnvironment.apiKey.replace(/./g, \"#\"),\n org: { id: projectEnvironment.org.id },\n project: { id: projectEnvironment.project.id },\n license: license ? \"present\" : \"not fetched\"\n },\n `WCP project environment \"${projectEnvironment.name}\" (ID: ${projectEnvironment.id}) has been set.`\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,11 @@
1
1
  import { ExtensionSrcResolver } from "../../utils/index.js";
2
- import { CorePulumi as CorePulumiExt, ApiPulumi as ApiPulumiExt, AdminPulumi as AdminPulumiExt } from "../../extensions/pulumi/index.js";
3
2
  export const registerPulumiExtensions = async (container, projectExtensions, project) => {
4
- const pulumiExtensions = [...projectExtensions.extensionsByType(CorePulumiExt), ...projectExtensions.extensionsByType(ApiPulumiExt), ...projectExtensions.extensionsByType(AdminPulumiExt)];
3
+ const pulumiExtensions = [...projectExtensions.extensionsByType("Core/Pulumi"), ...projectExtensions.extensionsByType("Api/Pulumi"), ...projectExtensions.extensionsByType("Admin/Pulumi")];
5
4
  for (const pulumiExtension of pulumiExtensions) {
6
- const pulumiImpl = await ExtensionSrcResolver.importFromPath(pulumiExtension.params.src, project);
5
+ const {
6
+ src
7
+ } = pulumiExtension.params;
8
+ const pulumiImpl = await ExtensionSrcResolver.importFromPath(src, project);
7
9
  container.register(pulumiImpl).inSingletonScope();
8
10
  }
9
11
  };
@@ -1 +1 @@
1
- {"version":3,"names":["ExtensionSrcResolver","CorePulumi","CorePulumiExt","ApiPulumi","ApiPulumiExt","AdminPulumi","AdminPulumiExt","registerPulumiExtensions","container","projectExtensions","project","pulumiExtensions","extensionsByType","pulumiExtension","pulumiImpl","importFromPath","params","src","register","inSingletonScope"],"sources":["registerPulumiExtensions.ts"],"sourcesContent":["import { type IProjectModel } from \"~/abstractions/models/index.js\";\nimport { type IProjectConfigModel } from \"~/abstractions/models/index.js\";\nimport { Container } from \"@webiny/di\";\nimport { ExtensionSrcResolver } from \"~/utils/index.js\";\nimport {\n CorePulumi as CorePulumiExt,\n ApiPulumi as ApiPulumiExt,\n AdminPulumi as AdminPulumiExt\n} from \"~/extensions/pulumi/index.js\";\n\nexport const registerPulumiExtensions = async (\n container: Container,\n projectExtensions: IProjectConfigModel,\n project: IProjectModel\n) => {\n const pulumiExtensions = [\n ...projectExtensions.extensionsByType(CorePulumiExt),\n ...projectExtensions.extensionsByType(ApiPulumiExt),\n ...projectExtensions.extensionsByType(AdminPulumiExt)\n ];\n\n for (const pulumiExtension of pulumiExtensions) {\n const pulumiImpl = await ExtensionSrcResolver.importFromPath(\n pulumiExtension.params.src,\n project\n );\n container.register(pulumiImpl).inSingletonScope();\n }\n};\n"],"mappings":"AAGA,SAASA,oBAAoB;AAC7B,SACIC,UAAU,IAAIC,aAAa,EAC3BC,SAAS,IAAIC,YAAY,EACzBC,WAAW,IAAIC,cAAc;AAGjC,OAAO,MAAMC,wBAAwB,GAAG,MAAAA,CACpCC,SAAoB,EACpBC,iBAAsC,EACtCC,OAAsB,KACrB;EACD,MAAMC,gBAAgB,GAAG,CACrB,GAAGF,iBAAiB,CAACG,gBAAgB,CAACV,aAAa,CAAC,EACpD,GAAGO,iBAAiB,CAACG,gBAAgB,CAACR,YAAY,CAAC,EACnD,GAAGK,iBAAiB,CAACG,gBAAgB,CAACN,cAAc,CAAC,CACxD;EAED,KAAK,MAAMO,eAAe,IAAIF,gBAAgB,EAAE;IAC5C,MAAMG,UAAU,GAAG,MAAMd,oBAAoB,CAACe,cAAc,CACxDF,eAAe,CAACG,MAAM,CAACC,GAAG,EAC1BP,OACJ,CAAC;IACDF,SAAS,CAACU,QAAQ,CAACJ,UAAU,CAAC,CAACK,gBAAgB,CAAC,CAAC;EACrD;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["ExtensionSrcResolver","registerPulumiExtensions","container","projectExtensions","project","pulumiExtensions","extensionsByType","pulumiExtension","src","params","pulumiImpl","importFromPath","register","inSingletonScope"],"sources":["registerPulumiExtensions.ts"],"sourcesContent":["import { type IProjectModel } from \"~/abstractions/models/index.js\";\nimport { type IProjectConfigModel } from \"~/abstractions/models/index.js\";\nimport { Container } from \"@webiny/di\";\nimport { ExtensionSrcResolver } from \"~/utils/index.js\";\n\nexport const registerPulumiExtensions = async (\n container: Container,\n projectExtensions: IProjectConfigModel,\n project: IProjectModel\n) => {\n const pulumiExtensions = [\n ...projectExtensions.extensionsByType(\"Core/Pulumi\"),\n ...projectExtensions.extensionsByType(\"Api/Pulumi\"),\n ...projectExtensions.extensionsByType(\"Admin/Pulumi\")\n ];\n\n for (const pulumiExtension of pulumiExtensions) {\n const { src } = pulumiExtension.params as { src: string };\n const pulumiImpl = await ExtensionSrcResolver.importFromPath(src, project);\n container.register(pulumiImpl).inSingletonScope();\n }\n};\n"],"mappings":"AAGA,SAASA,oBAAoB;AAE7B,OAAO,MAAMC,wBAAwB,GAAG,MAAAA,CACpCC,SAAoB,EACpBC,iBAAsC,EACtCC,OAAsB,KACrB;EACD,MAAMC,gBAAgB,GAAG,CACrB,GAAGF,iBAAiB,CAACG,gBAAgB,CAAC,aAAa,CAAC,EACpD,GAAGH,iBAAiB,CAACG,gBAAgB,CAAC,YAAY,CAAC,EACnD,GAAGH,iBAAiB,CAACG,gBAAgB,CAAC,cAAc,CAAC,CACxD;EAED,KAAK,MAAMC,eAAe,IAAIF,gBAAgB,EAAE;IAC5C,MAAM;MAAEG;IAAI,CAAC,GAAGD,eAAe,CAACE,MAAyB;IACzD,MAAMC,UAAU,GAAG,MAAMV,oBAAoB,CAACW,cAAc,CAACH,GAAG,EAAEJ,OAAO,CAAC;IAC1EF,SAAS,CAACU,QAAQ,CAACF,UAAU,CAAC,CAACG,gBAAgB,CAAC,CAAC;EACrD;AACJ,CAAC","ignoreList":[]}