@microwiseai/snapshot 0.3.6 → 0.3.26

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 (312) hide show
  1. package/dist/commands/install.d.ts +13 -0
  2. package/dist/commands/install.d.ts.map +1 -1
  3. package/dist/commands/install.js +517 -49
  4. package/dist/commands/install.js.map +1 -1
  5. package/dist/commands/license.d.ts +21 -0
  6. package/dist/commands/license.d.ts.map +1 -0
  7. package/dist/commands/license.js +120 -0
  8. package/dist/commands/license.js.map +1 -0
  9. package/dist/index.js +46 -6
  10. package/dist/index.js.map +1 -1
  11. package/dist/lib/config.d.ts +32 -0
  12. package/dist/lib/config.d.ts.map +1 -1
  13. package/dist/lib/config.js +89 -0
  14. package/dist/lib/config.js.map +1 -1
  15. package/dist/lib/gitlab.d.ts +26 -20
  16. package/dist/lib/gitlab.d.ts.map +1 -1
  17. package/dist/lib/gitlab.js +100 -153
  18. package/dist/lib/gitlab.js.map +1 -1
  19. package/dist/lib/package-resolver.d.ts +48 -0
  20. package/dist/lib/package-resolver.d.ts.map +1 -0
  21. package/dist/lib/package-resolver.js +178 -0
  22. package/dist/lib/package-resolver.js.map +1 -0
  23. package/dist/lib/skit-adapter.d.ts +56 -0
  24. package/dist/lib/skit-adapter.d.ts.map +1 -0
  25. package/dist/lib/skit-adapter.js +166 -0
  26. package/dist/lib/skit-adapter.js.map +1 -0
  27. package/dist/lib/transitive-resolver.d.ts +86 -0
  28. package/dist/lib/transitive-resolver.d.ts.map +1 -0
  29. package/dist/lib/transitive-resolver.js +431 -0
  30. package/dist/lib/transitive-resolver.js.map +1 -0
  31. package/dist/lib/types.d.ts +6 -0
  32. package/dist/lib/types.d.ts.map +1 -1
  33. package/dist/lib.d.ts +59 -0
  34. package/dist/lib.d.ts.map +1 -0
  35. package/dist/lib.js +134 -0
  36. package/dist/lib.js.map +1 -0
  37. package/dist/tools/snapshot-to-license.d.ts +13 -0
  38. package/dist/tools/snapshot-to-license.d.ts.map +1 -0
  39. package/dist/tools/snapshot-to-license.js +105 -0
  40. package/dist/tools/snapshot-to-license.js.map +1 -0
  41. package/node_modules/@microwiseai/cache/README.md +143 -0
  42. package/node_modules/@microwiseai/cache/dist/file.d.ts +97 -0
  43. package/node_modules/@microwiseai/cache/dist/file.d.ts.map +1 -0
  44. package/node_modules/@microwiseai/cache/dist/file.js +256 -0
  45. package/node_modules/@microwiseai/cache/dist/file.js.map +1 -0
  46. package/node_modules/@microwiseai/cache/dist/index.d.ts +10 -0
  47. package/node_modules/@microwiseai/cache/dist/index.d.ts.map +1 -0
  48. package/node_modules/@microwiseai/cache/dist/index.js +11 -0
  49. package/node_modules/@microwiseai/cache/dist/index.js.map +1 -0
  50. package/node_modules/@microwiseai/cache/dist/memory.d.ts +69 -0
  51. package/node_modules/@microwiseai/cache/dist/memory.d.ts.map +1 -0
  52. package/node_modules/@microwiseai/cache/dist/memory.js +152 -0
  53. package/node_modules/@microwiseai/cache/dist/memory.js.map +1 -0
  54. package/node_modules/@microwiseai/cache/dist/types.d.ts +76 -0
  55. package/node_modules/@microwiseai/cache/dist/types.d.ts.map +1 -0
  56. package/node_modules/@microwiseai/cache/dist/types.js +5 -0
  57. package/node_modules/@microwiseai/cache/dist/types.js.map +1 -0
  58. package/node_modules/@microwiseai/cache/package.json +40 -0
  59. package/node_modules/@microwiseai/import-telemetry/dist/__tests__/detector.test.d.ts +7 -0
  60. package/node_modules/@microwiseai/import-telemetry/dist/__tests__/detector.test.d.ts.map +1 -0
  61. package/node_modules/@microwiseai/import-telemetry/dist/__tests__/detector.test.js +139 -0
  62. package/node_modules/@microwiseai/import-telemetry/dist/__tests__/detector.test.js.map +1 -0
  63. package/node_modules/@microwiseai/import-telemetry/dist/__tests__/reporter.test.d.ts +8 -0
  64. package/node_modules/@microwiseai/import-telemetry/dist/__tests__/reporter.test.d.ts.map +1 -0
  65. package/node_modules/@microwiseai/import-telemetry/dist/__tests__/reporter.test.js +195 -0
  66. package/node_modules/@microwiseai/import-telemetry/dist/__tests__/reporter.test.js.map +1 -0
  67. package/node_modules/@microwiseai/import-telemetry/dist/__tests__/types.test.d.ts +8 -0
  68. package/node_modules/@microwiseai/import-telemetry/dist/__tests__/types.test.d.ts.map +1 -0
  69. package/node_modules/@microwiseai/import-telemetry/dist/__tests__/types.test.js +97 -0
  70. package/node_modules/@microwiseai/import-telemetry/dist/__tests__/types.test.js.map +1 -0
  71. package/node_modules/@microwiseai/import-telemetry/dist/detector.d.ts +16 -0
  72. package/node_modules/@microwiseai/import-telemetry/dist/detector.d.ts.map +1 -0
  73. package/node_modules/@microwiseai/import-telemetry/dist/detector.js +103 -0
  74. package/node_modules/@microwiseai/import-telemetry/dist/detector.js.map +1 -0
  75. package/node_modules/@microwiseai/import-telemetry/dist/index.d.ts +48 -0
  76. package/node_modules/@microwiseai/import-telemetry/dist/index.d.ts.map +1 -0
  77. package/node_modules/@microwiseai/import-telemetry/dist/index.js +56 -0
  78. package/node_modules/@microwiseai/import-telemetry/dist/index.js.map +1 -0
  79. package/node_modules/@microwiseai/import-telemetry/dist/reporter.d.ts +16 -0
  80. package/node_modules/@microwiseai/import-telemetry/dist/reporter.d.ts.map +1 -0
  81. package/node_modules/@microwiseai/import-telemetry/dist/reporter.js +147 -0
  82. package/node_modules/@microwiseai/import-telemetry/dist/reporter.js.map +1 -0
  83. package/node_modules/@microwiseai/import-telemetry/dist/types.d.ts +75 -0
  84. package/node_modules/@microwiseai/import-telemetry/dist/types.d.ts.map +1 -0
  85. package/node_modules/@microwiseai/import-telemetry/dist/types.js +23 -0
  86. package/node_modules/@microwiseai/import-telemetry/dist/types.js.map +1 -0
  87. package/node_modules/@microwiseai/import-telemetry/package.json +40 -0
  88. package/node_modules/@microwiseai/license/README.md +157 -0
  89. package/node_modules/@microwiseai/license/dist/api/client.d.ts +37 -0
  90. package/node_modules/@microwiseai/license/dist/api/client.d.ts.map +1 -0
  91. package/node_modules/@microwiseai/license/dist/api/client.js +95 -0
  92. package/node_modules/@microwiseai/license/dist/api/client.js.map +1 -0
  93. package/node_modules/@microwiseai/license/dist/api/endpoints.d.ts +25 -0
  94. package/node_modules/@microwiseai/license/dist/api/endpoints.d.ts.map +1 -0
  95. package/node_modules/@microwiseai/license/dist/api/endpoints.js +101 -0
  96. package/node_modules/@microwiseai/license/dist/api/endpoints.js.map +1 -0
  97. package/node_modules/@microwiseai/license/dist/api/index.d.ts +7 -0
  98. package/node_modules/@microwiseai/license/dist/api/index.d.ts.map +1 -0
  99. package/node_modules/@microwiseai/license/dist/api/index.js +8 -0
  100. package/node_modules/@microwiseai/license/dist/api/index.js.map +1 -0
  101. package/node_modules/@microwiseai/license/dist/cache/file.d.ts +38 -0
  102. package/node_modules/@microwiseai/license/dist/cache/file.d.ts.map +1 -0
  103. package/node_modules/@microwiseai/license/dist/cache/file.js +140 -0
  104. package/node_modules/@microwiseai/license/dist/cache/file.js.map +1 -0
  105. package/node_modules/@microwiseai/license/dist/cache/index.d.ts +7 -0
  106. package/node_modules/@microwiseai/license/dist/cache/index.d.ts.map +1 -0
  107. package/node_modules/@microwiseai/license/dist/cache/index.js +10 -0
  108. package/node_modules/@microwiseai/license/dist/cache/index.js.map +1 -0
  109. package/node_modules/@microwiseai/license/dist/cache/memory.d.ts +35 -0
  110. package/node_modules/@microwiseai/license/dist/cache/memory.d.ts.map +1 -0
  111. package/node_modules/@microwiseai/license/dist/cache/memory.js +77 -0
  112. package/node_modules/@microwiseai/license/dist/cache/memory.js.map +1 -0
  113. package/node_modules/@microwiseai/license/dist/cache/offline.d.ts +29 -0
  114. package/node_modules/@microwiseai/license/dist/cache/offline.d.ts.map +1 -0
  115. package/node_modules/@microwiseai/license/dist/cache/offline.js +58 -0
  116. package/node_modules/@microwiseai/license/dist/cache/offline.js.map +1 -0
  117. package/node_modules/@microwiseai/license/dist/client.d.ts +42 -0
  118. package/node_modules/@microwiseai/license/dist/client.d.ts.map +1 -0
  119. package/node_modules/@microwiseai/license/dist/client.js +83 -0
  120. package/node_modules/@microwiseai/license/dist/client.js.map +1 -0
  121. package/node_modules/@microwiseai/license/dist/config.d.ts +27 -0
  122. package/node_modules/@microwiseai/license/dist/config.d.ts.map +1 -0
  123. package/node_modules/@microwiseai/license/dist/config.js +52 -0
  124. package/node_modules/@microwiseai/license/dist/config.js.map +1 -0
  125. package/node_modules/@microwiseai/license/dist/core/activate.d.ts +21 -0
  126. package/node_modules/@microwiseai/license/dist/core/activate.d.ts.map +1 -0
  127. package/node_modules/@microwiseai/license/dist/core/activate.js +72 -0
  128. package/node_modules/@microwiseai/license/dist/core/activate.js.map +1 -0
  129. package/node_modules/@microwiseai/license/dist/core/check.d.ts +19 -0
  130. package/node_modules/@microwiseai/license/dist/core/check.d.ts.map +1 -0
  131. package/node_modules/@microwiseai/license/dist/core/check.js +244 -0
  132. package/node_modules/@microwiseai/license/dist/core/check.js.map +1 -0
  133. package/node_modules/@microwiseai/license/dist/core/index.d.ts +7 -0
  134. package/node_modules/@microwiseai/license/dist/core/index.d.ts.map +1 -0
  135. package/node_modules/@microwiseai/license/dist/core/index.js +10 -0
  136. package/node_modules/@microwiseai/license/dist/core/index.js.map +1 -0
  137. package/node_modules/@microwiseai/license/dist/core/verify.d.ts +39 -0
  138. package/node_modules/@microwiseai/license/dist/core/verify.d.ts.map +1 -0
  139. package/node_modules/@microwiseai/license/dist/core/verify.js +188 -0
  140. package/node_modules/@microwiseai/license/dist/core/verify.js.map +1 -0
  141. package/node_modules/@microwiseai/license/dist/env.d.ts +33 -0
  142. package/node_modules/@microwiseai/license/dist/env.d.ts.map +1 -0
  143. package/node_modules/@microwiseai/license/dist/env.js +69 -0
  144. package/node_modules/@microwiseai/license/dist/env.js.map +1 -0
  145. package/node_modules/@microwiseai/license/dist/helpers/cache.d.ts +97 -0
  146. package/node_modules/@microwiseai/license/dist/helpers/cache.d.ts.map +1 -0
  147. package/node_modules/@microwiseai/license/dist/helpers/cache.js +198 -0
  148. package/node_modules/@microwiseai/license/dist/helpers/cache.js.map +1 -0
  149. package/node_modules/@microwiseai/license/dist/helpers/index.d.ts +7 -0
  150. package/node_modules/@microwiseai/license/dist/helpers/index.d.ts.map +1 -0
  151. package/node_modules/@microwiseai/license/dist/helpers/index.js +9 -0
  152. package/node_modules/@microwiseai/license/dist/helpers/index.js.map +1 -0
  153. package/node_modules/@microwiseai/license/dist/helpers/telemetry.d.ts +68 -0
  154. package/node_modules/@microwiseai/license/dist/helpers/telemetry.d.ts.map +1 -0
  155. package/node_modules/@microwiseai/license/dist/helpers/telemetry.js +119 -0
  156. package/node_modules/@microwiseai/license/dist/helpers/telemetry.js.map +1 -0
  157. package/node_modules/@microwiseai/license/dist/index.d.ts +34 -0
  158. package/node_modules/@microwiseai/license/dist/index.d.ts.map +1 -0
  159. package/node_modules/@microwiseai/license/dist/index.js +48 -0
  160. package/node_modules/@microwiseai/license/dist/index.js.map +1 -0
  161. package/node_modules/@microwiseai/license/dist/machine/id.d.ts +19 -0
  162. package/node_modules/@microwiseai/license/dist/machine/id.d.ts.map +1 -0
  163. package/node_modules/@microwiseai/license/dist/machine/id.js +83 -0
  164. package/node_modules/@microwiseai/license/dist/machine/id.js.map +1 -0
  165. package/node_modules/@microwiseai/license/dist/machine/index.d.ts +6 -0
  166. package/node_modules/@microwiseai/license/dist/machine/index.d.ts.map +1 -0
  167. package/node_modules/@microwiseai/license/dist/machine/index.js +6 -0
  168. package/node_modules/@microwiseai/license/dist/machine/index.js.map +1 -0
  169. package/node_modules/@microwiseai/license/dist/machine/instance.d.ts +23 -0
  170. package/node_modules/@microwiseai/license/dist/machine/instance.d.ts.map +1 -0
  171. package/node_modules/@microwiseai/license/dist/machine/instance.js +52 -0
  172. package/node_modules/@microwiseai/license/dist/machine/instance.js.map +1 -0
  173. package/node_modules/@microwiseai/license/dist/telemetry/index.d.ts +6 -0
  174. package/node_modules/@microwiseai/license/dist/telemetry/index.d.ts.map +1 -0
  175. package/node_modules/@microwiseai/license/dist/telemetry/index.js +6 -0
  176. package/node_modules/@microwiseai/license/dist/telemetry/index.js.map +1 -0
  177. package/node_modules/@microwiseai/license/dist/telemetry/manager.d.ts +53 -0
  178. package/node_modules/@microwiseai/license/dist/telemetry/manager.d.ts.map +1 -0
  179. package/node_modules/@microwiseai/license/dist/telemetry/manager.js +125 -0
  180. package/node_modules/@microwiseai/license/dist/telemetry/manager.js.map +1 -0
  181. package/node_modules/@microwiseai/license/dist/telemetry/payload.d.ts +17 -0
  182. package/node_modules/@microwiseai/license/dist/telemetry/payload.d.ts.map +1 -0
  183. package/node_modules/@microwiseai/license/dist/telemetry/payload.js +65 -0
  184. package/node_modules/@microwiseai/license/dist/telemetry/payload.js.map +1 -0
  185. package/node_modules/@microwiseai/license/dist/types/api.d.ts +120 -0
  186. package/node_modules/@microwiseai/license/dist/types/api.d.ts.map +1 -0
  187. package/node_modules/@microwiseai/license/dist/types/api.js +5 -0
  188. package/node_modules/@microwiseai/license/dist/types/api.js.map +1 -0
  189. package/node_modules/@microwiseai/license/dist/types/config.d.ts +80 -0
  190. package/node_modules/@microwiseai/license/dist/types/config.d.ts.map +1 -0
  191. package/node_modules/@microwiseai/license/dist/types/config.js +12 -0
  192. package/node_modules/@microwiseai/license/dist/types/config.js.map +1 -0
  193. package/node_modules/@microwiseai/license/dist/types/errors.d.ts +93 -0
  194. package/node_modules/@microwiseai/license/dist/types/errors.d.ts.map +1 -0
  195. package/node_modules/@microwiseai/license/dist/types/errors.js +144 -0
  196. package/node_modules/@microwiseai/license/dist/types/errors.js.map +1 -0
  197. package/node_modules/@microwiseai/license/dist/types/index.d.ts +10 -0
  198. package/node_modules/@microwiseai/license/dist/types/index.d.ts.map +1 -0
  199. package/node_modules/@microwiseai/license/dist/types/index.js +6 -0
  200. package/node_modules/@microwiseai/license/dist/types/index.js.map +1 -0
  201. package/node_modules/@microwiseai/license/dist/types/license.d.ts +113 -0
  202. package/node_modules/@microwiseai/license/dist/types/license.d.ts.map +1 -0
  203. package/node_modules/@microwiseai/license/dist/types/license.js +5 -0
  204. package/node_modules/@microwiseai/license/dist/types/license.js.map +1 -0
  205. package/node_modules/@microwiseai/license/dist/utils/date.d.ts +45 -0
  206. package/node_modules/@microwiseai/license/dist/utils/date.d.ts.map +1 -0
  207. package/node_modules/@microwiseai/license/dist/utils/date.js +95 -0
  208. package/node_modules/@microwiseai/license/dist/utils/date.js.map +1 -0
  209. package/node_modules/@microwiseai/license/dist/utils/env.d.ts +41 -0
  210. package/node_modules/@microwiseai/license/dist/utils/env.d.ts.map +1 -0
  211. package/node_modules/@microwiseai/license/dist/utils/env.js +80 -0
  212. package/node_modules/@microwiseai/license/dist/utils/env.js.map +1 -0
  213. package/node_modules/@microwiseai/license/dist/utils/index.d.ts +7 -0
  214. package/node_modules/@microwiseai/license/dist/utils/index.d.ts.map +1 -0
  215. package/node_modules/@microwiseai/license/dist/utils/index.js +7 -0
  216. package/node_modules/@microwiseai/license/dist/utils/index.js.map +1 -0
  217. package/node_modules/@microwiseai/license/dist/utils/mask.d.ts +27 -0
  218. package/node_modules/@microwiseai/license/dist/utils/mask.d.ts.map +1 -0
  219. package/node_modules/@microwiseai/license/dist/utils/mask.js +67 -0
  220. package/node_modules/@microwiseai/license/dist/utils/mask.js.map +1 -0
  221. package/node_modules/@microwiseai/license/package.json +52 -0
  222. package/node_modules/@microwiseai/license-types/README.md +84 -0
  223. package/node_modules/@microwiseai/license-types/dist/api.d.ts +120 -0
  224. package/node_modules/@microwiseai/license-types/dist/api.d.ts.map +1 -0
  225. package/node_modules/@microwiseai/license-types/dist/api.js +5 -0
  226. package/node_modules/@microwiseai/license-types/dist/api.js.map +1 -0
  227. package/node_modules/@microwiseai/license-types/dist/config.d.ts +80 -0
  228. package/node_modules/@microwiseai/license-types/dist/config.d.ts.map +1 -0
  229. package/node_modules/@microwiseai/license-types/dist/config.js +12 -0
  230. package/node_modules/@microwiseai/license-types/dist/config.js.map +1 -0
  231. package/node_modules/@microwiseai/license-types/dist/errors.d.ts +93 -0
  232. package/node_modules/@microwiseai/license-types/dist/errors.d.ts.map +1 -0
  233. package/node_modules/@microwiseai/license-types/dist/errors.js +144 -0
  234. package/node_modules/@microwiseai/license-types/dist/errors.js.map +1 -0
  235. package/node_modules/@microwiseai/license-types/dist/index.d.ts +10 -0
  236. package/node_modules/@microwiseai/license-types/dist/index.d.ts.map +1 -0
  237. package/node_modules/@microwiseai/license-types/dist/index.js +6 -0
  238. package/node_modules/@microwiseai/license-types/dist/index.js.map +1 -0
  239. package/node_modules/@microwiseai/license-types/dist/license.d.ts +113 -0
  240. package/node_modules/@microwiseai/license-types/dist/license.d.ts.map +1 -0
  241. package/node_modules/@microwiseai/license-types/dist/license.js +5 -0
  242. package/node_modules/@microwiseai/license-types/dist/license.js.map +1 -0
  243. package/node_modules/@microwiseai/license-types/package.json +38 -0
  244. package/node_modules/@microwiseai/license-utils/README.md +82 -0
  245. package/node_modules/@microwiseai/license-utils/dist/__tests__/machine.test.d.ts +2 -0
  246. package/node_modules/@microwiseai/license-utils/dist/__tests__/machine.test.d.ts.map +1 -0
  247. package/node_modules/@microwiseai/license-utils/dist/__tests__/machine.test.js +124 -0
  248. package/node_modules/@microwiseai/license-utils/dist/__tests__/machine.test.js.map +1 -0
  249. package/node_modules/@microwiseai/license-utils/dist/index.d.ts +7 -0
  250. package/node_modules/@microwiseai/license-utils/dist/index.d.ts.map +1 -0
  251. package/node_modules/@microwiseai/license-utils/dist/index.js +15 -0
  252. package/node_modules/@microwiseai/license-utils/dist/index.js.map +1 -0
  253. package/node_modules/@microwiseai/license-utils/dist/machine/id.d.ts +19 -0
  254. package/node_modules/@microwiseai/license-utils/dist/machine/id.d.ts.map +1 -0
  255. package/node_modules/@microwiseai/license-utils/dist/machine/id.js +83 -0
  256. package/node_modules/@microwiseai/license-utils/dist/machine/id.js.map +1 -0
  257. package/node_modules/@microwiseai/license-utils/dist/machine/index.d.ts +6 -0
  258. package/node_modules/@microwiseai/license-utils/dist/machine/index.d.ts.map +1 -0
  259. package/node_modules/@microwiseai/license-utils/dist/machine/index.js +6 -0
  260. package/node_modules/@microwiseai/license-utils/dist/machine/index.js.map +1 -0
  261. package/node_modules/@microwiseai/license-utils/dist/machine/instance.d.ts +23 -0
  262. package/node_modules/@microwiseai/license-utils/dist/machine/instance.d.ts.map +1 -0
  263. package/node_modules/@microwiseai/license-utils/dist/machine/instance.js +52 -0
  264. package/node_modules/@microwiseai/license-utils/dist/machine/instance.js.map +1 -0
  265. package/node_modules/@microwiseai/license-utils/dist/utils/date.d.ts +45 -0
  266. package/node_modules/@microwiseai/license-utils/dist/utils/date.d.ts.map +1 -0
  267. package/node_modules/@microwiseai/license-utils/dist/utils/date.js +95 -0
  268. package/node_modules/@microwiseai/license-utils/dist/utils/date.js.map +1 -0
  269. package/node_modules/@microwiseai/license-utils/dist/utils/env.d.ts +16 -0
  270. package/node_modules/@microwiseai/license-utils/dist/utils/env.d.ts.map +1 -0
  271. package/node_modules/@microwiseai/license-utils/dist/utils/env.js +22 -0
  272. package/node_modules/@microwiseai/license-utils/dist/utils/env.js.map +1 -0
  273. package/node_modules/@microwiseai/license-utils/dist/utils/index.d.ts +7 -0
  274. package/node_modules/@microwiseai/license-utils/dist/utils/index.d.ts.map +1 -0
  275. package/node_modules/@microwiseai/license-utils/dist/utils/index.js +7 -0
  276. package/node_modules/@microwiseai/license-utils/dist/utils/index.js.map +1 -0
  277. package/node_modules/@microwiseai/license-utils/dist/utils/mask.d.ts +27 -0
  278. package/node_modules/@microwiseai/license-utils/dist/utils/mask.d.ts.map +1 -0
  279. package/node_modules/@microwiseai/license-utils/dist/utils/mask.js +67 -0
  280. package/node_modules/@microwiseai/license-utils/dist/utils/mask.js.map +1 -0
  281. package/node_modules/@microwiseai/license-utils/package.json +45 -0
  282. package/node_modules/@microwiseai/telemetry/README.md +86 -0
  283. package/node_modules/@microwiseai/telemetry/dist/index.d.ts +9 -0
  284. package/node_modules/@microwiseai/telemetry/dist/index.d.ts.map +1 -0
  285. package/node_modules/@microwiseai/telemetry/dist/index.js +10 -0
  286. package/node_modules/@microwiseai/telemetry/dist/index.js.map +1 -0
  287. package/node_modules/@microwiseai/telemetry/dist/manager.d.ts +71 -0
  288. package/node_modules/@microwiseai/telemetry/dist/manager.d.ts.map +1 -0
  289. package/node_modules/@microwiseai/telemetry/dist/manager.js +171 -0
  290. package/node_modules/@microwiseai/telemetry/dist/manager.js.map +1 -0
  291. package/node_modules/@microwiseai/telemetry/dist/payload.d.ts +13 -0
  292. package/node_modules/@microwiseai/telemetry/dist/payload.d.ts.map +1 -0
  293. package/node_modules/@microwiseai/telemetry/dist/payload.js +35 -0
  294. package/node_modules/@microwiseai/telemetry/dist/payload.js.map +1 -0
  295. package/node_modules/@microwiseai/telemetry/dist/types.d.ts +76 -0
  296. package/node_modules/@microwiseai/telemetry/dist/types.d.ts.map +1 -0
  297. package/node_modules/@microwiseai/telemetry/dist/types.js +13 -0
  298. package/node_modules/@microwiseai/telemetry/dist/types.js.map +1 -0
  299. package/node_modules/@microwiseai/telemetry/package.json +43 -0
  300. package/node_modules/chalk/license +9 -0
  301. package/node_modules/chalk/package.json +83 -0
  302. package/node_modules/chalk/readme.md +297 -0
  303. package/node_modules/chalk/source/index.d.ts +325 -0
  304. package/node_modules/chalk/source/index.js +225 -0
  305. package/node_modules/chalk/source/utilities.js +33 -0
  306. package/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +236 -0
  307. package/node_modules/chalk/source/vendor/ansi-styles/index.js +223 -0
  308. package/node_modules/chalk/source/vendor/supports-color/browser.d.ts +1 -0
  309. package/node_modules/chalk/source/vendor/supports-color/browser.js +34 -0
  310. package/node_modules/chalk/source/vendor/supports-color/index.d.ts +55 -0
  311. package/node_modules/chalk/source/vendor/supports-color/index.js +190 -0
  312. package/package.json +26 -2
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Skit Adapter
3
+ *
4
+ * @ist/skit lib 연동을 위한 어댑터
5
+ * - lib가 있으면 직접 호출 (v0.1.8+)
6
+ * - lib가 없으면 CLI fallback
7
+ *
8
+ * @ist/skit lib 인터페이스 (v0.1.8):
9
+ * - installSkit(spec: string, options?: { sessionToken?, onProgress? })
10
+ * - listSkits(options?: { ... })
11
+ */
12
+ import { execSync } from 'child_process';
13
+ import { getSessionToken } from './config.js';
14
+ // ============================================================
15
+ // Lib Loader
16
+ // ============================================================
17
+ let skitLib = null;
18
+ let libLoadAttempted = false;
19
+ /**
20
+ * Try to load @ist/skit lib
21
+ * Returns null if not available (will use CLI fallback)
22
+ */
23
+ async function loadSkitLib() {
24
+ if (libLoadAttempted) {
25
+ return skitLib;
26
+ }
27
+ libLoadAttempted = true;
28
+ try {
29
+ // Dynamic import from @ist/skit/lib (v0.1.8+)
30
+ // @ts-expect-error - @ist/skit/lib may not be available
31
+ const skit = await import('@ist/skit/lib');
32
+ // Check if lib exports exist
33
+ if (typeof skit.installSkit === 'function') {
34
+ skitLib = {
35
+ installSkit: skit.installSkit,
36
+ listSkits: skit.listSkits,
37
+ };
38
+ return skitLib;
39
+ }
40
+ // Lib exists but no installSkit export
41
+ return null;
42
+ }
43
+ catch {
44
+ // @ist/skit/lib not installed or doesn't have lib exports
45
+ return null;
46
+ }
47
+ }
48
+ /**
49
+ * Reset lib loader (for testing)
50
+ */
51
+ export function resetSkitLibLoader() {
52
+ skitLib = null;
53
+ libLoadAttempted = false;
54
+ }
55
+ // ============================================================
56
+ // CLI Fallback
57
+ // ============================================================
58
+ function runSkitCli(command) {
59
+ try {
60
+ const output = execSync(command, { stdio: 'pipe', encoding: 'utf-8' });
61
+ return { success: true, output };
62
+ }
63
+ catch (err) {
64
+ const error = err instanceof Error ? err.message : String(err);
65
+ return { success: false, error };
66
+ }
67
+ }
68
+ function installSkitViaCli(spec, options) {
69
+ // Parse spec: "@ist/tda-kit@1.0.0" -> name: "@ist/tda-kit", version: "1.0.0"
70
+ const atIndex = spec.lastIndexOf('@');
71
+ let name;
72
+ let version;
73
+ if (atIndex > 0) {
74
+ name = spec.substring(0, atIndex);
75
+ version = spec.substring(atIndex + 1);
76
+ }
77
+ else {
78
+ name = spec;
79
+ version = 'latest';
80
+ }
81
+ const command = `skit install ${spec}`;
82
+ if (!options?.silent) {
83
+ options?.onProgress?.(`[skit-cli] ${command}`);
84
+ }
85
+ const result = runSkitCli(command);
86
+ return {
87
+ success: result.success,
88
+ name,
89
+ version,
90
+ error: result.success ? undefined : result.error || `CLI command failed: ${command}`,
91
+ };
92
+ }
93
+ // ============================================================
94
+ // Public API
95
+ // ============================================================
96
+ /**
97
+ * Install a skit package
98
+ * Uses @ist/skit lib if available, falls back to CLI
99
+ *
100
+ * @param name - Package name (e.g., "@ist/tda-kit")
101
+ * @param version - Version (e.g., "1.0.0")
102
+ * @param options - Install options
103
+ */
104
+ export async function installSkitPackage(name, version, options) {
105
+ const spec = version ? `${name}@${version}` : name;
106
+ // Try lib first
107
+ const lib = await loadSkitLib();
108
+ if (lib) {
109
+ try {
110
+ // Get session token from options or config
111
+ const sessionToken = options?.sessionToken || getSessionToken() || undefined;
112
+ const libResult = await lib.installSkit(spec, {
113
+ sessionToken,
114
+ onProgress: options?.silent ? undefined : options?.onProgress,
115
+ });
116
+ return {
117
+ success: libResult.success,
118
+ name: libResult.name || name,
119
+ version: libResult.version || version,
120
+ installedPath: libResult.path,
121
+ error: libResult.error,
122
+ };
123
+ }
124
+ catch (error) {
125
+ // Lib call failed, fall through to CLI
126
+ const errMsg = error instanceof Error ? error.message : String(error);
127
+ if (!options?.silent) {
128
+ console.warn(`[skit-adapter] Lib call failed, using CLI fallback: ${errMsg}`);
129
+ }
130
+ }
131
+ }
132
+ // CLI fallback
133
+ return installSkitViaCli(spec, options);
134
+ }
135
+ /**
136
+ * Check if skit lib is available
137
+ */
138
+ export async function isSkitLibAvailable() {
139
+ const lib = await loadSkitLib();
140
+ return lib !== null;
141
+ }
142
+ /**
143
+ * Check if skit CLI is available
144
+ */
145
+ export function isSkitCliAvailable() {
146
+ try {
147
+ execSync('skit --version', { stdio: 'pipe' });
148
+ return true;
149
+ }
150
+ catch {
151
+ return false;
152
+ }
153
+ }
154
+ /**
155
+ * Get skit availability info
156
+ */
157
+ export async function getSkitAvailability() {
158
+ const lib = await isSkitLibAvailable();
159
+ const cli = isSkitCliAvailable();
160
+ return {
161
+ lib,
162
+ cli,
163
+ preferred: lib ? 'lib' : cli ? 'cli' : 'none',
164
+ };
165
+ }
166
+ //# sourceMappingURL=skit-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skit-adapter.js","sourceRoot":"","sources":["../../src/lib/skit-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Transitive Dependency Resolver
3
+ *
4
+ * snapshot과 skit을 재귀적으로 탐색하여 모든 npm 패키지를 수집하고
5
+ * registry-proxy의 /resolve-deps API를 통해 transitive deps를 해석
6
+ */
7
+ export interface SkitManifest {
8
+ name: string;
9
+ version: string;
10
+ dependencies?: {
11
+ npm?: Record<string, string>;
12
+ skit?: Record<string, string>;
13
+ cli?: Array<{
14
+ name: string;
15
+ install: string;
16
+ }>;
17
+ };
18
+ }
19
+ export interface ResolvedPackage {
20
+ name: string;
21
+ version: string;
22
+ isDirect: boolean;
23
+ source: 'snapshot' | 'skit' | 'transitive';
24
+ requestedBy?: string;
25
+ }
26
+ export interface TransitiveResolutionResult {
27
+ /** 수집된 모든 npm 패키지 (직접 + transitive) */
28
+ npm: ResolvedPackage[];
29
+ /** 수집된 모든 skit 패키지 */
30
+ skit: ResolvedPackage[];
31
+ /** 에러 발생한 패키지들 */
32
+ errors: Array<{
33
+ name: string;
34
+ error: string;
35
+ }>;
36
+ /** scope → groupId 매핑 (snapshot registry에서 수집) */
37
+ scopeGroups: Record<string, string>;
38
+ }
39
+ /**
40
+ * license-api /resolve-deps 응답 타입 (normalized)
41
+ */
42
+ export interface LicenseApiResolveDepsResponse {
43
+ dependencies: Record<string, string>;
44
+ peerDependencies?: Record<string, string>;
45
+ }
46
+ export interface ResolveOptions {
47
+ /** proxy를 통해 transitive deps 해석 */
48
+ resolveTransitive?: boolean;
49
+ /** transitive 해석 대상 스코프 */
50
+ scopes?: string[];
51
+ /** GitLab group ID */
52
+ groupId?: string;
53
+ }
54
+ /**
55
+ * Snapshot의 모든 의존성을 재귀적으로 탐색하고
56
+ * npm transitive deps까지 해석
57
+ */
58
+ export declare function resolveAllDependencies(snapshotName: string, options?: ResolveOptions): Promise<TransitiveResolutionResult>;
59
+ export interface ResolveDepsFromLicenseOptions {
60
+ /** Package list to resolve (e.g., ['@microwiseai/foo@1.0.0']) */
61
+ packages: string[];
62
+ /** GitLab group ID (string) */
63
+ groupId: string;
64
+ /** Package scopes (e.g., ['@microwiseai']) */
65
+ scopes: string[];
66
+ /** Include peer dependencies in response (default: true) */
67
+ includePeer?: boolean;
68
+ }
69
+ /**
70
+ * license-api의 /resolve-deps API를 호출하여 의존성 해석
71
+ *
72
+ * @example
73
+ * const result = await resolveDepsFromLicenseAPI({
74
+ * groupId: 12345,
75
+ * scopes: ['@ist', '@microwiseai'],
76
+ * includePeer: true,
77
+ * });
78
+ * // result.dependencies: { "@ist/tda-kit": "^1.0.0" }
79
+ * // result.peerDependencies: { "typescript": "^5.0.0" }
80
+ */
81
+ export declare function resolveDepsFromLicenseAPI(options: ResolveDepsFromLicenseOptions): Promise<LicenseApiResolveDepsResponse>;
82
+ /**
83
+ * 캐시 클리어
84
+ */
85
+ export declare function clearTransitiveCache(): void;
86
+ //# sourceMappingURL=transitive-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transitive-resolver.d.ts","sourceRoot":"","sources":["../../src/lib/transitive-resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE;QACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,GAAG,CAAC,EAAE,KAAK,CAAC;YACV,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC,CAAC;KACJ,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,YAAY,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,uCAAuC;IACvC,GAAG,EAAE,eAAe,EAAE,CAAC;IACvB,sBAAsB;IACtB,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,kBAAkB;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAYD;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAmWD,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,0BAA0B,CAAC,CAkDrC;AAMD,MAAM,WAAW,6BAA6B;IAC5C,iEAAiE;IACjE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,6BAA6B,CAAC,CAiGxC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
@@ -0,0 +1,431 @@
1
+ /**
2
+ * Transitive Dependency Resolver
3
+ *
4
+ * snapshot과 skit을 재귀적으로 탐색하여 모든 npm 패키지를 수집하고
5
+ * registry-proxy의 /resolve-deps API를 통해 transitive deps를 해석
6
+ */
7
+ import { getSessionToken, REGISTRY_PROXY_URL, GITLAB_GROUP_ID } from './config.js';
8
+ import { fetchSnapshotFromRepo } from './gitlab.js';
9
+ // ============================================================
10
+ // Skit Manifest Fetcher
11
+ // ============================================================
12
+ const skitManifestCache = new Map();
13
+ /**
14
+ * Skit 패키지의 skit.json을 가져옴
15
+ */
16
+ async function fetchSkitManifest(pkgName, _version) {
17
+ const cacheKey = `${pkgName}@${_version}`;
18
+ if (skitManifestCache.has(cacheKey)) {
19
+ return skitManifestCache.get(cacheKey);
20
+ }
21
+ const sessionToken = getSessionToken();
22
+ const headers = {
23
+ 'Accept': 'application/json',
24
+ };
25
+ if (sessionToken) {
26
+ headers['Authorization'] = `Bearer ${sessionToken}`;
27
+ }
28
+ try {
29
+ // registry-proxy를 통해 패키지 메타데이터 조회
30
+ const url = `${REGISTRY_PROXY_URL}/${pkgName}`;
31
+ const response = await fetch(url, { headers });
32
+ if (!response.ok) {
33
+ return null;
34
+ }
35
+ const data = await response.json();
36
+ const distTags = data['dist-tags'];
37
+ const versions = data['versions'];
38
+ // 버전 확인 (latest 또는 지정된 버전)
39
+ let targetVersion = _version;
40
+ if (_version === 'latest' && distTags?.['latest']) {
41
+ targetVersion = distTags['latest'];
42
+ }
43
+ const versionData = versions?.[targetVersion];
44
+ if (!versionData) {
45
+ return null;
46
+ }
47
+ // skit.json 데이터 추출 (패키지에 포함된 경우)
48
+ const skitConfig = versionData['skit'];
49
+ const manifest = {
50
+ name: pkgName,
51
+ version: targetVersion,
52
+ dependencies: skitConfig ? { ...skitConfig } : undefined,
53
+ };
54
+ skitManifestCache.set(cacheKey, manifest);
55
+ return manifest;
56
+ }
57
+ catch {
58
+ return null;
59
+ }
60
+ }
61
+ /**
62
+ * Snapshot을 재귀적으로 탐색
63
+ */
64
+ async function traverseSnapshot(snapshotName, ctx) {
65
+ if (ctx.visitedSnapshots.has(snapshotName)) {
66
+ return;
67
+ }
68
+ ctx.visitedSnapshots.add(snapshotName);
69
+ let snapshot;
70
+ try {
71
+ snapshot = await fetchSnapshotFromRepo(snapshotName);
72
+ }
73
+ catch (error) {
74
+ ctx.errors.push({
75
+ name: snapshotName,
76
+ error: `Failed to fetch snapshot: ${error instanceof Error ? error.message : String(error)}`,
77
+ });
78
+ return;
79
+ }
80
+ // extends 처리 (먼저 base snapshot 탐색)
81
+ if (snapshot.extends) {
82
+ await traverseSnapshot(snapshot.extends, ctx);
83
+ }
84
+ // registry 정보 수집 (scope → group 매핑)
85
+ if (snapshot.registry) {
86
+ for (const [scope, config] of Object.entries(snapshot.registry)) {
87
+ if (config.group && !ctx.scopeGroups.has(scope)) {
88
+ ctx.scopeGroups.set(scope, config.group);
89
+ }
90
+ }
91
+ }
92
+ // skits 필드 처리
93
+ if (snapshot.skits) {
94
+ for (const [name, version] of Object.entries(snapshot.skits)) {
95
+ if (!ctx.collectedSkit.has(name)) {
96
+ ctx.collectedSkit.set(name, {
97
+ name,
98
+ version,
99
+ isDirect: true,
100
+ source: 'snapshot',
101
+ });
102
+ }
103
+ await traverseSkit(name, version, ctx);
104
+ }
105
+ }
106
+ // install 블록 처리
107
+ if (snapshot.install) {
108
+ for (const [installerName, packages] of Object.entries(snapshot.install)) {
109
+ for (const [name, version] of Object.entries(packages)) {
110
+ if (installerName === 'skit') {
111
+ if (!ctx.collectedSkit.has(name)) {
112
+ ctx.collectedSkit.set(name, {
113
+ name,
114
+ version,
115
+ isDirect: true,
116
+ source: 'snapshot',
117
+ });
118
+ }
119
+ await traverseSkit(name, version, ctx);
120
+ }
121
+ else {
122
+ // npm 또는 glpkg 패키지
123
+ if (!ctx.collectedNpm.has(name)) {
124
+ ctx.collectedNpm.set(name, {
125
+ name,
126
+ version,
127
+ isDirect: true,
128
+ source: 'snapshot',
129
+ });
130
+ }
131
+ }
132
+ }
133
+ }
134
+ }
135
+ // packages 필드 (legacy)
136
+ if (snapshot.packages) {
137
+ for (const [name, version] of Object.entries(snapshot.packages)) {
138
+ // -kit로 끝나면 skit으로 간주
139
+ if (name.endsWith('-kit') || name.endsWith('kit')) {
140
+ if (!ctx.collectedSkit.has(name)) {
141
+ ctx.collectedSkit.set(name, {
142
+ name,
143
+ version,
144
+ isDirect: true,
145
+ source: 'snapshot',
146
+ });
147
+ }
148
+ await traverseSkit(name, version, ctx);
149
+ }
150
+ else {
151
+ if (!ctx.collectedNpm.has(name)) {
152
+ ctx.collectedNpm.set(name, {
153
+ name,
154
+ version,
155
+ isDirect: true,
156
+ source: 'snapshot',
157
+ });
158
+ }
159
+ }
160
+ }
161
+ }
162
+ }
163
+ /**
164
+ * Skit을 재귀적으로 탐색
165
+ */
166
+ async function traverseSkit(skitName, skitVersion, ctx) {
167
+ const key = `${skitName}@${skitVersion}`;
168
+ if (ctx.visitedSkits.has(key)) {
169
+ return;
170
+ }
171
+ ctx.visitedSkits.add(key);
172
+ const manifest = await fetchSkitManifest(skitName, skitVersion);
173
+ if (!manifest) {
174
+ // skit manifest 없으면 스킵 (콘텐츠 전용 skit일 수 있음)
175
+ return;
176
+ }
177
+ const deps = manifest.dependencies;
178
+ if (!deps) {
179
+ return;
180
+ }
181
+ // npm 의존성 수집
182
+ if (deps.npm) {
183
+ for (const [name, version] of Object.entries(deps.npm)) {
184
+ if (!ctx.collectedNpm.has(name)) {
185
+ ctx.collectedNpm.set(name, {
186
+ name,
187
+ version,
188
+ isDirect: false,
189
+ source: 'skit',
190
+ requestedBy: skitName,
191
+ });
192
+ }
193
+ }
194
+ }
195
+ // skit 의존성 재귀 탐색
196
+ if (deps.skit) {
197
+ for (const [name, version] of Object.entries(deps.skit)) {
198
+ if (!ctx.collectedSkit.has(name)) {
199
+ ctx.collectedSkit.set(name, {
200
+ name,
201
+ version,
202
+ isDirect: false,
203
+ source: 'skit',
204
+ requestedBy: skitName,
205
+ });
206
+ }
207
+ await traverseSkit(name, version, ctx);
208
+ }
209
+ }
210
+ // cli 의존성에서 npm 패키지 추출 시도 (deprecated, 하위호환)
211
+ if (deps.cli) {
212
+ for (const cli of deps.cli) {
213
+ const npmMatch = cli.install.match(/npm\s+install\s+(?:-g\s+)?(@?[\w/-]+)(?:@(\S+))?/);
214
+ if (npmMatch) {
215
+ const pkgName = npmMatch[1];
216
+ const pkgVersion = npmMatch[2] || 'latest';
217
+ if (!ctx.collectedNpm.has(pkgName)) {
218
+ ctx.collectedNpm.set(pkgName, {
219
+ name: pkgName,
220
+ version: pkgVersion,
221
+ isDirect: false,
222
+ source: 'skit',
223
+ requestedBy: skitName,
224
+ });
225
+ }
226
+ }
227
+ }
228
+ }
229
+ }
230
+ /**
231
+ * Registry-proxy의 /resolve-deps API를 호출하여
232
+ * npm 패키지의 transitive dependencies 해석
233
+ */
234
+ async function resolveNpmTransitiveDeps(packages, scopes, groupId) {
235
+ if (packages.length === 0 || !groupId) {
236
+ return packages.map(p => ({
237
+ ...p,
238
+ isDirect: true,
239
+ source: 'snapshot',
240
+ }));
241
+ }
242
+ const sessionToken = getSessionToken();
243
+ const headers = {
244
+ 'Content-Type': 'application/json',
245
+ 'Accept': 'application/json',
246
+ };
247
+ if (sessionToken) {
248
+ headers['Authorization'] = `Bearer ${sessionToken}`;
249
+ }
250
+ try {
251
+ const url = `${REGISTRY_PROXY_URL}/resolve-deps`;
252
+ const body = {
253
+ packages: packages.map(p => `${p.name}@${p.version}`),
254
+ groupId,
255
+ scopes,
256
+ includePeer: true,
257
+ };
258
+ const response = await fetch(url, {
259
+ method: 'POST',
260
+ headers,
261
+ body: JSON.stringify(body),
262
+ });
263
+ if (!response.ok) {
264
+ console.warn(`[TransitiveResolver] Failed to resolve transitive deps: ${response.status}`);
265
+ return packages.map(p => ({
266
+ ...p,
267
+ isDirect: true,
268
+ source: 'snapshot',
269
+ }));
270
+ }
271
+ const data = await response.json();
272
+ return data.dependencies.map(d => ({
273
+ name: d.name,
274
+ version: d.version,
275
+ isDirect: d.isDirect,
276
+ source: 'transitive',
277
+ requestedBy: d.requestedBy,
278
+ }));
279
+ }
280
+ catch (error) {
281
+ console.warn(`[TransitiveResolver] Error calling /resolve-deps: ${error}`);
282
+ return packages.map(p => ({
283
+ ...p,
284
+ isDirect: true,
285
+ source: 'snapshot',
286
+ }));
287
+ }
288
+ }
289
+ /**
290
+ * Snapshot의 모든 의존성을 재귀적으로 탐색하고
291
+ * npm transitive deps까지 해석
292
+ */
293
+ export async function resolveAllDependencies(snapshotName, options = {}) {
294
+ const { resolveTransitive = true, scopes = ['@ist', '@microwiseai', '@glpkg'], groupId = GITLAB_GROUP_ID, } = options;
295
+ const ctx = {
296
+ visitedSnapshots: new Set(),
297
+ visitedSkits: new Set(),
298
+ collectedNpm: new Map(),
299
+ collectedSkit: new Map(),
300
+ errors: [],
301
+ scopeGroups: new Map(),
302
+ };
303
+ // 1. Snapshot/Skit 재귀 탐색
304
+ await traverseSnapshot(snapshotName, ctx);
305
+ // 2. npm transitive deps 해석 (optional)
306
+ let npmPackages = Array.from(ctx.collectedNpm.values());
307
+ if (resolveTransitive && npmPackages.length > 0) {
308
+ // 추적 대상 스코프의 패키지만 transitive 해석
309
+ const trackedPackages = npmPackages.filter(p => scopes.some(scope => p.name.startsWith(scope)));
310
+ // snapshot.registry에서 수집한 group 또는 옵션에서 제공된 groupId 사용
311
+ const effectiveGroupId = groupId || Array.from(ctx.scopeGroups.values())[0] || '';
312
+ if (trackedPackages.length > 0 && effectiveGroupId) {
313
+ const resolved = await resolveNpmTransitiveDeps(trackedPackages, scopes, effectiveGroupId);
314
+ // 기존 수집된 것과 merge
315
+ for (const pkg of resolved) {
316
+ if (!ctx.collectedNpm.has(pkg.name)) {
317
+ ctx.collectedNpm.set(pkg.name, pkg);
318
+ }
319
+ }
320
+ npmPackages = Array.from(ctx.collectedNpm.values());
321
+ }
322
+ }
323
+ return {
324
+ npm: npmPackages,
325
+ skit: Array.from(ctx.collectedSkit.values()),
326
+ errors: ctx.errors,
327
+ scopeGroups: Object.fromEntries(ctx.scopeGroups),
328
+ };
329
+ }
330
+ /**
331
+ * license-api의 /resolve-deps API를 호출하여 의존성 해석
332
+ *
333
+ * @example
334
+ * const result = await resolveDepsFromLicenseAPI({
335
+ * groupId: 12345,
336
+ * scopes: ['@ist', '@microwiseai'],
337
+ * includePeer: true,
338
+ * });
339
+ * // result.dependencies: { "@ist/tda-kit": "^1.0.0" }
340
+ * // result.peerDependencies: { "typescript": "^5.0.0" }
341
+ */
342
+ export async function resolveDepsFromLicenseAPI(options) {
343
+ const { packages, groupId, scopes, includePeer = true } = options;
344
+ // Validate required params
345
+ if (!packages || packages.length === 0) {
346
+ throw new Error('[resolveDepsFromLicenseAPI] packages array is required');
347
+ }
348
+ if (!groupId) {
349
+ throw new Error('[resolveDepsFromLicenseAPI] groupId is required');
350
+ }
351
+ if (!scopes || scopes.length === 0) {
352
+ throw new Error('[resolveDepsFromLicenseAPI] scopes array is required');
353
+ }
354
+ const sessionToken = getSessionToken();
355
+ if (!sessionToken) {
356
+ throw new Error('[resolveDepsFromLicenseAPI] No session token available. Please run "snapshot login" first.');
357
+ }
358
+ // Build URL: REGISTRY_PROXY_URL + /resolve-deps
359
+ const url = `${REGISTRY_PROXY_URL}/resolve-deps`;
360
+ const headers = {
361
+ 'Content-Type': 'application/json',
362
+ 'Accept': 'application/json',
363
+ 'Authorization': `Bearer ${sessionToken}`,
364
+ };
365
+ const body = {
366
+ packages,
367
+ groupId,
368
+ scopes,
369
+ includePeer,
370
+ };
371
+ try {
372
+ const response = await fetch(url, {
373
+ method: 'POST',
374
+ headers,
375
+ body: JSON.stringify(body),
376
+ });
377
+ if (!response.ok) {
378
+ // Handle specific error codes
379
+ if (response.status === 401) {
380
+ throw new Error('[resolveDepsFromLicenseAPI] Unauthorized. Session token may be expired. Please run "snapshot login" again.');
381
+ }
382
+ if (response.status === 403) {
383
+ throw new Error('[resolveDepsFromLicenseAPI] Forbidden. You may not have access to this group.');
384
+ }
385
+ if (response.status === 404) {
386
+ throw new Error('[resolveDepsFromLicenseAPI] API endpoint not found. License API may be unavailable.');
387
+ }
388
+ const errorText = await response.text().catch(() => '');
389
+ throw new Error(`[resolveDepsFromLicenseAPI] HTTP ${response.status}: ${errorText || response.statusText}`);
390
+ }
391
+ const rawData = await response.json();
392
+ // Validate response structure
393
+ if (!rawData.dependencies || !Array.isArray(rawData.dependencies)) {
394
+ throw new Error('[resolveDepsFromLicenseAPI] Invalid response: missing dependencies array');
395
+ }
396
+ // Convert array format to Record format
397
+ const dependencies = {};
398
+ for (const dep of rawData.dependencies) {
399
+ if (dep.name && dep.version) {
400
+ dependencies[dep.name] = dep.version;
401
+ }
402
+ }
403
+ const peerDependencies = {};
404
+ if (rawData.peerDependencies && Array.isArray(rawData.peerDependencies)) {
405
+ for (const dep of rawData.peerDependencies) {
406
+ if (dep.name && dep.version) {
407
+ peerDependencies[dep.name] = dep.version;
408
+ }
409
+ }
410
+ }
411
+ return {
412
+ dependencies,
413
+ peerDependencies,
414
+ };
415
+ }
416
+ catch (error) {
417
+ // Re-throw our custom errors
418
+ if (error instanceof Error && error.message.startsWith('[resolveDepsFromLicenseAPI]')) {
419
+ throw error;
420
+ }
421
+ // Network or other errors
422
+ throw new Error(`[resolveDepsFromLicenseAPI] Network error: ${error instanceof Error ? error.message : String(error)}`);
423
+ }
424
+ }
425
+ /**
426
+ * 캐시 클리어
427
+ */
428
+ export function clearTransitiveCache() {
429
+ skitManifestCache.clear();
430
+ }
431
+ //# sourceMappingURL=transitive-resolver.js.map