@socketsecurity/lib 0.0.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (555) hide show
  1. package/CHANGELOG.md +270 -0
  2. package/LICENSE +21 -0
  3. package/README.md +80 -2
  4. package/data/extensions.json +28 -0
  5. package/dist/abort.d.ts +11 -0
  6. package/dist/abort.js +62 -0
  7. package/dist/abort.js.map +7 -0
  8. package/dist/agent.d.ts +102 -0
  9. package/dist/agent.js +288 -0
  10. package/dist/agent.js.map +7 -0
  11. package/dist/ansi.d.ts +29 -0
  12. package/dist/ansi.js +62 -0
  13. package/dist/ansi.js.map +7 -0
  14. package/dist/argv/flags.d.ts +199 -0
  15. package/dist/argv/flags.js +284 -0
  16. package/dist/argv/flags.js.map +7 -0
  17. package/dist/argv/parse.d.ts +76 -0
  18. package/dist/argv/parse.js +173 -0
  19. package/dist/argv/parse.js.map +7 -0
  20. package/dist/arrays.d.ts +29 -0
  21. package/dist/arrays.js +87 -0
  22. package/dist/arrays.js.map +7 -0
  23. package/dist/bin.d.ts +50 -0
  24. package/dist/bin.js +405 -0
  25. package/dist/bin.js.map +7 -0
  26. package/dist/cacache.d.ts +86 -0
  27. package/dist/cacache.js +140 -0
  28. package/dist/cacache.js.map +7 -0
  29. package/dist/cache-with-ttl.d.ts +133 -0
  30. package/dist/cache-with-ttl.js +225 -0
  31. package/dist/cache-with-ttl.js.map +7 -0
  32. package/dist/constants/agents.d.ts +37 -0
  33. package/dist/constants/agents.js +128 -0
  34. package/dist/constants/agents.js.map +7 -0
  35. package/dist/constants/core.d.ts +22 -0
  36. package/dist/constants/core.js +59 -0
  37. package/dist/constants/core.js.map +7 -0
  38. package/dist/constants/encoding.d.ts +13 -0
  39. package/dist/constants/encoding.js +50 -0
  40. package/dist/constants/encoding.js.map +7 -0
  41. package/dist/constants/github.d.ts +7 -0
  42. package/dist/constants/github.js +32 -0
  43. package/dist/constants/github.js.map +7 -0
  44. package/dist/constants/licenses.d.ts +8 -0
  45. package/dist/constants/licenses.js +68 -0
  46. package/dist/constants/licenses.js.map +7 -0
  47. package/dist/constants/node.d.ts +29 -0
  48. package/dist/constants/node.js +173 -0
  49. package/dist/constants/node.js.map +7 -0
  50. package/dist/constants/packages.d.ts +19 -0
  51. package/dist/constants/packages.js +130 -0
  52. package/dist/constants/packages.js.map +7 -0
  53. package/dist/constants/paths.d.ts +51 -0
  54. package/dist/constants/paths.js +152 -0
  55. package/dist/constants/paths.js.map +7 -0
  56. package/dist/constants/platform.d.ts +6 -0
  57. package/dist/constants/platform.js +43 -0
  58. package/dist/constants/platform.js.map +7 -0
  59. package/dist/constants/process.d.ts +7 -0
  60. package/dist/constants/process.js +54 -0
  61. package/dist/constants/process.js.map +7 -0
  62. package/dist/constants/socket.d.ts +29 -0
  63. package/dist/constants/socket.js +83 -0
  64. package/dist/constants/socket.js.map +7 -0
  65. package/dist/constants/testing.d.ts +9 -0
  66. package/dist/constants/testing.js +38 -0
  67. package/dist/constants/testing.js.map +7 -0
  68. package/dist/constants/time.d.ts +11 -0
  69. package/dist/constants/time.js +41 -0
  70. package/dist/constants/time.js.map +7 -0
  71. package/dist/constants/typescript.d.ts +6 -0
  72. package/dist/constants/typescript.js +56 -0
  73. package/dist/constants/typescript.js.map +7 -0
  74. package/dist/cover/code.d.ts +8 -0
  75. package/dist/cover/code.js +137 -0
  76. package/dist/cover/code.js.map +7 -0
  77. package/dist/cover/formatters.d.ts +9 -0
  78. package/dist/cover/formatters.js +103 -0
  79. package/dist/cover/formatters.js.map +7 -0
  80. package/dist/cover/type.d.ts +7 -0
  81. package/dist/cover/type.js +65 -0
  82. package/dist/cover/type.js.map +7 -0
  83. package/dist/cover/types.d.ts +70 -0
  84. package/dist/cover/types.js +17 -0
  85. package/dist/cover/types.js.map +7 -0
  86. package/dist/debug.d.ts +99 -0
  87. package/dist/debug.js +345 -0
  88. package/dist/debug.js.map +7 -0
  89. package/dist/dlx-binary.d.ts +49 -0
  90. package/dist/dlx-binary.js +261 -0
  91. package/dist/dlx-binary.js.map +7 -0
  92. package/dist/dlx.d.ts +64 -0
  93. package/dist/dlx.js +168 -0
  94. package/dist/dlx.js.map +7 -0
  95. package/dist/download-lock.d.ts +48 -0
  96. package/dist/download-lock.js +139 -0
  97. package/dist/download-lock.js.map +7 -0
  98. package/dist/effects/pulse-frames.d.ts +23 -0
  99. package/dist/effects/pulse-frames.js +66 -0
  100. package/dist/effects/pulse-frames.js.map +7 -0
  101. package/dist/effects/text-shimmer.d.ts +37 -0
  102. package/dist/effects/text-shimmer.js +175 -0
  103. package/dist/effects/text-shimmer.js.map +7 -0
  104. package/dist/effects/types.d.ts +41 -0
  105. package/dist/effects/types.js +17 -0
  106. package/dist/effects/types.js.map +7 -0
  107. package/dist/effects/ultra.d.ts +16 -0
  108. package/dist/effects/ultra.js +63 -0
  109. package/dist/effects/ultra.js.map +7 -0
  110. package/dist/env/appdata.d.ts +1 -0
  111. package/dist/env/appdata.js +30 -0
  112. package/dist/env/appdata.js.map +7 -0
  113. package/dist/env/ci.d.ts +1 -0
  114. package/dist/env/ci.js +31 -0
  115. package/dist/env/ci.js.map +7 -0
  116. package/dist/env/comspec.d.ts +1 -0
  117. package/dist/env/comspec.js +30 -0
  118. package/dist/env/comspec.js.map +7 -0
  119. package/dist/env/debug.d.ts +1 -0
  120. package/dist/env/debug.js +30 -0
  121. package/dist/env/debug.js.map +7 -0
  122. package/dist/env/getters.d.ts +40 -0
  123. package/dist/env/getters.js +283 -0
  124. package/dist/env/getters.js.map +7 -0
  125. package/dist/env/github-api-url.d.ts +1 -0
  126. package/dist/env/github-api-url.js +30 -0
  127. package/dist/env/github-api-url.js.map +7 -0
  128. package/dist/env/github-base-ref.d.ts +1 -0
  129. package/dist/env/github-base-ref.js +30 -0
  130. package/dist/env/github-base-ref.js.map +7 -0
  131. package/dist/env/github-ref-name.d.ts +1 -0
  132. package/dist/env/github-ref-name.js +30 -0
  133. package/dist/env/github-ref-name.js.map +7 -0
  134. package/dist/env/github-ref-type.d.ts +1 -0
  135. package/dist/env/github-ref-type.js +30 -0
  136. package/dist/env/github-ref-type.js.map +7 -0
  137. package/dist/env/github-repository.d.ts +1 -0
  138. package/dist/env/github-repository.js +30 -0
  139. package/dist/env/github-repository.js.map +7 -0
  140. package/dist/env/github-server-url.d.ts +1 -0
  141. package/dist/env/github-server-url.js +30 -0
  142. package/dist/env/github-server-url.js.map +7 -0
  143. package/dist/env/github-token.d.ts +1 -0
  144. package/dist/env/github-token.js +30 -0
  145. package/dist/env/github-token.js.map +7 -0
  146. package/dist/env/helpers.d.ts +6 -0
  147. package/dist/env/helpers.js +49 -0
  148. package/dist/env/helpers.js.map +7 -0
  149. package/dist/env/home.d.ts +1 -0
  150. package/dist/env/home.js +30 -0
  151. package/dist/env/home.js.map +7 -0
  152. package/dist/env/jest-worker-id.d.ts +1 -0
  153. package/dist/env/jest-worker-id.js +30 -0
  154. package/dist/env/jest-worker-id.js.map +7 -0
  155. package/dist/env/lang.d.ts +1 -0
  156. package/dist/env/lang.js +30 -0
  157. package/dist/env/lang.js.map +7 -0
  158. package/dist/env/lc-all.d.ts +1 -0
  159. package/dist/env/lc-all.js +30 -0
  160. package/dist/env/lc-all.js.map +7 -0
  161. package/dist/env/lc-messages.d.ts +1 -0
  162. package/dist/env/lc-messages.js +30 -0
  163. package/dist/env/lc-messages.js.map +7 -0
  164. package/dist/env/localappdata.d.ts +1 -0
  165. package/dist/env/localappdata.js +30 -0
  166. package/dist/env/localappdata.js.map +7 -0
  167. package/dist/env/node-auth-token.d.ts +1 -0
  168. package/dist/env/node-auth-token.js +30 -0
  169. package/dist/env/node-auth-token.js.map +7 -0
  170. package/dist/env/node-env.d.ts +1 -0
  171. package/dist/env/node-env.js +30 -0
  172. package/dist/env/node-env.js.map +7 -0
  173. package/dist/env/npm-config-registry.d.ts +1 -0
  174. package/dist/env/npm-config-registry.js +30 -0
  175. package/dist/env/npm-config-registry.js.map +7 -0
  176. package/dist/env/npm-config-user-agent.d.ts +1 -0
  177. package/dist/env/npm-config-user-agent.js +30 -0
  178. package/dist/env/npm-config-user-agent.js.map +7 -0
  179. package/dist/env/npm-lifecycle-event.d.ts +1 -0
  180. package/dist/env/npm-lifecycle-event.js +30 -0
  181. package/dist/env/npm-lifecycle-event.js.map +7 -0
  182. package/dist/env/npm-registry.d.ts +1 -0
  183. package/dist/env/npm-registry.js +30 -0
  184. package/dist/env/npm-registry.js.map +7 -0
  185. package/dist/env/npm-token.d.ts +1 -0
  186. package/dist/env/npm-token.js +30 -0
  187. package/dist/env/npm-token.js.map +7 -0
  188. package/dist/env/path.d.ts +1 -0
  189. package/dist/env/path.js +30 -0
  190. package/dist/env/path.js.map +7 -0
  191. package/dist/env/pre-commit.d.ts +1 -0
  192. package/dist/env/pre-commit.js +31 -0
  193. package/dist/env/pre-commit.js.map +7 -0
  194. package/dist/env/shell.d.ts +1 -0
  195. package/dist/env/shell.js +30 -0
  196. package/dist/env/shell.js.map +7 -0
  197. package/dist/env/socket-accept-risks.d.ts +1 -0
  198. package/dist/env/socket-accept-risks.js +31 -0
  199. package/dist/env/socket-accept-risks.js.map +7 -0
  200. package/dist/env/socket-api-base-url.d.ts +1 -0
  201. package/dist/env/socket-api-base-url.js +30 -0
  202. package/dist/env/socket-api-base-url.js.map +7 -0
  203. package/dist/env/socket-api-proxy.d.ts +1 -0
  204. package/dist/env/socket-api-proxy.js +30 -0
  205. package/dist/env/socket-api-proxy.js.map +7 -0
  206. package/dist/env/socket-api-timeout.d.ts +1 -0
  207. package/dist/env/socket-api-timeout.js +31 -0
  208. package/dist/env/socket-api-timeout.js.map +7 -0
  209. package/dist/env/socket-api-token.d.ts +1 -0
  210. package/dist/env/socket-api-token.js +30 -0
  211. package/dist/env/socket-api-token.js.map +7 -0
  212. package/dist/env/socket-cacache-dir.d.ts +1 -0
  213. package/dist/env/socket-cacache-dir.js +30 -0
  214. package/dist/env/socket-cacache-dir.js.map +7 -0
  215. package/dist/env/socket-cli-accept-risks.d.ts +1 -0
  216. package/dist/env/socket-cli-accept-risks.js +33 -0
  217. package/dist/env/socket-cli-accept-risks.js.map +7 -0
  218. package/dist/env/socket-cli-api-base-url.d.ts +1 -0
  219. package/dist/env/socket-cli-api-base-url.js +30 -0
  220. package/dist/env/socket-cli-api-base-url.js.map +7 -0
  221. package/dist/env/socket-cli-api-proxy.d.ts +1 -0
  222. package/dist/env/socket-cli-api-proxy.js +30 -0
  223. package/dist/env/socket-cli-api-proxy.js.map +7 -0
  224. package/dist/env/socket-cli-api-timeout.d.ts +1 -0
  225. package/dist/env/socket-cli-api-timeout.js +31 -0
  226. package/dist/env/socket-cli-api-timeout.js.map +7 -0
  227. package/dist/env/socket-cli-api-token.d.ts +1 -0
  228. package/dist/env/socket-cli-api-token.js +30 -0
  229. package/dist/env/socket-cli-api-token.js.map +7 -0
  230. package/dist/env/socket-cli-config.d.ts +1 -0
  231. package/dist/env/socket-cli-config.js +30 -0
  232. package/dist/env/socket-cli-config.js.map +7 -0
  233. package/dist/env/socket-cli-fix.d.ts +1 -0
  234. package/dist/env/socket-cli-fix.js +30 -0
  235. package/dist/env/socket-cli-fix.js.map +7 -0
  236. package/dist/env/socket-cli-no-api-token.d.ts +1 -0
  237. package/dist/env/socket-cli-no-api-token.js +33 -0
  238. package/dist/env/socket-cli-no-api-token.js.map +7 -0
  239. package/dist/env/socket-cli-optimize.d.ts +1 -0
  240. package/dist/env/socket-cli-optimize.js +31 -0
  241. package/dist/env/socket-cli-optimize.js.map +7 -0
  242. package/dist/env/socket-cli-org-slug.d.ts +1 -0
  243. package/dist/env/socket-cli-org-slug.js +30 -0
  244. package/dist/env/socket-cli-org-slug.js.map +7 -0
  245. package/dist/env/socket-cli-shadow-accept-risks.d.ts +1 -0
  246. package/dist/env/socket-cli-shadow-accept-risks.js +33 -0
  247. package/dist/env/socket-cli-shadow-accept-risks.js.map +7 -0
  248. package/dist/env/socket-cli-shadow-api-token.d.ts +1 -0
  249. package/dist/env/socket-cli-shadow-api-token.js +30 -0
  250. package/dist/env/socket-cli-shadow-api-token.js.map +7 -0
  251. package/dist/env/socket-cli-shadow-bin.d.ts +1 -0
  252. package/dist/env/socket-cli-shadow-bin.js +30 -0
  253. package/dist/env/socket-cli-shadow-bin.js.map +7 -0
  254. package/dist/env/socket-cli-shadow-progress.d.ts +1 -0
  255. package/dist/env/socket-cli-shadow-progress.js +33 -0
  256. package/dist/env/socket-cli-shadow-progress.js.map +7 -0
  257. package/dist/env/socket-cli-shadow-silent.d.ts +1 -0
  258. package/dist/env/socket-cli-shadow-silent.js +33 -0
  259. package/dist/env/socket-cli-shadow-silent.js.map +7 -0
  260. package/dist/env/socket-cli-view-all-risks.d.ts +1 -0
  261. package/dist/env/socket-cli-view-all-risks.js +33 -0
  262. package/dist/env/socket-cli-view-all-risks.js.map +7 -0
  263. package/dist/env/socket-config.d.ts +1 -0
  264. package/dist/env/socket-config.js +30 -0
  265. package/dist/env/socket-config.js.map +7 -0
  266. package/dist/env/socket-debug.d.ts +1 -0
  267. package/dist/env/socket-debug.js +30 -0
  268. package/dist/env/socket-debug.js.map +7 -0
  269. package/dist/env/socket-home.d.ts +1 -0
  270. package/dist/env/socket-home.js +30 -0
  271. package/dist/env/socket-home.js.map +7 -0
  272. package/dist/env/socket-no-api-token.d.ts +1 -0
  273. package/dist/env/socket-no-api-token.js +31 -0
  274. package/dist/env/socket-no-api-token.js.map +7 -0
  275. package/dist/env/socket-npm-registry.d.ts +1 -0
  276. package/dist/env/socket-npm-registry.js +30 -0
  277. package/dist/env/socket-npm-registry.js.map +7 -0
  278. package/dist/env/socket-org-slug.d.ts +1 -0
  279. package/dist/env/socket-org-slug.js +30 -0
  280. package/dist/env/socket-org-slug.js.map +7 -0
  281. package/dist/env/socket-registry-url.d.ts +1 -0
  282. package/dist/env/socket-registry-url.js +30 -0
  283. package/dist/env/socket-registry-url.js.map +7 -0
  284. package/dist/env/socket-view-all-risks.d.ts +1 -0
  285. package/dist/env/socket-view-all-risks.js +31 -0
  286. package/dist/env/socket-view-all-risks.js.map +7 -0
  287. package/dist/env/temp.d.ts +1 -0
  288. package/dist/env/temp.js +30 -0
  289. package/dist/env/temp.js.map +7 -0
  290. package/dist/env/term.d.ts +1 -0
  291. package/dist/env/term.js +30 -0
  292. package/dist/env/term.js.map +7 -0
  293. package/dist/env/tmp.d.ts +1 -0
  294. package/dist/env/tmp.js +30 -0
  295. package/dist/env/tmp.js.map +7 -0
  296. package/dist/env/tmpdir.d.ts +1 -0
  297. package/dist/env/tmpdir.js +30 -0
  298. package/dist/env/tmpdir.js.map +7 -0
  299. package/dist/env/userprofile.d.ts +1 -0
  300. package/dist/env/userprofile.js +30 -0
  301. package/dist/env/userprofile.js.map +7 -0
  302. package/dist/env/vitest.d.ts +1 -0
  303. package/dist/env/vitest.js +31 -0
  304. package/dist/env/vitest.js.map +7 -0
  305. package/dist/env/xdg-cache-home.d.ts +1 -0
  306. package/dist/env/xdg-cache-home.js +30 -0
  307. package/dist/env/xdg-cache-home.js.map +7 -0
  308. package/dist/env/xdg-config-home.d.ts +1 -0
  309. package/dist/env/xdg-config-home.js +30 -0
  310. package/dist/env/xdg-config-home.js.map +7 -0
  311. package/dist/env/xdg-data-home.d.ts +1 -0
  312. package/dist/env/xdg-data-home.js +30 -0
  313. package/dist/env/xdg-data-home.js.map +7 -0
  314. package/dist/env.d.ts +15 -0
  315. package/dist/env.js +63 -0
  316. package/dist/env.js.map +7 -0
  317. package/dist/external/@inquirer/checkbox.js +4 -0
  318. package/dist/external/@inquirer/confirm.js +22 -0
  319. package/dist/external/@inquirer/core.js +4 -0
  320. package/dist/external/@inquirer/input.js +1 -0
  321. package/dist/external/@inquirer/password.js +1 -0
  322. package/dist/external/@inquirer/prompts.js +4 -0
  323. package/dist/external/@inquirer/search.js +1 -0
  324. package/dist/external/@inquirer/select.js +25 -0
  325. package/dist/external/@npmcli/package-json/index.js +1 -0
  326. package/dist/external/@npmcli/package-json/lib/read-package.js +1 -0
  327. package/dist/external/@npmcli/package-json/lib/sort.js +1 -0
  328. package/dist/external/@npmcli/promise-spawn.js +5 -0
  329. package/dist/external/@socketregistry/is-unicode-supported.d.ts +2 -0
  330. package/dist/external/@socketregistry/is-unicode-supported.js +5 -0
  331. package/dist/external/@socketregistry/packageurl-js.js +34 -0
  332. package/dist/external/@socketregistry/yocto-spinner.d.ts +12 -0
  333. package/dist/external/@socketregistry/yocto-spinner.js +8 -0
  334. package/dist/external/@yarnpkg/extensions.d.ts +5 -0
  335. package/dist/external/@yarnpkg/extensions.js +5 -0
  336. package/dist/external/cacache.d.ts +93 -0
  337. package/dist/external/cacache.js +32 -0
  338. package/dist/external/debug.d.ts +25 -0
  339. package/dist/external/debug.js +9 -0
  340. package/dist/external/del.d.ts +1 -0
  341. package/dist/external/del.js +54 -0
  342. package/dist/external/fast-glob.js +54 -0
  343. package/dist/external/fast-sort.d.ts +4 -0
  344. package/dist/external/fast-sort.js +5 -0
  345. package/dist/external/get-east-asian-width.d.ts +5 -0
  346. package/dist/external/get-east-asian-width.js +5 -0
  347. package/dist/external/libnpmpack.d.ts +3 -0
  348. package/dist/external/libnpmpack.js +225 -0
  349. package/dist/external/make-fetch-happen.d.ts +16 -0
  350. package/dist/external/make-fetch-happen.js +69 -0
  351. package/dist/external/normalize-package-data.js +6 -0
  352. package/dist/external/npm-package-arg.js +6 -0
  353. package/dist/external/pacote.d.ts +19 -0
  354. package/dist/external/pacote.js +105 -0
  355. package/dist/external/picomatch.js +5 -0
  356. package/dist/external/semver.d.ts +3 -0
  357. package/dist/external/semver.js +5 -0
  358. package/dist/external/spdx-correct.js +5 -0
  359. package/dist/external/spdx-expression-parse.js +5 -0
  360. package/dist/external/streaming-iterables.js +5 -0
  361. package/dist/external/validate-npm-package-name.js +5 -0
  362. package/dist/external/which.js +5 -0
  363. package/dist/external/yargs-parser.d.ts +3 -0
  364. package/dist/external/yargs-parser.js +26 -0
  365. package/dist/external/yoctocolors-cjs.d.ts +38 -0
  366. package/dist/external/yoctocolors-cjs.js +5 -0
  367. package/dist/external/zod.d.ts +1 -0
  368. package/dist/external/zod.js +27 -0
  369. package/dist/fs.d.ts +184 -0
  370. package/dist/fs.js +610 -0
  371. package/dist/fs.js.map +7 -0
  372. package/dist/functions.d.ts +27 -0
  373. package/dist/functions.js +70 -0
  374. package/dist/functions.js.map +7 -0
  375. package/dist/git.d.ts +93 -0
  376. package/dist/git.js +321 -0
  377. package/dist/git.js.map +7 -0
  378. package/dist/github.d.ts +121 -0
  379. package/dist/github.js +203 -0
  380. package/dist/github.js.map +7 -0
  381. package/dist/globs.d.ts +46 -0
  382. package/dist/globs.js +154 -0
  383. package/dist/globs.js.map +7 -0
  384. package/dist/http-request.d.ts +53 -0
  385. package/dist/http-request.js +315 -0
  386. package/dist/http-request.js.map +7 -0
  387. package/dist/index.d.ts +13 -0
  388. package/dist/index.js +64 -0
  389. package/dist/index.js.map +7 -0
  390. package/dist/ipc.d.ts +366 -0
  391. package/dist/ipc.js +234 -0
  392. package/dist/ipc.js.map +7 -0
  393. package/dist/json.d.ts +23 -0
  394. package/dist/json.js +75 -0
  395. package/dist/json.js.map +7 -0
  396. package/dist/logger.d.ts +183 -0
  397. package/dist/logger.js +653 -0
  398. package/dist/logger.js.map +7 -0
  399. package/dist/maintained-node-versions.d.ts +7 -0
  400. package/dist/maintained-node-versions.js +37 -0
  401. package/dist/maintained-node-versions.js.map +7 -0
  402. package/dist/memoization.d.ts +142 -0
  403. package/dist/memoization.js +212 -0
  404. package/dist/memoization.js.map +7 -0
  405. package/dist/objects.d.ts +146 -0
  406. package/dist/objects.js +321 -0
  407. package/dist/objects.js.map +7 -0
  408. package/dist/packages/editable.d.ts +107 -0
  409. package/dist/packages/editable.js +358 -0
  410. package/dist/packages/editable.js.map +7 -0
  411. package/dist/packages/exports.d.ts +30 -0
  412. package/dist/packages/exports.js +164 -0
  413. package/dist/packages/exports.js.map +7 -0
  414. package/dist/packages/isolation.d.ts +22 -0
  415. package/dist/packages/isolation.js +197 -0
  416. package/dist/packages/isolation.js.map +7 -0
  417. package/dist/packages/licenses.d.ts +68 -0
  418. package/dist/packages/licenses.js +216 -0
  419. package/dist/packages/licenses.js.map +7 -0
  420. package/dist/packages/manifest.d.ts +16 -0
  421. package/dist/packages/manifest.js +192 -0
  422. package/dist/packages/manifest.js.map +7 -0
  423. package/dist/packages/normalize.d.ts +21 -0
  424. package/dist/packages/normalize.js +122 -0
  425. package/dist/packages/normalize.js.map +7 -0
  426. package/dist/packages/operations.d.ts +54 -0
  427. package/dist/packages/operations.js +306 -0
  428. package/dist/packages/operations.js.map +7 -0
  429. package/dist/packages/paths.d.ts +10 -0
  430. package/dist/packages/paths.js +55 -0
  431. package/dist/packages/paths.js.map +7 -0
  432. package/dist/packages/provenance.d.ts +10 -0
  433. package/dist/packages/provenance.js +180 -0
  434. package/dist/packages/provenance.js.map +7 -0
  435. package/dist/packages/registry.d.ts +8 -0
  436. package/dist/packages/registry.js +30 -0
  437. package/dist/packages/registry.js.map +7 -0
  438. package/dist/packages/specs.d.ts +28 -0
  439. package/dist/packages/specs.js +85 -0
  440. package/dist/packages/specs.js.map +7 -0
  441. package/dist/packages/validation.d.ts +15 -0
  442. package/dist/packages/validation.js +53 -0
  443. package/dist/packages/validation.js.map +7 -0
  444. package/dist/packages.d.ts +154 -0
  445. package/dist/packages.js +131 -0
  446. package/dist/packages.js.map +7 -0
  447. package/dist/path.d.ts +74 -0
  448. package/dist/path.js +442 -0
  449. package/dist/path.js.map +7 -0
  450. package/dist/paths.d.ts +42 -0
  451. package/dist/paths.js +145 -0
  452. package/dist/paths.js.map +7 -0
  453. package/dist/performance.d.ts +178 -0
  454. package/dist/performance.js +219 -0
  455. package/dist/performance.js.map +7 -0
  456. package/dist/promise-queue.d.ts +35 -0
  457. package/dist/promise-queue.js +111 -0
  458. package/dist/promise-queue.js.map +7 -0
  459. package/dist/promises.d.ts +67 -0
  460. package/dist/promises.js +268 -0
  461. package/dist/promises.js.map +7 -0
  462. package/dist/prompts.d.ts +27 -0
  463. package/dist/prompts.js +60 -0
  464. package/dist/prompts.js.map +7 -0
  465. package/dist/regexps.d.ts +13 -0
  466. package/dist/regexps.js +32 -0
  467. package/dist/regexps.js.map +7 -0
  468. package/dist/sea.d.ts +10 -0
  469. package/dist/sea.js +46 -0
  470. package/dist/sea.js.map +7 -0
  471. package/dist/shadow.d.ts +17 -0
  472. package/dist/shadow.js +60 -0
  473. package/dist/shadow.js.map +7 -0
  474. package/dist/signal-exit.d.ts +23 -0
  475. package/dist/signal-exit.js +250 -0
  476. package/dist/signal-exit.js.map +7 -0
  477. package/dist/sorts.d.ts +28 -0
  478. package/dist/sorts.js +96 -0
  479. package/dist/sorts.js.map +7 -0
  480. package/dist/spawn.d.ts +207 -0
  481. package/dist/spawn.js +201 -0
  482. package/dist/spawn.js.map +7 -0
  483. package/dist/spinner.d.ts +208 -0
  484. package/dist/spinner.js +729 -0
  485. package/dist/spinner.js.map +7 -0
  486. package/dist/ssri.d.ts +95 -0
  487. package/dist/ssri.js +73 -0
  488. package/dist/ssri.js.map +7 -0
  489. package/dist/stdio/clear.d.ts +40 -0
  490. package/dist/stdio/clear.js +84 -0
  491. package/dist/stdio/clear.js.map +7 -0
  492. package/dist/stdio/divider.d.ts +48 -0
  493. package/dist/stdio/divider.js +81 -0
  494. package/dist/stdio/divider.js.map +7 -0
  495. package/dist/stdio/footer.d.ts +25 -0
  496. package/dist/stdio/footer.js +96 -0
  497. package/dist/stdio/footer.js.map +7 -0
  498. package/dist/stdio/header.d.ts +25 -0
  499. package/dist/stdio/header.js +102 -0
  500. package/dist/stdio/header.js.map +7 -0
  501. package/dist/stdio/mask.d.ts +72 -0
  502. package/dist/stdio/mask.js +187 -0
  503. package/dist/stdio/mask.js.map +7 -0
  504. package/dist/stdio/progress.d.ts +51 -0
  505. package/dist/stdio/progress.js +171 -0
  506. package/dist/stdio/progress.js.map +7 -0
  507. package/dist/stdio/prompts.d.ts +46 -0
  508. package/dist/stdio/prompts.js +90 -0
  509. package/dist/stdio/prompts.js.map +7 -0
  510. package/dist/stdio/stderr.d.ts +48 -0
  511. package/dist/stdio/stderr.js +91 -0
  512. package/dist/stdio/stderr.js.map +7 -0
  513. package/dist/stdio/stdout.d.ts +48 -0
  514. package/dist/stdio/stdout.js +105 -0
  515. package/dist/stdio/stdout.js.map +7 -0
  516. package/dist/streams.d.ts +20 -0
  517. package/dist/streams.js +80 -0
  518. package/dist/streams.js.map +7 -0
  519. package/dist/strings.d.ts +139 -0
  520. package/dist/strings.js +253 -0
  521. package/dist/strings.js.map +7 -0
  522. package/dist/suppress-warnings.d.ts +66 -0
  523. package/dist/suppress-warnings.js +100 -0
  524. package/dist/suppress-warnings.js.map +7 -0
  525. package/dist/tables.d.ts +69 -0
  526. package/dist/tables.js +130 -0
  527. package/dist/tables.js.map +7 -0
  528. package/dist/temporary-executor.d.ts +9 -0
  529. package/dist/temporary-executor.js +54 -0
  530. package/dist/temporary-executor.js.map +7 -0
  531. package/dist/types.d.ts +65 -0
  532. package/dist/types.js +74 -0
  533. package/dist/types.js.map +7 -0
  534. package/dist/url.d.ts +60 -0
  535. package/dist/url.js +144 -0
  536. package/dist/url.js.map +7 -0
  537. package/dist/utils/get-ipc.d.ts +16 -0
  538. package/dist/utils/get-ipc.js +60 -0
  539. package/dist/utils/get-ipc.js.map +7 -0
  540. package/dist/validation/json-parser.d.ts +10 -0
  541. package/dist/validation/json-parser.js +129 -0
  542. package/dist/validation/json-parser.js.map +7 -0
  543. package/dist/validation/types.d.ts +40 -0
  544. package/dist/validation/types.js +17 -0
  545. package/dist/validation/types.js.map +7 -0
  546. package/dist/versions.d.ts +87 -0
  547. package/dist/versions.js +155 -0
  548. package/dist/versions.js.map +7 -0
  549. package/dist/words.d.ts +22 -0
  550. package/dist/words.js +52 -0
  551. package/dist/words.js.map +7 -0
  552. package/dist/zod.d.ts +5 -0
  553. package/dist/zod.js +29 -0
  554. package/dist/zod.js.map +7 -0
  555. package/package.json +856 -7
@@ -0,0 +1,121 @@
1
+ import type { SpawnOptions } from './spawn';
2
+ export interface GitHubFetchOptions {
3
+ token?: string | undefined;
4
+ headers?: Record<string, string> | undefined;
5
+ }
6
+ export interface GitHubRateLimitError extends Error {
7
+ status: number;
8
+ resetTime?: Date | undefined;
9
+ }
10
+ /**
11
+ * Get GitHub token from environment variables.
12
+ */
13
+ export declare function getGitHubToken(): string | undefined;
14
+ /**
15
+ * Fetch data from GitHub API with rate limit handling.
16
+ */
17
+ export declare function fetchGitHub<T = unknown>(url: string, options?: GitHubFetchOptions | undefined): Promise<T>;
18
+ export interface GitHubRef {
19
+ object: {
20
+ sha: string;
21
+ type: string;
22
+ url: string;
23
+ };
24
+ ref: string;
25
+ url: string;
26
+ }
27
+ export interface GitHubTag {
28
+ message: string;
29
+ object: {
30
+ sha: string;
31
+ type: string;
32
+ url: string;
33
+ };
34
+ sha: string;
35
+ tag: string;
36
+ tagger?: {
37
+ date: string;
38
+ email: string;
39
+ name: string;
40
+ };
41
+ url: string;
42
+ }
43
+ export interface GitHubCommit {
44
+ sha: string;
45
+ url: string;
46
+ commit: {
47
+ message: string;
48
+ author: {
49
+ date: string;
50
+ email: string;
51
+ name: string;
52
+ };
53
+ };
54
+ }
55
+ export interface ResolveRefOptions {
56
+ token?: string | undefined;
57
+ }
58
+ /**
59
+ * Resolve a git ref (tag, branch, or commit SHA) to its full commit SHA.
60
+ * Results are cached in-memory and on disk (with TTL) to minimize API calls.
61
+ */
62
+ export declare function resolveRefToSha(owner: string, repo: string, ref: string, options?: ResolveRefOptions | undefined): Promise<string>;
63
+ /**
64
+ * Clear the ref resolution cache (in-memory only).
65
+ */
66
+ export declare function clearRefCache(): Promise<void>;
67
+ /**
68
+ * Get GitHub token from git config if not in environment.
69
+ * Falls back to checking git config for github.token.
70
+ */
71
+ export declare function getGitHubTokenFromGitConfig(options?: SpawnOptions): Promise<string | undefined>;
72
+ /**
73
+ * Get GitHub token from all available sources.
74
+ * Checks environment variables first, then git config.
75
+ */
76
+ export declare function getGitHubTokenWithFallback(): Promise<string | undefined>;
77
+ // GHSA (GitHub Security Advisory) types and utilities.
78
+ export interface GhsaDetails {
79
+ ghsaId: string;
80
+ summary: string;
81
+ details: string;
82
+ severity: string;
83
+ aliases: string[];
84
+ publishedAt: string;
85
+ updatedAt: string;
86
+ withdrawnAt: string | null;
87
+ references: Array<{
88
+ url: string;
89
+ }>;
90
+ vulnerabilities: Array<{
91
+ package: {
92
+ ecosystem: string;
93
+ name: string;
94
+ };
95
+ vulnerableVersionRange: string;
96
+ firstPatchedVersion: {
97
+ identifier: string;
98
+ } | null;
99
+ }>;
100
+ cvss: {
101
+ score: number;
102
+ vectorString: string;
103
+ } | null;
104
+ cwes: Array<{
105
+ cweId: string;
106
+ name: string;
107
+ description: string;
108
+ }>;
109
+ }
110
+ /**
111
+ * Generate GitHub Security Advisory URL from GHSA ID.
112
+ */
113
+ export declare function getGhsaUrl(ghsaId: string): string;
114
+ /**
115
+ * Fetch GitHub Security Advisory details.
116
+ */
117
+ export declare function fetchGhsaDetails(ghsaId: string, options?: GitHubFetchOptions): Promise<GhsaDetails>;
118
+ /**
119
+ * Cached fetch for GHSA details.
120
+ */
121
+ export declare function cacheFetchGhsa(ghsaId: string, options?: GitHubFetchOptions): Promise<GhsaDetails>;
package/dist/github.js ADDED
@@ -0,0 +1,203 @@
1
+ /* Socket Lib - Built with esbuild */
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var github_exports = {};
20
+ __export(github_exports, {
21
+ cacheFetchGhsa: () => cacheFetchGhsa,
22
+ clearRefCache: () => clearRefCache,
23
+ fetchGhsaDetails: () => fetchGhsaDetails,
24
+ fetchGitHub: () => fetchGitHub,
25
+ getGhsaUrl: () => getGhsaUrl,
26
+ getGitHubToken: () => getGitHubToken,
27
+ getGitHubTokenFromGitConfig: () => getGitHubTokenFromGitConfig,
28
+ getGitHubTokenWithFallback: () => getGitHubTokenWithFallback,
29
+ resolveRefToSha: () => resolveRefToSha
30
+ });
31
+ module.exports = __toCommonJS(github_exports);
32
+ var import_cache_with_ttl = require("./cache-with-ttl");
33
+ var import_http_request = require("./http-request");
34
+ var import_spawn = require("./spawn");
35
+ const GITHUB_API_BASE_URL = "https://api.github.com";
36
+ const DEFAULT_CACHE_TTL_MS = 5 * 60 * 1e3;
37
+ let _githubCache;
38
+ function getGithubCache() {
39
+ if (_githubCache === void 0) {
40
+ _githubCache = (0, import_cache_with_ttl.createTtlCache)({
41
+ memoize: true,
42
+ prefix: "github-refs",
43
+ ttl: DEFAULT_CACHE_TTL_MS
44
+ });
45
+ }
46
+ return _githubCache;
47
+ }
48
+ function getGitHubToken() {
49
+ const { env } = process;
50
+ return env["GITHUB_TOKEN"] || env["GH_TOKEN"] || env["SOCKET_CLI_GITHUB_TOKEN"] || void 0;
51
+ }
52
+ async function fetchGitHub(url, options) {
53
+ const opts = { __proto__: null, ...options };
54
+ const token = opts.token || getGitHubToken();
55
+ const headers = {
56
+ Accept: "application/vnd.github.v3+json",
57
+ "User-Agent": "socket-registry-github-client",
58
+ ...opts.headers
59
+ };
60
+ if (token) {
61
+ headers["Authorization"] = `Bearer ${token}`;
62
+ }
63
+ const response = await (0, import_http_request.httpRequest)(url, { headers });
64
+ if (!response.ok) {
65
+ if (response.status === 403) {
66
+ const rateLimit = response.headers["x-ratelimit-remaining"];
67
+ const rateLimitStr = typeof rateLimit === "string" ? rateLimit : rateLimit?.[0];
68
+ if (rateLimitStr === "0") {
69
+ const resetTime = response.headers["x-ratelimit-reset"];
70
+ const resetTimeStr = typeof resetTime === "string" ? resetTime : resetTime?.[0];
71
+ const resetDate = resetTimeStr ? new Date(Number(resetTimeStr) * 1e3) : void 0;
72
+ const error = new Error(
73
+ `GitHub API rate limit exceeded${resetDate ? `. Resets at ${resetDate.toLocaleString()}` : ""}. Use GITHUB_TOKEN environment variable to increase rate limit.`
74
+ );
75
+ error.status = 403;
76
+ error.resetTime = resetDate;
77
+ throw error;
78
+ }
79
+ }
80
+ throw new Error(
81
+ `GitHub API error ${response.status}: ${response.statusText}`
82
+ );
83
+ }
84
+ return JSON.parse(response.body.toString("utf8"));
85
+ }
86
+ async function resolveRefToSha(owner, repo, ref, options) {
87
+ const opts = {
88
+ __proto__: null,
89
+ ...options
90
+ };
91
+ const cacheKey = `${owner}/${repo}@${ref}`;
92
+ if (process.env["DISABLE_GITHUB_CACHE"]) {
93
+ return await fetchRefSha(owner, repo, ref, opts);
94
+ }
95
+ const cache = getGithubCache();
96
+ return await cache.getOrFetch(cacheKey, async () => {
97
+ return await fetchRefSha(owner, repo, ref, opts);
98
+ });
99
+ }
100
+ async function fetchRefSha(owner, repo, ref, options) {
101
+ const fetchOptions = {
102
+ token: options.token
103
+ };
104
+ try {
105
+ const tagUrl = `${GITHUB_API_BASE_URL}/repos/${owner}/${repo}/git/refs/tags/${ref}`;
106
+ const tagData = await fetchGitHub(tagUrl, fetchOptions);
107
+ if (tagData.object.type === "tag") {
108
+ const tagObject = await fetchGitHub(
109
+ tagData.object.url,
110
+ fetchOptions
111
+ );
112
+ return tagObject.object.sha;
113
+ }
114
+ return tagData.object.sha;
115
+ } catch {
116
+ try {
117
+ const branchUrl = `${GITHUB_API_BASE_URL}/repos/${owner}/${repo}/git/refs/heads/${ref}`;
118
+ const branchData = await fetchGitHub(branchUrl, fetchOptions);
119
+ return branchData.object.sha;
120
+ } catch {
121
+ try {
122
+ const commitUrl = `${GITHUB_API_BASE_URL}/repos/${owner}/${repo}/commits/${ref}`;
123
+ const commitData = await fetchGitHub(
124
+ commitUrl,
125
+ fetchOptions
126
+ );
127
+ return commitData.sha;
128
+ } catch (e) {
129
+ throw new Error(
130
+ `failed to resolve ref "${ref}" for ${owner}/${repo}: ${e instanceof Error ? e.message : String(e)}`
131
+ );
132
+ }
133
+ }
134
+ }
135
+ }
136
+ async function clearRefCache() {
137
+ if (_githubCache) {
138
+ await _githubCache.clear({ memoOnly: true });
139
+ }
140
+ }
141
+ async function getGitHubTokenFromGitConfig(options) {
142
+ try {
143
+ const result = await (0, import_spawn.spawn)("git", ["config", "github.token"], {
144
+ ...options,
145
+ stdio: "pipe"
146
+ });
147
+ if (result.code === 0 && result.stdout) {
148
+ return result.stdout.toString().trim();
149
+ }
150
+ } catch {
151
+ }
152
+ return void 0;
153
+ }
154
+ async function getGitHubTokenWithFallback() {
155
+ return getGitHubToken() || await getGitHubTokenFromGitConfig();
156
+ }
157
+ function getGhsaUrl(ghsaId) {
158
+ return `https://github.com/advisories/${ghsaId}`;
159
+ }
160
+ async function fetchGhsaDetails(ghsaId, options) {
161
+ const url = `https://api.github.com/advisories/${ghsaId}`;
162
+ const data = await fetchGitHub(url, options);
163
+ return {
164
+ ghsaId: data.ghsa_id,
165
+ summary: data.summary,
166
+ details: data.details,
167
+ severity: data.severity,
168
+ aliases: data.aliases || [],
169
+ publishedAt: data.published_at,
170
+ updatedAt: data.updated_at,
171
+ withdrawnAt: data.withdrawn_at,
172
+ references: data.references || [],
173
+ vulnerabilities: data.vulnerabilities || [],
174
+ cvss: data.cvss,
175
+ cwes: data.cwes || []
176
+ };
177
+ }
178
+ async function cacheFetchGhsa(ghsaId, options) {
179
+ const cache = getGithubCache();
180
+ const key = `ghsa:${ghsaId}`;
181
+ if (!process.env["DISABLE_GITHUB_CACHE"]) {
182
+ const cached = await cache.get(key);
183
+ if (cached) {
184
+ return JSON.parse(cached);
185
+ }
186
+ }
187
+ const data = await fetchGhsaDetails(ghsaId, options);
188
+ await cache.set(key, JSON.stringify(data));
189
+ return data;
190
+ }
191
+ // Annotate the CommonJS export names for ESM import in node:
192
+ 0 && (module.exports = {
193
+ cacheFetchGhsa,
194
+ clearRefCache,
195
+ fetchGhsaDetails,
196
+ fetchGitHub,
197
+ getGhsaUrl,
198
+ getGitHubToken,
199
+ getGitHubTokenFromGitConfig,
200
+ getGitHubTokenWithFallback,
201
+ resolveRefToSha
202
+ });
203
+ //# sourceMappingURL=github.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/github.ts"],
4
+ "sourcesContent": ["/**\n * @fileoverview GitHub utilities for Socket projects.\n * Provides GitHub API integration for repository operations.\n *\n * Authentication:\n * - getGitHubToken: Retrieve GitHub token from environment variables\n * - fetchGitHub: Authenticated GitHub API requests with rate limit handling\n *\n * Ref Resolution:\n * - resolveRefToSha: Convert tags/branches to commit SHAs (with memoization and persistent cache)\n * - clearRefCache: Clear the in-memory memoization cache\n *\n * Caching:\n * - Uses cacache for persistent storage with in-memory memoization\n * - Two-tier caching: in-memory (Map) for hot data, persistent (cacache) for durability\n * - Default TTL: 5 minutes\n * - Disable with DISABLE_GITHUB_CACHE env var\n *\n * Rate Limiting:\n * - Automatic rate limit detection and error messages\n * - Cache to minimize API calls\n */\n\nimport type { TtlCache } from './cache-with-ttl'\nimport { createTtlCache } from './cache-with-ttl'\nimport { httpRequest } from './http-request'\nimport type { SpawnOptions } from './spawn'\nimport { spawn } from './spawn'\n\n// GitHub API base URL constant (inlined for coverage mode compatibility).\nconst GITHUB_API_BASE_URL = 'https://api.github.com'\n\n// 5 minutes.\nconst DEFAULT_CACHE_TTL_MS = 5 * 60 * 1000\n\n// Create TTL cache instance for GitHub ref resolution.\n// Uses cacache for persistent storage with in-memory memoization.\nlet _githubCache: TtlCache | undefined\n\n/**\n * Get or create the GitHub cache instance.\n */\nfunction getGithubCache(): TtlCache {\n if (_githubCache === undefined) {\n _githubCache = createTtlCache({\n memoize: true,\n prefix: 'github-refs',\n ttl: DEFAULT_CACHE_TTL_MS,\n })\n }\n return _githubCache\n}\n\nexport interface GitHubFetchOptions {\n token?: string | undefined\n headers?: Record<string, string> | undefined\n}\n\nexport interface GitHubRateLimitError extends Error {\n status: number\n resetTime?: Date | undefined\n}\n\n/**\n * Get GitHub token from environment variables.\n */\nexport function getGitHubToken(): string | undefined {\n const { env } = process\n return (\n env['GITHUB_TOKEN'] ||\n env['GH_TOKEN'] ||\n env['SOCKET_CLI_GITHUB_TOKEN'] ||\n undefined\n )\n}\n\n/**\n * Fetch data from GitHub API with rate limit handling.\n */\nexport async function fetchGitHub<T = unknown>(\n url: string,\n options?: GitHubFetchOptions | undefined,\n): Promise<T> {\n const opts = { __proto__: null, ...options } as GitHubFetchOptions\n const token = opts.token || getGitHubToken()\n\n const headers: Record<string, string> = {\n Accept: 'application/vnd.github.v3+json',\n 'User-Agent': 'socket-registry-github-client',\n ...opts.headers,\n }\n\n if (token) {\n headers['Authorization'] = `Bearer ${token}`\n }\n\n const response = await httpRequest(url, { headers })\n\n if (!response.ok) {\n if (response.status === 403) {\n const rateLimit = response.headers['x-ratelimit-remaining']\n const rateLimitStr =\n typeof rateLimit === 'string' ? rateLimit : rateLimit?.[0]\n if (rateLimitStr === '0') {\n const resetTime = response.headers['x-ratelimit-reset']\n const resetTimeStr =\n typeof resetTime === 'string' ? resetTime : resetTime?.[0]\n const resetDate = resetTimeStr\n ? new Date(Number(resetTimeStr) * 1000)\n : undefined\n const error = new Error(\n `GitHub API rate limit exceeded${resetDate ? `. Resets at ${resetDate.toLocaleString()}` : ''}. Use GITHUB_TOKEN environment variable to increase rate limit.`,\n ) as GitHubRateLimitError\n error.status = 403\n error.resetTime = resetDate\n throw error\n }\n }\n throw new Error(\n `GitHub API error ${response.status}: ${response.statusText}`,\n )\n }\n\n return JSON.parse(response.body.toString('utf8')) as T\n}\n\nexport interface GitHubRef {\n object: {\n sha: string\n type: string\n url: string\n }\n ref: string\n url: string\n}\n\nexport interface GitHubTag {\n message: string\n object: {\n sha: string\n type: string\n url: string\n }\n sha: string\n tag: string\n tagger?: {\n date: string\n email: string\n name: string\n }\n url: string\n}\n\nexport interface GitHubCommit {\n sha: string\n url: string\n commit: {\n message: string\n author: {\n date: string\n email: string\n name: string\n }\n }\n}\n\nexport interface ResolveRefOptions {\n token?: string | undefined\n}\n\n/**\n * Resolve a git ref (tag, branch, or commit SHA) to its full commit SHA.\n * Results are cached in-memory and on disk (with TTL) to minimize API calls.\n */\nexport async function resolveRefToSha(\n owner: string,\n repo: string,\n ref: string,\n options?: ResolveRefOptions | undefined,\n): Promise<string> {\n const opts = {\n __proto__: null,\n ...options,\n } as ResolveRefOptions\n\n const cacheKey = `${owner}/${repo}@${ref}`\n\n // Optionally disable cache.\n if (process.env['DISABLE_GITHUB_CACHE']) {\n return await fetchRefSha(owner, repo, ref, opts)\n }\n\n // Use TTL cache for persistent storage and in-memory memoization.\n const cache = getGithubCache()\n return await cache.getOrFetch(cacheKey, async () => {\n return await fetchRefSha(owner, repo, ref, opts)\n })\n}\n\n/**\n * Fetch the SHA for a git ref from GitHub API.\n */\nasync function fetchRefSha(\n owner: string,\n repo: string,\n ref: string,\n options: ResolveRefOptions,\n): Promise<string> {\n const fetchOptions: GitHubFetchOptions = {\n token: options.token,\n }\n\n try {\n // Try as a tag first.\n const tagUrl = `${GITHUB_API_BASE_URL}/repos/${owner}/${repo}/git/refs/tags/${ref}`\n const tagData = await fetchGitHub<GitHubRef>(tagUrl, fetchOptions)\n\n // Tag might point to a tag object or directly to a commit.\n if (tagData.object.type === 'tag') {\n // Dereference the tag object to get the commit.\n const tagObject = await fetchGitHub<GitHubTag>(\n tagData.object.url,\n fetchOptions,\n )\n return tagObject.object.sha\n }\n return tagData.object.sha\n } catch {\n // Not a tag, try as a branch.\n try {\n const branchUrl = `${GITHUB_API_BASE_URL}/repos/${owner}/${repo}/git/refs/heads/${ref}`\n const branchData = await fetchGitHub<GitHubRef>(branchUrl, fetchOptions)\n return branchData.object.sha\n } catch {\n // Try without refs/ prefix (for commit SHAs or other refs).\n try {\n const commitUrl = `${GITHUB_API_BASE_URL}/repos/${owner}/${repo}/commits/${ref}`\n const commitData = await fetchGitHub<GitHubCommit>(\n commitUrl,\n fetchOptions,\n )\n return commitData.sha\n } catch (e) {\n throw new Error(\n `failed to resolve ref \"${ref}\" for ${owner}/${repo}: ${e instanceof Error ? e.message : String(e)}`,\n )\n }\n }\n }\n}\n\n/**\n * Clear the ref resolution cache (in-memory only).\n */\nexport async function clearRefCache(): Promise<void> {\n if (_githubCache) {\n await _githubCache.clear({ memoOnly: true })\n }\n}\n\n/**\n * Get GitHub token from git config if not in environment.\n * Falls back to checking git config for github.token.\n */\nexport async function getGitHubTokenFromGitConfig(\n options?: SpawnOptions,\n): Promise<string | undefined> {\n try {\n const result = await spawn('git', ['config', 'github.token'], {\n ...options,\n stdio: 'pipe',\n })\n if (result.code === 0 && result.stdout) {\n return result.stdout.toString().trim()\n }\n } catch {\n // Ignore errors - git config may not have token.\n }\n return undefined\n}\n\n/**\n * Get GitHub token from all available sources.\n * Checks environment variables first, then git config.\n */\nexport async function getGitHubTokenWithFallback(): Promise<\n string | undefined\n> {\n return getGitHubToken() || (await getGitHubTokenFromGitConfig())\n}\n\n// GHSA (GitHub Security Advisory) types and utilities.\nexport interface GhsaDetails {\n ghsaId: string\n summary: string\n details: string\n severity: string\n aliases: string[]\n publishedAt: string\n updatedAt: string\n withdrawnAt: string | null\n references: Array<{ url: string }>\n vulnerabilities: Array<{\n package: {\n ecosystem: string\n name: string\n }\n vulnerableVersionRange: string\n firstPatchedVersion: { identifier: string } | null\n }>\n cvss: {\n score: number\n vectorString: string\n } | null\n cwes: Array<{\n cweId: string\n name: string\n description: string\n }>\n}\n\n/**\n * Generate GitHub Security Advisory URL from GHSA ID.\n */\nexport function getGhsaUrl(ghsaId: string): string {\n return `https://github.com/advisories/${ghsaId}`\n}\n\n/**\n * Fetch GitHub Security Advisory details.\n */\nexport async function fetchGhsaDetails(\n ghsaId: string,\n options?: GitHubFetchOptions,\n): Promise<GhsaDetails> {\n const url = `https://api.github.com/advisories/${ghsaId}`\n const data = await fetchGitHub<{\n aliases?: string[]\n cvss: unknown\n cwes?: Array<{ cweId: string; name: string; description: string }>\n details: string\n ghsa_id: string\n published_at: string\n references?: Array<{ url: string }>\n severity: string\n summary: string\n updated_at: string\n vulnerabilities?: Array<{\n package: { ecosystem: string; name: string }\n vulnerableVersionRange: string\n firstPatchedVersion: { identifier: string } | null\n }>\n withdrawn_at: string\n }>(url, options)\n\n return {\n ghsaId: data.ghsa_id,\n summary: data.summary,\n details: data.details,\n severity: data.severity,\n aliases: data.aliases || [],\n publishedAt: data.published_at,\n updatedAt: data.updated_at,\n withdrawnAt: data.withdrawn_at,\n references: data.references || [],\n vulnerabilities: data.vulnerabilities || [],\n cvss: data.cvss as { score: number; vectorString: string } | null,\n cwes: data.cwes || [],\n }\n}\n\n/**\n * Cached fetch for GHSA details.\n */\nexport async function cacheFetchGhsa(\n ghsaId: string,\n options?: GitHubFetchOptions,\n): Promise<GhsaDetails> {\n const cache = getGithubCache()\n const key = `ghsa:${ghsaId}`\n\n // Check cache first.\n if (!process.env['DISABLE_GITHUB_CACHE']) {\n const cached = await cache.get(key)\n if (cached) {\n return JSON.parse(cached as string) as GhsaDetails\n }\n }\n\n // Fetch and cache.\n const data = await fetchGhsaDetails(ghsaId, options)\n await cache.set(key, JSON.stringify(data))\n return data\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,46 @@
1
+ // Type definitions
2
+ type Pattern = string;
3
+ interface FastGlobOptions {
4
+ absolute?: boolean;
5
+ baseNameMatch?: boolean;
6
+ braceExpansion?: boolean;
7
+ caseSensitiveMatch?: boolean;
8
+ concurrency?: number;
9
+ cwd?: string;
10
+ deep?: number;
11
+ dot?: boolean;
12
+ extglob?: boolean;
13
+ followSymbolicLinks?: boolean;
14
+ fs?: unknown;
15
+ globstar?: boolean;
16
+ ignore?: string[];
17
+ ignoreFiles?: string[];
18
+ markDirectories?: boolean;
19
+ objectMode?: boolean;
20
+ onlyDirectories?: boolean;
21
+ onlyFiles?: boolean;
22
+ stats?: boolean;
23
+ suppressErrors?: boolean;
24
+ throwErrorOnBrokenSymbolicLink?: boolean;
25
+ unique?: boolean;
26
+ }
27
+ export interface GlobOptions extends FastGlobOptions {
28
+ ignoreOriginals?: boolean;
29
+ recursive?: boolean;
30
+ }
31
+ export type { Pattern, FastGlobOptions };
32
+ export declare const defaultIgnore: readonly string[];
33
+ /**
34
+ * Create a stream of license file paths matching glob patterns.
35
+ */
36
+ /*@__NO_SIDE_EFFECTS__*/
37
+ export declare function globStreamLicenses(dirname: string, options?: GlobOptions): NodeJS.ReadableStream;
38
+ /**
39
+ * Get a cached glob matcher function.
40
+ */
41
+ /*@__NO_SIDE_EFFECTS__*/
42
+ export declare function getGlobMatcher(glob: Pattern | Pattern[], options?: {
43
+ dot?: boolean;
44
+ nocase?: boolean;
45
+ ignore?: string[];
46
+ }): (path: string) => boolean;
package/dist/globs.js ADDED
@@ -0,0 +1,154 @@
1
+ /* Socket Lib - Built with esbuild */
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var globs_exports = {};
20
+ __export(globs_exports, {
21
+ defaultIgnore: () => defaultIgnore,
22
+ getGlobMatcher: () => getGlobMatcher,
23
+ globStreamLicenses: () => globStreamLicenses
24
+ });
25
+ module.exports = __toCommonJS(globs_exports);
26
+ var import_objects = require("./objects");
27
+ const defaultIgnore = (0, import_objects.objectFreeze)([
28
+ // Most of these ignored files can be included specifically if included in the
29
+ // files globs. Exceptions to this are:
30
+ // https://docs.npmjs.com/cli/v10/configuring-npm/package-json#files
31
+ // These can NOT be included.
32
+ // https://github.com/npm/npm-packlist/blob/v10.0.0/lib/index.js#L280
33
+ "**/.git",
34
+ "**/.npmrc",
35
+ // '**/bun.lockb?',
36
+ "**/node_modules",
37
+ // '**/package-lock.json',
38
+ // '**/pnpm-lock.ya?ml',
39
+ // '**/yarn.lock',
40
+ // Include npm-packlist defaults:
41
+ // https://github.com/npm/npm-packlist/blob/v10.0.0/lib/index.js#L15-L38
42
+ "**/.DS_Store",
43
+ "**/.gitignore",
44
+ "**/.hg",
45
+ "**/.lock-wscript",
46
+ "**/.npmignore",
47
+ "**/.svn",
48
+ "**/.wafpickle-*",
49
+ "**/.*.swp",
50
+ "**/._*/**",
51
+ "**/archived-packages/**",
52
+ "**/build/config.gypi",
53
+ "**/CVS",
54
+ "**/npm-debug.log",
55
+ "**/*.orig",
56
+ // Inline generic socket-registry .gitignore entries.
57
+ "**/.env",
58
+ "**/.eslintcache",
59
+ "**/.nvm",
60
+ "**/.tap",
61
+ "**/.vscode",
62
+ "**/*.tsbuildinfo",
63
+ "**/Thumbs.db",
64
+ // Inline additional ignores.
65
+ "**/bower_components"
66
+ ]);
67
+ let _picomatch;
68
+ // @__NO_SIDE_EFFECTS__
69
+ function getPicomatch() {
70
+ if (_picomatch === void 0) {
71
+ _picomatch = require("../external/picomatch");
72
+ }
73
+ return _picomatch;
74
+ }
75
+ let _fastGlob;
76
+ // @__NO_SIDE_EFFECTS__
77
+ function getFastGlob() {
78
+ if (_fastGlob === void 0) {
79
+ const globExport = require("../external/fast-glob");
80
+ _fastGlob = globExport.default || globExport;
81
+ }
82
+ return _fastGlob;
83
+ }
84
+ // @__NO_SIDE_EFFECTS__
85
+ function globStreamLicenses(dirname, options) {
86
+ const {
87
+ ignore: ignoreOpt,
88
+ ignoreOriginals,
89
+ recursive,
90
+ ...globOptions
91
+ } = { __proto__: null, ...options };
92
+ const ignore = [
93
+ ...Array.isArray(ignoreOpt) ? ignoreOpt : defaultIgnore,
94
+ "**/*.{cjs,cts,js,json,mjs,mts,ts}"
95
+ ];
96
+ if (ignoreOriginals) {
97
+ ignore.push(
98
+ /*@__INLINE__*/
99
+ require("../constants/paths").LICENSE_ORIGINAL_GLOB_RECURSIVE
100
+ );
101
+ }
102
+ const fastGlob = /* @__PURE__ */ getFastGlob();
103
+ return fastGlob.globStream(
104
+ [
105
+ recursive ? (
106
+ /*@__INLINE__*/
107
+ require("../constants/paths").LICENSE_GLOB_RECURSIVE
108
+ ) : (
109
+ /*@__INLINE__*/
110
+ require("../constants/paths").LICENSE_GLOB
111
+ )
112
+ ],
113
+ {
114
+ __proto__: null,
115
+ absolute: true,
116
+ caseSensitiveMatch: false,
117
+ cwd: dirname,
118
+ ...globOptions,
119
+ ...ignore ? { ignore } : {}
120
+ }
121
+ );
122
+ }
123
+ const matcherCache = /* @__PURE__ */ new Map();
124
+ // @__NO_SIDE_EFFECTS__
125
+ function getGlobMatcher(glob, options) {
126
+ const patterns = Array.isArray(glob) ? glob : [glob];
127
+ const key = JSON.stringify({ patterns, options });
128
+ let matcher = matcherCache.get(key);
129
+ if (matcher) {
130
+ return matcher;
131
+ }
132
+ const positivePatterns = patterns.filter((p) => !p.startsWith("!"));
133
+ const negativePatterns = patterns.filter((p) => p.startsWith("!")).map((p) => p.slice(1));
134
+ const picomatch = /* @__PURE__ */ getPicomatch();
135
+ const matchOptions = {
136
+ dot: true,
137
+ nocase: true,
138
+ ...options,
139
+ ...negativePatterns.length > 0 ? { ignore: negativePatterns } : {}
140
+ };
141
+ matcher = picomatch(
142
+ positivePatterns.length > 0 ? positivePatterns : patterns,
143
+ matchOptions
144
+ );
145
+ matcherCache.set(key, matcher);
146
+ return matcher;
147
+ }
148
+ // Annotate the CommonJS export names for ESM import in node:
149
+ 0 && (module.exports = {
150
+ defaultIgnore,
151
+ getGlobMatcher,
152
+ globStreamLicenses
153
+ });
154
+ //# sourceMappingURL=globs.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/globs.ts"],
4
+ "sourcesContent": ["/**\n * @fileoverview Glob pattern matching utilities with default ignore patterns.\n * Provides file filtering and glob matcher functions for npm-like behavior.\n */\n\n// IMPORTANT: Do not use destructuring here - use direct assignment instead.\nimport { objectFreeze as ObjectFreeze } from './objects'\n\n// Type definitions\ntype Pattern = string\n\ninterface FastGlobOptions {\n absolute?: boolean\n baseNameMatch?: boolean\n braceExpansion?: boolean\n caseSensitiveMatch?: boolean\n concurrency?: number\n cwd?: string\n deep?: number\n dot?: boolean\n extglob?: boolean\n followSymbolicLinks?: boolean\n fs?: unknown\n globstar?: boolean\n ignore?: string[]\n ignoreFiles?: string[]\n markDirectories?: boolean\n objectMode?: boolean\n onlyDirectories?: boolean\n onlyFiles?: boolean\n stats?: boolean\n suppressErrors?: boolean\n throwErrorOnBrokenSymbolicLink?: boolean\n unique?: boolean\n}\n\nexport interface GlobOptions extends FastGlobOptions {\n ignoreOriginals?: boolean\n recursive?: boolean\n}\n\nexport type { Pattern, FastGlobOptions }\n\nexport const defaultIgnore = ObjectFreeze([\n // Most of these ignored files can be included specifically if included in the\n // files globs. Exceptions to this are:\n // https://docs.npmjs.com/cli/v10/configuring-npm/package-json#files\n // These can NOT be included.\n // https://github.com/npm/npm-packlist/blob/v10.0.0/lib/index.js#L280\n '**/.git',\n '**/.npmrc',\n // '**/bun.lockb?',\n '**/node_modules',\n // '**/package-lock.json',\n // '**/pnpm-lock.ya?ml',\n // '**/yarn.lock',\n // Include npm-packlist defaults:\n // https://github.com/npm/npm-packlist/blob/v10.0.0/lib/index.js#L15-L38\n '**/.DS_Store',\n '**/.gitignore',\n '**/.hg',\n '**/.lock-wscript',\n '**/.npmignore',\n '**/.svn',\n '**/.wafpickle-*',\n '**/.*.swp',\n '**/._*/**',\n '**/archived-packages/**',\n '**/build/config.gypi',\n '**/CVS',\n '**/npm-debug.log',\n '**/*.orig',\n // Inline generic socket-registry .gitignore entries.\n '**/.env',\n '**/.eslintcache',\n '**/.nvm',\n '**/.tap',\n '**/.vscode',\n '**/*.tsbuildinfo',\n '**/Thumbs.db',\n // Inline additional ignores.\n '**/bower_components',\n])\n\nlet _picomatch: typeof import('picomatch') | undefined\n/**\n * Lazily load the picomatch module.\n * @private\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getPicomatch() {\n if (_picomatch === undefined) {\n // The 'picomatch' package is browser safe.\n _picomatch = /*@__PURE__*/ require('../external/picomatch')\n }\n return _picomatch as typeof import('picomatch')\n}\n\nlet _fastGlob: typeof import('fast-glob') | undefined\n/**\n * Lazily load the fast-glob module.\n * @private\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getFastGlob() {\n if (_fastGlob === undefined) {\n const globExport = /*@__PURE__*/ require('../external/fast-glob')\n _fastGlob = globExport.default || globExport\n }\n return _fastGlob as typeof import('fast-glob')\n}\n\n/**\n * Create a stream of license file paths matching glob patterns.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function globStreamLicenses(\n dirname: string,\n options?: GlobOptions,\n): NodeJS.ReadableStream {\n const {\n ignore: ignoreOpt,\n ignoreOriginals,\n recursive,\n ...globOptions\n } = { __proto__: null, ...options } as GlobOptions\n const ignore = [\n ...(Array.isArray(ignoreOpt) ? ignoreOpt : defaultIgnore),\n '**/*.{cjs,cts,js,json,mjs,mts,ts}',\n ]\n if (ignoreOriginals) {\n ignore.push(\n /*@__INLINE__*/ require('../constants/paths')\n .LICENSE_ORIGINAL_GLOB_RECURSIVE,\n )\n }\n const fastGlob = getFastGlob()\n return fastGlob.globStream(\n [\n recursive\n ? /*@__INLINE__*/ require('../constants/paths').LICENSE_GLOB_RECURSIVE\n : /*@__INLINE__*/ require('../constants/paths').LICENSE_GLOB,\n ],\n {\n __proto__: null,\n absolute: true,\n caseSensitiveMatch: false,\n cwd: dirname,\n ...globOptions,\n ...(ignore ? { ignore } : {}),\n } as import('fast-glob').Options,\n )\n}\n\nconst matcherCache = new Map()\n/**\n * Get a cached glob matcher function.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function getGlobMatcher(\n glob: Pattern | Pattern[],\n options?: { dot?: boolean; nocase?: boolean; ignore?: string[] },\n): (path: string) => boolean {\n const patterns = Array.isArray(glob) ? glob : [glob]\n const key = JSON.stringify({ patterns, options })\n let matcher = matcherCache.get(key)\n if (matcher) {\n return matcher\n }\n\n // Separate positive and negative patterns.\n const positivePatterns = patterns.filter(p => !p.startsWith('!'))\n const negativePatterns = patterns\n .filter(p => p.startsWith('!'))\n .map(p => p.slice(1))\n\n const picomatch = getPicomatch()\n\n // Use ignore option for negation patterns.\n const matchOptions = {\n dot: true,\n nocase: true,\n ...options,\n ...(negativePatterns.length > 0 ? { ignore: negativePatterns } : {}),\n }\n\n matcher = picomatch(\n positivePatterns.length > 0 ? positivePatterns : patterns,\n matchOptions,\n )\n\n matcherCache.set(key, matcher)\n return matcher\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAA6C;AAqCtC,MAAM,oBAAgB,eAAAA,cAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMxC;AAAA,EACA;AAAA;AAAA,EAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AACF,CAAC;AAED,IAAI;AAAA;AAMJ,SAAS,eAAe;AACtB,MAAI,eAAe,QAAW;AAE5B,iBAA2B,QAAQ,uBAAuB;AAAA,EAC5D;AACA,SAAO;AACT;AAEA,IAAI;AAAA;AAMJ,SAAS,cAAc;AACrB,MAAI,cAAc,QAAW;AAC3B,UAAM,aAA2B,QAAQ,uBAAuB;AAChE,gBAAY,WAAW,WAAW;AAAA,EACpC;AACA,SAAO;AACT;AAAA;AAMO,SAAS,mBACd,SACA,SACuB;AACvB,QAAM;AAAA,IACJ,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI,EAAE,WAAW,MAAM,GAAG,QAAQ;AAClC,QAAM,SAAS;AAAA,IACb,GAAI,MAAM,QAAQ,SAAS,IAAI,YAAY;AAAA,IAC3C;AAAA,EACF;AACA,MAAI,iBAAiB;AACnB,WAAO;AAAA;AAAA,MACW,QAAQ,oBAAoB,EACzC;AAAA,IACL;AAAA,EACF;AACA,QAAM,WAAW,4BAAY;AAC7B,SAAO,SAAS;AAAA,IACd;AAAA,MACE;AAAA;AAAA,QACoB,QAAQ,oBAAoB,EAAE;AAAA;AAAA;AAAA,QAC9B,QAAQ,oBAAoB,EAAE;AAAA;AAAA,IACpD;AAAA,IACA;AAAA,MACE,WAAW;AAAA,MACX,UAAU;AAAA,MACV,oBAAoB;AAAA,MACpB,KAAK;AAAA,MACL,GAAG;AAAA,MACH,GAAI,SAAS,EAAE,OAAO,IAAI,CAAC;AAAA,IAC7B;AAAA,EACF;AACF;AAEA,MAAM,eAAe,oBAAI,IAAI;AAAA;AAKtB,SAAS,eACd,MACA,SAC2B;AAC3B,QAAM,WAAW,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AACnD,QAAM,MAAM,KAAK,UAAU,EAAE,UAAU,QAAQ,CAAC;AAChD,MAAI,UAAU,aAAa,IAAI,GAAG;AAClC,MAAI,SAAS;AACX,WAAO;AAAA,EACT;AAGA,QAAM,mBAAmB,SAAS,OAAO,OAAK,CAAC,EAAE,WAAW,GAAG,CAAC;AAChE,QAAM,mBAAmB,SACtB,OAAO,OAAK,EAAE,WAAW,GAAG,CAAC,EAC7B,IAAI,OAAK,EAAE,MAAM,CAAC,CAAC;AAEtB,QAAM,YAAY,6BAAa;AAG/B,QAAM,eAAe;AAAA,IACnB,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,GAAG;AAAA,IACH,GAAI,iBAAiB,SAAS,IAAI,EAAE,QAAQ,iBAAiB,IAAI,CAAC;AAAA,EACpE;AAEA,YAAU;AAAA,IACR,iBAAiB,SAAS,IAAI,mBAAmB;AAAA,IACjD;AAAA,EACF;AAEA,eAAa,IAAI,KAAK,OAAO;AAC7B,SAAO;AACT;",
6
+ "names": ["ObjectFreeze"]
7
+ }
@@ -0,0 +1,53 @@
1
+ export interface HttpRequestOptions {
2
+ body?: Buffer | string | undefined;
3
+ followRedirects?: boolean | undefined;
4
+ headers?: Record<string, string> | undefined;
5
+ maxRedirects?: number | undefined;
6
+ method?: string | undefined;
7
+ retries?: number | undefined;
8
+ retryDelay?: number | undefined;
9
+ timeout?: number | undefined;
10
+ }
11
+ export interface HttpResponse {
12
+ arrayBuffer(): ArrayBuffer;
13
+ body: Buffer;
14
+ headers: Record<string, string | string[] | undefined>;
15
+ json<T = unknown>(): T;
16
+ ok: boolean;
17
+ status: number;
18
+ statusText: string;
19
+ text(): string;
20
+ }
21
+ export interface HttpDownloadOptions {
22
+ headers?: Record<string, string> | undefined;
23
+ onProgress?: ((downloaded: number, total: number) => void) | undefined;
24
+ retries?: number | undefined;
25
+ retryDelay?: number | undefined;
26
+ timeout?: number | undefined;
27
+ }
28
+ export interface HttpDownloadResult {
29
+ path: string;
30
+ size: number;
31
+ }
32
+ /**
33
+ * Make an HTTP/HTTPS request with retry logic and redirect support.
34
+ * Provides a fetch-like API using Node.js native http/https modules.
35
+ * @throws {Error} When all retries are exhausted or non-retryable error occurs.
36
+ */
37
+ export declare function httpRequest(url: string, options?: HttpRequestOptions | undefined): Promise<HttpResponse>;
38
+ /**
39
+ * Download a file from a URL to a local path with retry logic and progress callbacks.
40
+ * Uses streaming to avoid loading entire file in memory.
41
+ * @throws {Error} When all retries are exhausted or download fails.
42
+ */
43
+ export declare function httpDownload(url: string, destPath: string, options?: HttpDownloadOptions | undefined): Promise<HttpDownloadResult>;
44
+ /**
45
+ * Perform a GET request and parse JSON response.
46
+ * @throws {Error} When request fails or JSON parsing fails.
47
+ */
48
+ export declare function httpGetJson<T = unknown>(url: string, options?: HttpRequestOptions | undefined): Promise<T>;
49
+ /**
50
+ * Perform a GET request and return text response.
51
+ * @throws {Error} When request fails.
52
+ */
53
+ export declare function httpGetText(url: string, options?: HttpRequestOptions | undefined): Promise<string>;