@0xrama/bnpm 0.0.1

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 (204) hide show
  1. package/README.md +83 -0
  2. package/dist/package.json +45 -0
  3. package/dist/src/cache/archive.d.ts +15 -0
  4. package/dist/src/cache/archive.js +163 -0
  5. package/dist/src/cache/archive.js.map +1 -0
  6. package/dist/src/cache/commands.d.ts +15 -0
  7. package/dist/src/cache/commands.js +168 -0
  8. package/dist/src/cache/commands.js.map +1 -0
  9. package/dist/src/cache/quarantine.d.ts +18 -0
  10. package/dist/src/cache/quarantine.js +104 -0
  11. package/dist/src/cache/quarantine.js.map +1 -0
  12. package/dist/src/cache/store.d.ts +10 -0
  13. package/dist/src/cache/store.js +155 -0
  14. package/dist/src/cache/store.js.map +1 -0
  15. package/dist/src/cli.d.ts +2 -0
  16. package/dist/src/cli.js +4 -0
  17. package/dist/src/cli.js.map +1 -0
  18. package/dist/src/commands/diff.d.ts +34 -0
  19. package/dist/src/commands/diff.js +223 -0
  20. package/dist/src/commands/diff.js.map +1 -0
  21. package/dist/src/commands/doctor.d.ts +14 -0
  22. package/dist/src/commands/doctor.js +42 -0
  23. package/dist/src/commands/doctor.js.map +1 -0
  24. package/dist/src/commands/edit.d.ts +12 -0
  25. package/dist/src/commands/edit.js +100 -0
  26. package/dist/src/commands/edit.js.map +1 -0
  27. package/dist/src/commands/fund.d.ts +10 -0
  28. package/dist/src/commands/fund.js +32 -0
  29. package/dist/src/commands/fund.js.map +1 -0
  30. package/dist/src/commands/graph.d.ts +29 -0
  31. package/dist/src/commands/graph.js +90 -0
  32. package/dist/src/commands/graph.js.map +1 -0
  33. package/dist/src/commands/index.d.ts +20 -0
  34. package/dist/src/commands/index.js +1753 -0
  35. package/dist/src/commands/index.js.map +1 -0
  36. package/dist/src/commands/navigation.d.ts +2 -0
  37. package/dist/src/commands/navigation.js +47 -0
  38. package/dist/src/commands/navigation.js.map +1 -0
  39. package/dist/src/commands/outdated.d.ts +17 -0
  40. package/dist/src/commands/outdated.js +69 -0
  41. package/dist/src/commands/outdated.js.map +1 -0
  42. package/dist/src/commands/process.d.ts +11 -0
  43. package/dist/src/commands/process.js +189 -0
  44. package/dist/src/commands/process.js.map +1 -0
  45. package/dist/src/commands/prompts.d.ts +6 -0
  46. package/dist/src/commands/prompts.js +86 -0
  47. package/dist/src/commands/prompts.js.map +1 -0
  48. package/dist/src/commands/query.d.ts +48 -0
  49. package/dist/src/commands/query.js +639 -0
  50. package/dist/src/commands/query.js.map +1 -0
  51. package/dist/src/commands/rebuild.d.ts +16 -0
  52. package/dist/src/commands/rebuild.js +44 -0
  53. package/dist/src/commands/rebuild.js.map +1 -0
  54. package/dist/src/commands/sbom.d.ts +6 -0
  55. package/dist/src/commands/sbom.js +31 -0
  56. package/dist/src/commands/sbom.js.map +1 -0
  57. package/dist/src/commands/script-approvals.d.ts +22 -0
  58. package/dist/src/commands/script-approvals.js +128 -0
  59. package/dist/src/commands/script-approvals.js.map +1 -0
  60. package/dist/src/commands/shrinkwrap.d.ts +6 -0
  61. package/dist/src/commands/shrinkwrap.js +97 -0
  62. package/dist/src/commands/shrinkwrap.js.map +1 -0
  63. package/dist/src/commands/stage.d.ts +20 -0
  64. package/dist/src/commands/stage.js +40 -0
  65. package/dist/src/commands/stage.js.map +1 -0
  66. package/dist/src/commands/token.d.ts +2 -0
  67. package/dist/src/commands/token.js +47 -0
  68. package/dist/src/commands/token.js.map +1 -0
  69. package/dist/src/commands/trust.d.ts +5 -0
  70. package/dist/src/commands/trust.js +41 -0
  71. package/dist/src/commands/trust.js.map +1 -0
  72. package/dist/src/config/commands.d.ts +5 -0
  73. package/dist/src/config/commands.js +91 -0
  74. package/dist/src/config/commands.js.map +1 -0
  75. package/dist/src/config/configuration.d.ts +40 -0
  76. package/dist/src/config/configuration.js +157 -0
  77. package/dist/src/config/configuration.js.map +1 -0
  78. package/dist/src/config/interactive.d.ts +16 -0
  79. package/dist/src/config/interactive.js +19 -0
  80. package/dist/src/config/interactive.js.map +1 -0
  81. package/dist/src/config/paths.d.ts +22 -0
  82. package/dist/src/config/paths.js +46 -0
  83. package/dist/src/config/paths.js.map +1 -0
  84. package/dist/src/config/types.d.ts +15 -0
  85. package/dist/src/config/types.js +6 -0
  86. package/dist/src/config/types.js.map +1 -0
  87. package/dist/src/core/cli-parser.d.ts +102 -0
  88. package/dist/src/core/cli-parser.js +1148 -0
  89. package/dist/src/core/cli-parser.js.map +1 -0
  90. package/dist/src/core/cli-runner.d.ts +15 -0
  91. package/dist/src/core/cli-runner.js +261 -0
  92. package/dist/src/core/cli-runner.js.map +1 -0
  93. package/dist/src/core/exit-codes.d.ts +13 -0
  94. package/dist/src/core/exit-codes.js +13 -0
  95. package/dist/src/core/exit-codes.js.map +1 -0
  96. package/dist/src/core/output.d.ts +23 -0
  97. package/dist/src/core/output.js +123 -0
  98. package/dist/src/core/output.js.map +1 -0
  99. package/dist/src/installer/install.d.ts +73 -0
  100. package/dist/src/installer/install.js +596 -0
  101. package/dist/src/installer/install.js.map +1 -0
  102. package/dist/src/installer/mutations.d.ts +5 -0
  103. package/dist/src/installer/mutations.js +160 -0
  104. package/dist/src/installer/mutations.js.map +1 -0
  105. package/dist/src/linker/project-linker.d.ts +9 -0
  106. package/dist/src/linker/project-linker.js +223 -0
  107. package/dist/src/linker/project-linker.js.map +1 -0
  108. package/dist/src/lockfile/index.d.ts +27 -0
  109. package/dist/src/lockfile/index.js +221 -0
  110. package/dist/src/lockfile/index.js.map +1 -0
  111. package/dist/src/package/authoring.d.ts +31 -0
  112. package/dist/src/package/authoring.js +125 -0
  113. package/dist/src/package/authoring.js.map +1 -0
  114. package/dist/src/package/pack.d.ts +22 -0
  115. package/dist/src/package/pack.js +238 -0
  116. package/dist/src/package/pack.js.map +1 -0
  117. package/dist/src/package/provenance.d.ts +28 -0
  118. package/dist/src/package/provenance.js +162 -0
  119. package/dist/src/package/provenance.js.map +1 -0
  120. package/dist/src/package/publish.d.ts +28 -0
  121. package/dist/src/package/publish.js +189 -0
  122. package/dist/src/package/publish.js.map +1 -0
  123. package/dist/src/package/trusted-publishing.d.ts +7 -0
  124. package/dist/src/package/trusted-publishing.js +84 -0
  125. package/dist/src/package/trusted-publishing.js.map +1 -0
  126. package/dist/src/project/dependency-error.d.ts +3 -0
  127. package/dist/src/project/dependency-error.js +7 -0
  128. package/dist/src/project/dependency-error.js.map +1 -0
  129. package/dist/src/project/dev-engines.d.ts +10 -0
  130. package/dist/src/project/dev-engines.js +70 -0
  131. package/dist/src/project/dev-engines.js.map +1 -0
  132. package/dist/src/project/discovery.d.ts +6 -0
  133. package/dist/src/project/discovery.js +51 -0
  134. package/dist/src/project/discovery.js.map +1 -0
  135. package/dist/src/project/global.d.ts +3 -0
  136. package/dist/src/project/global.js +43 -0
  137. package/dist/src/project/global.js.map +1 -0
  138. package/dist/src/project/invalidation.d.ts +3 -0
  139. package/dist/src/project/invalidation.js +21 -0
  140. package/dist/src/project/invalidation.js.map +1 -0
  141. package/dist/src/project/link.d.ts +21 -0
  142. package/dist/src/project/link.js +152 -0
  143. package/dist/src/project/link.js.map +1 -0
  144. package/dist/src/project/manifest.d.ts +27 -0
  145. package/dist/src/project/manifest.js +378 -0
  146. package/dist/src/project/manifest.js.map +1 -0
  147. package/dist/src/project/pkg.d.ts +5 -0
  148. package/dist/src/project/pkg.js +94 -0
  149. package/dist/src/project/pkg.js.map +1 -0
  150. package/dist/src/project/recovery.d.ts +2 -0
  151. package/dist/src/project/recovery.js +82 -0
  152. package/dist/src/project/recovery.js.map +1 -0
  153. package/dist/src/project/workspaces.d.ts +4 -0
  154. package/dist/src/project/workspaces.js +59 -0
  155. package/dist/src/project/workspaces.js.map +1 -0
  156. package/dist/src/registry/account.d.ts +79 -0
  157. package/dist/src/registry/account.js +305 -0
  158. package/dist/src/registry/account.js.map +1 -0
  159. package/dist/src/registry/audit.d.ts +18 -0
  160. package/dist/src/registry/audit.js +74 -0
  161. package/dist/src/registry/audit.js.map +1 -0
  162. package/dist/src/registry/client.d.ts +19 -0
  163. package/dist/src/registry/client.js +102 -0
  164. package/dist/src/registry/client.js.map +1 -0
  165. package/dist/src/registry/configuration.d.ts +36 -0
  166. package/dist/src/registry/configuration.js +133 -0
  167. package/dist/src/registry/configuration.js.map +1 -0
  168. package/dist/src/registry/operations.d.ts +163 -0
  169. package/dist/src/registry/operations.js +502 -0
  170. package/dist/src/registry/operations.js.map +1 -0
  171. package/dist/src/registry/types.d.ts +30 -0
  172. package/dist/src/registry/types.js +2 -0
  173. package/dist/src/registry/types.js.map +1 -0
  174. package/dist/src/resolver/registry-resolver.d.ts +40 -0
  175. package/dist/src/resolver/registry-resolver.js +354 -0
  176. package/dist/src/resolver/registry-resolver.js.map +1 -0
  177. package/dist/src/resolver/source-provider.d.ts +17 -0
  178. package/dist/src/resolver/source-provider.js +336 -0
  179. package/dist/src/resolver/source-provider.js.map +1 -0
  180. package/dist/src/resolver/types.d.ts +28 -0
  181. package/dist/src/resolver/types.js +2 -0
  182. package/dist/src/resolver/types.js.map +1 -0
  183. package/dist/src/security/analyzer.d.ts +38 -0
  184. package/dist/src/security/analyzer.js +241 -0
  185. package/dist/src/security/analyzer.js.map +1 -0
  186. package/dist/src/security/audit.d.ts +19 -0
  187. package/dist/src/security/audit.js +61 -0
  188. package/dist/src/security/audit.js.map +1 -0
  189. package/dist/src/security/findings.d.ts +23 -0
  190. package/dist/src/security/findings.js +2 -0
  191. package/dist/src/security/findings.js.map +1 -0
  192. package/dist/src/security/integrity.d.ts +14 -0
  193. package/dist/src/security/integrity.js +40 -0
  194. package/dist/src/security/integrity.js.map +1 -0
  195. package/dist/src/security/policy.d.ts +16 -0
  196. package/dist/src/security/policy.js +24 -0
  197. package/dist/src/security/policy.js.map +1 -0
  198. package/dist/src/security/recent-release.d.ts +19 -0
  199. package/dist/src/security/recent-release.js +27 -0
  200. package/dist/src/security/recent-release.js.map +1 -0
  201. package/dist/src/security/script-runner.d.ts +13 -0
  202. package/dist/src/security/script-runner.js +73 -0
  203. package/dist/src/security/script-runner.js.map +1 -0
  204. package/package.json +45 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/registry/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAG/D,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAAC;AAErC,SAAS,aAAa,CAAC,MAAoB;IACzC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,QAAkB;IACpC,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,6CAA6C,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5G,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;QACrB,IAAI,IAAI,GAAG,gBAAgB;YAAE,MAAM,IAAI,aAAa,CAAC,mDAAmD,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3H,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACjE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QAC1G,OAAO,KAAgC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,aAAa,CAAC,wCAAwC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAc,EAAE,OAAe;IAChD,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QAAC,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,IAAI,aAAa,CAAC,gCAAgC,OAAO,MAAM,CAAC,CAAC;IAAC,CAAC;IAChJ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,+BAA+B,OAAO,MAAM,CAAC,CAAC;IACjJ,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,QAAa;IAClC,OAAO,KAAK,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,QAAQ,aAAa,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,IAAY;IAC/B,IAAI,CAAC;QAAC,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAAC,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QAAC,MAAM,KAAK,CAAC;IAAC,CAAC;AAChJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,QAAa,EAAE,KAAc;IACzE,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAE,GAAG,CAAC,CAAC;IAC5G,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IACxC,IAAI,KAAK,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAChE,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;IACjF,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,MAAM,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,IAAY,EAAE,QAAa,EAAE,QAAgB,EAAE,QAAgB;IAClG,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClL,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1F,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;IACjF,IAAI,CAAC;QAAC,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAAC,MAAM,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAAC,CAAC;IACxH,OAAO,KAAK,EAAE,CAAC;QAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,MAAM,KAAK,CAAC;IAAC,CAAC;AACtE,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,KAAgB,EAAE,QAAc;IAC3D,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IACnL,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAwI;IAC3K,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClF,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE;QACzF,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;QACrC,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;KACxE,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,aAAa,CAAC,yCAAyC,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,4CAA4C,CAAC,CAAC;IAC3I,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OASnC;IACC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IAClD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE;QAC/D,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;QACrC,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,KAAK,EAAE;QACnG,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,aAAa,CAAC,sCAAsC,QAAQ,CAAC,MAAM,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAC5D,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC7B,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACpC,MAAM,QAAQ,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE;QAAG,MAAM,IAAI,OAAO,CAAO,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE;YACjH,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;YACvD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3G,CAAC,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC;IACP,OAAO,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;QAC5I,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACzB,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,aAAa,CAAC,0CAA0C,CAAC,CAAC;YACvI,MAAM,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9D,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM,IAAI,aAAa,CAAC,sCAAsC,KAAK,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACtH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;QACvD,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1G,CAAC;IACD,MAAM,IAAI,aAAa,CAAC,0BAA0B,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAUzC;IACC,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,wCAAwC,CAAC,CAAC;IACpI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,0CAA0C,CAAC,CAAC;IAC7H,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,+CAA+C,CAAC,CAAC;IAC3L,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,4BAA4B,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACvG,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,oBAAoB,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAc,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;IACxP,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;IACrJ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1J,IAAI,MAA+B,CAAC;IACpC,IAAI,OAAO,CAAC,EAAE;QAAE,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;SACxC,CAAC;QACJ,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM,IAAI,aAAa,CAAC,qCAAqC,OAAO,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7I,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;QAC3I,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,aAAa,CAAC,+CAA+C,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,0CAA0C,CAAC,CAAC;QACvI,MAAM,QAAQ,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACnG,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,SAAS,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAClG,MAAM,aAAa,GAAG,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5L,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,aAAa,CAAC,8CAA8C,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5H,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;;QACpI,MAAM,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxG,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;AACnG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAwI;IAC3K,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClF,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC;IAChE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,oBAAoB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACxG,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,iBAAiB,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE;QAC1H,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;QACrC,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE;KACvD,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,aAAa,CAAC,+BAA+B,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7G,MAAM,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC1D,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAOD,KAAK,UAAU,SAAS,CAAC,GAAQ,EAAE,MAA6D,EAAE,OAAgC,EAAE,MAAoB;IACtJ,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9J,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,aAAa,CAAC,sCAAsC,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,8CAA8C,CAAC,CAAC;IAC1G,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAQ,KAA2B,CAAC,GAAG,KAAK,QAAQ;YAAE,MAAM,IAAI,aAAa,CAAC,2CAA2C,CAAC,CAAC;QACtM,MAAM,KAAK,GAAG,KAAyG,CAAC;QACxH,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,0CAA0C,CAAC,CAAC;QACla,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,cAAc,EAAE,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAa,EAAE,CAAC;IACxP,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,IAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACxJ,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,MAAM,IAAI,aAAa,CAAC,0CAA0C,CAAC,CAAC;IAClI,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/G,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,OAAwI;IAC/J,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IAClD,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,IAAI,GAAG,GAAoB,IAAI,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IACjE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,GAAG,KAAK,SAAS,IAAI,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACjE,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;YAAE,MAAM,IAAI,aAAa,CAAC,oEAAoE,CAAC,CAAC;QAC/J,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM;YAAE,MAAM,IAAI,aAAa,CAAC,2CAA2C,CAAC,CAAC;QACjG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IACD,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,aAAa,CAAC,8CAA8C,CAAC,CAAC;IAC/F,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,QAAQ,CAAC,MAA2B;IAC3C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC;QACnB,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;YAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,SAAS,CAAC;gBAAC,MAAM;YAAC,CAAC;QAC7G,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAwI;IAC3K,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IAAC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1E,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9Q,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAgM;IACzO,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QAClC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;QAChI,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,GAAa,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,0BAA0B,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACnF,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACtR,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,aAAa,CAAC,yCAAyC,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzH,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAQzC;IACC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,0DAA0D,CAAC,CAAC;IAC7I,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACjX,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,aAAa,CAAC,uCAAuC,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,uDAAuD,CAAC,CAAC;IAChL,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,kDAAkD,CAAC,CAAC;IACngB,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAc,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAiB,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAiB,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAmB,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,cAA0B,EAAE,CAAC,EAAE,CAAC;AACzb,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ResolutionGraph } from "../resolver/types.js";
2
+ export interface RegistryAdvisory {
3
+ readonly id: string | number;
4
+ readonly packageName: string;
5
+ readonly title: string;
6
+ readonly severity: "info" | "low" | "moderate" | "high" | "critical";
7
+ readonly vulnerableVersions: string;
8
+ readonly cwe?: readonly string[];
9
+ readonly url?: string;
10
+ }
11
+ export declare function fetchBulkAdvisories(options: {
12
+ readonly graph: ResolutionGraph;
13
+ readonly registry?: URL;
14
+ readonly fetch?: typeof globalThis.fetch;
15
+ readonly signal?: AbortSignal;
16
+ readonly maxBytes?: number;
17
+ readonly headers?: (url: URL) => Readonly<Record<string, string>>;
18
+ }): Promise<readonly RegistryAdvisory[]>;
@@ -0,0 +1,74 @@
1
+ import { RegistryError } from "./client.js";
2
+ export async function fetchBulkAdvisories(options) {
3
+ const registry = options.registry ?? new URL("https://registry.npmjs.org/");
4
+ if (registry.protocol !== "https:")
5
+ throw new RegistryError("Audit registry URL must use HTTPS");
6
+ const versions = {};
7
+ for (const pkg of options.graph.packages.values())
8
+ (versions[pkg.name] ??= []).push(pkg.version);
9
+ for (const values of Object.values(versions))
10
+ values.sort();
11
+ if (Object.keys(versions).length === 0)
12
+ return [];
13
+ let url = new URL("-/npm/v1/security/advisories/bulk", registry);
14
+ let response;
15
+ for (let redirects = 0; redirects <= 5; redirects += 1) {
16
+ response = await (options.fetch ?? globalThis.fetch)(url, {
17
+ method: "POST",
18
+ headers: { accept: "application/json", "content-type": "application/json", ...options.headers?.(url) },
19
+ body: JSON.stringify(versions),
20
+ redirect: "manual",
21
+ ...(options.signal === undefined ? {} : { signal: options.signal }),
22
+ });
23
+ if (![301, 302, 303, 307, 308].includes(response.status))
24
+ break;
25
+ if (redirects === 5)
26
+ throw new RegistryError("Registry audit exceeded the redirect limit");
27
+ const location = response.headers.get("location");
28
+ if (!location)
29
+ throw new RegistryError("Registry audit redirect did not provide a location");
30
+ url = new URL(location, url);
31
+ if (url.protocol !== "https:")
32
+ throw new RegistryError("Registry audit redirect must use HTTPS");
33
+ }
34
+ if (!response)
35
+ throw new RegistryError("Registry audit request did not return a response");
36
+ if (!response.ok || !response.body)
37
+ throw new RegistryError(`Registry audit request failed with ${response.status}`, response.status);
38
+ const limit = options.maxBytes ?? 10 * 1024 * 1024;
39
+ const chunks = [];
40
+ let bytes = 0;
41
+ for await (const value of response.body) {
42
+ const chunk = Buffer.from(value);
43
+ bytes += chunk.length;
44
+ if (bytes > limit)
45
+ throw new RegistryError("Registry audit response exceeds the size limit");
46
+ chunks.push(chunk);
47
+ }
48
+ let parsed;
49
+ try {
50
+ parsed = JSON.parse(Buffer.concat(chunks).toString("utf8"));
51
+ }
52
+ catch {
53
+ throw new RegistryError("Registry audit response is invalid JSON");
54
+ }
55
+ if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed))
56
+ throw new RegistryError("Registry audit response is invalid");
57
+ const advisories = [];
58
+ for (const [packageName, rawEntries] of Object.entries(parsed).sort(([left], [right]) => left.localeCompare(right))) {
59
+ if (!Array.isArray(rawEntries))
60
+ throw new RegistryError(`Registry advisories for ${packageName} are invalid`);
61
+ for (const raw of rawEntries) {
62
+ if (raw === null || typeof raw !== "object")
63
+ throw new RegistryError(`Registry advisory for ${packageName} is invalid`);
64
+ const entry = raw;
65
+ if ((typeof entry.id !== "string" && typeof entry.id !== "number") || typeof entry.title !== "string" || typeof entry.severity !== "string" || typeof entry.vulnerable_versions !== "string" || !["info", "low", "moderate", "high", "critical"].includes(entry.severity)) {
66
+ throw new RegistryError(`Registry advisory for ${packageName} is invalid`);
67
+ }
68
+ const cwe = Array.isArray(entry.cwe) ? entry.cwe.filter((value) => typeof value === "string") : typeof entry.cwe === "string" ? [entry.cwe] : [];
69
+ advisories.push({ id: entry.id, packageName, title: entry.title, severity: entry.severity, vulnerableVersions: entry.vulnerable_versions, ...(cwe.length === 0 ? {} : { cwe }), ...(typeof entry.url === "string" ? { url: entry.url } : {}) });
70
+ }
71
+ }
72
+ return advisories.sort((left, right) => left.packageName.localeCompare(right.packageName) || String(left.id).localeCompare(String(right.id)));
73
+ }
74
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/registry/audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { PackageDocument } from "./types.js";
2
+ export interface RegistryClientOptions {
3
+ registry?: URL;
4
+ fetch?: typeof globalThis.fetch;
5
+ maxMetadataBytes?: number;
6
+ timeoutMilliseconds?: number;
7
+ maxRedirects?: number;
8
+ maxRetries?: number;
9
+ headers?: (url: URL) => Readonly<Record<string, string>>;
10
+ }
11
+ export declare class RegistryError extends Error {
12
+ readonly status?: number | undefined;
13
+ constructor(message: string, status?: number | undefined);
14
+ }
15
+ export declare class RegistryClient {
16
+ #private;
17
+ constructor(options?: RegistryClientOptions);
18
+ packageDocument(name: string, signal?: AbortSignal): Promise<PackageDocument>;
19
+ }
@@ -0,0 +1,102 @@
1
+ export class RegistryError extends Error {
2
+ status;
3
+ constructor(message, status) {
4
+ super(message);
5
+ this.status = status;
6
+ this.name = "RegistryError";
7
+ }
8
+ }
9
+ export class RegistryClient {
10
+ #registry;
11
+ #fetch;
12
+ #maxMetadataBytes;
13
+ #timeoutMilliseconds;
14
+ #maxRedirects;
15
+ #maxRetries;
16
+ #headers;
17
+ constructor(options = {}) {
18
+ this.#registry = options.registry ?? new URL("https://registry.npmjs.org/");
19
+ this.#fetch = options.fetch ?? globalThis.fetch;
20
+ this.#maxMetadataBytes = options.maxMetadataBytes ?? 32 * 1024 * 1024;
21
+ this.#timeoutMilliseconds = options.timeoutMilliseconds ?? 30_000;
22
+ this.#maxRedirects = options.maxRedirects ?? 5;
23
+ this.#maxRetries = options.maxRetries ?? 2;
24
+ this.#headers = options.headers ?? (() => ({}));
25
+ if (this.#registry.protocol !== "https:") {
26
+ throw new RegistryError("Registry URL must use HTTPS");
27
+ }
28
+ }
29
+ async packageDocument(name, signal) {
30
+ const url = new URL(encodeURIComponent(name), this.#registry);
31
+ let response;
32
+ for (let attempt = 0; attempt <= this.#maxRetries; attempt += 1) {
33
+ try {
34
+ response = await this.#request(url, signal);
35
+ }
36
+ catch (error) {
37
+ if (attempt === this.#maxRetries || signal?.aborted || (error instanceof Error && error.name === "AbortError"))
38
+ throw error;
39
+ continue;
40
+ }
41
+ if (![408, 429, 500, 502, 503, 504].includes(response.status) || attempt === this.#maxRetries)
42
+ break;
43
+ }
44
+ if (!response?.ok)
45
+ throw new RegistryError(`Registry request for ${name} failed with ${response?.status ?? "no response"}`, response?.status);
46
+ const declaredLength = Number(response.headers.get("content-length"));
47
+ if (Number.isFinite(declaredLength) && declaredLength > this.#maxMetadataBytes)
48
+ throw new RegistryError(`Registry metadata for ${name} exceeds the size limit`);
49
+ if (!response.body)
50
+ throw new RegistryError(`Registry returned an empty package document for ${name}`);
51
+ const chunks = [];
52
+ let bytes = 0;
53
+ for await (const value of response.body) {
54
+ const chunk = Buffer.from(value);
55
+ bytes += chunk.length;
56
+ if (bytes > this.#maxMetadataBytes)
57
+ throw new RegistryError(`Registry metadata for ${name} exceeds the size limit`);
58
+ chunks.push(chunk);
59
+ }
60
+ let value;
61
+ try {
62
+ value = JSON.parse(Buffer.concat(chunks).toString("utf8"));
63
+ }
64
+ catch {
65
+ throw new RegistryError(`Registry returned invalid JSON for ${name}`);
66
+ }
67
+ if (!isPackageDocument(value, name)) {
68
+ throw new RegistryError(`Registry returned an invalid package document for ${name}`);
69
+ }
70
+ return value;
71
+ }
72
+ async #request(initialUrl, signal) {
73
+ let url = initialUrl;
74
+ for (let redirects = 0; redirects <= this.#maxRedirects; redirects += 1) {
75
+ const timeout = AbortSignal.timeout(this.#timeoutMilliseconds);
76
+ const requestSignal = signal ? AbortSignal.any([signal, timeout]) : timeout;
77
+ const response = await this.#fetch(url, { headers: { accept: "application/json", ...this.#headers(url) }, redirect: "manual", signal: requestSignal });
78
+ if (![301, 302, 303, 307, 308].includes(response.status))
79
+ return response;
80
+ if (redirects === this.#maxRedirects)
81
+ throw new RegistryError("Registry metadata exceeded the redirect limit");
82
+ const location = response.headers.get("location");
83
+ if (!location)
84
+ throw new RegistryError("Registry redirect did not provide a location");
85
+ url = new URL(location, url);
86
+ if (url.protocol !== "https:")
87
+ throw new RegistryError("Registry redirect must use HTTPS");
88
+ }
89
+ throw new RegistryError("Registry metadata exceeded the redirect limit");
90
+ }
91
+ }
92
+ function isPackageDocument(value, requestedName) {
93
+ if (typeof value !== "object" || value === null)
94
+ return false;
95
+ const document = value;
96
+ return (document.name === requestedName &&
97
+ typeof document["dist-tags"] === "object" &&
98
+ document["dist-tags"] !== null &&
99
+ typeof document.versions === "object" &&
100
+ document.versions !== null);
101
+ }
102
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/registry/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ interface NpmrcValues {
2
+ readonly registry?: string;
3
+ readonly scopedRegistries: ReadonlyMap<string, string>;
4
+ readonly credentials: ReadonlyMap<string, string>;
5
+ }
6
+ interface Credential {
7
+ readonly prefix: URL;
8
+ readonly authorization: string;
9
+ }
10
+ export declare function parseNpmrc(bytes: string, source: string, environment?: Readonly<Record<string, string | undefined>>): NpmrcValues;
11
+ export declare class RegistryConfiguration {
12
+ #private;
13
+ readonly defaultRegistry: URL;
14
+ readonly scopedRegistries: ReadonlyMap<string, URL>;
15
+ constructor(options: {
16
+ readonly defaultRegistry: URL;
17
+ readonly scopedRegistries?: ReadonlyMap<string, URL>;
18
+ readonly credentials?: readonly Credential[];
19
+ });
20
+ registryForPackage(name: string): URL;
21
+ headersFor(url: URL): Readonly<Record<string, string>>;
22
+ }
23
+ export declare function loadRegistryConfiguration(options: {
24
+ readonly userNpmrc: string;
25
+ readonly projectNpmrc: string;
26
+ readonly environment?: Readonly<Record<string, string | undefined>>;
27
+ readonly defaultRegistry?: URL;
28
+ }): Promise<RegistryConfiguration>;
29
+ export declare class RoutedRegistryClient {
30
+ #private;
31
+ readonly configuration: RegistryConfiguration;
32
+ readonly fetch: typeof globalThis.fetch;
33
+ constructor(configuration: RegistryConfiguration, fetch?: typeof globalThis.fetch);
34
+ packageDocument(name: string, signal?: AbortSignal): Promise<import("./types.js").PackageDocument>;
35
+ }
36
+ export {};
@@ -0,0 +1,133 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { ConfigError } from "../config/configuration.js";
3
+ const scopePattern = /^@[a-z0-9][a-z0-9._-]*$/i;
4
+ function expandEnvironment(value, environment, source) {
5
+ return value.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)\}/g, (_match, name) => {
6
+ const replacement = environment[name];
7
+ if (replacement === undefined)
8
+ throw new ConfigError(`${source}: environment variable ${name} is required by npmrc`);
9
+ return replacement;
10
+ });
11
+ }
12
+ export function parseNpmrc(bytes, source, environment = process.env) {
13
+ let registry;
14
+ const scopedRegistries = new Map();
15
+ const credentials = new Map();
16
+ for (const [index, rawLine] of bytes.split(/\r?\n/).entries()) {
17
+ const line = rawLine.trim();
18
+ if (!line || line.startsWith("#") || line.startsWith(";"))
19
+ continue;
20
+ const separator = line.indexOf("=");
21
+ if (separator <= 0)
22
+ continue;
23
+ const key = line.slice(0, separator).trim();
24
+ const value = expandEnvironment(line.slice(separator + 1).trim(), environment, `${source}:${index + 1}`);
25
+ if (key === "registry")
26
+ registry = value;
27
+ else if (key.endsWith(":registry")) {
28
+ const scope = key.slice(0, -":registry".length);
29
+ if (!scopePattern.test(scope))
30
+ throw new ConfigError(`${source}:${index + 1}: invalid registry scope ${scope}`);
31
+ scopedRegistries.set(scope, value);
32
+ }
33
+ else if (key.startsWith("//") && (key.endsWith(":_authToken") || key.endsWith(":_auth"))) {
34
+ credentials.set(key, value);
35
+ }
36
+ else if (key === "_authToken" || key === "_auth") {
37
+ credentials.set(key, value);
38
+ }
39
+ }
40
+ return { ...(registry === undefined ? {} : { registry }), scopedRegistries, credentials };
41
+ }
42
+ function registryUrl(value, source) {
43
+ let url;
44
+ try {
45
+ url = new URL(value);
46
+ }
47
+ catch {
48
+ throw new ConfigError(`${source}: registry must be an absolute URL`);
49
+ }
50
+ if (url.protocol !== "https:")
51
+ throw new ConfigError(`${source}: registry must use HTTPS`);
52
+ if (url.username || url.password || url.search || url.hash)
53
+ throw new ConfigError(`${source}: registry URL must not embed credentials, query, or fragment`);
54
+ if (!url.pathname.endsWith("/"))
55
+ url.pathname += "/";
56
+ return url;
57
+ }
58
+ function credentialPrefix(key, defaultRegistry, source) {
59
+ const token = key.endsWith(":_authToken");
60
+ const auth = key.endsWith(":_auth");
61
+ if (!key.startsWith("//"))
62
+ return { prefix: defaultRegistry, scheme: token || key === "_authToken" ? "Bearer" : "Basic" };
63
+ const suffix = token ? ":_authToken" : auth ? ":_auth" : "";
64
+ const raw = key.slice(0, -suffix.length);
65
+ const prefix = registryUrl(`https:${raw}`, source);
66
+ return { prefix, scheme: token ? "Bearer" : "Basic" };
67
+ }
68
+ export class RegistryConfiguration {
69
+ defaultRegistry;
70
+ scopedRegistries;
71
+ #credentials;
72
+ constructor(options) {
73
+ this.defaultRegistry = options.defaultRegistry;
74
+ this.scopedRegistries = options.scopedRegistries ?? new Map();
75
+ this.#credentials = [...(options.credentials ?? [])].sort((left, right) => right.prefix.href.length - left.prefix.href.length);
76
+ }
77
+ registryForPackage(name) {
78
+ const scope = name.startsWith("@") ? name.slice(0, name.indexOf("/")) : undefined;
79
+ return (scope === undefined ? undefined : this.scopedRegistries.get(scope)) ?? this.defaultRegistry;
80
+ }
81
+ headersFor(url) {
82
+ const credential = this.#credentials.find(({ prefix }) => url.origin === prefix.origin && url.pathname.startsWith(prefix.pathname));
83
+ return credential ? { authorization: credential.authorization } : {};
84
+ }
85
+ }
86
+ async function optionalNpmrc(path, environment) {
87
+ try {
88
+ return parseNpmrc(await readFile(path, "utf8"), path, environment);
89
+ }
90
+ catch (error) {
91
+ if (error.code === "ENOENT")
92
+ return undefined;
93
+ throw error;
94
+ }
95
+ }
96
+ export async function loadRegistryConfiguration(options) {
97
+ const environment = options.environment ?? process.env;
98
+ const user = await optionalNpmrc(options.userNpmrc, environment);
99
+ const project = await optionalNpmrc(options.projectNpmrc, environment);
100
+ const environmentRegistry = environment.npm_config_registry ?? environment.NPM_CONFIG_REGISTRY;
101
+ const defaultRegistry = registryUrl(options.defaultRegistry?.href ?? environmentRegistry ?? project?.registry ?? user?.registry ?? "https://registry.npmjs.org/", "registry configuration");
102
+ const scopedRaw = new Map([...(user?.scopedRegistries ?? []), ...(project?.scopedRegistries ?? [])]);
103
+ const scopedRegistries = new Map([...scopedRaw].map(([scope, value]) => [scope, registryUrl(value, `${scope}:registry`)]));
104
+ const rawCredentials = new Map([...(user?.credentials ?? []), ...(project?.credentials ?? [])]);
105
+ const credentials = [];
106
+ for (const [key, value] of rawCredentials) {
107
+ if (!value)
108
+ throw new ConfigError(`registry credential ${key} must not be empty`);
109
+ const { prefix, scheme } = credentialPrefix(key, defaultRegistry, key);
110
+ credentials.push({ prefix, authorization: `${scheme} ${value}` });
111
+ }
112
+ return new RegistryConfiguration({ defaultRegistry, scopedRegistries, credentials });
113
+ }
114
+ export class RoutedRegistryClient {
115
+ configuration;
116
+ fetch;
117
+ #clients = new Map();
118
+ constructor(configuration, fetch = globalThis.fetch) {
119
+ this.configuration = configuration;
120
+ this.fetch = fetch;
121
+ }
122
+ async packageDocument(name, signal) {
123
+ const registry = this.configuration.registryForPackage(name);
124
+ let client = this.#clients.get(registry.href);
125
+ if (!client) {
126
+ const { RegistryClient } = await import("./client.js");
127
+ client = new RegistryClient({ registry, fetch: this.fetch, headers: (url) => this.configuration.headersFor(url) });
128
+ this.#clients.set(registry.href, client);
129
+ }
130
+ return client.packageDocument(name, signal);
131
+ }
132
+ }
133
+ //# sourceMappingURL=configuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../src/registry/configuration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ import { type QuarantinedTarball } from "../cache/quarantine.js";
2
+ import type { BnpmPaths } from "../config/paths.js";
3
+ export declare function viewPackage(options: {
4
+ readonly spec: string;
5
+ readonly paths: BnpmPaths;
6
+ readonly registry?: URL;
7
+ readonly fetch?: typeof globalThis.fetch;
8
+ readonly signal?: AbortSignal;
9
+ }): Promise<Record<string, unknown>>;
10
+ export declare function searchPackages(options: {
11
+ readonly terms: readonly string[];
12
+ readonly paths: BnpmPaths;
13
+ readonly registry?: URL;
14
+ readonly fetch?: typeof globalThis.fetch;
15
+ readonly signal?: AbortSignal;
16
+ }): Promise<readonly Record<string, unknown>[]>;
17
+ export declare function listDistTags(options: {
18
+ readonly package: string;
19
+ readonly paths: BnpmPaths;
20
+ readonly registry?: URL;
21
+ readonly fetch?: typeof globalThis.fetch;
22
+ readonly signal?: AbortSignal;
23
+ }): Promise<Readonly<Record<string, string>>>;
24
+ export declare function mutateDistTag(options: {
25
+ readonly action: "add" | "remove";
26
+ readonly package: string;
27
+ readonly tag: string;
28
+ readonly paths: BnpmPaths;
29
+ readonly registry?: URL;
30
+ readonly fetch?: typeof globalThis.fetch;
31
+ readonly signal?: AbortSignal;
32
+ readonly otp?: string;
33
+ }): Promise<void>;
34
+ export declare function deprecatePackage(options: {
35
+ readonly package: string;
36
+ readonly message: string;
37
+ readonly paths: BnpmPaths;
38
+ readonly registry?: URL;
39
+ readonly fetch?: typeof globalThis.fetch;
40
+ readonly signal?: AbortSignal;
41
+ readonly otp?: string;
42
+ readonly dryRun?: boolean;
43
+ }): Promise<readonly string[]>;
44
+ export declare function unpublishPackage(options: {
45
+ readonly package: string;
46
+ readonly paths: BnpmPaths;
47
+ readonly registry?: URL;
48
+ readonly fetch?: typeof globalThis.fetch;
49
+ readonly signal?: AbortSignal;
50
+ readonly otp?: string;
51
+ readonly force?: boolean;
52
+ readonly dryRun?: boolean;
53
+ }): Promise<{
54
+ readonly name: string;
55
+ readonly version?: string;
56
+ readonly entirePackage: boolean;
57
+ }>;
58
+ interface RegistryMutationOptions {
59
+ readonly paths: BnpmPaths;
60
+ readonly registry?: URL;
61
+ readonly fetch?: typeof globalThis.fetch;
62
+ readonly signal?: AbortSignal;
63
+ readonly otp?: string;
64
+ }
65
+ export declare function packageAccess(options: RegistryMutationOptions & {
66
+ readonly package: string;
67
+ readonly action: "status" | "collaborators";
68
+ }): Promise<Readonly<Record<string, string>> | {
69
+ readonly public: boolean;
70
+ }>;
71
+ export declare function accessiblePackages(options: RegistryMutationOptions & {
72
+ readonly owner: string;
73
+ }): Promise<Readonly<Record<string, string>>>;
74
+ export declare function setPackageAccess(options: RegistryMutationOptions & {
75
+ readonly package: string;
76
+ readonly access?: "public" | "private";
77
+ readonly mfa?: "none" | "publish" | "automation";
78
+ }): Promise<void>;
79
+ export declare function mutateTeamAccess(options: RegistryMutationOptions & {
80
+ readonly package: string;
81
+ readonly team: string;
82
+ readonly permission?: "read-only" | "read-write";
83
+ }): Promise<void>;
84
+ export interface PackageOwner {
85
+ readonly name: string;
86
+ readonly email: string;
87
+ }
88
+ export declare function packageOwners(options: RegistryMutationOptions & {
89
+ readonly package: string;
90
+ }): Promise<readonly PackageOwner[]>;
91
+ export declare function mutatePackageOwner(options: RegistryMutationOptions & {
92
+ readonly package: string;
93
+ readonly user: string;
94
+ readonly action: "add" | "remove";
95
+ }): Promise<readonly PackageOwner[]>;
96
+ export declare function mutatePackageStar(options: RegistryMutationOptions & {
97
+ readonly package: string;
98
+ readonly user: string;
99
+ readonly starred: boolean;
100
+ }): Promise<void>;
101
+ export declare function starredPackages(options: RegistryMutationOptions & {
102
+ readonly user: string;
103
+ }): Promise<readonly string[]>;
104
+ export declare function organizationMembers(options: RegistryMutationOptions & {
105
+ readonly organization: string;
106
+ }): Promise<Readonly<Record<string, string>>>;
107
+ export declare function mutateOrganizationMember(options: RegistryMutationOptions & {
108
+ readonly organization: string;
109
+ readonly user: string;
110
+ readonly role?: "developer" | "admin" | "owner";
111
+ }): Promise<void>;
112
+ export declare function mutateRegistryTeam(options: RegistryMutationOptions & {
113
+ readonly action: "create" | "destroy" | "add" | "remove";
114
+ readonly entity: string;
115
+ readonly user?: string;
116
+ }): Promise<void>;
117
+ export declare function registryTeamEntries(options: RegistryMutationOptions & {
118
+ readonly entity: string;
119
+ }): Promise<readonly string[]>;
120
+ export declare function registryProfile(options: RegistryMutationOptions): Promise<Readonly<Record<string, unknown>>>;
121
+ export declare function setRegistryProfile(options: RegistryMutationOptions & {
122
+ readonly key: string;
123
+ readonly value: string;
124
+ }): Promise<Readonly<Record<string, unknown>>>;
125
+ export declare function mutateRegistryProfile(options: RegistryMutationOptions & {
126
+ readonly change: Readonly<Record<string, unknown>>;
127
+ readonly preserveWritable?: boolean;
128
+ }): Promise<Readonly<Record<string, unknown>>>;
129
+ export declare function stagedPackages(options: RegistryMutationOptions & {
130
+ readonly package?: string;
131
+ }): Promise<readonly Record<string, unknown>[]>;
132
+ export declare function stagedPackage(options: RegistryMutationOptions & {
133
+ readonly id: string;
134
+ }): Promise<Readonly<Record<string, unknown>>>;
135
+ export declare function downloadStagedPackageTarball(options: RegistryMutationOptions & {
136
+ readonly id: string;
137
+ }): Promise<QuarantinedTarball>;
138
+ export declare function mutateStagedPackage(options: RegistryMutationOptions & {
139
+ readonly id: string;
140
+ readonly action: "approve" | "reject";
141
+ }): Promise<void>;
142
+ export declare function packageTrust(options: RegistryMutationOptions & {
143
+ readonly package: string;
144
+ }): Promise<readonly Record<string, unknown>[]>;
145
+ export declare function revokePackageTrust(options: RegistryMutationOptions & {
146
+ readonly package: string;
147
+ readonly id: string;
148
+ readonly dryRun?: boolean;
149
+ }): Promise<void>;
150
+ export declare function createPackageTrust(options: RegistryMutationOptions & {
151
+ readonly package: string;
152
+ readonly configuration: Readonly<Record<string, unknown>>;
153
+ }): Promise<readonly Record<string, unknown>[]>;
154
+ export declare function pingRegistry(options: {
155
+ readonly paths: BnpmPaths;
156
+ readonly registry?: URL;
157
+ readonly fetch?: typeof globalThis.fetch;
158
+ readonly signal?: AbortSignal;
159
+ }): Promise<{
160
+ readonly registry: string;
161
+ readonly details: Readonly<Record<string, unknown>>;
162
+ }>;
163
+ export {};