@webiny/project 6.3.0-beta.4 → 6.4.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (875) hide show
  1. package/GracefulError.js +13 -15
  2. package/GracefulError.js.map +1 -1
  3. package/ProjectError.js +11 -13
  4. package/ProjectError.js.map +1 -1
  5. package/ProjectSdk.js +113 -129
  6. package/ProjectSdk.js.map +1 -1
  7. package/abstractions/createAbstraction.js +3 -2
  8. package/abstractions/createAbstraction.js.map +1 -1
  9. package/abstractions/features/BuildApp.js +2 -1
  10. package/abstractions/features/BuildApp.js.map +1 -1
  11. package/abstractions/features/BuildExtension.js +2 -1
  12. package/abstractions/features/BuildExtension.js.map +1 -1
  13. package/abstractions/features/DeployApp.js +2 -1
  14. package/abstractions/features/DeployApp.js.map +1 -1
  15. package/abstractions/features/DestroyApp.js +2 -1
  16. package/abstractions/features/DestroyApp.js.map +1 -1
  17. package/abstractions/features/ExportStack.js +2 -1
  18. package/abstractions/features/ExportStack.js.map +1 -1
  19. package/abstractions/features/GetApp.js +2 -1
  20. package/abstractions/features/GetApp.js.map +1 -1
  21. package/abstractions/features/GetAppOutput.js +2 -1
  22. package/abstractions/features/GetAppOutput.js.map +1 -1
  23. package/abstractions/features/GetAppStackOutput.js +2 -6
  24. package/abstractions/features/GetAppStackOutput.js.map +1 -1
  25. package/abstractions/features/GetFeatureFlags.js +2 -1
  26. package/abstractions/features/GetFeatureFlags.js.map +1 -1
  27. package/abstractions/features/GetLogger.js +2 -1
  28. package/abstractions/features/GetLogger.js.map +1 -1
  29. package/abstractions/features/GetProductionEnvironments.js +2 -1
  30. package/abstractions/features/GetProductionEnvironments.js.map +1 -1
  31. package/abstractions/features/GetProject.js +2 -1
  32. package/abstractions/features/GetProject.js.map +1 -1
  33. package/abstractions/features/GetProjectConfig.js +2 -1
  34. package/abstractions/features/GetProjectConfig.js.map +1 -1
  35. package/abstractions/features/GetProjectInfo.js +2 -1
  36. package/abstractions/features/GetProjectInfo.js.map +1 -1
  37. package/abstractions/features/GetPulumiResourceNamePrefix.js +2 -1
  38. package/abstractions/features/GetPulumiResourceNamePrefix.js.map +1 -1
  39. package/abstractions/features/InstallExtension.js +2 -1
  40. package/abstractions/features/InstallExtension.js.map +1 -1
  41. package/abstractions/features/IsCi.js +2 -1
  42. package/abstractions/features/IsCi.js.map +1 -1
  43. package/abstractions/features/IsTelemetryEnabled.js +2 -1
  44. package/abstractions/features/IsTelemetryEnabled.js.map +1 -1
  45. package/abstractions/features/IsWcpEnabled.js +2 -1
  46. package/abstractions/features/IsWcpEnabled.js.map +1 -1
  47. package/abstractions/features/IsWebinyJsRepo.js +2 -1
  48. package/abstractions/features/IsWebinyJsRepo.js.map +1 -1
  49. package/abstractions/features/RefreshApp.js +2 -1
  50. package/abstractions/features/RefreshApp.js.map +1 -1
  51. package/abstractions/features/RunPulumiCommand.js +2 -1
  52. package/abstractions/features/RunPulumiCommand.js.map +1 -1
  53. package/abstractions/features/ValidateProjectConfig.js +2 -1
  54. package/abstractions/features/ValidateProjectConfig.js.map +1 -1
  55. package/abstractions/features/Watch.js +2 -1
  56. package/abstractions/features/Watch.js.map +1 -1
  57. package/abstractions/features/hooks/AdminAfterBuild.js +2 -1
  58. package/abstractions/features/hooks/AdminAfterBuild.js.map +1 -1
  59. package/abstractions/features/hooks/AdminAfterDeploy.js +2 -1
  60. package/abstractions/features/hooks/AdminAfterDeploy.js.map +1 -1
  61. package/abstractions/features/hooks/AdminBeforeBuild.js +2 -1
  62. package/abstractions/features/hooks/AdminBeforeBuild.js.map +1 -1
  63. package/abstractions/features/hooks/AdminBeforeDeploy.js +2 -1
  64. package/abstractions/features/hooks/AdminBeforeDeploy.js.map +1 -1
  65. package/abstractions/features/hooks/AdminBeforeWatch.js +2 -1
  66. package/abstractions/features/hooks/AdminBeforeWatch.js.map +1 -1
  67. package/abstractions/features/hooks/AfterBuild.js +2 -1
  68. package/abstractions/features/hooks/AfterBuild.js.map +1 -1
  69. package/abstractions/features/hooks/AfterDeploy.js +2 -1
  70. package/abstractions/features/hooks/AfterDeploy.js.map +1 -1
  71. package/abstractions/features/hooks/ApiAfterBuild.js +2 -1
  72. package/abstractions/features/hooks/ApiAfterBuild.js.map +1 -1
  73. package/abstractions/features/hooks/ApiAfterDeploy.js +2 -1
  74. package/abstractions/features/hooks/ApiAfterDeploy.js.map +1 -1
  75. package/abstractions/features/hooks/ApiBeforeBuild.js +2 -1
  76. package/abstractions/features/hooks/ApiBeforeBuild.js.map +1 -1
  77. package/abstractions/features/hooks/ApiBeforeDeploy.js +2 -1
  78. package/abstractions/features/hooks/ApiBeforeDeploy.js.map +1 -1
  79. package/abstractions/features/hooks/ApiBeforeWatch.js +2 -1
  80. package/abstractions/features/hooks/ApiBeforeWatch.js.map +1 -1
  81. package/abstractions/features/hooks/BeforeBuild.js +2 -1
  82. package/abstractions/features/hooks/BeforeBuild.js.map +1 -1
  83. package/abstractions/features/hooks/BeforeDeploy.js +2 -1
  84. package/abstractions/features/hooks/BeforeDeploy.js.map +1 -1
  85. package/abstractions/features/hooks/BeforeWatch.js +2 -1
  86. package/abstractions/features/hooks/BeforeWatch.js.map +1 -1
  87. package/abstractions/features/hooks/CoreAfterBuild.js +2 -1
  88. package/abstractions/features/hooks/CoreAfterBuild.js.map +1 -1
  89. package/abstractions/features/hooks/CoreAfterDeploy.js +2 -1
  90. package/abstractions/features/hooks/CoreAfterDeploy.js.map +1 -1
  91. package/abstractions/features/hooks/CoreBeforeBuild.js +2 -1
  92. package/abstractions/features/hooks/CoreBeforeBuild.js.map +1 -1
  93. package/abstractions/features/hooks/CoreBeforeDeploy.js +2 -1
  94. package/abstractions/features/hooks/CoreBeforeDeploy.js.map +1 -1
  95. package/abstractions/features/hooks/CoreBeforeWatch.js +2 -1
  96. package/abstractions/features/hooks/CoreBeforeWatch.js.map +1 -1
  97. package/abstractions/features/hooks/index.js +0 -2
  98. package/abstractions/features/index.js +0 -2
  99. package/abstractions/index.js +0 -2
  100. package/abstractions/models/IAppModel.js +0 -3
  101. package/abstractions/models/IAppPackageModel.js +0 -3
  102. package/abstractions/models/IPathModel.js +0 -3
  103. package/abstractions/models/IProjectConfigDto.js +0 -3
  104. package/abstractions/models/IProjectConfigModel.js +0 -3
  105. package/abstractions/models/IProjectModel.js +0 -3
  106. package/abstractions/models/IUrlModel.js +0 -3
  107. package/abstractions/models/IWcpEnvironmentDto.js +0 -3
  108. package/abstractions/models/IWcpEnvironmentModel.js +0 -3
  109. package/abstractions/models/IWcpUserDto.js +0 -3
  110. package/abstractions/models/IWcpUserModel.js +0 -3
  111. package/abstractions/models/IWcpUserPatDto.js +0 -3
  112. package/abstractions/models/IWcpUserPatModel.js +0 -3
  113. package/abstractions/models/PackagesBuilder/IPackagesBuilder.js +0 -3
  114. package/abstractions/models/PackagesBuilder/IRunnableBuildProcess.js +0 -3
  115. package/abstractions/models/PackagesBuilder/IRunnableBuildProcesses.js +0 -3
  116. package/abstractions/models/PackagesBuilder/index.js +0 -3
  117. package/abstractions/models/index.js +0 -3
  118. package/abstractions/services/BuildAppWorkspaceService.js +2 -1
  119. package/abstractions/services/BuildAppWorkspaceService.js.map +1 -1
  120. package/abstractions/services/BuildProjectWorkspaceService.js +2 -1
  121. package/abstractions/services/BuildProjectWorkspaceService.js.map +1 -1
  122. package/abstractions/services/GetAppPackagesService.js +2 -1
  123. package/abstractions/services/GetAppPackagesService.js.map +1 -1
  124. package/abstractions/services/GetAppService.js +2 -1
  125. package/abstractions/services/GetAppService.js.map +1 -1
  126. package/abstractions/services/GetCwdService.js +2 -1
  127. package/abstractions/services/GetCwdService.js.map +1 -1
  128. package/abstractions/services/GetProjectConfigService.js +2 -1
  129. package/abstractions/services/GetProjectConfigService.js.map +1 -1
  130. package/abstractions/services/GetProjectIdService.js +2 -1
  131. package/abstractions/services/GetProjectIdService.js.map +1 -1
  132. package/abstractions/services/GetProjectService.js +2 -1
  133. package/abstractions/services/GetProjectService.js.map +1 -1
  134. package/abstractions/services/GetProjectVersionService.js +2 -1
  135. package/abstractions/services/GetProjectVersionService.js.map +1 -1
  136. package/abstractions/services/GetPulumiService.js +2 -1
  137. package/abstractions/services/GetPulumiService.js.map +1 -1
  138. package/abstractions/services/InitProjectSdkService.js +2 -1
  139. package/abstractions/services/InitProjectSdkService.js.map +1 -1
  140. package/abstractions/services/InstallExtensionService.js +2 -1
  141. package/abstractions/services/InstallExtensionService.js.map +1 -1
  142. package/abstractions/services/IsRemotePulumiBackendService.js +2 -1
  143. package/abstractions/services/IsRemotePulumiBackendService.js.map +1 -1
  144. package/abstractions/services/ListAppLambdaFunctionsService.js +2 -1
  145. package/abstractions/services/ListAppLambdaFunctionsService.js.map +1 -1
  146. package/abstractions/services/ListDeployedEnvironmentsService.js +2 -1
  147. package/abstractions/services/ListDeployedEnvironmentsService.js.map +1 -1
  148. package/abstractions/services/ListPackagesInAppWorkspaceService.js +2 -1
  149. package/abstractions/services/ListPackagesInAppWorkspaceService.js.map +1 -1
  150. package/abstractions/services/ListPackagesService.js +2 -1
  151. package/abstractions/services/ListPackagesService.js.map +1 -1
  152. package/abstractions/services/LoadEnvVarsService.js +2 -1
  153. package/abstractions/services/LoadEnvVarsService.js.map +1 -1
  154. package/abstractions/services/LocalStorageService.js +2 -1
  155. package/abstractions/services/LocalStorageService.js.map +1 -1
  156. package/abstractions/services/LoggerService.js +2 -1
  157. package/abstractions/services/LoggerService.js.map +1 -1
  158. package/abstractions/services/ProjectInfoService/GetIsCiService.js +2 -1
  159. package/abstractions/services/ProjectInfoService/GetIsCiService.js.map +1 -1
  160. package/abstractions/services/ProjectInfoService/GetNpmVersionService.js +2 -1
  161. package/abstractions/services/ProjectInfoService/GetNpmVersionService.js.map +1 -1
  162. package/abstractions/services/ProjectInfoService/GetNpxVersionService.js +2 -1
  163. package/abstractions/services/ProjectInfoService/GetNpxVersionService.js.map +1 -1
  164. package/abstractions/services/ProjectInfoService/GetPulumiVersionService.js +2 -1
  165. package/abstractions/services/ProjectInfoService/GetPulumiVersionService.js.map +1 -1
  166. package/abstractions/services/ProjectInfoService/GetYarnVersionService.js +2 -1
  167. package/abstractions/services/ProjectInfoService/GetYarnVersionService.js.map +1 -1
  168. package/abstractions/services/ProjectInfoService/ProjectInfoService.js +2 -1
  169. package/abstractions/services/ProjectInfoService/ProjectInfoService.js.map +1 -1
  170. package/abstractions/services/ProjectInfoService/index.js +0 -2
  171. package/abstractions/services/ProjectSdkParamsService.js +2 -1
  172. package/abstractions/services/ProjectSdkParamsService.js.map +1 -1
  173. package/abstractions/services/PulumiExportService.js +3 -4
  174. package/abstractions/services/PulumiExportService.js.map +1 -1
  175. package/abstractions/services/PulumiGetConfigPassphraseService.js +2 -1
  176. package/abstractions/services/PulumiGetConfigPassphraseService.js.map +1 -1
  177. package/abstractions/services/PulumiGetSecretsProviderService.js +2 -1
  178. package/abstractions/services/PulumiGetSecretsProviderService.js.map +1 -1
  179. package/abstractions/services/PulumiGetStackOutputService.js +2 -1
  180. package/abstractions/services/PulumiGetStackOutputService.js.map +1 -1
  181. package/abstractions/services/PulumiImportService.js +2 -1
  182. package/abstractions/services/PulumiImportService.js.map +1 -1
  183. package/abstractions/services/PulumiLoginService.js +2 -1
  184. package/abstractions/services/PulumiLoginService.js.map +1 -1
  185. package/abstractions/services/PulumiSelectStackService.js +2 -1
  186. package/abstractions/services/PulumiSelectStackService.js.map +1 -1
  187. package/abstractions/services/SetProjectIdService.js +2 -1
  188. package/abstractions/services/SetProjectIdService.js.map +1 -1
  189. package/abstractions/services/StdioService.js +2 -1
  190. package/abstractions/services/StdioService.js.map +1 -1
  191. package/abstractions/services/UiService.js +2 -1
  192. package/abstractions/services/UiService.js.map +1 -1
  193. package/abstractions/services/ValidateProjectConfigService.js +2 -1
  194. package/abstractions/services/ValidateProjectConfigService.js.map +1 -1
  195. package/abstractions/services/WatchedLambdaFunctionsService.js +2 -1
  196. package/abstractions/services/WatchedLambdaFunctionsService.js.map +1 -1
  197. package/abstractions/services/WcpService.js +2 -1
  198. package/abstractions/services/WcpService.js.map +1 -1
  199. package/abstractions/services/index.js +0 -2
  200. package/abstractions/types.js +0 -3
  201. package/components/Wcp.js +27 -38
  202. package/components/Wcp.js.map +1 -1
  203. package/createProjectSdkContainer.js +103 -112
  204. package/createProjectSdkContainer.js.map +1 -1
  205. package/decorators/BuildAppWithHooks.js +54 -44
  206. package/decorators/BuildAppWithHooks.js.map +1 -1
  207. package/decorators/DeployAppClearWatchedLambdaFunctions.js +27 -29
  208. package/decorators/DeployAppClearWatchedLambdaFunctions.js.map +1 -1
  209. package/decorators/DeployAppRefreshStackOutputCache.js +26 -30
  210. package/decorators/DeployAppRefreshStackOutputCache.js.map +1 -1
  211. package/decorators/DeployAppWithHooks.js +51 -41
  212. package/decorators/DeployAppWithHooks.js.map +1 -1
  213. package/decorators/DeployAppWithWatchedLambdaReplacement.js +33 -37
  214. package/decorators/DeployAppWithWatchedLambdaReplacement.js.map +1 -1
  215. package/decorators/GetFeatureFlagsWithLicense.js +36 -57
  216. package/decorators/GetFeatureFlagsWithLicense.js.map +1 -1
  217. package/decorators/GetPulumiServiceWithDownloadInfo.js +21 -19
  218. package/decorators/GetPulumiServiceWithDownloadInfo.js.map +1 -1
  219. package/decorators/WatchWithHooks.js +30 -27
  220. package/decorators/WatchWithHooks.js.map +1 -1
  221. package/decorators/index.js +0 -2
  222. package/defineExtension/createExtensionDefinition.js +12 -19
  223. package/defineExtension/createExtensionDefinition.js.map +1 -1
  224. package/defineExtension/createExtensionReactComponent.js +40 -46
  225. package/defineExtension/createExtensionReactComponent.js.map +1 -1
  226. package/defineExtension/defineExtension.js +8 -9
  227. package/defineExtension/defineExtension.js.map +1 -1
  228. package/defineExtension/index.js +0 -2
  229. package/defineExtension/models/ExtensionDefinitionModel.js +11 -10
  230. package/defineExtension/models/ExtensionDefinitionModel.js.map +1 -1
  231. package/defineExtension/models/ExtensionInstanceModel.js +23 -24
  232. package/defineExtension/models/ExtensionInstanceModel.js.map +1 -1
  233. package/defineExtension/models/index.js +0 -2
  234. package/defineExtension/types.js +0 -3
  235. package/defineExtension/zodTypes/zodSrcPath.js +35 -61
  236. package/defineExtension/zodTypes/zodSrcPath.js.map +1 -1
  237. package/exports/infra/admin.js +0 -2
  238. package/exports/infra/api.js +0 -2
  239. package/exports/infra/core.js +0 -2
  240. package/exports/infra.js +0 -2
  241. package/extensions/AdminBuildParam.js +105 -147
  242. package/extensions/AdminBuildParam.js.map +1 -1
  243. package/extensions/AdminExtension.js +64 -90
  244. package/extensions/AdminExtension.js.map +1 -1
  245. package/extensions/ApiBuildParam.js +71 -97
  246. package/extensions/ApiBuildParam.js.map +1 -1
  247. package/extensions/ApiExtension.js +71 -92
  248. package/extensions/ApiExtension.js.map +1 -1
  249. package/extensions/DatabaseSetup.js +14 -9
  250. package/extensions/DatabaseSetup.js.map +1 -1
  251. package/extensions/EnvVar.js +12 -16
  252. package/extensions/EnvVar.js.map +1 -1
  253. package/extensions/ExtensionDefinitions.js +11 -10
  254. package/extensions/ExtensionDefinitions.js.map +1 -1
  255. package/extensions/FeatureFlags.js +47 -48
  256. package/extensions/FeatureFlags.js.map +1 -1
  257. package/extensions/Project/EnsureApiDeployedBeforeAdminBuild.js +20 -21
  258. package/extensions/Project/EnsureApiDeployedBeforeAdminBuild.js.map +1 -1
  259. package/extensions/Project/EnsureApiDeployedBeforeAdminWatch.js +20 -21
  260. package/extensions/Project/EnsureApiDeployedBeforeAdminWatch.js.map +1 -1
  261. package/extensions/Project/EnsureApiDeployedBeforeWatch.js +20 -21
  262. package/extensions/Project/EnsureApiDeployedBeforeWatch.js.map +1 -1
  263. package/extensions/Project/EnsureCoreDeployedBeforeApiDeploy.js +22 -25
  264. package/extensions/Project/EnsureCoreDeployedBeforeApiDeploy.js.map +1 -1
  265. package/extensions/Project/EnsureTelemetryEnabledForOss.js +25 -28
  266. package/extensions/Project/EnsureTelemetryEnabledForOss.js.map +1 -1
  267. package/extensions/Project/SetAdminAppEnvVarsBeforeBuild.js +29 -34
  268. package/extensions/Project/SetAdminAppEnvVarsBeforeBuild.js.map +1 -1
  269. package/extensions/Project/SetAdminAppEnvVarsBeforeWatch.js +30 -35
  270. package/extensions/Project/SetAdminAppEnvVarsBeforeWatch.js.map +1 -1
  271. package/extensions/Project/ShowConfigChangeInfoBeforeAdminWatch.js +12 -9
  272. package/extensions/Project/ShowConfigChangeInfoBeforeAdminWatch.js.map +1 -1
  273. package/extensions/Project/ShowConfigChangeInfoBeforeApiWatch.js +12 -9
  274. package/extensions/Project/ShowConfigChangeInfoBeforeApiWatch.js.map +1 -1
  275. package/extensions/Project/TelemetryNoLongerNewUser.js +7 -7
  276. package/extensions/Project/TelemetryNoLongerNewUser.js.map +1 -1
  277. package/extensions/Project/ValidateEncryptionBeforeDeploy.js +22 -23
  278. package/extensions/Project/ValidateEncryptionBeforeDeploy.js.map +1 -1
  279. package/extensions/Project/ValidateProductionPulumiState.js +25 -28
  280. package/extensions/Project/ValidateProductionPulumiState.js.map +1 -1
  281. package/extensions/Project/WcpInjectTelemetryClientAfterBuild.js +46 -51
  282. package/extensions/Project/WcpInjectTelemetryClientAfterBuild.js.map +1 -1
  283. package/extensions/Project.js +29 -30
  284. package/extensions/Project.js.map +1 -1
  285. package/extensions/ProjectDecorator.js +13 -16
  286. package/extensions/ProjectDecorator.js.map +1 -1
  287. package/extensions/ProjectId.js +11 -13
  288. package/extensions/ProjectId.js.map +1 -1
  289. package/extensions/ProjectImplementation.js +14 -17
  290. package/extensions/ProjectImplementation.js.map +1 -1
  291. package/extensions/Telemetry.js +10 -9
  292. package/extensions/Telemetry.js.map +1 -1
  293. package/extensions/hooks/AdminAfterBuild.js +16 -19
  294. package/extensions/hooks/AdminAfterBuild.js.map +1 -1
  295. package/extensions/hooks/AdminAfterDeploy.js +16 -19
  296. package/extensions/hooks/AdminAfterDeploy.js.map +1 -1
  297. package/extensions/hooks/AdminBeforeBuild.js +16 -19
  298. package/extensions/hooks/AdminBeforeBuild.js.map +1 -1
  299. package/extensions/hooks/AdminBeforeDeploy.js +16 -19
  300. package/extensions/hooks/AdminBeforeDeploy.js.map +1 -1
  301. package/extensions/hooks/AdminBeforeWatch.js +16 -19
  302. package/extensions/hooks/AdminBeforeWatch.js.map +1 -1
  303. package/extensions/hooks/AfterBuild.js +15 -18
  304. package/extensions/hooks/AfterBuild.js.map +1 -1
  305. package/extensions/hooks/AfterDeploy.js +15 -18
  306. package/extensions/hooks/AfterDeploy.js.map +1 -1
  307. package/extensions/hooks/ApiAfterBuild.js +16 -19
  308. package/extensions/hooks/ApiAfterBuild.js.map +1 -1
  309. package/extensions/hooks/ApiAfterDeploy.js +16 -19
  310. package/extensions/hooks/ApiAfterDeploy.js.map +1 -1
  311. package/extensions/hooks/ApiBeforeBuild.js +16 -19
  312. package/extensions/hooks/ApiBeforeBuild.js.map +1 -1
  313. package/extensions/hooks/ApiBeforeDeploy.js +16 -19
  314. package/extensions/hooks/ApiBeforeDeploy.js.map +1 -1
  315. package/extensions/hooks/ApiBeforeWatch.js +16 -19
  316. package/extensions/hooks/ApiBeforeWatch.js.map +1 -1
  317. package/extensions/hooks/BeforeBuild.js +15 -18
  318. package/extensions/hooks/BeforeBuild.js.map +1 -1
  319. package/extensions/hooks/BeforeDeploy.js +15 -18
  320. package/extensions/hooks/BeforeDeploy.js.map +1 -1
  321. package/extensions/hooks/BeforeWatch.js +15 -18
  322. package/extensions/hooks/BeforeWatch.js.map +1 -1
  323. package/extensions/hooks/CoreAfterBuild.js +16 -19
  324. package/extensions/hooks/CoreAfterBuild.js.map +1 -1
  325. package/extensions/hooks/CoreAfterDeploy.js +16 -19
  326. package/extensions/hooks/CoreAfterDeploy.js.map +1 -1
  327. package/extensions/hooks/CoreBeforeBuild.js +16 -19
  328. package/extensions/hooks/CoreBeforeBuild.js.map +1 -1
  329. package/extensions/hooks/CoreBeforeDeploy.js +16 -19
  330. package/extensions/hooks/CoreBeforeDeploy.js.map +1 -1
  331. package/extensions/hooks/CoreBeforeWatch.js +16 -19
  332. package/extensions/hooks/CoreBeforeWatch.js.map +1 -1
  333. package/extensions/hooks/index.js +0 -2
  334. package/extensions/index.js +43 -57
  335. package/extensions/index.js.map +1 -1
  336. package/extensions/infra/Ci.js +8 -24
  337. package/extensions/infra/Ci.js.map +1 -1
  338. package/extensions/infra/Env.js +35 -92
  339. package/extensions/infra/Env.js.map +1 -1
  340. package/extensions/infra/index.js +0 -2
  341. package/extensions/pulumi/AdminStackOutputValue.js +13 -12
  342. package/extensions/pulumi/AdminStackOutputValue.js.map +1 -1
  343. package/extensions/pulumi/ApiStackOutputValue.js +13 -12
  344. package/extensions/pulumi/ApiStackOutputValue.js.map +1 -1
  345. package/extensions/pulumi/CoreStackOutputValue.js +13 -12
  346. package/extensions/pulumi/CoreStackOutputValue.js.map +1 -1
  347. package/extensions/pulumi/ProductionEnvironments.js +29 -39
  348. package/extensions/pulumi/ProductionEnvironments.js.map +1 -1
  349. package/extensions/pulumi/PulumiResourceNamePrefix.js +10 -9
  350. package/extensions/pulumi/PulumiResourceNamePrefix.js.map +1 -1
  351. package/extensions/pulumi/index.js +0 -2
  352. package/features/BuildApp/BuildApp.js +49 -40
  353. package/features/BuildApp/BuildApp.js.map +1 -1
  354. package/features/BuildApp/PackagesBuilder/PackagesBuilder.js +34 -39
  355. package/features/BuildApp/PackagesBuilder/PackagesBuilder.js.map +1 -1
  356. package/features/BuildApp/PackagesBuilder/RunnableBuildProcess.js +39 -33
  357. package/features/BuildApp/PackagesBuilder/RunnableBuildProcess.js.map +1 -1
  358. package/features/BuildApp/PackagesBuilder/RunnableBuildProcesses.js +39 -46
  359. package/features/BuildApp/PackagesBuilder/RunnableBuildProcesses.js.map +1 -1
  360. package/features/BuildApp/PackagesBuilder/worker.js +26 -34
  361. package/features/BuildApp/PackagesBuilder/worker.js.map +1 -1
  362. package/features/BuildApp/index.js +0 -2
  363. package/features/DeployApp/DeployApp.js +79 -79
  364. package/features/DeployApp/DeployApp.js.map +1 -1
  365. package/features/DeployApp/index.js +0 -2
  366. package/features/DestroyApp/DestroyApp.js +60 -46
  367. package/features/DestroyApp/DestroyApp.js.map +1 -1
  368. package/features/DestroyApp/index.js +0 -2
  369. package/features/ExportStack/ExportStack.js +21 -16
  370. package/features/ExportStack/ExportStack.js.map +1 -1
  371. package/features/ExportStack/index.js +0 -2
  372. package/features/GetApp/GetApp.js +14 -11
  373. package/features/GetApp/GetApp.js.map +1 -1
  374. package/features/GetApp/index.js +0 -2
  375. package/features/GetAppOutput/GetAppOutput.js +44 -33
  376. package/features/GetAppOutput/GetAppOutput.js.map +1 -1
  377. package/features/GetAppOutput/index.js +0 -2
  378. package/features/GetAppStackOutput/GetAppStackOutput.js +20 -15
  379. package/features/GetAppStackOutput/GetAppStackOutput.js.map +1 -1
  380. package/features/GetAppStackOutput/index.js +0 -2
  381. package/features/GetFeatureFlags/GetFeatureFlags.js +20 -19
  382. package/features/GetFeatureFlags/GetFeatureFlags.js.map +1 -1
  383. package/features/GetFeatureFlags/index.js +0 -2
  384. package/features/GetLogger/GetLogger.js +14 -11
  385. package/features/GetLogger/GetLogger.js.map +1 -1
  386. package/features/GetLogger/index.js +0 -2
  387. package/features/GetProductionEnvironments/GetProductionEnvironments.js +24 -19
  388. package/features/GetProductionEnvironments/GetProductionEnvironments.js.map +1 -1
  389. package/features/GetProductionEnvironments/index.js +0 -2
  390. package/features/GetProject/GetProject.js +14 -11
  391. package/features/GetProject/GetProject.js.map +1 -1
  392. package/features/GetProject/index.js +0 -2
  393. package/features/GetProjectConfig/GetProjectConfig.js +14 -11
  394. package/features/GetProjectConfig/GetProjectConfig.js.map +1 -1
  395. package/features/GetProjectConfig/index.js +0 -2
  396. package/features/GetProjectInfo/GetProjectInfo.js +14 -11
  397. package/features/GetProjectInfo/GetProjectInfo.js.map +1 -1
  398. package/features/GetProjectInfo/index.js +0 -2
  399. package/features/GetPulumiResourceNamePrefix/GetPulumiResourceNamePrefix.js +18 -17
  400. package/features/GetPulumiResourceNamePrefix/GetPulumiResourceNamePrefix.js.map +1 -1
  401. package/features/GetPulumiResourceNamePrefix/index.js +0 -2
  402. package/features/InstallExtension/InstallExtension.js +14 -11
  403. package/features/InstallExtension/InstallExtension.js.map +1 -1
  404. package/features/InstallExtension/index.js +0 -2
  405. package/features/IsCi/IsCi.js +14 -11
  406. package/features/IsCi/IsCi.js.map +1 -1
  407. package/features/IsCi/index.js +0 -2
  408. package/features/IsTelemetryEnabled/IsTelemetryEnabled.js +19 -18
  409. package/features/IsTelemetryEnabled/IsTelemetryEnabled.js.map +1 -1
  410. package/features/IsTelemetryEnabled/index.js +0 -2
  411. package/features/IsWcpEnabled/IsWcpEnabled.js +15 -12
  412. package/features/IsWcpEnabled/IsWcpEnabled.js.map +1 -1
  413. package/features/IsWcpEnabled/index.js +0 -2
  414. package/features/IsWebinyJsRepo/IsWebinyJsRepo.js +17 -14
  415. package/features/IsWebinyJsRepo/IsWebinyJsRepo.js.map +1 -1
  416. package/features/IsWebinyJsRepo/index.js +0 -2
  417. package/features/RefreshApp/RefreshApp.js +57 -46
  418. package/features/RefreshApp/RefreshApp.js.map +1 -1
  419. package/features/RefreshApp/index.js +0 -2
  420. package/features/RunPulumiCommand/RunPulumiCommand.js +54 -43
  421. package/features/RunPulumiCommand/RunPulumiCommand.js.map +1 -1
  422. package/features/RunPulumiCommand/index.js +0 -2
  423. package/features/ValidateProjectConfig/ValidateProjectConfig.js +14 -11
  424. package/features/ValidateProjectConfig/ValidateProjectConfig.js.map +1 -1
  425. package/features/ValidateProjectConfig/index.js +0 -2
  426. package/features/Watch/Watch.js +178 -181
  427. package/features/Watch/Watch.js.map +1 -1
  428. package/features/Watch/getIotEndpoint.js +14 -12
  429. package/features/Watch/getIotEndpoint.js.map +1 -1
  430. package/features/Watch/index.js +0 -2
  431. package/features/Watch/initInvocationForwarding.js +76 -95
  432. package/features/Watch/initInvocationForwarding.js.map +1 -1
  433. package/features/Watch/localInvocationWorker.js +24 -33
  434. package/features/Watch/localInvocationWorker.js.map +1 -1
  435. package/features/Watch/replaceLambdaFunctions.js +61 -84
  436. package/features/Watch/replaceLambdaFunctions.js.map +1 -1
  437. package/features/Watch/watchers/BasePackagesWatcher.js +10 -13
  438. package/features/Watch/watchers/BasePackagesWatcher.js.map +1 -1
  439. package/features/Watch/watchers/MultiplePackagesWatcher.js +11 -12
  440. package/features/Watch/watchers/MultiplePackagesWatcher.js.map +1 -1
  441. package/features/Watch/watchers/PackagesWatcher.js +15 -18
  442. package/features/Watch/watchers/PackagesWatcher.js.map +1 -1
  443. package/features/Watch/watchers/RunnableWatchProcess.js +41 -40
  444. package/features/Watch/watchers/RunnableWatchProcess.js.map +1 -1
  445. package/features/Watch/watchers/RunnableWatchProcesses.js +35 -34
  446. package/features/Watch/watchers/RunnableWatchProcesses.js.map +1 -1
  447. package/features/Watch/watchers/SinglePackageWatcher.js +11 -8
  448. package/features/Watch/watchers/SinglePackageWatcher.js.map +1 -1
  449. package/features/Watch/watchers/WebinyConfigWatcher.js +30 -40
  450. package/features/Watch/watchers/WebinyConfigWatcher.js.map +1 -1
  451. package/features/Watch/watchers/ZeroPackagesWatcher.js +5 -5
  452. package/features/Watch/watchers/ZeroPackagesWatcher.js.map +1 -1
  453. package/features/Watch/watchers/utils/measureDuration.js +7 -8
  454. package/features/Watch/watchers/utils/measureDuration.js.map +1 -1
  455. package/features/Watch/watchers/worker.js +12 -21
  456. package/features/Watch/watchers/worker.js.map +1 -1
  457. package/features/hooks/AdminAfterBuild/AdminBeforeBuild.js +19 -15
  458. package/features/hooks/AdminAfterBuild/AdminBeforeBuild.js.map +1 -1
  459. package/features/hooks/AdminAfterBuild/index.js +0 -2
  460. package/features/hooks/AdminAfterDeploy/AdminBeforeBuild.js +19 -15
  461. package/features/hooks/AdminAfterDeploy/AdminBeforeBuild.js.map +1 -1
  462. package/features/hooks/AdminAfterDeploy/index.js +0 -2
  463. package/features/hooks/AdminBeforeBuild/AdminBeforeBuild.js +19 -15
  464. package/features/hooks/AdminBeforeBuild/AdminBeforeBuild.js.map +1 -1
  465. package/features/hooks/AdminBeforeBuild/index.js +0 -2
  466. package/features/hooks/AdminBeforeDeploy/AdminBeforeDeploy.js +19 -15
  467. package/features/hooks/AdminBeforeDeploy/AdminBeforeDeploy.js.map +1 -1
  468. package/features/hooks/AdminBeforeDeploy/index.js +0 -2
  469. package/features/hooks/AdminBeforeWatch/AdminBeforeWatch.js +18 -14
  470. package/features/hooks/AdminBeforeWatch/AdminBeforeWatch.js.map +1 -1
  471. package/features/hooks/AdminBeforeWatch/index.js +0 -2
  472. package/features/hooks/AfterBuild/AfterBuild.js +19 -15
  473. package/features/hooks/AfterBuild/AfterBuild.js.map +1 -1
  474. package/features/hooks/AfterBuild/index.js +0 -2
  475. package/features/hooks/AfterDeploy/AfterDeploy.js +19 -15
  476. package/features/hooks/AfterDeploy/AfterDeploy.js.map +1 -1
  477. package/features/hooks/AfterDeploy/index.js +0 -2
  478. package/features/hooks/ApiAfterBuild/ApiBeforeBuild.js +18 -14
  479. package/features/hooks/ApiAfterBuild/ApiBeforeBuild.js.map +1 -1
  480. package/features/hooks/ApiAfterBuild/index.js +0 -2
  481. package/features/hooks/ApiAfterDeploy/ApiBeforeBuild.js +18 -14
  482. package/features/hooks/ApiAfterDeploy/ApiBeforeBuild.js.map +1 -1
  483. package/features/hooks/ApiAfterDeploy/index.js +0 -2
  484. package/features/hooks/ApiBeforeBuild/ApiBeforeBuild.js +18 -14
  485. package/features/hooks/ApiBeforeBuild/ApiBeforeBuild.js.map +1 -1
  486. package/features/hooks/ApiBeforeBuild/index.js +0 -2
  487. package/features/hooks/ApiBeforeDeploy/ApiBeforeDeploy.js +18 -14
  488. package/features/hooks/ApiBeforeDeploy/ApiBeforeDeploy.js.map +1 -1
  489. package/features/hooks/ApiBeforeDeploy/index.js +0 -2
  490. package/features/hooks/ApiBeforeWatch/ApiBeforeWatch.js +18 -14
  491. package/features/hooks/ApiBeforeWatch/ApiBeforeWatch.js.map +1 -1
  492. package/features/hooks/ApiBeforeWatch/index.js +0 -2
  493. package/features/hooks/BeforeBuild/BeforeBuild.js +19 -15
  494. package/features/hooks/BeforeBuild/BeforeBuild.js.map +1 -1
  495. package/features/hooks/BeforeBuild/index.js +0 -2
  496. package/features/hooks/BeforeDeploy/BeforeDeploy.js +19 -15
  497. package/features/hooks/BeforeDeploy/BeforeDeploy.js.map +1 -1
  498. package/features/hooks/BeforeDeploy/index.js +0 -2
  499. package/features/hooks/BeforeWatch/BeforeWatch.js +19 -15
  500. package/features/hooks/BeforeWatch/BeforeWatch.js.map +1 -1
  501. package/features/hooks/BeforeWatch/index.js +0 -2
  502. package/features/hooks/CoreAfterBuild/CoreBeforeBuild.js +18 -14
  503. package/features/hooks/CoreAfterBuild/CoreBeforeBuild.js.map +1 -1
  504. package/features/hooks/CoreAfterBuild/index.js +0 -2
  505. package/features/hooks/CoreAfterDeploy/CoreBeforeBuild.js +18 -14
  506. package/features/hooks/CoreAfterDeploy/CoreBeforeBuild.js.map +1 -1
  507. package/features/hooks/CoreAfterDeploy/index.js +0 -2
  508. package/features/hooks/CoreBeforeBuild/CoreBeforeBuild.js +18 -14
  509. package/features/hooks/CoreBeforeBuild/CoreBeforeBuild.js.map +1 -1
  510. package/features/hooks/CoreBeforeBuild/index.js +0 -2
  511. package/features/hooks/CoreBeforeDeploy/CoreBeforeDeploy.js +18 -14
  512. package/features/hooks/CoreBeforeDeploy/CoreBeforeDeploy.js.map +1 -1
  513. package/features/hooks/CoreBeforeDeploy/index.js +0 -2
  514. package/features/hooks/CoreBeforeWatch/CoreBeforeWatch.js +18 -14
  515. package/features/hooks/CoreBeforeWatch/CoreBeforeWatch.js.map +1 -1
  516. package/features/hooks/CoreBeforeWatch/index.js +0 -2
  517. package/features/hooks/index.js +0 -2
  518. package/features/index.js +0 -2
  519. package/index.js +5 -10
  520. package/index.js.map +1 -1
  521. package/models/AppModel.js +20 -19
  522. package/models/AppModel.js.map +1 -1
  523. package/models/AppPackageModel.js +10 -9
  524. package/models/AppPackageModel.js.map +1 -1
  525. package/models/PathModel.js +23 -26
  526. package/models/PathModel.js.map +1 -1
  527. package/models/ProjectConfigModel.js +12 -16
  528. package/models/ProjectConfigModel.js.map +1 -1
  529. package/models/ProjectModel.js +37 -36
  530. package/models/ProjectModel.js.map +1 -1
  531. package/models/UrlModel.js +23 -23
  532. package/models/UrlModel.js.map +1 -1
  533. package/models/WcpEnvironmentModel.js +23 -22
  534. package/models/WcpEnvironmentModel.js.map +1 -1
  535. package/models/WcpUserModel.js +13 -12
  536. package/models/WcpUserModel.js.map +1 -1
  537. package/models/WcpUserPatModel.js +12 -11
  538. package/models/WcpUserPatModel.js.map +1 -1
  539. package/models/index.js +0 -2
  540. package/package.json +14 -14
  541. package/rslib-runtime.js +14 -0
  542. package/rslib-runtime.js.map +1 -0
  543. package/services/BuildAppWorkspaceService/BuildAppWorkspaceService.js +62 -69
  544. package/services/BuildAppWorkspaceService/BuildAppWorkspaceService.js.map +1 -1
  545. package/services/BuildAppWorkspaceService/index.js +0 -2
  546. package/services/BuildProjectWorkspaceService/BuildProjectWorkspaceService.js +21 -17
  547. package/services/BuildProjectWorkspaceService/BuildProjectWorkspaceService.js.map +1 -1
  548. package/services/BuildProjectWorkspaceService/index.js +0 -2
  549. package/services/GetAppPackagesService/GetAppPackagesService.js +24 -23
  550. package/services/GetAppPackagesService/GetAppPackagesService.js.map +1 -1
  551. package/services/GetAppPackagesService/index.js +0 -2
  552. package/services/GetAppService/GetAppService.js +24 -27
  553. package/services/GetAppService/GetAppService.js.map +1 -1
  554. package/services/GetAppService/index.js +0 -2
  555. package/services/GetCwdService/GetCwdService.js +15 -12
  556. package/services/GetCwdService/GetCwdService.js.map +1 -1
  557. package/services/GetCwdService/index.js +0 -2
  558. package/services/GetProjectConfigService/EnvContext.js +29 -38
  559. package/services/GetProjectConfigService/EnvContext.js.map +1 -1
  560. package/services/GetProjectConfigService/GetProjectConfigService.js +102 -115
  561. package/services/GetProjectConfigService/GetProjectConfigService.js.map +1 -1
  562. package/services/GetProjectConfigService/ProductionEnvironmentsContext.js +13 -18
  563. package/services/GetProjectConfigService/ProductionEnvironmentsContext.js.map +1 -1
  564. package/services/GetProjectConfigService/WcpProjectLicenseContext.js +32 -37
  565. package/services/GetProjectConfigService/WcpProjectLicenseContext.js.map +1 -1
  566. package/services/GetProjectConfigService/index.js +0 -2
  567. package/services/GetProjectConfigService/renderConfig.js +32 -38
  568. package/services/GetProjectConfigService/renderConfig.js.map +1 -1
  569. package/services/GetProjectConfigService/renderConfigWorker.js +37 -48
  570. package/services/GetProjectConfigService/renderConfigWorker.js.map +1 -1
  571. package/services/GetProjectIdService/GetProjectIdService.js +22 -23
  572. package/services/GetProjectIdService/GetProjectIdService.js.map +1 -1
  573. package/services/GetProjectIdService/index.js +0 -2
  574. package/services/GetProjectService/GetProjectService.js +43 -45
  575. package/services/GetProjectService/GetProjectService.js.map +1 -1
  576. package/services/GetProjectService/index.js +0 -2
  577. package/services/GetProjectVersionService/GetProjectVersionService.js +23 -22
  578. package/services/GetProjectVersionService/GetProjectVersionService.js.map +1 -1
  579. package/services/GetProjectVersionService/index.js +0 -2
  580. package/services/GetPulumiService/GetPulumiService.js +36 -41
  581. package/services/GetPulumiService/GetPulumiService.js.map +1 -1
  582. package/services/GetPulumiService/index.js +0 -2
  583. package/services/InitProjectSdkService/InitProjectSdkService.js +36 -46
  584. package/services/InitProjectSdkService/InitProjectSdkService.js.map +1 -1
  585. package/services/InitProjectSdkService/applyEnvVars.js +5 -8
  586. package/services/InitProjectSdkService/applyEnvVars.js.map +1 -1
  587. package/services/InitProjectSdkService/applyWcpEnvVars.js +91 -136
  588. package/services/InitProjectSdkService/applyWcpEnvVars.js.map +1 -1
  589. package/services/InitProjectSdkService/index.js +0 -2
  590. package/services/InitProjectSdkService/registerDecorators.js +10 -7
  591. package/services/InitProjectSdkService/registerDecorators.js.map +1 -1
  592. package/services/InitProjectSdkService/registerHooks.js +30 -7
  593. package/services/InitProjectSdkService/registerHooks.js.map +1 -1
  594. package/services/InitProjectSdkService/registerImplementations.js +10 -11
  595. package/services/InitProjectSdkService/registerImplementations.js.map +1 -1
  596. package/services/InitProjectSdkService/registerPulumiExtensions.js +12 -9
  597. package/services/InitProjectSdkService/registerPulumiExtensions.js.map +1 -1
  598. package/services/InstallExtensionService/InstallExtensionService.js +78 -121
  599. package/services/InstallExtensionService/InstallExtensionService.js.map +1 -1
  600. package/services/InstallExtensionService/downloadFolderFromS3.js +46 -65
  601. package/services/InstallExtensionService/downloadFolderFromS3.js.map +1 -1
  602. package/services/InstallExtensionService/index.js +0 -2
  603. package/services/InstallExtensionService/mergePackageJson.js +15 -25
  604. package/services/InstallExtensionService/mergePackageJson.js.map +1 -1
  605. package/services/InstallExtensionService/types.js +0 -3
  606. package/services/InstallExtensionService/updateWebinyConfig.js +60 -137
  607. package/services/InstallExtensionService/updateWebinyConfig.js.map +1 -1
  608. package/services/IsRemotePulumiBackendService/IsRemotePulumiBackendService.js +9 -17
  609. package/services/IsRemotePulumiBackendService/IsRemotePulumiBackendService.js.map +1 -1
  610. package/services/IsRemotePulumiBackendService/index.js +0 -2
  611. package/services/ListAppLambdaFunctionsService/ListAppLambdaFunctionsService.js +50 -73
  612. package/services/ListAppLambdaFunctionsService/ListAppLambdaFunctionsService.js.map +1 -1
  613. package/services/ListAppLambdaFunctionsService/index.js +0 -2
  614. package/services/ListDeployedEnvironmentsService/ListDeployedEnvironmentsService.js +21 -23
  615. package/services/ListDeployedEnvironmentsService/ListDeployedEnvironmentsService.js.map +1 -1
  616. package/services/ListDeployedEnvironmentsService/index.js +0 -2
  617. package/services/ListPackagesInAppWorkspaceService/ListPackagesInAppWorkspaceService.js +34 -29
  618. package/services/ListPackagesInAppWorkspaceService/ListPackagesInAppWorkspaceService.js.map +1 -1
  619. package/services/ListPackagesInAppWorkspaceService/index.js +0 -2
  620. package/services/ListPackagesService/ListPackagesService.js +81 -114
  621. package/services/ListPackagesService/ListPackagesService.js.map +1 -1
  622. package/services/ListPackagesService/index.js +0 -2
  623. package/services/LoadEnvVarsService/LoadEnvVarsService.js +28 -29
  624. package/services/LoadEnvVarsService/LoadEnvVarsService.js.map +1 -1
  625. package/services/LoadEnvVarsService/index.js +0 -2
  626. package/services/LocalStorageService/LocalStorageService.js +41 -44
  627. package/services/LocalStorageService/LocalStorageService.js.map +1 -1
  628. package/services/LocalStorageService/index.js +0 -2
  629. package/services/LoggerService/LoggerService.js +76 -84
  630. package/services/LoggerService/LoggerService.js.map +1 -1
  631. package/services/LoggerService/index.js +0 -2
  632. package/services/ProjectInfoService/GetIsCiService.js +9 -8
  633. package/services/ProjectInfoService/GetIsCiService.js.map +1 -1
  634. package/services/ProjectInfoService/GetNpmVersionService.js +9 -8
  635. package/services/ProjectInfoService/GetNpmVersionService.js.map +1 -1
  636. package/services/ProjectInfoService/GetNpxVersionService.js +9 -8
  637. package/services/ProjectInfoService/GetNpxVersionService.js.map +1 -1
  638. package/services/ProjectInfoService/GetPulumiVersionService.js +38 -30
  639. package/services/ProjectInfoService/GetPulumiVersionService.js.map +1 -1
  640. package/services/ProjectInfoService/GetYarnVersionService.js +9 -8
  641. package/services/ProjectInfoService/GetYarnVersionService.js.map +1 -1
  642. package/services/ProjectInfoService/ProjectInfoService.js +56 -51
  643. package/services/ProjectInfoService/ProjectInfoService.js.map +1 -1
  644. package/services/ProjectInfoService/index.js +0 -2
  645. package/services/ProjectSdkParamsService/ProjectSdkParamsService.js +37 -34
  646. package/services/ProjectSdkParamsService/ProjectSdkParamsService.js.map +1 -1
  647. package/services/ProjectSdkParamsService/index.js +0 -2
  648. package/services/PulumiExportService/PulumiExportService.js +42 -35
  649. package/services/PulumiExportService/PulumiExportService.js.map +1 -1
  650. package/services/PulumiExportService/index.js +0 -2
  651. package/services/PulumiGetConfigPassphraseService/PulumiGetConfigPassphraseService.js +9 -8
  652. package/services/PulumiGetConfigPassphraseService/PulumiGetConfigPassphraseService.js.map +1 -1
  653. package/services/PulumiGetConfigPassphraseService/index.js +0 -2
  654. package/services/PulumiGetSecretsProviderService/PulumiGetSecretsProviderService.js +9 -8
  655. package/services/PulumiGetSecretsProviderService/PulumiGetSecretsProviderService.js.map +1 -1
  656. package/services/PulumiGetSecretsProviderService/index.js +0 -2
  657. package/services/PulumiGetStackOutputService/PulumiGetStackOutputService.js +108 -100
  658. package/services/PulumiGetStackOutputService/PulumiGetStackOutputService.js.map +1 -1
  659. package/services/PulumiGetStackOutputService/index.js +0 -2
  660. package/services/PulumiGetStackOutputService/mapStackOutput.js +17 -29
  661. package/services/PulumiGetStackOutputService/mapStackOutput.js.map +1 -1
  662. package/services/PulumiImportService/PulumiImportService.js +48 -45
  663. package/services/PulumiImportService/PulumiImportService.js.map +1 -1
  664. package/services/PulumiImportService/index.js +0 -2
  665. package/services/PulumiLoginService/PulumiLoginService.js +43 -40
  666. package/services/PulumiLoginService/PulumiLoginService.js.map +1 -1
  667. package/services/PulumiLoginService/index.js +0 -2
  668. package/services/PulumiSelectStackService/PulumiSelectStackService.js +91 -86
  669. package/services/PulumiSelectStackService/PulumiSelectStackService.js.map +1 -1
  670. package/services/PulumiSelectStackService/index.js +0 -2
  671. package/services/SetProjectIdService/SetProjectIdService.js +43 -57
  672. package/services/SetProjectIdService/SetProjectIdService.js.map +1 -1
  673. package/services/SetProjectIdService/index.js +0 -2
  674. package/services/StdioService/StdioService.js +15 -14
  675. package/services/StdioService/StdioService.js.map +1 -1
  676. package/services/StdioService/index.js +0 -2
  677. package/services/UiService/UiService.js +55 -58
  678. package/services/UiService/UiService.js.map +1 -1
  679. package/services/UiService/index.js +0 -2
  680. package/services/ValidateProjectConfigService/ValidateProjectConfigService.js +18 -19
  681. package/services/ValidateProjectConfigService/ValidateProjectConfigService.js.map +1 -1
  682. package/services/ValidateProjectConfigService/index.js +0 -2
  683. package/services/WatchedLambdaFunctionsService/WatchedLambdaFunctionsService.js +47 -54
  684. package/services/WatchedLambdaFunctionsService/WatchedLambdaFunctionsService.js.map +1 -1
  685. package/services/WatchedLambdaFunctionsService/index.js +0 -2
  686. package/services/WcpService/CreateUserPat.js +20 -23
  687. package/services/WcpService/CreateUserPat.js.map +1 -1
  688. package/services/WcpService/GenerateUserPat.js +15 -18
  689. package/services/WcpService/GenerateUserPat.js.map +1 -1
  690. package/services/WcpService/GetPatFromLocalStorage.js +9 -10
  691. package/services/WcpService/GetPatFromLocalStorage.js.map +1 -1
  692. package/services/WcpService/GetProjectEnvironment.js +34 -47
  693. package/services/WcpService/GetProjectEnvironment.js.map +1 -1
  694. package/services/WcpService/GetProjectLicense.js +28 -38
  695. package/services/WcpService/GetProjectLicense.js.map +1 -1
  696. package/services/WcpService/GetUser.js +43 -46
  697. package/services/WcpService/GetUser.js.map +1 -1
  698. package/services/WcpService/GetUserPat.js +20 -23
  699. package/services/WcpService/GetUserPat.js.map +1 -1
  700. package/services/WcpService/LogoutUser.js +9 -8
  701. package/services/WcpService/LogoutUser.js.map +1 -1
  702. package/services/WcpService/StorePatToLocalStorage.js +9 -10
  703. package/services/WcpService/StorePatToLocalStorage.js.map +1 -1
  704. package/services/WcpService/UnsetPatFromLocalStorage.js +9 -10
  705. package/services/WcpService/UnsetPatFromLocalStorage.js.map +1 -1
  706. package/services/WcpService/WcpGqlClient.js +6 -5
  707. package/services/WcpService/WcpGqlClient.js.map +1 -1
  708. package/services/WcpService/WcpService.js +74 -75
  709. package/services/WcpService/WcpService.js.map +1 -1
  710. package/services/WcpService/index.js +0 -2
  711. package/services/index.js +0 -2
  712. package/utils/ExtensionSrcResolver.js +51 -106
  713. package/utils/ExtensionSrcResolver.js.map +1 -1
  714. package/utils/constants.js +8 -7
  715. package/utils/constants.js.map +1 -1
  716. package/utils/createPathResolver.js +2 -5
  717. package/utils/createPathResolver.js.map +1 -1
  718. package/utils/env/configuration.js +16 -25
  719. package/utils/env/configuration.js.map +1 -1
  720. package/utils/env/index.js +0 -2
  721. package/utils/env/types.js +0 -3
  722. package/utils/env/withEnv.js +4 -7
  723. package/utils/env/withEnv.js.map +1 -1
  724. package/utils/env/withEnvVariant.js +8 -11
  725. package/utils/env/withEnvVariant.js.map +1 -1
  726. package/utils/env/withProjectName.js +4 -9
  727. package/utils/env/withProjectName.js.map +1 -1
  728. package/utils/env/withPulumiConfigPassphrase.js +4 -8
  729. package/utils/env/withPulumiConfigPassphrase.js.map +1 -1
  730. package/utils/env/withRegion.js +10 -17
  731. package/utils/env/withRegion.js.map +1 -1
  732. package/utils/getRandomColorForString.js +86 -8
  733. package/utils/getRandomColorForString.js.map +1 -1
  734. package/utils/getStackName.js +11 -18
  735. package/utils/getStackName.js.map +1 -1
  736. package/utils/getTemplatesFolderPath.js +6 -8
  737. package/utils/getTemplatesFolderPath.js.map +1 -1
  738. package/utils/index.js +0 -2
  739. package/utils/isValidRegionName.js +8 -13
  740. package/utils/isValidRegionName.js.map +1 -1
  741. package/utils/isValidVariantName.js +11 -10
  742. package/utils/isValidVariantName.js.map +1 -1
  743. package/utils/measureDuration.js +7 -8
  744. package/utils/measureDuration.js.map +1 -1
  745. package/utils/projectSdkContext.js +23 -39
  746. package/utils/projectSdkContext.js.map +1 -1
  747. package/utils/regions.js +75 -63
  748. package/utils/regions.js.map +1 -1
  749. package/utils/registerExtension.js +6 -15
  750. package/utils/registerExtension.js.map +1 -1
  751. package/utils/requireConfig.js +7 -12
  752. package/utils/requireConfig.js.map +1 -1
  753. package/utils/toImportSpecifier.js +3 -9
  754. package/utils/toImportSpecifier.js.map +1 -1
  755. package/abstractions/features/hooks/index.js.map +0 -1
  756. package/abstractions/features/index.js.map +0 -1
  757. package/abstractions/index.js.map +0 -1
  758. package/abstractions/models/IAppModel.js.map +0 -1
  759. package/abstractions/models/IAppPackageModel.js.map +0 -1
  760. package/abstractions/models/IPathModel.js.map +0 -1
  761. package/abstractions/models/IProjectConfigDto.js.map +0 -1
  762. package/abstractions/models/IProjectConfigModel.js.map +0 -1
  763. package/abstractions/models/IProjectModel.js.map +0 -1
  764. package/abstractions/models/IUrlModel.js.map +0 -1
  765. package/abstractions/models/IWcpEnvironmentDto.js.map +0 -1
  766. package/abstractions/models/IWcpEnvironmentModel.js.map +0 -1
  767. package/abstractions/models/IWcpUserDto.js.map +0 -1
  768. package/abstractions/models/IWcpUserModel.js.map +0 -1
  769. package/abstractions/models/IWcpUserPatDto.js.map +0 -1
  770. package/abstractions/models/IWcpUserPatModel.js.map +0 -1
  771. package/abstractions/models/PackagesBuilder/IPackagesBuilder.js.map +0 -1
  772. package/abstractions/models/PackagesBuilder/IRunnableBuildProcess.js.map +0 -1
  773. package/abstractions/models/PackagesBuilder/IRunnableBuildProcesses.js.map +0 -1
  774. package/abstractions/models/PackagesBuilder/index.js.map +0 -1
  775. package/abstractions/models/index.js.map +0 -1
  776. package/abstractions/services/ProjectInfoService/index.js.map +0 -1
  777. package/abstractions/services/index.js.map +0 -1
  778. package/abstractions/types.js.map +0 -1
  779. package/decorators/index.js.map +0 -1
  780. package/defineExtension/index.js.map +0 -1
  781. package/defineExtension/models/index.js.map +0 -1
  782. package/defineExtension/types.js.map +0 -1
  783. package/exports/infra/admin.js.map +0 -1
  784. package/exports/infra/api.js.map +0 -1
  785. package/exports/infra/core.js.map +0 -1
  786. package/exports/infra.js.map +0 -1
  787. package/extensions/hooks/index.js.map +0 -1
  788. package/extensions/infra/index.js.map +0 -1
  789. package/extensions/pulumi/index.js.map +0 -1
  790. package/features/BuildApp/index.js.map +0 -1
  791. package/features/DeployApp/index.js.map +0 -1
  792. package/features/DestroyApp/index.js.map +0 -1
  793. package/features/ExportStack/index.js.map +0 -1
  794. package/features/GetApp/index.js.map +0 -1
  795. package/features/GetAppOutput/index.js.map +0 -1
  796. package/features/GetAppStackOutput/index.js.map +0 -1
  797. package/features/GetFeatureFlags/index.js.map +0 -1
  798. package/features/GetLogger/index.js.map +0 -1
  799. package/features/GetProductionEnvironments/index.js.map +0 -1
  800. package/features/GetProject/index.js.map +0 -1
  801. package/features/GetProjectConfig/index.js.map +0 -1
  802. package/features/GetProjectInfo/index.js.map +0 -1
  803. package/features/GetPulumiResourceNamePrefix/index.js.map +0 -1
  804. package/features/InstallExtension/index.js.map +0 -1
  805. package/features/IsCi/index.js.map +0 -1
  806. package/features/IsTelemetryEnabled/index.js.map +0 -1
  807. package/features/IsWcpEnabled/index.js.map +0 -1
  808. package/features/IsWebinyJsRepo/index.js.map +0 -1
  809. package/features/RefreshApp/index.js.map +0 -1
  810. package/features/RunPulumiCommand/index.js.map +0 -1
  811. package/features/ValidateProjectConfig/index.js.map +0 -1
  812. package/features/Watch/index.js.map +0 -1
  813. package/features/hooks/AdminAfterBuild/index.js.map +0 -1
  814. package/features/hooks/AdminAfterDeploy/index.js.map +0 -1
  815. package/features/hooks/AdminBeforeBuild/index.js.map +0 -1
  816. package/features/hooks/AdminBeforeDeploy/index.js.map +0 -1
  817. package/features/hooks/AdminBeforeWatch/index.js.map +0 -1
  818. package/features/hooks/AfterBuild/index.js.map +0 -1
  819. package/features/hooks/AfterDeploy/index.js.map +0 -1
  820. package/features/hooks/ApiAfterBuild/index.js.map +0 -1
  821. package/features/hooks/ApiAfterDeploy/index.js.map +0 -1
  822. package/features/hooks/ApiBeforeBuild/index.js.map +0 -1
  823. package/features/hooks/ApiBeforeDeploy/index.js.map +0 -1
  824. package/features/hooks/ApiBeforeWatch/index.js.map +0 -1
  825. package/features/hooks/BeforeBuild/index.js.map +0 -1
  826. package/features/hooks/BeforeDeploy/index.js.map +0 -1
  827. package/features/hooks/BeforeWatch/index.js.map +0 -1
  828. package/features/hooks/CoreAfterBuild/index.js.map +0 -1
  829. package/features/hooks/CoreAfterDeploy/index.js.map +0 -1
  830. package/features/hooks/CoreBeforeBuild/index.js.map +0 -1
  831. package/features/hooks/CoreBeforeDeploy/index.js.map +0 -1
  832. package/features/hooks/CoreBeforeWatch/index.js.map +0 -1
  833. package/features/hooks/index.js.map +0 -1
  834. package/features/index.js.map +0 -1
  835. package/models/index.js.map +0 -1
  836. package/services/BuildAppWorkspaceService/index.js.map +0 -1
  837. package/services/BuildProjectWorkspaceService/index.js.map +0 -1
  838. package/services/GetAppPackagesService/index.js.map +0 -1
  839. package/services/GetAppService/index.js.map +0 -1
  840. package/services/GetCwdService/index.js.map +0 -1
  841. package/services/GetProjectConfigService/index.js.map +0 -1
  842. package/services/GetProjectIdService/index.js.map +0 -1
  843. package/services/GetProjectService/index.js.map +0 -1
  844. package/services/GetProjectVersionService/index.js.map +0 -1
  845. package/services/GetPulumiService/index.js.map +0 -1
  846. package/services/InitProjectSdkService/index.js.map +0 -1
  847. package/services/InstallExtensionService/index.js.map +0 -1
  848. package/services/InstallExtensionService/types.js.map +0 -1
  849. package/services/IsRemotePulumiBackendService/index.js.map +0 -1
  850. package/services/ListAppLambdaFunctionsService/index.js.map +0 -1
  851. package/services/ListDeployedEnvironmentsService/index.js.map +0 -1
  852. package/services/ListPackagesInAppWorkspaceService/index.js.map +0 -1
  853. package/services/ListPackagesService/index.js.map +0 -1
  854. package/services/LoadEnvVarsService/index.js.map +0 -1
  855. package/services/LocalStorageService/index.js.map +0 -1
  856. package/services/LoggerService/index.js.map +0 -1
  857. package/services/ProjectInfoService/index.js.map +0 -1
  858. package/services/ProjectSdkParamsService/index.js.map +0 -1
  859. package/services/PulumiExportService/index.js.map +0 -1
  860. package/services/PulumiGetConfigPassphraseService/index.js.map +0 -1
  861. package/services/PulumiGetSecretsProviderService/index.js.map +0 -1
  862. package/services/PulumiGetStackOutputService/index.js.map +0 -1
  863. package/services/PulumiImportService/index.js.map +0 -1
  864. package/services/PulumiLoginService/index.js.map +0 -1
  865. package/services/PulumiSelectStackService/index.js.map +0 -1
  866. package/services/SetProjectIdService/index.js.map +0 -1
  867. package/services/StdioService/index.js.map +0 -1
  868. package/services/UiService/index.js.map +0 -1
  869. package/services/ValidateProjectConfigService/index.js.map +0 -1
  870. package/services/WatchedLambdaFunctionsService/index.js.map +0 -1
  871. package/services/WcpService/index.js.map +0 -1
  872. package/services/index.js.map +0 -1
  873. package/utils/env/index.js.map +0 -1
  874. package/utils/env/types.js.map +0 -1
  875. package/utils/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["ExtensionSrcResolver","ProjectImplementation","ProjectImplementationExt","registerImplementations","container","projectExtensions","project","projectImplementations","extensionsByType","projectImplementation","projectImplementationImpl","importFromPath","params","src","binding","register","singleton","inSingletonScope"],"sources":["registerImplementations.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 { ProjectImplementation as ProjectImplementationExt } from \"~/extensions/ProjectImplementation.js\";\n\nexport const registerImplementations = async (\n container: Container,\n projectExtensions: IProjectConfigModel,\n project: IProjectModel\n) => {\n const projectImplementations = [\n ...projectExtensions.extensionsByType(ProjectImplementationExt)\n ];\n\n for (const projectImplementation of projectImplementations) {\n const projectImplementationImpl = await ExtensionSrcResolver.importFromPath(\n projectImplementation.params.src,\n project\n );\n const binding = container.register(projectImplementationImpl);\n\n // Apply singleton scope if specified (defaults to true)\n if (projectImplementation.params.singleton) {\n binding.inSingletonScope();\n }\n }\n};\n"],"mappings":"AAGA,SAASA,oBAAoB;AAC7B,SAASC,qBAAqB,IAAIC,wBAAwB;AAE1D,OAAO,MAAMC,uBAAuB,GAAG,MAAAA,CACnCC,SAAoB,EACpBC,iBAAsC,EACtCC,OAAsB,KACrB;EACD,MAAMC,sBAAsB,GAAG,CAC3B,GAAGF,iBAAiB,CAACG,gBAAgB,CAACN,wBAAwB,CAAC,CAClE;EAED,KAAK,MAAMO,qBAAqB,IAAIF,sBAAsB,EAAE;IACxD,MAAMG,yBAAyB,GAAG,MAAMV,oBAAoB,CAACW,cAAc,CACvEF,qBAAqB,CAACG,MAAM,CAACC,GAAG,EAChCP,OACJ,CAAC;IACD,MAAMQ,OAAO,GAAGV,SAAS,CAACW,QAAQ,CAACL,yBAAyB,CAAC;;IAE7D;IACA,IAAID,qBAAqB,CAACG,MAAM,CAACI,SAAS,EAAE;MACxCF,OAAO,CAACG,gBAAgB,CAAC,CAAC;IAC9B;EACJ;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"services/InitProjectSdkService/registerImplementations.js","sources":["../../../src/services/InitProjectSdkService/registerImplementations.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 { ProjectImplementation as ProjectImplementationExt } from \"~/extensions/ProjectImplementation.js\";\n\nexport const registerImplementations = async (\n container: Container,\n projectExtensions: IProjectConfigModel,\n project: IProjectModel\n) => {\n const projectImplementations = [\n ...projectExtensions.extensionsByType(ProjectImplementationExt)\n ];\n\n for (const projectImplementation of projectImplementations) {\n const projectImplementationImpl = await ExtensionSrcResolver.importFromPath(\n projectImplementation.params.src,\n project\n );\n const binding = container.register(projectImplementationImpl);\n\n // Apply singleton scope if specified (defaults to true)\n if (projectImplementation.params.singleton) {\n binding.inSingletonScope();\n }\n }\n};\n"],"names":["registerImplementations","container","projectExtensions","project","projectImplementations","ProjectImplementationExt","projectImplementation","projectImplementationImpl","ExtensionSrcResolver","binding"],"mappings":";;AAMO,MAAMA,0BAA0B,OACnCC,WACAC,mBACAC;IAEA,MAAMC,yBAAyB;WACxBF,kBAAkB,gBAAgB,CAACG;KACzC;IAED,KAAK,MAAMC,yBAAyBF,uBAAwB;QACxD,MAAMG,4BAA4B,MAAMC,qBAAqB,cAAc,CACvEF,sBAAsB,MAAM,CAAC,GAAG,EAChCH;QAEJ,MAAMM,UAAUR,UAAU,QAAQ,CAACM;QAGnC,IAAID,sBAAsB,MAAM,CAAC,SAAS,EACtCG,QAAQ,gBAAgB;IAEhC;AACJ"}
@@ -1,13 +1,16 @@
1
1
  import { ExtensionSrcResolver } from "../../utils/index.js";
2
- export const registerPulumiExtensions = async (container, projectExtensions, project) => {
3
- const pulumiExtensions = [...projectExtensions.extensionsByType("Core/Pulumi"), ...projectExtensions.extensionsByType("Api/Pulumi"), ...projectExtensions.extensionsByType("Admin/Pulumi")];
4
- for (const pulumiExtension of pulumiExtensions) {
5
- const {
6
- src
7
- } = pulumiExtension.params;
8
- const pulumiImpl = await ExtensionSrcResolver.importFromPath(src, project);
9
- container.register(pulumiImpl).inSingletonScope();
10
- }
2
+ const registerPulumiExtensions = async (container, projectExtensions, project)=>{
3
+ const pulumiExtensions = [
4
+ ...projectExtensions.extensionsByType("Core/Pulumi"),
5
+ ...projectExtensions.extensionsByType("Api/Pulumi"),
6
+ ...projectExtensions.extensionsByType("Admin/Pulumi")
7
+ ];
8
+ for (const pulumiExtension of pulumiExtensions){
9
+ const { src } = pulumiExtension.params;
10
+ const pulumiImpl = await ExtensionSrcResolver.importFromPath(src, project);
11
+ container.register(pulumiImpl).inSingletonScope();
12
+ }
11
13
  };
14
+ export { registerPulumiExtensions };
12
15
 
13
16
  //# sourceMappingURL=registerPulumiExtensions.js.map
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"file":"services/InitProjectSdkService/registerPulumiExtensions.js","sources":["../../../src/services/InitProjectSdkService/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"],"names":["registerPulumiExtensions","container","projectExtensions","project","pulumiExtensions","pulumiExtension","src","pulumiImpl","ExtensionSrcResolver"],"mappings":";AAKO,MAAMA,2BAA2B,OACpCC,WACAC,mBACAC;IAEA,MAAMC,mBAAmB;WAClBF,kBAAkB,gBAAgB,CAAC;WACnCA,kBAAkB,gBAAgB,CAAC;WACnCA,kBAAkB,gBAAgB,CAAC;KACzC;IAED,KAAK,MAAMG,mBAAmBD,iBAAkB;QAC5C,MAAM,EAAEE,GAAG,EAAE,GAAGD,gBAAgB,MAAM;QACtC,MAAME,aAAa,MAAMC,qBAAqB,cAAc,CAACF,KAAKH;QAClEF,UAAU,QAAQ,CAACM,YAAY,gBAAgB;IACnD;AACJ"}
@@ -1,7 +1,7 @@
1
1
  import os from "os";
2
2
  import path from "path";
3
3
  import fs from "fs";
4
- import fsAsync from "fs/promises";
4
+ import promises from "fs/promises";
5
5
  import { loadJsonFileSync } from "load-json-file";
6
6
  import { createImplementation } from "@webiny/di";
7
7
  import { GetProjectService, GetProjectVersionService, InstallExtensionService } from "../../abstractions/index.js";
@@ -13,131 +13,88 @@ const S3_BUCKET_NAME = "webiny-examples";
13
13
  const S3_BUCKET_REGION = "us-east-1";
14
14
  const FOLDER_NAME_IS_VERSION_REGEX = /^\d+\.\d+\.x$/;
15
15
  const WEBINY_DEV_VERSION = "0.0.0";
16
- const getVersionFromVersionFolders = async (versionFoldersList, currentWebinyVersion) => {
17
- const availableVersions = versionFoldersList.filter(v => v.match(FOLDER_NAME_IS_VERSION_REGEX)).map(v => v.replace(/\.x$/, ".0")).sort();
18
- let versionToUse = "";
19
-
20
- // When developing Webiny, we want to use the latest version.
21
- if (currentWebinyVersion.startsWith(WEBINY_DEV_VERSION)) {
22
- versionToUse = availableVersions[availableVersions.length - 1];
23
- } else {
24
- for (const availableVersion of availableVersions) {
25
- if (currentWebinyVersion >= availableVersion) {
26
- versionToUse = availableVersion;
27
- } else {
28
- break;
29
- }
30
- }
31
- }
32
- return versionToUse.replace(/\.0$/, ".x");
16
+ const getVersionFromVersionFolders = async (versionFoldersList, currentWebinyVersion)=>{
17
+ const availableVersions = versionFoldersList.filter((v)=>v.match(FOLDER_NAME_IS_VERSION_REGEX)).map((v)=>v.replace(/\.x$/, ".0")).sort();
18
+ let versionToUse = "";
19
+ if (currentWebinyVersion.startsWith(WEBINY_DEV_VERSION)) versionToUse = availableVersions[availableVersions.length - 1];
20
+ else for (const availableVersion of availableVersions)if (currentWebinyVersion >= availableVersion) versionToUse = availableVersion;
21
+ else break;
22
+ return versionToUse.replace(/\.0$/, ".x");
33
23
  };
34
24
  class DefaultInstallExtensionService {
35
- constructor(getProjectVersion, getProject) {
36
- this.getProjectVersion = getProjectVersion;
37
- this.getProject = getProject;
38
- }
39
- async execute(source) {
40
- const currentWebinyVersion = this.getProjectVersion.execute();
41
- const project = this.getProject.execute();
42
- const projectRoot = project.paths.rootFolder.toString();
43
- const randomId = String(Date.now());
44
- const downloadFolderPath = path.join(os.tmpdir(), `wby-ext-${randomId}`);
45
-
46
- // Check if source is a local path
47
- const isLocalPath = source.startsWith("../") || source.startsWith("./") || source.startsWith("/");
48
- if (isLocalPath) {
49
- // Resolve the local path relative to the project root
50
- const resolvedPath = path.isAbsolute(source) ? source : path.resolve(projectRoot, source);
51
-
52
- // Copy the local directory to the temporary download folder
53
- await fsAsync.cp(resolvedPath, downloadFolderPath, {
54
- recursive: true
55
- });
56
- } else {
57
- // Download from S3
58
- await downloadFolderFromS3({
59
- bucketName: S3_BUCKET_NAME,
60
- bucketRegion: S3_BUCKET_REGION,
61
- bucketFolderKey: source,
62
- downloadFolderPath
63
- });
64
- }
65
- let extensionsFolderToCopyPath = path.join(downloadFolderPath, "extensions");
66
- let extensionJsonPath = path.join(downloadFolderPath, "extension.json");
67
-
68
- // If we have `extensions` folder in the root of the downloaded extension,
69
- // it means the extension is not versioned, and we can just copy it.
70
- const extensionsFolderExistsInRoot = fs.existsSync(extensionsFolderToCopyPath);
71
- const versionedExtension = !extensionsFolderExistsInRoot;
72
- if (versionedExtension) {
73
- // If we have `x.x.x` folders in the root of the downloaded
74
- // extension, we need to find the right version to use.
75
-
76
- // This can be `5.40.x`, `6.0.x`, etc.
77
- const versionFolders = await fsAsync.readdir(downloadFolderPath);
78
- const versionToUse = await getVersionFromVersionFolders(versionFolders, currentWebinyVersion);
79
- extensionsFolderToCopyPath = path.join(downloadFolderPath, versionToUse, "extensions");
80
- const subExtensionJsonPath = path.join(downloadFolderPath, versionToUse, "extension.json");
81
- if (fs.existsSync(subExtensionJsonPath)) {
82
- extensionJsonPath = subExtensionJsonPath;
83
- }
84
- }
85
-
86
- // Read and parse extension.json.
87
- const extensionJsonExists = fs.existsSync(extensionJsonPath);
88
- const extensionJson = extensionJsonExists ? loadJsonFileSync(extensionJsonPath) : {
89
- name: "unknown",
90
- type: "admin"
91
- };
92
-
93
- // Ensure the extensions root folder exists.
94
- const targetExtensionsFolder = path.join(projectRoot, EXTENSIONS_ROOT_FOLDER);
95
- if (!fs.existsSync(targetExtensionsFolder)) {
96
- fs.mkdirSync(targetExtensionsFolder, {
97
- recursive: true
98
- });
99
- }
100
-
101
- // Copy the extensions folder contents.
102
- await fsAsync.cp(extensionsFolderToCopyPath, targetExtensionsFolder, {
103
- recursive: true
104
- });
105
-
106
- // Get the list of extensions that were copied.
107
- const extensionsFolderNames = await fsAsync.readdir(extensionsFolderToCopyPath);
108
- const extensionPaths = extensionsFolderNames.map(name => path.join(EXTENSIONS_ROOT_FOLDER, name));
109
-
110
- // Merge package.json if provided.
111
- if (extensionJson.packageJson && Object.keys(extensionJson.packageJson).length > 0) {
112
- await mergePackageJson({
113
- projectRoot,
114
- extensionPackageJson: extensionJson.packageJson
115
- });
25
+ constructor(getProjectVersion, getProject){
26
+ this.getProjectVersion = getProjectVersion;
27
+ this.getProject = getProject;
116
28
  }
117
-
118
- // Update webiny.config.tsx if provided.
119
- if (extensionJson.webinyConfigTsx) {
120
- await updateWebinyConfig({
121
- projectRoot,
122
- webinyConfigTsx: extensionJson.webinyConfigTsx
123
- });
29
+ async execute(source) {
30
+ const currentWebinyVersion = this.getProjectVersion.execute();
31
+ const project = this.getProject.execute();
32
+ const projectRoot = project.paths.rootFolder.toString();
33
+ const randomId = String(Date.now());
34
+ const downloadFolderPath = path.join(os.tmpdir(), `wby-ext-${randomId}`);
35
+ const isLocalPath = source.startsWith("../") || source.startsWith("./") || source.startsWith("/");
36
+ if (isLocalPath) {
37
+ const resolvedPath = path.isAbsolute(source) ? source : path.resolve(projectRoot, source);
38
+ await promises.cp(resolvedPath, downloadFolderPath, {
39
+ recursive: true
40
+ });
41
+ } else await downloadFolderFromS3({
42
+ bucketName: S3_BUCKET_NAME,
43
+ bucketRegion: S3_BUCKET_REGION,
44
+ bucketFolderKey: source,
45
+ downloadFolderPath
46
+ });
47
+ let extensionsFolderToCopyPath = path.join(downloadFolderPath, "extensions");
48
+ let extensionJsonPath = path.join(downloadFolderPath, "extension.json");
49
+ const extensionsFolderExistsInRoot = fs.existsSync(extensionsFolderToCopyPath);
50
+ const versionedExtension = !extensionsFolderExistsInRoot;
51
+ if (versionedExtension) {
52
+ const versionFolders = await promises.readdir(downloadFolderPath);
53
+ const versionToUse = await getVersionFromVersionFolders(versionFolders, currentWebinyVersion);
54
+ extensionsFolderToCopyPath = path.join(downloadFolderPath, versionToUse, "extensions");
55
+ const subExtensionJsonPath = path.join(downloadFolderPath, versionToUse, "extension.json");
56
+ if (fs.existsSync(subExtensionJsonPath)) extensionJsonPath = subExtensionJsonPath;
57
+ }
58
+ const extensionJsonExists = fs.existsSync(extensionJsonPath);
59
+ const extensionJson = extensionJsonExists ? loadJsonFileSync(extensionJsonPath) : {
60
+ name: "unknown",
61
+ type: "admin"
62
+ };
63
+ const targetExtensionsFolder = path.join(projectRoot, EXTENSIONS_ROOT_FOLDER);
64
+ if (!fs.existsSync(targetExtensionsFolder)) fs.mkdirSync(targetExtensionsFolder, {
65
+ recursive: true
66
+ });
67
+ await promises.cp(extensionsFolderToCopyPath, targetExtensionsFolder, {
68
+ recursive: true
69
+ });
70
+ const extensionsFolderNames = await promises.readdir(extensionsFolderToCopyPath);
71
+ const extensionPaths = extensionsFolderNames.map((name)=>path.join(EXTENSIONS_ROOT_FOLDER, name));
72
+ if (extensionJson.packageJson && Object.keys(extensionJson.packageJson).length > 0) await mergePackageJson({
73
+ projectRoot,
74
+ extensionPackageJson: extensionJson.packageJson
75
+ });
76
+ if (extensionJson.webinyConfigTsx) await updateWebinyConfig({
77
+ projectRoot,
78
+ webinyConfigTsx: extensionJson.webinyConfigTsx
79
+ });
80
+ const nextSteps = extensionJson.nextSteps?.messages || [];
81
+ const additionalNotes = extensionJson.additionalNotes?.messages || [];
82
+ return {
83
+ extensionName: extensionJson.name,
84
+ extensionPaths,
85
+ nextSteps,
86
+ additionalNotes
87
+ };
124
88
  }
125
-
126
- // Extract next steps and additional notes.
127
- const nextSteps = extensionJson.nextSteps?.messages || [];
128
- const additionalNotes = extensionJson.additionalNotes?.messages || [];
129
- return {
130
- extensionName: extensionJson.name,
131
- extensionPaths,
132
- nextSteps,
133
- additionalNotes
134
- };
135
- }
136
89
  }
137
- export const installExtensionService = createImplementation({
138
- abstraction: InstallExtensionService,
139
- implementation: DefaultInstallExtensionService,
140
- dependencies: [GetProjectVersionService, GetProjectService]
90
+ const installExtensionService = createImplementation({
91
+ abstraction: InstallExtensionService,
92
+ implementation: DefaultInstallExtensionService,
93
+ dependencies: [
94
+ GetProjectVersionService,
95
+ GetProjectService
96
+ ]
141
97
  });
98
+ export { installExtensionService };
142
99
 
143
100
  //# sourceMappingURL=InstallExtensionService.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["os","path","fs","fsAsync","loadJsonFileSync","createImplementation","GetProjectService","GetProjectVersionService","InstallExtensionService","downloadFolderFromS3","mergePackageJson","updateWebinyConfig","EXTENSIONS_ROOT_FOLDER","S3_BUCKET_NAME","S3_BUCKET_REGION","FOLDER_NAME_IS_VERSION_REGEX","WEBINY_DEV_VERSION","getVersionFromVersionFolders","versionFoldersList","currentWebinyVersion","availableVersions","filter","v","match","map","replace","sort","versionToUse","startsWith","length","availableVersion","DefaultInstallExtensionService","constructor","getProjectVersion","getProject","execute","source","project","projectRoot","paths","rootFolder","toString","randomId","String","Date","now","downloadFolderPath","join","tmpdir","isLocalPath","resolvedPath","isAbsolute","resolve","cp","recursive","bucketName","bucketRegion","bucketFolderKey","extensionsFolderToCopyPath","extensionJsonPath","extensionsFolderExistsInRoot","existsSync","versionedExtension","versionFolders","readdir","subExtensionJsonPath","extensionJsonExists","extensionJson","name","type","targetExtensionsFolder","mkdirSync","extensionsFolderNames","extensionPaths","packageJson","Object","keys","extensionPackageJson","webinyConfigTsx","nextSteps","messages","additionalNotes","extensionName","installExtensionService","abstraction","implementation","dependencies"],"sources":["InstallExtensionService.ts"],"sourcesContent":["import os from \"os\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport fsAsync from \"fs/promises\";\nimport { loadJsonFileSync } from \"load-json-file\";\nimport { createImplementation } from \"@webiny/di\";\nimport {\n GetProjectService,\n GetProjectVersionService,\n InstallExtensionService\n} from \"~/abstractions/index.js\";\nimport { downloadFolderFromS3 } from \"./downloadFolderFromS3.js\";\nimport { mergePackageJson } from \"./mergePackageJson.js\";\nimport { updateWebinyConfig } from \"./updateWebinyConfig.js\";\nimport type { ExtensionJson } from \"./types.js\";\n\nconst EXTENSIONS_ROOT_FOLDER = \"extensions\";\nconst S3_BUCKET_NAME = \"webiny-examples\";\nconst S3_BUCKET_REGION = \"us-east-1\";\nconst FOLDER_NAME_IS_VERSION_REGEX = /^\\d+\\.\\d+\\.x$/;\nconst WEBINY_DEV_VERSION = \"0.0.0\";\n\nconst getVersionFromVersionFolders = async (\n versionFoldersList: string[],\n currentWebinyVersion: string\n) => {\n const availableVersions = versionFoldersList\n .filter(v => v.match(FOLDER_NAME_IS_VERSION_REGEX))\n .map(v => v.replace(/\\.x$/, \".0\"))\n .sort();\n\n let versionToUse = \"\";\n\n // When developing Webiny, we want to use the latest version.\n if (currentWebinyVersion.startsWith(WEBINY_DEV_VERSION)) {\n versionToUse = availableVersions[availableVersions.length - 1];\n } else {\n for (const availableVersion of availableVersions) {\n if (currentWebinyVersion >= availableVersion) {\n versionToUse = availableVersion;\n } else {\n break;\n }\n }\n }\n\n return versionToUse.replace(/\\.0$/, \".x\");\n};\n\nclass DefaultInstallExtensionService implements InstallExtensionService.Interface {\n constructor(\n private getProjectVersion: GetProjectVersionService.Interface,\n private getProject: GetProjectService.Interface\n ) {}\n\n async execute(source: string): Promise<InstallExtensionService.Result> {\n const currentWebinyVersion = this.getProjectVersion.execute();\n const project = this.getProject.execute();\n const projectRoot = project.paths.rootFolder.toString();\n\n const randomId = String(Date.now());\n const downloadFolderPath = path.join(os.tmpdir(), `wby-ext-${randomId}`);\n\n // Check if source is a local path\n const isLocalPath =\n source.startsWith(\"../\") || source.startsWith(\"./\") || source.startsWith(\"/\");\n\n if (isLocalPath) {\n // Resolve the local path relative to the project root\n const resolvedPath = path.isAbsolute(source)\n ? source\n : path.resolve(projectRoot, source);\n\n // Copy the local directory to the temporary download folder\n await fsAsync.cp(resolvedPath, downloadFolderPath, {\n recursive: true\n });\n } else {\n // Download from S3\n await downloadFolderFromS3({\n bucketName: S3_BUCKET_NAME,\n bucketRegion: S3_BUCKET_REGION,\n bucketFolderKey: source,\n downloadFolderPath\n });\n }\n\n let extensionsFolderToCopyPath = path.join(downloadFolderPath, \"extensions\");\n let extensionJsonPath = path.join(downloadFolderPath, \"extension.json\");\n\n // If we have `extensions` folder in the root of the downloaded extension,\n // it means the extension is not versioned, and we can just copy it.\n const extensionsFolderExistsInRoot = fs.existsSync(extensionsFolderToCopyPath);\n const versionedExtension = !extensionsFolderExistsInRoot;\n\n if (versionedExtension) {\n // If we have `x.x.x` folders in the root of the downloaded\n // extension, we need to find the right version to use.\n\n // This can be `5.40.x`, `6.0.x`, etc.\n const versionFolders = await fsAsync.readdir(downloadFolderPath);\n\n const versionToUse = await getVersionFromVersionFolders(\n versionFolders,\n currentWebinyVersion\n );\n\n extensionsFolderToCopyPath = path.join(downloadFolderPath, versionToUse, \"extensions\");\n const subExtensionJsonPath = path.join(\n downloadFolderPath,\n versionToUse,\n \"extension.json\"\n );\n if (fs.existsSync(subExtensionJsonPath)) {\n extensionJsonPath = subExtensionJsonPath;\n }\n }\n\n // Read and parse extension.json.\n const extensionJsonExists = fs.existsSync(extensionJsonPath);\n const extensionJson: ExtensionJson = extensionJsonExists\n ? loadJsonFileSync(extensionJsonPath)\n : { name: \"unknown\", type: \"admin\" };\n\n // Ensure the extensions root folder exists.\n const targetExtensionsFolder = path.join(projectRoot, EXTENSIONS_ROOT_FOLDER);\n if (!fs.existsSync(targetExtensionsFolder)) {\n fs.mkdirSync(targetExtensionsFolder, { recursive: true });\n }\n\n // Copy the extensions folder contents.\n await fsAsync.cp(extensionsFolderToCopyPath, targetExtensionsFolder, {\n recursive: true\n });\n\n // Get the list of extensions that were copied.\n const extensionsFolderNames = await fsAsync.readdir(extensionsFolderToCopyPath);\n const extensionPaths = extensionsFolderNames.map(name =>\n path.join(EXTENSIONS_ROOT_FOLDER, name)\n );\n\n // Merge package.json if provided.\n if (extensionJson.packageJson && Object.keys(extensionJson.packageJson).length > 0) {\n await mergePackageJson({\n projectRoot,\n extensionPackageJson: extensionJson.packageJson\n });\n }\n\n // Update webiny.config.tsx if provided.\n if (extensionJson.webinyConfigTsx) {\n await updateWebinyConfig({\n projectRoot,\n webinyConfigTsx: extensionJson.webinyConfigTsx\n });\n }\n\n // Extract next steps and additional notes.\n const nextSteps = extensionJson.nextSteps?.messages || [];\n const additionalNotes = extensionJson.additionalNotes?.messages || [];\n\n return {\n extensionName: extensionJson.name,\n extensionPaths,\n nextSteps,\n additionalNotes\n };\n }\n}\n\nexport const installExtensionService = createImplementation({\n abstraction: InstallExtensionService,\n implementation: DefaultInstallExtensionService,\n dependencies: [GetProjectVersionService, GetProjectService]\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"services/InstallExtensionService/InstallExtensionService.js","sources":["../../../src/services/InstallExtensionService/InstallExtensionService.ts"],"sourcesContent":["import os from \"os\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport fsAsync from \"fs/promises\";\nimport { loadJsonFileSync } from \"load-json-file\";\nimport { createImplementation } from \"@webiny/di\";\nimport {\n GetProjectService,\n GetProjectVersionService,\n InstallExtensionService\n} from \"~/abstractions/index.js\";\nimport { downloadFolderFromS3 } from \"./downloadFolderFromS3.js\";\nimport { mergePackageJson } from \"./mergePackageJson.js\";\nimport { updateWebinyConfig } from \"./updateWebinyConfig.js\";\nimport type { ExtensionJson } from \"./types.js\";\n\nconst EXTENSIONS_ROOT_FOLDER = \"extensions\";\nconst S3_BUCKET_NAME = \"webiny-examples\";\nconst S3_BUCKET_REGION = \"us-east-1\";\nconst FOLDER_NAME_IS_VERSION_REGEX = /^\\d+\\.\\d+\\.x$/;\nconst WEBINY_DEV_VERSION = \"0.0.0\";\n\nconst getVersionFromVersionFolders = async (\n versionFoldersList: string[],\n currentWebinyVersion: string\n) => {\n const availableVersions = versionFoldersList\n .filter(v => v.match(FOLDER_NAME_IS_VERSION_REGEX))\n .map(v => v.replace(/\\.x$/, \".0\"))\n .sort();\n\n let versionToUse = \"\";\n\n // When developing Webiny, we want to use the latest version.\n if (currentWebinyVersion.startsWith(WEBINY_DEV_VERSION)) {\n versionToUse = availableVersions[availableVersions.length - 1];\n } else {\n for (const availableVersion of availableVersions) {\n if (currentWebinyVersion >= availableVersion) {\n versionToUse = availableVersion;\n } else {\n break;\n }\n }\n }\n\n return versionToUse.replace(/\\.0$/, \".x\");\n};\n\nclass DefaultInstallExtensionService implements InstallExtensionService.Interface {\n constructor(\n private getProjectVersion: GetProjectVersionService.Interface,\n private getProject: GetProjectService.Interface\n ) {}\n\n async execute(source: string): Promise<InstallExtensionService.Result> {\n const currentWebinyVersion = this.getProjectVersion.execute();\n const project = this.getProject.execute();\n const projectRoot = project.paths.rootFolder.toString();\n\n const randomId = String(Date.now());\n const downloadFolderPath = path.join(os.tmpdir(), `wby-ext-${randomId}`);\n\n // Check if source is a local path\n const isLocalPath =\n source.startsWith(\"../\") || source.startsWith(\"./\") || source.startsWith(\"/\");\n\n if (isLocalPath) {\n // Resolve the local path relative to the project root\n const resolvedPath = path.isAbsolute(source)\n ? source\n : path.resolve(projectRoot, source);\n\n // Copy the local directory to the temporary download folder\n await fsAsync.cp(resolvedPath, downloadFolderPath, {\n recursive: true\n });\n } else {\n // Download from S3\n await downloadFolderFromS3({\n bucketName: S3_BUCKET_NAME,\n bucketRegion: S3_BUCKET_REGION,\n bucketFolderKey: source,\n downloadFolderPath\n });\n }\n\n let extensionsFolderToCopyPath = path.join(downloadFolderPath, \"extensions\");\n let extensionJsonPath = path.join(downloadFolderPath, \"extension.json\");\n\n // If we have `extensions` folder in the root of the downloaded extension,\n // it means the extension is not versioned, and we can just copy it.\n const extensionsFolderExistsInRoot = fs.existsSync(extensionsFolderToCopyPath);\n const versionedExtension = !extensionsFolderExistsInRoot;\n\n if (versionedExtension) {\n // If we have `x.x.x` folders in the root of the downloaded\n // extension, we need to find the right version to use.\n\n // This can be `5.40.x`, `6.0.x`, etc.\n const versionFolders = await fsAsync.readdir(downloadFolderPath);\n\n const versionToUse = await getVersionFromVersionFolders(\n versionFolders,\n currentWebinyVersion\n );\n\n extensionsFolderToCopyPath = path.join(downloadFolderPath, versionToUse, \"extensions\");\n const subExtensionJsonPath = path.join(\n downloadFolderPath,\n versionToUse,\n \"extension.json\"\n );\n if (fs.existsSync(subExtensionJsonPath)) {\n extensionJsonPath = subExtensionJsonPath;\n }\n }\n\n // Read and parse extension.json.\n const extensionJsonExists = fs.existsSync(extensionJsonPath);\n const extensionJson: ExtensionJson = extensionJsonExists\n ? loadJsonFileSync(extensionJsonPath)\n : { name: \"unknown\", type: \"admin\" };\n\n // Ensure the extensions root folder exists.\n const targetExtensionsFolder = path.join(projectRoot, EXTENSIONS_ROOT_FOLDER);\n if (!fs.existsSync(targetExtensionsFolder)) {\n fs.mkdirSync(targetExtensionsFolder, { recursive: true });\n }\n\n // Copy the extensions folder contents.\n await fsAsync.cp(extensionsFolderToCopyPath, targetExtensionsFolder, {\n recursive: true\n });\n\n // Get the list of extensions that were copied.\n const extensionsFolderNames = await fsAsync.readdir(extensionsFolderToCopyPath);\n const extensionPaths = extensionsFolderNames.map(name =>\n path.join(EXTENSIONS_ROOT_FOLDER, name)\n );\n\n // Merge package.json if provided.\n if (extensionJson.packageJson && Object.keys(extensionJson.packageJson).length > 0) {\n await mergePackageJson({\n projectRoot,\n extensionPackageJson: extensionJson.packageJson\n });\n }\n\n // Update webiny.config.tsx if provided.\n if (extensionJson.webinyConfigTsx) {\n await updateWebinyConfig({\n projectRoot,\n webinyConfigTsx: extensionJson.webinyConfigTsx\n });\n }\n\n // Extract next steps and additional notes.\n const nextSteps = extensionJson.nextSteps?.messages || [];\n const additionalNotes = extensionJson.additionalNotes?.messages || [];\n\n return {\n extensionName: extensionJson.name,\n extensionPaths,\n nextSteps,\n additionalNotes\n };\n }\n}\n\nexport const installExtensionService = createImplementation({\n abstraction: InstallExtensionService,\n implementation: DefaultInstallExtensionService,\n dependencies: [GetProjectVersionService, GetProjectService]\n});\n"],"names":["EXTENSIONS_ROOT_FOLDER","S3_BUCKET_NAME","S3_BUCKET_REGION","FOLDER_NAME_IS_VERSION_REGEX","WEBINY_DEV_VERSION","getVersionFromVersionFolders","versionFoldersList","currentWebinyVersion","availableVersions","v","versionToUse","availableVersion","DefaultInstallExtensionService","getProjectVersion","getProject","source","project","projectRoot","randomId","String","Date","downloadFolderPath","path","os","isLocalPath","resolvedPath","fsAsync","downloadFolderFromS3","extensionsFolderToCopyPath","extensionJsonPath","extensionsFolderExistsInRoot","fs","versionedExtension","versionFolders","subExtensionJsonPath","extensionJsonExists","extensionJson","loadJsonFileSync","targetExtensionsFolder","extensionsFolderNames","extensionPaths","name","Object","mergePackageJson","updateWebinyConfig","nextSteps","additionalNotes","installExtensionService","createImplementation","InstallExtensionService","GetProjectVersionService","GetProjectService"],"mappings":"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"}
@@ -1,72 +1,53 @@
1
1
  import fs from "fs";
2
2
  import path from "path";
3
- export class NoObjectsFoundError extends Error {
4
- code = "NO_OBJECTS_FOUND";
5
- constructor(message) {
6
- super(message);
7
- this.name = "NoObjectsFoundError";
8
- }
9
- }
10
- export const downloadFolderFromS3 = async params => {
11
- const {
12
- bucketName,
13
- bucketRegion,
14
- bucketFolderKey,
15
- downloadFolderPath
16
- } = params;
17
- const s3FolderKey = `v6/${bucketFolderKey}`;
18
- const baseUrl = `https://${bucketName}.s3.${bucketRegion}.amazonaws.com`;
19
- const listObjects = async () => {
20
- const keys = [];
21
- let continuationToken;
22
- do {
23
- let url = `${baseUrl}/?list-type=2&prefix=${encodeURIComponent(s3FolderKey)}`;
24
- if (continuationToken) {
25
- url += `&continuation-token=${encodeURIComponent(continuationToken)}`;
26
- }
27
- const response = await fetch(url);
28
- if (!response.ok) {
29
- throw new Error(`Failed to list objects: ${response.status} ${response.statusText}`);
30
- }
31
- const xml = await response.text();
32
- for (const match of xml.matchAll(/<Key>([^<]+)<\/Key>/g)) {
33
- keys.push(match[1]);
34
- }
35
- const isTruncated = xml.includes("<IsTruncated>true</IsTruncated>");
36
- continuationToken = isTruncated ? xml.match(/<NextContinuationToken>([^<]+)<\/NextContinuationToken>/)?.[1] : undefined;
37
- } while (continuationToken);
38
- return keys;
39
- };
40
- const downloadFile = async (key, localPath) => {
41
- const response = await fetch(`${baseUrl}/${key}`);
42
- if (!response.ok) {
43
- throw new Error(`Failed to download ${key}: ${response.status} ${response.statusText}`);
3
+ class NoObjectsFoundError extends Error {
4
+ constructor(message){
5
+ super(message), this.code = "NO_OBJECTS_FOUND";
6
+ this.name = "NoObjectsFoundError";
44
7
  }
45
- fs.writeFileSync(localPath, Buffer.from(await response.arrayBuffer()));
46
- };
47
- const keys = await listObjects();
48
- if (!keys.length) {
49
- throw new NoObjectsFoundError(`No objects found in the specified S3 folder.`);
50
- }
51
- for (const key of keys) {
52
- const relativePath = path.relative(s3FolderKey, key);
53
- const localFilePath = path.join(downloadFolderPath, relativePath);
54
- if (key.endsWith("/")) {
55
- if (!fs.existsSync(localFilePath)) {
56
- fs.mkdirSync(localFilePath, {
57
- recursive: true
58
- });
59
- }
60
- } else {
61
- const localDirPath = path.dirname(localFilePath);
62
- if (!fs.existsSync(localDirPath)) {
63
- fs.mkdirSync(localDirPath, {
64
- recursive: true
65
- });
66
- }
67
- await downloadFile(key, localFilePath);
8
+ }
9
+ const downloadFolderFromS3 = async (params)=>{
10
+ const { bucketName, bucketRegion, bucketFolderKey, downloadFolderPath } = params;
11
+ const s3FolderKey = `v6/${bucketFolderKey}`;
12
+ const baseUrl = `https://${bucketName}.s3.${bucketRegion}.amazonaws.com`;
13
+ const listObjects = async ()=>{
14
+ const keys = [];
15
+ let continuationToken;
16
+ do {
17
+ let url = `${baseUrl}/?list-type=2&prefix=${encodeURIComponent(s3FolderKey)}`;
18
+ if (continuationToken) url += `&continuation-token=${encodeURIComponent(continuationToken)}`;
19
+ const response = await fetch(url);
20
+ if (!response.ok) throw new Error(`Failed to list objects: ${response.status} ${response.statusText}`);
21
+ const xml = await response.text();
22
+ for (const match of xml.matchAll(/<Key>([^<]+)<\/Key>/g))keys.push(match[1]);
23
+ const isTruncated = xml.includes("<IsTruncated>true</IsTruncated>");
24
+ continuationToken = isTruncated ? xml.match(/<NextContinuationToken>([^<]+)<\/NextContinuationToken>/)?.[1] : void 0;
25
+ }while (continuationToken)
26
+ return keys;
27
+ };
28
+ const downloadFile = async (key, localPath)=>{
29
+ const response = await fetch(`${baseUrl}/${key}`);
30
+ if (!response.ok) throw new Error(`Failed to download ${key}: ${response.status} ${response.statusText}`);
31
+ fs.writeFileSync(localPath, Buffer.from(await response.arrayBuffer()));
32
+ };
33
+ const keys = await listObjects();
34
+ if (!keys.length) throw new NoObjectsFoundError("No objects found in the specified S3 folder.");
35
+ for (const key of keys){
36
+ const relativePath = path.relative(s3FolderKey, key);
37
+ const localFilePath = path.join(downloadFolderPath, relativePath);
38
+ if (key.endsWith("/")) {
39
+ if (!fs.existsSync(localFilePath)) fs.mkdirSync(localFilePath, {
40
+ recursive: true
41
+ });
42
+ } else {
43
+ const localDirPath = path.dirname(localFilePath);
44
+ if (!fs.existsSync(localDirPath)) fs.mkdirSync(localDirPath, {
45
+ recursive: true
46
+ });
47
+ await downloadFile(key, localFilePath);
48
+ }
68
49
  }
69
- }
70
50
  };
51
+ export { NoObjectsFoundError, downloadFolderFromS3 };
71
52
 
72
53
  //# sourceMappingURL=downloadFolderFromS3.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["fs","path","NoObjectsFoundError","Error","code","constructor","message","name","downloadFolderFromS3","params","bucketName","bucketRegion","bucketFolderKey","downloadFolderPath","s3FolderKey","baseUrl","listObjects","keys","continuationToken","url","encodeURIComponent","response","fetch","ok","status","statusText","xml","text","match","matchAll","push","isTruncated","includes","undefined","downloadFile","key","localPath","writeFileSync","Buffer","from","arrayBuffer","length","relativePath","relative","localFilePath","join","endsWith","existsSync","mkdirSync","recursive","localDirPath","dirname"],"sources":["downloadFolderFromS3.ts"],"sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\n\ninterface DownloadFolderFromS3Params {\n bucketName: string;\n bucketRegion: string;\n bucketFolderKey: string;\n downloadFolderPath: string;\n}\n\nexport class NoObjectsFoundError extends Error {\n code = \"NO_OBJECTS_FOUND\";\n constructor(message: string) {\n super(message);\n this.name = \"NoObjectsFoundError\";\n }\n}\n\nexport const downloadFolderFromS3 = async (params: DownloadFolderFromS3Params) => {\n const { bucketName, bucketRegion, bucketFolderKey, downloadFolderPath } = params;\n\n const s3FolderKey = `v6/${bucketFolderKey}`;\n const baseUrl = `https://${bucketName}.s3.${bucketRegion}.amazonaws.com`;\n\n const listObjects = async (): Promise<string[]> => {\n const keys: string[] = [];\n let continuationToken: string | undefined;\n\n do {\n let url = `${baseUrl}/?list-type=2&prefix=${encodeURIComponent(s3FolderKey)}`;\n if (continuationToken) {\n url += `&continuation-token=${encodeURIComponent(continuationToken)}`;\n }\n\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(\n `Failed to list objects: ${response.status} ${response.statusText}`\n );\n }\n\n const xml = await response.text();\n\n for (const match of xml.matchAll(/<Key>([^<]+)<\\/Key>/g)) {\n keys.push(match[1]);\n }\n\n const isTruncated = xml.includes(\"<IsTruncated>true</IsTruncated>\");\n continuationToken = isTruncated\n ? xml.match(/<NextContinuationToken>([^<]+)<\\/NextContinuationToken>/)?.[1]\n : undefined;\n } while (continuationToken);\n\n return keys;\n };\n\n const downloadFile = async (key: string, localPath: string): Promise<void> => {\n const response = await fetch(`${baseUrl}/${key}`);\n if (!response.ok) {\n throw new Error(`Failed to download ${key}: ${response.status} ${response.statusText}`);\n }\n fs.writeFileSync(localPath, Buffer.from(await response.arrayBuffer()));\n };\n\n const keys = await listObjects();\n if (!keys.length) {\n throw new NoObjectsFoundError(`No objects found in the specified S3 folder.`);\n }\n\n for (const key of keys) {\n const relativePath = path.relative(s3FolderKey, key);\n const localFilePath = path.join(downloadFolderPath, relativePath);\n\n if (key.endsWith(\"/\")) {\n if (!fs.existsSync(localFilePath)) {\n fs.mkdirSync(localFilePath, { recursive: true });\n }\n } else {\n const localDirPath = path.dirname(localFilePath);\n if (!fs.existsSync(localDirPath)) {\n fs.mkdirSync(localDirPath, { recursive: true });\n }\n await downloadFile(key, localFilePath);\n }\n }\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"services/InstallExtensionService/downloadFolderFromS3.js","sources":["../../../src/services/InstallExtensionService/downloadFolderFromS3.ts"],"sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\n\ninterface DownloadFolderFromS3Params {\n bucketName: string;\n bucketRegion: string;\n bucketFolderKey: string;\n downloadFolderPath: string;\n}\n\nexport class NoObjectsFoundError extends Error {\n code = \"NO_OBJECTS_FOUND\";\n constructor(message: string) {\n super(message);\n this.name = \"NoObjectsFoundError\";\n }\n}\n\nexport const downloadFolderFromS3 = async (params: DownloadFolderFromS3Params) => {\n const { bucketName, bucketRegion, bucketFolderKey, downloadFolderPath } = params;\n\n const s3FolderKey = `v6/${bucketFolderKey}`;\n const baseUrl = `https://${bucketName}.s3.${bucketRegion}.amazonaws.com`;\n\n const listObjects = async (): Promise<string[]> => {\n const keys: string[] = [];\n let continuationToken: string | undefined;\n\n do {\n let url = `${baseUrl}/?list-type=2&prefix=${encodeURIComponent(s3FolderKey)}`;\n if (continuationToken) {\n url += `&continuation-token=${encodeURIComponent(continuationToken)}`;\n }\n\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(\n `Failed to list objects: ${response.status} ${response.statusText}`\n );\n }\n\n const xml = await response.text();\n\n for (const match of xml.matchAll(/<Key>([^<]+)<\\/Key>/g)) {\n keys.push(match[1]);\n }\n\n const isTruncated = xml.includes(\"<IsTruncated>true</IsTruncated>\");\n continuationToken = isTruncated\n ? xml.match(/<NextContinuationToken>([^<]+)<\\/NextContinuationToken>/)?.[1]\n : undefined;\n } while (continuationToken);\n\n return keys;\n };\n\n const downloadFile = async (key: string, localPath: string): Promise<void> => {\n const response = await fetch(`${baseUrl}/${key}`);\n if (!response.ok) {\n throw new Error(`Failed to download ${key}: ${response.status} ${response.statusText}`);\n }\n fs.writeFileSync(localPath, Buffer.from(await response.arrayBuffer()));\n };\n\n const keys = await listObjects();\n if (!keys.length) {\n throw new NoObjectsFoundError(`No objects found in the specified S3 folder.`);\n }\n\n for (const key of keys) {\n const relativePath = path.relative(s3FolderKey, key);\n const localFilePath = path.join(downloadFolderPath, relativePath);\n\n if (key.endsWith(\"/\")) {\n if (!fs.existsSync(localFilePath)) {\n fs.mkdirSync(localFilePath, { recursive: true });\n }\n } else {\n const localDirPath = path.dirname(localFilePath);\n if (!fs.existsSync(localDirPath)) {\n fs.mkdirSync(localDirPath, { recursive: true });\n }\n await downloadFile(key, localFilePath);\n }\n }\n};\n"],"names":["NoObjectsFoundError","Error","message","downloadFolderFromS3","params","bucketName","bucketRegion","bucketFolderKey","downloadFolderPath","s3FolderKey","baseUrl","listObjects","keys","continuationToken","url","encodeURIComponent","response","fetch","xml","match","isTruncated","undefined","downloadFile","key","localPath","fs","Buffer","relativePath","path","localFilePath","localDirPath"],"mappings":";;AAUO,MAAMA,4BAA4BC;IAErC,YAAYC,OAAe,CAAE;QACzB,KAAK,CAACA,UAAAA,IAAAA,CAFV,IAAI,GAAG;QAGH,IAAI,CAAC,IAAI,GAAG;IAChB;AACJ;AAEO,MAAMC,uBAAuB,OAAOC;IACvC,MAAM,EAAEC,UAAU,EAAEC,YAAY,EAAEC,eAAe,EAAEC,kBAAkB,EAAE,GAAGJ;IAE1E,MAAMK,cAAc,CAAC,GAAG,EAAEF,iBAAiB;IAC3C,MAAMG,UAAU,CAAC,QAAQ,EAAEL,WAAW,IAAI,EAAEC,aAAa,cAAc,CAAC;IAExE,MAAMK,cAAc;QAChB,MAAMC,OAAiB,EAAE;QACzB,IAAIC;QAEJ,GAAG;YACC,IAAIC,MAAM,GAAGJ,QAAQ,qBAAqB,EAAEK,mBAAmBN,cAAc;YAC7E,IAAII,mBACAC,OAAO,CAAC,oBAAoB,EAAEC,mBAAmBF,oBAAoB;YAGzE,MAAMG,WAAW,MAAMC,MAAMH;YAC7B,IAAI,CAACE,SAAS,EAAE,EACZ,MAAM,IAAIf,MACN,CAAC,wBAAwB,EAAEe,SAAS,MAAM,CAAC,CAAC,EAAEA,SAAS,UAAU,EAAE;YAI3E,MAAME,MAAM,MAAMF,SAAS,IAAI;YAE/B,KAAK,MAAMG,SAASD,IAAI,QAAQ,CAAC,wBAC7BN,KAAK,IAAI,CAACO,KAAK,CAAC,EAAE;YAGtB,MAAMC,cAAcF,IAAI,QAAQ,CAAC;YACjCL,oBAAoBO,cACdF,IAAI,KAAK,CAAC,4DAA4D,CAAC,EAAE,GACzEG;QACV,QAASR,kBAAmB;QAE5B,OAAOD;IACX;IAEA,MAAMU,eAAe,OAAOC,KAAaC;QACrC,MAAMR,WAAW,MAAMC,MAAM,GAAGP,QAAQ,CAAC,EAAEa,KAAK;QAChD,IAAI,CAACP,SAAS,EAAE,EACZ,MAAM,IAAIf,MAAM,CAAC,mBAAmB,EAAEsB,IAAI,EAAE,EAAEP,SAAS,MAAM,CAAC,CAAC,EAAEA,SAAS,UAAU,EAAE;QAE1FS,GAAG,aAAa,CAACD,WAAWE,OAAO,IAAI,CAAC,MAAMV,SAAS,WAAW;IACtE;IAEA,MAAMJ,OAAO,MAAMD;IACnB,IAAI,CAACC,KAAK,MAAM,EACZ,MAAM,IAAIZ,oBAAoB;IAGlC,KAAK,MAAMuB,OAAOX,KAAM;QACpB,MAAMe,eAAeC,KAAK,QAAQ,CAACnB,aAAac;QAChD,MAAMM,gBAAgBD,KAAK,IAAI,CAACpB,oBAAoBmB;QAEpD,IAAIJ,IAAI,QAAQ,CAAC,MACb;YAAA,IAAI,CAACE,GAAG,UAAU,CAACI,gBACfJ,GAAG,SAAS,CAACI,eAAe;gBAAE,WAAW;YAAK;QAClD,OACG;YACH,MAAMC,eAAeF,KAAK,OAAO,CAACC;YAClC,IAAI,CAACJ,GAAG,UAAU,CAACK,eACfL,GAAG,SAAS,CAACK,cAAc;gBAAE,WAAW;YAAK;YAEjD,MAAMR,aAAaC,KAAKM;QAC5B;IACJ;AACJ"}
@@ -1,3 +1 @@
1
1
  export * from "./InstallExtensionService.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -1,31 +1,21 @@
1
1
  import { loadJsonFileSync } from "load-json-file";
2
2
  import { writeJsonFileSync } from "write-json-file";
3
3
  import deepmerge from "deepmerge";
4
- /**
5
- * Merge extension package.json properties into the project's root package.json.
6
- */
7
- export const mergePackageJson = async params => {
8
- const {
9
- projectRoot,
10
- extensionPackageJson
11
- } = params;
12
- const packageJsonPath = `${projectRoot}/package.json`;
13
-
14
- // Load the current package.json
15
- const currentPackageJson = await loadJsonFileSync(packageJsonPath);
16
-
17
- // Merge the extension's package.json into the current one
18
- // Use deepmerge to combine arrays and objects properly
19
- const mergedPackageJson = deepmerge(currentPackageJson, extensionPackageJson, {
20
- // For arrays, concatenate and remove duplicates
21
- arrayMerge: (target, source) => {
22
- const combined = [...target, ...source];
23
- return Array.from(new Set(combined));
24
- }
25
- });
26
-
27
- // Write the merged package.json back
28
- return writeJsonFileSync(packageJsonPath, mergedPackageJson);
4
+ const mergePackageJson = async (params)=>{
5
+ const { projectRoot, extensionPackageJson } = params;
6
+ const packageJsonPath = `${projectRoot}/package.json`;
7
+ const currentPackageJson = await loadJsonFileSync(packageJsonPath);
8
+ const mergedPackageJson = deepmerge(currentPackageJson, extensionPackageJson, {
9
+ arrayMerge: (target, source)=>{
10
+ const combined = [
11
+ ...target,
12
+ ...source
13
+ ];
14
+ return Array.from(new Set(combined));
15
+ }
16
+ });
17
+ return writeJsonFileSync(packageJsonPath, mergedPackageJson);
29
18
  };
19
+ export { mergePackageJson };
30
20
 
31
21
  //# sourceMappingURL=mergePackageJson.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["loadJsonFileSync","writeJsonFileSync","deepmerge","mergePackageJson","params","projectRoot","extensionPackageJson","packageJsonPath","currentPackageJson","mergedPackageJson","arrayMerge","target","source","combined","Array","from","Set"],"sources":["mergePackageJson.ts"],"sourcesContent":["import { loadJsonFileSync } from \"load-json-file\";\nimport { writeJsonFileSync } from \"write-json-file\";\nimport deepmerge from \"deepmerge\";\n\ninterface MergePackageJsonParams {\n projectRoot: string;\n extensionPackageJson: Record<string, any>;\n}\n\n/**\n * Merge extension package.json properties into the project's root package.json.\n */\nexport const mergePackageJson = async (params: MergePackageJsonParams): Promise<void> => {\n const { projectRoot, extensionPackageJson } = params;\n\n const packageJsonPath = `${projectRoot}/package.json`;\n\n // Load the current package.json\n const currentPackageJson = await loadJsonFileSync<Record<string, any>>(packageJsonPath);\n\n // Merge the extension's package.json into the current one\n // Use deepmerge to combine arrays and objects properly\n const mergedPackageJson = deepmerge(currentPackageJson, extensionPackageJson, {\n // For arrays, concatenate and remove duplicates\n arrayMerge: (target, source) => {\n const combined = [...target, ...source];\n return Array.from(new Set(combined));\n }\n });\n\n // Write the merged package.json back\n return writeJsonFileSync(packageJsonPath, mergedPackageJson);\n};\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,gBAAgB;AACjD,SAASC,iBAAiB,QAAQ,iBAAiB;AACnD,OAAOC,SAAS,MAAM,WAAW;AAOjC;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAG,MAAOC,MAA8B,IAAoB;EACrF,MAAM;IAAEC,WAAW;IAAEC;EAAqB,CAAC,GAAGF,MAAM;EAEpD,MAAMG,eAAe,GAAG,GAAGF,WAAW,eAAe;;EAErD;EACA,MAAMG,kBAAkB,GAAG,MAAMR,gBAAgB,CAAsBO,eAAe,CAAC;;EAEvF;EACA;EACA,MAAME,iBAAiB,GAAGP,SAAS,CAACM,kBAAkB,EAAEF,oBAAoB,EAAE;IAC1E;IACAI,UAAU,EAAEA,CAACC,MAAM,EAAEC,MAAM,KAAK;MAC5B,MAAMC,QAAQ,GAAG,CAAC,GAAGF,MAAM,EAAE,GAAGC,MAAM,CAAC;MACvC,OAAOE,KAAK,CAACC,IAAI,CAAC,IAAIC,GAAG,CAACH,QAAQ,CAAC,CAAC;IACxC;EACJ,CAAC,CAAC;;EAEF;EACA,OAAOZ,iBAAiB,CAACM,eAAe,EAAEE,iBAAiB,CAAC;AAChE,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"services/InstallExtensionService/mergePackageJson.js","sources":["../../../src/services/InstallExtensionService/mergePackageJson.ts"],"sourcesContent":["import { loadJsonFileSync } from \"load-json-file\";\nimport { writeJsonFileSync } from \"write-json-file\";\nimport deepmerge from \"deepmerge\";\n\ninterface MergePackageJsonParams {\n projectRoot: string;\n extensionPackageJson: Record<string, any>;\n}\n\n/**\n * Merge extension package.json properties into the project's root package.json.\n */\nexport const mergePackageJson = async (params: MergePackageJsonParams): Promise<void> => {\n const { projectRoot, extensionPackageJson } = params;\n\n const packageJsonPath = `${projectRoot}/package.json`;\n\n // Load the current package.json\n const currentPackageJson = await loadJsonFileSync<Record<string, any>>(packageJsonPath);\n\n // Merge the extension's package.json into the current one\n // Use deepmerge to combine arrays and objects properly\n const mergedPackageJson = deepmerge(currentPackageJson, extensionPackageJson, {\n // For arrays, concatenate and remove duplicates\n arrayMerge: (target, source) => {\n const combined = [...target, ...source];\n return Array.from(new Set(combined));\n }\n });\n\n // Write the merged package.json back\n return writeJsonFileSync(packageJsonPath, mergedPackageJson);\n};\n"],"names":["mergePackageJson","params","projectRoot","extensionPackageJson","packageJsonPath","currentPackageJson","loadJsonFileSync","mergedPackageJson","deepmerge","target","source","combined","Array","Set","writeJsonFileSync"],"mappings":";;;AAYO,MAAMA,mBAAmB,OAAOC;IACnC,MAAM,EAAEC,WAAW,EAAEC,oBAAoB,EAAE,GAAGF;IAE9C,MAAMG,kBAAkB,GAAGF,YAAY,aAAa,CAAC;IAGrD,MAAMG,qBAAqB,MAAMC,iBAAsCF;IAIvE,MAAMG,oBAAoBC,UAAUH,oBAAoBF,sBAAsB;QAE1E,YAAY,CAACM,QAAQC;YACjB,MAAMC,WAAW;mBAAIF;mBAAWC;aAAO;YACvC,OAAOE,MAAM,IAAI,CAAC,IAAIC,IAAIF;QAC9B;IACJ;IAGA,OAAOG,kBAAkBV,iBAAiBG;AAC9C"}
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=types.js.map