@webiny/project 0.0.0-unstable.6844005670 → 0.0.0-unstable.7be00a75a9

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 (988) 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.d.ts +0 -1
  14. package/abstractions/features/DeployApp.js +2 -1
  15. package/abstractions/features/DeployApp.js.map +1 -1
  16. package/abstractions/features/DestroyApp.js +2 -1
  17. package/abstractions/features/DestroyApp.js.map +1 -1
  18. package/abstractions/features/ExportStack.js +2 -1
  19. package/abstractions/features/ExportStack.js.map +1 -1
  20. package/abstractions/features/GetApp.js +2 -1
  21. package/abstractions/features/GetApp.js.map +1 -1
  22. package/abstractions/features/GetAppOutput.js +2 -1
  23. package/abstractions/features/GetAppOutput.js.map +1 -1
  24. package/abstractions/features/GetAppStackOutput.js +2 -6
  25. package/abstractions/features/GetAppStackOutput.js.map +1 -1
  26. package/abstractions/features/GetFeatureFlags.js +2 -1
  27. package/abstractions/features/GetFeatureFlags.js.map +1 -1
  28. package/abstractions/features/GetLogger.js +2 -1
  29. package/abstractions/features/GetLogger.js.map +1 -1
  30. package/abstractions/features/GetProductionEnvironments.js +2 -1
  31. package/abstractions/features/GetProductionEnvironments.js.map +1 -1
  32. package/abstractions/features/GetProject.js +2 -1
  33. package/abstractions/features/GetProject.js.map +1 -1
  34. package/abstractions/features/GetProjectConfig.js +2 -1
  35. package/abstractions/features/GetProjectConfig.js.map +1 -1
  36. package/abstractions/features/GetProjectInfo.js +2 -1
  37. package/abstractions/features/GetProjectInfo.js.map +1 -1
  38. package/abstractions/features/GetPulumiResourceNamePrefix.js +2 -1
  39. package/abstractions/features/GetPulumiResourceNamePrefix.js.map +1 -1
  40. package/abstractions/features/InstallExtension.js +2 -1
  41. package/abstractions/features/InstallExtension.js.map +1 -1
  42. package/abstractions/features/IsCi.js +2 -1
  43. package/abstractions/features/IsCi.js.map +1 -1
  44. package/abstractions/features/IsTelemetryEnabled.js +2 -1
  45. package/abstractions/features/IsTelemetryEnabled.js.map +1 -1
  46. package/abstractions/features/IsWcpEnabled.js +2 -1
  47. package/abstractions/features/IsWcpEnabled.js.map +1 -1
  48. package/abstractions/features/IsWebinyJsRepo.js +2 -1
  49. package/abstractions/features/IsWebinyJsRepo.js.map +1 -1
  50. package/abstractions/features/RefreshApp.js +2 -1
  51. package/abstractions/features/RefreshApp.js.map +1 -1
  52. package/abstractions/features/RunPulumiCommand.js +2 -1
  53. package/abstractions/features/RunPulumiCommand.js.map +1 -1
  54. package/abstractions/features/ValidateProjectConfig.js +2 -1
  55. package/abstractions/features/ValidateProjectConfig.js.map +1 -1
  56. package/abstractions/features/Watch.js +2 -1
  57. package/abstractions/features/Watch.js.map +1 -1
  58. package/abstractions/features/hooks/AdminAfterBuild.js +2 -1
  59. package/abstractions/features/hooks/AdminAfterBuild.js.map +1 -1
  60. package/abstractions/features/hooks/AdminAfterDeploy.js +2 -1
  61. package/abstractions/features/hooks/AdminAfterDeploy.js.map +1 -1
  62. package/abstractions/features/hooks/AdminBeforeBuild.js +2 -1
  63. package/abstractions/features/hooks/AdminBeforeBuild.js.map +1 -1
  64. package/abstractions/features/hooks/AdminBeforeDeploy.js +2 -1
  65. package/abstractions/features/hooks/AdminBeforeDeploy.js.map +1 -1
  66. package/abstractions/features/hooks/AdminBeforeWatch.js +2 -1
  67. package/abstractions/features/hooks/AdminBeforeWatch.js.map +1 -1
  68. package/abstractions/features/hooks/AfterBuild.js +2 -1
  69. package/abstractions/features/hooks/AfterBuild.js.map +1 -1
  70. package/abstractions/features/hooks/AfterDeploy.js +2 -1
  71. package/abstractions/features/hooks/AfterDeploy.js.map +1 -1
  72. package/abstractions/features/hooks/ApiAfterBuild.js +2 -1
  73. package/abstractions/features/hooks/ApiAfterBuild.js.map +1 -1
  74. package/abstractions/features/hooks/ApiAfterDeploy.js +2 -1
  75. package/abstractions/features/hooks/ApiAfterDeploy.js.map +1 -1
  76. package/abstractions/features/hooks/ApiBeforeBuild.js +2 -1
  77. package/abstractions/features/hooks/ApiBeforeBuild.js.map +1 -1
  78. package/abstractions/features/hooks/ApiBeforeDeploy.js +2 -1
  79. package/abstractions/features/hooks/ApiBeforeDeploy.js.map +1 -1
  80. package/abstractions/features/hooks/ApiBeforeWatch.js +2 -1
  81. package/abstractions/features/hooks/ApiBeforeWatch.js.map +1 -1
  82. package/abstractions/features/hooks/BeforeBuild.js +2 -1
  83. package/abstractions/features/hooks/BeforeBuild.js.map +1 -1
  84. package/abstractions/features/hooks/BeforeDeploy.js +2 -1
  85. package/abstractions/features/hooks/BeforeDeploy.js.map +1 -1
  86. package/abstractions/features/hooks/BeforeWatch.js +2 -1
  87. package/abstractions/features/hooks/BeforeWatch.js.map +1 -1
  88. package/abstractions/features/hooks/CoreAfterBuild.js +2 -1
  89. package/abstractions/features/hooks/CoreAfterBuild.js.map +1 -1
  90. package/abstractions/features/hooks/CoreAfterDeploy.js +2 -1
  91. package/abstractions/features/hooks/CoreAfterDeploy.js.map +1 -1
  92. package/abstractions/features/hooks/CoreBeforeBuild.js +2 -1
  93. package/abstractions/features/hooks/CoreBeforeBuild.js.map +1 -1
  94. package/abstractions/features/hooks/CoreBeforeDeploy.js +2 -1
  95. package/abstractions/features/hooks/CoreBeforeDeploy.js.map +1 -1
  96. package/abstractions/features/hooks/CoreBeforeWatch.js +2 -1
  97. package/abstractions/features/hooks/CoreBeforeWatch.js.map +1 -1
  98. package/abstractions/features/hooks/index.js +0 -2
  99. package/abstractions/features/index.d.ts +0 -1
  100. package/abstractions/features/index.js +0 -3
  101. package/abstractions/index.js +0 -2
  102. package/abstractions/models/IAppModel.js +0 -3
  103. package/abstractions/models/IAppPackageModel.js +0 -3
  104. package/abstractions/models/IPathModel.js +0 -3
  105. package/abstractions/models/IProjectConfigDto.js +0 -3
  106. package/abstractions/models/IProjectConfigModel.js +0 -3
  107. package/abstractions/models/IProjectModel.js +0 -3
  108. package/abstractions/models/IUrlModel.js +0 -3
  109. package/abstractions/models/IWcpEnvironmentDto.js +0 -3
  110. package/abstractions/models/IWcpEnvironmentModel.js +0 -3
  111. package/abstractions/models/IWcpUserDto.js +0 -3
  112. package/abstractions/models/IWcpUserModel.js +0 -3
  113. package/abstractions/models/IWcpUserPatDto.js +0 -3
  114. package/abstractions/models/IWcpUserPatModel.js +0 -3
  115. package/abstractions/models/PackagesBuilder/IPackagesBuilder.js +0 -3
  116. package/abstractions/models/PackagesBuilder/IRunnableBuildProcess.js +0 -3
  117. package/abstractions/models/PackagesBuilder/IRunnableBuildProcesses.js +0 -3
  118. package/abstractions/models/PackagesBuilder/index.js +0 -3
  119. package/abstractions/models/index.js +0 -3
  120. package/abstractions/services/BuildAppWorkspaceService.js +2 -1
  121. package/abstractions/services/BuildAppWorkspaceService.js.map +1 -1
  122. package/abstractions/services/BuildProjectWorkspaceService.js +2 -1
  123. package/abstractions/services/BuildProjectWorkspaceService.js.map +1 -1
  124. package/abstractions/services/GetAppPackagesService.js +2 -1
  125. package/abstractions/services/GetAppPackagesService.js.map +1 -1
  126. package/abstractions/services/GetAppService.js +2 -1
  127. package/abstractions/services/GetAppService.js.map +1 -1
  128. package/abstractions/services/GetCwdService.js +2 -1
  129. package/abstractions/services/GetCwdService.js.map +1 -1
  130. package/abstractions/services/GetProjectConfigService.js +2 -1
  131. package/abstractions/services/GetProjectConfigService.js.map +1 -1
  132. package/abstractions/services/GetProjectIdService.js +2 -1
  133. package/abstractions/services/GetProjectIdService.js.map +1 -1
  134. package/abstractions/services/GetProjectService.js +2 -1
  135. package/abstractions/services/GetProjectService.js.map +1 -1
  136. package/abstractions/services/GetProjectVersionService.js +2 -1
  137. package/abstractions/services/GetProjectVersionService.js.map +1 -1
  138. package/abstractions/services/GetPulumiService.js +2 -1
  139. package/abstractions/services/GetPulumiService.js.map +1 -1
  140. package/abstractions/services/InitProjectSdkService.js +2 -1
  141. package/abstractions/services/InitProjectSdkService.js.map +1 -1
  142. package/abstractions/services/InstallExtensionService.js +2 -1
  143. package/abstractions/services/InstallExtensionService.js.map +1 -1
  144. package/abstractions/services/IsRemotePulumiBackendService.js +2 -1
  145. package/abstractions/services/IsRemotePulumiBackendService.js.map +1 -1
  146. package/abstractions/services/ListAppLambdaFunctionsService.js +2 -1
  147. package/abstractions/services/ListAppLambdaFunctionsService.js.map +1 -1
  148. package/abstractions/services/ListDeployedEnvironmentsService.js +2 -1
  149. package/abstractions/services/ListDeployedEnvironmentsService.js.map +1 -1
  150. package/abstractions/services/ListPackagesInAppWorkspaceService.js +2 -1
  151. package/abstractions/services/ListPackagesInAppWorkspaceService.js.map +1 -1
  152. package/abstractions/services/ListPackagesService.js +2 -1
  153. package/abstractions/services/ListPackagesService.js.map +1 -1
  154. package/abstractions/services/LoadEnvVarsService.js +2 -1
  155. package/abstractions/services/LoadEnvVarsService.js.map +1 -1
  156. package/abstractions/services/LocalStorageService.js +2 -1
  157. package/abstractions/services/LocalStorageService.js.map +1 -1
  158. package/abstractions/services/LoggerService.js +2 -1
  159. package/abstractions/services/LoggerService.js.map +1 -1
  160. package/abstractions/services/ProjectInfoService/GetIsCiService.js +2 -1
  161. package/abstractions/services/ProjectInfoService/GetIsCiService.js.map +1 -1
  162. package/abstractions/services/ProjectInfoService/GetNpmVersionService.js +2 -1
  163. package/abstractions/services/ProjectInfoService/GetNpmVersionService.js.map +1 -1
  164. package/abstractions/services/ProjectInfoService/GetNpxVersionService.js +2 -1
  165. package/abstractions/services/ProjectInfoService/GetNpxVersionService.js.map +1 -1
  166. package/abstractions/services/ProjectInfoService/GetPulumiVersionService.js +2 -1
  167. package/abstractions/services/ProjectInfoService/GetPulumiVersionService.js.map +1 -1
  168. package/abstractions/services/ProjectInfoService/GetYarnVersionService.js +2 -1
  169. package/abstractions/services/ProjectInfoService/GetYarnVersionService.js.map +1 -1
  170. package/abstractions/services/ProjectInfoService/ProjectInfoService.js +2 -1
  171. package/abstractions/services/ProjectInfoService/ProjectInfoService.js.map +1 -1
  172. package/abstractions/services/ProjectInfoService/index.js +0 -2
  173. package/abstractions/services/ProjectSdkParamsService.js +2 -1
  174. package/abstractions/services/ProjectSdkParamsService.js.map +1 -1
  175. package/abstractions/services/PulumiExportService.js +3 -4
  176. package/abstractions/services/PulumiExportService.js.map +1 -1
  177. package/abstractions/services/PulumiGetConfigPassphraseService.js +2 -1
  178. package/abstractions/services/PulumiGetConfigPassphraseService.js.map +1 -1
  179. package/abstractions/services/PulumiGetSecretsProviderService.js +2 -1
  180. package/abstractions/services/PulumiGetSecretsProviderService.js.map +1 -1
  181. package/abstractions/services/PulumiGetStackOutputService.js +2 -1
  182. package/abstractions/services/PulumiGetStackOutputService.js.map +1 -1
  183. package/abstractions/services/PulumiImportService.js +2 -1
  184. package/abstractions/services/PulumiImportService.js.map +1 -1
  185. package/abstractions/services/PulumiLoginService.js +2 -1
  186. package/abstractions/services/PulumiLoginService.js.map +1 -1
  187. package/abstractions/services/PulumiSelectStackService.js +2 -1
  188. package/abstractions/services/PulumiSelectStackService.js.map +1 -1
  189. package/abstractions/services/SetProjectIdService.js +2 -1
  190. package/abstractions/services/SetProjectIdService.js.map +1 -1
  191. package/abstractions/services/StdioService.js +2 -1
  192. package/abstractions/services/StdioService.js.map +1 -1
  193. package/abstractions/services/UiService.js +2 -1
  194. package/abstractions/services/UiService.js.map +1 -1
  195. package/abstractions/services/ValidateProjectConfigService.js +2 -1
  196. package/abstractions/services/ValidateProjectConfigService.js.map +1 -1
  197. package/abstractions/services/WatchedLambdaFunctionsService.js +2 -1
  198. package/abstractions/services/WatchedLambdaFunctionsService.js.map +1 -1
  199. package/abstractions/services/WcpService.js +2 -1
  200. package/abstractions/services/WcpService.js.map +1 -1
  201. package/abstractions/services/index.js +0 -2
  202. package/abstractions/types.js +0 -3
  203. package/components/Wcp.js +27 -38
  204. package/components/Wcp.js.map +1 -1
  205. package/createProjectSdkContainer.js +103 -112
  206. package/createProjectSdkContainer.js.map +1 -1
  207. package/decorators/BuildAppWithHooks.js +54 -44
  208. package/decorators/BuildAppWithHooks.js.map +1 -1
  209. package/decorators/DeployAppClearWatchedLambdaFunctions.js +27 -29
  210. package/decorators/DeployAppClearWatchedLambdaFunctions.js.map +1 -1
  211. package/decorators/DeployAppRefreshStackOutputCache.js +26 -30
  212. package/decorators/DeployAppRefreshStackOutputCache.js.map +1 -1
  213. package/decorators/DeployAppWithHooks.js +51 -41
  214. package/decorators/DeployAppWithHooks.js.map +1 -1
  215. package/decorators/DeployAppWithWatchedLambdaReplacement.js +33 -37
  216. package/decorators/DeployAppWithWatchedLambdaReplacement.js.map +1 -1
  217. package/decorators/GetFeatureFlagsWithLicense.js +36 -57
  218. package/decorators/GetFeatureFlagsWithLicense.js.map +1 -1
  219. package/decorators/GetPulumiServiceWithDownloadInfo.js +21 -19
  220. package/decorators/GetPulumiServiceWithDownloadInfo.js.map +1 -1
  221. package/decorators/WatchWithHooks.js +30 -27
  222. package/decorators/WatchWithHooks.js.map +1 -1
  223. package/decorators/index.js +0 -2
  224. package/defineExtension/createExtensionDefinition.js +12 -19
  225. package/defineExtension/createExtensionDefinition.js.map +1 -1
  226. package/defineExtension/createExtensionReactComponent.js +40 -46
  227. package/defineExtension/createExtensionReactComponent.js.map +1 -1
  228. package/defineExtension/defineExtension.js +8 -9
  229. package/defineExtension/defineExtension.js.map +1 -1
  230. package/defineExtension/index.js +0 -2
  231. package/defineExtension/models/ExtensionDefinitionModel.d.ts +4 -4
  232. package/defineExtension/models/ExtensionDefinitionModel.js +11 -10
  233. package/defineExtension/models/ExtensionDefinitionModel.js.map +1 -1
  234. package/defineExtension/models/ExtensionInstanceModel.js +23 -21
  235. package/defineExtension/models/ExtensionInstanceModel.js.map +1 -1
  236. package/defineExtension/models/index.js +0 -2
  237. package/defineExtension/types.js +0 -3
  238. package/defineExtension/zodTypes/zodSrcPath.d.ts +1 -1
  239. package/defineExtension/zodTypes/zodSrcPath.js +36 -51
  240. package/defineExtension/zodTypes/zodSrcPath.js.map +1 -1
  241. package/exports/infra/admin.d.ts +0 -1
  242. package/exports/infra/admin.js +0 -3
  243. package/exports/infra/api.d.ts +0 -1
  244. package/exports/infra/api.js +0 -3
  245. package/exports/infra/core.d.ts +0 -1
  246. package/exports/infra/core.js +0 -3
  247. package/exports/infra.d.ts +8 -0
  248. package/exports/infra.js +8 -0
  249. package/extensions/AdminBuildParam.d.ts +2 -8
  250. package/extensions/AdminBuildParam.js +105 -147
  251. package/extensions/AdminBuildParam.js.map +1 -1
  252. package/extensions/AdminExtension.d.ts +2 -8
  253. package/extensions/AdminExtension.js +65 -91
  254. package/extensions/AdminExtension.js.map +1 -1
  255. package/extensions/ApiBuildParam.d.ts +2 -8
  256. package/extensions/ApiBuildParam.js +71 -97
  257. package/extensions/ApiBuildParam.js.map +1 -1
  258. package/extensions/ApiExtension.d.ts +2 -8
  259. package/extensions/ApiExtension.js +72 -93
  260. package/extensions/ApiExtension.js.map +1 -1
  261. package/extensions/ApiMaxBundleSize.d.ts +4 -0
  262. package/extensions/ApiMaxBundleSize.js +23 -0
  263. package/extensions/ApiMaxBundleSize.js.map +1 -0
  264. package/extensions/DatabaseSetup.d.ts +7 -7
  265. package/extensions/DatabaseSetup.js +14 -9
  266. package/extensions/DatabaseSetup.js.map +1 -1
  267. package/extensions/EnvVar.d.ts +4 -7
  268. package/extensions/EnvVar.js +12 -12
  269. package/extensions/EnvVar.js.map +1 -1
  270. package/extensions/ExtensionDefinitions.d.ts +1 -5
  271. package/extensions/ExtensionDefinitions.js +11 -10
  272. package/extensions/ExtensionDefinitions.js.map +1 -1
  273. package/extensions/FeatureFlags.d.ts +17 -79
  274. package/extensions/FeatureFlags.js +47 -36
  275. package/extensions/FeatureFlags.js.map +1 -1
  276. package/extensions/Project/EnsureApiDeployedBeforeAdminBuild.js +21 -22
  277. package/extensions/Project/EnsureApiDeployedBeforeAdminBuild.js.map +1 -1
  278. package/extensions/Project/EnsureApiDeployedBeforeAdminWatch.js +21 -22
  279. package/extensions/Project/EnsureApiDeployedBeforeAdminWatch.js.map +1 -1
  280. package/extensions/Project/EnsureApiDeployedBeforeWatch.js +21 -22
  281. package/extensions/Project/EnsureApiDeployedBeforeWatch.js.map +1 -1
  282. package/extensions/Project/EnsureCoreDeployedBeforeApiDeploy.js +23 -26
  283. package/extensions/Project/EnsureCoreDeployedBeforeApiDeploy.js.map +1 -1
  284. package/extensions/Project/EnsureTelemetryEnabledForOss.js +26 -29
  285. package/extensions/Project/EnsureTelemetryEnabledForOss.js.map +1 -1
  286. package/extensions/Project/SetAdminAppEnvVarsBeforeBuild.js +29 -34
  287. package/extensions/Project/SetAdminAppEnvVarsBeforeBuild.js.map +1 -1
  288. package/extensions/Project/SetAdminAppEnvVarsBeforeWatch.js +30 -35
  289. package/extensions/Project/SetAdminAppEnvVarsBeforeWatch.js.map +1 -1
  290. package/extensions/Project/ShowConfigChangeInfoBeforeAdminWatch.js +12 -9
  291. package/extensions/Project/ShowConfigChangeInfoBeforeAdminWatch.js.map +1 -1
  292. package/extensions/Project/ShowConfigChangeInfoBeforeApiWatch.js +12 -9
  293. package/extensions/Project/ShowConfigChangeInfoBeforeApiWatch.js.map +1 -1
  294. package/extensions/Project/TelemetryNoLongerNewUser.js +7 -7
  295. package/extensions/Project/TelemetryNoLongerNewUser.js.map +1 -1
  296. package/extensions/Project/ValidateEncryptionBeforeDeploy.d.ts +12 -0
  297. package/extensions/Project/ValidateEncryptionBeforeDeploy.js +31 -0
  298. package/extensions/Project/ValidateEncryptionBeforeDeploy.js.map +1 -0
  299. package/extensions/Project/ValidateProductionPulumiState.js +26 -29
  300. package/extensions/Project/ValidateProductionPulumiState.js.map +1 -1
  301. package/extensions/Project/WcpInjectTelemetryClientAfterBuild.js +46 -51
  302. package/extensions/Project/WcpInjectTelemetryClientAfterBuild.js.map +1 -1
  303. package/extensions/Project.js +29 -28
  304. package/extensions/Project.js.map +1 -1
  305. package/extensions/ProjectDecorator.d.ts +3 -7
  306. package/extensions/ProjectDecorator.js +13 -16
  307. package/extensions/ProjectDecorator.js.map +1 -1
  308. package/extensions/ProjectId.d.ts +3 -7
  309. package/extensions/ProjectId.js +11 -13
  310. package/extensions/ProjectId.js.map +1 -1
  311. package/extensions/ProjectImplementation.d.ts +3 -9
  312. package/extensions/ProjectImplementation.js +14 -17
  313. package/extensions/ProjectImplementation.js.map +1 -1
  314. package/extensions/Telemetry.d.ts +2 -6
  315. package/extensions/Telemetry.js +10 -9
  316. package/extensions/Telemetry.js.map +1 -1
  317. package/extensions/hooks/AdminAfterBuild.d.ts +2 -6
  318. package/extensions/hooks/AdminAfterBuild.js +16 -19
  319. package/extensions/hooks/AdminAfterBuild.js.map +1 -1
  320. package/extensions/hooks/AdminAfterDeploy.d.ts +2 -6
  321. package/extensions/hooks/AdminAfterDeploy.js +16 -19
  322. package/extensions/hooks/AdminAfterDeploy.js.map +1 -1
  323. package/extensions/hooks/AdminBeforeBuild.d.ts +2 -6
  324. package/extensions/hooks/AdminBeforeBuild.js +16 -19
  325. package/extensions/hooks/AdminBeforeBuild.js.map +1 -1
  326. package/extensions/hooks/AdminBeforeDeploy.d.ts +2 -6
  327. package/extensions/hooks/AdminBeforeDeploy.js +16 -19
  328. package/extensions/hooks/AdminBeforeDeploy.js.map +1 -1
  329. package/extensions/hooks/AdminBeforeWatch.d.ts +2 -6
  330. package/extensions/hooks/AdminBeforeWatch.js +16 -19
  331. package/extensions/hooks/AdminBeforeWatch.js.map +1 -1
  332. package/extensions/hooks/AfterBuild.d.ts +2 -6
  333. package/extensions/hooks/AfterBuild.js +15 -18
  334. package/extensions/hooks/AfterBuild.js.map +1 -1
  335. package/extensions/hooks/AfterDeploy.d.ts +2 -6
  336. package/extensions/hooks/AfterDeploy.js +15 -18
  337. package/extensions/hooks/AfterDeploy.js.map +1 -1
  338. package/extensions/hooks/ApiAfterBuild.d.ts +2 -6
  339. package/extensions/hooks/ApiAfterBuild.js +16 -19
  340. package/extensions/hooks/ApiAfterBuild.js.map +1 -1
  341. package/extensions/hooks/ApiAfterDeploy.d.ts +2 -6
  342. package/extensions/hooks/ApiAfterDeploy.js +16 -19
  343. package/extensions/hooks/ApiAfterDeploy.js.map +1 -1
  344. package/extensions/hooks/ApiBeforeBuild.d.ts +2 -6
  345. package/extensions/hooks/ApiBeforeBuild.js +16 -19
  346. package/extensions/hooks/ApiBeforeBuild.js.map +1 -1
  347. package/extensions/hooks/ApiBeforeDeploy.d.ts +2 -6
  348. package/extensions/hooks/ApiBeforeDeploy.js +16 -19
  349. package/extensions/hooks/ApiBeforeDeploy.js.map +1 -1
  350. package/extensions/hooks/ApiBeforeWatch.d.ts +2 -6
  351. package/extensions/hooks/ApiBeforeWatch.js +16 -19
  352. package/extensions/hooks/ApiBeforeWatch.js.map +1 -1
  353. package/extensions/hooks/BeforeBuild.d.ts +2 -6
  354. package/extensions/hooks/BeforeBuild.js +15 -18
  355. package/extensions/hooks/BeforeBuild.js.map +1 -1
  356. package/extensions/hooks/BeforeDeploy.d.ts +2 -6
  357. package/extensions/hooks/BeforeDeploy.js +15 -18
  358. package/extensions/hooks/BeforeDeploy.js.map +1 -1
  359. package/extensions/hooks/BeforeWatch.d.ts +2 -6
  360. package/extensions/hooks/BeforeWatch.js +15 -18
  361. package/extensions/hooks/BeforeWatch.js.map +1 -1
  362. package/extensions/hooks/CoreAfterBuild.d.ts +2 -6
  363. package/extensions/hooks/CoreAfterBuild.js +16 -19
  364. package/extensions/hooks/CoreAfterBuild.js.map +1 -1
  365. package/extensions/hooks/CoreAfterDeploy.d.ts +2 -6
  366. package/extensions/hooks/CoreAfterDeploy.js +16 -19
  367. package/extensions/hooks/CoreAfterDeploy.js.map +1 -1
  368. package/extensions/hooks/CoreBeforeBuild.d.ts +2 -6
  369. package/extensions/hooks/CoreBeforeBuild.js +16 -19
  370. package/extensions/hooks/CoreBeforeBuild.js.map +1 -1
  371. package/extensions/hooks/CoreBeforeDeploy.d.ts +2 -6
  372. package/extensions/hooks/CoreBeforeDeploy.js +16 -19
  373. package/extensions/hooks/CoreBeforeDeploy.js.map +1 -1
  374. package/extensions/hooks/CoreBeforeWatch.d.ts +2 -6
  375. package/extensions/hooks/CoreBeforeWatch.js +16 -19
  376. package/extensions/hooks/CoreBeforeWatch.js.map +1 -1
  377. package/extensions/hooks/index.js +0 -2
  378. package/extensions/index.d.ts +42 -145
  379. package/extensions/index.js +45 -60
  380. package/extensions/index.js.map +1 -1
  381. package/extensions/infra/Ci.d.ts +14 -0
  382. package/extensions/infra/Ci.js +13 -0
  383. package/extensions/infra/Ci.js.map +1 -0
  384. package/extensions/infra/Env.d.ts +6 -0
  385. package/extensions/infra/Env.js +38 -74
  386. package/extensions/infra/Env.js.map +1 -1
  387. package/extensions/infra/index.d.ts +1 -0
  388. package/extensions/infra/index.js +1 -2
  389. package/extensions/pulumi/AdminStackOutputValue.d.ts +1 -7
  390. package/extensions/pulumi/AdminStackOutputValue.js +13 -12
  391. package/extensions/pulumi/AdminStackOutputValue.js.map +1 -1
  392. package/extensions/pulumi/ApiStackOutputValue.d.ts +1 -7
  393. package/extensions/pulumi/ApiStackOutputValue.js +13 -12
  394. package/extensions/pulumi/ApiStackOutputValue.js.map +1 -1
  395. package/extensions/pulumi/CoreStackOutputValue.d.ts +1 -7
  396. package/extensions/pulumi/CoreStackOutputValue.js +13 -12
  397. package/extensions/pulumi/CoreStackOutputValue.js.map +1 -1
  398. package/extensions/pulumi/ProductionEnvironments.d.ts +2 -6
  399. package/extensions/pulumi/ProductionEnvironments.js +31 -26
  400. package/extensions/pulumi/ProductionEnvironments.js.map +1 -1
  401. package/extensions/pulumi/PulumiResourceNamePrefix.d.ts +1 -5
  402. package/extensions/pulumi/PulumiResourceNamePrefix.js +10 -9
  403. package/extensions/pulumi/PulumiResourceNamePrefix.js.map +1 -1
  404. package/extensions/pulumi/index.d.ts +0 -3
  405. package/extensions/pulumi/index.js +0 -5
  406. package/features/BuildApp/BuildApp.js +49 -40
  407. package/features/BuildApp/BuildApp.js.map +1 -1
  408. package/features/BuildApp/PackagesBuilder/PackagesBuilder.js +34 -39
  409. package/features/BuildApp/PackagesBuilder/PackagesBuilder.js.map +1 -1
  410. package/features/BuildApp/PackagesBuilder/RunnableBuildProcess.js +39 -33
  411. package/features/BuildApp/PackagesBuilder/RunnableBuildProcess.js.map +1 -1
  412. package/features/BuildApp/PackagesBuilder/RunnableBuildProcesses.js +39 -46
  413. package/features/BuildApp/PackagesBuilder/RunnableBuildProcesses.js.map +1 -1
  414. package/features/BuildApp/PackagesBuilder/worker.js +27 -35
  415. package/features/BuildApp/PackagesBuilder/worker.js.map +1 -1
  416. package/features/BuildApp/index.js +0 -2
  417. package/features/DeployApp/DeployApp.js +79 -79
  418. package/features/DeployApp/DeployApp.js.map +1 -1
  419. package/features/DeployApp/index.js +0 -2
  420. package/features/DestroyApp/DestroyApp.js +60 -46
  421. package/features/DestroyApp/DestroyApp.js.map +1 -1
  422. package/features/DestroyApp/index.js +0 -2
  423. package/features/ExportStack/ExportStack.js +21 -16
  424. package/features/ExportStack/ExportStack.js.map +1 -1
  425. package/features/ExportStack/index.js +0 -2
  426. package/features/GetApp/GetApp.js +14 -11
  427. package/features/GetApp/GetApp.js.map +1 -1
  428. package/features/GetApp/index.js +0 -2
  429. package/features/GetAppOutput/GetAppOutput.js +44 -33
  430. package/features/GetAppOutput/GetAppOutput.js.map +1 -1
  431. package/features/GetAppOutput/index.js +0 -2
  432. package/features/GetAppStackOutput/GetAppStackOutput.js +20 -15
  433. package/features/GetAppStackOutput/GetAppStackOutput.js.map +1 -1
  434. package/features/GetAppStackOutput/index.js +0 -2
  435. package/features/GetFeatureFlags/GetFeatureFlags.d.ts +1 -2
  436. package/features/GetFeatureFlags/GetFeatureFlags.js +21 -21
  437. package/features/GetFeatureFlags/GetFeatureFlags.js.map +1 -1
  438. package/features/GetFeatureFlags/index.js +0 -2
  439. package/features/GetLogger/GetLogger.js +14 -11
  440. package/features/GetLogger/GetLogger.js.map +1 -1
  441. package/features/GetLogger/index.js +0 -2
  442. package/features/GetProductionEnvironments/GetProductionEnvironments.js +24 -19
  443. package/features/GetProductionEnvironments/GetProductionEnvironments.js.map +1 -1
  444. package/features/GetProductionEnvironments/index.js +0 -2
  445. package/features/GetProject/GetProject.js +14 -11
  446. package/features/GetProject/GetProject.js.map +1 -1
  447. package/features/GetProject/index.js +0 -2
  448. package/features/GetProjectConfig/GetProjectConfig.js +14 -11
  449. package/features/GetProjectConfig/GetProjectConfig.js.map +1 -1
  450. package/features/GetProjectConfig/index.js +0 -2
  451. package/features/GetProjectInfo/GetProjectInfo.js +14 -11
  452. package/features/GetProjectInfo/GetProjectInfo.js.map +1 -1
  453. package/features/GetProjectInfo/index.js +0 -2
  454. package/features/GetPulumiResourceNamePrefix/GetPulumiResourceNamePrefix.js +18 -17
  455. package/features/GetPulumiResourceNamePrefix/GetPulumiResourceNamePrefix.js.map +1 -1
  456. package/features/GetPulumiResourceNamePrefix/index.js +0 -2
  457. package/features/InstallExtension/InstallExtension.js +14 -11
  458. package/features/InstallExtension/InstallExtension.js.map +1 -1
  459. package/features/InstallExtension/index.js +0 -2
  460. package/features/IsCi/IsCi.js +14 -11
  461. package/features/IsCi/IsCi.js.map +1 -1
  462. package/features/IsCi/index.js +0 -2
  463. package/features/IsTelemetryEnabled/IsTelemetryEnabled.js +19 -18
  464. package/features/IsTelemetryEnabled/IsTelemetryEnabled.js.map +1 -1
  465. package/features/IsTelemetryEnabled/index.js +0 -2
  466. package/features/IsWcpEnabled/IsWcpEnabled.js +15 -12
  467. package/features/IsWcpEnabled/IsWcpEnabled.js.map +1 -1
  468. package/features/IsWcpEnabled/index.js +0 -2
  469. package/features/IsWebinyJsRepo/IsWebinyJsRepo.js +17 -14
  470. package/features/IsWebinyJsRepo/IsWebinyJsRepo.js.map +1 -1
  471. package/features/IsWebinyJsRepo/index.js +0 -2
  472. package/features/RefreshApp/RefreshApp.js +57 -46
  473. package/features/RefreshApp/RefreshApp.js.map +1 -1
  474. package/features/RefreshApp/index.js +0 -2
  475. package/features/RunPulumiCommand/RunPulumiCommand.js +54 -43
  476. package/features/RunPulumiCommand/RunPulumiCommand.js.map +1 -1
  477. package/features/RunPulumiCommand/index.js +0 -2
  478. package/features/ValidateProjectConfig/ValidateProjectConfig.js +14 -11
  479. package/features/ValidateProjectConfig/ValidateProjectConfig.js.map +1 -1
  480. package/features/ValidateProjectConfig/index.js +0 -2
  481. package/features/Watch/Watch.js +178 -181
  482. package/features/Watch/Watch.js.map +1 -1
  483. package/features/Watch/getIotEndpoint.js +14 -12
  484. package/features/Watch/getIotEndpoint.js.map +1 -1
  485. package/features/Watch/index.js +0 -2
  486. package/features/Watch/initInvocationForwarding.d.ts +1 -1
  487. package/features/Watch/initInvocationForwarding.js +77 -96
  488. package/features/Watch/initInvocationForwarding.js.map +1 -1
  489. package/features/Watch/localInvocationWorker.js +25 -30
  490. package/features/Watch/localInvocationWorker.js.map +1 -1
  491. package/features/Watch/replaceLambdaFunctions.js +61 -84
  492. package/features/Watch/replaceLambdaFunctions.js.map +1 -1
  493. package/features/Watch/watchers/BasePackagesWatcher.js +10 -13
  494. package/features/Watch/watchers/BasePackagesWatcher.js.map +1 -1
  495. package/features/Watch/watchers/MultiplePackagesWatcher.js +11 -12
  496. package/features/Watch/watchers/MultiplePackagesWatcher.js.map +1 -1
  497. package/features/Watch/watchers/PackagesWatcher.js +15 -18
  498. package/features/Watch/watchers/PackagesWatcher.js.map +1 -1
  499. package/features/Watch/watchers/RunnableWatchProcess.js +41 -40
  500. package/features/Watch/watchers/RunnableWatchProcess.js.map +1 -1
  501. package/features/Watch/watchers/RunnableWatchProcesses.js +35 -34
  502. package/features/Watch/watchers/RunnableWatchProcesses.js.map +1 -1
  503. package/features/Watch/watchers/SinglePackageWatcher.js +11 -8
  504. package/features/Watch/watchers/SinglePackageWatcher.js.map +1 -1
  505. package/features/Watch/watchers/WebinyConfigWatcher.js +30 -40
  506. package/features/Watch/watchers/WebinyConfigWatcher.js.map +1 -1
  507. package/features/Watch/watchers/ZeroPackagesWatcher.js +5 -5
  508. package/features/Watch/watchers/ZeroPackagesWatcher.js.map +1 -1
  509. package/features/Watch/watchers/utils/measureDuration.js +7 -8
  510. package/features/Watch/watchers/utils/measureDuration.js.map +1 -1
  511. package/features/Watch/watchers/worker.js +12 -21
  512. package/features/Watch/watchers/worker.js.map +1 -1
  513. package/features/hooks/AdminAfterBuild/AdminBeforeBuild.js +19 -15
  514. package/features/hooks/AdminAfterBuild/AdminBeforeBuild.js.map +1 -1
  515. package/features/hooks/AdminAfterBuild/index.js +0 -2
  516. package/features/hooks/AdminAfterDeploy/AdminBeforeBuild.js +19 -15
  517. package/features/hooks/AdminAfterDeploy/AdminBeforeBuild.js.map +1 -1
  518. package/features/hooks/AdminAfterDeploy/index.js +0 -2
  519. package/features/hooks/AdminBeforeBuild/AdminBeforeBuild.js +19 -15
  520. package/features/hooks/AdminBeforeBuild/AdminBeforeBuild.js.map +1 -1
  521. package/features/hooks/AdminBeforeBuild/index.js +0 -2
  522. package/features/hooks/AdminBeforeDeploy/AdminBeforeDeploy.js +19 -15
  523. package/features/hooks/AdminBeforeDeploy/AdminBeforeDeploy.js.map +1 -1
  524. package/features/hooks/AdminBeforeDeploy/index.js +0 -2
  525. package/features/hooks/AdminBeforeWatch/AdminBeforeWatch.js +18 -14
  526. package/features/hooks/AdminBeforeWatch/AdminBeforeWatch.js.map +1 -1
  527. package/features/hooks/AdminBeforeWatch/index.js +0 -2
  528. package/features/hooks/AfterBuild/AfterBuild.js +19 -15
  529. package/features/hooks/AfterBuild/AfterBuild.js.map +1 -1
  530. package/features/hooks/AfterBuild/index.js +0 -2
  531. package/features/hooks/AfterDeploy/AfterDeploy.js +19 -15
  532. package/features/hooks/AfterDeploy/AfterDeploy.js.map +1 -1
  533. package/features/hooks/AfterDeploy/index.js +0 -2
  534. package/features/hooks/ApiAfterBuild/ApiBeforeBuild.js +18 -14
  535. package/features/hooks/ApiAfterBuild/ApiBeforeBuild.js.map +1 -1
  536. package/features/hooks/ApiAfterBuild/index.js +0 -2
  537. package/features/hooks/ApiAfterDeploy/ApiBeforeBuild.js +18 -14
  538. package/features/hooks/ApiAfterDeploy/ApiBeforeBuild.js.map +1 -1
  539. package/features/hooks/ApiAfterDeploy/index.js +0 -2
  540. package/features/hooks/ApiBeforeBuild/ApiBeforeBuild.js +18 -14
  541. package/features/hooks/ApiBeforeBuild/ApiBeforeBuild.js.map +1 -1
  542. package/features/hooks/ApiBeforeBuild/index.js +0 -2
  543. package/features/hooks/ApiBeforeDeploy/ApiBeforeDeploy.js +18 -14
  544. package/features/hooks/ApiBeforeDeploy/ApiBeforeDeploy.js.map +1 -1
  545. package/features/hooks/ApiBeforeDeploy/index.js +0 -2
  546. package/features/hooks/ApiBeforeWatch/ApiBeforeWatch.js +18 -14
  547. package/features/hooks/ApiBeforeWatch/ApiBeforeWatch.js.map +1 -1
  548. package/features/hooks/ApiBeforeWatch/index.js +0 -2
  549. package/features/hooks/BeforeBuild/BeforeBuild.js +19 -15
  550. package/features/hooks/BeforeBuild/BeforeBuild.js.map +1 -1
  551. package/features/hooks/BeforeBuild/index.js +0 -2
  552. package/features/hooks/BeforeDeploy/BeforeDeploy.js +19 -15
  553. package/features/hooks/BeforeDeploy/BeforeDeploy.js.map +1 -1
  554. package/features/hooks/BeforeDeploy/index.js +0 -2
  555. package/features/hooks/BeforeWatch/BeforeWatch.js +19 -15
  556. package/features/hooks/BeforeWatch/BeforeWatch.js.map +1 -1
  557. package/features/hooks/BeforeWatch/index.js +0 -2
  558. package/features/hooks/CoreAfterBuild/CoreBeforeBuild.js +18 -14
  559. package/features/hooks/CoreAfterBuild/CoreBeforeBuild.js.map +1 -1
  560. package/features/hooks/CoreAfterBuild/index.js +0 -2
  561. package/features/hooks/CoreAfterDeploy/CoreBeforeBuild.js +18 -14
  562. package/features/hooks/CoreAfterDeploy/CoreBeforeBuild.js.map +1 -1
  563. package/features/hooks/CoreAfterDeploy/index.js +0 -2
  564. package/features/hooks/CoreBeforeBuild/CoreBeforeBuild.js +18 -14
  565. package/features/hooks/CoreBeforeBuild/CoreBeforeBuild.js.map +1 -1
  566. package/features/hooks/CoreBeforeBuild/index.js +0 -2
  567. package/features/hooks/CoreBeforeDeploy/CoreBeforeDeploy.js +18 -14
  568. package/features/hooks/CoreBeforeDeploy/CoreBeforeDeploy.js.map +1 -1
  569. package/features/hooks/CoreBeforeDeploy/index.js +0 -2
  570. package/features/hooks/CoreBeforeWatch/CoreBeforeWatch.js +18 -14
  571. package/features/hooks/CoreBeforeWatch/CoreBeforeWatch.js.map +1 -1
  572. package/features/hooks/CoreBeforeWatch/index.js +0 -2
  573. package/features/hooks/index.js +0 -2
  574. package/features/index.d.ts +0 -1
  575. package/features/index.js +0 -3
  576. package/index.d.ts +1 -0
  577. package/index.js +6 -10
  578. package/index.js.map +1 -1
  579. package/models/AppModel.js +20 -19
  580. package/models/AppModel.js.map +1 -1
  581. package/models/AppPackageModel.js +10 -9
  582. package/models/AppPackageModel.js.map +1 -1
  583. package/models/PathModel.js +23 -26
  584. package/models/PathModel.js.map +1 -1
  585. package/models/ProjectConfigModel.js +12 -16
  586. package/models/ProjectConfigModel.js.map +1 -1
  587. package/models/ProjectModel.js +37 -36
  588. package/models/ProjectModel.js.map +1 -1
  589. package/models/UrlModel.js +23 -23
  590. package/models/UrlModel.js.map +1 -1
  591. package/models/WcpEnvironmentModel.js +23 -22
  592. package/models/WcpEnvironmentModel.js.map +1 -1
  593. package/models/WcpUserModel.js +13 -12
  594. package/models/WcpUserModel.js.map +1 -1
  595. package/models/WcpUserPatModel.js +12 -11
  596. package/models/WcpUserPatModel.js.map +1 -1
  597. package/models/index.js +0 -2
  598. package/package.json +43 -42
  599. package/rslib-runtime.js +14 -0
  600. package/rslib-runtime.js.map +1 -0
  601. package/services/BuildAppWorkspaceService/BuildAppWorkspaceService.js +62 -69
  602. package/services/BuildAppWorkspaceService/BuildAppWorkspaceService.js.map +1 -1
  603. package/services/BuildAppWorkspaceService/index.js +0 -2
  604. package/services/BuildProjectWorkspaceService/BuildProjectWorkspaceService.js +21 -17
  605. package/services/BuildProjectWorkspaceService/BuildProjectWorkspaceService.js.map +1 -1
  606. package/services/BuildProjectWorkspaceService/index.js +0 -2
  607. package/services/GetAppPackagesService/GetAppPackagesService.js +24 -23
  608. package/services/GetAppPackagesService/GetAppPackagesService.js.map +1 -1
  609. package/services/GetAppPackagesService/index.js +0 -2
  610. package/services/GetAppService/GetAppService.js +24 -27
  611. package/services/GetAppService/GetAppService.js.map +1 -1
  612. package/services/GetAppService/index.js +0 -2
  613. package/services/GetCwdService/GetCwdService.js +15 -12
  614. package/services/GetCwdService/GetCwdService.js.map +1 -1
  615. package/services/GetCwdService/index.js +0 -2
  616. package/services/GetProjectConfigService/EnvContext.js +29 -38
  617. package/services/GetProjectConfigService/EnvContext.js.map +1 -1
  618. package/services/GetProjectConfigService/GetProjectConfigService.js +103 -115
  619. package/services/GetProjectConfigService/GetProjectConfigService.js.map +1 -1
  620. package/services/GetProjectConfigService/ProductionEnvironmentsContext.d.ts +6 -0
  621. package/services/GetProjectConfigService/ProductionEnvironmentsContext.js +16 -0
  622. package/services/GetProjectConfigService/ProductionEnvironmentsContext.js.map +1 -0
  623. package/services/GetProjectConfigService/WcpProjectLicenseContext.js +32 -37
  624. package/services/GetProjectConfigService/WcpProjectLicenseContext.js.map +1 -1
  625. package/services/GetProjectConfigService/index.js +0 -2
  626. package/services/GetProjectConfigService/renderConfig.js +32 -38
  627. package/services/GetProjectConfigService/renderConfig.js.map +1 -1
  628. package/services/GetProjectConfigService/renderConfigWorker.js +42 -43
  629. package/services/GetProjectConfigService/renderConfigWorker.js.map +1 -1
  630. package/services/GetProjectIdService/GetProjectIdService.js +22 -23
  631. package/services/GetProjectIdService/GetProjectIdService.js.map +1 -1
  632. package/services/GetProjectIdService/index.js +0 -2
  633. package/services/GetProjectService/GetProjectService.js +44 -46
  634. package/services/GetProjectService/GetProjectService.js.map +1 -1
  635. package/services/GetProjectService/index.js +0 -2
  636. package/services/GetProjectVersionService/GetProjectVersionService.js +25 -24
  637. package/services/GetProjectVersionService/GetProjectVersionService.js.map +1 -1
  638. package/services/GetProjectVersionService/index.js +0 -2
  639. package/services/GetPulumiService/GetPulumiService.js +36 -41
  640. package/services/GetPulumiService/GetPulumiService.js.map +1 -1
  641. package/services/GetPulumiService/index.js +0 -2
  642. package/services/InitProjectSdkService/InitProjectSdkService.js +36 -52
  643. package/services/InitProjectSdkService/InitProjectSdkService.js.map +1 -1
  644. package/services/InitProjectSdkService/applyEnvVars.js +5 -8
  645. package/services/InitProjectSdkService/applyEnvVars.js.map +1 -1
  646. package/services/InitProjectSdkService/applyWcpEnvVars.js +91 -136
  647. package/services/InitProjectSdkService/applyWcpEnvVars.js.map +1 -1
  648. package/services/InitProjectSdkService/index.js +0 -2
  649. package/services/InitProjectSdkService/registerDecorators.js +10 -7
  650. package/services/InitProjectSdkService/registerDecorators.js.map +1 -1
  651. package/services/InitProjectSdkService/registerHooks.js +30 -7
  652. package/services/InitProjectSdkService/registerHooks.js.map +1 -1
  653. package/services/InitProjectSdkService/registerImplementations.js +10 -11
  654. package/services/InitProjectSdkService/registerImplementations.js.map +1 -1
  655. package/services/InitProjectSdkService/registerPulumiExtensions.js +12 -7
  656. package/services/InitProjectSdkService/registerPulumiExtensions.js.map +1 -1
  657. package/services/InstallExtensionService/InstallExtensionService.js +78 -121
  658. package/services/InstallExtensionService/InstallExtensionService.js.map +1 -1
  659. package/services/InstallExtensionService/downloadFolderFromS3.js +46 -74
  660. package/services/InstallExtensionService/downloadFolderFromS3.js.map +1 -1
  661. package/services/InstallExtensionService/index.js +0 -2
  662. package/services/InstallExtensionService/mergePackageJson.js +15 -25
  663. package/services/InstallExtensionService/mergePackageJson.js.map +1 -1
  664. package/services/InstallExtensionService/types.d.ts +4 -0
  665. package/services/InstallExtensionService/types.js +0 -3
  666. package/services/InstallExtensionService/updateWebinyConfig.js +60 -110
  667. package/services/InstallExtensionService/updateWebinyConfig.js.map +1 -1
  668. package/services/IsRemotePulumiBackendService/IsRemotePulumiBackendService.js +9 -17
  669. package/services/IsRemotePulumiBackendService/IsRemotePulumiBackendService.js.map +1 -1
  670. package/services/IsRemotePulumiBackendService/index.js +0 -2
  671. package/services/ListAppLambdaFunctionsService/ListAppLambdaFunctionsService.js +50 -73
  672. package/services/ListAppLambdaFunctionsService/ListAppLambdaFunctionsService.js.map +1 -1
  673. package/services/ListAppLambdaFunctionsService/index.js +0 -2
  674. package/services/ListDeployedEnvironmentsService/ListDeployedEnvironmentsService.js +21 -23
  675. package/services/ListDeployedEnvironmentsService/ListDeployedEnvironmentsService.js.map +1 -1
  676. package/services/ListDeployedEnvironmentsService/index.js +0 -2
  677. package/services/ListPackagesInAppWorkspaceService/ListPackagesInAppWorkspaceService.js +34 -29
  678. package/services/ListPackagesInAppWorkspaceService/ListPackagesInAppWorkspaceService.js.map +1 -1
  679. package/services/ListPackagesInAppWorkspaceService/index.js +0 -2
  680. package/services/ListPackagesService/ListPackagesService.js +81 -114
  681. package/services/ListPackagesService/ListPackagesService.js.map +1 -1
  682. package/services/ListPackagesService/index.js +0 -2
  683. package/services/LoadEnvVarsService/LoadEnvVarsService.d.ts +3 -2
  684. package/services/LoadEnvVarsService/LoadEnvVarsService.js +37 -30
  685. package/services/LoadEnvVarsService/LoadEnvVarsService.js.map +1 -1
  686. package/services/LoadEnvVarsService/index.js +0 -2
  687. package/services/LocalStorageService/LocalStorageService.js +41 -44
  688. package/services/LocalStorageService/LocalStorageService.js.map +1 -1
  689. package/services/LocalStorageService/index.js +0 -2
  690. package/services/LoggerService/LoggerService.js +76 -84
  691. package/services/LoggerService/LoggerService.js.map +1 -1
  692. package/services/LoggerService/index.js +0 -2
  693. package/services/ProjectInfoService/GetIsCiService.js +9 -8
  694. package/services/ProjectInfoService/GetIsCiService.js.map +1 -1
  695. package/services/ProjectInfoService/GetNpmVersionService.js +9 -8
  696. package/services/ProjectInfoService/GetNpmVersionService.js.map +1 -1
  697. package/services/ProjectInfoService/GetNpxVersionService.js +9 -8
  698. package/services/ProjectInfoService/GetNpxVersionService.js.map +1 -1
  699. package/services/ProjectInfoService/GetPulumiVersionService.js +38 -30
  700. package/services/ProjectInfoService/GetPulumiVersionService.js.map +1 -1
  701. package/services/ProjectInfoService/GetYarnVersionService.js +9 -8
  702. package/services/ProjectInfoService/GetYarnVersionService.js.map +1 -1
  703. package/services/ProjectInfoService/ProjectInfoService.js +56 -51
  704. package/services/ProjectInfoService/ProjectInfoService.js.map +1 -1
  705. package/services/ProjectInfoService/index.js +0 -2
  706. package/services/ProjectSdkParamsService/ProjectSdkParamsService.js +37 -34
  707. package/services/ProjectSdkParamsService/ProjectSdkParamsService.js.map +1 -1
  708. package/services/ProjectSdkParamsService/index.js +0 -2
  709. package/services/PulumiExportService/PulumiExportService.js +42 -35
  710. package/services/PulumiExportService/PulumiExportService.js.map +1 -1
  711. package/services/PulumiExportService/index.js +0 -2
  712. package/services/PulumiGetConfigPassphraseService/PulumiGetConfigPassphraseService.js +9 -8
  713. package/services/PulumiGetConfigPassphraseService/PulumiGetConfigPassphraseService.js.map +1 -1
  714. package/services/PulumiGetConfigPassphraseService/index.js +0 -2
  715. package/services/PulumiGetSecretsProviderService/PulumiGetSecretsProviderService.js +9 -8
  716. package/services/PulumiGetSecretsProviderService/PulumiGetSecretsProviderService.js.map +1 -1
  717. package/services/PulumiGetSecretsProviderService/index.js +0 -2
  718. package/services/PulumiGetStackOutputService/PulumiGetStackOutputService.js +108 -100
  719. package/services/PulumiGetStackOutputService/PulumiGetStackOutputService.js.map +1 -1
  720. package/services/PulumiGetStackOutputService/index.js +0 -2
  721. package/services/PulumiGetStackOutputService/mapStackOutput.js +17 -29
  722. package/services/PulumiGetStackOutputService/mapStackOutput.js.map +1 -1
  723. package/services/PulumiImportService/PulumiImportService.js +48 -45
  724. package/services/PulumiImportService/PulumiImportService.js.map +1 -1
  725. package/services/PulumiImportService/index.js +0 -2
  726. package/services/PulumiLoginService/PulumiLoginService.js +43 -40
  727. package/services/PulumiLoginService/PulumiLoginService.js.map +1 -1
  728. package/services/PulumiLoginService/index.js +0 -2
  729. package/services/PulumiSelectStackService/PulumiSelectStackService.js +91 -86
  730. package/services/PulumiSelectStackService/PulumiSelectStackService.js.map +1 -1
  731. package/services/PulumiSelectStackService/index.js +0 -2
  732. package/services/SetProjectIdService/SetProjectIdService.js +43 -57
  733. package/services/SetProjectIdService/SetProjectIdService.js.map +1 -1
  734. package/services/SetProjectIdService/index.js +0 -2
  735. package/services/StdioService/StdioService.js +15 -14
  736. package/services/StdioService/StdioService.js.map +1 -1
  737. package/services/StdioService/index.js +0 -2
  738. package/services/UiService/UiService.js +55 -58
  739. package/services/UiService/UiService.js.map +1 -1
  740. package/services/UiService/index.js +0 -2
  741. package/services/ValidateProjectConfigService/ValidateProjectConfigService.js +18 -19
  742. package/services/ValidateProjectConfigService/ValidateProjectConfigService.js.map +1 -1
  743. package/services/ValidateProjectConfigService/index.js +0 -2
  744. package/services/WatchedLambdaFunctionsService/WatchedLambdaFunctionsService.js +47 -54
  745. package/services/WatchedLambdaFunctionsService/WatchedLambdaFunctionsService.js.map +1 -1
  746. package/services/WatchedLambdaFunctionsService/index.js +0 -2
  747. package/services/WcpService/CreateUserPat.js +20 -23
  748. package/services/WcpService/CreateUserPat.js.map +1 -1
  749. package/services/WcpService/GenerateUserPat.js +15 -18
  750. package/services/WcpService/GenerateUserPat.js.map +1 -1
  751. package/services/WcpService/GetPatFromLocalStorage.js +9 -10
  752. package/services/WcpService/GetPatFromLocalStorage.js.map +1 -1
  753. package/services/WcpService/GetProjectEnvironment.js +34 -47
  754. package/services/WcpService/GetProjectEnvironment.js.map +1 -1
  755. package/services/WcpService/GetProjectLicense.js +28 -38
  756. package/services/WcpService/GetProjectLicense.js.map +1 -1
  757. package/services/WcpService/GetUser.js +43 -46
  758. package/services/WcpService/GetUser.js.map +1 -1
  759. package/services/WcpService/GetUserPat.js +20 -23
  760. package/services/WcpService/GetUserPat.js.map +1 -1
  761. package/services/WcpService/LogoutUser.js +9 -8
  762. package/services/WcpService/LogoutUser.js.map +1 -1
  763. package/services/WcpService/StorePatToLocalStorage.js +9 -10
  764. package/services/WcpService/StorePatToLocalStorage.js.map +1 -1
  765. package/services/WcpService/UnsetPatFromLocalStorage.js +9 -10
  766. package/services/WcpService/UnsetPatFromLocalStorage.js.map +1 -1
  767. package/services/WcpService/WcpGqlClient.js +6 -5
  768. package/services/WcpService/WcpGqlClient.js.map +1 -1
  769. package/services/WcpService/WcpService.js +74 -75
  770. package/services/WcpService/WcpService.js.map +1 -1
  771. package/services/WcpService/index.js +0 -2
  772. package/services/index.js +0 -2
  773. package/utils/ExtensionSrcResolver.js +52 -106
  774. package/utils/ExtensionSrcResolver.js.map +1 -1
  775. package/utils/constants.js +8 -7
  776. package/utils/constants.js.map +1 -1
  777. package/utils/createPathResolver.js +2 -5
  778. package/utils/createPathResolver.js.map +1 -1
  779. package/utils/env/configuration.js +16 -25
  780. package/utils/env/configuration.js.map +1 -1
  781. package/utils/env/index.js +0 -2
  782. package/utils/env/types.js +0 -3
  783. package/utils/env/withEnv.js +4 -7
  784. package/utils/env/withEnv.js.map +1 -1
  785. package/utils/env/withEnvVariant.js +8 -11
  786. package/utils/env/withEnvVariant.js.map +1 -1
  787. package/utils/env/withProjectName.js +4 -9
  788. package/utils/env/withProjectName.js.map +1 -1
  789. package/utils/env/withPulumiConfigPassphrase.js +4 -8
  790. package/utils/env/withPulumiConfigPassphrase.js.map +1 -1
  791. package/utils/env/withRegion.js +10 -17
  792. package/utils/env/withRegion.js.map +1 -1
  793. package/utils/getRandomColorForString.js +86 -8
  794. package/utils/getRandomColorForString.js.map +1 -1
  795. package/utils/getStackName.js +11 -18
  796. package/utils/getStackName.js.map +1 -1
  797. package/utils/getTemplatesFolderPath.js +6 -8
  798. package/utils/getTemplatesFolderPath.js.map +1 -1
  799. package/utils/index.d.ts +1 -0
  800. package/utils/index.js +1 -2
  801. package/utils/isValidRegionName.js +8 -13
  802. package/utils/isValidRegionName.js.map +1 -1
  803. package/utils/isValidVariantName.js +11 -10
  804. package/utils/isValidVariantName.js.map +1 -1
  805. package/utils/measureDuration.js +7 -8
  806. package/utils/measureDuration.js.map +1 -1
  807. package/utils/projectSdkContext.js +23 -39
  808. package/utils/projectSdkContext.js.map +1 -1
  809. package/utils/regions.js +75 -63
  810. package/utils/regions.js.map +1 -1
  811. package/utils/registerExtension.js +6 -15
  812. package/utils/registerExtension.js.map +1 -1
  813. package/utils/requireConfig.js +8 -9
  814. package/utils/requireConfig.js.map +1 -1
  815. package/utils/toImportSpecifier.d.ts +5 -0
  816. package/utils/toImportSpecifier.js +6 -0
  817. package/utils/toImportSpecifier.js.map +1 -0
  818. package/abstractions/features/hooks/index.js.map +0 -1
  819. package/abstractions/features/index.js.map +0 -1
  820. package/abstractions/features/pulumi/AdminPulumi.d.ts +0 -8
  821. package/abstractions/features/pulumi/AdminPulumi.js +0 -4
  822. package/abstractions/features/pulumi/AdminPulumi.js.map +0 -1
  823. package/abstractions/features/pulumi/ApiPulumi.d.ts +0 -8
  824. package/abstractions/features/pulumi/ApiPulumi.js +0 -4
  825. package/abstractions/features/pulumi/ApiPulumi.js.map +0 -1
  826. package/abstractions/features/pulumi/CorePulumi.d.ts +0 -8
  827. package/abstractions/features/pulumi/CorePulumi.js +0 -4
  828. package/abstractions/features/pulumi/CorePulumi.js.map +0 -1
  829. package/abstractions/features/pulumi/index.d.ts +0 -3
  830. package/abstractions/features/pulumi/index.js +0 -5
  831. package/abstractions/features/pulumi/index.js.map +0 -1
  832. package/abstractions/index.js.map +0 -1
  833. package/abstractions/models/IAppModel.js.map +0 -1
  834. package/abstractions/models/IAppPackageModel.js.map +0 -1
  835. package/abstractions/models/IPathModel.js.map +0 -1
  836. package/abstractions/models/IProjectConfigDto.js.map +0 -1
  837. package/abstractions/models/IProjectConfigModel.js.map +0 -1
  838. package/abstractions/models/IProjectModel.js.map +0 -1
  839. package/abstractions/models/IUrlModel.js.map +0 -1
  840. package/abstractions/models/IWcpEnvironmentDto.js.map +0 -1
  841. package/abstractions/models/IWcpEnvironmentModel.js.map +0 -1
  842. package/abstractions/models/IWcpUserDto.js.map +0 -1
  843. package/abstractions/models/IWcpUserModel.js.map +0 -1
  844. package/abstractions/models/IWcpUserPatDto.js.map +0 -1
  845. package/abstractions/models/IWcpUserPatModel.js.map +0 -1
  846. package/abstractions/models/PackagesBuilder/IPackagesBuilder.js.map +0 -1
  847. package/abstractions/models/PackagesBuilder/IRunnableBuildProcess.js.map +0 -1
  848. package/abstractions/models/PackagesBuilder/IRunnableBuildProcesses.js.map +0 -1
  849. package/abstractions/models/PackagesBuilder/index.js.map +0 -1
  850. package/abstractions/models/index.js.map +0 -1
  851. package/abstractions/services/ProjectInfoService/index.js.map +0 -1
  852. package/abstractions/services/index.js.map +0 -1
  853. package/abstractions/types.js.map +0 -1
  854. package/decorators/index.js.map +0 -1
  855. package/defineExtension/index.js.map +0 -1
  856. package/defineExtension/models/index.js.map +0 -1
  857. package/defineExtension/types.js.map +0 -1
  858. package/exports/infra/admin.js.map +0 -1
  859. package/exports/infra/api.js.map +0 -1
  860. package/exports/infra/core.js.map +0 -1
  861. package/exports/infra/index.d.ts +0 -8
  862. package/exports/infra/index.js +0 -10
  863. package/exports/infra/index.js.map +0 -1
  864. package/extensions/hooks/index.js.map +0 -1
  865. package/extensions/infra/index.js.map +0 -1
  866. package/extensions/pulumi/AdminPulumi.d.ts +0 -8
  867. package/extensions/pulumi/AdminPulumi.js +0 -25
  868. package/extensions/pulumi/AdminPulumi.js.map +0 -1
  869. package/extensions/pulumi/ApiPulumi.d.ts +0 -8
  870. package/extensions/pulumi/ApiPulumi.js +0 -25
  871. package/extensions/pulumi/ApiPulumi.js.map +0 -1
  872. package/extensions/pulumi/CorePulumi.d.ts +0 -8
  873. package/extensions/pulumi/CorePulumi.js +0 -25
  874. package/extensions/pulumi/CorePulumi.js.map +0 -1
  875. package/extensions/pulumi/index.js.map +0 -1
  876. package/features/BuildApp/PackagesBuilder/utils/requireConfig.d.ts +0 -18
  877. package/features/BuildApp/PackagesBuilder/utils/requireConfig.js +0 -15
  878. package/features/BuildApp/PackagesBuilder/utils/requireConfig.js.map +0 -1
  879. package/features/BuildApp/index.js.map +0 -1
  880. package/features/DeployApp/index.js.map +0 -1
  881. package/features/DestroyApp/index.js.map +0 -1
  882. package/features/ExportStack/index.js.map +0 -1
  883. package/features/GetApp/index.js.map +0 -1
  884. package/features/GetAppOutput/index.js.map +0 -1
  885. package/features/GetAppStackOutput/index.js.map +0 -1
  886. package/features/GetFeatureFlags/index.js.map +0 -1
  887. package/features/GetLogger/index.js.map +0 -1
  888. package/features/GetProductionEnvironments/index.js.map +0 -1
  889. package/features/GetProject/index.js.map +0 -1
  890. package/features/GetProjectConfig/index.js.map +0 -1
  891. package/features/GetProjectInfo/index.js.map +0 -1
  892. package/features/GetPulumiResourceNamePrefix/index.js.map +0 -1
  893. package/features/InstallExtension/index.js.map +0 -1
  894. package/features/IsCi/index.js.map +0 -1
  895. package/features/IsTelemetryEnabled/index.js.map +0 -1
  896. package/features/IsWcpEnabled/index.js.map +0 -1
  897. package/features/IsWebinyJsRepo/index.js.map +0 -1
  898. package/features/RefreshApp/index.js.map +0 -1
  899. package/features/RunPulumiCommand/index.js.map +0 -1
  900. package/features/ValidateProjectConfig/index.js.map +0 -1
  901. package/features/Watch/index.js.map +0 -1
  902. package/features/Watch/watchers/utils/requireConfig.d.ts +0 -18
  903. package/features/Watch/watchers/utils/requireConfig.js +0 -15
  904. package/features/Watch/watchers/utils/requireConfig.js.map +0 -1
  905. package/features/hooks/AdminAfterBuild/index.js.map +0 -1
  906. package/features/hooks/AdminAfterDeploy/index.js.map +0 -1
  907. package/features/hooks/AdminBeforeBuild/index.js.map +0 -1
  908. package/features/hooks/AdminBeforeDeploy/index.js.map +0 -1
  909. package/features/hooks/AdminBeforeWatch/index.js.map +0 -1
  910. package/features/hooks/AfterBuild/index.js.map +0 -1
  911. package/features/hooks/AfterDeploy/index.js.map +0 -1
  912. package/features/hooks/ApiAfterBuild/index.js.map +0 -1
  913. package/features/hooks/ApiAfterDeploy/index.js.map +0 -1
  914. package/features/hooks/ApiBeforeBuild/index.js.map +0 -1
  915. package/features/hooks/ApiBeforeDeploy/index.js.map +0 -1
  916. package/features/hooks/ApiBeforeWatch/index.js.map +0 -1
  917. package/features/hooks/BeforeBuild/index.js.map +0 -1
  918. package/features/hooks/BeforeDeploy/index.js.map +0 -1
  919. package/features/hooks/BeforeWatch/index.js.map +0 -1
  920. package/features/hooks/CoreAfterBuild/index.js.map +0 -1
  921. package/features/hooks/CoreAfterDeploy/index.js.map +0 -1
  922. package/features/hooks/CoreBeforeBuild/index.js.map +0 -1
  923. package/features/hooks/CoreBeforeDeploy/index.js.map +0 -1
  924. package/features/hooks/CoreBeforeWatch/index.js.map +0 -1
  925. package/features/hooks/index.js.map +0 -1
  926. package/features/index.js.map +0 -1
  927. package/features/pulumi/AdminPulumi/AdminPulumi.d.ts +0 -7
  928. package/features/pulumi/AdminPulumi/AdminPulumi.js +0 -21
  929. package/features/pulumi/AdminPulumi/AdminPulumi.js.map +0 -1
  930. package/features/pulumi/AdminPulumi/index.d.ts +0 -1
  931. package/features/pulumi/AdminPulumi/index.js +0 -3
  932. package/features/pulumi/AdminPulumi/index.js.map +0 -1
  933. package/features/pulumi/ApiPulumi/ApiPulumi.d.ts +0 -7
  934. package/features/pulumi/ApiPulumi/ApiPulumi.js +0 -21
  935. package/features/pulumi/ApiPulumi/ApiPulumi.js.map +0 -1
  936. package/features/pulumi/ApiPulumi/index.d.ts +0 -1
  937. package/features/pulumi/ApiPulumi/index.js +0 -3
  938. package/features/pulumi/ApiPulumi/index.js.map +0 -1
  939. package/features/pulumi/CorePulumi/CorePulumi.d.ts +0 -7
  940. package/features/pulumi/CorePulumi/CorePulumi.js +0 -21
  941. package/features/pulumi/CorePulumi/CorePulumi.js.map +0 -1
  942. package/features/pulumi/CorePulumi/index.d.ts +0 -1
  943. package/features/pulumi/CorePulumi/index.js +0 -3
  944. package/features/pulumi/CorePulumi/index.js.map +0 -1
  945. package/features/pulumi/index.d.ts +0 -3
  946. package/features/pulumi/index.js +0 -5
  947. package/features/pulumi/index.js.map +0 -1
  948. package/models/index.js.map +0 -1
  949. package/services/BuildAppWorkspaceService/index.js.map +0 -1
  950. package/services/BuildProjectWorkspaceService/index.js.map +0 -1
  951. package/services/GetAppPackagesService/index.js.map +0 -1
  952. package/services/GetAppService/index.js.map +0 -1
  953. package/services/GetCwdService/index.js.map +0 -1
  954. package/services/GetProjectConfigService/index.js.map +0 -1
  955. package/services/GetProjectIdService/index.js.map +0 -1
  956. package/services/GetProjectService/index.js.map +0 -1
  957. package/services/GetProjectVersionService/index.js.map +0 -1
  958. package/services/GetPulumiService/index.js.map +0 -1
  959. package/services/InitProjectSdkService/index.js.map +0 -1
  960. package/services/InstallExtensionService/index.js.map +0 -1
  961. package/services/InstallExtensionService/types.js.map +0 -1
  962. package/services/IsRemotePulumiBackendService/index.js.map +0 -1
  963. package/services/ListAppLambdaFunctionsService/index.js.map +0 -1
  964. package/services/ListDeployedEnvironmentsService/index.js.map +0 -1
  965. package/services/ListPackagesInAppWorkspaceService/index.js.map +0 -1
  966. package/services/ListPackagesService/index.js.map +0 -1
  967. package/services/LoadEnvVarsService/index.js.map +0 -1
  968. package/services/LocalStorageService/index.js.map +0 -1
  969. package/services/LoggerService/index.js.map +0 -1
  970. package/services/ProjectInfoService/index.js.map +0 -1
  971. package/services/ProjectSdkParamsService/index.js.map +0 -1
  972. package/services/PulumiExportService/index.js.map +0 -1
  973. package/services/PulumiGetConfigPassphraseService/index.js.map +0 -1
  974. package/services/PulumiGetSecretsProviderService/index.js.map +0 -1
  975. package/services/PulumiGetStackOutputService/index.js.map +0 -1
  976. package/services/PulumiImportService/index.js.map +0 -1
  977. package/services/PulumiLoginService/index.js.map +0 -1
  978. package/services/PulumiSelectStackService/index.js.map +0 -1
  979. package/services/SetProjectIdService/index.js.map +0 -1
  980. package/services/StdioService/index.js.map +0 -1
  981. package/services/UiService/index.js.map +0 -1
  982. package/services/ValidateProjectConfigService/index.js.map +0 -1
  983. package/services/WatchedLambdaFunctionsService/index.js.map +0 -1
  984. package/services/WcpService/index.js.map +0 -1
  985. package/services/index.js.map +0 -1
  986. package/utils/env/index.js.map +0 -1
  987. package/utils/env/types.js.map +0 -1
  988. package/utils/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["z","defineExtension","crypto","path","fs","Node","Project","generateBuildParamsFeature","buildParamsDir","ctx","featureFilePath","join","files","readdirSync","filter","f","startsWith","endsWith","imports","map","file","className","parse","name","registrations","featureContent","writeFileSync","updateExtensionsTsx","extensionsTsxFilePath","project","paths","workspaceFolder","toString","addSourceFileAtPath","source","getSourceFileOrThrow","buildParamsFeatureImport","existingFeatureImport","getImportDeclaration","index","importDeclarations","getImportDeclarations","length","last","getChildIndex","insertImportDeclaration","namedImports","moduleSpecifier","buildParamsFeatureImportPath","existingBuildParamsImport","getNamedImports","hasBuildParamsFeature","some","ni","getName","addNamedImport","registerFeatureImportPath","existingRegisterFeatureImport","hasRegisterFeature","extensionsIdentifier","getFirstDescendant","node","isIdentifier","getText","Error","extensionsArrowFn","getNextSibling","isArrowFunction","extensionsArrowFnFragment","isJsxFragment","currentContent","getFullText","replace","trim","includes","newContent","replaceWithText","save","AdminBuildParam","type","tags","runtimeContext","appName","description","multiple","paramsSchema","object","paramName","string","value","union","record","any","array","number","boolean","build","params","valueStr","JSON","stringify","hash","createHash","update","digest","slice","fileName","filePath","existsSync","mkdirSync","recursive","fileContent"],"sources":["AdminBuildParam.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { defineExtension } from \"~/defineExtension/index.js\";\nimport crypto from \"crypto\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport { Node, Project } from \"ts-morph\";\n\nasync function generateBuildParamsFeature(buildParamsDir: string, ctx: any) {\n const featureFilePath = path.join(buildParamsDir, \"feature.ts\");\n\n // Get all BuildParam_*.ts files.\n const files = fs\n .readdirSync(buildParamsDir)\n .filter(f => f.startsWith(\"BuildParam_\") && f.endsWith(\".ts\") && f !== \"feature.ts\");\n\n // Generate imports and registrations.\n const imports = files\n .map(file => {\n const className = path.parse(file).name;\n return `import ${className} from \"./${className}.js\";`;\n })\n .join(\"\\n\");\n\n const registrations = files\n .map(file => {\n const className = path.parse(file).name;\n return ` container.register(${className});`;\n })\n .join(\"\\n\");\n\n const featureContent = `import { createFeature } from \"@webiny/feature/admin\";\nimport { Container } from \"@webiny/di\";\n${imports}\n\nexport const BuildParamsInternalFeature = createFeature({\n name: \"BuildParamsInternal\",\n register(container: Container) {\n${registrations}\n }\n});\n`;\n\n fs.writeFileSync(featureFilePath, featureContent, \"utf8\");\n\n // Now we need to update Extensions.tsx to use RegisterFeature with this feature.\n await updateExtensionsTsx(ctx);\n}\n\nasync function updateExtensionsTsx(ctx: any) {\n const extensionsTsxFilePath = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"admin\", \"src\", \"Extensions.tsx\")\n .toString();\n\n const project = new Project();\n project.addSourceFileAtPath(extensionsTsxFilePath);\n\n const source = project.getSourceFileOrThrow(extensionsTsxFilePath);\n\n // Check if we already have the imports.\n const buildParamsFeatureImport = \"./buildParams/feature.js\";\n const existingFeatureImport = source.getImportDeclaration(buildParamsFeatureImport);\n\n if (!existingFeatureImport) {\n let index = 1;\n const importDeclarations = source.getImportDeclarations();\n if (importDeclarations.length) {\n const last = importDeclarations[importDeclarations.length - 1];\n index = last.getChildIndex() + 1;\n }\n\n // Add import for BuildParamsInternalFeature.\n source.insertImportDeclaration(index, {\n namedImports: [\"BuildParamsInternalFeature\"],\n moduleSpecifier: buildParamsFeatureImport\n });\n\n // Add import for BuildParamsFeature.\n const buildParamsFeatureImportPath = \"@webiny/app-admin\";\n const existingBuildParamsImport = source.getImportDeclaration(buildParamsFeatureImportPath);\n\n if (!existingBuildParamsImport) {\n source.insertImportDeclaration(index, {\n namedImports: [\"BuildParamsFeature\"],\n moduleSpecifier: buildParamsFeatureImportPath\n });\n } else {\n // Add to existing import if BuildParamsFeature not already there.\n const namedImports = existingBuildParamsImport.getNamedImports();\n const hasBuildParamsFeature = namedImports.some(\n ni => ni.getName() === \"BuildParamsFeature\"\n );\n if (!hasBuildParamsFeature) {\n existingBuildParamsImport.addNamedImport(\"BuildParamsFeature\");\n }\n }\n\n // Add import for RegisterFeature if not present.\n const registerFeatureImportPath = \"@webiny/app-admin\";\n const existingRegisterFeatureImport =\n source.getImportDeclaration(registerFeatureImportPath);\n\n if (existingRegisterFeatureImport) {\n const namedImports = existingRegisterFeatureImport.getNamedImports();\n const hasRegisterFeature = namedImports.some(ni => ni.getName() === \"RegisterFeature\");\n if (!hasRegisterFeature) {\n existingRegisterFeatureImport.addNamedImport(\"RegisterFeature\");\n }\n } else {\n source.insertImportDeclaration(index, {\n namedImports: [\"RegisterFeature\"],\n moduleSpecifier: registerFeatureImportPath\n });\n }\n }\n\n // Now add <RegisterFeature> components to the Extensions component.\n const extensionsIdentifier = source.getFirstDescendant(node => {\n if (!Node.isIdentifier(node)) {\n return false;\n }\n return node.getText() === \"Extensions\";\n });\n\n if (!extensionsIdentifier) {\n throw new Error(\n `Could not find the \"Extensions\" React component in \"${extensionsTsxFilePath}\".`\n );\n }\n\n const extensionsArrowFn = extensionsIdentifier.getNextSibling(node =>\n Node.isArrowFunction(node)\n );\n\n if (!extensionsArrowFn) {\n throw new Error(`Could not find the \"Extensions\" React component arrow function.`);\n }\n\n const extensionsArrowFnFragment = extensionsArrowFn.getFirstDescendant(node => {\n return Node.isJsxFragment(node);\n });\n\n if (!extensionsArrowFnFragment) {\n throw new Error(`Could not find JSX fragment in Extensions component.`);\n }\n\n const currentContent = extensionsArrowFnFragment\n .getFullText()\n .replace(\"<>\", \"\")\n .replace(\"</>\", \"\")\n .trim();\n\n // Check if we already have the RegisterFeature components.\n if (!currentContent.includes(\"BuildParamsFeature\")) {\n const newContent = `<><RegisterFeature feature={BuildParamsFeature} /><RegisterFeature feature={BuildParamsInternalFeature} />${currentContent}</>`;\n extensionsArrowFnFragment.replaceWithText(newContent);\n }\n\n await source.save();\n}\n\nexport const AdminBuildParam = defineExtension({\n type: \"Admin/BuildParam\",\n tags: { runtimeContext: \"app-build\", appName: \"admin\" },\n description: \"Add build-time parameter to Admin app.\",\n multiple: true,\n paramsSchema: () => {\n return z.object({\n paramName: z.string(),\n value: z.union([\n z.string(),\n z.record(z.any()),\n z.array(z.any()),\n z.number(),\n z.boolean()\n ])\n });\n },\n async build(params, ctx) {\n const buildParamsDir = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"admin\", \"src\", \"buildParams\")\n .toString();\n\n const { paramName, value } = params;\n\n // Serialize value to a TypeScript literal.\n const valueStr = JSON.stringify(value, null, 4);\n\n // Generate a unique class name based on the paramName.\n const hash = crypto.createHash(\"sha256\").update(paramName).digest(\"hex\");\n const className = `BuildParam_${hash.slice(-10)}`;\n const fileName = `${className}.ts`;\n const filePath = path.join(buildParamsDir, fileName);\n\n // Ensure buildParams directory exists.\n if (!fs.existsSync(buildParamsDir)) {\n fs.mkdirSync(buildParamsDir, { recursive: true });\n }\n\n // Check if file already exists.\n if (!fs.existsSync(filePath)) {\n // Create the BuildParam implementation file.\n const fileContent = `import { BuildParam } from \"webiny/admin/build-params\";\n\nclass ${className} implements BuildParam.Interface {\n key = \"${paramName}\";\n value = ${valueStr};\n}\n\nexport default BuildParam.createImplementation({\n implementation: ${className},\n dependencies: []\n});\n`;\n fs.writeFileSync(filePath, fileContent, \"utf8\");\n }\n\n // Now we need to generate/update the feature file that imports all BuildParams.\n await generateBuildParamsFeature(buildParamsDir, ctx);\n }\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"extensions/AdminBuildParam.js","sources":["../../src/extensions/AdminBuildParam.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { defineExtension } from \"~/defineExtension/index.js\";\nimport crypto from \"crypto\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport { Node, Project } from \"ts-morph\";\n\nasync function generateBuildParamsFeature(buildParamsDir: string, ctx: any) {\n const featureFilePath = path.join(buildParamsDir, \"feature.ts\");\n\n // Get all BuildParam_*.ts files.\n const files = fs\n .readdirSync(buildParamsDir)\n .filter(f => f.startsWith(\"BuildParam_\") && f.endsWith(\".ts\") && f !== \"feature.ts\");\n\n // Generate imports and registrations.\n const imports = files\n .map(file => {\n const className = path.parse(file).name;\n return `import ${className} from \"./${className}.js\";`;\n })\n .join(\"\\n\");\n\n const registrations = files\n .map(file => {\n const className = path.parse(file).name;\n return ` container.register(${className});`;\n })\n .join(\"\\n\");\n\n const featureContent = `import { createFeature } from \"@webiny/feature/admin\";\nimport { Container } from \"@webiny/di\";\n${imports}\n\nexport const BuildParamsInternalFeature = createFeature({\n name: \"BuildParamsInternal\",\n register(container: Container) {\n${registrations}\n }\n});\n`;\n\n fs.writeFileSync(featureFilePath, featureContent, \"utf8\");\n\n // Now we need to update Extensions.tsx to use RegisterFeature with this feature.\n await updateExtensionsTsx(ctx);\n}\n\nasync function updateExtensionsTsx(ctx: any) {\n const extensionsTsxFilePath = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"admin\", \"src\", \"Extensions.tsx\")\n .toString();\n\n const project = new Project();\n project.addSourceFileAtPath(extensionsTsxFilePath);\n\n const source = project.getSourceFileOrThrow(extensionsTsxFilePath);\n\n // Check if we already have the imports.\n const buildParamsFeatureImport = \"./buildParams/feature.js\";\n const existingFeatureImport = source.getImportDeclaration(buildParamsFeatureImport);\n\n if (!existingFeatureImport) {\n let index = 1;\n const importDeclarations = source.getImportDeclarations();\n if (importDeclarations.length) {\n const last = importDeclarations[importDeclarations.length - 1];\n index = last.getChildIndex() + 1;\n }\n\n // Add import for BuildParamsInternalFeature.\n source.insertImportDeclaration(index, {\n namedImports: [\"BuildParamsInternalFeature\"],\n moduleSpecifier: buildParamsFeatureImport\n });\n\n // Add import for BuildParamsFeature.\n const buildParamsFeatureImportPath = \"@webiny/app-admin\";\n const existingBuildParamsImport = source.getImportDeclaration(buildParamsFeatureImportPath);\n\n if (!existingBuildParamsImport) {\n source.insertImportDeclaration(index, {\n namedImports: [\"BuildParamsFeature\"],\n moduleSpecifier: buildParamsFeatureImportPath\n });\n } else {\n // Add to existing import if BuildParamsFeature not already there.\n const namedImports = existingBuildParamsImport.getNamedImports();\n const hasBuildParamsFeature = namedImports.some(\n ni => ni.getName() === \"BuildParamsFeature\"\n );\n if (!hasBuildParamsFeature) {\n existingBuildParamsImport.addNamedImport(\"BuildParamsFeature\");\n }\n }\n\n // Add import for RegisterFeature if not present.\n const registerFeatureImportPath = \"@webiny/app-admin\";\n const existingRegisterFeatureImport =\n source.getImportDeclaration(registerFeatureImportPath);\n\n if (existingRegisterFeatureImport) {\n const namedImports = existingRegisterFeatureImport.getNamedImports();\n const hasRegisterFeature = namedImports.some(ni => ni.getName() === \"RegisterFeature\");\n if (!hasRegisterFeature) {\n existingRegisterFeatureImport.addNamedImport(\"RegisterFeature\");\n }\n } else {\n source.insertImportDeclaration(index, {\n namedImports: [\"RegisterFeature\"],\n moduleSpecifier: registerFeatureImportPath\n });\n }\n }\n\n // Now add <RegisterFeature> components to the Extensions component.\n const extensionsIdentifier = source.getFirstDescendant(node => {\n if (!Node.isIdentifier(node)) {\n return false;\n }\n return node.getText() === \"Extensions\";\n });\n\n if (!extensionsIdentifier) {\n throw new Error(\n `Could not find the \"Extensions\" React component in \"${extensionsTsxFilePath}\".`\n );\n }\n\n const extensionsArrowFn = extensionsIdentifier.getNextSibling(node =>\n Node.isArrowFunction(node)\n );\n\n if (!extensionsArrowFn) {\n throw new Error(`Could not find the \"Extensions\" React component arrow function.`);\n }\n\n const extensionsArrowFnFragment = extensionsArrowFn.getFirstDescendant(node => {\n return Node.isJsxFragment(node);\n });\n\n if (!extensionsArrowFnFragment) {\n throw new Error(`Could not find JSX fragment in Extensions component.`);\n }\n\n const currentContent = extensionsArrowFnFragment\n .getFullText()\n .replace(\"<>\", \"\")\n .replace(\"</>\", \"\")\n .trim();\n\n // Check if we already have the RegisterFeature components.\n if (!currentContent.includes(\"BuildParamsFeature\")) {\n const newContent = `<><RegisterFeature feature={BuildParamsFeature} /><RegisterFeature feature={BuildParamsInternalFeature} />${currentContent}</>`;\n extensionsArrowFnFragment.replaceWithText(newContent);\n }\n\n await source.save();\n}\n\nexport const AdminBuildParam = defineExtension({\n type: \"Admin/BuildParam\",\n tags: { runtimeContext: \"app-build\", appName: \"admin\" },\n description: \"Add build-time parameter to Admin app.\",\n multiple: true,\n paramsSchema: () => {\n return z.object({\n paramName: z.string(),\n value: z.union([\n z.string(),\n z.record(z.string(), z.any()),\n z.array(z.any()),\n z.number(),\n z.boolean()\n ])\n });\n },\n async build(params, ctx) {\n const buildParamsDir = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"admin\", \"src\", \"buildParams\")\n .toString();\n\n const { paramName, value } = params;\n\n // Serialize value to a TypeScript literal.\n const valueStr = JSON.stringify(value, null, 4);\n\n // Generate a unique class name based on the paramName.\n const hash = crypto.createHash(\"sha256\").update(paramName).digest(\"hex\");\n const className = `BuildParam_${hash.slice(-10)}`;\n const fileName = `${className}.ts`;\n const filePath = path.join(buildParamsDir, fileName);\n\n // Ensure buildParams directory exists.\n if (!fs.existsSync(buildParamsDir)) {\n fs.mkdirSync(buildParamsDir, { recursive: true });\n }\n\n // Check if file already exists.\n if (!fs.existsSync(filePath)) {\n // Create the BuildParam implementation file.\n const fileContent = `import { BuildParam } from \"webiny/admin/build-params\";\n\nclass ${className} implements BuildParam.Interface {\n key = \"${paramName}\";\n value = ${valueStr};\n}\n\nexport default BuildParam.createImplementation({\n implementation: ${className},\n dependencies: []\n});\n`;\n fs.writeFileSync(filePath, fileContent, \"utf8\");\n }\n\n // Now we need to generate/update the feature file that imports all BuildParams.\n await generateBuildParamsFeature(buildParamsDir, ctx);\n }\n});\n"],"names":["generateBuildParamsFeature","buildParamsDir","ctx","featureFilePath","path","files","fs","f","imports","file","className","registrations","featureContent","updateExtensionsTsx","extensionsTsxFilePath","project","Project","source","buildParamsFeatureImport","existingFeatureImport","index","importDeclarations","last","buildParamsFeatureImportPath","existingBuildParamsImport","namedImports","hasBuildParamsFeature","ni","registerFeatureImportPath","existingRegisterFeatureImport","hasRegisterFeature","extensionsIdentifier","node","Node","Error","extensionsArrowFn","extensionsArrowFnFragment","currentContent","newContent","AdminBuildParam","defineExtension","z","params","paramName","value","valueStr","JSON","hash","crypto","fileName","filePath","fileContent"],"mappings":"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"}
@@ -1,11 +1,5 @@
1
1
  import { z } from "zod";
2
2
  export declare const AdminExtension: import("~/extensions/index.js").ExtensionComponent<z.ZodObject<{
3
- src: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
3
+ src: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
4
4
  exportName: z.ZodOptional<z.ZodString>;
5
- }, "strip", z.ZodTypeAny, {
6
- src: string;
7
- exportName?: string | undefined;
8
- }, {
9
- src: string;
10
- exportName?: string | undefined;
11
- }>>;
5
+ }, z.core.$strip>>;
@@ -1,99 +1,73 @@
1
1
  import { defineExtension, zodSrcPath } from "./index.js";
2
- import { ExtensionSrcResolver } from "@webiny/project";
2
+ import { ExtensionSrcResolver } from "../index.js";
3
3
  import { z } from "zod";
4
4
  import path from "path";
5
5
  import { Node, Project } from "ts-morph";
6
- import crypto from "crypto";
7
- export const AdminExtension = defineExtension({
8
- type: "Admin/Extension",
9
- tags: {
10
- runtimeContext: "app-build",
11
- appName: "admin"
12
- },
13
- description: "Extend the Admin application with custom functionality.",
14
- multiple: true,
15
- paramsSchema: ({
16
- project
17
- }) => {
18
- return z.object({
19
- src: zodSrcPath({
20
- project
21
- }),
22
- exportName: z.string().optional()
23
- });
24
- },
25
- async build(params, ctx) {
26
- const extensionsTsxFilePath = ctx.project.paths.workspaceFolder.join("apps", "admin", "src", "Extensions.tsx").toString();
27
- const {
28
- src: extensionFilePath
29
- } = params;
30
-
31
- // Resolve to absolute path for file operations.
32
- const absoluteExtensionFilePath = ExtensionSrcResolver.resolvePath(extensionFilePath, ctx.project);
33
- const extensionFileName = path.basename(absoluteExtensionFilePath);
34
-
35
- // Export name can be customized or defaults to the file name without extension.
36
- const exportName = params.exportName ?? path.parse(extensionFileName).name;
37
-
38
- // Generate a constant hash-based component name to avoid using timestamps.
39
- const hash = crypto.createHash("sha256").update(extensionFilePath).digest("hex");
40
- const componentName = `AdminExtension_${hash.slice(-10)}`;
41
- const project = new Project();
42
- const importPath = path.relative(path.dirname(extensionsTsxFilePath), absoluteExtensionFilePath).replace(/\.tsx?$/, ".js");
43
- project.addSourceFileAtPath(extensionsTsxFilePath);
44
- const source = project.getSourceFileOrThrow(extensionsTsxFilePath);
45
- const existingImportDeclaration = source.getImportDeclaration(importPath);
46
- if (existingImportDeclaration) {
47
- return;
48
- }
49
-
50
- // Check if the extension file has a default export or named export.
51
- const extensionProject = new Project();
52
- extensionProject.addSourceFileAtPath(absoluteExtensionFilePath);
53
- const extensionSource = extensionProject.getSourceFileOrThrow(absoluteExtensionFilePath);
54
- const hasDefaultExport = extensionSource.getDefaultExportSymbol() !== undefined;
55
- let index = 1;
56
- const importDeclarations = source.getImportDeclarations();
57
- if (importDeclarations.length) {
58
- const last = importDeclarations[importDeclarations.length - 1];
59
- index = last.getChildIndex() + 1;
60
- }
61
-
62
- // Import as default export if available, otherwise import named export.
63
- if (hasDefaultExport) {
64
- source.insertImportDeclaration(index, {
65
- defaultImport: componentName,
66
- moduleSpecifier: importPath
67
- });
68
- } else {
69
- source.insertImportDeclaration(index, {
70
- namedImports: [{
71
- name: exportName,
72
- alias: componentName
73
- }],
74
- moduleSpecifier: importPath
75
- });
76
- }
77
- const extensionsIdentifier = source.getFirstDescendant(node => {
78
- if (!Node.isIdentifier(node)) {
79
- return false;
80
- }
81
- return node.getText() === "Extensions";
82
- });
83
- if (!extensionsIdentifier) {
84
- throw new Error(`Could not find the "Extensions" React component in "${extensionsTsxFilePath}". Did you maybe change the name of the component?`);
85
- }
86
- const extensionsArrowFn = extensionsIdentifier.getNextSibling(node => Node.isArrowFunction(node));
87
- if (!extensionsArrowFn) {
88
- throw new Error(`Could not find the "Extensions" React component in "${extensionsTsxFilePath}". Did you maybe change its definition? It should be an arrow function.`);
6
+ import crypto_0 from "crypto";
7
+ const AdminExtension = defineExtension({
8
+ type: "Admin/Extension",
9
+ tags: {
10
+ runtimeContext: "app-build",
11
+ appName: "admin"
12
+ },
13
+ description: "Extend the Admin application with custom functionality.",
14
+ multiple: true,
15
+ paramsSchema: ({ project })=>z.object({
16
+ src: zodSrcPath({
17
+ project
18
+ }),
19
+ exportName: z.string().optional()
20
+ }),
21
+ async build (params, ctx) {
22
+ const extensionsTsxFilePath = ctx.project.paths.workspaceFolder.join("apps", "admin", "src", "Extensions.tsx").toString();
23
+ const { src: extensionFilePath } = params;
24
+ const absoluteExtensionFilePath = ExtensionSrcResolver.resolvePath(extensionFilePath, ctx.project);
25
+ const extensionFileName = path.basename(absoluteExtensionFilePath);
26
+ const exportName = params.exportName ?? path.parse(extensionFileName).name;
27
+ const hash = crypto_0.createHash("sha256").update(extensionFilePath).digest("hex");
28
+ const componentName = `AdminExtension_${hash.slice(-10)}`;
29
+ const project = new Project();
30
+ const importPath = path.relative(path.dirname(extensionsTsxFilePath), absoluteExtensionFilePath).replace(/\.tsx?$/, ".js");
31
+ project.addSourceFileAtPath(extensionsTsxFilePath);
32
+ const source = project.getSourceFileOrThrow(extensionsTsxFilePath);
33
+ const existingImportDeclaration = source.getImportDeclaration(importPath);
34
+ if (existingImportDeclaration) return;
35
+ const extensionProject = new Project();
36
+ extensionProject.addSourceFileAtPath(absoluteExtensionFilePath);
37
+ const extensionSource = extensionProject.getSourceFileOrThrow(absoluteExtensionFilePath);
38
+ const hasDefaultExport = void 0 !== extensionSource.getDefaultExportSymbol();
39
+ let index = 1;
40
+ const importDeclarations = source.getImportDeclarations();
41
+ if (importDeclarations.length) {
42
+ const last = importDeclarations[importDeclarations.length - 1];
43
+ index = last.getChildIndex() + 1;
44
+ }
45
+ if (hasDefaultExport) source.insertImportDeclaration(index, {
46
+ defaultImport: componentName,
47
+ moduleSpecifier: importPath
48
+ });
49
+ else source.insertImportDeclaration(index, {
50
+ namedImports: [
51
+ {
52
+ name: exportName,
53
+ alias: componentName
54
+ }
55
+ ],
56
+ moduleSpecifier: importPath
57
+ });
58
+ const extensionsIdentifier = source.getFirstDescendant((node)=>{
59
+ if (!Node.isIdentifier(node)) return false;
60
+ return "Extensions" === node.getText();
61
+ });
62
+ if (!extensionsIdentifier) throw new Error(`Could not find the "Extensions" React component in "${extensionsTsxFilePath}". Did you maybe change the name of the component?`);
63
+ const extensionsArrowFn = extensionsIdentifier.getNextSibling((node)=>Node.isArrowFunction(node));
64
+ if (!extensionsArrowFn) throw new Error(`Could not find the "Extensions" React component in "${extensionsTsxFilePath}". Did you maybe change its definition? It should be an arrow function.`);
65
+ const extensionsArrowFnFragment = extensionsArrowFn.getFirstDescendant((node)=>Node.isJsxFragment(node));
66
+ const extensionsArrowFnFragmentChildrenText = extensionsArrowFnFragment.getFullText().replace("<>", "").replace("</>", "").trim();
67
+ extensionsArrowFnFragment.replaceWithText(`<><${componentName}/>${extensionsArrowFnFragmentChildrenText}</>`);
68
+ await source.save();
89
69
  }
90
- const extensionsArrowFnFragment = extensionsArrowFn.getFirstDescendant(node => {
91
- return Node.isJsxFragment(node);
92
- });
93
- const extensionsArrowFnFragmentChildrenText = extensionsArrowFnFragment.getFullText().replace("<>", "").replace("</>", "").trim();
94
- extensionsArrowFnFragment.replaceWithText(`<><${componentName}/>${extensionsArrowFnFragmentChildrenText}</>`);
95
- await source.save();
96
- }
97
70
  });
71
+ export { AdminExtension };
98
72
 
99
73
  //# sourceMappingURL=AdminExtension.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["defineExtension","zodSrcPath","ExtensionSrcResolver","z","path","Node","Project","crypto","AdminExtension","type","tags","runtimeContext","appName","description","multiple","paramsSchema","project","object","src","exportName","string","optional","build","params","ctx","extensionsTsxFilePath","paths","workspaceFolder","join","toString","extensionFilePath","absoluteExtensionFilePath","resolvePath","extensionFileName","basename","parse","name","hash","createHash","update","digest","componentName","slice","importPath","relative","dirname","replace","addSourceFileAtPath","source","getSourceFileOrThrow","existingImportDeclaration","getImportDeclaration","extensionProject","extensionSource","hasDefaultExport","getDefaultExportSymbol","undefined","index","importDeclarations","getImportDeclarations","length","last","getChildIndex","insertImportDeclaration","defaultImport","moduleSpecifier","namedImports","alias","extensionsIdentifier","getFirstDescendant","node","isIdentifier","getText","Error","extensionsArrowFn","getNextSibling","isArrowFunction","extensionsArrowFnFragment","isJsxFragment","extensionsArrowFnFragmentChildrenText","getFullText","trim","replaceWithText","save"],"sources":["AdminExtension.ts"],"sourcesContent":["import { defineExtension, zodSrcPath } from \"~/extensions/index.js\";\nimport { ExtensionSrcResolver } from \"@webiny/project\";\nimport { z } from \"zod\";\nimport path from \"path\";\nimport { type JsxFragment, Node, Project } from \"ts-morph\";\nimport crypto from \"crypto\";\n\nexport const AdminExtension = defineExtension({\n type: \"Admin/Extension\",\n tags: { runtimeContext: \"app-build\", appName: \"admin\" },\n description: \"Extend the Admin application with custom functionality.\",\n multiple: true,\n paramsSchema: ({ project }) => {\n return z.object({\n src: zodSrcPath({ project }),\n exportName: z.string().optional()\n });\n },\n async build(params, ctx) {\n const extensionsTsxFilePath = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"admin\", \"src\", \"Extensions.tsx\")\n .toString();\n\n const { src: extensionFilePath } = params;\n\n // Resolve to absolute path for file operations.\n const absoluteExtensionFilePath = ExtensionSrcResolver.resolvePath(\n extensionFilePath,\n ctx.project\n );\n\n const extensionFileName = path.basename(absoluteExtensionFilePath);\n\n // Export name can be customized or defaults to the file name without extension.\n const exportName = params.exportName ?? path.parse(extensionFileName).name;\n\n // Generate a constant hash-based component name to avoid using timestamps.\n const hash = crypto.createHash(\"sha256\").update(extensionFilePath).digest(\"hex\");\n const componentName = `AdminExtension_${hash.slice(-10)}`;\n\n const project = new Project();\n\n const importPath = path\n .relative(path.dirname(extensionsTsxFilePath), absoluteExtensionFilePath)\n .replace(/\\.tsx?$/, \".js\");\n\n project.addSourceFileAtPath(extensionsTsxFilePath);\n\n const source = project.getSourceFileOrThrow(extensionsTsxFilePath);\n\n const existingImportDeclaration = source.getImportDeclaration(importPath);\n if (existingImportDeclaration) {\n return;\n }\n\n // Check if the extension file has a default export or named export.\n const extensionProject = new Project();\n extensionProject.addSourceFileAtPath(absoluteExtensionFilePath);\n const extensionSource = extensionProject.getSourceFileOrThrow(absoluteExtensionFilePath);\n const hasDefaultExport = extensionSource.getDefaultExportSymbol() !== undefined;\n\n let index = 1;\n\n const importDeclarations = source.getImportDeclarations();\n if (importDeclarations.length) {\n const last = importDeclarations[importDeclarations.length - 1];\n index = last.getChildIndex() + 1;\n }\n\n // Import as default export if available, otherwise import named export.\n if (hasDefaultExport) {\n source.insertImportDeclaration(index, {\n defaultImport: componentName,\n moduleSpecifier: importPath\n });\n } else {\n source.insertImportDeclaration(index, {\n namedImports: [{ name: exportName, alias: componentName }],\n moduleSpecifier: importPath\n });\n }\n\n const extensionsIdentifier = source.getFirstDescendant(node => {\n if (!Node.isIdentifier(node)) {\n return false;\n }\n\n return node.getText() === \"Extensions\";\n });\n\n if (!extensionsIdentifier) {\n throw new Error(\n `Could not find the \"Extensions\" React component in \"${extensionsTsxFilePath}\". Did you maybe change the name of the component?`\n );\n }\n\n const extensionsArrowFn = extensionsIdentifier.getNextSibling(node =>\n Node.isArrowFunction(node)\n );\n if (!extensionsArrowFn) {\n throw new Error(\n `Could not find the \"Extensions\" React component in \"${extensionsTsxFilePath}\". Did you maybe change its definition? It should be an arrow function.`\n );\n }\n\n const extensionsArrowFnFragment = extensionsArrowFn.getFirstDescendant(node => {\n return Node.isJsxFragment(node);\n }) as JsxFragment;\n\n const extensionsArrowFnFragmentChildrenText = extensionsArrowFnFragment\n .getFullText()\n .replace(\"<>\", \"\")\n .replace(\"</>\", \"\")\n .trim();\n\n extensionsArrowFnFragment.replaceWithText(\n `<><${componentName}/>${extensionsArrowFnFragmentChildrenText}</>`\n );\n\n await source.save();\n }\n});\n"],"mappings":"AAAA,SAASA,eAAe,EAAEC,UAAU;AACpC,SAASC,oBAAoB,QAAQ,iBAAiB;AACtD,SAASC,CAAC,QAAQ,KAAK;AACvB,OAAOC,IAAI,MAAM,MAAM;AACvB,SAA2BC,IAAI,EAAEC,OAAO,QAAQ,UAAU;AAC1D,OAAOC,MAAM,MAAM,QAAQ;AAE3B,OAAO,MAAMC,cAAc,GAAGR,eAAe,CAAC;EAC1CS,IAAI,EAAE,iBAAiB;EACvBC,IAAI,EAAE;IAAEC,cAAc,EAAE,WAAW;IAAEC,OAAO,EAAE;EAAQ,CAAC;EACvDC,WAAW,EAAE,yDAAyD;EACtEC,QAAQ,EAAE,IAAI;EACdC,YAAY,EAAEA,CAAC;IAAEC;EAAQ,CAAC,KAAK;IAC3B,OAAOb,CAAC,CAACc,MAAM,CAAC;MACZC,GAAG,EAAEjB,UAAU,CAAC;QAAEe;MAAQ,CAAC,CAAC;MAC5BG,UAAU,EAAEhB,CAAC,CAACiB,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC;IACpC,CAAC,CAAC;EACN,CAAC;EACD,MAAMC,KAAKA,CAACC,MAAM,EAAEC,GAAG,EAAE;IACrB,MAAMC,qBAAqB,GAAGD,GAAG,CAACR,OAAO,CAACU,KAAK,CAACC,eAAe,CAC1DC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAC9CC,QAAQ,CAAC,CAAC;IAEf,MAAM;MAAEX,GAAG,EAAEY;IAAkB,CAAC,GAAGP,MAAM;;IAEzC;IACA,MAAMQ,yBAAyB,GAAG7B,oBAAoB,CAAC8B,WAAW,CAC9DF,iBAAiB,EACjBN,GAAG,CAACR,OACR,CAAC;IAED,MAAMiB,iBAAiB,GAAG7B,IAAI,CAAC8B,QAAQ,CAACH,yBAAyB,CAAC;;IAElE;IACA,MAAMZ,UAAU,GAAGI,MAAM,CAACJ,UAAU,IAAIf,IAAI,CAAC+B,KAAK,CAACF,iBAAiB,CAAC,CAACG,IAAI;;IAE1E;IACA,MAAMC,IAAI,GAAG9B,MAAM,CAAC+B,UAAU,CAAC,QAAQ,CAAC,CAACC,MAAM,CAACT,iBAAiB,CAAC,CAACU,MAAM,CAAC,KAAK,CAAC;IAChF,MAAMC,aAAa,GAAG,kBAAkBJ,IAAI,CAACK,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;IAEzD,MAAM1B,OAAO,GAAG,IAAIV,OAAO,CAAC,CAAC;IAE7B,MAAMqC,UAAU,GAAGvC,IAAI,CAClBwC,QAAQ,CAACxC,IAAI,CAACyC,OAAO,CAACpB,qBAAqB,CAAC,EAAEM,yBAAyB,CAAC,CACxEe,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC;IAE9B9B,OAAO,CAAC+B,mBAAmB,CAACtB,qBAAqB,CAAC;IAElD,MAAMuB,MAAM,GAAGhC,OAAO,CAACiC,oBAAoB,CAACxB,qBAAqB,CAAC;IAElE,MAAMyB,yBAAyB,GAAGF,MAAM,CAACG,oBAAoB,CAACR,UAAU,CAAC;IACzE,IAAIO,yBAAyB,EAAE;MAC3B;IACJ;;IAEA;IACA,MAAME,gBAAgB,GAAG,IAAI9C,OAAO,CAAC,CAAC;IACtC8C,gBAAgB,CAACL,mBAAmB,CAAChB,yBAAyB,CAAC;IAC/D,MAAMsB,eAAe,GAAGD,gBAAgB,CAACH,oBAAoB,CAAClB,yBAAyB,CAAC;IACxF,MAAMuB,gBAAgB,GAAGD,eAAe,CAACE,sBAAsB,CAAC,CAAC,KAAKC,SAAS;IAE/E,IAAIC,KAAK,GAAG,CAAC;IAEb,MAAMC,kBAAkB,GAAGV,MAAM,CAACW,qBAAqB,CAAC,CAAC;IACzD,IAAID,kBAAkB,CAACE,MAAM,EAAE;MAC3B,MAAMC,IAAI,GAAGH,kBAAkB,CAACA,kBAAkB,CAACE,MAAM,GAAG,CAAC,CAAC;MAC9DH,KAAK,GAAGI,IAAI,CAACC,aAAa,CAAC,CAAC,GAAG,CAAC;IACpC;;IAEA;IACA,IAAIR,gBAAgB,EAAE;MAClBN,MAAM,CAACe,uBAAuB,CAACN,KAAK,EAAE;QAClCO,aAAa,EAAEvB,aAAa;QAC5BwB,eAAe,EAAEtB;MACrB,CAAC,CAAC;IACN,CAAC,MAAM;MACHK,MAAM,CAACe,uBAAuB,CAACN,KAAK,EAAE;QAClCS,YAAY,EAAE,CAAC;UAAE9B,IAAI,EAAEjB,UAAU;UAAEgD,KAAK,EAAE1B;QAAc,CAAC,CAAC;QAC1DwB,eAAe,EAAEtB;MACrB,CAAC,CAAC;IACN;IAEA,MAAMyB,oBAAoB,GAAGpB,MAAM,CAACqB,kBAAkB,CAACC,IAAI,IAAI;MAC3D,IAAI,CAACjE,IAAI,CAACkE,YAAY,CAACD,IAAI,CAAC,EAAE;QAC1B,OAAO,KAAK;MAChB;MAEA,OAAOA,IAAI,CAACE,OAAO,CAAC,CAAC,KAAK,YAAY;IAC1C,CAAC,CAAC;IAEF,IAAI,CAACJ,oBAAoB,EAAE;MACvB,MAAM,IAAIK,KAAK,CACX,uDAAuDhD,qBAAqB,oDAChF,CAAC;IACL;IAEA,MAAMiD,iBAAiB,GAAGN,oBAAoB,CAACO,cAAc,CAACL,IAAI,IAC9DjE,IAAI,CAACuE,eAAe,CAACN,IAAI,CAC7B,CAAC;IACD,IAAI,CAACI,iBAAiB,EAAE;MACpB,MAAM,IAAID,KAAK,CACX,uDAAuDhD,qBAAqB,yEAChF,CAAC;IACL;IAEA,MAAMoD,yBAAyB,GAAGH,iBAAiB,CAACL,kBAAkB,CAACC,IAAI,IAAI;MAC3E,OAAOjE,IAAI,CAACyE,aAAa,CAACR,IAAI,CAAC;IACnC,CAAC,CAAgB;IAEjB,MAAMS,qCAAqC,GAAGF,yBAAyB,CAClEG,WAAW,CAAC,CAAC,CACblC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CACjBA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAClBmC,IAAI,CAAC,CAAC;IAEXJ,yBAAyB,CAACK,eAAe,CACrC,MAAMzC,aAAa,KAAKsC,qCAAqC,KACjE,CAAC;IAED,MAAM/B,MAAM,CAACmC,IAAI,CAAC,CAAC;EACvB;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"extensions/AdminExtension.js","sources":["../../src/extensions/AdminExtension.ts"],"sourcesContent":["import { defineExtension, zodSrcPath } from \"~/extensions/index.js\";\nimport { ExtensionSrcResolver } from \"~/index.js\";\nimport { z } from \"zod\";\nimport path from \"path\";\nimport { type JsxFragment, Node, Project } from \"ts-morph\";\nimport crypto from \"crypto\";\n\nexport const AdminExtension = defineExtension({\n type: \"Admin/Extension\",\n tags: { runtimeContext: \"app-build\", appName: \"admin\" },\n description: \"Extend the Admin application with custom functionality.\",\n multiple: true,\n paramsSchema: ({ project }) => {\n return z.object({\n src: zodSrcPath({ project }),\n exportName: z.string().optional()\n });\n },\n async build(params, ctx) {\n const extensionsTsxFilePath = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"admin\", \"src\", \"Extensions.tsx\")\n .toString();\n\n const { src: extensionFilePath } = params;\n\n // Resolve to absolute path for file operations.\n const absoluteExtensionFilePath = ExtensionSrcResolver.resolvePath(\n extensionFilePath,\n ctx.project\n );\n\n const extensionFileName = path.basename(absoluteExtensionFilePath);\n\n // Export name can be customized or defaults to the file name without extension.\n const exportName = params.exportName ?? path.parse(extensionFileName).name;\n\n // Generate a constant hash-based component name to avoid using timestamps.\n const hash = crypto.createHash(\"sha256\").update(extensionFilePath).digest(\"hex\");\n const componentName = `AdminExtension_${hash.slice(-10)}`;\n\n const project = new Project();\n\n const importPath = path\n .relative(path.dirname(extensionsTsxFilePath), absoluteExtensionFilePath)\n .replace(/\\.tsx?$/, \".js\");\n\n project.addSourceFileAtPath(extensionsTsxFilePath);\n\n const source = project.getSourceFileOrThrow(extensionsTsxFilePath);\n\n const existingImportDeclaration = source.getImportDeclaration(importPath);\n if (existingImportDeclaration) {\n return;\n }\n\n // Check if the extension file has a default export or named export.\n const extensionProject = new Project();\n extensionProject.addSourceFileAtPath(absoluteExtensionFilePath);\n const extensionSource = extensionProject.getSourceFileOrThrow(absoluteExtensionFilePath);\n const hasDefaultExport = extensionSource.getDefaultExportSymbol() !== undefined;\n\n let index = 1;\n\n const importDeclarations = source.getImportDeclarations();\n if (importDeclarations.length) {\n const last = importDeclarations[importDeclarations.length - 1];\n index = last.getChildIndex() + 1;\n }\n\n // Import as default export if available, otherwise import named export.\n if (hasDefaultExport) {\n source.insertImportDeclaration(index, {\n defaultImport: componentName,\n moduleSpecifier: importPath\n });\n } else {\n source.insertImportDeclaration(index, {\n namedImports: [{ name: exportName, alias: componentName }],\n moduleSpecifier: importPath\n });\n }\n\n const extensionsIdentifier = source.getFirstDescendant(node => {\n if (!Node.isIdentifier(node)) {\n return false;\n }\n\n return node.getText() === \"Extensions\";\n });\n\n if (!extensionsIdentifier) {\n throw new Error(\n `Could not find the \"Extensions\" React component in \"${extensionsTsxFilePath}\". Did you maybe change the name of the component?`\n );\n }\n\n const extensionsArrowFn = extensionsIdentifier.getNextSibling(node =>\n Node.isArrowFunction(node)\n );\n if (!extensionsArrowFn) {\n throw new Error(\n `Could not find the \"Extensions\" React component in \"${extensionsTsxFilePath}\". Did you maybe change its definition? It should be an arrow function.`\n );\n }\n\n const extensionsArrowFnFragment = extensionsArrowFn.getFirstDescendant(node => {\n return Node.isJsxFragment(node);\n }) as JsxFragment;\n\n const extensionsArrowFnFragmentChildrenText = extensionsArrowFnFragment\n .getFullText()\n .replace(\"<>\", \"\")\n .replace(\"</>\", \"\")\n .trim();\n\n extensionsArrowFnFragment.replaceWithText(\n `<><${componentName}/>${extensionsArrowFnFragmentChildrenText}</>`\n );\n\n await source.save();\n }\n});\n"],"names":["AdminExtension","defineExtension","project","z","zodSrcPath","params","ctx","extensionsTsxFilePath","extensionFilePath","absoluteExtensionFilePath","ExtensionSrcResolver","extensionFileName","path","exportName","hash","crypto","componentName","Project","importPath","source","existingImportDeclaration","extensionProject","extensionSource","hasDefaultExport","undefined","index","importDeclarations","last","extensionsIdentifier","node","Node","Error","extensionsArrowFn","extensionsArrowFnFragment","extensionsArrowFnFragmentChildrenText"],"mappings":";;;;;;AAOO,MAAMA,iBAAiBC,gBAAgB;IAC1C,MAAM;IACN,MAAM;QAAE,gBAAgB;QAAa,SAAS;IAAQ;IACtD,aAAa;IACb,UAAU;IACV,cAAc,CAAC,EAAEC,OAAO,EAAE,GACfC,EAAE,MAAM,CAAC;YACZ,KAAKC,WAAW;gBAAEF;YAAQ;YAC1B,YAAYC,EAAE,MAAM,GAAG,QAAQ;QACnC;IAEJ,MAAM,OAAME,MAAM,EAAEC,GAAG;QACnB,MAAMC,wBAAwBD,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,CAC1D,IAAI,CAAC,QAAQ,SAAS,OAAO,kBAC7B,QAAQ;QAEb,MAAM,EAAE,KAAKE,iBAAiB,EAAE,GAAGH;QAGnC,MAAMI,4BAA4BC,qBAAqB,WAAW,CAC9DF,mBACAF,IAAI,OAAO;QAGf,MAAMK,oBAAoBC,KAAK,QAAQ,CAACH;QAGxC,MAAMI,aAAaR,OAAO,UAAU,IAAIO,KAAK,KAAK,CAACD,mBAAmB,IAAI;QAG1E,MAAMG,OAAOC,SAAAA,UAAiB,CAAC,UAAU,MAAM,CAACP,mBAAmB,MAAM,CAAC;QAC1E,MAAMQ,gBAAgB,CAAC,eAAe,EAAEF,KAAK,KAAK,CAAC,MAAM;QAEzD,MAAMZ,UAAU,IAAIe;QAEpB,MAAMC,aAAaN,KAAAA,QACN,CAACA,KAAK,OAAO,CAACL,wBAAwBE,2BAC9C,OAAO,CAAC,WAAW;QAExBP,QAAQ,mBAAmB,CAACK;QAE5B,MAAMY,SAASjB,QAAQ,oBAAoB,CAACK;QAE5C,MAAMa,4BAA4BD,OAAO,oBAAoB,CAACD;QAC9D,IAAIE,2BACA;QAIJ,MAAMC,mBAAmB,IAAIJ;QAC7BI,iBAAiB,mBAAmB,CAACZ;QACrC,MAAMa,kBAAkBD,iBAAiB,oBAAoB,CAACZ;QAC9D,MAAMc,mBAAmBD,AAA6CE,WAA7CF,gBAAgB,sBAAsB;QAE/D,IAAIG,QAAQ;QAEZ,MAAMC,qBAAqBP,OAAO,qBAAqB;QACvD,IAAIO,mBAAmB,MAAM,EAAE;YAC3B,MAAMC,OAAOD,kBAAkB,CAACA,mBAAmB,MAAM,GAAG,EAAE;YAC9DD,QAAQE,KAAK,aAAa,KAAK;QACnC;QAGA,IAAIJ,kBACAJ,OAAO,uBAAuB,CAACM,OAAO;YAClC,eAAeT;YACf,iBAAiBE;QACrB;aAEAC,OAAO,uBAAuB,CAACM,OAAO;YAClC,cAAc;gBAAC;oBAAE,MAAMZ;oBAAY,OAAOG;gBAAc;aAAE;YAC1D,iBAAiBE;QACrB;QAGJ,MAAMU,uBAAuBT,OAAO,kBAAkB,CAACU,CAAAA;YACnD,IAAI,CAACC,KAAK,YAAY,CAACD,OACnB,OAAO;YAGX,OAAOA,AAAmB,iBAAnBA,KAAK,OAAO;QACvB;QAEA,IAAI,CAACD,sBACD,MAAM,IAAIG,MACN,CAAC,oDAAoD,EAAExB,sBAAsB,kDAAkD,CAAC;QAIxI,MAAMyB,oBAAoBJ,qBAAqB,cAAc,CAACC,CAAAA,OAC1DC,KAAK,eAAe,CAACD;QAEzB,IAAI,CAACG,mBACD,MAAM,IAAID,MACN,CAAC,oDAAoD,EAAExB,sBAAsB,uEAAuE,CAAC;QAI7J,MAAM0B,4BAA4BD,kBAAkB,kBAAkB,CAACH,CAAAA,OAC5DC,KAAK,aAAa,CAACD;QAG9B,MAAMK,wCAAwCD,0BACzC,WAAW,GACX,OAAO,CAAC,MAAM,IACd,OAAO,CAAC,OAAO,IACf,IAAI;QAETA,0BAA0B,eAAe,CACrC,CAAC,GAAG,EAAEjB,cAAc,EAAE,EAAEkB,sCAAsC,GAAG,CAAC;QAGtE,MAAMf,OAAO,IAAI;IACrB;AACJ"}
@@ -1,11 +1,5 @@
1
1
  import { z } from "zod";
2
2
  export declare const BuildParam: import("~/defineExtension/index.js").ExtensionComponent<z.ZodObject<{
3
3
  paramName: z.ZodString;
4
- value: z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodAny>, z.ZodArray<z.ZodAny, "many">, z.ZodNumber, z.ZodBoolean]>;
5
- }, "strip", z.ZodTypeAny, {
6
- value: string | number | boolean | any[] | Record<string, any>;
7
- paramName: string;
8
- }, {
9
- value: string | number | boolean | any[] | Record<string, any>;
10
- paramName: string;
11
- }>>;
4
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodAny>, z.ZodArray<z.ZodAny>, z.ZodNumber, z.ZodBoolean]>;
5
+ }, z.core.$strip>>;
@@ -1,53 +1,42 @@
1
1
  import { z } from "zod";
2
2
  import { Node, Project } from "ts-morph";
3
3
  import { defineExtension } from "../defineExtension/index.js";
4
- import crypto from "crypto";
4
+ import crypto_0 from "crypto";
5
5
  import path from "path";
6
6
  import fs from "fs";
7
- export const BuildParam = defineExtension({
8
- type: "Api/BuildParam",
9
- tags: {
10
- runtimeContext: "app-build",
11
- appName: "api"
12
- },
13
- description: "Add build-time parameter to API app.",
14
- multiple: true,
15
- paramsSchema: () => {
16
- return z.object({
17
- paramName: z.string(),
18
- value: z.union([z.string(), z.record(z.any()), z.array(z.any()), z.number(), z.boolean()])
19
- });
20
- },
21
- async build(params, ctx) {
22
- const extensionsTsFilePath = ctx.project.paths.workspaceFolder.join("apps", "api", "graphql", "src", "extensions.ts").toString();
23
- const buildParamsDir = ctx.project.paths.workspaceFolder.join("apps", "api", "graphql", "src", "buildParams").toString();
24
- const {
25
- paramName,
26
- value
27
- } = params;
28
-
29
- // Serialize value to a TypeScript literal.
30
- const valueStr = JSON.stringify(value, null, 4);
31
-
32
- // Generate a unique class name based on the paramName.
33
- const hash = crypto.createHash("sha256").update(paramName).digest("hex");
34
- const className = `BuildParam_${hash.slice(-10)}`;
35
- const fileName = `${className}.ts`;
36
- const filePath = path.join(buildParamsDir, fileName);
37
-
38
- // Ensure buildParams directory exists.
39
- if (!fs.existsSync(buildParamsDir)) {
40
- fs.mkdirSync(buildParamsDir, {
41
- recursive: true
42
- });
43
- }
44
-
45
- // Check if file already exists.
46
- if (fs.existsSync(filePath)) {
47
- // File exists, just ensure it's imported in extensions.ts
48
- } else {
49
- // Create the BuildParam implementation file.
50
- const fileContent = `import { BuildParam } from "webiny/api/build-params";
7
+ const BuildParam = defineExtension({
8
+ type: "Api/BuildParam",
9
+ tags: {
10
+ runtimeContext: "app-build",
11
+ appName: "api"
12
+ },
13
+ description: "Add build-time parameter to API app.",
14
+ multiple: true,
15
+ paramsSchema: ()=>z.object({
16
+ paramName: z.string(),
17
+ value: z.union([
18
+ z.string(),
19
+ z.record(z.string(), z.any()),
20
+ z.array(z.any()),
21
+ z.number(),
22
+ z.boolean()
23
+ ])
24
+ }),
25
+ async build (params, ctx) {
26
+ const extensionsTsFilePath = ctx.project.paths.workspaceFolder.join("apps", "api", "graphql", "src", "extensions.ts").toString();
27
+ const buildParamsDir = ctx.project.paths.workspaceFolder.join("apps", "api", "graphql", "src", "buildParams").toString();
28
+ const { paramName, value } = params;
29
+ const valueStr = JSON.stringify(value, null, 4);
30
+ const hash = crypto_0.createHash("sha256").update(paramName).digest("hex");
31
+ const className = `BuildParam_${hash.slice(-10)}`;
32
+ const fileName = `${className}.ts`;
33
+ const filePath = path.join(buildParamsDir, fileName);
34
+ if (!fs.existsSync(buildParamsDir)) fs.mkdirSync(buildParamsDir, {
35
+ recursive: true
36
+ });
37
+ if (fs.existsSync(filePath)) ;
38
+ else {
39
+ const fileContent = `import { BuildParam } from "webiny/api/build-params";
51
40
 
52
41
  class ${className} implements BuildParam.Interface {
53
42
  key = "${paramName}";
@@ -59,61 +48,46 @@ export default BuildParam.createImplementation({
59
48
  dependencies: []
60
49
  });
61
50
  `;
62
- fs.writeFileSync(filePath, fileContent, "utf8");
63
- }
64
-
65
- // Now update extensions.ts to import and register this BuildParam.
66
- const project = new Project();
67
- project.addSourceFileAtPath(extensionsTsFilePath);
68
- const source = project.getSourceFileOrThrow(extensionsTsFilePath);
69
-
70
- // Calculate import path relative to extensions.ts.
71
- let importPath = path.relative(path.dirname(extensionsTsFilePath), filePath).replace(/\.tsx?$/, ".js");
72
-
73
- // Ensure the path starts with ./
74
- if (!importPath.startsWith(".")) {
75
- importPath = "./" + importPath;
76
- }
77
-
78
- // Check if import already exists.
79
- const existingImportDeclaration = source.getImportDeclaration(importPath);
80
- if (existingImportDeclaration) {
81
- return;
82
- }
83
- let index = 1;
84
- const importDeclarations = source.getImportDeclarations();
85
- if (importDeclarations.length) {
86
- const last = importDeclarations[importDeclarations.length - 1];
87
- index = last.getChildIndex() + 1;
88
- }
89
-
90
- // Add import for the BuildParam implementation.
91
- source.insertImportDeclaration(index, {
92
- defaultImport: className,
93
- moduleSpecifier: importPath
94
- });
95
-
96
- // Add the registration to the plugins array.
97
- const pluginsArray = source.getFirstDescendant(node => Node.isArrayLiteralExpression(node));
98
- pluginsArray.addElement(`\ncreateContextPlugin(ctx => {\n\tregisterExtension(ctx.container, ${className});\n})`);
99
- {
100
- let index = 1;
101
- const importDeclarations = source.getImportDeclarations();
102
- if (importDeclarations.length) {
103
- const last = importDeclarations[importDeclarations.length - 1];
104
- index = last.getChildIndex() + 1;
105
- }
106
- const contextPluginImportPath = "@webiny/api/plugins/ContextPlugin";
107
- const existingContextPluginImport = source.getImportDeclaration(contextPluginImportPath);
108
- if (!existingContextPluginImport) {
51
+ fs.writeFileSync(filePath, fileContent, "utf8");
52
+ }
53
+ const project = new Project();
54
+ project.addSourceFileAtPath(extensionsTsFilePath);
55
+ const source = project.getSourceFileOrThrow(extensionsTsFilePath);
56
+ let importPath = path.relative(path.dirname(extensionsTsFilePath), filePath).replace(/\.tsx?$/, ".js");
57
+ if (!importPath.startsWith(".")) importPath = "./" + importPath;
58
+ const existingImportDeclaration = source.getImportDeclaration(importPath);
59
+ if (existingImportDeclaration) return;
60
+ let index = 1;
61
+ const importDeclarations = source.getImportDeclarations();
62
+ if (importDeclarations.length) {
63
+ const last = importDeclarations[importDeclarations.length - 1];
64
+ index = last.getChildIndex() + 1;
65
+ }
109
66
  source.insertImportDeclaration(index, {
110
- namedImports: ["createContextPlugin"],
111
- moduleSpecifier: contextPluginImportPath
67
+ defaultImport: className,
68
+ moduleSpecifier: importPath
112
69
  });
113
- }
70
+ const pluginsArray = source.getFirstDescendant((node)=>Node.isArrayLiteralExpression(node));
71
+ pluginsArray.addElement(`\ncreateRegisterExtensionPlugin(ctx => {\n\tregisterExtension(ctx.container, ${className});\n})`);
72
+ {
73
+ let index = 1;
74
+ const importDeclarations = source.getImportDeclarations();
75
+ if (importDeclarations.length) {
76
+ const last = importDeclarations[importDeclarations.length - 1];
77
+ index = last.getChildIndex() + 1;
78
+ }
79
+ const contextPluginImportPath = "@webiny/handler/plugins/RegisterExtensionPlugin.js";
80
+ const existingContextPluginImport = source.getImportDeclaration(contextPluginImportPath);
81
+ if (!existingContextPluginImport) source.insertImportDeclaration(index, {
82
+ namedImports: [
83
+ "createRegisterExtensionPlugin"
84
+ ],
85
+ moduleSpecifier: contextPluginImportPath
86
+ });
87
+ }
88
+ await source.save();
114
89
  }
115
- await source.save();
116
- }
117
90
  });
91
+ export { BuildParam };
118
92
 
119
93
  //# sourceMappingURL=ApiBuildParam.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["z","Node","Project","defineExtension","crypto","path","fs","BuildParam","type","tags","runtimeContext","appName","description","multiple","paramsSchema","object","paramName","string","value","union","record","any","array","number","boolean","build","params","ctx","extensionsTsFilePath","project","paths","workspaceFolder","join","toString","buildParamsDir","valueStr","JSON","stringify","hash","createHash","update","digest","className","slice","fileName","filePath","existsSync","mkdirSync","recursive","fileContent","writeFileSync","addSourceFileAtPath","source","getSourceFileOrThrow","importPath","relative","dirname","replace","startsWith","existingImportDeclaration","getImportDeclaration","index","importDeclarations","getImportDeclarations","length","last","getChildIndex","insertImportDeclaration","defaultImport","moduleSpecifier","pluginsArray","getFirstDescendant","node","isArrayLiteralExpression","addElement","contextPluginImportPath","existingContextPluginImport","namedImports","save"],"sources":["ApiBuildParam.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { Node, Project, ArrayLiteralExpression } from \"ts-morph\";\nimport { defineExtension } from \"~/defineExtension/index.js\";\nimport crypto from \"crypto\";\nimport path from \"path\";\nimport fs from \"fs\";\n\nexport const BuildParam = defineExtension({\n type: \"Api/BuildParam\",\n tags: { runtimeContext: \"app-build\", appName: \"api\" },\n description: \"Add build-time parameter to API app.\",\n multiple: true,\n paramsSchema: () => {\n return z.object({\n paramName: z.string(),\n value: z.union([\n z.string(),\n z.record(z.any()),\n z.array(z.any()),\n z.number(),\n z.boolean()\n ])\n });\n },\n async build(params, ctx) {\n const extensionsTsFilePath = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"api\", \"graphql\", \"src\", \"extensions.ts\")\n .toString();\n\n const buildParamsDir = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"api\", \"graphql\", \"src\", \"buildParams\")\n .toString();\n\n const { paramName, value } = params;\n\n // Serialize value to a TypeScript literal.\n const valueStr = JSON.stringify(value, null, 4);\n\n // Generate a unique class name based on the paramName.\n const hash = crypto.createHash(\"sha256\").update(paramName).digest(\"hex\");\n const className = `BuildParam_${hash.slice(-10)}`;\n const fileName = `${className}.ts`;\n const filePath = path.join(buildParamsDir, fileName);\n\n // Ensure buildParams directory exists.\n if (!fs.existsSync(buildParamsDir)) {\n fs.mkdirSync(buildParamsDir, { recursive: true });\n }\n\n // Check if file already exists.\n if (fs.existsSync(filePath)) {\n // File exists, just ensure it's imported in extensions.ts\n } else {\n // Create the BuildParam implementation file.\n const fileContent = `import { BuildParam } from \"webiny/api/build-params\";\n\nclass ${className} implements BuildParam.Interface {\n key = \"${paramName}\";\n value = ${valueStr};\n}\n\nexport default BuildParam.createImplementation({\n implementation: ${className},\n dependencies: []\n});\n`;\n fs.writeFileSync(filePath, fileContent, \"utf8\");\n }\n\n // Now update extensions.ts to import and register this BuildParam.\n const project = new Project();\n project.addSourceFileAtPath(extensionsTsFilePath);\n\n const source = project.getSourceFileOrThrow(extensionsTsFilePath);\n\n // Calculate import path relative to extensions.ts.\n let importPath = path\n .relative(path.dirname(extensionsTsFilePath), filePath)\n .replace(/\\.tsx?$/, \".js\");\n\n // Ensure the path starts with ./\n if (!importPath.startsWith(\".\")) {\n importPath = \"./\" + importPath;\n }\n\n // Check if import already exists.\n const existingImportDeclaration = source.getImportDeclaration(importPath);\n if (existingImportDeclaration) {\n return;\n }\n\n let index = 1;\n\n const importDeclarations = source.getImportDeclarations();\n if (importDeclarations.length) {\n const last = importDeclarations[importDeclarations.length - 1];\n index = last.getChildIndex() + 1;\n }\n\n // Add import for the BuildParam implementation.\n source.insertImportDeclaration(index, {\n defaultImport: className,\n moduleSpecifier: importPath\n });\n\n // Add the registration to the plugins array.\n const pluginsArray = source.getFirstDescendant(node =>\n Node.isArrayLiteralExpression(node)\n ) as ArrayLiteralExpression;\n\n pluginsArray.addElement(\n `\\ncreateContextPlugin(ctx => {\\n\\tregisterExtension(ctx.container, ${className});\\n})`\n );\n\n {\n let index = 1;\n\n const importDeclarations = source.getImportDeclarations();\n if (importDeclarations.length) {\n const last = importDeclarations[importDeclarations.length - 1];\n index = last.getChildIndex() + 1;\n }\n\n const contextPluginImportPath = \"@webiny/api/plugins/ContextPlugin\";\n const existingContextPluginImport =\n source.getImportDeclaration(contextPluginImportPath);\n if (!existingContextPluginImport) {\n source.insertImportDeclaration(index, {\n namedImports: [\"createContextPlugin\"],\n moduleSpecifier: contextPluginImportPath\n });\n }\n }\n\n await source.save();\n }\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"extensions/ApiBuildParam.js","sources":["../../src/extensions/ApiBuildParam.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { Node, Project, ArrayLiteralExpression } from \"ts-morph\";\nimport { defineExtension } from \"~/defineExtension/index.js\";\nimport crypto from \"crypto\";\nimport path from \"path\";\nimport fs from \"fs\";\n\nexport const BuildParam = defineExtension({\n type: \"Api/BuildParam\",\n tags: { runtimeContext: \"app-build\", appName: \"api\" },\n description: \"Add build-time parameter to API app.\",\n multiple: true,\n paramsSchema: () => {\n return z.object({\n paramName: z.string(),\n value: z.union([\n z.string(),\n z.record(z.string(), z.any()),\n z.array(z.any()),\n z.number(),\n z.boolean()\n ])\n });\n },\n async build(params, ctx) {\n const extensionsTsFilePath = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"api\", \"graphql\", \"src\", \"extensions.ts\")\n .toString();\n\n const buildParamsDir = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"api\", \"graphql\", \"src\", \"buildParams\")\n .toString();\n\n const { paramName, value } = params;\n\n // Serialize value to a TypeScript literal.\n const valueStr = JSON.stringify(value, null, 4);\n\n // Generate a unique class name based on the paramName.\n const hash = crypto.createHash(\"sha256\").update(paramName).digest(\"hex\");\n const className = `BuildParam_${hash.slice(-10)}`;\n const fileName = `${className}.ts`;\n const filePath = path.join(buildParamsDir, fileName);\n\n // Ensure buildParams directory exists.\n if (!fs.existsSync(buildParamsDir)) {\n fs.mkdirSync(buildParamsDir, { recursive: true });\n }\n\n // Check if file already exists.\n if (fs.existsSync(filePath)) {\n // File exists, just ensure it's imported in extensions.ts\n } else {\n // Create the BuildParam implementation file.\n const fileContent = `import { BuildParam } from \"webiny/api/build-params\";\n\nclass ${className} implements BuildParam.Interface {\n key = \"${paramName}\";\n value = ${valueStr};\n}\n\nexport default BuildParam.createImplementation({\n implementation: ${className},\n dependencies: []\n});\n`;\n fs.writeFileSync(filePath, fileContent, \"utf8\");\n }\n\n // Now update extensions.ts to import and register this BuildParam.\n const project = new Project();\n project.addSourceFileAtPath(extensionsTsFilePath);\n\n const source = project.getSourceFileOrThrow(extensionsTsFilePath);\n\n // Calculate import path relative to extensions.ts.\n let importPath = path\n .relative(path.dirname(extensionsTsFilePath), filePath)\n .replace(/\\.tsx?$/, \".js\");\n\n // Ensure the path starts with ./\n if (!importPath.startsWith(\".\")) {\n importPath = \"./\" + importPath;\n }\n\n // Check if import already exists.\n const existingImportDeclaration = source.getImportDeclaration(importPath);\n if (existingImportDeclaration) {\n return;\n }\n\n let index = 1;\n\n const importDeclarations = source.getImportDeclarations();\n if (importDeclarations.length) {\n const last = importDeclarations[importDeclarations.length - 1];\n index = last.getChildIndex() + 1;\n }\n\n // Add import for the BuildParam implementation.\n source.insertImportDeclaration(index, {\n defaultImport: className,\n moduleSpecifier: importPath\n });\n\n // Add the registration to the plugins array.\n const pluginsArray = source.getFirstDescendant(node =>\n Node.isArrayLiteralExpression(node)\n ) as ArrayLiteralExpression;\n\n pluginsArray.addElement(\n `\\ncreateRegisterExtensionPlugin(ctx => {\\n\\tregisterExtension(ctx.container, ${className});\\n})`\n );\n\n {\n let index = 1;\n\n const importDeclarations = source.getImportDeclarations();\n if (importDeclarations.length) {\n const last = importDeclarations[importDeclarations.length - 1];\n index = last.getChildIndex() + 1;\n }\n\n const contextPluginImportPath = \"@webiny/handler/plugins/RegisterExtensionPlugin.js\";\n const existingContextPluginImport =\n source.getImportDeclaration(contextPluginImportPath);\n if (!existingContextPluginImport) {\n source.insertImportDeclaration(index, {\n namedImports: [\"createRegisterExtensionPlugin\"],\n moduleSpecifier: contextPluginImportPath\n });\n }\n }\n\n await source.save();\n }\n});\n"],"names":["BuildParam","defineExtension","z","params","ctx","extensionsTsFilePath","buildParamsDir","paramName","value","valueStr","JSON","hash","crypto","className","fileName","filePath","path","fs","fileContent","project","Project","source","importPath","existingImportDeclaration","index","importDeclarations","last","pluginsArray","node","Node","contextPluginImportPath","existingContextPluginImport"],"mappings":"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"}
@@ -1,11 +1,5 @@
1
1
  import { z } from "zod";
2
2
  export declare const ApiExtension: import("~/extensions/index.js").ExtensionComponent<z.ZodObject<{
3
- src: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
3
+ src: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
4
4
  exportName: z.ZodOptional<z.ZodString>;
5
- }, "strip", z.ZodTypeAny, {
6
- src: string;
7
- exportName?: string | undefined;
8
- }, {
9
- src: string;
10
- exportName?: string | undefined;
11
- }>>;
5
+ }, z.core.$strip>>;