@uapkg/cli 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (625) hide show
  1. package/README.md +3 -0
  2. package/dist/build/BuildMetadata.js +2 -2
  3. package/dist/cli-bootstrap.js +19846 -13
  4. package/dist/cli.js +1 -1
  5. package/dist/index.js +19980 -60
  6. package/dist/licenses/semver-LICENSE +15 -0
  7. package/dist/profile.js +25 -0
  8. package/dist/runtime-lock.json +2142 -0
  9. package/dist/{app → types/uapkg/app}/CompositionRoot.d.ts +4 -5
  10. package/dist/{app → types/uapkg/app}/UAPKGApplication.d.ts +0 -1
  11. package/dist/{build → types/uapkg/build}/BuildMetadata.d.ts +1 -2
  12. package/dist/types/uapkg/cli/DebugEnvironment.d.ts +15 -0
  13. package/dist/types/uapkg/cli/DebugInfo.d.ts +15 -0
  14. package/dist/{cli → types/uapkg/cli}/UAPKGCommandLine.d.ts +0 -1
  15. package/dist/{cli → types/uapkg/cli}/parseCommandLine.d.ts +0 -1
  16. package/dist/{cli → types/uapkg/cli}/parsing/UAPKGCommandLineParser.d.ts +0 -1
  17. package/dist/{cli → types/uapkg/cli}/parsing/UAPKGParserRegistry.d.ts +0 -1
  18. package/dist/{cli → types/uapkg/cli}/parsing/contracts/UAPKGCommandModule.d.ts +0 -1
  19. package/dist/{cli → types/uapkg/cli}/parsing/modules/AddCommandModule.d.ts +0 -1
  20. package/dist/{cli → types/uapkg/cli}/parsing/modules/ConfigCommandModule.d.ts +0 -1
  21. package/dist/{cli → types/uapkg/cli}/parsing/modules/InitCommandModule.d.ts +0 -1
  22. package/dist/{cli → types/uapkg/cli}/parsing/modules/InstallCommandModule.d.ts +0 -1
  23. package/dist/{cli → types/uapkg/cli}/parsing/modules/LifecycleCommandModule.d.ts +0 -1
  24. package/dist/{cli → types/uapkg/cli}/parsing/modules/ListCommandModule.d.ts +0 -1
  25. package/dist/{cli → types/uapkg/cli}/parsing/modules/LoginCommandModule.d.ts +0 -1
  26. package/dist/{cli → types/uapkg/cli}/parsing/modules/LogoutCommandModule.d.ts +0 -1
  27. package/dist/{cli → types/uapkg/cli}/parsing/modules/OutdatedCommandModule.d.ts +0 -1
  28. package/dist/{cli → types/uapkg/cli}/parsing/modules/PackCommandModule.d.ts +0 -1
  29. package/dist/{cli → types/uapkg/cli}/parsing/modules/ProjectGetNameCommandModule.d.ts +0 -1
  30. package/dist/{cli → types/uapkg/cli}/parsing/modules/PublishCommandModule.d.ts +0 -1
  31. package/dist/{cli → types/uapkg/cli}/parsing/modules/RegistryCommandModule.d.ts +0 -1
  32. package/dist/{cli → types/uapkg/cli}/parsing/modules/RemoveCommandModule.d.ts +0 -1
  33. package/dist/{cli → types/uapkg/cli}/parsing/modules/RequestsCommandModule.d.ts +0 -1
  34. package/dist/{cli → types/uapkg/cli}/parsing/modules/UpdateCommandModule.d.ts +0 -1
  35. package/dist/{cli → types/uapkg/cli}/parsing/modules/WhoamiCommandModule.d.ts +0 -1
  36. package/dist/{cli → types/uapkg/cli}/parsing/modules/WhyCommandModule.d.ts +0 -1
  37. package/dist/{cli → types/uapkg/cli}/parsing/modules/sharedOptions.d.ts +0 -1
  38. package/dist/{cli → types/uapkg/cli}/runUAPKGCLI.d.ts +0 -1
  39. package/dist/{commands → types/uapkg/commands}/AddCommand.d.ts +0 -1
  40. package/dist/{commands → types/uapkg/commands}/Command.d.ts +0 -1
  41. package/dist/{commands → types/uapkg/commands}/ConfigCommand.d.ts +0 -1
  42. package/dist/{commands → types/uapkg/commands}/InitCommand.d.ts +1 -2
  43. package/dist/{commands → types/uapkg/commands}/InstallCommand.d.ts +0 -1
  44. package/dist/{commands → types/uapkg/commands}/ListCommand.d.ts +0 -1
  45. package/dist/{commands → types/uapkg/commands}/LoginCommand.d.ts +0 -1
  46. package/dist/{commands → types/uapkg/commands}/LogoutCommand.d.ts +0 -1
  47. package/dist/{commands → types/uapkg/commands}/OutdatedCommand.d.ts +0 -1
  48. package/dist/{commands → types/uapkg/commands}/PackCommand.d.ts +0 -1
  49. package/dist/{commands → types/uapkg/commands}/PackageLifecycleCommand.d.ts +0 -1
  50. package/dist/{commands → types/uapkg/commands}/PostinstallCandidateBuilder.d.ts +2 -3
  51. package/dist/{commands → types/uapkg/commands}/ProjectGetNameCommand.d.ts +0 -1
  52. package/dist/{commands → types/uapkg/commands}/PublishCommand.d.ts +1 -2
  53. package/dist/{commands → types/uapkg/commands}/RegistryCommand.d.ts +0 -1
  54. package/dist/{commands → types/uapkg/commands}/RemoveCommand.d.ts +0 -1
  55. package/dist/{commands → types/uapkg/commands}/RequestsCommand.d.ts +0 -1
  56. package/dist/{commands → types/uapkg/commands}/UpdateCommand.d.ts +0 -1
  57. package/dist/{commands → types/uapkg/commands}/WhoamiCommand.d.ts +0 -1
  58. package/dist/{commands → types/uapkg/commands}/WhyCommand.d.ts +0 -1
  59. package/dist/{commands → types/uapkg/commands}/add/DependencyAddResolver.d.ts +3 -4
  60. package/dist/{control-plane → types/uapkg/control-plane}/AccountManager.d.ts +1 -2
  61. package/dist/{control-plane → types/uapkg/control-plane}/ArtifactObserver.d.ts +0 -1
  62. package/dist/{control-plane → types/uapkg/control-plane}/AuthMetadataStore.d.ts +0 -1
  63. package/dist/{control-plane → types/uapkg/control-plane}/AuthStoragePaths.d.ts +0 -1
  64. package/dist/{control-plane → types/uapkg/control-plane}/AuthenticationSelector.d.ts +0 -1
  65. package/dist/{control-plane → types/uapkg/control-plane}/ControlPlaneClient.d.ts +1 -2
  66. package/dist/{control-plane → types/uapkg/control-plane}/ControlPlaneEndpoints.d.ts +1 -2
  67. package/dist/{control-plane → types/uapkg/control-plane}/ControlPlaneTypes.d.ts +4 -2
  68. package/dist/{control-plane → types/uapkg/control-plane}/CredentialStore.d.ts +0 -1
  69. package/dist/{control-plane → types/uapkg/control-plane}/DPoPKeyStore.d.ts +0 -1
  70. package/dist/{control-plane → types/uapkg/control-plane}/GitHubActionsOidcCredentialProvider.d.ts +4 -3
  71. package/dist/{control-plane → types/uapkg/control-plane}/PublishIdempotencyStore.d.ts +0 -1
  72. package/dist/{control-plane → types/uapkg/control-plane}/PublishRequestErrorMapper.d.ts +1 -2
  73. package/dist/{control-plane → types/uapkg/control-plane}/RegistryGrantLock.d.ts +0 -1
  74. package/dist/{control-plane → types/uapkg/control-plane}/RegistryTrustResolver.d.ts +0 -1
  75. package/dist/types/uapkg/control-plane/RequestWatch.d.ts +15 -0
  76. package/dist/types/uapkg/control-plane/RetryAfter.d.ts +6 -0
  77. package/dist/{postinstall → types/uapkg/postinstall}/api/PostinstallDsl.d.ts +0 -1
  78. package/dist/{postinstall → types/uapkg/postinstall}/api/definePostinstall.d.ts +0 -1
  79. package/dist/{postinstall → types/uapkg/postinstall}/loader/EntryResolver.d.ts +1 -2
  80. package/dist/{postinstall → types/uapkg/postinstall}/loader/EsbuildTranspiler.d.ts +1 -2
  81. package/dist/{postinstall → types/uapkg/postinstall}/loader/ExportValidator.d.ts +1 -2
  82. package/dist/{postinstall → types/uapkg/postinstall}/loader/ModuleImporter.d.ts +1 -2
  83. package/dist/{postinstall → types/uapkg/postinstall}/loader/PostinstallLoader.d.ts +1 -2
  84. package/dist/{postinstall → types/uapkg/postinstall}/markers/MarkerBlockEditor.d.ts +1 -2
  85. package/dist/{postinstall → types/uapkg/postinstall}/markers/MarkerBlockService.d.ts +0 -1
  86. package/dist/{postinstall → types/uapkg/postinstall}/markers/MarkerIntegrityValidator.d.ts +0 -1
  87. package/dist/{postinstall → types/uapkg/postinstall}/policy/PostinstallPolicyGate.d.ts +2 -3
  88. package/dist/{postinstall → types/uapkg/postinstall}/runner/PostinstallOrchestrator.d.ts +1 -2
  89. package/dist/{postinstall → types/uapkg/postinstall}/unreal/BuildCsInjector.d.ts +1 -2
  90. package/dist/{postinstall → types/uapkg/postinstall}/unreal/CSharpInjectionEngine.d.ts +0 -1
  91. package/dist/{postinstall → types/uapkg/postinstall}/unreal/CSharpStructureAnalyzer.d.ts +0 -1
  92. package/dist/{postinstall → types/uapkg/postinstall}/unreal/CSharpStructures.d.ts +0 -1
  93. package/dist/{postinstall → types/uapkg/postinstall}/unreal/CSharpWrapperFactory.d.ts +0 -1
  94. package/dist/{postinstall → types/uapkg/postinstall}/unreal/PluginHash.d.ts +0 -1
  95. package/dist/{postinstall → types/uapkg/postinstall}/unreal/PrettyParseError.d.ts +0 -1
  96. package/dist/{postinstall → types/uapkg/postinstall}/unreal/ProjectFileLocator.d.ts +0 -1
  97. package/dist/{postinstall → types/uapkg/postinstall}/unreal/TargetCsInjector.d.ts +1 -2
  98. package/dist/{postinstall → types/uapkg/postinstall}/unreal/UProjectInjector.d.ts +1 -2
  99. package/dist/{postinstall → types/uapkg/postinstall}/unreal/UProjectMetadataReader.d.ts +0 -1
  100. package/dist/{postinstall → types/uapkg/postinstall}/unreal/UnrealSourceCatalog.d.ts +0 -1
  101. package/dist/{prompts → types/uapkg/prompts}/InkPromptService.d.ts +0 -1
  102. package/dist/{prompts → types/uapkg/prompts}/ProjectContextDetector.d.ts +1 -2
  103. package/dist/{prompts → types/uapkg/prompts}/PromptService.d.ts +0 -1
  104. package/dist/{reporting → types/uapkg/reporting}/DiagnosticDeduplicator.d.ts +1 -2
  105. package/dist/{reporting → types/uapkg/reporting}/DiagnosticRenderer.d.ts +1 -2
  106. package/dist/{reporting → types/uapkg/reporting}/DiagnosticReporter.d.ts +1 -2
  107. package/dist/{reporting → types/uapkg/reporting}/InkDiagnosticRenderer.d.ts +2 -3
  108. package/dist/{reporting → types/uapkg/reporting}/InstallProgressReporter.d.ts +1 -2
  109. package/dist/{reporting → types/uapkg/reporting}/JsonReporter.d.ts +1 -2
  110. package/dist/{reporting → types/uapkg/reporting}/RegistryRequestTerminalFormatter.d.ts +0 -1
  111. package/dist/{reporting → types/uapkg/reporting}/TextDiagnosticRenderer.d.ts +1 -2
  112. package/dist/{reporting → types/uapkg/reporting}/TextSink.d.ts +1 -2
  113. package/dist/types/uapkg-common/format/prettyBytes.d.ts +19 -0
  114. package/dist/types/uapkg-common/hash/registryIdentifier.d.ts +28 -0
  115. package/dist/types/uapkg-common/hash/sha256.d.ts +12 -0
  116. package/dist/types/uapkg-common/index.d.ts +10 -0
  117. package/dist/types/uapkg-common/json/safeJsonParse.d.ts +9 -0
  118. package/dist/types/uapkg-common/json/stableStringify.d.ts +9 -0
  119. package/dist/types/uapkg-common/normalize/normalizeUrl.d.ts +11 -0
  120. package/dist/types/uapkg-common/paths/forwardSlash.d.ts +12 -0
  121. package/dist/types/uapkg-common/runtime/UapkgRuntimeProfile.d.ts +19 -0
  122. package/dist/types/uapkg-common/spec/parsePackageSpec.d.ts +21 -0
  123. package/dist/types/uapkg-common-schema/brand/Brand.d.ts +15 -0
  124. package/dist/types/uapkg-common-schema/index.d.ts +17 -0
  125. package/dist/types/uapkg-common-schema/primitives/AssetHash.d.ts +11 -0
  126. package/dist/types/uapkg-common-schema/primitives/ConcurrencyCount.d.ts +11 -0
  127. package/dist/types/uapkg-common-schema/primitives/DurationSeconds.d.ts +11 -0
  128. package/dist/types/uapkg-common-schema/primitives/GitTree.d.ts +10 -0
  129. package/dist/types/uapkg-common-schema/primitives/InstallPath.d.ts +18 -0
  130. package/dist/types/uapkg-common-schema/primitives/OrgName.d.ts +12 -0
  131. package/dist/types/uapkg-common-schema/primitives/PackageName.d.ts +14 -0
  132. package/dist/types/uapkg-common-schema/primitives/PackageSpec.d.ts +21 -0
  133. package/dist/types/uapkg-common-schema/primitives/PackageVersion.d.ts +10 -0
  134. package/dist/types/uapkg-common-schema/primitives/PostInstallPolicy.d.ts +21 -0
  135. package/dist/types/uapkg-common-schema/primitives/RegistryIdentifier.d.ts +15 -0
  136. package/dist/types/uapkg-common-schema/primitives/RegistryName.d.ts +18 -0
  137. package/dist/types/uapkg-common-schema/primitives/RegistryURL.d.ts +10 -0
  138. package/dist/types/uapkg-common-schema/primitives/UnixTimestamp.d.ts +10 -0
  139. package/dist/types/uapkg-common-schema/primitives/VersionRange.d.ts +10 -0
  140. package/dist/types/uapkg-config/contracts/ConfigTypes.d.ts +58 -0
  141. package/dist/types/uapkg-config/core/ConfigInstance.d.ts +43 -0
  142. package/dist/types/uapkg-config/core/ConfigLayerBuilder.d.ts +13 -0
  143. package/dist/types/uapkg-config/core/ConfigResolver.d.ts +19 -0
  144. package/dist/types/uapkg-config/core/ConfigSemanticValidator.d.ts +13 -0
  145. package/dist/types/uapkg-config/core/ConfigWriter.d.ts +25 -0
  146. package/dist/types/uapkg-config/core/PostInstallPolicyResolver.d.ts +22 -0
  147. package/dist/types/uapkg-config/factory/createConfig.d.ts +6 -0
  148. package/dist/types/uapkg-config/files/ConfigFileRepository.d.ts +11 -0
  149. package/dist/types/uapkg-config/files/ConfigPathResolver.d.ts +14 -0
  150. package/dist/types/uapkg-config/index.d.ts +127 -0
  151. package/dist/types/uapkg-config/merge/ConfigMerger.d.ts +10 -0
  152. package/dist/types/uapkg-config/merge/ConfigSchemaMergeEngine.d.ts +26 -0
  153. package/dist/types/uapkg-config/schema/configSchema.d.ts +114 -0
  154. package/dist/types/uapkg-config/schema/pathSchema.d.ts +12 -0
  155. package/dist/types/uapkg-config/schema/runtime/ConfigCliValueParser.d.ts +18 -0
  156. package/dist/types/uapkg-config/schema/runtime/ConfigSchemaIntrospection.d.ts +13 -0
  157. package/dist/types/uapkg-config/schema/runtime/ConfigSchemaRuntime.d.ts +26 -0
  158. package/dist/types/uapkg-config/schema/runtime/ConfigSchemaRuntimeProvider.d.ts +7 -0
  159. package/dist/types/uapkg-diagnostics/base/Diagnostic.d.ts +32 -0
  160. package/dist/types/uapkg-diagnostics/base/DiagnosticBag.d.ts +44 -0
  161. package/dist/types/uapkg-diagnostics/base/DiagnosticFingerprint.d.ts +12 -0
  162. package/dist/types/uapkg-diagnostics/base/DiagnosticLevel.d.ts +11 -0
  163. package/dist/types/uapkg-diagnostics/base/Result.d.ts +26 -0
  164. package/dist/types/uapkg-diagnostics/config/ConfigDiagnostics.d.ts +49 -0
  165. package/dist/types/uapkg-diagnostics/controlPlane/ControlPlaneDiagnostics.d.ts +25 -0
  166. package/dist/types/uapkg-diagnostics/general/GeneralDiagnostics.d.ts +23 -0
  167. package/dist/types/uapkg-diagnostics/index.d.ts +20 -0
  168. package/dist/types/uapkg-diagnostics/installer/InstallerDiagnostics.d.ts +55 -0
  169. package/dist/types/uapkg-diagnostics/manifest/ManifestDiagnostics.d.ts +70 -0
  170. package/dist/types/uapkg-diagnostics/pack/PackDiagnostics.d.ts +49 -0
  171. package/dist/types/uapkg-diagnostics/postinstall/PostinstallDiagnostics.d.ts +47 -0
  172. package/dist/types/uapkg-diagnostics/publishing/PublishingDiagnostics.d.ts +77 -0
  173. package/dist/types/uapkg-diagnostics/registry/RegistryDiagnostics.d.ts +71 -0
  174. package/dist/types/uapkg-diagnostics/registryTools/RegistryToolsDiagnostics.d.ts +130 -0
  175. package/dist/types/uapkg-diagnostics/resolver/ResolverDiagnostics.d.ts +38 -0
  176. package/dist/types/uapkg-diagnostics/safety/SafetyDiagnostics.d.ts +33 -0
  177. package/dist/types/uapkg-diagnostics/spec/SpecDiagnostics.d.ts +23 -0
  178. package/dist/types/uapkg-diagnostics/types.d.ts +37 -0
  179. package/dist/types/uapkg-diagnostics-format/contracts/FormatterTypes.d.ts +23 -0
  180. package/dist/types/uapkg-diagnostics-format/defaults/defaultFormatters.d.ts +8 -0
  181. package/dist/types/uapkg-diagnostics-format/formatters/PlainTextFormatter.d.ts +11 -0
  182. package/dist/types/uapkg-diagnostics-format/formatters/config/configFormatters.d.ts +5 -0
  183. package/dist/types/uapkg-diagnostics-format/formatters/installer/installerFormatters.d.ts +5 -0
  184. package/dist/types/uapkg-diagnostics-format/formatters/manifest/manifestFormatters.d.ts +5 -0
  185. package/dist/types/uapkg-diagnostics-format/formatters/pack/packFormatters.d.ts +5 -0
  186. package/dist/types/uapkg-diagnostics-format/formatters/postinstall/postinstallFormatters.d.ts +5 -0
  187. package/dist/types/uapkg-diagnostics-format/formatters/publishing/publishingFormatters.d.ts +13 -0
  188. package/dist/types/uapkg-diagnostics-format/formatters/registry/registryFormatters.d.ts +5 -0
  189. package/dist/types/uapkg-diagnostics-format/formatters/registryTools/registryToolsFormatters.d.ts +5 -0
  190. package/dist/types/uapkg-diagnostics-format/formatters/resolver/resolverFormatters.d.ts +5 -0
  191. package/dist/types/uapkg-diagnostics-format/formatters/safety/safetyFormatters.d.ts +5 -0
  192. package/dist/types/uapkg-diagnostics-format/formatters/spec/specFormatters.d.ts +5 -0
  193. package/dist/types/uapkg-diagnostics-format/index.d.ts +15 -0
  194. package/dist/types/uapkg-diagnostics-format/ink/components/configInkComponents.d.ts +5 -0
  195. package/dist/types/uapkg-diagnostics-format/ink/components/installerInkComponents.d.ts +5 -0
  196. package/dist/types/uapkg-diagnostics-format/ink/components/manifestInkComponents.d.ts +5 -0
  197. package/dist/types/uapkg-diagnostics-format/ink/components/packInkComponents.d.ts +5 -0
  198. package/dist/types/uapkg-diagnostics-format/ink/components/postinstallInkComponents.d.ts +5 -0
  199. package/dist/types/uapkg-diagnostics-format/ink/components/publishingInkComponents.d.ts +5 -0
  200. package/dist/types/uapkg-diagnostics-format/ink/components/registryInkComponents.d.ts +5 -0
  201. package/dist/types/uapkg-diagnostics-format/ink/components/resolverInkComponents.d.ts +5 -0
  202. package/dist/types/uapkg-diagnostics-format/ink/components/safetyInkComponents.d.ts +5 -0
  203. package/dist/types/uapkg-diagnostics-format/ink/components/specInkComponents.d.ts +5 -0
  204. package/dist/types/uapkg-diagnostics-format/ink/contracts/InkTypes.d.ts +35 -0
  205. package/dist/types/uapkg-diagnostics-format/ink/defaults/defaultInkComponents.d.ts +15 -0
  206. package/dist/types/uapkg-diagnostics-format/ink/index.d.ts +17 -0
  207. package/dist/types/uapkg-diagnostics-format/ink/primitives/HintLine.d.ts +12 -0
  208. package/dist/types/uapkg-diagnostics-format/ink/primitives/PlainTextBody.d.ts +11 -0
  209. package/dist/types/uapkg-diagnostics-format/ink/primitives/SeverityBadge.d.ts +13 -0
  210. package/dist/types/uapkg-diagnostics-format/ink/registry/DiagnosticInkRegistry.d.ts +24 -0
  211. package/dist/types/uapkg-diagnostics-format/ink/views/DiagnosticView.d.ts +21 -0
  212. package/dist/types/uapkg-diagnostics-format/ink/views/DiagnosticsListView.d.ts +16 -0
  213. package/dist/types/uapkg-diagnostics-format/registry/FormatterRegistry.d.ts +26 -0
  214. package/dist/types/uapkg-diagnostics-format/utils/indent.d.ts +7 -0
  215. package/dist/types/uapkg-installer/contracts/InstallerTypes.d.ts +91 -0
  216. package/dist/types/uapkg-installer/contracts/SafetyPolicyTypes.d.ts +43 -0
  217. package/dist/types/uapkg-installer/contracts/StatusStreamTypes.d.ts +42 -0
  218. package/dist/types/uapkg-installer/core/ClaimsVerifier.d.ts +22 -0
  219. package/dist/types/uapkg-installer/core/DiskStateInspector.d.ts +29 -0
  220. package/dist/types/uapkg-installer/core/InstallPlanner.d.ts +35 -0
  221. package/dist/types/uapkg-installer/core/Installer.d.ts +61 -0
  222. package/dist/types/uapkg-installer/core/IntegrityVerifier.d.ts +16 -0
  223. package/dist/types/uapkg-installer/core/PackageDownloader.d.ts +40 -0
  224. package/dist/types/uapkg-installer/core/PackageExtractor.d.ts +20 -0
  225. package/dist/types/uapkg-installer/core/PackageRemover.d.ts +14 -0
  226. package/dist/types/uapkg-installer/index.d.ts +16 -0
  227. package/dist/types/uapkg-installer/safety/NoMarkerPolicy.d.ts +17 -0
  228. package/dist/types/uapkg-installer/safety/SafetyPolicyRegistry.d.ts +32 -0
  229. package/dist/types/uapkg-installer/status/SlotTable.d.ts +36 -0
  230. package/dist/types/uapkg-installer/status/StatusStream.d.ts +25 -0
  231. package/dist/types/uapkg-log/contracts/LoggerTypes.d.ts +22 -0
  232. package/dist/types/uapkg-log/core/LogLevelPolicy.d.ts +15 -0
  233. package/dist/types/uapkg-log/core/LoggerFactory.d.ts +11 -0
  234. package/dist/types/uapkg-log/core/LoggerInstance.d.ts +17 -0
  235. package/dist/types/uapkg-log/core/WinstonLoggerAdapter.d.ts +8 -0
  236. package/dist/types/uapkg-log/index.d.ts +8 -0
  237. package/dist/types/uapkg-pack/contracts/PackTypes.d.ts +29 -0
  238. package/dist/types/uapkg-pack/core/FileCrawler.d.ts +12 -0
  239. package/dist/types/uapkg-pack/core/IgnoreEvaluator.d.ts +7 -0
  240. package/dist/types/uapkg-pack/core/IgnoreRuleLoader.d.ts +14 -0
  241. package/dist/types/uapkg-pack/core/IntegrityWriter.d.ts +6 -0
  242. package/dist/types/uapkg-pack/core/LFSPointerDetector.d.ts +6 -0
  243. package/dist/types/uapkg-pack/core/PackArtifactExcluder.d.ts +11 -0
  244. package/dist/types/uapkg-pack/core/PackManifestReader.d.ts +8 -0
  245. package/dist/types/uapkg-pack/core/PackService.d.ts +32 -0
  246. package/dist/types/uapkg-pack/core/PluginDescriptorGuard.d.ts +11 -0
  247. package/dist/types/uapkg-pack/core/PluginRootResolver.d.ts +14 -0
  248. package/dist/types/uapkg-pack/core/TarArchiveWriter.d.ts +11 -0
  249. package/dist/types/uapkg-pack/index.d.ts +7 -0
  250. package/dist/types/uapkg-package-claims/archive/PackagedManifestReader.d.ts +28 -0
  251. package/dist/types/uapkg-package-claims/claims/ClaimsComparison.d.ts +44 -0
  252. package/dist/types/uapkg-package-claims/claims/PackageClaims.d.ts +9 -0
  253. package/dist/types/uapkg-package-claims/index.d.ts +7 -0
  254. package/dist/types/uapkg-package-claims/json/CanonicalJson.d.ts +17 -0
  255. package/dist/types/uapkg-package-claims/schema/PackageClaimsSchema.d.ts +27 -0
  256. package/dist/types/uapkg-package-claims/schema/index.d.ts +2 -0
  257. package/dist/types/uapkg-package-manifest/contracts/ManifestTypes.d.ts +37 -0
  258. package/dist/types/uapkg-package-manifest/core/DependencyMutator.d.ts +48 -0
  259. package/dist/types/uapkg-package-manifest/core/DevDependencyPolicy.d.ts +30 -0
  260. package/dist/types/uapkg-package-manifest/core/InstallPathResolver.d.ts +35 -0
  261. package/dist/types/uapkg-package-manifest/core/LockfileDiffer.d.ts +40 -0
  262. package/dist/types/uapkg-package-manifest/core/LockfileSyncIssue.d.ts +11 -0
  263. package/dist/types/uapkg-package-manifest/core/LockfileSyncValidator.d.ts +26 -0
  264. package/dist/types/uapkg-package-manifest/core/OutdatedChecker.d.ts +36 -0
  265. package/dist/types/uapkg-package-manifest/core/PackageManifest.d.ts +63 -0
  266. package/dist/types/uapkg-package-manifest/core/WhyGraph.d.ts +31 -0
  267. package/dist/types/uapkg-package-manifest/index.d.ts +18 -0
  268. package/dist/types/uapkg-package-manifest/io/LockfileReader.d.ts +12 -0
  269. package/dist/types/uapkg-package-manifest/io/LockfileSyncIssueWriter.d.ts +12 -0
  270. package/dist/types/uapkg-package-manifest/io/LockfileWriter.d.ts +11 -0
  271. package/dist/types/uapkg-package-manifest/io/ManifestReader.d.ts +12 -0
  272. package/dist/types/uapkg-package-manifest/io/ManifestWriter.d.ts +13 -0
  273. package/dist/types/uapkg-package-manifest/resolver/LockfileSync.d.ts +13 -0
  274. package/dist/types/uapkg-package-manifest/resolver/Resolver.d.ts +16 -0
  275. package/dist/types/uapkg-package-manifest-schema/index.d.ts +10 -0
  276. package/dist/types/uapkg-package-manifest-schema/lockfile/LockDependencySchema.d.ts +15 -0
  277. package/dist/types/uapkg-package-manifest-schema/lockfile/LockfileSchema.d.ts +22 -0
  278. package/dist/types/uapkg-package-manifest-schema/manifest/BaseManifestSchema.d.ts +56 -0
  279. package/dist/types/uapkg-package-manifest-schema/manifest/DependencySchema.d.ts +57 -0
  280. package/dist/types/uapkg-package-manifest-schema/manifest/ManifestKind.d.ts +17 -0
  281. package/dist/types/uapkg-package-manifest-schema/manifest/ManifestSchema.d.ts +106 -0
  282. package/dist/types/uapkg-package-manifest-schema/manifest/PluginManifestSchema.d.ts +52 -0
  283. package/dist/types/uapkg-package-manifest-schema/manifest/ProjectManifestSchema.d.ts +80 -0
  284. package/dist/types/uapkg-package-manifest-schema/manifest/PublishSchema.d.ts +15 -0
  285. package/dist/types/uapkg-registry-core/contracts/RegistryCoreTypes.d.ts +54 -0
  286. package/dist/types/uapkg-registry-core/core/RegistryCore.d.ts +26 -0
  287. package/dist/types/uapkg-registry-core/index.d.ts +14 -0
  288. package/dist/types/uapkg-registry-core/paths/RegistryPaths.d.ts +15 -0
  289. package/dist/types/uapkg-registry-core/registry/GitRunner.d.ts +31 -0
  290. package/dist/types/uapkg-registry-core/registry/Registry.d.ts +46 -0
  291. package/dist/types/uapkg-registry-core/registry/RegistryCacheValidator.d.ts +21 -0
  292. package/dist/types/uapkg-registry-core/registry/RegistryLock.d.ts +27 -0
  293. package/dist/types/uapkg-registry-core/registry/RegistryMetadataReader.d.ts +18 -0
  294. package/dist/types/uapkg-registry-core/registry/RegistryPackageReader.d.ts +24 -0
  295. package/dist/types/uapkg-registry-core/registry/RegistrySyncPolicy.d.ts +14 -0
  296. package/dist/types/uapkg-registry-core/registry/RegistryUpdater.d.ts +23 -0
  297. package/dist/types/uapkg-registry-core/registry/RegistryUrlSanitizer.d.ts +10 -0
  298. package/dist/types/uapkg-registry-core/resolution/PackageResolver.d.ts +21 -0
  299. package/dist/types/uapkg-registry-core/resolution/SemverSelectionPolicy.d.ts +36 -0
  300. package/dist/types/uapkg-registry-schema/index.d.ts +9 -0
  301. package/dist/types/uapkg-registry-schema/paths/RegistryPackagePath.d.ts +15 -0
  302. package/dist/types/uapkg-registry-schema/schemas/IntegritySchema.d.ts +12 -0
  303. package/dist/types/uapkg-registry-schema/schemas/PackageRegistryManifestSchema.d.ts +108 -0
  304. package/dist/types/uapkg-registry-schema/schemas/PackageSourceSchema.d.ts +12 -0
  305. package/dist/types/uapkg-registry-schema/schemas/RegistryAssetSchema.d.ts +15 -0
  306. package/dist/types/uapkg-registry-schema/schemas/RegistryDependencySchema.d.ts +36 -0
  307. package/dist/types/uapkg-registry-schema/schemas/RegistryMetaSchema.d.ts +29 -0
  308. package/dist/types/uapkg-registry-schema/schemas/RegistryVersionSchema.d.ts +71 -0
  309. package/dist/types/uapkg-registry-tools/aggregator/RegistryToolsAggregator.d.ts +45 -0
  310. package/dist/types/uapkg-registry-tools/contracts/RegistryToolsTypes.d.ts +116 -0
  311. package/dist/types/uapkg-registry-tools/index.d.ts +18 -0
  312. package/dist/types/uapkg-registry-tools/io/IntegrityCalculator.d.ts +20 -0
  313. package/dist/types/uapkg-registry-tools/io/ManifestStore.d.ts +41 -0
  314. package/dist/types/uapkg-registry-tools/listing/PackageLister.d.ts +22 -0
  315. package/dist/types/uapkg-registry-tools/mutation/AddPackageVersionPlanner.d.ts +25 -0
  316. package/dist/types/uapkg-registry-tools/mutation/RemovePackagePlanner.d.ts +22 -0
  317. package/dist/types/uapkg-registry-tools/mutation/RemovePackageVersionPlanner.d.ts +21 -0
  318. package/dist/types/uapkg-registry-tools/mutation/VersionSorter.d.ts +10 -0
  319. package/dist/types/uapkg-registry-tools/paths/RegistryRepoPaths.d.ts +23 -0
  320. package/dist/types/uapkg-registry-tools/tools/RegistryTools.d.ts +64 -0
  321. package/dist/types/uapkg-registry-tools/validation/DependencyReachabilityValidator.d.ts +24 -0
  322. package/dist/types/uapkg-registry-tools/validation/ExternalRegistryPolicyValidator.d.ts +22 -0
  323. package/dist/types/uapkg-registry-tools/validation/ManifestValidator.d.ts +16 -0
  324. package/dist/types/uapkg-registry-tools/validation/OfficialRegistryPolicyValidator.d.ts +34 -0
  325. package/dist/types/uapkg-registry-tools/validation/RegistryValidator.d.ts +31 -0
  326. package/dist/types/uapkg-registry-tools/validation/ReleaseFileNameValidator.d.ts +21 -0
  327. package/package.json +21 -48
  328. package/dist/app/CompositionRoot.d.ts.map +0 -1
  329. package/dist/app/CompositionRoot.js +0 -93
  330. package/dist/app/CompositionRoot.js.map +0 -1
  331. package/dist/app/UAPKGApplication.d.ts.map +0 -1
  332. package/dist/app/UAPKGApplication.js +0 -157
  333. package/dist/app/UAPKGApplication.js.map +0 -1
  334. package/dist/build/BuildMetadata.d.ts.map +0 -1
  335. package/dist/cli/UAPKGCommandLine.d.ts.map +0 -1
  336. package/dist/cli/UAPKGCommandLine.js +0 -250
  337. package/dist/cli/UAPKGCommandLine.js.map +0 -1
  338. package/dist/cli/parseCommandLine.d.ts.map +0 -1
  339. package/dist/cli/parseCommandLine.js +0 -11
  340. package/dist/cli/parseCommandLine.js.map +0 -1
  341. package/dist/cli/parsing/UAPKGCommandLineParser.d.ts.map +0 -1
  342. package/dist/cli/parsing/UAPKGCommandLineParser.js +0 -24
  343. package/dist/cli/parsing/UAPKGCommandLineParser.js.map +0 -1
  344. package/dist/cli/parsing/UAPKGParserRegistry.d.ts.map +0 -1
  345. package/dist/cli/parsing/UAPKGParserRegistry.js +0 -54
  346. package/dist/cli/parsing/UAPKGParserRegistry.js.map +0 -1
  347. package/dist/cli/parsing/contracts/UAPKGCommandModule.d.ts.map +0 -1
  348. package/dist/cli/parsing/contracts/UAPKGCommandModule.js +0 -1
  349. package/dist/cli/parsing/modules/AddCommandModule.d.ts.map +0 -1
  350. package/dist/cli/parsing/modules/AddCommandModule.js +0 -50
  351. package/dist/cli/parsing/modules/AddCommandModule.js.map +0 -1
  352. package/dist/cli/parsing/modules/ConfigCommandModule.d.ts.map +0 -1
  353. package/dist/cli/parsing/modules/ConfigCommandModule.js +0 -88
  354. package/dist/cli/parsing/modules/ConfigCommandModule.js.map +0 -1
  355. package/dist/cli/parsing/modules/InitCommandModule.d.ts.map +0 -1
  356. package/dist/cli/parsing/modules/InitCommandModule.js +0 -26
  357. package/dist/cli/parsing/modules/InitCommandModule.js.map +0 -1
  358. package/dist/cli/parsing/modules/InstallCommandModule.d.ts.map +0 -1
  359. package/dist/cli/parsing/modules/InstallCommandModule.js +0 -37
  360. package/dist/cli/parsing/modules/InstallCommandModule.js.map +0 -1
  361. package/dist/cli/parsing/modules/LifecycleCommandModule.d.ts.map +0 -1
  362. package/dist/cli/parsing/modules/LifecycleCommandModule.js +0 -84
  363. package/dist/cli/parsing/modules/LifecycleCommandModule.js.map +0 -1
  364. package/dist/cli/parsing/modules/ListCommandModule.d.ts.map +0 -1
  365. package/dist/cli/parsing/modules/ListCommandModule.js +0 -27
  366. package/dist/cli/parsing/modules/ListCommandModule.js.map +0 -1
  367. package/dist/cli/parsing/modules/LoginCommandModule.d.ts.map +0 -1
  368. package/dist/cli/parsing/modules/LoginCommandModule.js +0 -35
  369. package/dist/cli/parsing/modules/LoginCommandModule.js.map +0 -1
  370. package/dist/cli/parsing/modules/LogoutCommandModule.d.ts.map +0 -1
  371. package/dist/cli/parsing/modules/LogoutCommandModule.js +0 -31
  372. package/dist/cli/parsing/modules/LogoutCommandModule.js.map +0 -1
  373. package/dist/cli/parsing/modules/OutdatedCommandModule.d.ts.map +0 -1
  374. package/dist/cli/parsing/modules/OutdatedCommandModule.js +0 -22
  375. package/dist/cli/parsing/modules/OutdatedCommandModule.js.map +0 -1
  376. package/dist/cli/parsing/modules/PackCommandModule.d.ts.map +0 -1
  377. package/dist/cli/parsing/modules/PackCommandModule.js +0 -31
  378. package/dist/cli/parsing/modules/PackCommandModule.js.map +0 -1
  379. package/dist/cli/parsing/modules/ProjectGetNameCommandModule.d.ts.map +0 -1
  380. package/dist/cli/parsing/modules/ProjectGetNameCommandModule.js +0 -15
  381. package/dist/cli/parsing/modules/ProjectGetNameCommandModule.js.map +0 -1
  382. package/dist/cli/parsing/modules/PublishCommandModule.d.ts.map +0 -1
  383. package/dist/cli/parsing/modules/PublishCommandModule.js +0 -66
  384. package/dist/cli/parsing/modules/PublishCommandModule.js.map +0 -1
  385. package/dist/cli/parsing/modules/RegistryCommandModule.d.ts.map +0 -1
  386. package/dist/cli/parsing/modules/RegistryCommandModule.js +0 -118
  387. package/dist/cli/parsing/modules/RegistryCommandModule.js.map +0 -1
  388. package/dist/cli/parsing/modules/RemoveCommandModule.d.ts.map +0 -1
  389. package/dist/cli/parsing/modules/RemoveCommandModule.js +0 -26
  390. package/dist/cli/parsing/modules/RemoveCommandModule.js.map +0 -1
  391. package/dist/cli/parsing/modules/RequestsCommandModule.d.ts.map +0 -1
  392. package/dist/cli/parsing/modules/RequestsCommandModule.js +0 -59
  393. package/dist/cli/parsing/modules/RequestsCommandModule.js.map +0 -1
  394. package/dist/cli/parsing/modules/UpdateCommandModule.d.ts.map +0 -1
  395. package/dist/cli/parsing/modules/UpdateCommandModule.js +0 -39
  396. package/dist/cli/parsing/modules/UpdateCommandModule.js.map +0 -1
  397. package/dist/cli/parsing/modules/WhoamiCommandModule.d.ts.map +0 -1
  398. package/dist/cli/parsing/modules/WhoamiCommandModule.js +0 -31
  399. package/dist/cli/parsing/modules/WhoamiCommandModule.js.map +0 -1
  400. package/dist/cli/parsing/modules/WhyCommandModule.d.ts.map +0 -1
  401. package/dist/cli/parsing/modules/WhyCommandModule.js +0 -26
  402. package/dist/cli/parsing/modules/WhyCommandModule.js.map +0 -1
  403. package/dist/cli/parsing/modules/sharedOptions.d.ts.map +0 -1
  404. package/dist/cli/parsing/modules/sharedOptions.js +0 -21
  405. package/dist/cli/parsing/modules/sharedOptions.js.map +0 -1
  406. package/dist/cli/runUAPKGCLI.d.ts.map +0 -1
  407. package/dist/cli/runUAPKGCLI.js +0 -12
  408. package/dist/cli/runUAPKGCLI.js.map +0 -1
  409. package/dist/cli-bootstrap.js.map +0 -1
  410. package/dist/commands/AddCommand.d.ts.map +0 -1
  411. package/dist/commands/AddCommand.js +0 -51
  412. package/dist/commands/AddCommand.js.map +0 -1
  413. package/dist/commands/Command.d.ts.map +0 -1
  414. package/dist/commands/Command.js +0 -1
  415. package/dist/commands/ConfigCommand.d.ts.map +0 -1
  416. package/dist/commands/ConfigCommand.js +0 -166
  417. package/dist/commands/ConfigCommand.js.map +0 -1
  418. package/dist/commands/InitCommand.d.ts.map +0 -1
  419. package/dist/commands/InitCommand.js +0 -66
  420. package/dist/commands/InitCommand.js.map +0 -1
  421. package/dist/commands/InstallCommand.d.ts.map +0 -1
  422. package/dist/commands/InstallCommand.js +0 -120
  423. package/dist/commands/InstallCommand.js.map +0 -1
  424. package/dist/commands/ListCommand.d.ts.map +0 -1
  425. package/dist/commands/ListCommand.js +0 -78
  426. package/dist/commands/ListCommand.js.map +0 -1
  427. package/dist/commands/LoginCommand.d.ts.map +0 -1
  428. package/dist/commands/LoginCommand.js +0 -67
  429. package/dist/commands/LoginCommand.js.map +0 -1
  430. package/dist/commands/LogoutCommand.d.ts.map +0 -1
  431. package/dist/commands/LogoutCommand.js +0 -37
  432. package/dist/commands/LogoutCommand.js.map +0 -1
  433. package/dist/commands/OutdatedCommand.d.ts.map +0 -1
  434. package/dist/commands/OutdatedCommand.js +0 -43
  435. package/dist/commands/OutdatedCommand.js.map +0 -1
  436. package/dist/commands/PackCommand.d.ts.map +0 -1
  437. package/dist/commands/PackCommand.js +0 -27
  438. package/dist/commands/PackCommand.js.map +0 -1
  439. package/dist/commands/PackageLifecycleCommand.d.ts.map +0 -1
  440. package/dist/commands/PackageLifecycleCommand.js +0 -149
  441. package/dist/commands/PackageLifecycleCommand.js.map +0 -1
  442. package/dist/commands/PostinstallCandidateBuilder.d.ts.map +0 -1
  443. package/dist/commands/PostinstallCandidateBuilder.js +0 -44
  444. package/dist/commands/PostinstallCandidateBuilder.js.map +0 -1
  445. package/dist/commands/ProjectGetNameCommand.d.ts.map +0 -1
  446. package/dist/commands/ProjectGetNameCommand.js +0 -26
  447. package/dist/commands/ProjectGetNameCommand.js.map +0 -1
  448. package/dist/commands/PublishCommand.d.ts.map +0 -1
  449. package/dist/commands/PublishCommand.js +0 -259
  450. package/dist/commands/PublishCommand.js.map +0 -1
  451. package/dist/commands/RegistryCommand.d.ts.map +0 -1
  452. package/dist/commands/RegistryCommand.js +0 -197
  453. package/dist/commands/RegistryCommand.js.map +0 -1
  454. package/dist/commands/RemoveCommand.d.ts.map +0 -1
  455. package/dist/commands/RemoveCommand.js +0 -48
  456. package/dist/commands/RemoveCommand.js.map +0 -1
  457. package/dist/commands/RequestsCommand.d.ts.map +0 -1
  458. package/dist/commands/RequestsCommand.js +0 -85
  459. package/dist/commands/RequestsCommand.js.map +0 -1
  460. package/dist/commands/UpdateCommand.d.ts.map +0 -1
  461. package/dist/commands/UpdateCommand.js +0 -113
  462. package/dist/commands/UpdateCommand.js.map +0 -1
  463. package/dist/commands/WhoamiCommand.d.ts.map +0 -1
  464. package/dist/commands/WhoamiCommand.js +0 -66
  465. package/dist/commands/WhoamiCommand.js.map +0 -1
  466. package/dist/commands/WhyCommand.d.ts.map +0 -1
  467. package/dist/commands/WhyCommand.js +0 -47
  468. package/dist/commands/WhyCommand.js.map +0 -1
  469. package/dist/commands/add/DependencyAddResolver.d.ts.map +0 -1
  470. package/dist/commands/add/DependencyAddResolver.js +0 -38
  471. package/dist/commands/add/DependencyAddResolver.js.map +0 -1
  472. package/dist/control-plane/AccountManager.d.ts.map +0 -1
  473. package/dist/control-plane/AccountManager.js +0 -822
  474. package/dist/control-plane/AccountManager.js.map +0 -1
  475. package/dist/control-plane/ArtifactObserver.d.ts.map +0 -1
  476. package/dist/control-plane/ArtifactObserver.js +0 -77
  477. package/dist/control-plane/ArtifactObserver.js.map +0 -1
  478. package/dist/control-plane/AuthMetadataStore.d.ts.map +0 -1
  479. package/dist/control-plane/AuthMetadataStore.js +0 -114
  480. package/dist/control-plane/AuthMetadataStore.js.map +0 -1
  481. package/dist/control-plane/AuthStoragePaths.d.ts.map +0 -1
  482. package/dist/control-plane/AuthStoragePaths.js +0 -22
  483. package/dist/control-plane/AuthStoragePaths.js.map +0 -1
  484. package/dist/control-plane/AuthenticationSelector.d.ts.map +0 -1
  485. package/dist/control-plane/AuthenticationSelector.js +0 -70
  486. package/dist/control-plane/AuthenticationSelector.js.map +0 -1
  487. package/dist/control-plane/ControlPlaneClient.d.ts.map +0 -1
  488. package/dist/control-plane/ControlPlaneClient.js +0 -291
  489. package/dist/control-plane/ControlPlaneClient.js.map +0 -1
  490. package/dist/control-plane/ControlPlaneEndpoints.d.ts.map +0 -1
  491. package/dist/control-plane/ControlPlaneEndpoints.js +0 -24
  492. package/dist/control-plane/ControlPlaneEndpoints.js.map +0 -1
  493. package/dist/control-plane/ControlPlaneTypes.d.ts.map +0 -1
  494. package/dist/control-plane/ControlPlaneTypes.js +0 -100
  495. package/dist/control-plane/ControlPlaneTypes.js.map +0 -1
  496. package/dist/control-plane/CredentialStore.d.ts.map +0 -1
  497. package/dist/control-plane/CredentialStore.js +0 -70
  498. package/dist/control-plane/CredentialStore.js.map +0 -1
  499. package/dist/control-plane/DPoPKeyStore.d.ts.map +0 -1
  500. package/dist/control-plane/DPoPKeyStore.js +0 -58
  501. package/dist/control-plane/DPoPKeyStore.js.map +0 -1
  502. package/dist/control-plane/GitHubActionsOidcCredentialProvider.d.ts.map +0 -1
  503. package/dist/control-plane/GitHubActionsOidcCredentialProvider.js +0 -201
  504. package/dist/control-plane/GitHubActionsOidcCredentialProvider.js.map +0 -1
  505. package/dist/control-plane/PublishIdempotencyStore.d.ts.map +0 -1
  506. package/dist/control-plane/PublishIdempotencyStore.js +0 -100
  507. package/dist/control-plane/PublishIdempotencyStore.js.map +0 -1
  508. package/dist/control-plane/PublishRequestErrorMapper.d.ts.map +0 -1
  509. package/dist/control-plane/PublishRequestErrorMapper.js +0 -597
  510. package/dist/control-plane/PublishRequestErrorMapper.js.map +0 -1
  511. package/dist/control-plane/RegistryGrantLock.d.ts.map +0 -1
  512. package/dist/control-plane/RegistryGrantLock.js +0 -163
  513. package/dist/control-plane/RegistryGrantLock.js.map +0 -1
  514. package/dist/control-plane/RegistryTrustResolver.d.ts.map +0 -1
  515. package/dist/control-plane/RegistryTrustResolver.js +0 -105
  516. package/dist/control-plane/RegistryTrustResolver.js.map +0 -1
  517. package/dist/postinstall/api/PostinstallDsl.d.ts.map +0 -1
  518. package/dist/postinstall/api/PostinstallDsl.js +0 -36
  519. package/dist/postinstall/api/PostinstallDsl.js.map +0 -1
  520. package/dist/postinstall/api/definePostinstall.d.ts.map +0 -1
  521. package/dist/postinstall/api/definePostinstall.js +0 -23
  522. package/dist/postinstall/api/definePostinstall.js.map +0 -1
  523. package/dist/postinstall/index.js +0 -25
  524. package/dist/postinstall/loader/EntryResolver.d.ts.map +0 -1
  525. package/dist/postinstall/loader/EntryResolver.js +0 -39
  526. package/dist/postinstall/loader/EntryResolver.js.map +0 -1
  527. package/dist/postinstall/loader/EsbuildTranspiler.d.ts.map +0 -1
  528. package/dist/postinstall/loader/EsbuildTranspiler.js +0 -54
  529. package/dist/postinstall/loader/EsbuildTranspiler.js.map +0 -1
  530. package/dist/postinstall/loader/ExportValidator.d.ts.map +0 -1
  531. package/dist/postinstall/loader/ExportValidator.js +0 -38
  532. package/dist/postinstall/loader/ExportValidator.js.map +0 -1
  533. package/dist/postinstall/loader/ModuleImporter.d.ts.map +0 -1
  534. package/dist/postinstall/loader/ModuleImporter.js +0 -52
  535. package/dist/postinstall/loader/ModuleImporter.js.map +0 -1
  536. package/dist/postinstall/loader/PostinstallLoader.d.ts.map +0 -1
  537. package/dist/postinstall/loader/PostinstallLoader.js +0 -64
  538. package/dist/postinstall/loader/PostinstallLoader.js.map +0 -1
  539. package/dist/postinstall/markers/MarkerBlockEditor.d.ts.map +0 -1
  540. package/dist/postinstall/markers/MarkerBlockEditor.js +0 -50
  541. package/dist/postinstall/markers/MarkerBlockEditor.js.map +0 -1
  542. package/dist/postinstall/markers/MarkerBlockService.d.ts.map +0 -1
  543. package/dist/postinstall/markers/MarkerBlockService.js +0 -46
  544. package/dist/postinstall/markers/MarkerBlockService.js.map +0 -1
  545. package/dist/postinstall/markers/MarkerIntegrityValidator.d.ts.map +0 -1
  546. package/dist/postinstall/markers/MarkerIntegrityValidator.js +0 -48
  547. package/dist/postinstall/markers/MarkerIntegrityValidator.js.map +0 -1
  548. package/dist/postinstall/policy/PostinstallPolicyGate.d.ts.map +0 -1
  549. package/dist/postinstall/policy/PostinstallPolicyGate.js +0 -68
  550. package/dist/postinstall/policy/PostinstallPolicyGate.js.map +0 -1
  551. package/dist/postinstall/runner/PostinstallOrchestrator.d.ts.map +0 -1
  552. package/dist/postinstall/runner/PostinstallOrchestrator.js +0 -174
  553. package/dist/postinstall/runner/PostinstallOrchestrator.js.map +0 -1
  554. package/dist/postinstall/unreal/BuildCsInjector.d.ts.map +0 -1
  555. package/dist/postinstall/unreal/BuildCsInjector.js +0 -60
  556. package/dist/postinstall/unreal/BuildCsInjector.js.map +0 -1
  557. package/dist/postinstall/unreal/CSharpInjectionEngine.d.ts.map +0 -1
  558. package/dist/postinstall/unreal/CSharpInjectionEngine.js +0 -58
  559. package/dist/postinstall/unreal/CSharpInjectionEngine.js.map +0 -1
  560. package/dist/postinstall/unreal/CSharpStructureAnalyzer.d.ts.map +0 -1
  561. package/dist/postinstall/unreal/CSharpStructureAnalyzer.js +0 -126
  562. package/dist/postinstall/unreal/CSharpStructureAnalyzer.js.map +0 -1
  563. package/dist/postinstall/unreal/CSharpStructures.d.ts.map +0 -1
  564. package/dist/postinstall/unreal/CSharpStructures.js +0 -1
  565. package/dist/postinstall/unreal/CSharpWrapperFactory.d.ts.map +0 -1
  566. package/dist/postinstall/unreal/CSharpWrapperFactory.js +0 -56
  567. package/dist/postinstall/unreal/CSharpWrapperFactory.js.map +0 -1
  568. package/dist/postinstall/unreal/PluginHash.d.ts.map +0 -1
  569. package/dist/postinstall/unreal/PluginHash.js +0 -18
  570. package/dist/postinstall/unreal/PluginHash.js.map +0 -1
  571. package/dist/postinstall/unreal/PrettyParseError.d.ts.map +0 -1
  572. package/dist/postinstall/unreal/PrettyParseError.js +0 -43
  573. package/dist/postinstall/unreal/PrettyParseError.js.map +0 -1
  574. package/dist/postinstall/unreal/ProjectFileLocator.d.ts.map +0 -1
  575. package/dist/postinstall/unreal/ProjectFileLocator.js +0 -51
  576. package/dist/postinstall/unreal/ProjectFileLocator.js.map +0 -1
  577. package/dist/postinstall/unreal/TargetCsInjector.d.ts.map +0 -1
  578. package/dist/postinstall/unreal/TargetCsInjector.js +0 -60
  579. package/dist/postinstall/unreal/TargetCsInjector.js.map +0 -1
  580. package/dist/postinstall/unreal/UProjectInjector.d.ts.map +0 -1
  581. package/dist/postinstall/unreal/UProjectInjector.js +0 -58
  582. package/dist/postinstall/unreal/UProjectInjector.js.map +0 -1
  583. package/dist/postinstall/unreal/UProjectMetadataReader.d.ts.map +0 -1
  584. package/dist/postinstall/unreal/UProjectMetadataReader.js +0 -24
  585. package/dist/postinstall/unreal/UProjectMetadataReader.js.map +0 -1
  586. package/dist/postinstall/unreal/UnrealSourceCatalog.d.ts.map +0 -1
  587. package/dist/postinstall/unreal/UnrealSourceCatalog.js +0 -52
  588. package/dist/postinstall/unreal/UnrealSourceCatalog.js.map +0 -1
  589. package/dist/prompts/InkPromptService.d.ts.map +0 -1
  590. package/dist/prompts/InkPromptService.js +0 -105
  591. package/dist/prompts/InkPromptService.js.map +0 -1
  592. package/dist/prompts/ProjectContextDetector.d.ts.map +0 -1
  593. package/dist/prompts/ProjectContextDetector.js +0 -33
  594. package/dist/prompts/ProjectContextDetector.js.map +0 -1
  595. package/dist/prompts/PromptService.d.ts.map +0 -1
  596. package/dist/prompts/PromptService.js +0 -1
  597. package/dist/reporting/DiagnosticDeduplicator.d.ts.map +0 -1
  598. package/dist/reporting/DiagnosticDeduplicator.js +0 -38
  599. package/dist/reporting/DiagnosticDeduplicator.js.map +0 -1
  600. package/dist/reporting/DiagnosticRenderer.d.ts.map +0 -1
  601. package/dist/reporting/DiagnosticRenderer.js +0 -1
  602. package/dist/reporting/DiagnosticReporter.d.ts.map +0 -1
  603. package/dist/reporting/DiagnosticReporter.js +0 -42
  604. package/dist/reporting/DiagnosticReporter.js.map +0 -1
  605. package/dist/reporting/InkDiagnosticRenderer.d.ts.map +0 -1
  606. package/dist/reporting/InkDiagnosticRenderer.js +0 -52
  607. package/dist/reporting/InkDiagnosticRenderer.js.map +0 -1
  608. package/dist/reporting/InstallProgressReporter.d.ts.map +0 -1
  609. package/dist/reporting/InstallProgressReporter.js +0 -50
  610. package/dist/reporting/InstallProgressReporter.js.map +0 -1
  611. package/dist/reporting/JsonReporter.d.ts.map +0 -1
  612. package/dist/reporting/JsonReporter.js +0 -36
  613. package/dist/reporting/JsonReporter.js.map +0 -1
  614. package/dist/reporting/RegistryRequestTerminalFormatter.d.ts.map +0 -1
  615. package/dist/reporting/RegistryRequestTerminalFormatter.js +0 -90
  616. package/dist/reporting/RegistryRequestTerminalFormatter.js.map +0 -1
  617. package/dist/reporting/TextDiagnosticRenderer.d.ts.map +0 -1
  618. package/dist/reporting/TextDiagnosticRenderer.js +0 -38
  619. package/dist/reporting/TextDiagnosticRenderer.js.map +0 -1
  620. package/dist/reporting/TextSink.d.ts.map +0 -1
  621. package/dist/reporting/TextSink.js +0 -29
  622. package/dist/reporting/TextSink.js.map +0 -1
  623. /package/dist/{cli-bootstrap.d.ts → types/uapkg/cli-bootstrap.d.ts} +0 -0
  624. /package/dist/{index.d.ts → types/uapkg/index.d.ts} +0 -0
  625. /package/dist/{postinstall → types/uapkg/postinstall}/index.d.ts +0 -0
@@ -1,58 +0,0 @@
1
- import { webcrypto } from "node:crypto";
2
-
3
- //#region src/control-plane/DPoPKeyStore.ts
4
- var DPoPKeyStore = class {
5
- credentials;
6
- constructor(credentials) {
7
- this.credentials = credentials;
8
- }
9
- async generate() {
10
- const { generateKeyPair } = await import("oauth4webapi");
11
- return generateKeyPair("ES256", { extractable: true });
12
- }
13
- async save(reference, pair) {
14
- const [publicKey, privateKey] = await Promise.all([webcrypto.subtle.exportKey("jwk", pair.publicKey), webcrypto.subtle.exportKey("jwk", pair.privateKey)]);
15
- const serialized = {
16
- algorithm: "ES256",
17
- publicKey,
18
- privateKey
19
- };
20
- await this.credentials.set(reference, JSON.stringify(serialized));
21
- }
22
- async load(reference) {
23
- const raw = await this.credentials.get(reference);
24
- if (!raw) return void 0;
25
- let saved;
26
- try {
27
- saved = JSON.parse(raw);
28
- } catch (error) {
29
- throw new Error("The saved UAPKG DPoP key is not valid JSON.", { cause: error });
30
- }
31
- if (saved.algorithm !== "ES256" || !saved.publicKey || !saved.privateKey) throw new Error("The saved UAPKG DPoP key has an unsupported format.");
32
- const algorithm = {
33
- name: "ECDSA",
34
- namedCurve: "P-256"
35
- };
36
- const [publicKey, privateKey] = await Promise.all([webcrypto.subtle.importKey("jwk", saved.publicKey, algorithm, true, ["verify"]), webcrypto.subtle.importKey("jwk", saved.privateKey, algorithm, true, ["sign"])]);
37
- const challenge = webcrypto.getRandomValues(/* @__PURE__ */ new Uint8Array(32));
38
- const signature = await webcrypto.subtle.sign({
39
- name: "ECDSA",
40
- hash: "SHA-256"
41
- }, privateKey, challenge);
42
- if (!await webcrypto.subtle.verify({
43
- name: "ECDSA",
44
- hash: "SHA-256"
45
- }, publicKey, signature, challenge)) throw new Error("The saved UAPKG DPoP public and private keys do not match.");
46
- return {
47
- publicKey,
48
- privateKey
49
- };
50
- }
51
- async delete(reference) {
52
- await this.credentials.delete(reference);
53
- }
54
- };
55
-
56
- //#endregion
57
- export { DPoPKeyStore };
58
- //# sourceMappingURL=DPoPKeyStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DPoPKeyStore.js","names":[],"sources":["../../src/control-plane/DPoPKeyStore.ts"],"sourcesContent":["import { webcrypto } from 'node:crypto';\nimport type * as oauth from 'oauth4webapi';\nimport type { CredentialStore } from '#cli/control-plane/CredentialStore.ts';\n\ninterface SerializedDPoPKeyPair {\n readonly algorithm: 'ES256';\n readonly publicKey: webcrypto.JsonWebKey;\n readonly privateKey: webcrypto.JsonWebKey;\n}\n\nexport class DPoPKeyStore {\n public constructor(private readonly credentials: CredentialStore) {}\n\n public async generate(): Promise<oauth.CryptoKeyPair> {\n const { generateKeyPair } = await import('oauth4webapi');\n return generateKeyPair('ES256', { extractable: true });\n }\n\n public async save(reference: string, pair: oauth.CryptoKeyPair): Promise<void> {\n const [publicKey, privateKey] = await Promise.all([\n webcrypto.subtle.exportKey('jwk', pair.publicKey),\n webcrypto.subtle.exportKey('jwk', pair.privateKey),\n ]);\n const serialized: SerializedDPoPKeyPair = {\n algorithm: 'ES256',\n publicKey,\n privateKey,\n };\n await this.credentials.set(reference, JSON.stringify(serialized));\n }\n\n public async load(reference: string): Promise<oauth.CryptoKeyPair | undefined> {\n const raw = await this.credentials.get(reference);\n if (!raw) return undefined;\n\n let saved: SerializedDPoPKeyPair;\n try {\n saved = JSON.parse(raw) as SerializedDPoPKeyPair;\n } catch (error) {\n throw new Error('The saved UAPKG DPoP key is not valid JSON.', { cause: error });\n }\n if (saved.algorithm !== 'ES256' || !saved.publicKey || !saved.privateKey) {\n throw new Error('The saved UAPKG DPoP key has an unsupported format.');\n }\n\n const algorithm: webcrypto.EcKeyImportParams = { name: 'ECDSA', namedCurve: 'P-256' };\n const [publicKey, privateKey] = await Promise.all([\n webcrypto.subtle.importKey('jwk', saved.publicKey, algorithm, true, ['verify']),\n webcrypto.subtle.importKey('jwk', saved.privateKey, algorithm, true, ['sign']),\n ]);\n const challenge = webcrypto.getRandomValues(new Uint8Array(32));\n const signature = await webcrypto.subtle.sign({ name: 'ECDSA', hash: 'SHA-256' }, privateKey, challenge);\n const matches = await webcrypto.subtle.verify({ name: 'ECDSA', hash: 'SHA-256' }, publicKey, signature, challenge);\n if (!matches) {\n throw new Error('The saved UAPKG DPoP public and private keys do not match.');\n }\n return { publicKey, privateKey } as oauth.CryptoKeyPair;\n }\n\n public async delete(reference: string): Promise<void> {\n await this.credentials.delete(reference);\n }\n}\n"],"mappings":";;;AAUA,IAAa,eAAb,MAA0B;CACY;CAApC,AAAO,YAAY,AAAiB,aAA8B;EAA9B;CAA+B;CAEnE,MAAa,WAAyC;EACpD,MAAM,EAAE,oBAAoB,MAAM,OAAO;EACzC,OAAO,gBAAgB,SAAS,EAAE,aAAa,KAAK,CAAC;CACvD;CAEA,MAAa,KAAK,WAAmB,MAA0C;EAC7E,MAAM,CAAC,WAAW,cAAc,MAAM,QAAQ,IAAI,CAChD,UAAU,OAAO,UAAU,OAAO,KAAK,SAAS,GAChD,UAAU,OAAO,UAAU,OAAO,KAAK,UAAU,CACnD,CAAC;EACD,MAAM,aAAoC;GACxC,WAAW;GACX;GACA;EACF;EACA,MAAM,KAAK,YAAY,IAAI,WAAW,KAAK,UAAU,UAAU,CAAC;CAClE;CAEA,MAAa,KAAK,WAA6D;EAC7E,MAAM,MAAM,MAAM,KAAK,YAAY,IAAI,SAAS;EAChD,IAAI,CAAC,KAAK,OAAO;EAEjB,IAAI;EACJ,IAAI;GACF,QAAQ,KAAK,MAAM,GAAG;EACxB,SAAS,OAAO;GACd,MAAM,IAAI,MAAM,+CAA+C,EAAE,OAAO,MAAM,CAAC;EACjF;EACA,IAAI,MAAM,cAAc,WAAW,CAAC,MAAM,aAAa,CAAC,MAAM,YAC5D,MAAM,IAAI,MAAM,qDAAqD;EAGvE,MAAM,YAAyC;GAAE,MAAM;GAAS,YAAY;EAAQ;EACpF,MAAM,CAAC,WAAW,cAAc,MAAM,QAAQ,IAAI,CAChD,UAAU,OAAO,UAAU,OAAO,MAAM,WAAW,WAAW,MAAM,CAAC,QAAQ,CAAC,GAC9E,UAAU,OAAO,UAAU,OAAO,MAAM,YAAY,WAAW,MAAM,CAAC,MAAM,CAAC,CAC/E,CAAC;EACD,MAAM,YAAY,UAAU,gCAAgB,IAAI,WAAW,EAAE,CAAC;EAC9D,MAAM,YAAY,MAAM,UAAU,OAAO,KAAK;GAAE,MAAM;GAAS,MAAM;EAAU,GAAG,YAAY,SAAS;EAEvG,IAAI,CAAC,MADiB,UAAU,OAAO,OAAO;GAAE,MAAM;GAAS,MAAM;EAAU,GAAG,WAAW,WAAW,SAAS,GAE/G,MAAM,IAAI,MAAM,4DAA4D;EAE9E,OAAO;GAAE;GAAW;EAAW;CACjC;CAEA,MAAa,OAAO,WAAkC;EACpD,MAAM,KAAK,YAAY,OAAO,SAAS;CACzC;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GitHubActionsOidcCredentialProvider.d.ts","names":[],"sources":["../../src/control-plane/GitHubActionsOidcCredentialProvider.ts"],"mappings":";;KA8BY;;cAiBC,+BAA+B;WAExB,MAAM;WAEN;EAHlB,YACkB,MAAM,4BACtB,iBACgB,6BAChB,UAAU;;UAOG;WACN,eAAe;WACf,SAAS,yBAAyB;WAClC;WACA;WACA;WACA;;;UAIM;WACN;WACA;;cAKE;mBACM;mBACA;mBACA;mBACA;mBACA;mBACA;EAEjB,YAAmB,UAAS;EASrB;EAQM,SAAS,OAAO,eAAe,QAAQ,0BAA0B;UA8FhE;UA2BN;UAMM"}
@@ -1,201 +0,0 @@
1
- import { ControlPlaneError, UAPKG_CONTROL_PLANE_API, UAPKG_GITHUB_OIDC_AUDIENCE } from "./ControlPlaneTypes.js";
2
- import { z } from "zod";
3
-
4
- //#region src/control-plane/GitHubActionsOidcCredentialProvider.ts
5
- const DEFAULT_REQUEST_TIMEOUT_MS = 3e4;
6
- const DEFAULT_MAX_RESPONSE_BYTES = 65536;
7
- const DEFAULT_MAX_ATTEMPTS = 3;
8
- const DEFAULT_RETRY_DELAY_MS = 1e3;
9
- const DEFAULT_MAX_RETRY_DELAY_MS = 3e4;
10
- const RETRYABLE_STATUS_CODES = /* @__PURE__ */ new Set([429, 503]);
11
- const githubResponseSchema = z.strictObject({ value: z.string().min(1) });
12
- const exchangeResponseSchema = z.strictObject({
13
- ok: z.literal(true),
14
- token: z.string().min(1),
15
- expiresAt: z.number().int().positive()
16
- });
17
- const exchangeErrorSchema = z.strictObject({
18
- ok: z.literal(false),
19
- error: z.strictObject({
20
- code: z.string().min(1),
21
- message: z.string().min(1),
22
- details: z.record(z.string(), z.unknown()).optional()
23
- })
24
- });
25
- /** Stable local failures from the GitHub Actions OIDC credential flow. */
26
- var GitHubActionsOidcError = class extends Error {
27
- code;
28
- status;
29
- constructor(code, message, status, options) {
30
- super(message, options);
31
- this.code = code;
32
- this.status = status;
33
- this.name = "GitHubActionsOidcError";
34
- }
35
- };
36
- var GitHubActionsOidcCredentialProvider = class {
37
- fetch;
38
- sleep;
39
- requestTimeoutMs;
40
- maxResponseBytes;
41
- maxAttempts;
42
- maxRetryDelayMs;
43
- constructor(options = {}) {
44
- this.fetch = options.fetch ?? globalThis.fetch;
45
- this.sleep = options.sleep ?? delay;
46
- this.requestTimeoutMs = positiveInteger(options.requestTimeoutMs, DEFAULT_REQUEST_TIMEOUT_MS);
47
- this.maxResponseBytes = positiveInteger(options.maxResponseBytes, DEFAULT_MAX_RESPONSE_BYTES);
48
- this.maxAttempts = positiveInteger(options.maxAttempts, DEFAULT_MAX_ATTEMPTS);
49
- this.maxRetryDelayMs = positiveInteger(options.maxRetryDelayMs, DEFAULT_MAX_RETRY_DELAY_MS);
50
- }
51
- isAvailable() {
52
- return Boolean(process.env.GITHUB_ACTIONS === "true" || process.env.ACTIONS_ID_TOKEN_REQUEST_URL || process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN);
53
- }
54
- async exchange(trust, target) {
55
- if (trust.apiBaseUrl !== UAPKG_CONTROL_PLANE_API) throw new GitHubActionsOidcError("OIDC_CONTROL_PLANE_UNTRUSTED", `UAPKG v1 OIDC exchange is pinned to ${UAPKG_CONTROL_PLANE_API}.`);
56
- const packageName = target.packageName.trim();
57
- if (target.registryId !== trust.registryId || !packageName) throw new GitHubActionsOidcError("OIDC_EXCHANGE_TARGET_INVALID", "GitHub Actions OIDC requires the exact trusted registry and packaged package name.");
58
- const requestUrl = process.env.ACTIONS_ID_TOKEN_REQUEST_URL;
59
- const requestToken = process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN;
60
- if (!this.isAvailable() || !requestUrl || !requestToken) throw new GitHubActionsOidcError("OIDC_GITHUB_CONTEXT_UNAVAILABLE", "GitHub Actions OIDC was selected but its identity-token endpoint is unavailable. The workflow must grant `id-token: write`.");
61
- const url = parseGitHubOidcEndpoint(requestUrl);
62
- url.searchParams.set("audience", UAPKG_GITHUB_OIDC_AUDIENCE);
63
- const githubResponse = await this.fetchWithRetry(url, { headers: { authorization: `Bearer ${requestToken}` } }, "github");
64
- const githubValue = githubResponseSchema.safeParse(await this.readJson(githubResponse, "github"));
65
- if (!githubResponse.ok) throw new GitHubActionsOidcError("OIDC_GITHUB_TOKEN_REJECTED", `GitHub Actions did not issue an OIDC identity token (HTTP ${githubResponse.status}).`, githubResponse.status);
66
- if (!githubValue.success) throw new GitHubActionsOidcError("OIDC_GITHUB_TOKEN_RESPONSE_INVALID", "GitHub Actions returned an invalid OIDC identity-token response.", githubResponse.status);
67
- const exchangeResponse = await this.fetchWithRetry(new URL("/v1/oidc/github-actions/exchange", trust.apiBaseUrl), {
68
- method: "POST",
69
- headers: { "content-type": "application/json" },
70
- body: JSON.stringify({
71
- provider: "github_actions",
72
- audience: UAPKG_GITHUB_OIDC_AUDIENCE,
73
- idToken: githubValue.data.value,
74
- target: {
75
- registryId: target.registryId,
76
- packageName
77
- }
78
- })
79
- }, "exchange");
80
- const exchangeValue = await this.readJson(exchangeResponse, "exchange");
81
- if (!exchangeResponse.ok) {
82
- const error = exchangeErrorSchema.safeParse(exchangeValue);
83
- if (error.success) throw new ControlPlaneError(error.data.error.code, error.data.error.message, exchangeResponse.status, error.data.error.details);
84
- throw new GitHubActionsOidcError("OIDC_EXCHANGE_REJECTED", `UAPKG rejected the GitHub Actions identity (HTTP ${exchangeResponse.status}).`, exchangeResponse.status);
85
- }
86
- const parsed = exchangeResponseSchema.safeParse(exchangeValue);
87
- if (!parsed.success) throw new GitHubActionsOidcError("OIDC_EXCHANGE_RESPONSE_INVALID", "The UAPKG OIDC exchange response was invalid.", exchangeResponse.status);
88
- return parsed.data.token;
89
- }
90
- async fetchWithRetry(url, init, endpoint) {
91
- for (let attempt = 1; attempt <= this.maxAttempts; attempt += 1) {
92
- let response;
93
- try {
94
- response = await this.fetch(url, {
95
- ...init,
96
- redirect: "error",
97
- signal: AbortSignal.timeout(this.requestTimeoutMs)
98
- });
99
- } catch (error) {
100
- if (attempt < this.maxAttempts) {
101
- await this.sleep(this.retryDelay(void 0, attempt));
102
- continue;
103
- }
104
- throw requestFailure(endpoint, error);
105
- }
106
- if (!RETRYABLE_STATUS_CODES.has(response.status) || attempt === this.maxAttempts) return response;
107
- const retryAfter = response.headers.get("retry-after");
108
- await response.body?.cancel().catch(() => void 0);
109
- await this.sleep(this.retryDelay(retryAfter, attempt));
110
- }
111
- throw new Error("OIDC retry loop exhausted unexpectedly.");
112
- }
113
- retryDelay(retryAfter, attempt) {
114
- const parsed = parseRetryAfter(retryAfter);
115
- const fallback = DEFAULT_RETRY_DELAY_MS * 2 ** (attempt - 1);
116
- return Math.min(parsed ?? fallback, this.maxRetryDelayMs);
117
- }
118
- async readJson(response, endpoint) {
119
- const contentLength = parseContentLength(response.headers.get("content-length"));
120
- if (contentLength !== void 0 && contentLength > this.maxResponseBytes) {
121
- await response.body?.cancel().catch(() => void 0);
122
- throw responseTooLarge(endpoint, response.status);
123
- }
124
- const chunks = [];
125
- let byteLength = 0;
126
- if (response.body) {
127
- const reader = response.body.getReader();
128
- try {
129
- while (true) {
130
- const { done, value } = await reader.read();
131
- if (done) break;
132
- byteLength += value.byteLength;
133
- if (byteLength > this.maxResponseBytes) {
134
- await reader.cancel().catch(() => void 0);
135
- throw responseTooLarge(endpoint, response.status);
136
- }
137
- chunks.push(value);
138
- }
139
- } finally {
140
- reader.releaseLock();
141
- }
142
- }
143
- if (byteLength === 0) return {};
144
- const contentType = response.headers.get("content-type")?.split(";", 1)[0]?.trim().toLowerCase();
145
- if (contentType !== "application/json" && !contentType?.endsWith("+json")) throw responseInvalid(endpoint, response.status);
146
- const bytes = new Uint8Array(byteLength);
147
- let offset = 0;
148
- for (const chunk of chunks) {
149
- bytes.set(chunk, offset);
150
- offset += chunk.byteLength;
151
- }
152
- try {
153
- return JSON.parse(new TextDecoder("utf-8", { fatal: true }).decode(bytes));
154
- } catch (error) {
155
- throw responseInvalid(endpoint, response.status, error);
156
- }
157
- }
158
- };
159
- function parseGitHubOidcEndpoint(value) {
160
- let url;
161
- try {
162
- url = new URL(value);
163
- } catch (error) {
164
- throw new GitHubActionsOidcError("OIDC_GITHUB_ENDPOINT_INVALID", "GitHub Actions supplied an unexpected OIDC token endpoint.", void 0, { cause: error });
165
- }
166
- const hostname = url.hostname.toLowerCase();
167
- if (url.protocol !== "https:" || url.username || url.password || url.port || hostname !== "actions.githubusercontent.com" && !hostname.endsWith(".actions.githubusercontent.com")) throw new GitHubActionsOidcError("OIDC_GITHUB_ENDPOINT_INVALID", "GitHub Actions supplied an unexpected OIDC token endpoint.");
168
- return url;
169
- }
170
- function requestFailure(endpoint, error) {
171
- const timedOut = error instanceof DOMException && error.name === "TimeoutError";
172
- if (endpoint === "github") return new GitHubActionsOidcError(timedOut ? "OIDC_GITHUB_TOKEN_REQUEST_TIMEOUT" : "OIDC_GITHUB_TOKEN_REQUEST_FAILED", timedOut ? "Timed out while requesting a GitHub Actions OIDC identity token." : "Unable to request a GitHub Actions OIDC identity token.", void 0, { cause: error });
173
- return new GitHubActionsOidcError(timedOut ? "OIDC_EXCHANGE_REQUEST_TIMEOUT" : "OIDC_EXCHANGE_REQUEST_FAILED", timedOut ? "Timed out while exchanging the GitHub Actions identity with UAPKG." : "Unable to exchange the GitHub Actions identity with UAPKG.", void 0, { cause: error });
174
- }
175
- function responseTooLarge(endpoint, status) {
176
- return endpoint === "github" ? new GitHubActionsOidcError("OIDC_GITHUB_TOKEN_RESPONSE_TOO_LARGE", "GitHub Actions returned an oversized OIDC identity-token response.", status) : new GitHubActionsOidcError("OIDC_EXCHANGE_RESPONSE_TOO_LARGE", "The UAPKG OIDC exchange returned an oversized response.", status);
177
- }
178
- function responseInvalid(endpoint, status, cause) {
179
- return endpoint === "github" ? new GitHubActionsOidcError("OIDC_GITHUB_TOKEN_RESPONSE_INVALID", "GitHub Actions returned an invalid OIDC identity-token response.", status, { cause }) : new GitHubActionsOidcError("OIDC_EXCHANGE_RESPONSE_INVALID", "The UAPKG OIDC exchange response was invalid.", status, { cause });
180
- }
181
- function parseContentLength(value) {
182
- if (value === null || !/^\d+$/.test(value)) return void 0;
183
- const parsed = Number(value);
184
- return Number.isSafeInteger(parsed) ? parsed : void 0;
185
- }
186
- function parseRetryAfter(value, now = Date.now()) {
187
- if (!value) return void 0;
188
- if (/^\d+$/.test(value)) return Number(value) * 1e3;
189
- const timestamp = Date.parse(value);
190
- return Number.isFinite(timestamp) ? Math.max(0, timestamp - now) : void 0;
191
- }
192
- function positiveInteger(value, fallback) {
193
- return value !== void 0 && Number.isSafeInteger(value) && value > 0 ? value : fallback;
194
- }
195
- function delay(milliseconds) {
196
- return new Promise((resolve) => setTimeout(resolve, milliseconds));
197
- }
198
-
199
- //#endregion
200
- export { GitHubActionsOidcCredentialProvider, GitHubActionsOidcError };
201
- //# sourceMappingURL=GitHubActionsOidcCredentialProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GitHubActionsOidcCredentialProvider.js","names":[],"sources":["../../src/control-plane/GitHubActionsOidcCredentialProvider.ts"],"sourcesContent":["import { z } from 'zod';\nimport {\n ControlPlaneError,\n type RegistryTrust,\n UAPKG_CONTROL_PLANE_API,\n UAPKG_GITHUB_OIDC_AUDIENCE,\n} from '#cli/control-plane/ControlPlaneTypes.ts';\n\nconst DEFAULT_REQUEST_TIMEOUT_MS = 30_000;\nconst DEFAULT_MAX_RESPONSE_BYTES = 64 * 1024;\nconst DEFAULT_MAX_ATTEMPTS = 3;\nconst DEFAULT_RETRY_DELAY_MS = 1_000;\nconst DEFAULT_MAX_RETRY_DELAY_MS = 30_000;\nconst RETRYABLE_STATUS_CODES = new Set([429, 503]);\n\nconst githubResponseSchema = z.strictObject({ value: z.string().min(1) });\nconst exchangeResponseSchema = z.strictObject({\n ok: z.literal(true),\n token: z.string().min(1),\n expiresAt: z.number().int().positive(),\n});\nconst exchangeErrorSchema = z.strictObject({\n ok: z.literal(false),\n error: z.strictObject({\n code: z.string().min(1),\n message: z.string().min(1),\n details: z.record(z.string(), z.unknown()).optional(),\n }),\n});\n\nexport type GitHubActionsOidcErrorCode =\n | 'OIDC_CONTROL_PLANE_UNTRUSTED'\n | 'OIDC_EXCHANGE_TARGET_INVALID'\n | 'OIDC_GITHUB_CONTEXT_UNAVAILABLE'\n | 'OIDC_GITHUB_ENDPOINT_INVALID'\n | 'OIDC_GITHUB_TOKEN_REQUEST_FAILED'\n | 'OIDC_GITHUB_TOKEN_REQUEST_TIMEOUT'\n | 'OIDC_GITHUB_TOKEN_REJECTED'\n | 'OIDC_GITHUB_TOKEN_RESPONSE_INVALID'\n | 'OIDC_GITHUB_TOKEN_RESPONSE_TOO_LARGE'\n | 'OIDC_EXCHANGE_REQUEST_FAILED'\n | 'OIDC_EXCHANGE_REQUEST_TIMEOUT'\n | 'OIDC_EXCHANGE_REJECTED'\n | 'OIDC_EXCHANGE_RESPONSE_INVALID'\n | 'OIDC_EXCHANGE_RESPONSE_TOO_LARGE';\n\n/** Stable local failures from the GitHub Actions OIDC credential flow. */\nexport class GitHubActionsOidcError extends Error {\n public constructor(\n public readonly code: GitHubActionsOidcErrorCode,\n message: string,\n public readonly status?: number,\n options?: ErrorOptions,\n ) {\n super(message, options);\n this.name = 'GitHubActionsOidcError';\n }\n}\n\nexport interface GitHubActionsOidcCredentialProviderOptions {\n readonly fetch?: typeof fetch;\n readonly sleep?: (milliseconds: number) => Promise<void>;\n readonly requestTimeoutMs?: number;\n readonly maxResponseBytes?: number;\n readonly maxAttempts?: number;\n readonly maxRetryDelayMs?: number;\n}\n\n/** Package selector bound into every UAPKG OIDC exchange. */\nexport interface GitHubActionsOidcTarget {\n readonly registryId: string;\n readonly packageName: string;\n}\n\ntype OidcEndpoint = 'github' | 'exchange';\n\nexport class GitHubActionsOidcCredentialProvider {\n private readonly fetch: typeof fetch;\n private readonly sleep: (milliseconds: number) => Promise<void>;\n private readonly requestTimeoutMs: number;\n private readonly maxResponseBytes: number;\n private readonly maxAttempts: number;\n private readonly maxRetryDelayMs: number;\n\n public constructor(options: GitHubActionsOidcCredentialProviderOptions = {}) {\n this.fetch = options.fetch ?? globalThis.fetch;\n this.sleep = options.sleep ?? delay;\n this.requestTimeoutMs = positiveInteger(options.requestTimeoutMs, DEFAULT_REQUEST_TIMEOUT_MS);\n this.maxResponseBytes = positiveInteger(options.maxResponseBytes, DEFAULT_MAX_RESPONSE_BYTES);\n this.maxAttempts = positiveInteger(options.maxAttempts, DEFAULT_MAX_ATTEMPTS);\n this.maxRetryDelayMs = positiveInteger(options.maxRetryDelayMs, DEFAULT_MAX_RETRY_DELAY_MS);\n }\n\n public isAvailable(): boolean {\n return Boolean(\n process.env.GITHUB_ACTIONS === 'true' ||\n process.env.ACTIONS_ID_TOKEN_REQUEST_URL ||\n process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN,\n );\n }\n\n public async exchange(trust: RegistryTrust, target: GitHubActionsOidcTarget): Promise<string> {\n if (trust.apiBaseUrl !== UAPKG_CONTROL_PLANE_API) {\n throw new GitHubActionsOidcError(\n 'OIDC_CONTROL_PLANE_UNTRUSTED',\n `UAPKG v1 OIDC exchange is pinned to ${UAPKG_CONTROL_PLANE_API}.`,\n );\n }\n const packageName = target.packageName.trim();\n if (target.registryId !== trust.registryId || !packageName) {\n throw new GitHubActionsOidcError(\n 'OIDC_EXCHANGE_TARGET_INVALID',\n 'GitHub Actions OIDC requires the exact trusted registry and packaged package name.',\n );\n }\n const requestUrl = process.env.ACTIONS_ID_TOKEN_REQUEST_URL;\n const requestToken = process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN;\n if (!this.isAvailable() || !requestUrl || !requestToken) {\n throw new GitHubActionsOidcError(\n 'OIDC_GITHUB_CONTEXT_UNAVAILABLE',\n 'GitHub Actions OIDC was selected but its identity-token endpoint is unavailable. The workflow must grant `id-token: write`.',\n );\n }\n\n const url = parseGitHubOidcEndpoint(requestUrl);\n url.searchParams.set('audience', UAPKG_GITHUB_OIDC_AUDIENCE);\n\n const githubResponse = await this.fetchWithRetry(\n url,\n {\n headers: { authorization: `Bearer ${requestToken}` },\n },\n 'github',\n );\n const githubValue = githubResponseSchema.safeParse(await this.readJson(githubResponse, 'github'));\n if (!githubResponse.ok) {\n throw new GitHubActionsOidcError(\n 'OIDC_GITHUB_TOKEN_REJECTED',\n `GitHub Actions did not issue an OIDC identity token (HTTP ${githubResponse.status}).`,\n githubResponse.status,\n );\n }\n if (!githubValue.success) {\n throw new GitHubActionsOidcError(\n 'OIDC_GITHUB_TOKEN_RESPONSE_INVALID',\n 'GitHub Actions returned an invalid OIDC identity-token response.',\n githubResponse.status,\n );\n }\n\n const exchangeResponse = await this.fetchWithRetry(\n new URL('/v1/oidc/github-actions/exchange', trust.apiBaseUrl),\n {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body: JSON.stringify({\n provider: 'github_actions',\n audience: UAPKG_GITHUB_OIDC_AUDIENCE,\n idToken: githubValue.data.value,\n target: {\n registryId: target.registryId,\n packageName,\n },\n }),\n },\n 'exchange',\n );\n const exchangeValue = await this.readJson(exchangeResponse, 'exchange');\n if (!exchangeResponse.ok) {\n const error = exchangeErrorSchema.safeParse(exchangeValue);\n if (error.success) {\n throw new ControlPlaneError(\n error.data.error.code,\n error.data.error.message,\n exchangeResponse.status,\n error.data.error.details,\n );\n }\n throw new GitHubActionsOidcError(\n 'OIDC_EXCHANGE_REJECTED',\n `UAPKG rejected the GitHub Actions identity (HTTP ${exchangeResponse.status}).`,\n exchangeResponse.status,\n );\n }\n const parsed = exchangeResponseSchema.safeParse(exchangeValue);\n if (!parsed.success) {\n throw new GitHubActionsOidcError(\n 'OIDC_EXCHANGE_RESPONSE_INVALID',\n 'The UAPKG OIDC exchange response was invalid.',\n exchangeResponse.status,\n );\n }\n return parsed.data.token;\n }\n\n private async fetchWithRetry(url: URL, init: RequestInit, endpoint: OidcEndpoint): Promise<Response> {\n for (let attempt = 1; attempt <= this.maxAttempts; attempt += 1) {\n let response: Response;\n try {\n response = await this.fetch(url, {\n ...init,\n redirect: 'error',\n signal: AbortSignal.timeout(this.requestTimeoutMs),\n });\n } catch (error) {\n if (attempt < this.maxAttempts) {\n await this.sleep(this.retryDelay(undefined, attempt));\n continue;\n }\n throw requestFailure(endpoint, error);\n }\n\n if (!RETRYABLE_STATUS_CODES.has(response.status) || attempt === this.maxAttempts) return response;\n\n const retryAfter = response.headers.get('retry-after');\n await response.body?.cancel().catch(() => undefined);\n await this.sleep(this.retryDelay(retryAfter, attempt));\n }\n\n throw new Error('OIDC retry loop exhausted unexpectedly.');\n }\n\n private retryDelay(retryAfter: string | null | undefined, attempt: number): number {\n const parsed = parseRetryAfter(retryAfter);\n const fallback = DEFAULT_RETRY_DELAY_MS * 2 ** (attempt - 1);\n return Math.min(parsed ?? fallback, this.maxRetryDelayMs);\n }\n\n private async readJson(response: Response, endpoint: OidcEndpoint): Promise<unknown> {\n const contentLength = parseContentLength(response.headers.get('content-length'));\n if (contentLength !== undefined && contentLength > this.maxResponseBytes) {\n await response.body?.cancel().catch(() => undefined);\n throw responseTooLarge(endpoint, response.status);\n }\n\n const chunks: Uint8Array[] = [];\n let byteLength = 0;\n if (response.body) {\n const reader = response.body.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n byteLength += value.byteLength;\n if (byteLength > this.maxResponseBytes) {\n await reader.cancel().catch(() => undefined);\n throw responseTooLarge(endpoint, response.status);\n }\n chunks.push(value);\n }\n } finally {\n reader.releaseLock();\n }\n }\n\n if (byteLength === 0) return {};\n const contentType = response.headers.get('content-type')?.split(';', 1)[0]?.trim().toLowerCase();\n if (contentType !== 'application/json' && !contentType?.endsWith('+json')) {\n throw responseInvalid(endpoint, response.status);\n }\n\n const bytes = new Uint8Array(byteLength);\n let offset = 0;\n for (const chunk of chunks) {\n bytes.set(chunk, offset);\n offset += chunk.byteLength;\n }\n try {\n return JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(bytes)) as unknown;\n } catch (error) {\n throw responseInvalid(endpoint, response.status, error);\n }\n }\n}\n\nfunction parseGitHubOidcEndpoint(value: string): URL {\n let url: URL;\n try {\n url = new URL(value);\n } catch (error) {\n throw new GitHubActionsOidcError(\n 'OIDC_GITHUB_ENDPOINT_INVALID',\n 'GitHub Actions supplied an unexpected OIDC token endpoint.',\n undefined,\n { cause: error },\n );\n }\n const hostname = url.hostname.toLowerCase();\n if (\n url.protocol !== 'https:' ||\n url.username ||\n url.password ||\n url.port ||\n (hostname !== 'actions.githubusercontent.com' && !hostname.endsWith('.actions.githubusercontent.com'))\n ) {\n throw new GitHubActionsOidcError(\n 'OIDC_GITHUB_ENDPOINT_INVALID',\n 'GitHub Actions supplied an unexpected OIDC token endpoint.',\n );\n }\n return url;\n}\n\nfunction requestFailure(endpoint: OidcEndpoint, error: unknown): GitHubActionsOidcError {\n const timedOut = error instanceof DOMException && error.name === 'TimeoutError';\n if (endpoint === 'github') {\n return new GitHubActionsOidcError(\n timedOut ? 'OIDC_GITHUB_TOKEN_REQUEST_TIMEOUT' : 'OIDC_GITHUB_TOKEN_REQUEST_FAILED',\n timedOut\n ? 'Timed out while requesting a GitHub Actions OIDC identity token.'\n : 'Unable to request a GitHub Actions OIDC identity token.',\n undefined,\n { cause: error },\n );\n }\n return new GitHubActionsOidcError(\n timedOut ? 'OIDC_EXCHANGE_REQUEST_TIMEOUT' : 'OIDC_EXCHANGE_REQUEST_FAILED',\n timedOut\n ? 'Timed out while exchanging the GitHub Actions identity with UAPKG.'\n : 'Unable to exchange the GitHub Actions identity with UAPKG.',\n undefined,\n { cause: error },\n );\n}\n\nfunction responseTooLarge(endpoint: OidcEndpoint, status: number): GitHubActionsOidcError {\n return endpoint === 'github'\n ? new GitHubActionsOidcError(\n 'OIDC_GITHUB_TOKEN_RESPONSE_TOO_LARGE',\n 'GitHub Actions returned an oversized OIDC identity-token response.',\n status,\n )\n : new GitHubActionsOidcError(\n 'OIDC_EXCHANGE_RESPONSE_TOO_LARGE',\n 'The UAPKG OIDC exchange returned an oversized response.',\n status,\n );\n}\n\nfunction responseInvalid(endpoint: OidcEndpoint, status: number, cause?: unknown): GitHubActionsOidcError {\n return endpoint === 'github'\n ? new GitHubActionsOidcError(\n 'OIDC_GITHUB_TOKEN_RESPONSE_INVALID',\n 'GitHub Actions returned an invalid OIDC identity-token response.',\n status,\n { cause },\n )\n : new GitHubActionsOidcError(\n 'OIDC_EXCHANGE_RESPONSE_INVALID',\n 'The UAPKG OIDC exchange response was invalid.',\n status,\n { cause },\n );\n}\n\nfunction parseContentLength(value: string | null): number | undefined {\n if (value === null || !/^\\d+$/.test(value)) return undefined;\n const parsed = Number(value);\n return Number.isSafeInteger(parsed) ? parsed : undefined;\n}\n\nfunction parseRetryAfter(value: string | null | undefined, now = Date.now()): number | undefined {\n if (!value) return undefined;\n if (/^\\d+$/.test(value)) return Number(value) * 1_000;\n const timestamp = Date.parse(value);\n return Number.isFinite(timestamp) ? Math.max(0, timestamp - now) : undefined;\n}\n\nfunction positiveInteger(value: number | undefined, fallback: number): number {\n return value !== undefined && Number.isSafeInteger(value) && value > 0 ? value : fallback;\n}\n\nfunction delay(milliseconds: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, milliseconds));\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PublishIdempotencyStore.d.ts","names":[],"sources":["../../src/control-plane/PublishIdempotencyStore.ts"],"mappings":";UAkBiB;WACN;WACA;WACA;WACA;;;;;;;;iBASK,yCACd,aAAa,iCACb,cAAa,OAAO;;;;;;;;cA2BT;mBACM;EAEjB,YAAmB;;SAKL,iBAAiB,mBAAmB;EAI3C,YAAY,gBAAgB,sBAAsB;EAYlD,MAAM,gBAAgB;UAQrB;UAyBA"}
@@ -1,100 +0,0 @@
1
- import { resolveActiveUapkgProfileRoot } from "@uapkg/common";
2
- import { dirname, join } from "node:path";
3
- import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
4
- import { sha256OfCanonicalJson } from "@uapkg/package-claims";
5
-
6
- //#region src/control-plane/PublishIdempotencyStore.ts
7
- const STORE_FILE_NAME = "publish-idempotency.json";
8
- const MAX_ENTRY_AGE_MS = 6048e5;
9
- /**
10
- * Stable, non-secret key for one GitHub Actions publish job. A rerun keeps the
11
- * same run ID and job name but changes GITHUB_RUN_ATTEMPT, so the attempt is
12
- * deliberately excluded. Renewing an OIDC session therefore cannot change
13
- * the request identity.
14
- */
15
- function createGitHubActionsPublishIdempotencyKey(coordinates, environment = process.env) {
16
- const githubRunId = environment.GITHUB_RUN_ID?.trim();
17
- const githubJob = environment.GITHUB_JOB?.trim();
18
- if (!githubRunId || !githubJob) throw new Error("GitHub Actions OIDC publishing requires GITHUB_RUN_ID and GITHUB_JOB to derive a stable idempotency key.");
19
- return `gha-${sha256OfCanonicalJson({
20
- schemaVersion: 1,
21
- registryId: coordinates.registryId,
22
- packageName: coordinates.packageName,
23
- packageVersion: coordinates.packageVersion,
24
- artifactSha256: coordinates.artifactSha256,
25
- githubRunId,
26
- githubJob
27
- })}`;
28
- }
29
- /**
30
- * Persisted idempotency keys for logical registry-operation submissions.
31
- * One logical submission (operation + registry + payload) keeps one key
32
- * across retries, so a re-run after a network fault or crash replays the
33
- * original request instead of creating a duplicate. Keys are cleared once
34
- * the request reaches a terminal state.
35
- */
36
- var PublishIdempotencyStore = class {
37
- filePath;
38
- constructor(filePath) {
39
- this.filePath = filePath ?? join(resolveActiveUapkgProfileRoot(), STORE_FILE_NAME);
40
- }
41
- /** Stable digest identifying one logical submission. */
42
- static submissionDigest(operation, submission) {
43
- return sha256OfCanonicalJson({
44
- operation,
45
- submission
46
- });
47
- }
48
- getOrCreate(digest, newKey, now = Date.now()) {
49
- const store = this.read(now);
50
- const existing = store.entries[digest];
51
- if (existing) return existing.key;
52
- const key = newKey();
53
- this.write({
54
- schemaVersion: 1,
55
- entries: {
56
- ...store.entries,
57
- [digest]: {
58
- key,
59
- createdAt: now
60
- }
61
- }
62
- });
63
- return key;
64
- }
65
- clear(digest, now = Date.now()) {
66
- const store = this.read(now);
67
- if (!(digest in store.entries)) return;
68
- const entries = { ...store.entries };
69
- delete entries[digest];
70
- this.write({
71
- schemaVersion: 1,
72
- entries
73
- });
74
- }
75
- read(now) {
76
- let parsed;
77
- try {
78
- const raw = readFileSync(this.filePath, "utf8");
79
- const candidate = JSON.parse(raw);
80
- if (candidate.schemaVersion === 1 && candidate.entries && typeof candidate.entries === "object") parsed = {
81
- schemaVersion: 1,
82
- entries: candidate.entries
83
- };
84
- } catch {}
85
- const entries = {};
86
- for (const [digest, entry] of Object.entries(parsed?.entries ?? {})) if (entry && typeof entry.key === "string" && typeof entry.createdAt === "number" && now - entry.createdAt <= MAX_ENTRY_AGE_MS) entries[digest] = entry;
87
- return {
88
- schemaVersion: 1,
89
- entries
90
- };
91
- }
92
- write(store) {
93
- mkdirSync(dirname(this.filePath), { recursive: true });
94
- writeFileSync(this.filePath, `${JSON.stringify(store, null, 2)}\n`, "utf8");
95
- }
96
- };
97
-
98
- //#endregion
99
- export { PublishIdempotencyStore, createGitHubActionsPublishIdempotencyKey };
100
- //# sourceMappingURL=PublishIdempotencyStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PublishIdempotencyStore.js","names":[],"sources":["../../src/control-plane/PublishIdempotencyStore.ts"],"sourcesContent":["import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\nimport { resolveActiveUapkgProfileRoot } from '@uapkg/common';\nimport { sha256OfCanonicalJson } from '@uapkg/package-claims';\n\nconst STORE_FILE_NAME = 'publish-idempotency.json';\nconst MAX_ENTRY_AGE_MS = 7 * 24 * 60 * 60 * 1000;\n\ninterface StoredEntry {\n readonly key: string;\n readonly createdAt: number;\n}\n\ninterface StoreFile {\n readonly schemaVersion: 1;\n readonly entries: Readonly<Record<string, StoredEntry>>;\n}\n\nexport interface GitHubActionsPublishCoordinates {\n readonly registryId: string;\n readonly packageName: string;\n readonly packageVersion: string;\n readonly artifactSha256: string;\n}\n\n/**\n * Stable, non-secret key for one GitHub Actions publish job. A rerun keeps the\n * same run ID and job name but changes GITHUB_RUN_ATTEMPT, so the attempt is\n * deliberately excluded. Renewing an OIDC session therefore cannot change\n * the request identity.\n */\nexport function createGitHubActionsPublishIdempotencyKey(\n coordinates: GitHubActionsPublishCoordinates,\n environment: NodeJS.ProcessEnv = process.env,\n): string {\n const githubRunId = environment.GITHUB_RUN_ID?.trim();\n const githubJob = environment.GITHUB_JOB?.trim();\n if (!githubRunId || !githubJob) {\n throw new Error(\n 'GitHub Actions OIDC publishing requires GITHUB_RUN_ID and GITHUB_JOB to derive a stable idempotency key.',\n );\n }\n return `gha-${sha256OfCanonicalJson({\n schemaVersion: 1,\n registryId: coordinates.registryId,\n packageName: coordinates.packageName,\n packageVersion: coordinates.packageVersion,\n artifactSha256: coordinates.artifactSha256,\n githubRunId,\n githubJob,\n })}`;\n}\n\n/**\n * Persisted idempotency keys for logical registry-operation submissions.\n * One logical submission (operation + registry + payload) keeps one key\n * across retries, so a re-run after a network fault or crash replays the\n * original request instead of creating a duplicate. Keys are cleared once\n * the request reaches a terminal state.\n */\nexport class PublishIdempotencyStore {\n private readonly filePath: string;\n\n public constructor(filePath?: string) {\n this.filePath = filePath ?? join(resolveActiveUapkgProfileRoot(), STORE_FILE_NAME);\n }\n\n /** Stable digest identifying one logical submission. */\n public static submissionDigest(operation: string, submission: unknown): string {\n return sha256OfCanonicalJson({ operation, submission });\n }\n\n public getOrCreate(digest: string, newKey: () => string, now = Date.now()): string {\n const store = this.read(now);\n const existing = store.entries[digest];\n if (existing) return existing.key;\n const key = newKey();\n this.write({\n schemaVersion: 1,\n entries: { ...store.entries, [digest]: { key, createdAt: now } },\n });\n return key;\n }\n\n public clear(digest: string, now = Date.now()): void {\n const store = this.read(now);\n if (!(digest in store.entries)) return;\n const entries = { ...store.entries };\n delete entries[digest];\n this.write({ schemaVersion: 1, entries });\n }\n\n private read(now: number): StoreFile {\n let parsed: StoreFile | undefined;\n try {\n const raw = readFileSync(this.filePath, 'utf8');\n const candidate = JSON.parse(raw) as Partial<StoreFile>;\n if (candidate.schemaVersion === 1 && candidate.entries && typeof candidate.entries === 'object') {\n parsed = { schemaVersion: 1, entries: candidate.entries };\n }\n } catch {\n // Missing or corrupt store starts fresh; keys are best-effort retry aids.\n }\n const entries: Record<string, StoredEntry> = {};\n for (const [digest, entry] of Object.entries(parsed?.entries ?? {})) {\n if (\n entry &&\n typeof entry.key === 'string' &&\n typeof entry.createdAt === 'number' &&\n now - entry.createdAt <= MAX_ENTRY_AGE_MS\n ) {\n entries[digest] = entry;\n }\n }\n return { schemaVersion: 1, entries };\n }\n\n private write(store: StoreFile): void {\n mkdirSync(dirname(this.filePath), { recursive: true });\n writeFileSync(this.filePath, `${JSON.stringify(store, null, 2)}\\n`, 'utf8');\n }\n}\n"],"mappings":";;;;;;AAKA,MAAM,kBAAkB;AACxB,MAAM,mBAAmB;;;;;;;AAyBzB,SAAgB,yCACd,aACA,cAAiC,QAAQ,KACjC;CACR,MAAM,cAAc,YAAY,eAAe,KAAK;CACpD,MAAM,YAAY,YAAY,YAAY,KAAK;CAC/C,IAAI,CAAC,eAAe,CAAC,WACnB,MAAM,IAAI,MACR,0GACF;CAEF,OAAO,OAAO,sBAAsB;EAClC,eAAe;EACf,YAAY,YAAY;EACxB,aAAa,YAAY;EACzB,gBAAgB,YAAY;EAC5B,gBAAgB,YAAY;EAC5B;EACA;CACF,CAAC;AACH;;;;;;;;AASA,IAAa,0BAAb,MAAqC;CACnC,AAAiB;CAEjB,AAAO,YAAY,UAAmB;EACpC,KAAK,WAAW,YAAY,KAAK,8BAA8B,GAAG,eAAe;CACnF;;CAGA,OAAc,iBAAiB,WAAmB,YAA6B;EAC7E,OAAO,sBAAsB;GAAE;GAAW;EAAW,CAAC;CACxD;CAEA,AAAO,YAAY,QAAgB,QAAsB,MAAM,KAAK,IAAI,GAAW;EACjF,MAAM,QAAQ,KAAK,KAAK,GAAG;EAC3B,MAAM,WAAW,MAAM,QAAQ;EAC/B,IAAI,UAAU,OAAO,SAAS;EAC9B,MAAM,MAAM,OAAO;EACnB,KAAK,MAAM;GACT,eAAe;GACf,SAAS;IAAE,GAAG,MAAM;KAAU,SAAS;KAAE;KAAK,WAAW;IAAI;GAAE;EACjE,CAAC;EACD,OAAO;CACT;CAEA,AAAO,MAAM,QAAgB,MAAM,KAAK,IAAI,GAAS;EACnD,MAAM,QAAQ,KAAK,KAAK,GAAG;EAC3B,IAAI,EAAE,UAAU,MAAM,UAAU;EAChC,MAAM,UAAU,EAAE,GAAG,MAAM,QAAQ;EACnC,OAAO,QAAQ;EACf,KAAK,MAAM;GAAE,eAAe;GAAG;EAAQ,CAAC;CAC1C;CAEA,AAAQ,KAAK,KAAwB;EACnC,IAAI;EACJ,IAAI;GACF,MAAM,MAAM,aAAa,KAAK,UAAU,MAAM;GAC9C,MAAM,YAAY,KAAK,MAAM,GAAG;GAChC,IAAI,UAAU,kBAAkB,KAAK,UAAU,WAAW,OAAO,UAAU,YAAY,UACrF,SAAS;IAAE,eAAe;IAAG,SAAS,UAAU;GAAQ;EAE5D,QAAQ,CAER;EACA,MAAM,UAAuC,CAAC;EAC9C,KAAK,MAAM,CAAC,QAAQ,UAAU,OAAO,QAAQ,QAAQ,WAAW,CAAC,CAAC,GAChE,IACE,SACA,OAAO,MAAM,QAAQ,YACrB,OAAO,MAAM,cAAc,YAC3B,MAAM,MAAM,aAAa,kBAEzB,QAAQ,UAAU;EAGtB,OAAO;GAAE,eAAe;GAAG;EAAQ;CACrC;CAEA,AAAQ,MAAM,OAAwB;EACpC,UAAU,QAAQ,KAAK,QAAQ,GAAG,EAAE,WAAW,KAAK,CAAC;EACrD,cAAc,KAAK,UAAU,GAAG,KAAK,UAAU,OAAO,MAAM,CAAC,EAAE,KAAK,MAAM;CAC5E;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PublishRequestErrorMapper.d.ts","names":[],"sources":["../../src/control-plane/PublishRequestErrorMapper.ts"],"mappings":";;UA+FiB;WACN;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;KAGN;UAUK;WACC;WACA;WACA,iBAAiB;WACjB,qBAAqB;WACrB;;UAGD;EACR,MAAM,kBAAkB,SAAS,6BAA6B;;;;;;;cAuQnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgWD,0CAA0C;iBAEtC,iCACd,gBACA,SAAS,6BACR"}