@uapkg/cli 1.3.0 → 1.3.2

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 (412) hide show
  1. package/dist/app/CompositionRoot.d.ts +36 -33
  2. package/dist/app/CompositionRoot.d.ts.map +1 -1
  3. package/dist/app/CompositionRoot.js +91 -109
  4. package/dist/app/CompositionRoot.js.map +1 -1
  5. package/dist/app/UAPKGApplication.d.ts +6 -3
  6. package/dist/app/UAPKGApplication.d.ts.map +1 -1
  7. package/dist/app/UAPKGApplication.js +155 -169
  8. package/dist/app/UAPKGApplication.js.map +1 -1
  9. package/dist/build/BuildMetadata.d.ts +9 -6
  10. package/dist/build/BuildMetadata.d.ts.map +1 -1
  11. package/dist/build/BuildMetadata.js +2 -2
  12. package/dist/cli/UAPKGCommandLine.d.ts +259 -257
  13. package/dist/cli/UAPKGCommandLine.d.ts.map +1 -1
  14. package/dist/cli/UAPKGCommandLine.js +248 -239
  15. package/dist/cli/UAPKGCommandLine.js.map +1 -1
  16. package/dist/cli/parseCommandLine.d.ts +5 -1
  17. package/dist/cli/parseCommandLine.d.ts.map +1 -1
  18. package/dist/cli/parseCommandLine.js +8 -3
  19. package/dist/cli/parseCommandLine.js.map +1 -1
  20. package/dist/cli/parsing/UAPKGCommandLineParser.d.ts +9 -6
  21. package/dist/cli/parsing/UAPKGCommandLineParser.d.ts.map +1 -1
  22. package/dist/cli/parsing/UAPKGCommandLineParser.js +23 -31
  23. package/dist/cli/parsing/UAPKGCommandLineParser.js.map +1 -1
  24. package/dist/cli/parsing/UAPKGParserRegistry.d.ts +12 -9
  25. package/dist/cli/parsing/UAPKGParserRegistry.d.ts.map +1 -1
  26. package/dist/cli/parsing/UAPKGParserRegistry.js +53 -50
  27. package/dist/cli/parsing/UAPKGParserRegistry.js.map +1 -1
  28. package/dist/cli/parsing/contracts/UAPKGCommandModule.d.ts +9 -6
  29. package/dist/cli/parsing/contracts/UAPKGCommandModule.d.ts.map +1 -1
  30. package/dist/cli/parsing/contracts/UAPKGCommandModule.js +1 -2
  31. package/dist/cli/parsing/modules/AddCommandModule.d.ts +8 -5
  32. package/dist/cli/parsing/modules/AddCommandModule.d.ts.map +1 -1
  33. package/dist/cli/parsing/modules/AddCommandModule.js +49 -36
  34. package/dist/cli/parsing/modules/AddCommandModule.js.map +1 -1
  35. package/dist/cli/parsing/modules/ConfigCommandModule.d.ts +8 -5
  36. package/dist/cli/parsing/modules/ConfigCommandModule.d.ts.map +1 -1
  37. package/dist/cli/parsing/modules/ConfigCommandModule.js +87 -83
  38. package/dist/cli/parsing/modules/ConfigCommandModule.js.map +1 -1
  39. package/dist/cli/parsing/modules/InitCommandModule.d.ts +8 -5
  40. package/dist/cli/parsing/modules/InitCommandModule.d.ts.map +1 -1
  41. package/dist/cli/parsing/modules/InitCommandModule.js +25 -22
  42. package/dist/cli/parsing/modules/InitCommandModule.js.map +1 -1
  43. package/dist/cli/parsing/modules/InstallCommandModule.d.ts +8 -5
  44. package/dist/cli/parsing/modules/InstallCommandModule.d.ts.map +1 -1
  45. package/dist/cli/parsing/modules/InstallCommandModule.js +36 -28
  46. package/dist/cli/parsing/modules/InstallCommandModule.js.map +1 -1
  47. package/dist/cli/parsing/modules/LifecycleCommandModule.d.ts +8 -5
  48. package/dist/cli/parsing/modules/LifecycleCommandModule.d.ts.map +1 -1
  49. package/dist/cli/parsing/modules/LifecycleCommandModule.js +78 -50
  50. package/dist/cli/parsing/modules/LifecycleCommandModule.js.map +1 -1
  51. package/dist/cli/parsing/modules/ListCommandModule.d.ts +8 -5
  52. package/dist/cli/parsing/modules/ListCommandModule.d.ts.map +1 -1
  53. package/dist/cli/parsing/modules/ListCommandModule.js +26 -15
  54. package/dist/cli/parsing/modules/ListCommandModule.js.map +1 -1
  55. package/dist/cli/parsing/modules/LoginCommandModule.d.ts +8 -5
  56. package/dist/cli/parsing/modules/LoginCommandModule.d.ts.map +1 -1
  57. package/dist/cli/parsing/modules/LoginCommandModule.js +34 -33
  58. package/dist/cli/parsing/modules/LoginCommandModule.js.map +1 -1
  59. package/dist/cli/parsing/modules/LogoutCommandModule.d.ts +8 -5
  60. package/dist/cli/parsing/modules/LogoutCommandModule.d.ts.map +1 -1
  61. package/dist/cli/parsing/modules/LogoutCommandModule.js +30 -28
  62. package/dist/cli/parsing/modules/LogoutCommandModule.js.map +1 -1
  63. package/dist/cli/parsing/modules/OutdatedCommandModule.d.ts +8 -5
  64. package/dist/cli/parsing/modules/OutdatedCommandModule.d.ts.map +1 -1
  65. package/dist/cli/parsing/modules/OutdatedCommandModule.js +21 -16
  66. package/dist/cli/parsing/modules/OutdatedCommandModule.js.map +1 -1
  67. package/dist/cli/parsing/modules/PackCommandModule.d.ts +8 -5
  68. package/dist/cli/parsing/modules/PackCommandModule.d.ts.map +1 -1
  69. package/dist/cli/parsing/modules/PackCommandModule.js +30 -28
  70. package/dist/cli/parsing/modules/PackCommandModule.js.map +1 -1
  71. package/dist/cli/parsing/modules/ProjectGetNameCommandModule.d.ts +8 -5
  72. package/dist/cli/parsing/modules/ProjectGetNameCommandModule.d.ts.map +1 -1
  73. package/dist/cli/parsing/modules/ProjectGetNameCommandModule.js +14 -11
  74. package/dist/cli/parsing/modules/ProjectGetNameCommandModule.js.map +1 -1
  75. package/dist/cli/parsing/modules/PublishCommandModule.d.ts +8 -5
  76. package/dist/cli/parsing/modules/PublishCommandModule.d.ts.map +1 -1
  77. package/dist/cli/parsing/modules/PublishCommandModule.js +63 -47
  78. package/dist/cli/parsing/modules/PublishCommandModule.js.map +1 -1
  79. package/dist/cli/parsing/modules/RegistryCommandModule.d.ts +8 -5
  80. package/dist/cli/parsing/modules/RegistryCommandModule.d.ts.map +1 -1
  81. package/dist/cli/parsing/modules/RegistryCommandModule.js +117 -120
  82. package/dist/cli/parsing/modules/RegistryCommandModule.js.map +1 -1
  83. package/dist/cli/parsing/modules/RemoveCommandModule.d.ts +8 -5
  84. package/dist/cli/parsing/modules/RemoveCommandModule.d.ts.map +1 -1
  85. package/dist/cli/parsing/modules/RemoveCommandModule.js +25 -14
  86. package/dist/cli/parsing/modules/RemoveCommandModule.js.map +1 -1
  87. package/dist/cli/parsing/modules/RequestsCommandModule.d.ts +8 -5
  88. package/dist/cli/parsing/modules/RequestsCommandModule.d.ts.map +1 -1
  89. package/dist/cli/parsing/modules/RequestsCommandModule.js +56 -60
  90. package/dist/cli/parsing/modules/RequestsCommandModule.js.map +1 -1
  91. package/dist/cli/parsing/modules/UpdateCommandModule.d.ts +8 -5
  92. package/dist/cli/parsing/modules/UpdateCommandModule.d.ts.map +1 -1
  93. package/dist/cli/parsing/modules/UpdateCommandModule.js +38 -25
  94. package/dist/cli/parsing/modules/UpdateCommandModule.js.map +1 -1
  95. package/dist/cli/parsing/modules/WhoamiCommandModule.d.ts +8 -5
  96. package/dist/cli/parsing/modules/WhoamiCommandModule.d.ts.map +1 -1
  97. package/dist/cli/parsing/modules/WhoamiCommandModule.js +30 -28
  98. package/dist/cli/parsing/modules/WhoamiCommandModule.js.map +1 -1
  99. package/dist/cli/parsing/modules/WhyCommandModule.d.ts +8 -5
  100. package/dist/cli/parsing/modules/WhyCommandModule.d.ts.map +1 -1
  101. package/dist/cli/parsing/modules/WhyCommandModule.js +25 -14
  102. package/dist/cli/parsing/modules/WhyCommandModule.js.map +1 -1
  103. package/dist/cli/parsing/modules/sharedOptions.d.ts +8 -5
  104. package/dist/cli/parsing/modules/sharedOptions.d.ts.map +1 -1
  105. package/dist/cli/parsing/modules/sharedOptions.js +18 -23
  106. package/dist/cli/parsing/modules/sharedOptions.js.map +1 -1
  107. package/dist/cli/runUAPKGCLI.d.ts +4 -1
  108. package/dist/cli/runUAPKGCLI.d.ts.map +1 -1
  109. package/dist/cli/runUAPKGCLI.js +10 -5
  110. package/dist/cli/runUAPKGCLI.js.map +1 -1
  111. package/dist/cli-bootstrap.d.ts +1 -2
  112. package/dist/cli-bootstrap.js +15 -12
  113. package/dist/cli-bootstrap.js.map +1 -1
  114. package/dist/commands/AddCommand.d.ts +19 -16
  115. package/dist/commands/AddCommand.d.ts.map +1 -1
  116. package/dist/commands/AddCommand.js +49 -53
  117. package/dist/commands/AddCommand.js.map +1 -1
  118. package/dist/commands/Command.d.ts +5 -2
  119. package/dist/commands/Command.d.ts.map +1 -1
  120. package/dist/commands/Command.js +1 -2
  121. package/dist/commands/ConfigCommand.d.ts +28 -25
  122. package/dist/commands/ConfigCommand.d.ts.map +1 -1
  123. package/dist/commands/ConfigCommand.js +165 -186
  124. package/dist/commands/ConfigCommand.js.map +1 -1
  125. package/dist/commands/InitCommand.d.ts +19 -16
  126. package/dist/commands/InitCommand.d.ts.map +1 -1
  127. package/dist/commands/InitCommand.js +65 -60
  128. package/dist/commands/InitCommand.js.map +1 -1
  129. package/dist/commands/InstallCommand.d.ts +16 -13
  130. package/dist/commands/InstallCommand.d.ts.map +1 -1
  131. package/dist/commands/InstallCommand.js +118 -110
  132. package/dist/commands/InstallCommand.js.map +1 -1
  133. package/dist/commands/ListCommand.d.ts +13 -10
  134. package/dist/commands/ListCommand.d.ts.map +1 -1
  135. package/dist/commands/ListCommand.js +76 -81
  136. package/dist/commands/ListCommand.js.map +1 -1
  137. package/dist/commands/LoginCommand.d.ts +17 -14
  138. package/dist/commands/LoginCommand.d.ts.map +1 -1
  139. package/dist/commands/LoginCommand.js +66 -72
  140. package/dist/commands/LoginCommand.js.map +1 -1
  141. package/dist/commands/LogoutCommand.d.ts +15 -12
  142. package/dist/commands/LogoutCommand.d.ts.map +1 -1
  143. package/dist/commands/LogoutCommand.js +36 -37
  144. package/dist/commands/LogoutCommand.js.map +1 -1
  145. package/dist/commands/OutdatedCommand.d.ts +12 -9
  146. package/dist/commands/OutdatedCommand.d.ts.map +1 -1
  147. package/dist/commands/OutdatedCommand.js +41 -40
  148. package/dist/commands/OutdatedCommand.js.map +1 -1
  149. package/dist/commands/PackCommand.d.ts +13 -10
  150. package/dist/commands/PackCommand.d.ts.map +1 -1
  151. package/dist/commands/PackCommand.js +26 -21
  152. package/dist/commands/PackCommand.js.map +1 -1
  153. package/dist/commands/PackageLifecycleCommand.d.ts +23 -19
  154. package/dist/commands/PackageLifecycleCommand.d.ts.map +1 -1
  155. package/dist/commands/PackageLifecycleCommand.js +144 -138
  156. package/dist/commands/PackageLifecycleCommand.js.map +1 -1
  157. package/dist/commands/PostinstallCandidateBuilder.d.ts +11 -8
  158. package/dist/commands/PostinstallCandidateBuilder.d.ts.map +1 -1
  159. package/dist/commands/PostinstallCandidateBuilder.js +42 -42
  160. package/dist/commands/PostinstallCandidateBuilder.js.map +1 -1
  161. package/dist/commands/ProjectGetNameCommand.d.ts +10 -7
  162. package/dist/commands/ProjectGetNameCommand.d.ts.map +1 -1
  163. package/dist/commands/ProjectGetNameCommand.js +25 -25
  164. package/dist/commands/ProjectGetNameCommand.js.map +1 -1
  165. package/dist/commands/PublishCommand.d.ts +29 -23
  166. package/dist/commands/PublishCommand.d.ts.map +1 -1
  167. package/dist/commands/PublishCommand.js +243 -254
  168. package/dist/commands/PublishCommand.js.map +1 -1
  169. package/dist/commands/RegistryCommand.d.ts +38 -35
  170. package/dist/commands/RegistryCommand.d.ts.map +1 -1
  171. package/dist/commands/RegistryCommand.js +195 -223
  172. package/dist/commands/RegistryCommand.js.map +1 -1
  173. package/dist/commands/RemoveCommand.d.ts +14 -11
  174. package/dist/commands/RemoveCommand.d.ts.map +1 -1
  175. package/dist/commands/RemoveCommand.js +47 -54
  176. package/dist/commands/RemoveCommand.js.map +1 -1
  177. package/dist/commands/RequestsCommand.d.ts +21 -18
  178. package/dist/commands/RequestsCommand.d.ts.map +1 -1
  179. package/dist/commands/RequestsCommand.js +82 -95
  180. package/dist/commands/RequestsCommand.js.map +1 -1
  181. package/dist/commands/UpdateCommand.d.ts +29 -26
  182. package/dist/commands/UpdateCommand.d.ts.map +1 -1
  183. package/dist/commands/UpdateCommand.js +111 -111
  184. package/dist/commands/UpdateCommand.js.map +1 -1
  185. package/dist/commands/WhoamiCommand.d.ts +30 -27
  186. package/dist/commands/WhoamiCommand.d.ts.map +1 -1
  187. package/dist/commands/WhoamiCommand.js +63 -72
  188. package/dist/commands/WhoamiCommand.js.map +1 -1
  189. package/dist/commands/WhyCommand.d.ts +13 -10
  190. package/dist/commands/WhyCommand.d.ts.map +1 -1
  191. package/dist/commands/WhyCommand.js +45 -44
  192. package/dist/commands/WhyCommand.js.map +1 -1
  193. package/dist/commands/add/DependencyAddResolver.d.ts +14 -11
  194. package/dist/commands/add/DependencyAddResolver.d.ts.map +1 -1
  195. package/dist/commands/add/DependencyAddResolver.js +36 -36
  196. package/dist/commands/add/DependencyAddResolver.js.map +1 -1
  197. package/dist/control-plane/AccountManager.d.ts +96 -94
  198. package/dist/control-plane/AccountManager.d.ts.map +1 -1
  199. package/dist/control-plane/AccountManager.js +775 -967
  200. package/dist/control-plane/AccountManager.js.map +1 -1
  201. package/dist/control-plane/ArtifactObserver.d.ts +19 -16
  202. package/dist/control-plane/ArtifactObserver.d.ts.map +1 -1
  203. package/dist/control-plane/ArtifactObserver.js +73 -59
  204. package/dist/control-plane/ArtifactObserver.js.map +1 -1
  205. package/dist/control-plane/AuthMetadataStore.d.ts +16 -13
  206. package/dist/control-plane/AuthMetadataStore.d.ts.map +1 -1
  207. package/dist/control-plane/AuthMetadataStore.js +111 -113
  208. package/dist/control-plane/AuthMetadataStore.js.map +1 -1
  209. package/dist/control-plane/AuthStoragePaths.d.ts +7 -4
  210. package/dist/control-plane/AuthStoragePaths.d.ts.map +1 -1
  211. package/dist/control-plane/AuthStoragePaths.js +19 -14
  212. package/dist/control-plane/AuthStoragePaths.js.map +1 -1
  213. package/dist/control-plane/AuthenticationSelector.d.ts +21 -18
  214. package/dist/control-plane/AuthenticationSelector.d.ts.map +1 -1
  215. package/dist/control-plane/AuthenticationSelector.js +69 -63
  216. package/dist/control-plane/AuthenticationSelector.js.map +1 -1
  217. package/dist/control-plane/ControlPlaneClient.d.ts +37 -28
  218. package/dist/control-plane/ControlPlaneClient.d.ts.map +1 -1
  219. package/dist/control-plane/ControlPlaneClient.js +265 -254
  220. package/dist/control-plane/ControlPlaneClient.js.map +1 -1
  221. package/dist/control-plane/ControlPlaneEndpoints.d.ts +9 -6
  222. package/dist/control-plane/ControlPlaneEndpoints.d.ts.map +1 -1
  223. package/dist/control-plane/ControlPlaneEndpoints.js +17 -12
  224. package/dist/control-plane/ControlPlaneEndpoints.js.map +1 -1
  225. package/dist/control-plane/ControlPlaneTypes.d.ts +176 -152
  226. package/dist/control-plane/ControlPlaneTypes.d.ts.map +1 -1
  227. package/dist/control-plane/ControlPlaneTypes.js +88 -81
  228. package/dist/control-plane/ControlPlaneTypes.js.map +1 -1
  229. package/dist/control-plane/CredentialStore.d.ts +20 -18
  230. package/dist/control-plane/CredentialStore.d.ts.map +1 -1
  231. package/dist/control-plane/CredentialStore.js +66 -83
  232. package/dist/control-plane/CredentialStore.js.map +1 -1
  233. package/dist/control-plane/DPoPKeyStore.d.ts +12 -9
  234. package/dist/control-plane/DPoPKeyStore.d.ts.map +1 -1
  235. package/dist/control-plane/DPoPKeyStore.js +57 -53
  236. package/dist/control-plane/DPoPKeyStore.js.map +1 -1
  237. package/dist/control-plane/GitHubActionsOidcCredentialProvider.d.ts +37 -4
  238. package/dist/control-plane/GitHubActionsOidcCredentialProvider.d.ts.map +1 -1
  239. package/dist/control-plane/GitHubActionsOidcCredentialProvider.js +197 -63
  240. package/dist/control-plane/GitHubActionsOidcCredentialProvider.js.map +1 -1
  241. package/dist/control-plane/PublishIdempotencyStore.d.ts +25 -9
  242. package/dist/control-plane/PublishIdempotencyStore.d.ts.map +1 -1
  243. package/dist/control-plane/PublishIdempotencyStore.js +97 -68
  244. package/dist/control-plane/PublishIdempotencyStore.js.map +1 -1
  245. package/dist/control-plane/PublishRequestErrorMapper.d.ts +155 -0
  246. package/dist/control-plane/PublishRequestErrorMapper.d.ts.map +1 -0
  247. package/dist/control-plane/PublishRequestErrorMapper.js +597 -0
  248. package/dist/control-plane/PublishRequestErrorMapper.js.map +1 -0
  249. package/dist/control-plane/RegistryGrantLock.d.ts +29 -26
  250. package/dist/control-plane/RegistryGrantLock.d.ts.map +1 -1
  251. package/dist/control-plane/RegistryGrantLock.js +149 -185
  252. package/dist/control-plane/RegistryGrantLock.js.map +1 -1
  253. package/dist/control-plane/RegistryTrustResolver.d.ts +13 -10
  254. package/dist/control-plane/RegistryTrustResolver.d.ts.map +1 -1
  255. package/dist/control-plane/RegistryTrustResolver.js +97 -132
  256. package/dist/control-plane/RegistryTrustResolver.js.map +1 -1
  257. package/dist/index.d.ts +62 -39
  258. package/dist/index.js +60 -53
  259. package/dist/postinstall/api/PostinstallDsl.d.ts +24 -21
  260. package/dist/postinstall/api/PostinstallDsl.d.ts.map +1 -1
  261. package/dist/postinstall/api/PostinstallDsl.js +32 -35
  262. package/dist/postinstall/api/PostinstallDsl.js.map +1 -1
  263. package/dist/postinstall/api/definePostinstall.d.ts +5 -2
  264. package/dist/postinstall/api/definePostinstall.d.ts.map +1 -1
  265. package/dist/postinstall/api/definePostinstall.js +20 -16
  266. package/dist/postinstall/api/definePostinstall.js.map +1 -1
  267. package/dist/postinstall/index.d.ts +25 -26
  268. package/dist/postinstall/index.js +25 -37
  269. package/dist/postinstall/loader/EntryResolver.d.ts +11 -9
  270. package/dist/postinstall/loader/EntryResolver.d.ts.map +1 -1
  271. package/dist/postinstall/loader/EntryResolver.js +36 -32
  272. package/dist/postinstall/loader/EntryResolver.js.map +1 -1
  273. package/dist/postinstall/loader/EsbuildTranspiler.d.ts +6 -3
  274. package/dist/postinstall/loader/EsbuildTranspiler.d.ts.map +1 -1
  275. package/dist/postinstall/loader/EsbuildTranspiler.js +52 -56
  276. package/dist/postinstall/loader/EsbuildTranspiler.js.map +1 -1
  277. package/dist/postinstall/loader/ExportValidator.d.ts +8 -5
  278. package/dist/postinstall/loader/ExportValidator.d.ts.map +1 -1
  279. package/dist/postinstall/loader/ExportValidator.js +36 -32
  280. package/dist/postinstall/loader/ExportValidator.js.map +1 -1
  281. package/dist/postinstall/loader/ModuleImporter.d.ts +17 -14
  282. package/dist/postinstall/loader/ModuleImporter.d.ts.map +1 -1
  283. package/dist/postinstall/loader/ModuleImporter.js +50 -58
  284. package/dist/postinstall/loader/ModuleImporter.js.map +1 -1
  285. package/dist/postinstall/loader/PostinstallLoader.d.ts +22 -19
  286. package/dist/postinstall/loader/PostinstallLoader.d.ts.map +1 -1
  287. package/dist/postinstall/loader/PostinstallLoader.js +62 -58
  288. package/dist/postinstall/loader/PostinstallLoader.js.map +1 -1
  289. package/dist/postinstall/markers/MarkerBlockEditor.d.ts +19 -16
  290. package/dist/postinstall/markers/MarkerBlockEditor.d.ts.map +1 -1
  291. package/dist/postinstall/markers/MarkerBlockEditor.js +48 -44
  292. package/dist/postinstall/markers/MarkerBlockEditor.js.map +1 -1
  293. package/dist/postinstall/markers/MarkerBlockService.d.ts +10 -7
  294. package/dist/postinstall/markers/MarkerBlockService.d.ts.map +1 -1
  295. package/dist/postinstall/markers/MarkerBlockService.js +44 -44
  296. package/dist/postinstall/markers/MarkerBlockService.js.map +1 -1
  297. package/dist/postinstall/markers/MarkerIntegrityValidator.d.ts +12 -9
  298. package/dist/postinstall/markers/MarkerIntegrityValidator.d.ts.map +1 -1
  299. package/dist/postinstall/markers/MarkerIntegrityValidator.js +47 -52
  300. package/dist/postinstall/markers/MarkerIntegrityValidator.js.map +1 -1
  301. package/dist/postinstall/policy/PostinstallPolicyGate.d.ts +25 -23
  302. package/dist/postinstall/policy/PostinstallPolicyGate.d.ts.map +1 -1
  303. package/dist/postinstall/policy/PostinstallPolicyGate.js +63 -52
  304. package/dist/postinstall/policy/PostinstallPolicyGate.js.map +1 -1
  305. package/dist/postinstall/runner/PostinstallOrchestrator.d.ts +48 -45
  306. package/dist/postinstall/runner/PostinstallOrchestrator.d.ts.map +1 -1
  307. package/dist/postinstall/runner/PostinstallOrchestrator.js +172 -170
  308. package/dist/postinstall/runner/PostinstallOrchestrator.js.map +1 -1
  309. package/dist/postinstall/unreal/BuildCsInjector.d.ts +16 -13
  310. package/dist/postinstall/unreal/BuildCsInjector.d.ts.map +1 -1
  311. package/dist/postinstall/unreal/BuildCsInjector.js +58 -53
  312. package/dist/postinstall/unreal/BuildCsInjector.js.map +1 -1
  313. package/dist/postinstall/unreal/CSharpInjectionEngine.d.ts +13 -10
  314. package/dist/postinstall/unreal/CSharpInjectionEngine.d.ts.map +1 -1
  315. package/dist/postinstall/unreal/CSharpInjectionEngine.js +56 -59
  316. package/dist/postinstall/unreal/CSharpInjectionEngine.js.map +1 -1
  317. package/dist/postinstall/unreal/CSharpStructureAnalyzer.d.ts +11 -8
  318. package/dist/postinstall/unreal/CSharpStructureAnalyzer.d.ts.map +1 -1
  319. package/dist/postinstall/unreal/CSharpStructureAnalyzer.js +123 -127
  320. package/dist/postinstall/unreal/CSharpStructureAnalyzer.js.map +1 -1
  321. package/dist/postinstall/unreal/CSharpStructures.d.ts +18 -15
  322. package/dist/postinstall/unreal/CSharpStructures.d.ts.map +1 -1
  323. package/dist/postinstall/unreal/CSharpStructures.js +1 -2
  324. package/dist/postinstall/unreal/CSharpWrapperFactory.d.ts +7 -4
  325. package/dist/postinstall/unreal/CSharpWrapperFactory.d.ts.map +1 -1
  326. package/dist/postinstall/unreal/CSharpWrapperFactory.js +54 -58
  327. package/dist/postinstall/unreal/CSharpWrapperFactory.js.map +1 -1
  328. package/dist/postinstall/unreal/PluginHash.d.ts +5 -2
  329. package/dist/postinstall/unreal/PluginHash.d.ts.map +1 -1
  330. package/dist/postinstall/unreal/PluginHash.js +13 -8
  331. package/dist/postinstall/unreal/PluginHash.js.map +1 -1
  332. package/dist/postinstall/unreal/PrettyParseError.d.ts +8 -5
  333. package/dist/postinstall/unreal/PrettyParseError.d.ts.map +1 -1
  334. package/dist/postinstall/unreal/PrettyParseError.js +37 -37
  335. package/dist/postinstall/unreal/PrettyParseError.js.map +1 -1
  336. package/dist/postinstall/unreal/ProjectFileLocator.d.ts +12 -9
  337. package/dist/postinstall/unreal/ProjectFileLocator.d.ts.map +1 -1
  338. package/dist/postinstall/unreal/ProjectFileLocator.js +49 -51
  339. package/dist/postinstall/unreal/ProjectFileLocator.js.map +1 -1
  340. package/dist/postinstall/unreal/TargetCsInjector.d.ts +16 -13
  341. package/dist/postinstall/unreal/TargetCsInjector.d.ts.map +1 -1
  342. package/dist/postinstall/unreal/TargetCsInjector.js +58 -53
  343. package/dist/postinstall/unreal/TargetCsInjector.js.map +1 -1
  344. package/dist/postinstall/unreal/UProjectInjector.d.ts +6 -3
  345. package/dist/postinstall/unreal/UProjectInjector.d.ts.map +1 -1
  346. package/dist/postinstall/unreal/UProjectInjector.js +56 -52
  347. package/dist/postinstall/unreal/UProjectInjector.js.map +1 -1
  348. package/dist/postinstall/unreal/UProjectMetadataReader.d.ts +5 -2
  349. package/dist/postinstall/unreal/UProjectMetadataReader.d.ts.map +1 -1
  350. package/dist/postinstall/unreal/UProjectMetadataReader.js +22 -18
  351. package/dist/postinstall/unreal/UProjectMetadataReader.js.map +1 -1
  352. package/dist/postinstall/unreal/UnrealSourceCatalog.d.ts +17 -14
  353. package/dist/postinstall/unreal/UnrealSourceCatalog.d.ts.map +1 -1
  354. package/dist/postinstall/unreal/UnrealSourceCatalog.js +50 -50
  355. package/dist/postinstall/unreal/UnrealSourceCatalog.js.map +1 -1
  356. package/dist/prompts/InkPromptService.d.ts +10 -7
  357. package/dist/prompts/InkPromptService.d.ts.map +1 -1
  358. package/dist/prompts/InkPromptService.js +100 -71
  359. package/dist/prompts/InkPromptService.js.map +1 -1
  360. package/dist/prompts/ProjectContextDetector.d.ts +10 -7
  361. package/dist/prompts/ProjectContextDetector.d.ts.map +1 -1
  362. package/dist/prompts/ProjectContextDetector.js +32 -26
  363. package/dist/prompts/ProjectContextDetector.js.map +1 -1
  364. package/dist/prompts/PromptService.d.ts +11 -8
  365. package/dist/prompts/PromptService.d.ts.map +1 -1
  366. package/dist/prompts/PromptService.js +1 -8
  367. package/dist/reporting/DiagnosticDeduplicator.d.ts +8 -5
  368. package/dist/reporting/DiagnosticDeduplicator.d.ts.map +1 -1
  369. package/dist/reporting/DiagnosticDeduplicator.js +36 -35
  370. package/dist/reporting/DiagnosticDeduplicator.js.map +1 -1
  371. package/dist/reporting/DiagnosticRenderer.d.ts +11 -8
  372. package/dist/reporting/DiagnosticRenderer.d.ts.map +1 -1
  373. package/dist/reporting/DiagnosticRenderer.js +1 -2
  374. package/dist/reporting/DiagnosticReporter.d.ts +12 -9
  375. package/dist/reporting/DiagnosticReporter.d.ts.map +1 -1
  376. package/dist/reporting/DiagnosticReporter.js +40 -39
  377. package/dist/reporting/DiagnosticReporter.js.map +1 -1
  378. package/dist/reporting/InkDiagnosticRenderer.d.ts +12 -9
  379. package/dist/reporting/InkDiagnosticRenderer.d.ts.map +1 -1
  380. package/dist/reporting/InkDiagnosticRenderer.js +50 -42
  381. package/dist/reporting/InkDiagnosticRenderer.js.map +1 -1
  382. package/dist/reporting/InstallProgressReporter.d.ts +23 -20
  383. package/dist/reporting/InstallProgressReporter.d.ts.map +1 -1
  384. package/dist/reporting/InstallProgressReporter.js +48 -47
  385. package/dist/reporting/InstallProgressReporter.js.map +1 -1
  386. package/dist/reporting/JsonReporter.d.ts +16 -13
  387. package/dist/reporting/JsonReporter.d.ts.map +1 -1
  388. package/dist/reporting/JsonReporter.js +34 -20
  389. package/dist/reporting/JsonReporter.js.map +1 -1
  390. package/dist/reporting/RegistryRequestTerminalFormatter.d.ts +36 -0
  391. package/dist/reporting/RegistryRequestTerminalFormatter.d.ts.map +1 -0
  392. package/dist/reporting/RegistryRequestTerminalFormatter.js +90 -0
  393. package/dist/reporting/RegistryRequestTerminalFormatter.js.map +1 -0
  394. package/dist/reporting/TextDiagnosticRenderer.d.ts +11 -8
  395. package/dist/reporting/TextDiagnosticRenderer.d.ts.map +1 -1
  396. package/dist/reporting/TextDiagnosticRenderer.js +36 -28
  397. package/dist/reporting/TextDiagnosticRenderer.js.map +1 -1
  398. package/dist/reporting/TextSink.d.ts +14 -11
  399. package/dist/reporting/TextSink.d.ts.map +1 -1
  400. package/dist/reporting/TextSink.js +24 -20
  401. package/dist/reporting/TextSink.js.map +1 -1
  402. package/package.json +31 -32
  403. package/dist/cli/parsing/contracts/UAPKGCommandModule.js.map +0 -1
  404. package/dist/cli-bootstrap.d.ts.map +0 -1
  405. package/dist/commands/Command.js.map +0 -1
  406. package/dist/index.d.ts.map +0 -1
  407. package/dist/index.js.map +0 -1
  408. package/dist/postinstall/index.d.ts.map +0 -1
  409. package/dist/postinstall/index.js.map +0 -1
  410. package/dist/postinstall/unreal/CSharpStructures.js.map +0 -1
  411. package/dist/prompts/PromptService.js.map +0 -1
  412. package/dist/reporting/DiagnosticRenderer.js.map +0 -1
@@ -1,172 +1,174 @@
1
- import { createIoErrorDiagnostic, createUnknownErrorDiagnostic, DiagnosticBag } from '@uapkg/diagnostics';
2
- import { PostinstallLoader } from '../loader/PostinstallLoader.js';
3
- import { PostinstallPolicyGate } from '../policy/PostinstallPolicyGate.js';
4
- import { BuildCsInjector } from '../unreal/BuildCsInjector.js';
5
- import { ProjectFileLocator } from '../unreal/ProjectFileLocator.js';
6
- import { TargetCsInjector } from '../unreal/TargetCsInjector.js';
7
- import { UnrealSourceCatalogBuilder } from '../unreal/UnrealSourceCatalog.js';
8
- import { UProjectInjector } from '../unreal/UProjectInjector.js';
9
- import { UProjectMetadataReader } from '../unreal/UProjectMetadataReader.js';
1
+ import { PostinstallLoader } from "../loader/PostinstallLoader.js";
2
+ import { PostinstallPolicyGate } from "../policy/PostinstallPolicyGate.js";
3
+ import { BuildCsInjector } from "../unreal/BuildCsInjector.js";
4
+ import { ProjectFileLocator } from "../unreal/ProjectFileLocator.js";
5
+ import { TargetCsInjector } from "../unreal/TargetCsInjector.js";
6
+ import { UnrealSourceCatalogBuilder } from "../unreal/UnrealSourceCatalog.js";
7
+ import { UProjectInjector } from "../unreal/UProjectInjector.js";
8
+ import { UProjectMetadataReader } from "../unreal/UProjectMetadataReader.js";
9
+ import { DiagnosticBag, createIoErrorDiagnostic, createUnknownErrorDiagnostic } from "@uapkg/diagnostics";
10
+
11
+ //#region src/postinstall/runner/PostinstallOrchestrator.ts
10
12
  /**
11
- * Top-level postinstall flow:
12
- *
13
- * 1. Fast path: if the host is a plugin manifest, nothing runs.
14
- * 2. For each candidate plugin:
15
- * a. PolicyGate decides allow/deny. Deny → info diagnostic, skip.
16
- * b. Loader locates + transpiles + imports + validates the script.
17
- * c. Accumulate `(plugin, definition)` pairs into a plan.
18
- * 3. Build a single {@link UnrealSourceCatalog} covering every module
19
- * any script wants to touch.
20
- * 4. Apply injectors idempotently per zone.
21
- *
22
- * Always returns a {@link Result}; never throws. The caller inspects
23
- * `diagnostics` to render errors/warnings/info lines.
24
- */
25
- export class PostinstallOrchestrator {
26
- loader;
27
- policy;
28
- catalogBuilder;
29
- buildInjector;
30
- targetInjector;
31
- projectInjector;
32
- projectFileLocator;
33
- uprojectReader;
34
- constructor(loader = new PostinstallLoader(), policy = new PostinstallPolicyGate(), catalogBuilder = new UnrealSourceCatalogBuilder(), buildInjector = new BuildCsInjector(), targetInjector = new TargetCsInjector(), projectInjector = new UProjectInjector(), projectFileLocator = new ProjectFileLocator(), uprojectReader = new UProjectMetadataReader()) {
35
- this.loader = loader;
36
- this.policy = policy;
37
- this.catalogBuilder = catalogBuilder;
38
- this.buildInjector = buildInjector;
39
- this.targetInjector = targetInjector;
40
- this.projectInjector = projectInjector;
41
- this.projectFileLocator = projectFileLocator;
42
- this.uprojectReader = uprojectReader;
43
- }
44
- async run(input) {
45
- const bag = new DiagnosticBag();
46
- const executed = [];
47
- const skipped = [];
48
- if (input.manifestType !== 'project' || input.candidates.length === 0) {
49
- return bag.toResult({ executed, skipped });
50
- }
51
- const plan = await this.buildPlan(input.candidates, bag, skipped);
52
- if (plan.length === 0) {
53
- return bag.toResult({ executed, skipped });
54
- }
55
- const catalogResult = this.buildCatalog(input.projectRoot, plan, input.moduleNameOverride);
56
- if (!catalogResult.ok) {
57
- bag.mergeArray(catalogResult.diagnostics);
58
- return bag.toFailure();
59
- }
60
- const { catalog, moduleNames } = catalogResult.value;
61
- for (const entry of plan) {
62
- const applied = this.applyScript(input.projectRoot, entry, catalog, moduleNames, bag);
63
- if (applied)
64
- executed.push(entry.loaded.packageName);
65
- }
66
- return bag.toResult({ executed, skipped });
67
- }
68
- // ---- private helpers --------------------------------------------------
69
- async buildPlan(candidates, bag, skipped) {
70
- const plan = [];
71
- for (const candidate of candidates) {
72
- const decision = this.policy.evaluate(candidate.packageName, candidate.registry);
73
- if (!decision.allowed) {
74
- if (decision.denialDiagnostic)
75
- bag.add(decision.denialDiagnostic);
76
- skipped.push({ packageName: candidate.packageName, reason: 'policy-denied' });
77
- continue;
78
- }
79
- const loaded = await this.loader.load(candidate.packageName, candidate.pluginRoot);
80
- bag.mergeArray(loaded.diagnostics);
81
- if (!loaded.ok)
82
- continue; // Errors already in bag.
83
- if (loaded.value === null) {
84
- skipped.push({ packageName: candidate.packageName, reason: 'no-script' });
85
- continue;
86
- }
87
- plan.push({ candidate, loaded: loaded.value });
88
- }
89
- return plan;
90
- }
91
- buildCatalog(projectRoot, plan, moduleNameOverride) {
92
- const hasModuleSetup = plan.some((entry) => Boolean(entry.loaded.definition.setupModules));
93
- let moduleNames = [];
94
- if (hasModuleSetup) {
95
- if (moduleNameOverride !== undefined) {
96
- // Explicit override from project manifest wins; empty = no modules.
97
- moduleNames = moduleNameOverride;
98
- }
99
- else {
100
- try {
101
- const uprojectPath = this.projectFileLocator.findProjectFile(projectRoot);
102
- moduleNames = this.uprojectReader.readModuleNames(uprojectPath);
103
- }
104
- catch (error) {
105
- return {
106
- ok: false,
107
- diagnostics: [createIoErrorDiagnostic(projectRoot, error instanceof Error ? error.message : String(error))],
108
- };
109
- }
110
- }
111
- }
112
- try {
113
- const catalog = this.catalogBuilder.build(projectRoot, moduleNames);
114
- return { ok: true, value: { catalog, moduleNames }, diagnostics: [] };
115
- }
116
- catch (error) {
117
- return {
118
- ok: false,
119
- diagnostics: [createUnknownErrorDiagnostic(error instanceof Error ? error.message : String(error))],
120
- };
121
- }
122
- }
123
- applyScript(projectRoot, entry, catalog, moduleNames, bag) {
124
- const { loaded } = entry;
125
- const def = loaded.definition;
126
- let anyFailed = false;
127
- if (def.setupModules) {
128
- for (const moduleName of moduleNames) {
129
- const moduleFile = catalog.moduleFiles.get(moduleName);
130
- if (!moduleFile) {
131
- bag.add(createUnknownErrorDiagnostic(`Missing module mapping for ${moduleName} (plugin ${loaded.packageName})`));
132
- anyFailed = true;
133
- continue;
134
- }
135
- const result = this.buildInjector.apply(moduleFile, loaded.packageName, def.setupModules);
136
- this.absorb(result, bag, () => {
137
- anyFailed = true;
138
- });
139
- }
140
- }
141
- if (def.setupTargets) {
142
- for (const targetFile of catalog.targetFiles) {
143
- const result = this.targetInjector.apply(targetFile, loaded.packageName, def.setupTargets);
144
- this.absorb(result, bag, () => {
145
- anyFailed = true;
146
- });
147
- }
148
- }
149
- const projectPlugins = def.setupProject?.plugins ?? [];
150
- if (projectPlugins.length > 0) {
151
- try {
152
- const uprojectPath = this.projectFileLocator.findProjectFile(projectRoot);
153
- const result = this.projectInjector.apply(uprojectPath, projectPlugins);
154
- this.absorb(result, bag, () => {
155
- anyFailed = true;
156
- });
157
- }
158
- catch (error) {
159
- bag.add(createIoErrorDiagnostic(projectRoot, error instanceof Error ? error.message : String(error)));
160
- anyFailed = true;
161
- }
162
- }
163
- return !anyFailed;
164
- }
165
- absorb(result, bag, onFail) {
166
- for (const d of result.diagnostics)
167
- bag.add(d);
168
- if (!result.ok)
169
- onFail();
170
- }
171
- }
13
+ * Top-level postinstall flow:
14
+ *
15
+ * 1. Fast path: if the host is a plugin manifest, nothing runs.
16
+ * 2. For each candidate plugin:
17
+ * a. PolicyGate decides allow/deny. Deny → info diagnostic, skip.
18
+ * b. Loader locates + transpiles + imports + validates the script.
19
+ * c. Accumulate `(plugin, definition)` pairs into a plan.
20
+ * 3. Build a single {@link UnrealSourceCatalog} covering every module
21
+ * any script wants to touch.
22
+ * 4. Apply injectors idempotently per zone.
23
+ *
24
+ * Always returns a {@link Result}; never throws. The caller inspects
25
+ * `diagnostics` to render errors/warnings/info lines.
26
+ */
27
+ var PostinstallOrchestrator = class {
28
+ loader;
29
+ policy;
30
+ catalogBuilder;
31
+ buildInjector;
32
+ targetInjector;
33
+ projectInjector;
34
+ projectFileLocator;
35
+ uprojectReader;
36
+ constructor(loader = new PostinstallLoader(), policy = new PostinstallPolicyGate(), catalogBuilder = new UnrealSourceCatalogBuilder(), buildInjector = new BuildCsInjector(), targetInjector = new TargetCsInjector(), projectInjector = new UProjectInjector(), projectFileLocator = new ProjectFileLocator(), uprojectReader = new UProjectMetadataReader()) {
37
+ this.loader = loader;
38
+ this.policy = policy;
39
+ this.catalogBuilder = catalogBuilder;
40
+ this.buildInjector = buildInjector;
41
+ this.targetInjector = targetInjector;
42
+ this.projectInjector = projectInjector;
43
+ this.projectFileLocator = projectFileLocator;
44
+ this.uprojectReader = uprojectReader;
45
+ }
46
+ async run(input) {
47
+ const bag = new DiagnosticBag();
48
+ const executed = [];
49
+ const skipped = [];
50
+ if (input.manifestType !== "project" || input.candidates.length === 0) return bag.toResult({
51
+ executed,
52
+ skipped
53
+ });
54
+ const plan = await this.buildPlan(input.candidates, bag, skipped);
55
+ if (plan.length === 0) return bag.toResult({
56
+ executed,
57
+ skipped
58
+ });
59
+ const catalogResult = this.buildCatalog(input.projectRoot, plan, input.moduleNameOverride);
60
+ if (!catalogResult.ok) {
61
+ bag.mergeArray(catalogResult.diagnostics);
62
+ return bag.toFailure();
63
+ }
64
+ const { catalog, moduleNames } = catalogResult.value;
65
+ for (const entry of plan) if (this.applyScript(input.projectRoot, entry, catalog, moduleNames, bag)) executed.push(entry.loaded.packageName);
66
+ return bag.toResult({
67
+ executed,
68
+ skipped
69
+ });
70
+ }
71
+ async buildPlan(candidates, bag, skipped) {
72
+ const plan = [];
73
+ for (const candidate of candidates) {
74
+ const decision = this.policy.evaluate(candidate.packageName, candidate.registry);
75
+ if (!decision.allowed) {
76
+ if (decision.denialDiagnostic) bag.add(decision.denialDiagnostic);
77
+ skipped.push({
78
+ packageName: candidate.packageName,
79
+ reason: "policy-denied"
80
+ });
81
+ continue;
82
+ }
83
+ const loaded = await this.loader.load(candidate.packageName, candidate.pluginRoot);
84
+ bag.mergeArray(loaded.diagnostics);
85
+ if (!loaded.ok) continue;
86
+ if (loaded.value === null) {
87
+ skipped.push({
88
+ packageName: candidate.packageName,
89
+ reason: "no-script"
90
+ });
91
+ continue;
92
+ }
93
+ plan.push({
94
+ candidate,
95
+ loaded: loaded.value
96
+ });
97
+ }
98
+ return plan;
99
+ }
100
+ buildCatalog(projectRoot, plan, moduleNameOverride) {
101
+ const hasModuleSetup = plan.some((entry) => Boolean(entry.loaded.definition.setupModules));
102
+ let moduleNames = [];
103
+ if (hasModuleSetup) {
104
+ if (moduleNameOverride !== void 0) moduleNames = moduleNameOverride;
105
+ else try {
106
+ const uprojectPath = this.projectFileLocator.findProjectFile(projectRoot);
107
+ moduleNames = this.uprojectReader.readModuleNames(uprojectPath);
108
+ } catch (error) {
109
+ return {
110
+ ok: false,
111
+ diagnostics: [createIoErrorDiagnostic(projectRoot, error instanceof Error ? error.message : String(error))]
112
+ };
113
+ }
114
+ }
115
+ try {
116
+ return {
117
+ ok: true,
118
+ value: {
119
+ catalog: this.catalogBuilder.build(projectRoot, moduleNames),
120
+ moduleNames
121
+ },
122
+ diagnostics: []
123
+ };
124
+ } catch (error) {
125
+ return {
126
+ ok: false,
127
+ diagnostics: [createUnknownErrorDiagnostic(error instanceof Error ? error.message : String(error))]
128
+ };
129
+ }
130
+ }
131
+ applyScript(projectRoot, entry, catalog, moduleNames, bag) {
132
+ const { loaded } = entry;
133
+ const def = loaded.definition;
134
+ let anyFailed = false;
135
+ if (def.setupModules) for (const moduleName of moduleNames) {
136
+ const moduleFile = catalog.moduleFiles.get(moduleName);
137
+ if (!moduleFile) {
138
+ bag.add(createUnknownErrorDiagnostic(`Missing module mapping for ${moduleName} (plugin ${loaded.packageName})`));
139
+ anyFailed = true;
140
+ continue;
141
+ }
142
+ const result = this.buildInjector.apply(moduleFile, loaded.packageName, def.setupModules);
143
+ this.absorb(result, bag, () => {
144
+ anyFailed = true;
145
+ });
146
+ }
147
+ if (def.setupTargets) for (const targetFile of catalog.targetFiles) {
148
+ const result = this.targetInjector.apply(targetFile, loaded.packageName, def.setupTargets);
149
+ this.absorb(result, bag, () => {
150
+ anyFailed = true;
151
+ });
152
+ }
153
+ const projectPlugins = def.setupProject?.plugins ?? [];
154
+ if (projectPlugins.length > 0) try {
155
+ const uprojectPath = this.projectFileLocator.findProjectFile(projectRoot);
156
+ const result = this.projectInjector.apply(uprojectPath, projectPlugins);
157
+ this.absorb(result, bag, () => {
158
+ anyFailed = true;
159
+ });
160
+ } catch (error) {
161
+ bag.add(createIoErrorDiagnostic(projectRoot, error instanceof Error ? error.message : String(error)));
162
+ anyFailed = true;
163
+ }
164
+ return !anyFailed;
165
+ }
166
+ absorb(result, bag, onFail) {
167
+ for (const d of result.diagnostics) bag.add(d);
168
+ if (!result.ok) onFail();
169
+ }
170
+ };
171
+
172
+ //#endregion
173
+ export { PostinstallOrchestrator };
172
174
  //# sourceMappingURL=PostinstallOrchestrator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PostinstallOrchestrator.js","sourceRoot":"","sources":["../../../src/postinstall/runner/PostinstallOrchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostinstallOrchestrator.js","names":[],"sources":["../../../src/postinstall/runner/PostinstallOrchestrator.ts"],"sourcesContent":["import type { Diagnostic, Result } from '@uapkg/diagnostics';\nimport { createIoErrorDiagnostic, createUnknownErrorDiagnostic, DiagnosticBag } from '@uapkg/diagnostics';\nimport type { PostinstallDefinition } from '../api/PostinstallDsl.js';\nimport { type LoadedPostinstall, PostinstallLoader } from '../loader/PostinstallLoader.js';\nimport { PostinstallPolicyGate } from '../policy/PostinstallPolicyGate.js';\nimport { BuildCsInjector } from '../unreal/BuildCsInjector.js';\nimport { ProjectFileLocator } from '../unreal/ProjectFileLocator.js';\nimport { TargetCsInjector } from '../unreal/TargetCsInjector.js';\nimport { UnrealSourceCatalogBuilder } from '../unreal/UnrealSourceCatalog.js';\nimport { UProjectInjector } from '../unreal/UProjectInjector.js';\nimport { UProjectMetadataReader } from '../unreal/UProjectMetadataReader.js';\n\n/**\n * Projection of an installer action that the orchestrator needs. The CLI\n * (Phase 8) will map `InstallAction` → `PostinstallCandidate` by filtering\n * `type === 'add' | 'update'` and joining with the lockfile for registry\n * metadata.\n */\nexport interface PostinstallCandidate {\n readonly packageName: string;\n readonly registry: string;\n /** Absolute path to the installed plugin root. */\n readonly pluginRoot: string;\n}\n\nexport interface PostinstallReport {\n readonly executed: readonly string[];\n readonly skipped: readonly { packageName: string; reason: 'no-script' | 'policy-denied' }[];\n}\n\nexport interface PostinstallOrchestratorInput {\n readonly projectRoot: string;\n readonly manifestType: 'project' | 'plugin';\n readonly candidates: readonly PostinstallCandidate[];\n /**\n * Optional explicit module-name list (from `postinstall.modules` in the\n * project manifest). When provided, overrides the names discovered from\n * `.uproject`'s `Modules[]`. An empty array = override to \"no modules\".\n */\n readonly moduleNameOverride?: readonly string[];\n}\n\n/**\n * Top-level postinstall flow:\n *\n * 1. Fast path: if the host is a plugin manifest, nothing runs.\n * 2. For each candidate plugin:\n * a. PolicyGate decides allow/deny. Deny → info diagnostic, skip.\n * b. Loader locates + transpiles + imports + validates the script.\n * c. Accumulate `(plugin, definition)` pairs into a plan.\n * 3. Build a single {@link UnrealSourceCatalog} covering every module\n * any script wants to touch.\n * 4. Apply injectors idempotently per zone.\n *\n * Always returns a {@link Result}; never throws. The caller inspects\n * `diagnostics` to render errors/warnings/info lines.\n */\nexport class PostinstallOrchestrator {\n public constructor(\n private readonly loader: PostinstallLoader = new PostinstallLoader(),\n private readonly policy: PostinstallPolicyGate = new PostinstallPolicyGate(),\n private readonly catalogBuilder: UnrealSourceCatalogBuilder = new UnrealSourceCatalogBuilder(),\n private readonly buildInjector: BuildCsInjector = new BuildCsInjector(),\n private readonly targetInjector: TargetCsInjector = new TargetCsInjector(),\n private readonly projectInjector: UProjectInjector = new UProjectInjector(),\n private readonly projectFileLocator: ProjectFileLocator = new ProjectFileLocator(),\n private readonly uprojectReader: UProjectMetadataReader = new UProjectMetadataReader(),\n ) {}\n\n public async run(input: PostinstallOrchestratorInput): Promise<Result<PostinstallReport>> {\n const bag = new DiagnosticBag();\n const executed: string[] = [];\n const skipped: { packageName: string; reason: 'no-script' | 'policy-denied' }[] = [];\n\n if (input.manifestType !== 'project' || input.candidates.length === 0) {\n return bag.toResult({ executed, skipped });\n }\n\n const plan = await this.buildPlan(input.candidates, bag, skipped);\n if (plan.length === 0) {\n return bag.toResult({ executed, skipped });\n }\n\n const catalogResult = this.buildCatalog(input.projectRoot, plan, input.moduleNameOverride);\n if (!catalogResult.ok) {\n bag.mergeArray(catalogResult.diagnostics);\n return bag.toFailure();\n }\n const { catalog, moduleNames } = catalogResult.value;\n\n for (const entry of plan) {\n const applied = this.applyScript(input.projectRoot, entry, catalog, moduleNames, bag);\n if (applied) executed.push(entry.loaded.packageName);\n }\n\n return bag.toResult({ executed, skipped });\n }\n\n // ---- private helpers --------------------------------------------------\n\n private async buildPlan(\n candidates: readonly PostinstallCandidate[],\n bag: DiagnosticBag,\n skipped: { packageName: string; reason: 'no-script' | 'policy-denied' }[],\n ): Promise<Array<{ candidate: PostinstallCandidate; loaded: LoadedPostinstall }>> {\n const plan: Array<{ candidate: PostinstallCandidate; loaded: LoadedPostinstall }> = [];\n for (const candidate of candidates) {\n const decision = this.policy.evaluate(candidate.packageName, candidate.registry);\n if (!decision.allowed) {\n if (decision.denialDiagnostic) bag.add(decision.denialDiagnostic);\n skipped.push({ packageName: candidate.packageName, reason: 'policy-denied' });\n continue;\n }\n const loaded = await this.loader.load(candidate.packageName, candidate.pluginRoot);\n bag.mergeArray(loaded.diagnostics);\n if (!loaded.ok) continue; // Errors already in bag.\n if (loaded.value === null) {\n skipped.push({ packageName: candidate.packageName, reason: 'no-script' });\n continue;\n }\n plan.push({ candidate, loaded: loaded.value });\n }\n return plan;\n }\n\n private buildCatalog(\n projectRoot: string,\n plan: Array<{ candidate: PostinstallCandidate; loaded: LoadedPostinstall }>,\n moduleNameOverride: readonly string[] | undefined,\n ): Result<{ catalog: ReturnType<UnrealSourceCatalogBuilder['build']>; moduleNames: readonly string[] }> {\n const hasModuleSetup = plan.some((entry) => Boolean(entry.loaded.definition.setupModules));\n let moduleNames: readonly string[] = [];\n if (hasModuleSetup) {\n if (moduleNameOverride !== undefined) {\n // Explicit override from project manifest wins; empty = no modules.\n moduleNames = moduleNameOverride;\n } else {\n try {\n const uprojectPath = this.projectFileLocator.findProjectFile(projectRoot);\n moduleNames = this.uprojectReader.readModuleNames(uprojectPath);\n } catch (error) {\n return {\n ok: false,\n diagnostics: [createIoErrorDiagnostic(projectRoot, error instanceof Error ? error.message : String(error))],\n };\n }\n }\n }\n\n try {\n const catalog = this.catalogBuilder.build(projectRoot, moduleNames);\n return { ok: true, value: { catalog, moduleNames }, diagnostics: [] };\n } catch (error) {\n return {\n ok: false,\n diagnostics: [createUnknownErrorDiagnostic(error instanceof Error ? error.message : String(error))],\n };\n }\n }\n\n private applyScript(\n projectRoot: string,\n entry: { candidate: PostinstallCandidate; loaded: LoadedPostinstall },\n catalog: ReturnType<UnrealSourceCatalogBuilder['build']>,\n moduleNames: readonly string[],\n bag: DiagnosticBag,\n ): boolean {\n const { loaded } = entry;\n const def: PostinstallDefinition = loaded.definition;\n let anyFailed = false;\n\n if (def.setupModules) {\n for (const moduleName of moduleNames) {\n const moduleFile = catalog.moduleFiles.get(moduleName);\n if (!moduleFile) {\n bag.add(\n createUnknownErrorDiagnostic(`Missing module mapping for ${moduleName} (plugin ${loaded.packageName})`),\n );\n anyFailed = true;\n continue;\n }\n const result = this.buildInjector.apply(moduleFile, loaded.packageName, def.setupModules);\n this.absorb(result, bag, () => {\n anyFailed = true;\n });\n }\n }\n\n if (def.setupTargets) {\n for (const targetFile of catalog.targetFiles) {\n const result = this.targetInjector.apply(targetFile, loaded.packageName, def.setupTargets);\n this.absorb(result, bag, () => {\n anyFailed = true;\n });\n }\n }\n\n const projectPlugins = def.setupProject?.plugins ?? [];\n if (projectPlugins.length > 0) {\n try {\n const uprojectPath = this.projectFileLocator.findProjectFile(projectRoot);\n const result = this.projectInjector.apply(uprojectPath, projectPlugins);\n this.absorb(result, bag, () => {\n anyFailed = true;\n });\n } catch (error) {\n bag.add(createIoErrorDiagnostic(projectRoot, error instanceof Error ? error.message : String(error)));\n anyFailed = true;\n }\n }\n\n return !anyFailed;\n }\n\n private absorb(result: Result<void>, bag: DiagnosticBag, onFail: () => void): void {\n for (const d of result.diagnostics) bag.add(d as Diagnostic);\n if (!result.ok) onFail();\n }\n}\n"],"mappings":"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"}
@@ -1,9 +1,10 @@
1
- import { type Result } from '@uapkg/diagnostics';
2
- import type { ZoneDefinition } from '../api/PostinstallDsl.js';
3
- import { MarkerBlockEditor } from '../markers/MarkerBlockEditor.js';
4
- import { CSharpInjectionEngine } from './CSharpInjectionEngine.js';
5
- import { CSharpStructureAnalyzer } from './CSharpStructureAnalyzer.js';
6
- import { CSharpWrapperFactory } from './CSharpWrapperFactory.js';
1
+ import { ZoneDefinition } from "../api/PostinstallDsl.js";
2
+ import { MarkerBlockEditor } from "../markers/MarkerBlockEditor.js";
3
+ import { CSharpInjectionEngine } from "./CSharpInjectionEngine.js";
4
+ import { CSharpStructureAnalyzer } from "./CSharpStructureAnalyzer.js";
5
+ import { CSharpWrapperFactory } from "./CSharpWrapperFactory.js";
6
+ import { Result } from "@uapkg/diagnostics";
7
+ //#region src/postinstall/unreal/BuildCsInjector.d.ts
7
8
  /**
8
9
  * Injects a plugin's `setupModules` content into a single `*.Build.cs` file.
9
10
  *
@@ -12,12 +13,14 @@ import { CSharpWrapperFactory } from './CSharpWrapperFactory.js';
12
13
  * mutation, pre-existing owned marker blocks are checked for corruption
13
14
  * (orphaned / nested markers) and surfaced as `POSTINSTALL_MARKER_CORRUPT`.
14
15
  */
15
- export declare class BuildCsInjector {
16
- private readonly analyzer;
17
- private readonly wrapperFactory;
18
- private readonly injector;
19
- private readonly markerEditor;
20
- constructor(analyzer?: CSharpStructureAnalyzer, wrapperFactory?: CSharpWrapperFactory, injector?: CSharpInjectionEngine, markerEditor?: MarkerBlockEditor);
21
- apply(filePath: string, pluginName: string, zones: ZoneDefinition): Result<void>;
16
+ declare class BuildCsInjector {
17
+ private readonly analyzer;
18
+ private readonly wrapperFactory;
19
+ private readonly injector;
20
+ private readonly markerEditor;
21
+ constructor(analyzer?: CSharpStructureAnalyzer, wrapperFactory?: CSharpWrapperFactory, injector?: CSharpInjectionEngine, markerEditor?: MarkerBlockEditor);
22
+ apply(filePath: string, pluginName: string, zones: ZoneDefinition): Result<void>;
22
23
  }
24
+ //#endregion
25
+ export { BuildCsInjector };
23
26
  //# sourceMappingURL=BuildCsInjector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BuildCsInjector.d.ts","sourceRoot":"","sources":["../../../src/postinstall/unreal/BuildCsInjector.ts"],"names":[],"mappings":"AACA,OAAO,EAAqC,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAKjE;;;;;;;GAOG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAHZ,QAAQ,GAAE,uBAAuD,EACjE,cAAc,GAAE,oBAAiD,EACjE,QAAQ,GAAE,qBAAmD,EAC7D,YAAY,GAAE,iBAA2C;IAGrE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC;CAgCxF"}
1
+ {"version":3,"file":"BuildCsInjector.d.ts","names":[],"sources":["../../../src/postinstall/unreal/BuildCsInjector.ts"],"mappings":";;;;;;;;;;;;;;;cAmBa;mBAEQ;mBACA;mBACA;mBACA;EAJnB,YACmB,WAAU,yBACV,iBAAgB,sBAChB,WAAU,uBACV,eAAc;EAG1B,MAAM,kBAAkB,oBAAoB,OAAO,iBAAiB"}
@@ -1,55 +1,60 @@
1
- import fs from 'node:fs';
2
- import { createIoErrorDiagnostic, fail, ok } from '@uapkg/diagnostics';
3
- import { MarkerBlockEditor } from '../markers/MarkerBlockEditor.js';
4
- import { CSharpInjectionEngine } from './CSharpInjectionEngine.js';
5
- import { CSharpStructureAnalyzer } from './CSharpStructureAnalyzer.js';
6
- import { CSharpWrapperFactory } from './CSharpWrapperFactory.js';
7
- import { getWrapperClassName } from './PluginHash.js';
8
- const BUILD_CS_ZONES = ['module-includes', 'module-class-body', 'module-constructor'];
1
+ import { MarkerBlockEditor } from "../markers/MarkerBlockEditor.js";
2
+ import { CSharpInjectionEngine } from "./CSharpInjectionEngine.js";
3
+ import { CSharpStructureAnalyzer } from "./CSharpStructureAnalyzer.js";
4
+ import { CSharpWrapperFactory } from "./CSharpWrapperFactory.js";
5
+ import { getWrapperClassName } from "./PluginHash.js";
6
+ import { createIoErrorDiagnostic, fail, ok } from "@uapkg/diagnostics";
7
+ import fs from "node:fs";
8
+
9
+ //#region src/postinstall/unreal/BuildCsInjector.ts
10
+ const BUILD_CS_ZONES = [
11
+ "module-includes",
12
+ "module-class-body",
13
+ "module-constructor"
14
+ ];
9
15
  /**
10
- * Injects a plugin's `setupModules` content into a single `*.Build.cs` file.
11
- *
12
- * The operation is idempotent: re-running overwrites the owned marker blocks.
13
- * All failures are returned as `Result.fail` — this class never throws. Before
14
- * mutation, pre-existing owned marker blocks are checked for corruption
15
- * (orphaned / nested markers) and surfaced as `POSTINSTALL_MARKER_CORRUPT`.
16
- */
17
- export class BuildCsInjector {
18
- analyzer;
19
- wrapperFactory;
20
- injector;
21
- markerEditor;
22
- constructor(analyzer = new CSharpStructureAnalyzer(), wrapperFactory = new CSharpWrapperFactory(), injector = new CSharpInjectionEngine(), markerEditor = new MarkerBlockEditor()) {
23
- this.analyzer = analyzer;
24
- this.wrapperFactory = wrapperFactory;
25
- this.injector = injector;
26
- this.markerEditor = markerEditor;
27
- }
28
- apply(filePath, pluginName, zones) {
29
- try {
30
- let source = fs.readFileSync(filePath, 'utf-8');
31
- for (const zone of BUILD_CS_ZONES) {
32
- const check = this.markerEditor.validate(source, pluginName, zone, filePath);
33
- if (!check.ok)
34
- return fail(check.diagnostics);
35
- }
36
- if (zones.includes?.trim()) {
37
- source = this.injector.applyIncludes(source, pluginName, zones.includes, 'module-includes');
38
- }
39
- if (zones.classBody?.trim()) {
40
- const parsedForWrapper = this.analyzer.parseModule(filePath, source);
41
- const wrapperClassName = getWrapperClassName(pluginName);
42
- const wrapper = this.wrapperFactory.createWrapper(wrapperClassName, 'ModuleRules', 'rules', zones.classBody);
43
- source = this.injector.applyClassWrapper(parsedForWrapper, pluginName, wrapper, 'module-class-body');
44
- const parsedForCtor = this.analyzer.parseModule(filePath, source);
45
- source = this.injector.applyConstructorCall(parsedForCtor, pluginName, `${wrapperClassName}.Apply(this)`, 'module-constructor');
46
- }
47
- fs.writeFileSync(filePath, source, 'utf-8');
48
- return ok(undefined);
49
- }
50
- catch (error) {
51
- return fail([createIoErrorDiagnostic(filePath, error instanceof Error ? error.message : String(error))]);
52
- }
53
- }
54
- }
16
+ * Injects a plugin's `setupModules` content into a single `*.Build.cs` file.
17
+ *
18
+ * The operation is idempotent: re-running overwrites the owned marker blocks.
19
+ * All failures are returned as `Result.fail` — this class never throws. Before
20
+ * mutation, pre-existing owned marker blocks are checked for corruption
21
+ * (orphaned / nested markers) and surfaced as `POSTINSTALL_MARKER_CORRUPT`.
22
+ */
23
+ var BuildCsInjector = class {
24
+ analyzer;
25
+ wrapperFactory;
26
+ injector;
27
+ markerEditor;
28
+ constructor(analyzer = new CSharpStructureAnalyzer(), wrapperFactory = new CSharpWrapperFactory(), injector = new CSharpInjectionEngine(), markerEditor = new MarkerBlockEditor()) {
29
+ this.analyzer = analyzer;
30
+ this.wrapperFactory = wrapperFactory;
31
+ this.injector = injector;
32
+ this.markerEditor = markerEditor;
33
+ }
34
+ apply(filePath, pluginName, zones) {
35
+ try {
36
+ let source = fs.readFileSync(filePath, "utf-8");
37
+ for (const zone of BUILD_CS_ZONES) {
38
+ const check = this.markerEditor.validate(source, pluginName, zone, filePath);
39
+ if (!check.ok) return fail(check.diagnostics);
40
+ }
41
+ if (zones.includes?.trim()) source = this.injector.applyIncludes(source, pluginName, zones.includes, "module-includes");
42
+ if (zones.classBody?.trim()) {
43
+ const parsedForWrapper = this.analyzer.parseModule(filePath, source);
44
+ const wrapperClassName = getWrapperClassName(pluginName);
45
+ const wrapper = this.wrapperFactory.createWrapper(wrapperClassName, "ModuleRules", "rules", zones.classBody);
46
+ source = this.injector.applyClassWrapper(parsedForWrapper, pluginName, wrapper, "module-class-body");
47
+ const parsedForCtor = this.analyzer.parseModule(filePath, source);
48
+ source = this.injector.applyConstructorCall(parsedForCtor, pluginName, `${wrapperClassName}.Apply(this)`, "module-constructor");
49
+ }
50
+ fs.writeFileSync(filePath, source, "utf-8");
51
+ return ok(void 0);
52
+ } catch (error) {
53
+ return fail([createIoErrorDiagnostic(filePath, error instanceof Error ? error.message : String(error))]);
54
+ }
55
+ }
56
+ };
57
+
58
+ //#endregion
59
+ export { BuildCsInjector };
55
60
  //# sourceMappingURL=BuildCsInjector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BuildCsInjector.js","sourceRoot":"","sources":["../../../src/postinstall/unreal/BuildCsInjector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BuildCsInjector.js","names":[],"sources":["../../../src/postinstall/unreal/BuildCsInjector.ts"],"sourcesContent":["import fs from 'node:fs';\nimport { createIoErrorDiagnostic, fail, ok, type Result } from '@uapkg/diagnostics';\nimport type { ZoneDefinition } from '../api/PostinstallDsl.js';\nimport { MarkerBlockEditor } from '../markers/MarkerBlockEditor.js';\nimport { CSharpInjectionEngine } from './CSharpInjectionEngine.js';\nimport { CSharpStructureAnalyzer } from './CSharpStructureAnalyzer.js';\nimport { CSharpWrapperFactory } from './CSharpWrapperFactory.js';\nimport { getWrapperClassName } from './PluginHash.js';\n\nconst BUILD_CS_ZONES = ['module-includes', 'module-class-body', 'module-constructor'] as const;\n\n/**\n * Injects a plugin's `setupModules` content into a single `*.Build.cs` file.\n *\n * The operation is idempotent: re-running overwrites the owned marker blocks.\n * All failures are returned as `Result.fail` — this class never throws. Before\n * mutation, pre-existing owned marker blocks are checked for corruption\n * (orphaned / nested markers) and surfaced as `POSTINSTALL_MARKER_CORRUPT`.\n */\nexport class BuildCsInjector {\n public constructor(\n private readonly analyzer: CSharpStructureAnalyzer = new CSharpStructureAnalyzer(),\n private readonly wrapperFactory: CSharpWrapperFactory = new CSharpWrapperFactory(),\n private readonly injector: CSharpInjectionEngine = new CSharpInjectionEngine(),\n private readonly markerEditor: MarkerBlockEditor = new MarkerBlockEditor(),\n ) {}\n\n public apply(filePath: string, pluginName: string, zones: ZoneDefinition): Result<void> {\n try {\n let source = fs.readFileSync(filePath, 'utf-8');\n\n for (const zone of BUILD_CS_ZONES) {\n const check = this.markerEditor.validate(source, pluginName, zone, filePath);\n if (!check.ok) return fail(check.diagnostics);\n }\n\n if (zones.includes?.trim()) {\n source = this.injector.applyIncludes(source, pluginName, zones.includes, 'module-includes');\n }\n if (zones.classBody?.trim()) {\n const parsedForWrapper = this.analyzer.parseModule(filePath, source);\n const wrapperClassName = getWrapperClassName(pluginName);\n const wrapper = this.wrapperFactory.createWrapper(wrapperClassName, 'ModuleRules', 'rules', zones.classBody);\n source = this.injector.applyClassWrapper(parsedForWrapper, pluginName, wrapper, 'module-class-body');\n\n const parsedForCtor = this.analyzer.parseModule(filePath, source);\n source = this.injector.applyConstructorCall(\n parsedForCtor,\n pluginName,\n `${wrapperClassName}.Apply(this)`,\n 'module-constructor',\n );\n }\n fs.writeFileSync(filePath, source, 'utf-8');\n return ok(undefined);\n } catch (error) {\n return fail([createIoErrorDiagnostic(filePath, error instanceof Error ? error.message : String(error))]);\n }\n }\n}\n"],"mappings":";;;;;;;;;AASA,MAAM,iBAAiB;CAAC;CAAmB;CAAqB;AAAoB;;;;;;;;;AAUpF,IAAa,kBAAb,MAA6B;CAER;CACA;CACA;CACA;CAJnB,AAAO,YACL,AAAiB,WAAoC,IAAI,wBAAwB,GACjF,AAAiB,iBAAuC,IAAI,qBAAqB,GACjF,AAAiB,WAAkC,IAAI,sBAAsB,GAC7E,AAAiB,eAAkC,IAAI,kBAAkB,GACzE;EAJiB;EACA;EACA;EACA;CAChB;CAEH,AAAO,MAAM,UAAkB,YAAoB,OAAqC;EACtF,IAAI;GACF,IAAI,SAAS,GAAG,aAAa,UAAU,OAAO;GAE9C,KAAK,MAAM,QAAQ,gBAAgB;IACjC,MAAM,QAAQ,KAAK,aAAa,SAAS,QAAQ,YAAY,MAAM,QAAQ;IAC3E,IAAI,CAAC,MAAM,IAAI,OAAO,KAAK,MAAM,WAAW;GAC9C;GAEA,IAAI,MAAM,UAAU,KAAK,GACvB,SAAS,KAAK,SAAS,cAAc,QAAQ,YAAY,MAAM,UAAU,iBAAiB;GAE5F,IAAI,MAAM,WAAW,KAAK,GAAG;IAC3B,MAAM,mBAAmB,KAAK,SAAS,YAAY,UAAU,MAAM;IACnE,MAAM,mBAAmB,oBAAoB,UAAU;IACvD,MAAM,UAAU,KAAK,eAAe,cAAc,kBAAkB,eAAe,SAAS,MAAM,SAAS;IAC3G,SAAS,KAAK,SAAS,kBAAkB,kBAAkB,YAAY,SAAS,mBAAmB;IAEnG,MAAM,gBAAgB,KAAK,SAAS,YAAY,UAAU,MAAM;IAChE,SAAS,KAAK,SAAS,qBACrB,eACA,YACA,GAAG,iBAAiB,eACpB,oBACF;GACF;GACA,GAAG,cAAc,UAAU,QAAQ,OAAO;GAC1C,OAAO,GAAG,MAAS;EACrB,SAAS,OAAO;GACd,OAAO,KAAK,CAAC,wBAAwB,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC,CAAC,CAAC;EACzG;CACF;AACF"}
@@ -1,5 +1,6 @@
1
- import { MarkerBlockService } from '../markers/MarkerBlockService.js';
2
- import type { ParsedCSharpFile } from './CSharpStructures.js';
1
+ import { MarkerBlockService } from "../markers/MarkerBlockService.js";
2
+ import { ParsedCSharpFile } from "./CSharpStructures.js";
3
+ //#region src/postinstall/unreal/CSharpInjectionEngine.d.ts
3
4
  /**
4
5
  * Applies marker-delimited edits to a parsed C# file at three well-known anchors:
5
6
  *
@@ -10,13 +11,15 @@ import type { ParsedCSharpFile } from './CSharpStructures.js';
10
11
  * Every edit is wrapped in an owned `UAPKG-BEGIN/END` marker block so re-running
11
12
  * uapkg is idempotent. Existing owned blocks are stripped before re-insert.
12
13
  */
13
- export declare class CSharpInjectionEngine {
14
- private readonly markerBlock;
15
- constructor(markerBlock?: MarkerBlockService);
16
- applyIncludes(source: string, pluginName: string, includesContent: string, zone: string): string;
17
- applyClassWrapper(parsed: ParsedCSharpFile, pluginName: string, wrapperContent: string, zone: string): string;
18
- applyConstructorCall(parsed: ParsedCSharpFile, pluginName: string, callExpression: string, zone: string): string;
19
- private detectClassMemberIndent;
20
- private detectConstructorIndent;
14
+ declare class CSharpInjectionEngine {
15
+ private readonly markerBlock;
16
+ constructor(markerBlock?: MarkerBlockService);
17
+ applyIncludes(source: string, pluginName: string, includesContent: string, zone: string): string;
18
+ applyClassWrapper(parsed: ParsedCSharpFile, pluginName: string, wrapperContent: string, zone: string): string;
19
+ applyConstructorCall(parsed: ParsedCSharpFile, pluginName: string, callExpression: string, zone: string): string;
20
+ private detectClassMemberIndent;
21
+ private detectConstructorIndent;
21
22
  }
23
+ //#endregion
24
+ export { CSharpInjectionEngine };
22
25
  //# sourceMappingURL=CSharpInjectionEngine.d.ts.map