@hyperfrontend/project-scope 0.1.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 (391) hide show
  1. package/ARCHITECTURE.md +370 -0
  2. package/CHANGELOG.md +10 -0
  3. package/FUNDING.md +141 -0
  4. package/LICENSE.md +21 -0
  5. package/README.md +242 -0
  6. package/SECURITY.md +82 -0
  7. package/analyze.d.ts +33 -0
  8. package/analyze.d.ts.map +1 -0
  9. package/cli/commands/analyze.d.ts +20 -0
  10. package/cli/commands/analyze.d.ts.map +1 -0
  11. package/cli/commands/config.d.ts +20 -0
  12. package/cli/commands/config.d.ts.map +1 -0
  13. package/cli/commands/deps.d.ts +18 -0
  14. package/cli/commands/deps.d.ts.map +1 -0
  15. package/cli/commands/tree.d.ts +24 -0
  16. package/cli/commands/tree.d.ts.map +1 -0
  17. package/cli/index.cjs.js +6639 -0
  18. package/cli/index.cjs.js.map +1 -0
  19. package/cli/index.d.ts +7 -0
  20. package/cli/index.d.ts.map +1 -0
  21. package/cli/index.esm.js +6629 -0
  22. package/cli/index.esm.js.map +1 -0
  23. package/cli/run.d.ts +25 -0
  24. package/cli/run.d.ts.map +1 -0
  25. package/cli/types.d.ts +55 -0
  26. package/cli/types.d.ts.map +1 -0
  27. package/core/cache.d.ts +157 -0
  28. package/core/cache.d.ts.map +1 -0
  29. package/core/encoding/convert.d.ts +32 -0
  30. package/core/encoding/convert.d.ts.map +1 -0
  31. package/core/encoding/detect.d.ts +86 -0
  32. package/core/encoding/detect.d.ts.map +1 -0
  33. package/core/encoding/index.cjs.js +751 -0
  34. package/core/encoding/index.cjs.js.map +1 -0
  35. package/core/encoding/index.d.ts +3 -0
  36. package/core/encoding/index.d.ts.map +1 -0
  37. package/core/encoding/index.esm.js +736 -0
  38. package/core/encoding/index.esm.js.map +1 -0
  39. package/core/errors/structured-errors.d.ts +64 -0
  40. package/core/errors/structured-errors.d.ts.map +1 -0
  41. package/core/fs/directory.d.ts +88 -0
  42. package/core/fs/directory.d.ts.map +1 -0
  43. package/core/fs/index.cjs.js +1079 -0
  44. package/core/fs/index.cjs.js.map +1 -0
  45. package/core/fs/index.d.ts +6 -0
  46. package/core/fs/index.d.ts.map +1 -0
  47. package/core/fs/index.esm.js +1056 -0
  48. package/core/fs/index.esm.js.map +1 -0
  49. package/core/fs/read.d.ts +86 -0
  50. package/core/fs/read.d.ts.map +1 -0
  51. package/core/fs/stat.d.ts +58 -0
  52. package/core/fs/stat.d.ts.map +1 -0
  53. package/core/fs/traversal.d.ts +26 -0
  54. package/core/fs/traversal.d.ts.map +1 -0
  55. package/core/fs/write.d.ts +75 -0
  56. package/core/fs/write.d.ts.map +1 -0
  57. package/core/index.cjs.js +2376 -0
  58. package/core/index.cjs.js.map +1 -0
  59. package/core/index.d.ts +9 -0
  60. package/core/index.d.ts.map +1 -0
  61. package/core/index.esm.js +2286 -0
  62. package/core/index.esm.js.map +1 -0
  63. package/core/logger.d.ts +111 -0
  64. package/core/logger.d.ts.map +1 -0
  65. package/core/path/index.cjs.js +254 -0
  66. package/core/path/index.cjs.js.map +1 -0
  67. package/core/path/index.d.ts +5 -0
  68. package/core/path/index.d.ts.map +1 -0
  69. package/core/path/index.esm.js +233 -0
  70. package/core/path/index.esm.js.map +1 -0
  71. package/core/path/join.d.ts +17 -0
  72. package/core/path/join.d.ts.map +1 -0
  73. package/core/path/normalize.d.ts +37 -0
  74. package/core/path/normalize.d.ts.map +1 -0
  75. package/core/path/resolve.d.ts +52 -0
  76. package/core/path/resolve.d.ts.map +1 -0
  77. package/core/path/segments.d.ts +59 -0
  78. package/core/path/segments.d.ts.map +1 -0
  79. package/core/patterns/glob.d.ts +46 -0
  80. package/core/patterns/glob.d.ts.map +1 -0
  81. package/core/platform/detect.d.ts +66 -0
  82. package/core/platform/detect.d.ts.map +1 -0
  83. package/core/platform/index.cjs.js +241 -0
  84. package/core/platform/index.cjs.js.map +1 -0
  85. package/core/platform/index.d.ts +3 -0
  86. package/core/platform/index.d.ts.map +1 -0
  87. package/core/platform/index.esm.js +226 -0
  88. package/core/platform/index.esm.js.map +1 -0
  89. package/core/platform/line-endings.d.ts +48 -0
  90. package/core/platform/line-endings.d.ts.map +1 -0
  91. package/heuristics/dependencies/analyze.d.ts +77 -0
  92. package/heuristics/dependencies/analyze.d.ts.map +1 -0
  93. package/heuristics/dependencies/index.cjs.js +1126 -0
  94. package/heuristics/dependencies/index.cjs.js.map +1 -0
  95. package/heuristics/dependencies/index.d.ts +2 -0
  96. package/heuristics/dependencies/index.d.ts.map +1 -0
  97. package/heuristics/dependencies/index.esm.js +1122 -0
  98. package/heuristics/dependencies/index.esm.js.map +1 -0
  99. package/heuristics/entry-points/discover.d.ts +86 -0
  100. package/heuristics/entry-points/discover.d.ts.map +1 -0
  101. package/heuristics/entry-points/index.cjs.js +1581 -0
  102. package/heuristics/entry-points/index.cjs.js.map +1 -0
  103. package/heuristics/entry-points/index.d.ts +2 -0
  104. package/heuristics/entry-points/index.d.ts.map +1 -0
  105. package/heuristics/entry-points/index.esm.js +1577 -0
  106. package/heuristics/entry-points/index.esm.js.map +1 -0
  107. package/heuristics/framework/identify.d.ts +84 -0
  108. package/heuristics/framework/identify.d.ts.map +1 -0
  109. package/heuristics/framework/index.cjs.js +3618 -0
  110. package/heuristics/framework/index.cjs.js.map +1 -0
  111. package/heuristics/framework/index.d.ts +2 -0
  112. package/heuristics/framework/index.d.ts.map +1 -0
  113. package/heuristics/framework/index.esm.js +3614 -0
  114. package/heuristics/framework/index.esm.js.map +1 -0
  115. package/heuristics/index.cjs.js +4833 -0
  116. package/heuristics/index.cjs.js.map +1 -0
  117. package/heuristics/index.d.ts +5 -0
  118. package/heuristics/index.d.ts.map +1 -0
  119. package/heuristics/index.esm.js +4822 -0
  120. package/heuristics/index.esm.js.map +1 -0
  121. package/heuristics/project-type/detect.d.ts +61 -0
  122. package/heuristics/project-type/detect.d.ts.map +1 -0
  123. package/heuristics/project-type/index.cjs.js +3633 -0
  124. package/heuristics/project-type/index.cjs.js.map +1 -0
  125. package/heuristics/project-type/index.d.ts +2 -0
  126. package/heuristics/project-type/index.d.ts.map +1 -0
  127. package/heuristics/project-type/index.esm.js +3631 -0
  128. package/heuristics/project-type/index.esm.js.map +1 -0
  129. package/index.cjs.js +10255 -0
  130. package/index.cjs.js.map +1 -0
  131. package/index.d.ts +10 -0
  132. package/index.d.ts.map +1 -0
  133. package/index.esm.js +10006 -0
  134. package/index.esm.js.map +1 -0
  135. package/models/index.cjs.js +3 -0
  136. package/models/index.cjs.js.map +1 -0
  137. package/models/index.d.ts +176 -0
  138. package/models/index.d.ts.map +1 -0
  139. package/models/index.esm.js +2 -0
  140. package/models/index.esm.js.map +1 -0
  141. package/nx/detect.d.ts +105 -0
  142. package/nx/detect.d.ts.map +1 -0
  143. package/nx/devkit-loader.d.ts +62 -0
  144. package/nx/devkit-loader.d.ts.map +1 -0
  145. package/nx/index.cjs.js +1302 -0
  146. package/nx/index.cjs.js.map +1 -0
  147. package/nx/index.d.ts +4 -0
  148. package/nx/index.d.ts.map +1 -0
  149. package/nx/index.esm.js +1286 -0
  150. package/nx/index.esm.js.map +1 -0
  151. package/nx/project-config.d.ts +109 -0
  152. package/nx/project-config.d.ts.map +1 -0
  153. package/package.json +218 -0
  154. package/project/config/detect.d.ts +77 -0
  155. package/project/config/detect.d.ts.map +1 -0
  156. package/project/config/index.cjs.js +1982 -0
  157. package/project/config/index.cjs.js.map +1 -0
  158. package/project/config/index.d.ts +4 -0
  159. package/project/config/index.d.ts.map +1 -0
  160. package/project/config/index.esm.js +1971 -0
  161. package/project/config/index.esm.js.map +1 -0
  162. package/project/config/parse.d.ts +53 -0
  163. package/project/config/parse.d.ts.map +1 -0
  164. package/project/config/patterns.d.ts +31 -0
  165. package/project/config/patterns.d.ts.map +1 -0
  166. package/project/index.cjs.js +2585 -0
  167. package/project/index.cjs.js.map +1 -0
  168. package/project/index.d.ts +5 -0
  169. package/project/index.d.ts.map +1 -0
  170. package/project/index.esm.js +2549 -0
  171. package/project/index.esm.js.map +1 -0
  172. package/project/package/dependencies.d.ts +101 -0
  173. package/project/package/dependencies.d.ts.map +1 -0
  174. package/project/package/index.cjs.js +972 -0
  175. package/project/package/index.cjs.js.map +1 -0
  176. package/project/package/index.d.ts +3 -0
  177. package/project/package/index.d.ts.map +1 -0
  178. package/project/package/index.esm.js +957 -0
  179. package/project/package/index.esm.js.map +1 -0
  180. package/project/package/read.d.ts +66 -0
  181. package/project/package/read.d.ts.map +1 -0
  182. package/project/root/detect.d.ts +65 -0
  183. package/project/root/detect.d.ts.map +1 -0
  184. package/project/root/index.cjs.js +860 -0
  185. package/project/root/index.cjs.js.map +1 -0
  186. package/project/root/index.d.ts +2 -0
  187. package/project/root/index.d.ts.map +1 -0
  188. package/project/root/index.esm.js +853 -0
  189. package/project/root/index.esm.js.map +1 -0
  190. package/project/traversal/index.cjs.js +1179 -0
  191. package/project/traversal/index.cjs.js.map +1 -0
  192. package/project/traversal/index.d.ts +3 -0
  193. package/project/traversal/index.d.ts.map +1 -0
  194. package/project/traversal/index.esm.js +1173 -0
  195. package/project/traversal/index.esm.js.map +1 -0
  196. package/project/traversal/search.d.ts +59 -0
  197. package/project/traversal/search.d.ts.map +1 -0
  198. package/project/traversal/walk.d.ts +63 -0
  199. package/project/traversal/walk.d.ts.map +1 -0
  200. package/tech/backend/detect-all.d.ts +13 -0
  201. package/tech/backend/detect-all.d.ts.map +1 -0
  202. package/tech/backend/express.d.ts +11 -0
  203. package/tech/backend/express.d.ts.map +1 -0
  204. package/tech/backend/fastify.d.ts +11 -0
  205. package/tech/backend/fastify.d.ts.map +1 -0
  206. package/tech/backend/hono.d.ts +11 -0
  207. package/tech/backend/hono.d.ts.map +1 -0
  208. package/tech/backend/index.cjs.js +939 -0
  209. package/tech/backend/index.cjs.js.map +1 -0
  210. package/tech/backend/index.d.ts +8 -0
  211. package/tech/backend/index.d.ts.map +1 -0
  212. package/tech/backend/index.esm.js +931 -0
  213. package/tech/backend/index.esm.js.map +1 -0
  214. package/tech/backend/koa.d.ts +11 -0
  215. package/tech/backend/koa.d.ts.map +1 -0
  216. package/tech/backend/nestjs.d.ts +11 -0
  217. package/tech/backend/nestjs.d.ts.map +1 -0
  218. package/tech/backend/types.d.ts +31 -0
  219. package/tech/backend/types.d.ts.map +1 -0
  220. package/tech/build/babel.d.ts +13 -0
  221. package/tech/build/babel.d.ts.map +1 -0
  222. package/tech/build/detect-all.d.ts +13 -0
  223. package/tech/build/detect-all.d.ts.map +1 -0
  224. package/tech/build/esbuild.d.ts +11 -0
  225. package/tech/build/esbuild.d.ts.map +1 -0
  226. package/tech/build/index.cjs.js +1118 -0
  227. package/tech/build/index.cjs.js.map +1 -0
  228. package/tech/build/index.d.ts +10 -0
  229. package/tech/build/index.d.ts.map +1 -0
  230. package/tech/build/index.esm.js +1102 -0
  231. package/tech/build/index.esm.js.map +1 -0
  232. package/tech/build/parcel.d.ts +13 -0
  233. package/tech/build/parcel.d.ts.map +1 -0
  234. package/tech/build/rollup.d.ts +13 -0
  235. package/tech/build/rollup.d.ts.map +1 -0
  236. package/tech/build/swc.d.ts +13 -0
  237. package/tech/build/swc.d.ts.map +1 -0
  238. package/tech/build/types.d.ts +31 -0
  239. package/tech/build/types.d.ts.map +1 -0
  240. package/tech/build/vite.d.ts +13 -0
  241. package/tech/build/vite.d.ts.map +1 -0
  242. package/tech/build/webpack.d.ts +13 -0
  243. package/tech/build/webpack.d.ts.map +1 -0
  244. package/tech/frontend/angular.d.ts +11 -0
  245. package/tech/frontend/angular.d.ts.map +1 -0
  246. package/tech/frontend/astro.d.ts +11 -0
  247. package/tech/frontend/astro.d.ts.map +1 -0
  248. package/tech/frontend/detect-all.d.ts +13 -0
  249. package/tech/frontend/detect-all.d.ts.map +1 -0
  250. package/tech/frontend/gatsby.d.ts +11 -0
  251. package/tech/frontend/gatsby.d.ts.map +1 -0
  252. package/tech/frontend/index.cjs.js +1310 -0
  253. package/tech/frontend/index.cjs.js.map +1 -0
  254. package/tech/frontend/index.d.ts +15 -0
  255. package/tech/frontend/index.d.ts.map +1 -0
  256. package/tech/frontend/index.esm.js +1295 -0
  257. package/tech/frontend/index.esm.js.map +1 -0
  258. package/tech/frontend/nextjs.d.ts +11 -0
  259. package/tech/frontend/nextjs.d.ts.map +1 -0
  260. package/tech/frontend/nuxt.d.ts +11 -0
  261. package/tech/frontend/nuxt.d.ts.map +1 -0
  262. package/tech/frontend/qwik.d.ts +11 -0
  263. package/tech/frontend/qwik.d.ts.map +1 -0
  264. package/tech/frontend/react.d.ts +11 -0
  265. package/tech/frontend/react.d.ts.map +1 -0
  266. package/tech/frontend/remix.d.ts +11 -0
  267. package/tech/frontend/remix.d.ts.map +1 -0
  268. package/tech/frontend/solid.d.ts +11 -0
  269. package/tech/frontend/solid.d.ts.map +1 -0
  270. package/tech/frontend/svelte.d.ts +11 -0
  271. package/tech/frontend/svelte.d.ts.map +1 -0
  272. package/tech/frontend/sveltekit.d.ts +11 -0
  273. package/tech/frontend/sveltekit.d.ts.map +1 -0
  274. package/tech/frontend/types.d.ts +35 -0
  275. package/tech/frontend/types.d.ts.map +1 -0
  276. package/tech/frontend/vue.d.ts +11 -0
  277. package/tech/frontend/vue.d.ts.map +1 -0
  278. package/tech/index.cjs.js +3684 -0
  279. package/tech/index.cjs.js.map +1 -0
  280. package/tech/index.d.ts +96 -0
  281. package/tech/index.d.ts.map +1 -0
  282. package/tech/index.esm.js +3603 -0
  283. package/tech/index.esm.js.map +1 -0
  284. package/tech/legacy/angularjs.d.ts +12 -0
  285. package/tech/legacy/angularjs.d.ts.map +1 -0
  286. package/tech/legacy/backbone.d.ts +11 -0
  287. package/tech/legacy/backbone.d.ts.map +1 -0
  288. package/tech/legacy/detect-all.d.ts +13 -0
  289. package/tech/legacy/detect-all.d.ts.map +1 -0
  290. package/tech/legacy/ember.d.ts +11 -0
  291. package/tech/legacy/ember.d.ts.map +1 -0
  292. package/tech/legacy/index.cjs.js +903 -0
  293. package/tech/legacy/index.cjs.js.map +1 -0
  294. package/tech/legacy/index.d.ts +7 -0
  295. package/tech/legacy/index.d.ts.map +1 -0
  296. package/tech/legacy/index.esm.js +896 -0
  297. package/tech/legacy/index.esm.js.map +1 -0
  298. package/tech/legacy/jquery.d.ts +11 -0
  299. package/tech/legacy/jquery.d.ts.map +1 -0
  300. package/tech/legacy/types.d.ts +33 -0
  301. package/tech/legacy/types.d.ts.map +1 -0
  302. package/tech/linting/biome.d.ts +11 -0
  303. package/tech/linting/biome.d.ts.map +1 -0
  304. package/tech/linting/detect-all.d.ts +13 -0
  305. package/tech/linting/detect-all.d.ts.map +1 -0
  306. package/tech/linting/eslint.d.ts +13 -0
  307. package/tech/linting/eslint.d.ts.map +1 -0
  308. package/tech/linting/index.cjs.js +992 -0
  309. package/tech/linting/index.cjs.js.map +1 -0
  310. package/tech/linting/index.d.ts +7 -0
  311. package/tech/linting/index.d.ts.map +1 -0
  312. package/tech/linting/index.esm.js +982 -0
  313. package/tech/linting/index.esm.js.map +1 -0
  314. package/tech/linting/prettier.d.ts +13 -0
  315. package/tech/linting/prettier.d.ts.map +1 -0
  316. package/tech/linting/stylelint.d.ts +13 -0
  317. package/tech/linting/stylelint.d.ts.map +1 -0
  318. package/tech/linting/types.d.ts +31 -0
  319. package/tech/linting/types.d.ts.map +1 -0
  320. package/tech/monorepo/detect-all.d.ts +13 -0
  321. package/tech/monorepo/detect-all.d.ts.map +1 -0
  322. package/tech/monorepo/index.cjs.js +1021 -0
  323. package/tech/monorepo/index.cjs.js.map +1 -0
  324. package/tech/monorepo/index.d.ts +10 -0
  325. package/tech/monorepo/index.d.ts.map +1 -0
  326. package/tech/monorepo/index.esm.js +1011 -0
  327. package/tech/monorepo/index.esm.js.map +1 -0
  328. package/tech/monorepo/lerna.d.ts +11 -0
  329. package/tech/monorepo/lerna.d.ts.map +1 -0
  330. package/tech/monorepo/npm-workspaces.d.ts +11 -0
  331. package/tech/monorepo/npm-workspaces.d.ts.map +1 -0
  332. package/tech/monorepo/nx.d.ts +11 -0
  333. package/tech/monorepo/nx.d.ts.map +1 -0
  334. package/tech/monorepo/pnpm-workspaces.d.ts +9 -0
  335. package/tech/monorepo/pnpm-workspaces.d.ts.map +1 -0
  336. package/tech/monorepo/rush.d.ts +11 -0
  337. package/tech/monorepo/rush.d.ts.map +1 -0
  338. package/tech/monorepo/turborepo.d.ts +11 -0
  339. package/tech/monorepo/turborepo.d.ts.map +1 -0
  340. package/tech/monorepo/types.d.ts +39 -0
  341. package/tech/monorepo/types.d.ts.map +1 -0
  342. package/tech/monorepo/yarn-workspaces.d.ts +11 -0
  343. package/tech/monorepo/yarn-workspaces.d.ts.map +1 -0
  344. package/tech/shared-utils/detector-helpers.d.ts +52 -0
  345. package/tech/shared-utils/detector-helpers.d.ts.map +1 -0
  346. package/tech/shared-utils/types.d.ts +41 -0
  347. package/tech/shared-utils/types.d.ts.map +1 -0
  348. package/tech/testing/cypress.d.ts +13 -0
  349. package/tech/testing/cypress.d.ts.map +1 -0
  350. package/tech/testing/detect-all.d.ts +13 -0
  351. package/tech/testing/detect-all.d.ts.map +1 -0
  352. package/tech/testing/index.cjs.js +1031 -0
  353. package/tech/testing/index.cjs.js.map +1 -0
  354. package/tech/testing/index.d.ts +8 -0
  355. package/tech/testing/index.d.ts.map +1 -0
  356. package/tech/testing/index.esm.js +1018 -0
  357. package/tech/testing/index.esm.js.map +1 -0
  358. package/tech/testing/jest.d.ts +13 -0
  359. package/tech/testing/jest.d.ts.map +1 -0
  360. package/tech/testing/mocha.d.ts +13 -0
  361. package/tech/testing/mocha.d.ts.map +1 -0
  362. package/tech/testing/playwright.d.ts +13 -0
  363. package/tech/testing/playwright.d.ts.map +1 -0
  364. package/tech/testing/types.d.ts +35 -0
  365. package/tech/testing/types.d.ts.map +1 -0
  366. package/tech/testing/vitest.d.ts +13 -0
  367. package/tech/testing/vitest.d.ts.map +1 -0
  368. package/tech/types/detectors.d.ts +67 -0
  369. package/tech/types/detectors.d.ts.map +1 -0
  370. package/tech/types/index.cjs.js +1045 -0
  371. package/tech/types/index.cjs.js.map +1 -0
  372. package/tech/types/index.d.ts +2 -0
  373. package/tech/types/index.d.ts.map +1 -0
  374. package/tech/types/index.esm.js +1039 -0
  375. package/tech/types/index.esm.js.map +1 -0
  376. package/vfs/commit.d.ts +32 -0
  377. package/vfs/commit.d.ts.map +1 -0
  378. package/vfs/diff.d.ts +73 -0
  379. package/vfs/diff.d.ts.map +1 -0
  380. package/vfs/factory.d.ts +37 -0
  381. package/vfs/factory.d.ts.map +1 -0
  382. package/vfs/fs-tree.d.ts +13 -0
  383. package/vfs/fs-tree.d.ts.map +1 -0
  384. package/vfs/index.cjs.js +1600 -0
  385. package/vfs/index.cjs.js.map +1 -0
  386. package/vfs/index.d.ts +6 -0
  387. package/vfs/index.d.ts.map +1 -0
  388. package/vfs/index.esm.js +1590 -0
  389. package/vfs/index.esm.js.map +1 -0
  390. package/vfs/types.d.ts +178 -0
  391. package/vfs/types.d.ts.map +1 -0
package/README.md ADDED
@@ -0,0 +1,242 @@
1
+ # @hyperfrontend/project-scope
2
+
3
+ <p align="center">
4
+ <a href="https://github.com/AndrewRedican/hyperfrontend/actions/workflows/ci-lib-project-scope.yml">
5
+ <img src="https://img.shields.io/github/actions/workflow/status/AndrewRedican/hyperfrontend/ci-lib-project-scope.yml?style=flat-square&logo=github&label=build" alt="Build">
6
+ </a>
7
+ <a href="https://codecov.io/gh/AndrewRedican/hyperfrontend/flags?flags%5B0%5D=project-scope">
8
+ <img src="https://codecov.io/gh/AndrewRedican/hyperfrontend/graph/badge.svg?flag=project-scope" alt="Coverage">
9
+ </a>
10
+ <a href="https://www.npmjs.com/package/@hyperfrontend/project-scope">
11
+ <img src="https://img.shields.io/npm/v/@hyperfrontend/project-scope?style=flat-square" alt="npm version">
12
+ </a>
13
+ <a href="https://bundlephobia.com/package/@hyperfrontend/project-scope">
14
+ <img src="https://img.shields.io/bundlephobia/min/%40hyperfrontend%2Fproject-scope?style=flat-square" alt="npm bundle size">
15
+ </a>
16
+ </p>
17
+ <p align="center">
18
+ <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
19
+ <a href="#contributors">
20
+ <img src="https://img.shields.io/github/all-contributors/AndrewRedican/hyperfrontend?color=ee8449&style=flat-square" alt="All Contributors">
21
+ </a>
22
+ <!-- ALL-CONTRIBUTORS-BADGE:END -->
23
+ <a href="https://github.com/AndrewRedican/hyperfrontend/blob/main/LICENSE.md">
24
+ <img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License">
25
+ </a>
26
+ <a href="https://www.npmjs.com/package/@hyperfrontend/project-scope">
27
+ <img src="https://img.shields.io/npm/dm/@hyperfrontend/project-scope?style=flat-square" alt="npm downloads">
28
+ </a>
29
+ <a href="https://github.com/AndrewRedican/hyperfrontend">
30
+ <img src="https://img.shields.io/github/stars/AndrewRedican/hyperfrontend?style=flat-square" alt="GitHub stars">
31
+ </a>
32
+ <img src="https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen?style=flat-square&logo=node.js" alt="Node Version">
33
+ <img src="https://img.shields.io/badge/tree%20shakeable-%E2%9C%93-success?style=flat-square" alt="Tree Shakeable">
34
+ </p>
35
+
36
+ Comprehensive project analysis, technology stack detection, and transactional virtual file system for Node.js tooling.
37
+
38
+ ## What is @hyperfrontend/project-scope?
39
+
40
+ @hyperfrontend/project-scope provides intelligent codebase analysis for JavaScript/TypeScript projects. It uses multi-signal heuristics to classify project types, detect frameworks and build tools, discover entry points, and map dependency graphs - all with confidence scoring and explainable evidence. The library also includes a virtual file system (VFS) for safe, atomic file modifications.
41
+
42
+ Designed for tooling authors building code generators, IDE extensions, CI/CD pipelines, and monorepo tooling. Optional `@nx/devkit` integration enables seamless operation within NX workspaces with graceful fallback for standalone projects.
43
+
44
+ ### Key Features
45
+
46
+ - **Project Classification** - Detect application, library, e2e, tool, or plugin with confidence scoring and evidence tracking
47
+ - **Technology Detection** - Identify 20+ frameworks (React, Vue, Angular, Svelte), build tools (Vite, Webpack, esbuild), and testing frameworks (Jest, Vitest, Cypress)
48
+ - **Virtual File System** - Transaction-aware file operations with atomic commit/rollback, following NX devkit's Tree interface
49
+ - **Monorepo Intelligence** - Detect NX, Turborepo, Lerna, pnpm/npm/Yarn workspaces; read project configurations
50
+ - **Dependency Graph** - Build internal import graphs from source code with root/leaf node identification
51
+ - **Entry Point Discovery** - Find application entries from package.json exports, bin fields, and convention patterns
52
+ - **CLI Interface** - Command-line access to all features with JSON/YAML output
53
+ - **Zero Runtime Dependencies** - All dependencies bundled for minimal footprint
54
+
55
+ ### Architecture Highlights
56
+
57
+ Four-layer architecture: core (fs, path, encoding, platform), project (config detection, package.json, root finding), tech (framework/tool detectors with consistent interfaces), and heuristics (multi-signal classification with evidence). Detectors use function-scoped caching (30-60s TTL). VFS buffers changes in memory until explicit commit, with path traversal prevention and symlink validation.
58
+
59
+ ## Why Use @hyperfrontend/project-scope?
60
+
61
+ ### Accurate Framework Detection for Code Generators
62
+
63
+ Simple `package.json` parsing misses meta-frameworks, optional dependencies, and configuration-based setups. A project with `next` installed might be Next.js, but could also be a library that exports Next.js components. This library's multi-signal heuristics analyze dependencies, directory structure (`pages/`, `app/`), and config files (`next.config.js`) together, returning confidence-scored results. Your generator knows _with certainty_ whether to scaffold Next.js pages or React components.
64
+
65
+ ### Safe File Modifications with Rollback
66
+
67
+ Code generators that write directly to disk risk leaving projects in broken states when errors occur mid-generation. The VFS buffers all changes in memory - write 50 files, validate the result, then `commitChanges()` atomically or `rollbackChanges()` to discard everything. Path traversal attacks are blocked at the VFS layer, making generators safe to run on untrusted input.
68
+
69
+ ### Adaptive Tooling in Heterogeneous Monorepos
70
+
71
+ Monorepos contain React apps, Vue libraries, Node.js services, and Cypress suites - each requiring different lint rules, build configs, and CI pipelines. Use `detectAll()` per project to get technology detection with version info, then conditionally apply configurations. Cached results (30-60s TTL) ensure repeated analysis during builds stays fast.
72
+
73
+ ### IDE Extensions Without Manual Configuration
74
+
75
+ IDE features that adapt to frameworks typically require users to configure their project type manually. This library provides runtime detection - determine React vs Vue for component snippets, identify Jest vs Vitest for test runners, detect Vite vs Webpack for build task integration. The CLI enables integration with shell-based tooling and editor extensions.
76
+
77
+ ### Migration Planning with Evidence
78
+
79
+ Modernizing legacy codebases requires understanding current technology stack before planning migrations. `analyzeProject()` detects legacy frameworks (jQuery, AngularJS, Backbone), maps internal dependency graphs, and provides confidence-scored evidence for each detection. Generate reports that explain _why_ each technology was detected, enabling data-driven migration decisions.
80
+
81
+ ## Installation
82
+
83
+ ```bash
84
+ npm install @hyperfrontend/project-scope
85
+ ```
86
+
87
+ ## Requirements
88
+
89
+ - **Node.js:** 18.0.0 or higher
90
+ - **npm:** 8.0.0 or higher
91
+
92
+ > **Note:** This library is designed for Node.js environments only (no browser support). All file system operations use synchronous Node.js APIs.
93
+
94
+ ## Quick Start
95
+
96
+ ### Project Analysis
97
+
98
+ ```typescript
99
+ import { analyzeProject, detectAll } from '@hyperfrontend/project-scope'
100
+
101
+ // Full project analysis
102
+ const analysis = analyzeProject('./my-project')
103
+ console.log(analysis.projectType) // 'library' | 'application' | 'e2e' | 'tool'
104
+ console.log(analysis.frameworks.map((f) => `${f.name} (${f.confidence}%)`))
105
+
106
+ // Technology stack detection
107
+ const tech = detectAll('./my-project')
108
+ console.log(
109
+ 'Frontend:',
110
+ tech.frontendFrameworks.map((f) => f.name)
111
+ )
112
+ console.log(
113
+ 'Build:',
114
+ tech.buildTools.map((t) => t.name)
115
+ )
116
+ console.log(
117
+ 'Testing:',
118
+ tech.testingFrameworks.map((t) => t.name)
119
+ )
120
+ ```
121
+
122
+ ### Virtual File System
123
+
124
+ ```typescript
125
+ import { createTree, Mode } from '@hyperfrontend/project-scope'
126
+
127
+ const tree = createTree('./my-project')
128
+
129
+ tree.write('src/new-file.ts', 'export const hello = "world"')
130
+ tree.rename('src/old.ts', 'src/renamed.ts')
131
+ tree.delete('src/deprecated.ts')
132
+
133
+ tree.commitChanges() // Atomic commit, or rollbackChanges() to discard
134
+ ```
135
+
136
+ ### CLI
137
+
138
+ ```bash
139
+ project-scope analyze ./my-project --format json
140
+ project-scope config ./my-project --type typescript,eslint
141
+ project-scope tree ./my-project --depth 3
142
+ ```
143
+
144
+ ## API Overview
145
+
146
+ ### Analysis
147
+
148
+ - **`analyzeProject(path, options?): AnalysisResult`** - Comprehensive project analysis
149
+ - **`detectProjectType(path): ProjectTypeDetection`** - Classify project type with evidence
150
+ - **`identifyFrameworks(path): FrameworkIdentification`** - Detect frameworks with confidence scores
151
+ - **`discoverEntryPoints(path): EntryPointInfo[]`** - Find application entry points
152
+ - **`buildDependencyGraph(path): DependencyGraph`** - Build internal dependency graph
153
+
154
+ ### Technology Detection
155
+
156
+ - **`detectAll(path): AllDetections`** - Run all technology detectors
157
+ - **`frameworkDetectors`** - Individual framework detectors (React, Vue, Angular, etc.)
158
+ - **`backendDetectors`** - Backend framework detectors (Express, NestJS, Fastify, etc.)
159
+ - **`buildToolDetectors`** - Build tool detectors (Webpack, Vite, Rollup, etc.)
160
+ - **`testingDetectors`** - Testing framework detectors (Jest, Vitest, Cypress, etc.)
161
+
162
+ ### Project Utilities
163
+
164
+ - **`readPackageJson(path): PackageJson`** - Parse package.json
165
+ - **`findProjectRoot(path): string`** - Find nearest project root
166
+ - **`findWorkspaceRoot(path): string`** - Find monorepo/workspace root
167
+ - **`detectConfigs(path, types?): ConfigFileInfo[]`** - Find configuration files
168
+
169
+ ### Virtual File System
170
+
171
+ - **`createTree(path, options?): Tree`** - Create transactional file tree
172
+ - **`Mode`** - Write modes: `Overwrite`, `ExclusiveCreate`, `SkipIfExists`
173
+ - Tree methods: `read()`, `write()`, `exists()`, `delete()`, `rename()`, `commitChanges()`, `rollbackChanges()`
174
+
175
+ ### NX Integration
176
+
177
+ - **`isNxWorkspace(path): boolean`** - Check if directory is NX workspace
178
+ - **`getNxWorkspaceInfo(path): NxWorkspaceInfo`** - Get workspace details
179
+ - **`findNxProjects(path): NxProjectConfig[]`** - Find all projects
180
+ - **`isDevkitAvailable(): boolean`** - Check if `@nx/devkit` is available
181
+
182
+ ### Core Utilities
183
+
184
+ - **File System:** `readFileContent()`, `writeFileContent()`, `readJsonFile()`, `exists()`, `isFile()`, `isDirectory()`
185
+ - **Path:** `normalizePath()`, `joinPath()`, `resolvePath()`, `relativePath()`
186
+ - **Encoding:** `detectEncoding()`, `convertEncoding()`
187
+ - **Platform:** `detectPlatform()`, `isWindows()`, `isMacOS()`, `isLinux()`
188
+
189
+ ## Secondary Entry Points
190
+
191
+ Import specific modules for tree-shaking optimization:
192
+
193
+ ```typescript
194
+ // Core utilities
195
+ import { readFileContent, writeFileContent } from '@hyperfrontend/project-scope/core/fs'
196
+ import { normalizePath, joinPath } from '@hyperfrontend/project-scope/core/path'
197
+
198
+ // Heuristics
199
+ import { detectProjectType } from '@hyperfrontend/project-scope/heuristics/project-type'
200
+ import { discoverEntryPoints } from '@hyperfrontend/project-scope/heuristics/entry-points'
201
+
202
+ // Technology detection
203
+ import { detectAll } from '@hyperfrontend/project-scope/tech'
204
+ import { reactDetector } from '@hyperfrontend/project-scope/tech/frontend'
205
+
206
+ // Project utilities
207
+ import { readPackageJson } from '@hyperfrontend/project-scope/project/package'
208
+ import { detectConfigs } from '@hyperfrontend/project-scope/project/config'
209
+
210
+ // Virtual file system
211
+ import { createTree, Mode } from '@hyperfrontend/project-scope/vfs'
212
+
213
+ // NX integration
214
+ import { isNxWorkspace, findNxProjects } from '@hyperfrontend/project-scope/nx'
215
+ ```
216
+
217
+ ## Compatibility
218
+
219
+ | Platform | Support |
220
+ | -------- | :-----: |
221
+ | Node.js | ✅ |
222
+ | Browser | ❌ |
223
+
224
+ ### Output Formats
225
+
226
+ | Format | File | Tree-Shakeable |
227
+ | ------ | -------------- | :------------: |
228
+ | ESM | `index.esm.js` | ✅ |
229
+ | CJS | `index.cjs.js` | ❌ |
230
+
231
+ ## Part of hyperfrontend
232
+
233
+ This library is part of the [hyperfrontend](https://github.com/AndrewRedican/hyperfrontend) monorepo.
234
+
235
+ **📖 [Full documentation](https://www.hyperfrontend.dev/docs/libraries/project-scope)**
236
+
237
+ - Works seamlessly with [@hyperfrontend/nexus](https://github.com/AndrewRedican/hyperfrontend/tree/main/libs/nexus) for cross-window communication tooling
238
+ - Looking for cryptographic utilities? See [@hyperfrontend/cryptography](https://github.com/AndrewRedican/hyperfrontend/tree/main/libs/cryptography)
239
+
240
+ ## License
241
+
242
+ MIT
package/SECURITY.md ADDED
@@ -0,0 +1,82 @@
1
+ # Security Policy
2
+
3
+ ## Reporting a Vulnerability
4
+
5
+ We take the security of hyperfrontend seriously. If you discover a security vulnerability, please help us protect our users by following responsible disclosure practices.
6
+
7
+ ### How to Report
8
+
9
+ **Please DO NOT report security vulnerabilities through public GitHub issues.**
10
+
11
+ Instead, please report security vulnerabilities directly via email to:
12
+
13
+ **<andrew.redican.mejia@gmail.com>**
14
+
15
+ ### What to Include
16
+
17
+ To help us understand and resolve the issue quickly, please include the following information in your report:
18
+
19
+ - **Description**: A clear description of the vulnerability
20
+ - **Impact**: The potential impact and severity of the issue
21
+ - **Reproduction Steps**: Detailed steps to reproduce the vulnerability
22
+ - **Environment**: The version of hyperfrontend affected, browser/Node.js version, operating system, etc.
23
+ - **Proof of Concept**: If possible, include a minimal code example or proof of concept
24
+ - **Suggested Fix**: If you have ideas on how to fix the issue (optional)
25
+
26
+ ### Response Timeline
27
+
28
+ - **Acknowledgment**: We will acknowledge receipt of your vulnerability report within 2 business days
29
+ - **Initial Assessment**: We will provide an initial assessment within 5 business days
30
+ - **Patch Development**: We aim to develop and test a patch within 10 days of acknowledgment
31
+ - **Public Disclosure**: Please allow at least **10 days** from the initial report before making the vulnerability publicly known
32
+
33
+ This grace period gives us time to:
34
+
35
+ - Verify and reproduce the issue
36
+ - Develop and test a fix
37
+ - Release a patched version
38
+ - Notify users to update their dependencies
39
+
40
+ ### Coordinated Disclosure
41
+
42
+ We believe in coordinated disclosure and appreciate your cooperation in:
43
+
44
+ - Not exploiting the vulnerability beyond what is necessary to demonstrate it
45
+ - Not accessing, modifying, or deleting data that doesn't belong to you
46
+ - Allowing us reasonable time to address the issue before public disclosure
47
+ - Making a good faith effort to avoid privacy violations, data destruction, and service interruption
48
+
49
+ ### Recognition
50
+
51
+ Once the vulnerability is patched and publicly disclosed, we will acknowledge your responsible disclosure in:
52
+
53
+ - Our release notes
54
+ - Our security advisories (if applicable)
55
+ - This SECURITY.md file (with your permission)
56
+
57
+ Thank you for helping keep hyperfrontend and its users safe!
58
+
59
+ ## Security Best Practices
60
+
61
+ When using hyperfrontend in your applications:
62
+
63
+ 1. **Keep Dependencies Updated**: Regularly update to the latest version to receive security patches
64
+ 2. **Content Security Policy**: Implement appropriate CSP headers when embedding features
65
+ 3. **Input Validation**: Validate and sanitize all data passed between features
66
+ 4. **Origin Verification**: Always verify the origin of messages in cross-frame communication
67
+ 5. **Authentication**: Implement proper authentication and authorization for sensitive features
68
+ 6. **HTTPS**: Always serve hyperfrontend features over HTTPS in production
69
+
70
+ ## Security Updates
71
+
72
+ Security updates will be released as patch versions and documented in the [CHANGELOG](https://github.com/AndrewRedican/hyperfrontend/releases) and GitHub Security Advisories.
73
+
74
+ ## Supported Versions
75
+
76
+ We currently provide security updates for:
77
+
78
+ | Version | Supported |
79
+ | ------- | ------------------ |
80
+ | 0.0.x | :white_check_mark: |
81
+
82
+ As the project matures, we will update this table to reflect our long-term support policy.
package/analyze.d.ts ADDED
@@ -0,0 +1,33 @@
1
+ import type { AnalysisResult } from './models';
2
+ /**
3
+ * Options for project analysis.
4
+ */
5
+ export interface AnalyzeOptions {
6
+ /** Analysis depth */
7
+ depth?: 'basic' | 'full' | 'deep';
8
+ /** Specific analyses to include */
9
+ include?: Array<'frameworks' | 'buildTools' | 'testing' | 'entryPoints' | 'configs' | 'dependencies'>;
10
+ /** Analyses to skip */
11
+ exclude?: Array<'frameworks' | 'buildTools' | 'testing' | 'entryPoints' | 'configs' | 'dependencies'>;
12
+ /** Enable verbose logging */
13
+ verbose?: boolean;
14
+ }
15
+ /**
16
+ * Analyze a project for frameworks, build tools, and structure.
17
+ *
18
+ * This is the main entry point for comprehensive project analysis.
19
+ * It orchestrates all detection modules and returns a unified result.
20
+ *
21
+ * @param projectPath - Path to project directory
22
+ * @param options - Analysis options
23
+ * @returns Complete analysis result
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * const result = analyzeProject('./my-project')
28
+ * console.log(result.projectType) // 'application' | 'library' | ...
29
+ * console.log(result.frameworks) // [{ id: 'react', name: 'React', ... }]
30
+ * ```
31
+ */
32
+ export declare function analyzeProject(projectPath: string, options?: AnalyzeOptions): AnalysisResult;
33
+ //# sourceMappingURL=analyze.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../../../../../libs/project-scope/src/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,cAAc,EASf,MAAM,UAAU,CAAA;AAmBjB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;IACjC,mCAAmC;IACnC,OAAO,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,cAAc,CAAC,CAAA;IACrG,uBAAuB;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,cAAc,CAAC,CAAA;IACrG,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AA8FD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,cAAc,CA2J5F"}
@@ -0,0 +1,20 @@
1
+ import type { Command, CommandResult, OutputFormat } from '../types';
2
+ export interface AnalyzeCommandOptions {
3
+ path?: string;
4
+ format?: OutputFormat;
5
+ depth?: 'basic' | 'full' | 'deep';
6
+ include?: string[];
7
+ exclude?: string[];
8
+ }
9
+ /**
10
+ * Execute analyze command with given options.
11
+ *
12
+ * @param options - Configuration for the analyze operation
13
+ * @returns Command execution result with exit code and output
14
+ */
15
+ export declare function analyzeCommand(options: AnalyzeCommandOptions): CommandResult;
16
+ /**
17
+ * Analyze command definition implementing Command interface.
18
+ */
19
+ export declare const analyzeCommandDef: Command;
20
+ //# sourceMappingURL=analyze.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/project-scope/src/cli/commands/analyze.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAiB,YAAY,EAAE,MAAM,UAAU,CAAA;AAQnF,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAiOD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAgC5E;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,OA6C/B,CAAA"}
@@ -0,0 +1,20 @@
1
+ import type { ConfigType } from '../../project/config';
2
+ import type { Command, CommandResult, OutputFormat } from '../types';
3
+ export interface ConfigCommandOptions {
4
+ path?: string;
5
+ type?: ConfigType;
6
+ showContents?: boolean;
7
+ format?: OutputFormat;
8
+ }
9
+ /**
10
+ * Execute config command with given options.
11
+ *
12
+ * @param options - Configuration command options
13
+ * @returns Command execution result with exit code and output
14
+ */
15
+ export declare function configCommand(options: ConfigCommandOptions): CommandResult;
16
+ /**
17
+ * Config command definition implementing Command interface.
18
+ */
19
+ export declare const configCommandDef: Command;
20
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/project-scope/src/cli/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,sBAAsB,CAAA;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAiB,YAAY,EAAE,MAAM,UAAU,CAAA;AAOnF,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB;AA2ND;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAqB1E;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAmC9B,CAAA"}
@@ -0,0 +1,18 @@
1
+ import type { Command, CommandResult, OutputFormat } from '../types';
2
+ export interface DepsCommandOptions {
3
+ path?: string;
4
+ type?: 'production' | 'development' | 'peer' | 'optional' | 'all';
5
+ format?: OutputFormat;
6
+ }
7
+ /**
8
+ * Execute deps command with given options.
9
+ *
10
+ * @param options - Parsed command options
11
+ * @returns Command execution result with exit code and output
12
+ */
13
+ export declare function depsCommand(options: DepsCommandOptions): CommandResult;
14
+ /**
15
+ * Deps command definition implementing Command interface.
16
+ */
17
+ export declare const depsCommandDef: Command;
18
+ //# sourceMappingURL=deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/project-scope/src/cli/commands/deps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAiB,YAAY,EAAE,MAAM,UAAU,CAAA;AAQnF,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,YAAY,GAAG,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,CAAA;IACjE,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB;AAyKD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,aAAa,CAqBtE;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,OAuC5B,CAAA"}
@@ -0,0 +1,24 @@
1
+ import type { Command, CommandResult, OutputFormat } from '../types';
2
+ export interface TreeCommandOptions {
3
+ path?: string;
4
+ depth?: number;
5
+ pattern?: string;
6
+ ignore?: string[];
7
+ dirsOnly?: boolean;
8
+ filesOnly?: boolean;
9
+ showSize?: boolean;
10
+ showModified?: boolean;
11
+ format?: OutputFormat;
12
+ }
13
+ /**
14
+ * Execute tree command with given options.
15
+ *
16
+ * @param options - Configuration for the tree operation
17
+ * @returns Command execution result with exit code and output
18
+ */
19
+ export declare function treeCommand(options: TreeCommandOptions): CommandResult;
20
+ /**
21
+ * Tree command definition implementing Command interface.
22
+ */
23
+ export declare const treeCommandDef: Command;
24
+ //# sourceMappingURL=tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/project-scope/src/cli/commands/tree.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAiB,YAAY,EAAE,MAAM,UAAU,CAAA;AASnF,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB;AAgQD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,aAAa,CAmCtE;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,OAyC5B,CAAA"}