@enbox/gitd 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 (502) hide show
  1. package/LICENSE +177 -0
  2. package/README.md +134 -0
  3. package/dist/esm/ci.js +76 -0
  4. package/dist/esm/ci.js.map +1 -0
  5. package/dist/esm/cli/agent.js +86 -0
  6. package/dist/esm/cli/agent.js.map +1 -0
  7. package/dist/esm/cli/commands/ci.js +278 -0
  8. package/dist/esm/cli/commands/ci.js.map +1 -0
  9. package/dist/esm/cli/commands/clone.js +77 -0
  10. package/dist/esm/cli/commands/clone.js.map +1 -0
  11. package/dist/esm/cli/commands/daemon.js +132 -0
  12. package/dist/esm/cli/commands/daemon.js.map +1 -0
  13. package/dist/esm/cli/commands/github-api.js +36 -0
  14. package/dist/esm/cli/commands/github-api.js.map +1 -0
  15. package/dist/esm/cli/commands/init.js +69 -0
  16. package/dist/esm/cli/commands/init.js.map +1 -0
  17. package/dist/esm/cli/commands/issue.js +293 -0
  18. package/dist/esm/cli/commands/issue.js.map +1 -0
  19. package/dist/esm/cli/commands/log.js +90 -0
  20. package/dist/esm/cli/commands/log.js.map +1 -0
  21. package/dist/esm/cli/commands/migrate.js +444 -0
  22. package/dist/esm/cli/commands/migrate.js.map +1 -0
  23. package/dist/esm/cli/commands/notification.js +141 -0
  24. package/dist/esm/cli/commands/notification.js.map +1 -0
  25. package/dist/esm/cli/commands/org.js +353 -0
  26. package/dist/esm/cli/commands/org.js.map +1 -0
  27. package/dist/esm/cli/commands/patch.js +375 -0
  28. package/dist/esm/cli/commands/patch.js.map +1 -0
  29. package/dist/esm/cli/commands/registry.js +501 -0
  30. package/dist/esm/cli/commands/registry.js.map +1 -0
  31. package/dist/esm/cli/commands/release.js +197 -0
  32. package/dist/esm/cli/commands/release.js.map +1 -0
  33. package/dist/esm/cli/commands/repo.js +148 -0
  34. package/dist/esm/cli/commands/repo.js.map +1 -0
  35. package/dist/esm/cli/commands/serve.js +148 -0
  36. package/dist/esm/cli/commands/serve.js.map +1 -0
  37. package/dist/esm/cli/commands/setup.js +92 -0
  38. package/dist/esm/cli/commands/setup.js.map +1 -0
  39. package/dist/esm/cli/commands/shim.js +75 -0
  40. package/dist/esm/cli/commands/shim.js.map +1 -0
  41. package/dist/esm/cli/commands/social.js +206 -0
  42. package/dist/esm/cli/commands/social.js.map +1 -0
  43. package/dist/esm/cli/commands/web.js +36 -0
  44. package/dist/esm/cli/commands/web.js.map +1 -0
  45. package/dist/esm/cli/commands/wiki.js +185 -0
  46. package/dist/esm/cli/commands/wiki.js.map +1 -0
  47. package/dist/esm/cli/flags.js +29 -0
  48. package/dist/esm/cli/flags.js.map +1 -0
  49. package/dist/esm/cli/main.js +331 -0
  50. package/dist/esm/cli/main.js.map +1 -0
  51. package/dist/esm/cli/repo-context.js +53 -0
  52. package/dist/esm/cli/repo-context.js.map +1 -0
  53. package/dist/esm/daemon/adapter.js +18 -0
  54. package/dist/esm/daemon/adapter.js.map +1 -0
  55. package/dist/esm/daemon/adapters/github.js +112 -0
  56. package/dist/esm/daemon/adapters/github.js.map +1 -0
  57. package/dist/esm/daemon/adapters/go.js +51 -0
  58. package/dist/esm/daemon/adapters/go.js.map +1 -0
  59. package/dist/esm/daemon/adapters/index.js +32 -0
  60. package/dist/esm/daemon/adapters/index.js.map +1 -0
  61. package/dist/esm/daemon/adapters/npm.js +51 -0
  62. package/dist/esm/daemon/adapters/npm.js.map +1 -0
  63. package/dist/esm/daemon/adapters/oci.js +62 -0
  64. package/dist/esm/daemon/adapters/oci.js.map +1 -0
  65. package/dist/esm/daemon/index.js +12 -0
  66. package/dist/esm/daemon/index.js.map +1 -0
  67. package/dist/esm/daemon/server.js +167 -0
  68. package/dist/esm/daemon/server.js.map +1 -0
  69. package/dist/esm/git-remote/credential-helper.js +106 -0
  70. package/dist/esm/git-remote/credential-helper.js.map +1 -0
  71. package/dist/esm/git-remote/credential-main.js +109 -0
  72. package/dist/esm/git-remote/credential-main.js.map +1 -0
  73. package/dist/esm/git-remote/index.js +10 -0
  74. package/dist/esm/git-remote/index.js.map +1 -0
  75. package/dist/esm/git-remote/main.js +78 -0
  76. package/dist/esm/git-remote/main.js.map +1 -0
  77. package/dist/esm/git-remote/parse-url.js +60 -0
  78. package/dist/esm/git-remote/parse-url.js.map +1 -0
  79. package/dist/esm/git-remote/resolve.js +175 -0
  80. package/dist/esm/git-remote/resolve.js.map +1 -0
  81. package/dist/esm/git-remote/service.js +82 -0
  82. package/dist/esm/git-remote/service.js.map +1 -0
  83. package/dist/esm/git-server/auth.js +211 -0
  84. package/dist/esm/git-server/auth.js.map +1 -0
  85. package/dist/esm/git-server/bundle-restore.js +180 -0
  86. package/dist/esm/git-server/bundle-restore.js.map +1 -0
  87. package/dist/esm/git-server/bundle-sync.js +233 -0
  88. package/dist/esm/git-server/bundle-sync.js.map +1 -0
  89. package/dist/esm/git-server/did-service.js +73 -0
  90. package/dist/esm/git-server/did-service.js.map +1 -0
  91. package/dist/esm/git-server/git-backend.js +186 -0
  92. package/dist/esm/git-server/git-backend.js.map +1 -0
  93. package/dist/esm/git-server/http-handler.js +295 -0
  94. package/dist/esm/git-server/http-handler.js.map +1 -0
  95. package/dist/esm/git-server/index.js +16 -0
  96. package/dist/esm/git-server/index.js.map +1 -0
  97. package/dist/esm/git-server/push-authorizer.js +62 -0
  98. package/dist/esm/git-server/push-authorizer.js.map +1 -0
  99. package/dist/esm/git-server/ref-sync.js +132 -0
  100. package/dist/esm/git-server/ref-sync.js.map +1 -0
  101. package/dist/esm/git-server/server.js +185 -0
  102. package/dist/esm/git-server/server.js.map +1 -0
  103. package/dist/esm/git-server/verify.js +109 -0
  104. package/dist/esm/git-server/verify.js.map +1 -0
  105. package/dist/esm/github-shim/helpers.js +273 -0
  106. package/dist/esm/github-shim/helpers.js.map +1 -0
  107. package/dist/esm/github-shim/index.js +13 -0
  108. package/dist/esm/github-shim/index.js.map +1 -0
  109. package/dist/esm/github-shim/issues.js +318 -0
  110. package/dist/esm/github-shim/issues.js.map +1 -0
  111. package/dist/esm/github-shim/pulls.js +423 -0
  112. package/dist/esm/github-shim/pulls.js.map +1 -0
  113. package/dist/esm/github-shim/releases.js +154 -0
  114. package/dist/esm/github-shim/releases.js.map +1 -0
  115. package/dist/esm/github-shim/repos.js +86 -0
  116. package/dist/esm/github-shim/repos.js.map +1 -0
  117. package/dist/esm/github-shim/server.js +351 -0
  118. package/dist/esm/github-shim/server.js.map +1 -0
  119. package/dist/esm/github-shim/users.js +61 -0
  120. package/dist/esm/github-shim/users.js.map +1 -0
  121. package/dist/esm/index.js +26 -0
  122. package/dist/esm/index.js.map +1 -0
  123. package/dist/esm/indexer/api.js +132 -0
  124. package/dist/esm/indexer/api.js.map +1 -0
  125. package/dist/esm/indexer/crawler.js +256 -0
  126. package/dist/esm/indexer/crawler.js.map +1 -0
  127. package/dist/esm/indexer/index.js +9 -0
  128. package/dist/esm/indexer/index.js.map +1 -0
  129. package/dist/esm/indexer/main.js +76 -0
  130. package/dist/esm/indexer/main.js.map +1 -0
  131. package/dist/esm/indexer/store.js +334 -0
  132. package/dist/esm/indexer/store.js.map +1 -0
  133. package/dist/esm/issues.js +133 -0
  134. package/dist/esm/issues.js.map +1 -0
  135. package/dist/esm/notifications.js +47 -0
  136. package/dist/esm/notifications.js.map +1 -0
  137. package/dist/esm/org.js +90 -0
  138. package/dist/esm/org.js.map +1 -0
  139. package/dist/esm/patches.js +136 -0
  140. package/dist/esm/patches.js.map +1 -0
  141. package/dist/esm/refs.js +54 -0
  142. package/dist/esm/refs.js.map +1 -0
  143. package/dist/esm/registry.js +81 -0
  144. package/dist/esm/registry.js.map +1 -0
  145. package/dist/esm/releases.js +78 -0
  146. package/dist/esm/releases.js.map +1 -0
  147. package/dist/esm/repo.js +150 -0
  148. package/dist/esm/repo.js.map +1 -0
  149. package/dist/esm/resolver/index.js +10 -0
  150. package/dist/esm/resolver/index.js.map +1 -0
  151. package/dist/esm/resolver/resolve.js +189 -0
  152. package/dist/esm/resolver/resolve.js.map +1 -0
  153. package/dist/esm/resolver/trust-chain.js +155 -0
  154. package/dist/esm/resolver/trust-chain.js.map +1 -0
  155. package/dist/esm/resolver/verify.js +186 -0
  156. package/dist/esm/resolver/verify.js.map +1 -0
  157. package/dist/esm/shims/go/index.js +9 -0
  158. package/dist/esm/shims/go/index.js.map +1 -0
  159. package/dist/esm/shims/go/proxy.js +275 -0
  160. package/dist/esm/shims/go/proxy.js.map +1 -0
  161. package/dist/esm/shims/go/server.js +70 -0
  162. package/dist/esm/shims/go/server.js.map +1 -0
  163. package/dist/esm/shims/index.js +15 -0
  164. package/dist/esm/shims/index.js.map +1 -0
  165. package/dist/esm/shims/npm/index.js +9 -0
  166. package/dist/esm/shims/npm/index.js.map +1 -0
  167. package/dist/esm/shims/npm/registry.js +234 -0
  168. package/dist/esm/shims/npm/registry.js.map +1 -0
  169. package/dist/esm/shims/npm/server.js +72 -0
  170. package/dist/esm/shims/npm/server.js.map +1 -0
  171. package/dist/esm/shims/oci/index.js +9 -0
  172. package/dist/esm/shims/oci/index.js.map +1 -0
  173. package/dist/esm/shims/oci/registry.js +276 -0
  174. package/dist/esm/shims/oci/registry.js.map +1 -0
  175. package/dist/esm/shims/oci/server.js +82 -0
  176. package/dist/esm/shims/oci/server.js.map +1 -0
  177. package/dist/esm/social.js +70 -0
  178. package/dist/esm/social.js.map +1 -0
  179. package/dist/esm/web/html.js +123 -0
  180. package/dist/esm/web/html.js.map +1 -0
  181. package/dist/esm/web/index.js +7 -0
  182. package/dist/esm/web/index.js.map +1 -0
  183. package/dist/esm/web/routes.js +420 -0
  184. package/dist/esm/web/routes.js.map +1 -0
  185. package/dist/esm/web/server.js +225 -0
  186. package/dist/esm/web/server.js.map +1 -0
  187. package/dist/esm/wiki.js +63 -0
  188. package/dist/esm/wiki.js.map +1 -0
  189. package/dist/types/ci.d.ts +203 -0
  190. package/dist/types/ci.d.ts.map +1 -0
  191. package/dist/types/cli/agent.d.ts +59 -0
  192. package/dist/types/cli/agent.d.ts.map +1 -0
  193. package/dist/types/cli/commands/ci.d.ts +16 -0
  194. package/dist/types/cli/commands/ci.d.ts.map +1 -0
  195. package/dist/types/cli/commands/clone.d.ts +13 -0
  196. package/dist/types/cli/commands/clone.d.ts.map +1 -0
  197. package/dist/types/cli/commands/daemon.d.ts +29 -0
  198. package/dist/types/cli/commands/daemon.d.ts.map +1 -0
  199. package/dist/types/cli/commands/github-api.d.ts +14 -0
  200. package/dist/types/cli/commands/github-api.d.ts.map +1 -0
  201. package/dist/types/cli/commands/init.d.ts +11 -0
  202. package/dist/types/cli/commands/init.d.ts.map +1 -0
  203. package/dist/types/cli/commands/issue.d.ts +16 -0
  204. package/dist/types/cli/commands/issue.d.ts.map +1 -0
  205. package/dist/types/cli/commands/log.d.ts +13 -0
  206. package/dist/types/cli/commands/log.d.ts.map +1 -0
  207. package/dist/types/cli/commands/migrate.d.ts +19 -0
  208. package/dist/types/cli/commands/migrate.d.ts.map +1 -0
  209. package/dist/types/cli/commands/notification.d.ts +16 -0
  210. package/dist/types/cli/commands/notification.d.ts.map +1 -0
  211. package/dist/types/cli/commands/org.d.ts +19 -0
  212. package/dist/types/cli/commands/org.d.ts.map +1 -0
  213. package/dist/types/cli/commands/patch.d.ts +17 -0
  214. package/dist/types/cli/commands/patch.d.ts.map +1 -0
  215. package/dist/types/cli/commands/registry.d.ts +25 -0
  216. package/dist/types/cli/commands/registry.d.ts.map +1 -0
  217. package/dist/types/cli/commands/release.d.ts +13 -0
  218. package/dist/types/cli/commands/release.d.ts.map +1 -0
  219. package/dist/types/cli/commands/repo.d.ts +15 -0
  220. package/dist/types/cli/commands/repo.d.ts.map +1 -0
  221. package/dist/types/cli/commands/serve.d.ts +22 -0
  222. package/dist/types/cli/commands/serve.d.ts.map +1 -0
  223. package/dist/types/cli/commands/setup.d.ts +16 -0
  224. package/dist/types/cli/commands/setup.d.ts.map +1 -0
  225. package/dist/types/cli/commands/shim.d.ts +16 -0
  226. package/dist/types/cli/commands/shim.d.ts.map +1 -0
  227. package/dist/types/cli/commands/social.d.ts +19 -0
  228. package/dist/types/cli/commands/social.d.ts.map +1 -0
  229. package/dist/types/cli/commands/web.d.ts +14 -0
  230. package/dist/types/cli/commands/web.d.ts.map +1 -0
  231. package/dist/types/cli/commands/wiki.d.ts +14 -0
  232. package/dist/types/cli/commands/wiki.d.ts.map +1 -0
  233. package/dist/types/cli/flags.d.ts +16 -0
  234. package/dist/types/cli/flags.d.ts.map +1 -0
  235. package/dist/types/cli/main.d.ts +69 -0
  236. package/dist/types/cli/main.d.ts.map +1 -0
  237. package/dist/types/cli/repo-context.d.ts +30 -0
  238. package/dist/types/cli/repo-context.d.ts.map +1 -0
  239. package/dist/types/daemon/adapter.d.ts +74 -0
  240. package/dist/types/daemon/adapter.d.ts.map +1 -0
  241. package/dist/types/daemon/adapters/github.d.ts +10 -0
  242. package/dist/types/daemon/adapters/github.d.ts.map +1 -0
  243. package/dist/types/daemon/adapters/go.d.ts +10 -0
  244. package/dist/types/daemon/adapters/go.d.ts.map +1 -0
  245. package/dist/types/daemon/adapters/index.d.ts +22 -0
  246. package/dist/types/daemon/adapters/index.d.ts.map +1 -0
  247. package/dist/types/daemon/adapters/npm.d.ts +10 -0
  248. package/dist/types/daemon/adapters/npm.d.ts.map +1 -0
  249. package/dist/types/daemon/adapters/oci.d.ts +10 -0
  250. package/dist/types/daemon/adapters/oci.d.ts.map +1 -0
  251. package/dist/types/daemon/index.d.ts +14 -0
  252. package/dist/types/daemon/index.d.ts.map +1 -0
  253. package/dist/types/daemon/server.d.ts +55 -0
  254. package/dist/types/daemon/server.d.ts.map +1 -0
  255. package/dist/types/git-remote/credential-helper.d.ts +49 -0
  256. package/dist/types/git-remote/credential-helper.d.ts.map +1 -0
  257. package/dist/types/git-remote/credential-main.d.ts +24 -0
  258. package/dist/types/git-remote/credential-main.d.ts.map +1 -0
  259. package/dist/types/git-remote/index.d.ts +10 -0
  260. package/dist/types/git-remote/index.d.ts.map +1 -0
  261. package/dist/types/git-remote/main.d.ts +23 -0
  262. package/dist/types/git-remote/main.d.ts.map +1 -0
  263. package/dist/types/git-remote/parse-url.d.ts +32 -0
  264. package/dist/types/git-remote/parse-url.d.ts.map +1 -0
  265. package/dist/types/git-remote/resolve.d.ts +30 -0
  266. package/dist/types/git-remote/resolve.d.ts.map +1 -0
  267. package/dist/types/git-remote/service.d.ts +75 -0
  268. package/dist/types/git-remote/service.d.ts.map +1 -0
  269. package/dist/types/git-server/auth.d.ts +129 -0
  270. package/dist/types/git-server/auth.d.ts.map +1 -0
  271. package/dist/types/git-server/bundle-restore.d.ts +48 -0
  272. package/dist/types/git-server/bundle-restore.d.ts.map +1 -0
  273. package/dist/types/git-server/bundle-sync.d.ts +90 -0
  274. package/dist/types/git-server/bundle-sync.d.ts.map +1 -0
  275. package/dist/types/git-server/did-service.d.ts +26 -0
  276. package/dist/types/git-server/did-service.d.ts.map +1 -0
  277. package/dist/types/git-server/git-backend.d.ts +84 -0
  278. package/dist/types/git-server/git-backend.d.ts.map +1 -0
  279. package/dist/types/git-server/http-handler.d.ts +73 -0
  280. package/dist/types/git-server/http-handler.d.ts.map +1 -0
  281. package/dist/types/git-server/index.d.ts +16 -0
  282. package/dist/types/git-server/index.d.ts.map +1 -0
  283. package/dist/types/git-server/push-authorizer.d.ts +38 -0
  284. package/dist/types/git-server/push-authorizer.d.ts.map +1 -0
  285. package/dist/types/git-server/ref-sync.d.ts +52 -0
  286. package/dist/types/git-server/ref-sync.d.ts.map +1 -0
  287. package/dist/types/git-server/server.d.ts +70 -0
  288. package/dist/types/git-server/server.d.ts.map +1 -0
  289. package/dist/types/git-server/verify.d.ts +12 -0
  290. package/dist/types/git-server/verify.d.ts.map +1 -0
  291. package/dist/types/github-shim/helpers.d.ts +108 -0
  292. package/dist/types/github-shim/helpers.d.ts.map +1 -0
  293. package/dist/types/github-shim/index.d.ts +15 -0
  294. package/dist/types/github-shim/index.d.ts.map +1 -0
  295. package/dist/types/github-shim/issues.d.ts +24 -0
  296. package/dist/types/github-shim/issues.d.ts.map +1 -0
  297. package/dist/types/github-shim/pulls.d.ts +31 -0
  298. package/dist/types/github-shim/pulls.d.ts.map +1 -0
  299. package/dist/types/github-shim/releases.d.ts +18 -0
  300. package/dist/types/github-shim/releases.d.ts.map +1 -0
  301. package/dist/types/github-shim/repos.d.ts +21 -0
  302. package/dist/types/github-shim/repos.d.ts.map +1 -0
  303. package/dist/types/github-shim/server.d.ts +53 -0
  304. package/dist/types/github-shim/server.d.ts.map +1 -0
  305. package/dist/types/github-shim/users.d.ts +17 -0
  306. package/dist/types/github-shim/users.d.ts.map +1 -0
  307. package/dist/types/index.d.ts +26 -0
  308. package/dist/types/index.d.ts.map +1 -0
  309. package/dist/types/indexer/api.d.ts +32 -0
  310. package/dist/types/indexer/api.d.ts.map +1 -0
  311. package/dist/types/indexer/crawler.d.ts +72 -0
  312. package/dist/types/indexer/crawler.d.ts.map +1 -0
  313. package/dist/types/indexer/index.d.ts +12 -0
  314. package/dist/types/indexer/index.d.ts.map +1 -0
  315. package/dist/types/indexer/main.d.ts +21 -0
  316. package/dist/types/indexer/main.d.ts.map +1 -0
  317. package/dist/types/indexer/store.d.ts +168 -0
  318. package/dist/types/indexer/store.d.ts.map +1 -0
  319. package/dist/types/issues.d.ts +395 -0
  320. package/dist/types/issues.d.ts.map +1 -0
  321. package/dist/types/notifications.d.ts +93 -0
  322. package/dist/types/notifications.d.ts.map +1 -0
  323. package/dist/types/org.d.ts +232 -0
  324. package/dist/types/org.d.ts.map +1 -0
  325. package/dist/types/patches.d.ts +410 -0
  326. package/dist/types/patches.d.ts.map +1 -0
  327. package/dist/types/refs.d.ts +114 -0
  328. package/dist/types/refs.d.ts.map +1 -0
  329. package/dist/types/registry.d.ts +212 -0
  330. package/dist/types/registry.d.ts.map +1 -0
  331. package/dist/types/releases.d.ts +204 -0
  332. package/dist/types/releases.d.ts.map +1 -0
  333. package/dist/types/repo.d.ts +450 -0
  334. package/dist/types/repo.d.ts.map +1 -0
  335. package/dist/types/resolver/index.d.ts +13 -0
  336. package/dist/types/resolver/index.d.ts.map +1 -0
  337. package/dist/types/resolver/resolve.d.ts +80 -0
  338. package/dist/types/resolver/resolve.d.ts.map +1 -0
  339. package/dist/types/resolver/trust-chain.d.ts +54 -0
  340. package/dist/types/resolver/trust-chain.d.ts.map +1 -0
  341. package/dist/types/resolver/verify.d.ts +62 -0
  342. package/dist/types/resolver/verify.d.ts.map +1 -0
  343. package/dist/types/shims/go/index.d.ts +11 -0
  344. package/dist/types/shims/go/index.d.ts.map +1 -0
  345. package/dist/types/shims/go/proxy.d.ts +51 -0
  346. package/dist/types/shims/go/proxy.d.ts.map +1 -0
  347. package/dist/types/shims/go/server.d.ts +23 -0
  348. package/dist/types/shims/go/server.d.ts.map +1 -0
  349. package/dist/types/shims/index.d.ts +18 -0
  350. package/dist/types/shims/index.d.ts.map +1 -0
  351. package/dist/types/shims/npm/index.d.ts +11 -0
  352. package/dist/types/shims/npm/index.d.ts.map +1 -0
  353. package/dist/types/shims/npm/registry.d.ts +46 -0
  354. package/dist/types/shims/npm/registry.d.ts.map +1 -0
  355. package/dist/types/shims/npm/server.d.ts +23 -0
  356. package/dist/types/shims/npm/server.d.ts.map +1 -0
  357. package/dist/types/shims/oci/index.d.ts +11 -0
  358. package/dist/types/shims/oci/index.d.ts.map +1 -0
  359. package/dist/types/shims/oci/registry.d.ts +56 -0
  360. package/dist/types/shims/oci/registry.d.ts.map +1 -0
  361. package/dist/types/shims/oci/server.d.ts +23 -0
  362. package/dist/types/shims/oci/server.d.ts.map +1 -0
  363. package/dist/types/social.d.ts +162 -0
  364. package/dist/types/social.d.ts.map +1 -0
  365. package/dist/types/web/html.d.ts +23 -0
  366. package/dist/types/web/html.d.ts.map +1 -0
  367. package/dist/types/web/index.d.ts +8 -0
  368. package/dist/types/web/index.d.ts.map +1 -0
  369. package/dist/types/web/routes.d.ts +21 -0
  370. package/dist/types/web/routes.d.ts.map +1 -0
  371. package/dist/types/web/server.d.ts +38 -0
  372. package/dist/types/web/server.d.ts.map +1 -0
  373. package/dist/types/wiki.d.ts +143 -0
  374. package/dist/types/wiki.d.ts.map +1 -0
  375. package/package.json +108 -0
  376. package/schemas/ci/check-run.json +23 -0
  377. package/schemas/ci/check-suite.json +23 -0
  378. package/schemas/issues/assignment.json +17 -0
  379. package/schemas/issues/comment.json +14 -0
  380. package/schemas/issues/issue.json +20 -0
  381. package/schemas/issues/label.json +17 -0
  382. package/schemas/issues/reaction.json +14 -0
  383. package/schemas/issues/status-change.json +14 -0
  384. package/schemas/notifications/notification.json +20 -0
  385. package/schemas/org/org-member.json +17 -0
  386. package/schemas/org/org.json +26 -0
  387. package/schemas/org/team-member.json +17 -0
  388. package/schemas/org/team.json +17 -0
  389. package/schemas/patches/merge-result.json +14 -0
  390. package/schemas/patches/patch-status-change.json +14 -0
  391. package/schemas/patches/patch.json +20 -0
  392. package/schemas/patches/review-comment.json +17 -0
  393. package/schemas/patches/review.json +14 -0
  394. package/schemas/patches/revision.json +30 -0
  395. package/schemas/refs/git-ref.json +32 -0
  396. package/schemas/registry/attestation.json +23 -0
  397. package/schemas/registry/package-version.json +23 -0
  398. package/schemas/registry/package.json +32 -0
  399. package/schemas/releases/release.json +17 -0
  400. package/schemas/repo/collaborator.json +17 -0
  401. package/schemas/repo/repo.json +35 -0
  402. package/schemas/repo/settings.json +39 -0
  403. package/schemas/repo/topic.json +14 -0
  404. package/schemas/repo/webhook.json +26 -0
  405. package/schemas/social/activity.json +23 -0
  406. package/schemas/social/follow.json +17 -0
  407. package/schemas/social/star.json +20 -0
  408. package/schemas/wiki/wiki-history.json +20 -0
  409. package/schemas/wiki/wiki-page.json +17 -0
  410. package/src/ci.ts +118 -0
  411. package/src/cli/agent.ts +117 -0
  412. package/src/cli/commands/ci.ts +300 -0
  413. package/src/cli/commands/clone.ts +78 -0
  414. package/src/cli/commands/daemon.ts +129 -0
  415. package/src/cli/commands/github-api.ts +30 -0
  416. package/src/cli/commands/init.ts +69 -0
  417. package/src/cli/commands/issue.ts +321 -0
  418. package/src/cli/commands/log.ts +106 -0
  419. package/src/cli/commands/migrate.ts +525 -0
  420. package/src/cli/commands/notification.ts +148 -0
  421. package/src/cli/commands/org.ts +381 -0
  422. package/src/cli/commands/patch.ts +413 -0
  423. package/src/cli/commands/registry.ts +542 -0
  424. package/src/cli/commands/release.ts +189 -0
  425. package/src/cli/commands/repo.ts +160 -0
  426. package/src/cli/commands/serve.ts +153 -0
  427. package/src/cli/commands/setup.ts +97 -0
  428. package/src/cli/commands/shim.ts +79 -0
  429. package/src/cli/commands/social.ts +221 -0
  430. package/src/cli/commands/web.ts +30 -0
  431. package/src/cli/commands/wiki.ts +199 -0
  432. package/src/cli/flags.ts +28 -0
  433. package/src/cli/main.ts +350 -0
  434. package/src/cli/repo-context.ts +55 -0
  435. package/src/daemon/adapter.ts +95 -0
  436. package/src/daemon/adapters/github.ts +86 -0
  437. package/src/daemon/adapters/go.ts +47 -0
  438. package/src/daemon/adapters/index.ts +36 -0
  439. package/src/daemon/adapters/npm.ts +47 -0
  440. package/src/daemon/adapters/oci.ts +59 -0
  441. package/src/daemon/index.ts +16 -0
  442. package/src/daemon/server.ts +204 -0
  443. package/src/git-remote/credential-helper.ts +114 -0
  444. package/src/git-remote/credential-main.ts +118 -0
  445. package/src/git-remote/index.ts +10 -0
  446. package/src/git-remote/main.ts +74 -0
  447. package/src/git-remote/parse-url.ts +81 -0
  448. package/src/git-remote/resolve.ts +207 -0
  449. package/src/git-remote/service.ts +126 -0
  450. package/src/git-server/auth.ts +308 -0
  451. package/src/git-server/bundle-restore.ts +217 -0
  452. package/src/git-server/bundle-sync.ts +300 -0
  453. package/src/git-server/did-service.ts +77 -0
  454. package/src/git-server/git-backend.ts +222 -0
  455. package/src/git-server/http-handler.ts +386 -0
  456. package/src/git-server/index.ts +16 -0
  457. package/src/git-server/push-authorizer.ts +77 -0
  458. package/src/git-server/ref-sync.ts +166 -0
  459. package/src/git-server/server.ts +236 -0
  460. package/src/git-server/verify.ts +116 -0
  461. package/src/github-shim/helpers.ts +311 -0
  462. package/src/github-shim/index.ts +35 -0
  463. package/src/github-shim/issues.ts +389 -0
  464. package/src/github-shim/pulls.ts +500 -0
  465. package/src/github-shim/releases.ts +185 -0
  466. package/src/github-shim/repos.ts +95 -0
  467. package/src/github-shim/server.ts +334 -0
  468. package/src/github-shim/users.ts +63 -0
  469. package/src/index.ts +26 -0
  470. package/src/indexer/api.ts +162 -0
  471. package/src/indexer/crawler.ts +290 -0
  472. package/src/indexer/index.ts +22 -0
  473. package/src/indexer/main.ts +83 -0
  474. package/src/indexer/store.ts +408 -0
  475. package/src/issues.ts +200 -0
  476. package/src/notifications.ts +80 -0
  477. package/src/org.ts +147 -0
  478. package/src/patches.ts +203 -0
  479. package/src/refs.ts +94 -0
  480. package/src/registry.ts +132 -0
  481. package/src/releases.ts +124 -0
  482. package/src/repo.ts +234 -0
  483. package/src/resolver/index.ts +42 -0
  484. package/src/resolver/resolve.ts +244 -0
  485. package/src/resolver/trust-chain.ts +217 -0
  486. package/src/resolver/verify.ts +237 -0
  487. package/src/shims/go/index.ts +14 -0
  488. package/src/shims/go/proxy.ts +336 -0
  489. package/src/shims/go/server.ts +82 -0
  490. package/src/shims/index.ts +20 -0
  491. package/src/shims/npm/index.ts +14 -0
  492. package/src/shims/npm/registry.ts +288 -0
  493. package/src/shims/npm/server.ts +84 -0
  494. package/src/shims/oci/index.ts +14 -0
  495. package/src/shims/oci/registry.ts +334 -0
  496. package/src/shims/oci/server.ts +94 -0
  497. package/src/social.ts +116 -0
  498. package/src/web/html.ts +120 -0
  499. package/src/web/index.ts +8 -0
  500. package/src/web/routes.ts +449 -0
  501. package/src/web/server.ts +256 -0
  502. package/src/wiki.ts +102 -0
@@ -0,0 +1,275 @@
1
+ /**
2
+ * Go module proxy shim — translates GOPROXY protocol requests into
3
+ * DWN queries via the resolver module.
4
+ *
5
+ * Implements the GOPROXY protocol (https://go.dev/ref/mod#goproxy-protocol)
6
+ * for DID-scoped Go modules. Module paths use the format:
7
+ * `did.enbox.org/did:<method>:<id>/<module>`
8
+ *
9
+ * The `did.enbox.org` prefix is a virtual domain that the shim
10
+ * intercepts. The DID and module name are extracted from the path.
11
+ *
12
+ * Endpoints:
13
+ * GET /{module}/@v/list List available versions
14
+ * GET /{module}/@v/{ver}.info Version info (JSON: version + time)
15
+ * GET /{module}/@v/{ver}.mod go.mod file
16
+ * GET /{module}/@v/{ver}.zip Module zip archive
17
+ * GET /{module}/@latest Latest version info
18
+ *
19
+ * @module
20
+ */
21
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
+ return new (P || (P = Promise))(function (resolve, reject) {
24
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
28
+ });
29
+ };
30
+ import { fetchTarball, listVersions, resolvePackage, resolveVersion, } from '../../resolver/resolve.js';
31
+ // ---------------------------------------------------------------------------
32
+ // Helpers
33
+ // ---------------------------------------------------------------------------
34
+ /** Standard JSON headers. */
35
+ function jsonHeaders() {
36
+ return {
37
+ 'Content-Type': 'application/json',
38
+ 'Access-Control-Allow-Origin': '*',
39
+ };
40
+ }
41
+ /** Build a 404 response. */
42
+ function notFound(message) {
43
+ return {
44
+ status: 404,
45
+ headers: { 'Content-Type': 'text/plain', 'Access-Control-Allow-Origin': '*' },
46
+ body: message,
47
+ };
48
+ }
49
+ /** Build a 410 Gone response (GOPROXY convention for not available). */
50
+ function gone(message) {
51
+ return {
52
+ status: 410,
53
+ headers: { 'Content-Type': 'text/plain', 'Access-Control-Allow-Origin': '*' },
54
+ body: message,
55
+ };
56
+ }
57
+ /**
58
+ * Parse a Go module path into DID + module name.
59
+ *
60
+ * Go module paths are URL-encoded in the GOPROXY protocol — uppercase
61
+ * letters become `!` + lowercase (Go module proxy encoding).
62
+ *
63
+ * Format: `did.enbox.org/did:<method>:<id>/<module>`
64
+ *
65
+ * The `did.enbox.org/` prefix is stripped by the time it reaches us
66
+ * (it's part of the GOPROXY URL, not the request path). The path
67
+ * starts with `did:<method>:<id>/<module>`.
68
+ */
69
+ export function parseGoModulePath(modulePath) {
70
+ // Decode Go module proxy encoding: !x → X
71
+ const decoded = modulePath.replace(/!([a-z])/g, (_, c) => c.toUpperCase());
72
+ // Match: did:<method>:<id>/<module-name>
73
+ const match = decoded.match(/^(did:[a-z0-9]+:[a-zA-Z0-9._:%-]+)\/([a-zA-Z0-9._/-]+)/);
74
+ if (!match) {
75
+ return null;
76
+ }
77
+ return { did: match[1], name: match[2] };
78
+ }
79
+ /**
80
+ * Go version info JSON: `{ "Version": "v1.0.0", "Time": "2024-01-01T…" }`
81
+ */
82
+ function versionInfo(semver, dateCreated) {
83
+ // Go expects `v`-prefixed semver.
84
+ const goVer = semver.startsWith('v') ? semver : `v${semver}`;
85
+ return JSON.stringify({
86
+ Version: goVer,
87
+ Time: new Date(dateCreated).toISOString(),
88
+ });
89
+ }
90
+ /**
91
+ * Strip `v` prefix from a Go version string for DWN semver queries.
92
+ */
93
+ function stripV(version) {
94
+ return version.startsWith('v') ? version.slice(1) : version;
95
+ }
96
+ /**
97
+ * Generate a minimal `go.mod` file for a DID-scoped module.
98
+ */
99
+ function generateGoMod(did, name, deps) {
100
+ const modulePath = `did.enbox.org/${did}/${name}`;
101
+ const lines = [`module ${modulePath}`, '', 'go 1.21', ''];
102
+ const depEntries = Object.entries(deps);
103
+ if (depEntries.length > 0) {
104
+ lines.push('require (');
105
+ for (const [dep, ver] of depEntries) {
106
+ // DID-scoped deps: did:dht:abc/utils → did.enbox.org/did:dht:abc/utils
107
+ const goPath = dep.startsWith('did:') ? `did.enbox.org/${dep}` : dep;
108
+ const goVer = ver.startsWith('v') ? ver : `v${ver}`;
109
+ lines.push(`\t${goPath} ${goVer}`);
110
+ }
111
+ lines.push(')');
112
+ lines.push('');
113
+ }
114
+ return lines.join('\n');
115
+ }
116
+ // ---------------------------------------------------------------------------
117
+ // Handlers
118
+ // ---------------------------------------------------------------------------
119
+ /** GET /{module}/@v/list — list available versions. */
120
+ function handleVersionList(ctx, did, name) {
121
+ return __awaiter(this, void 0, void 0, function* () {
122
+ const pkg = yield resolvePackage(ctx, did, name, 'go');
123
+ if (!pkg) {
124
+ return gone(`module not found: did.enbox.org/${did}/${name}`);
125
+ }
126
+ const versions = yield listVersions(ctx, did, pkg.contextId);
127
+ const versionLines = versions
128
+ .filter((v) => !v.deprecated)
129
+ .map((v) => v.semver.startsWith('v') ? v.semver : `v${v.semver}`)
130
+ .join('\n');
131
+ return {
132
+ status: 200,
133
+ headers: { 'Content-Type': 'text/plain', 'Access-Control-Allow-Origin': '*' },
134
+ body: versionLines,
135
+ };
136
+ });
137
+ }
138
+ /** GET /{module}/@v/{ver}.info — version metadata JSON. */
139
+ function handleVersionInfo(ctx, did, name, version) {
140
+ return __awaiter(this, void 0, void 0, function* () {
141
+ const pkg = yield resolvePackage(ctx, did, name, 'go');
142
+ if (!pkg) {
143
+ return gone(`module not found: did.enbox.org/${did}/${name}`);
144
+ }
145
+ const ver = yield resolveVersion(ctx, did, pkg.contextId, stripV(version));
146
+ if (!ver) {
147
+ return gone(`version not found: ${version}`);
148
+ }
149
+ return {
150
+ status: 200,
151
+ headers: jsonHeaders(),
152
+ body: versionInfo(ver.semver, ver.dateCreated),
153
+ };
154
+ });
155
+ }
156
+ /** GET /{module}/@v/{ver}.mod — go.mod content. */
157
+ function handleGoMod(ctx, did, name, version) {
158
+ return __awaiter(this, void 0, void 0, function* () {
159
+ const pkg = yield resolvePackage(ctx, did, name, 'go');
160
+ if (!pkg) {
161
+ return gone(`module not found: did.enbox.org/${did}/${name}`);
162
+ }
163
+ const ver = yield resolveVersion(ctx, did, pkg.contextId, stripV(version));
164
+ if (!ver) {
165
+ return gone(`version not found: ${version}`);
166
+ }
167
+ return {
168
+ status: 200,
169
+ headers: { 'Content-Type': 'text/plain', 'Access-Control-Allow-Origin': '*' },
170
+ body: generateGoMod(did, name, ver.dependencies),
171
+ };
172
+ });
173
+ }
174
+ /** GET /{module}/@v/{ver}.zip — module zip archive (tarball from DWN). */
175
+ function handleModuleZip(ctx, did, name, version) {
176
+ return __awaiter(this, void 0, void 0, function* () {
177
+ const pkg = yield resolvePackage(ctx, did, name, 'go');
178
+ if (!pkg) {
179
+ return gone(`module not found: did.enbox.org/${did}/${name}`);
180
+ }
181
+ const ver = yield resolveVersion(ctx, did, pkg.contextId, stripV(version));
182
+ if (!ver) {
183
+ return gone(`version not found: ${version}`);
184
+ }
185
+ const tarball = yield fetchTarball(ctx, did, ver.contextId);
186
+ if (!tarball) {
187
+ return gone(`archive not found for ${version}`);
188
+ }
189
+ return {
190
+ status: 200,
191
+ headers: {
192
+ 'Content-Type': 'application/zip',
193
+ 'Content-Length': String(tarball.byteLength),
194
+ 'Access-Control-Allow-Origin': '*',
195
+ },
196
+ body: tarball,
197
+ };
198
+ });
199
+ }
200
+ /** GET /{module}/@latest — latest version info. */
201
+ function handleLatest(ctx, did, name) {
202
+ return __awaiter(this, void 0, void 0, function* () {
203
+ var _a;
204
+ const pkg = yield resolvePackage(ctx, did, name, 'go');
205
+ if (!pkg) {
206
+ return gone(`module not found: did.enbox.org/${did}/${name}`);
207
+ }
208
+ const versions = yield listVersions(ctx, did, pkg.contextId);
209
+ const latest = (_a = versions.find((v) => !v.deprecated)) !== null && _a !== void 0 ? _a : versions[0];
210
+ if (!latest) {
211
+ return gone('no versions available');
212
+ }
213
+ return {
214
+ status: 200,
215
+ headers: jsonHeaders(),
216
+ body: versionInfo(latest.semver, latest.dateCreated),
217
+ };
218
+ });
219
+ }
220
+ // ---------------------------------------------------------------------------
221
+ // Router
222
+ // ---------------------------------------------------------------------------
223
+ /**
224
+ * Route a Go proxy request to the appropriate handler.
225
+ *
226
+ * Exported for testing — tests can call this directly without starting
227
+ * an HTTP server.
228
+ */
229
+ export function handleGoProxyRequest(ctx, url) {
230
+ return __awaiter(this, void 0, void 0, function* () {
231
+ const path = url.pathname.replace(/^\/+/, '');
232
+ // Split the path to find /@v/ or /@latest.
233
+ const atVIdx = path.indexOf('/@v/');
234
+ const atLatestIdx = path.indexOf('/@latest');
235
+ // --- /@latest --------------------------------------------------------
236
+ if (atLatestIdx !== -1) {
237
+ const modulePath = path.slice(0, atLatestIdx);
238
+ const parsed = parseGoModulePath(modulePath);
239
+ if (!parsed) {
240
+ return notFound('Invalid module path');
241
+ }
242
+ return handleLatest(ctx, parsed.did, parsed.name);
243
+ }
244
+ // --- /@v/list --------------------------------------------------------
245
+ if (atVIdx !== -1) {
246
+ const modulePath = path.slice(0, atVIdx);
247
+ const rest = path.slice(atVIdx + 4); // after "/@v/"
248
+ const parsed = parseGoModulePath(modulePath);
249
+ if (!parsed) {
250
+ return notFound('Invalid module path');
251
+ }
252
+ if (rest === 'list') {
253
+ return handleVersionList(ctx, parsed.did, parsed.name);
254
+ }
255
+ // --- /@v/{ver}.info ------------------------------------------------
256
+ if (rest.endsWith('.info')) {
257
+ const version = rest.slice(0, -5);
258
+ return handleVersionInfo(ctx, parsed.did, parsed.name, version);
259
+ }
260
+ // --- /@v/{ver}.mod -------------------------------------------------
261
+ if (rest.endsWith('.mod')) {
262
+ const version = rest.slice(0, -4);
263
+ return handleGoMod(ctx, parsed.did, parsed.name, version);
264
+ }
265
+ // --- /@v/{ver}.zip -------------------------------------------------
266
+ if (rest.endsWith('.zip')) {
267
+ const version = rest.slice(0, -4);
268
+ return handleModuleZip(ctx, parsed.did, parsed.name, version);
269
+ }
270
+ return notFound(`Unknown @v endpoint: ${rest}`);
271
+ }
272
+ return notFound('Not a Go module proxy request. Expected /@v/ or /@latest in path.');
273
+ });
274
+ }
275
+ //# sourceMappingURL=proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../../src/shims/go/proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;;;;;;;;AAIH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,GACf,MAAM,2BAA2B,CAAC;AAanC,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,6BAA6B;AAC7B,SAAS,WAAW;IAClB,OAAO;QACL,cAAc,EAAkB,kBAAkB;QAClD,6BAA6B,EAAG,GAAG;KACpC,CAAC;AACJ,CAAC;AAED,4BAA4B;AAC5B,SAAS,QAAQ,CAAC,OAAe;IAC/B,OAAO;QACL,MAAM,EAAI,GAAG;QACb,OAAO,EAAG,EAAE,cAAc,EAAE,YAAY,EAAE,6BAA6B,EAAE,GAAG,EAAE;QAC9E,IAAI,EAAM,OAAO;KAClB,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,SAAS,IAAI,CAAC,OAAe;IAC3B,OAAO;QACL,MAAM,EAAI,GAAG;QACb,OAAO,EAAG,EAAE,cAAc,EAAE,YAAY,EAAE,6BAA6B,EAAE,GAAG,EAAE;QAC9E,IAAI,EAAM,OAAO;KAClB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAkB;IAElB,0CAA0C;IAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAEnF,yCAAyC;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CACzB,wDAAwD,CACzD,CAAC;IAEF,IAAI,CAAC,KAAK,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAE5B,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,MAAc,EAAE,WAAmB;IACtD,kCAAkC;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;IAC7D,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,OAAO,EAAG,KAAK;QACf,IAAI,EAAM,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE;KAC9C,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,MAAM,CAAC,OAAe;IAC7B,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,GAAW,EAAE,IAAY,EAAE,IAA4B;IAC5E,MAAM,UAAU,GAAG,iBAAiB,GAAG,IAAI,IAAI,EAAE,CAAC;IAClD,MAAM,KAAK,GAAG,CAAC,UAAU,UAAU,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAE1D,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC;YACpC,uEAAuE;YACvE,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACrE,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,uDAAuD;AACvD,SAAe,iBAAiB,CAC9B,GAAiB,EACjB,GAAW,EACX,IAAY;;QAEZ,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,mCAAmC,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,QAAQ;aAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;aAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;aAChE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO;YACL,MAAM,EAAI,GAAG;YACb,OAAO,EAAG,EAAE,cAAc,EAAE,YAAY,EAAE,6BAA6B,EAAE,GAAG,EAAE;YAC9E,IAAI,EAAM,YAAY;SACvB,CAAC;IACJ,CAAC;CAAA;AAED,2DAA2D;AAC3D,SAAe,iBAAiB,CAC9B,GAAiB,EACjB,GAAW,EACX,IAAY,EACZ,OAAe;;QAEf,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,mCAAmC,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO;YACL,MAAM,EAAI,GAAG;YACb,OAAO,EAAG,WAAW,EAAE;YACvB,IAAI,EAAM,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC;SACnD,CAAC;IACJ,CAAC;CAAA;AAED,mDAAmD;AACnD,SAAe,WAAW,CACxB,GAAiB,EACjB,GAAW,EACX,IAAY,EACZ,OAAe;;QAEf,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,mCAAmC,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO;YACL,MAAM,EAAI,GAAG;YACb,OAAO,EAAG,EAAE,cAAc,EAAE,YAAY,EAAE,6BAA6B,EAAE,GAAG,EAAE;YAC9E,IAAI,EAAM,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC;SACrD,CAAC;IACJ,CAAC;CAAA;AAED,0EAA0E;AAC1E,SAAe,eAAe,CAC5B,GAAiB,EACjB,GAAW,EACX,IAAY,EACZ,OAAe;;QAEf,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,mCAAmC,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,OAAO;YACL,MAAM,EAAI,GAAG;YACb,OAAO,EAAG;gBACR,cAAc,EAAkB,iBAAiB;gBACjD,gBAAgB,EAAgB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC1D,6BAA6B,EAAG,GAAG;aACpC;YACD,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,CAAC;CAAA;AAED,mDAAmD;AACnD,SAAe,YAAY,CACzB,GAAiB,EACjB,GAAW,EACX,IAAY;;;QAEZ,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,mCAAmC,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAA,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,mCAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACvC,CAAC;QAED,OAAO;YACL,MAAM,EAAI,GAAG;YACb,OAAO,EAAG,WAAW,EAAE;YACvB,IAAI,EAAM,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;SACzD,CAAC;IACJ,CAAC;CAAA;AAED,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,UAAgB,oBAAoB,CACxC,GAAiB,EACjB,GAAQ;;QAER,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAE9C,2CAA2C;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE7C,wEAAwE;QACxE,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;gBAAC,OAAO,QAAQ,CAAC,qBAAqB,CAAC,CAAC;YAAC,CAAC;YACxD,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QAED,wEAAwE;QACxE,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe;YACpD,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;gBAAC,OAAO,QAAQ,CAAC,qBAAqB,CAAC,CAAC;YAAC,CAAC;YAExD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,OAAO,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACzD,CAAC;YAED,sEAAsE;YACtE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAClC,OAAO,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAClE,CAAC;YAED,sEAAsE;YACtE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAClC,OAAO,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5D,CAAC;YAED,sEAAsE;YACtE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAClC,OAAO,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAChE,CAAC;YAED,OAAO,QAAQ,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,QAAQ,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;CAAA"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Go module proxy shim — HTTP server.
3
+ *
4
+ * Starts a local GOPROXY-compatible server that resolves DID-scoped
5
+ * Go modules from DWN records.
6
+ *
7
+ * Usage:
8
+ * gitd shim go [--port 4874]
9
+ *
10
+ * Then:
11
+ * GOPROXY=http://localhost:4874 go get did.enbox.org/did:dht:abc123/my-mod@v1.0.0
12
+ *
13
+ * @module
14
+ */
15
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
16
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17
+ return new (P || (P = Promise))(function (resolve, reject) {
18
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
19
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
20
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
21
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
22
+ });
23
+ };
24
+ import { createServer } from 'node:http';
25
+ import { handleGoProxyRequest } from './proxy.js';
26
+ // ---------------------------------------------------------------------------
27
+ // Server
28
+ // ---------------------------------------------------------------------------
29
+ /** Start the Go module proxy shim server. Returns the server instance. */
30
+ export function startGoShim(options) {
31
+ const { ctx, port } = options;
32
+ const server = createServer((req, res) => __awaiter(this, void 0, void 0, function* () {
33
+ var _a;
34
+ // CORS preflight.
35
+ if (req.method === 'OPTIONS') {
36
+ res.writeHead(204, {
37
+ 'Access-Control-Allow-Origin': '*',
38
+ 'Access-Control-Allow-Methods': 'GET, OPTIONS',
39
+ 'Access-Control-Allow-Headers': 'Authorization, Accept',
40
+ 'Access-Control-Max-Age': '86400',
41
+ });
42
+ res.end();
43
+ return;
44
+ }
45
+ if (req.method !== 'GET') {
46
+ res.writeHead(405, { 'Content-Type': 'text/plain' });
47
+ res.end('Method not allowed. This is a read-only Go module proxy.');
48
+ return;
49
+ }
50
+ try {
51
+ const url = new URL((_a = req.url) !== null && _a !== void 0 ? _a : '/', `http://localhost:${port}`);
52
+ const result = yield handleGoProxyRequest(ctx, url);
53
+ res.writeHead(result.status, result.headers);
54
+ res.end(result.body);
55
+ }
56
+ catch (err) {
57
+ console.error(`[go-shim] Error: ${err.message}`);
58
+ res.writeHead(500, { 'Content-Type': 'text/plain' });
59
+ res.end('Internal server error');
60
+ }
61
+ }));
62
+ server.listen(port, () => {
63
+ console.log(`[go-shim] Go module proxy running at http://localhost:${port}`);
64
+ console.log('[go-shim] Usage:');
65
+ console.log(` GOPROXY=http://localhost:${port} go get did.enbox.org/did:dht:<id>/<module>@v1.0.0`);
66
+ console.log('');
67
+ });
68
+ return server;
69
+ }
70
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../src/shims/go/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;;;;;;;;;;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAWlD,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,0EAA0E;AAC1E,MAAM,UAAU,WAAW,CAAC,OAAsB;IAChD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAE9B,MAAM,MAAM,GAAG,YAAY,CAAC,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;;QAC7C,kBAAkB;QAClB,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACjB,6BAA6B,EAAI,GAAG;gBACpC,8BAA8B,EAAG,cAAc;gBAC/C,8BAA8B,EAAG,uBAAuB;gBACxD,wBAAwB,EAAS,OAAO;aACzC,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACzB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;YACrD,GAAG,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;YACpE,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAA,GAAG,CAAC,GAAG,mCAAI,GAAG,EAAE,oBAAoB,IAAI,EAAE,CAAC,CAAC;YAChE,MAAM,MAAM,GAAoB,MAAM,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAErE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7C,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,oBAAqB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;YACrD,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAA,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACvB,OAAO,CAAC,GAAG,CAAC,yDAAyD,IAAI,EAAE,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,oDAAoD,CAAC,CAAC;QACpG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Package manager and container registry shims — local proxy servers
3
+ * that translate native tool protocols into DWN queries.
4
+ *
5
+ * Each shim serves the native HTTP API of its ecosystem tool:
6
+ * - npm: npm registry API (for npm, bun, yarn, pnpm)
7
+ * - go: GOPROXY protocol (for go get)
8
+ * - oci: OCI Distribution Spec v2 (for docker, podman)
9
+ *
10
+ * @module
11
+ */
12
+ export { handleNpmRequest, parseNpmScope, startNpmShim } from './npm/index.js';
13
+ export { handleGoProxyRequest, parseGoModulePath, startGoShim } from './go/index.js';
14
+ export { handleOciRequest, parseOciName, startOciShim } from './oci/index.js';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shims/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG/E,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGrF,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * npm registry shim module — DID-scoped package resolution via the
3
+ * standard npm registry HTTP API.
4
+ *
5
+ * @module
6
+ */
7
+ export { handleNpmRequest, parseNpmScope } from './registry.js';
8
+ export { startNpmShim } from './server.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shims/npm/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAIhE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,234 @@
1
+ /**
2
+ * npm registry shim — translates npm registry HTTP API requests into
3
+ * DWN queries via the resolver module.
4
+ *
5
+ * Serves the subset of the npm registry API needed by `npm install`,
6
+ * `bun install`, `yarn add`, and `pnpm add`. Packages are addressed
7
+ * using DID-scoped npm scopes: `@did:dht:abc123/my-pkg`.
8
+ *
9
+ * URL mapping:
10
+ * GET /@did:*{@/:name}/:name Package metadata (all versions)
11
+ * GET /@did:*{@/:name}/:name/:version Specific version metadata
12
+ * GET /@did:*{@/:name}/:name/-/:file.tgz Tarball download
13
+ *
14
+ * The DID is extracted from the npm scope. For example:
15
+ * `@did:dht:abc123/my-pkg` → DID `did:dht:abc123`, package `my-pkg`
16
+ *
17
+ * @module
18
+ */
19
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
20
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
21
+ return new (P || (P = Promise))(function (resolve, reject) {
22
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
23
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
24
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
25
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
26
+ });
27
+ };
28
+ import { fetchTarball, listVersions, resolvePackage, resolveVersion, } from '../../resolver/resolve.js';
29
+ // ---------------------------------------------------------------------------
30
+ // Helpers
31
+ // ---------------------------------------------------------------------------
32
+ /** Standard JSON headers for npm registry responses. */
33
+ function jsonHeaders() {
34
+ return {
35
+ 'Content-Type': 'application/json',
36
+ 'Access-Control-Allow-Origin': '*',
37
+ };
38
+ }
39
+ /** Build a 404 response. */
40
+ function notFound(message) {
41
+ return {
42
+ status: 404,
43
+ headers: jsonHeaders(),
44
+ body: JSON.stringify({ error: message }),
45
+ };
46
+ }
47
+ /**
48
+ * Parse an npm-scoped package name into DID + package name.
49
+ *
50
+ * Supports two scope formats for DID methods with colons:
51
+ * - URL-encoded: `@did%3Adht%3Aabc123/pkg` (npm's default encoding)
52
+ * - Slash-separated: `@did:dht:abc123/pkg` (direct browser access)
53
+ *
54
+ * Returns `null` if the scope doesn't contain a valid DID.
55
+ */
56
+ export function parseNpmScope(path) {
57
+ // Decode percent-encoding first (%3A → :, %2F → /)
58
+ const decoded = decodeURIComponent(path);
59
+ // Match: /@did:<method>:<id>/<package-name>
60
+ const match = decoded.match(/^\/@(did:[a-z0-9]+:[a-zA-Z0-9._:%-]+)\/([a-zA-Z0-9._-]+)/);
61
+ if (!match) {
62
+ return null;
63
+ }
64
+ return { did: match[1], name: match[2] };
65
+ }
66
+ /**
67
+ * Build a Packument (npm package document) for a DID-scoped package.
68
+ *
69
+ * This is the standard npm registry response for `GET /:package`.
70
+ * Contains metadata for all published versions.
71
+ */
72
+ function buildPackument(ctx, did, name) {
73
+ return __awaiter(this, void 0, void 0, function* () {
74
+ var _a;
75
+ const pkg = yield resolvePackage(ctx, did, name, 'npm');
76
+ if (!pkg) {
77
+ return notFound(`Package not found: @${did}/${name}`);
78
+ }
79
+ const versions = yield listVersions(ctx, did, pkg.contextId);
80
+ if (versions.length === 0) {
81
+ return notFound(`No versions found for @${did}/${name}`);
82
+ }
83
+ // Build versions map.
84
+ const versionsMap = {};
85
+ const distTags = {};
86
+ const times = { created: versions[versions.length - 1].dateCreated };
87
+ for (const v of versions) {
88
+ const scopedName = `@${did}/${name}`;
89
+ const tarballUrl = `/-/${scopedName}/-/${name}-${v.semver}.tgz`;
90
+ versionsMap[v.semver] = {
91
+ name: scopedName,
92
+ version: v.semver,
93
+ dist: {
94
+ tarball: tarballUrl,
95
+ },
96
+ dependencies: v.dependencies,
97
+ deprecated: v.deprecated ? `Version ${v.semver} is deprecated` : undefined,
98
+ _dwn: {
99
+ publisherDid: did,
100
+ contextId: v.contextId,
101
+ author: v.author,
102
+ },
103
+ };
104
+ times[v.semver] = v.dateCreated;
105
+ }
106
+ // Latest = first non-deprecated, or just first.
107
+ const latest = (_a = versions.find((v) => !v.deprecated)) !== null && _a !== void 0 ? _a : versions[0];
108
+ distTags.latest = latest.semver;
109
+ const packument = {
110
+ _id: `@${did}/${name}`,
111
+ name: `@${did}/${name}`,
112
+ description: pkg.description,
113
+ 'dist-tags': distTags,
114
+ versions: versionsMap,
115
+ time: times,
116
+ _dwn: {
117
+ publisherDid: did,
118
+ ecosystem: pkg.ecosystem,
119
+ contextId: pkg.contextId,
120
+ },
121
+ };
122
+ return {
123
+ status: 200,
124
+ headers: jsonHeaders(),
125
+ body: JSON.stringify(packument),
126
+ };
127
+ });
128
+ }
129
+ /**
130
+ * Build a version-specific metadata response.
131
+ *
132
+ * This is the npm registry response for `GET /:package/:version`.
133
+ */
134
+ function buildVersionMeta(ctx, did, name, semver) {
135
+ return __awaiter(this, void 0, void 0, function* () {
136
+ const pkg = yield resolvePackage(ctx, did, name, 'npm');
137
+ if (!pkg) {
138
+ return notFound(`Package not found: @${did}/${name}`);
139
+ }
140
+ const ver = yield resolveVersion(ctx, did, pkg.contextId, semver);
141
+ if (!ver) {
142
+ return notFound(`Version not found: @${did}/${name}@${semver}`);
143
+ }
144
+ const scopedName = `@${did}/${name}`;
145
+ const tarballUrl = `/-/${scopedName}/-/${name}-${ver.semver}.tgz`;
146
+ const body = {
147
+ name: scopedName,
148
+ version: ver.semver,
149
+ dist: { tarball: tarballUrl },
150
+ dependencies: ver.dependencies,
151
+ deprecated: ver.deprecated ? `Version ${ver.semver} is deprecated` : undefined,
152
+ _dwn: {
153
+ publisherDid: did,
154
+ contextId: ver.contextId,
155
+ author: ver.author,
156
+ },
157
+ };
158
+ return {
159
+ status: 200,
160
+ headers: jsonHeaders(),
161
+ body: JSON.stringify(body),
162
+ };
163
+ });
164
+ }
165
+ /**
166
+ * Serve a tarball download.
167
+ *
168
+ * npm fetches tarballs from the `dist.tarball` URL returned in the
169
+ * packument. We resolve the version and fetch the tarball from the DWN.
170
+ */
171
+ function serveTarball(ctx, did, name, filename) {
172
+ return __awaiter(this, void 0, void 0, function* () {
173
+ // Parse version from filename: "name-1.0.0.tgz" → "1.0.0"
174
+ const prefix = `${name}-`;
175
+ if (!filename.startsWith(prefix) || !filename.endsWith('.tgz')) {
176
+ return notFound(`Invalid tarball filename: ${filename}`);
177
+ }
178
+ const semver = filename.slice(prefix.length, -4);
179
+ const pkg = yield resolvePackage(ctx, did, name, 'npm');
180
+ if (!pkg) {
181
+ return notFound(`Package not found: @${did}/${name}`);
182
+ }
183
+ const ver = yield resolveVersion(ctx, did, pkg.contextId, semver);
184
+ if (!ver) {
185
+ return notFound(`Version not found: @${did}/${name}@${semver}`);
186
+ }
187
+ const tarball = yield fetchTarball(ctx, did, ver.contextId);
188
+ if (!tarball) {
189
+ return notFound(`Tarball not found for @${did}/${name}@${semver}`);
190
+ }
191
+ return {
192
+ status: 200,
193
+ headers: {
194
+ 'Content-Type': 'application/octet-stream',
195
+ 'Content-Length': String(tarball.byteLength),
196
+ 'Access-Control-Allow-Origin': '*',
197
+ },
198
+ body: tarball,
199
+ };
200
+ });
201
+ }
202
+ // ---------------------------------------------------------------------------
203
+ // Router
204
+ // ---------------------------------------------------------------------------
205
+ /**
206
+ * Route an npm registry request to the appropriate handler.
207
+ *
208
+ * Exported for testing — tests can call this directly without starting
209
+ * an HTTP server.
210
+ */
211
+ export function handleNpmRequest(ctx, url) {
212
+ return __awaiter(this, void 0, void 0, function* () {
213
+ const path = url.pathname;
214
+ // --- Tarball download: /-/@did:…/name/-/name-ver.tgz -----------------
215
+ const tarballMatch = path.match(/^\/-\/@(did:[a-z0-9]+:[a-zA-Z0-9._:%-]+)\/([a-zA-Z0-9._-]+)\/-\/(.+\.tgz)$/);
216
+ if (tarballMatch) {
217
+ return serveTarball(ctx, tarballMatch[1], tarballMatch[2], tarballMatch[3]);
218
+ }
219
+ // --- Scoped package with version: /@did:…/name/version ---------------
220
+ const scope = parseNpmScope(path);
221
+ if (!scope) {
222
+ return notFound('Not a DID-scoped package. Use @did:<method>:<id>/<name>');
223
+ }
224
+ // Check for trailing version segment: /@did:…/name/1.0.0
225
+ const afterScope = path.slice(path.indexOf(scope.name) + scope.name.length);
226
+ const versionMatch = afterScope.match(/^\/([^/]+)$/);
227
+ if (versionMatch) {
228
+ return buildVersionMeta(ctx, scope.did, scope.name, versionMatch[1]);
229
+ }
230
+ // --- Scoped package metadata (all versions): /@did:…/name ------------
231
+ return buildPackument(ctx, scope.did, scope.name);
232
+ });
233
+ }
234
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/shims/npm/registry.ts"],"names":[],"mappings":"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"}