@hyperfrontend/project-scope 0.2.1 → 0.2.2

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 (439) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/README.md +3 -4
  3. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/array/index.cjs.js +7 -0
  4. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/array/index.esm.js +5 -0
  5. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/console/index.cjs.js +13 -0
  6. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/console/index.esm.js +8 -0
  7. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/date/index.cjs.js +10 -0
  8. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/date/index.esm.js +8 -0
  9. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/error/index.cjs.js +6 -0
  10. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/error/index.esm.js +5 -0
  11. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/json/index.cjs.js +7 -0
  12. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/json/index.esm.js +5 -0
  13. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/map/index.cjs.js +6 -0
  14. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/map/index.esm.js +5 -0
  15. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/math/index.cjs.js +9 -0
  16. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/math/index.esm.js +6 -0
  17. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/number/index.cjs.js +7 -0
  18. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/number/index.esm.js +7 -0
  19. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/object/index.cjs.js +15 -0
  20. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/object/index.esm.js +9 -0
  21. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/set/index.cjs.js +6 -0
  22. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/set/index.esm.js +5 -0
  23. package/_dependencies/@hyperfrontend/logging/index.cjs.js +191 -0
  24. package/_dependencies/@hyperfrontend/logging/index.d.ts +151 -0
  25. package/_dependencies/@hyperfrontend/logging/index.esm.js +186 -0
  26. package/_shared/core/cache/index.cjs.js +135 -0
  27. package/_shared/core/cache/index.esm.js +128 -0
  28. package/_shared/core/errors/structured-errors/index.cjs.js +28 -0
  29. package/_shared/core/errors/structured-errors/index.esm.js +23 -0
  30. package/_shared/core/fs/stat/index.cjs.js +46 -0
  31. package/_shared/core/fs/stat/index.esm.js +40 -0
  32. package/_shared/core/path/join/index.cjs.js +13 -0
  33. package/_shared/core/path/join/index.esm.js +10 -0
  34. package/_shared/core/path/normalize/index.cjs.js +37 -0
  35. package/_shared/core/path/normalize/index.esm.js +31 -0
  36. package/_shared/core/path/resolve/index.cjs.js +47 -0
  37. package/_shared/core/path/resolve/index.esm.js +41 -0
  38. package/_shared/core/path/segments/index.cjs.js +38 -0
  39. package/_shared/core/path/segments/index.esm.js +31 -0
  40. package/_shared/core/patterns/glob/index.cjs.js +145 -0
  41. package/_shared/core/patterns/glob/index.esm.js +136 -0
  42. package/_shared/core/platform/detect/index.cjs.js +103 -0
  43. package/_shared/core/platform/detect/index.esm.js +95 -0
  44. package/_shared/core/platform/line-endings/index.cjs.js +52 -0
  45. package/_shared/core/platform/line-endings/index.esm.js +44 -0
  46. package/_shared/project/config/patterns/index.cjs.js +172 -0
  47. package/_shared/project/config/patterns/index.esm.js +169 -0
  48. package/_shared/tech/monorepo/pnpm-workspaces/index.cjs.js +33 -0
  49. package/_shared/tech/monorepo/pnpm-workspaces/index.esm.js +31 -0
  50. package/_shared/tech/shared-utils/detector-helpers/index.cjs.js +48 -0
  51. package/_shared/tech/shared-utils/detector-helpers/index.esm.js +43 -0
  52. package/_shared/vfs/types/index.cjs.js +14 -0
  53. package/_shared/vfs/types/index.esm.js +12 -0
  54. package/cli/index.cjs.js +1702 -1910
  55. package/cli/index.d.ts +273 -7
  56. package/cli/index.d.ts.map +1 -1
  57. package/cli/index.esm.js +1586 -1794
  58. package/core/encoding/index.cjs.js +86 -401
  59. package/core/encoding/index.d.ts +186 -3
  60. package/core/encoding/index.d.ts.map +1 -1
  61. package/core/encoding/index.esm.js +78 -392
  62. package/core/fs/index.cjs.js +231 -581
  63. package/core/fs/index.d.ts +479 -6
  64. package/core/fs/index.d.ts.map +1 -1
  65. package/core/fs/index.esm.js +221 -571
  66. package/core/index.cjs.js +518 -1748
  67. package/core/index.d.ts +486 -9
  68. package/core/index.d.ts.map +1 -1
  69. package/core/index.esm.js +501 -1728
  70. package/core/path/index.cjs.js +6 -234
  71. package/core/path/index.d.ts +306 -5
  72. package/core/path/index.d.ts.map +1 -1
  73. package/core/path/index.esm.js +4 -232
  74. package/core/platform/index.cjs.js +5 -216
  75. package/core/platform/index.d.ts +185 -3
  76. package/core/platform/index.d.ts.map +1 -1
  77. package/core/platform/index.esm.js +3 -212
  78. package/heuristics/dependencies/index.cjs.js +95 -492
  79. package/heuristics/dependencies/index.d.ts +99 -2
  80. package/heuristics/dependencies/index.d.ts.map +1 -1
  81. package/heuristics/dependencies/index.esm.js +69 -466
  82. package/heuristics/entry-points/index.cjs.js +91 -795
  83. package/heuristics/entry-points/index.d.ts +123 -2
  84. package/heuristics/entry-points/index.d.ts.map +1 -1
  85. package/heuristics/entry-points/index.esm.js +72 -776
  86. package/heuristics/framework/index.cjs.js +1481 -1410
  87. package/heuristics/framework/index.d.ts +104 -2
  88. package/heuristics/framework/index.d.ts.map +1 -1
  89. package/heuristics/framework/index.esm.js +1417 -1346
  90. package/heuristics/index.cjs.js +3206 -3301
  91. package/heuristics/index.d.ts +4 -5
  92. package/heuristics/index.d.ts.map +1 -1
  93. package/heuristics/index.esm.js +3231 -3326
  94. package/heuristics/project-type/index.cjs.js +1487 -1437
  95. package/heuristics/project-type/index.d.ts +64 -2
  96. package/heuristics/project-type/index.d.ts.map +1 -1
  97. package/heuristics/project-type/index.esm.js +1416 -1366
  98. package/index.cjs.js +3044 -3533
  99. package/index.d.ts +44 -10
  100. package/index.d.ts.map +1 -1
  101. package/index.esm.js +2900 -3377
  102. package/models/index.cjs.js +0 -1
  103. package/models/index.d.ts +20 -14
  104. package/models/index.d.ts.map +1 -1
  105. package/models/index.esm.js +0 -1
  106. package/nx/index.cjs.js +163 -577
  107. package/nx/index.d.ts +279 -4
  108. package/nx/index.d.ts.map +1 -1
  109. package/nx/index.esm.js +145 -554
  110. package/package.json +13 -12
  111. package/project/config/index.cjs.js +122 -1062
  112. package/project/config/index.d.ts +202 -4
  113. package/project/config/index.d.ts.map +1 -1
  114. package/project/config/index.esm.js +105 -1043
  115. package/project/index.cjs.js +323 -1100
  116. package/project/index.d.ts +4 -5
  117. package/project/index.d.ts.map +1 -1
  118. package/project/index.esm.js +302 -1076
  119. package/project/package/index.cjs.js +191 -472
  120. package/project/package/index.d.ts +280 -3
  121. package/project/package/index.d.ts.map +1 -1
  122. package/project/package/index.esm.js +178 -458
  123. package/project/root/index.cjs.js +107 -416
  124. package/project/root/index.d.ts +83 -2
  125. package/project/root/index.d.ts.map +1 -1
  126. package/project/root/index.esm.js +96 -405
  127. package/project/traversal/index.cjs.js +94 -621
  128. package/project/traversal/index.d.ts +165 -3
  129. package/project/traversal/index.d.ts.map +1 -1
  130. package/project/traversal/index.esm.js +80 -607
  131. package/tech/backend/index.cjs.js +221 -507
  132. package/tech/backend/index.d.ts +205 -8
  133. package/tech/backend/index.d.ts.map +1 -1
  134. package/tech/backend/index.esm.js +200 -486
  135. package/tech/build/index.cjs.js +348 -635
  136. package/tech/build/index.d.ts +276 -10
  137. package/tech/build/index.d.ts.map +1 -1
  138. package/tech/build/index.esm.js +326 -613
  139. package/tech/frontend/index.cjs.js +505 -684
  140. package/tech/frontend/index.d.ts +379 -15
  141. package/tech/frontend/index.d.ts.map +1 -1
  142. package/tech/frontend/index.esm.js +481 -660
  143. package/tech/index.cjs.js +1580 -1420
  144. package/tech/index.d.ts +55 -32
  145. package/tech/index.d.ts.map +1 -1
  146. package/tech/index.esm.js +1513 -1353
  147. package/tech/legacy/index.cjs.js +97 -448
  148. package/tech/legacy/index.d.ts +125 -7
  149. package/tech/legacy/index.d.ts.map +1 -1
  150. package/tech/legacy/index.esm.js +79 -430
  151. package/tech/linting/index.cjs.js +136 -522
  152. package/tech/linting/index.d.ts +129 -7
  153. package/tech/linting/index.d.ts.map +1 -1
  154. package/tech/linting/index.esm.js +116 -502
  155. package/tech/monorepo/index.cjs.js +244 -572
  156. package/tech/monorepo/index.d.ts +241 -10
  157. package/tech/monorepo/index.d.ts.map +1 -1
  158. package/tech/monorepo/index.esm.js +224 -552
  159. package/tech/testing/index.cjs.js +214 -570
  160. package/tech/testing/index.d.ts +176 -8
  161. package/tech/testing/index.d.ts.map +1 -1
  162. package/tech/testing/index.esm.js +196 -552
  163. package/tech/types/index.cjs.js +121 -505
  164. package/tech/types/index.d.ts +120 -2
  165. package/tech/types/index.d.ts.map +1 -1
  166. package/tech/types/index.esm.js +99 -483
  167. package/vfs/index.cjs.js +647 -1142
  168. package/vfs/index.d.ts +360 -6
  169. package/vfs/index.d.ts.map +1 -1
  170. package/vfs/index.esm.js +672 -1167
  171. package/ARCHITECTURE.md +0 -370
  172. package/analyze.d.ts +0 -33
  173. package/analyze.d.ts.map +0 -1
  174. package/cli/commands/analyze.d.ts +0 -28
  175. package/cli/commands/analyze.d.ts.map +0 -1
  176. package/cli/commands/config.d.ts +0 -27
  177. package/cli/commands/config.d.ts.map +0 -1
  178. package/cli/commands/deps.d.ts +0 -24
  179. package/cli/commands/deps.d.ts.map +0 -1
  180. package/cli/commands/tree.d.ts +0 -36
  181. package/cli/commands/tree.d.ts.map +0 -1
  182. package/cli/index.cjs.js.map +0 -1
  183. package/cli/index.esm.js.map +0 -1
  184. package/cli/run.d.ts +0 -25
  185. package/cli/run.d.ts.map +0 -1
  186. package/cli/types.d.ts +0 -55
  187. package/cli/types.d.ts.map +0 -1
  188. package/core/cache.d.ts +0 -158
  189. package/core/cache.d.ts.map +0 -1
  190. package/core/encoding/convert.d.ts +0 -32
  191. package/core/encoding/convert.d.ts.map +0 -1
  192. package/core/encoding/detect.d.ts +0 -91
  193. package/core/encoding/detect.d.ts.map +0 -1
  194. package/core/encoding/index.cjs.js.map +0 -1
  195. package/core/encoding/index.esm.js.map +0 -1
  196. package/core/errors/structured-errors.d.ts +0 -66
  197. package/core/errors/structured-errors.d.ts.map +0 -1
  198. package/core/fs/directory.d.ts +0 -91
  199. package/core/fs/directory.d.ts.map +0 -1
  200. package/core/fs/index.cjs.js.map +0 -1
  201. package/core/fs/index.esm.js.map +0 -1
  202. package/core/fs/read.d.ts +0 -94
  203. package/core/fs/read.d.ts.map +0 -1
  204. package/core/fs/stat.d.ts +0 -58
  205. package/core/fs/stat.d.ts.map +0 -1
  206. package/core/fs/traversal.d.ts +0 -26
  207. package/core/fs/traversal.d.ts.map +0 -1
  208. package/core/fs/write.d.ts +0 -75
  209. package/core/fs/write.d.ts.map +0 -1
  210. package/core/index.cjs.js.map +0 -1
  211. package/core/index.esm.js.map +0 -1
  212. package/core/logger.d.ts +0 -111
  213. package/core/logger.d.ts.map +0 -1
  214. package/core/path/index.cjs.js.map +0 -1
  215. package/core/path/index.esm.js.map +0 -1
  216. package/core/path/join.d.ts +0 -17
  217. package/core/path/join.d.ts.map +0 -1
  218. package/core/path/normalize.d.ts +0 -37
  219. package/core/path/normalize.d.ts.map +0 -1
  220. package/core/path/resolve.d.ts +0 -52
  221. package/core/path/resolve.d.ts.map +0 -1
  222. package/core/path/segments.d.ts +0 -59
  223. package/core/path/segments.d.ts.map +0 -1
  224. package/core/patterns/glob.d.ts +0 -42
  225. package/core/patterns/glob.d.ts.map +0 -1
  226. package/core/platform/detect.d.ts +0 -66
  227. package/core/platform/detect.d.ts.map +0 -1
  228. package/core/platform/index.cjs.js.map +0 -1
  229. package/core/platform/index.esm.js.map +0 -1
  230. package/core/platform/line-endings.d.ts +0 -48
  231. package/core/platform/line-endings.d.ts.map +0 -1
  232. package/heuristics/dependencies/analyze.d.ts +0 -77
  233. package/heuristics/dependencies/analyze.d.ts.map +0 -1
  234. package/heuristics/dependencies/index.cjs.js.map +0 -1
  235. package/heuristics/dependencies/index.esm.js.map +0 -1
  236. package/heuristics/entry-points/discover.d.ts +0 -113
  237. package/heuristics/entry-points/discover.d.ts.map +0 -1
  238. package/heuristics/entry-points/index.cjs.js.map +0 -1
  239. package/heuristics/entry-points/index.esm.js.map +0 -1
  240. package/heuristics/framework/identify.d.ts +0 -84
  241. package/heuristics/framework/identify.d.ts.map +0 -1
  242. package/heuristics/framework/index.cjs.js.map +0 -1
  243. package/heuristics/framework/index.esm.js.map +0 -1
  244. package/heuristics/index.cjs.js.map +0 -1
  245. package/heuristics/index.esm.js.map +0 -1
  246. package/heuristics/project-type/detect.d.ts +0 -61
  247. package/heuristics/project-type/detect.d.ts.map +0 -1
  248. package/heuristics/project-type/index.cjs.js.map +0 -1
  249. package/heuristics/project-type/index.esm.js.map +0 -1
  250. package/index.cjs.js.map +0 -1
  251. package/index.esm.js.map +0 -1
  252. package/models/index.cjs.js.map +0 -1
  253. package/models/index.esm.js.map +0 -1
  254. package/nx/detect.d.ts +0 -105
  255. package/nx/detect.d.ts.map +0 -1
  256. package/nx/devkit-loader.d.ts +0 -62
  257. package/nx/devkit-loader.d.ts.map +0 -1
  258. package/nx/index.cjs.js.map +0 -1
  259. package/nx/index.esm.js.map +0 -1
  260. package/nx/project-config.d.ts +0 -111
  261. package/nx/project-config.d.ts.map +0 -1
  262. package/project/config/detect.d.ts +0 -77
  263. package/project/config/detect.d.ts.map +0 -1
  264. package/project/config/index.cjs.js.map +0 -1
  265. package/project/config/index.esm.js.map +0 -1
  266. package/project/config/parse.d.ts +0 -53
  267. package/project/config/parse.d.ts.map +0 -1
  268. package/project/config/patterns.d.ts +0 -31
  269. package/project/config/patterns.d.ts.map +0 -1
  270. package/project/index.cjs.js.map +0 -1
  271. package/project/index.esm.js.map +0 -1
  272. package/project/package/dependencies.d.ts +0 -101
  273. package/project/package/dependencies.d.ts.map +0 -1
  274. package/project/package/index.cjs.js.map +0 -1
  275. package/project/package/index.esm.js.map +0 -1
  276. package/project/package/read.d.ts +0 -67
  277. package/project/package/read.d.ts.map +0 -1
  278. package/project/root/detect.d.ts +0 -65
  279. package/project/root/detect.d.ts.map +0 -1
  280. package/project/root/index.cjs.js.map +0 -1
  281. package/project/root/index.esm.js.map +0 -1
  282. package/project/traversal/index.cjs.js.map +0 -1
  283. package/project/traversal/index.esm.js.map +0 -1
  284. package/project/traversal/search.d.ts +0 -59
  285. package/project/traversal/search.d.ts.map +0 -1
  286. package/project/traversal/walk.d.ts +0 -63
  287. package/project/traversal/walk.d.ts.map +0 -1
  288. package/tech/backend/detect-all.d.ts +0 -13
  289. package/tech/backend/detect-all.d.ts.map +0 -1
  290. package/tech/backend/express.d.ts +0 -11
  291. package/tech/backend/express.d.ts.map +0 -1
  292. package/tech/backend/fastify.d.ts +0 -11
  293. package/tech/backend/fastify.d.ts.map +0 -1
  294. package/tech/backend/hono.d.ts +0 -11
  295. package/tech/backend/hono.d.ts.map +0 -1
  296. package/tech/backend/index.cjs.js.map +0 -1
  297. package/tech/backend/index.esm.js.map +0 -1
  298. package/tech/backend/koa.d.ts +0 -11
  299. package/tech/backend/koa.d.ts.map +0 -1
  300. package/tech/backend/nestjs.d.ts +0 -11
  301. package/tech/backend/nestjs.d.ts.map +0 -1
  302. package/tech/backend/types.d.ts +0 -31
  303. package/tech/backend/types.d.ts.map +0 -1
  304. package/tech/build/babel.d.ts +0 -13
  305. package/tech/build/babel.d.ts.map +0 -1
  306. package/tech/build/detect-all.d.ts +0 -13
  307. package/tech/build/detect-all.d.ts.map +0 -1
  308. package/tech/build/esbuild.d.ts +0 -11
  309. package/tech/build/esbuild.d.ts.map +0 -1
  310. package/tech/build/index.cjs.js.map +0 -1
  311. package/tech/build/index.esm.js.map +0 -1
  312. package/tech/build/parcel.d.ts +0 -13
  313. package/tech/build/parcel.d.ts.map +0 -1
  314. package/tech/build/rollup.d.ts +0 -13
  315. package/tech/build/rollup.d.ts.map +0 -1
  316. package/tech/build/swc.d.ts +0 -13
  317. package/tech/build/swc.d.ts.map +0 -1
  318. package/tech/build/types.d.ts +0 -31
  319. package/tech/build/types.d.ts.map +0 -1
  320. package/tech/build/vite.d.ts +0 -13
  321. package/tech/build/vite.d.ts.map +0 -1
  322. package/tech/build/webpack.d.ts +0 -13
  323. package/tech/build/webpack.d.ts.map +0 -1
  324. package/tech/frontend/angular.d.ts +0 -11
  325. package/tech/frontend/angular.d.ts.map +0 -1
  326. package/tech/frontend/astro.d.ts +0 -11
  327. package/tech/frontend/astro.d.ts.map +0 -1
  328. package/tech/frontend/detect-all.d.ts +0 -13
  329. package/tech/frontend/detect-all.d.ts.map +0 -1
  330. package/tech/frontend/gatsby.d.ts +0 -11
  331. package/tech/frontend/gatsby.d.ts.map +0 -1
  332. package/tech/frontend/index.cjs.js.map +0 -1
  333. package/tech/frontend/index.esm.js.map +0 -1
  334. package/tech/frontend/nextjs.d.ts +0 -11
  335. package/tech/frontend/nextjs.d.ts.map +0 -1
  336. package/tech/frontend/nuxt.d.ts +0 -11
  337. package/tech/frontend/nuxt.d.ts.map +0 -1
  338. package/tech/frontend/qwik.d.ts +0 -11
  339. package/tech/frontend/qwik.d.ts.map +0 -1
  340. package/tech/frontend/react.d.ts +0 -11
  341. package/tech/frontend/react.d.ts.map +0 -1
  342. package/tech/frontend/remix.d.ts +0 -11
  343. package/tech/frontend/remix.d.ts.map +0 -1
  344. package/tech/frontend/solid.d.ts +0 -11
  345. package/tech/frontend/solid.d.ts.map +0 -1
  346. package/tech/frontend/svelte.d.ts +0 -11
  347. package/tech/frontend/svelte.d.ts.map +0 -1
  348. package/tech/frontend/sveltekit.d.ts +0 -11
  349. package/tech/frontend/sveltekit.d.ts.map +0 -1
  350. package/tech/frontend/types.d.ts +0 -35
  351. package/tech/frontend/types.d.ts.map +0 -1
  352. package/tech/frontend/vue.d.ts +0 -11
  353. package/tech/frontend/vue.d.ts.map +0 -1
  354. package/tech/index.cjs.js.map +0 -1
  355. package/tech/index.esm.js.map +0 -1
  356. package/tech/legacy/angularjs.d.ts +0 -12
  357. package/tech/legacy/angularjs.d.ts.map +0 -1
  358. package/tech/legacy/backbone.d.ts +0 -11
  359. package/tech/legacy/backbone.d.ts.map +0 -1
  360. package/tech/legacy/detect-all.d.ts +0 -13
  361. package/tech/legacy/detect-all.d.ts.map +0 -1
  362. package/tech/legacy/ember.d.ts +0 -11
  363. package/tech/legacy/ember.d.ts.map +0 -1
  364. package/tech/legacy/index.cjs.js.map +0 -1
  365. package/tech/legacy/index.esm.js.map +0 -1
  366. package/tech/legacy/jquery.d.ts +0 -11
  367. package/tech/legacy/jquery.d.ts.map +0 -1
  368. package/tech/legacy/types.d.ts +0 -33
  369. package/tech/legacy/types.d.ts.map +0 -1
  370. package/tech/linting/biome.d.ts +0 -11
  371. package/tech/linting/biome.d.ts.map +0 -1
  372. package/tech/linting/detect-all.d.ts +0 -13
  373. package/tech/linting/detect-all.d.ts.map +0 -1
  374. package/tech/linting/eslint.d.ts +0 -13
  375. package/tech/linting/eslint.d.ts.map +0 -1
  376. package/tech/linting/index.cjs.js.map +0 -1
  377. package/tech/linting/index.esm.js.map +0 -1
  378. package/tech/linting/prettier.d.ts +0 -13
  379. package/tech/linting/prettier.d.ts.map +0 -1
  380. package/tech/linting/stylelint.d.ts +0 -13
  381. package/tech/linting/stylelint.d.ts.map +0 -1
  382. package/tech/linting/types.d.ts +0 -31
  383. package/tech/linting/types.d.ts.map +0 -1
  384. package/tech/monorepo/detect-all.d.ts +0 -13
  385. package/tech/monorepo/detect-all.d.ts.map +0 -1
  386. package/tech/monorepo/index.cjs.js.map +0 -1
  387. package/tech/monorepo/index.esm.js.map +0 -1
  388. package/tech/monorepo/lerna.d.ts +0 -11
  389. package/tech/monorepo/lerna.d.ts.map +0 -1
  390. package/tech/monorepo/npm-workspaces.d.ts +0 -11
  391. package/tech/monorepo/npm-workspaces.d.ts.map +0 -1
  392. package/tech/monorepo/nx.d.ts +0 -11
  393. package/tech/monorepo/nx.d.ts.map +0 -1
  394. package/tech/monorepo/pnpm-workspaces.d.ts +0 -9
  395. package/tech/monorepo/pnpm-workspaces.d.ts.map +0 -1
  396. package/tech/monorepo/rush.d.ts +0 -11
  397. package/tech/monorepo/rush.d.ts.map +0 -1
  398. package/tech/monorepo/turborepo.d.ts +0 -11
  399. package/tech/monorepo/turborepo.d.ts.map +0 -1
  400. package/tech/monorepo/types.d.ts +0 -39
  401. package/tech/monorepo/types.d.ts.map +0 -1
  402. package/tech/monorepo/yarn-workspaces.d.ts +0 -11
  403. package/tech/monorepo/yarn-workspaces.d.ts.map +0 -1
  404. package/tech/shared-utils/detector-helpers.d.ts +0 -52
  405. package/tech/shared-utils/detector-helpers.d.ts.map +0 -1
  406. package/tech/shared-utils/types.d.ts +0 -41
  407. package/tech/shared-utils/types.d.ts.map +0 -1
  408. package/tech/testing/cypress.d.ts +0 -13
  409. package/tech/testing/cypress.d.ts.map +0 -1
  410. package/tech/testing/detect-all.d.ts +0 -13
  411. package/tech/testing/detect-all.d.ts.map +0 -1
  412. package/tech/testing/index.cjs.js.map +0 -1
  413. package/tech/testing/index.esm.js.map +0 -1
  414. package/tech/testing/jest.d.ts +0 -13
  415. package/tech/testing/jest.d.ts.map +0 -1
  416. package/tech/testing/mocha.d.ts +0 -13
  417. package/tech/testing/mocha.d.ts.map +0 -1
  418. package/tech/testing/playwright.d.ts +0 -13
  419. package/tech/testing/playwright.d.ts.map +0 -1
  420. package/tech/testing/types.d.ts +0 -35
  421. package/tech/testing/types.d.ts.map +0 -1
  422. package/tech/testing/vitest.d.ts +0 -13
  423. package/tech/testing/vitest.d.ts.map +0 -1
  424. package/tech/types/detectors.d.ts +0 -67
  425. package/tech/types/detectors.d.ts.map +0 -1
  426. package/tech/types/index.cjs.js.map +0 -1
  427. package/tech/types/index.esm.js.map +0 -1
  428. package/vfs/commit.d.ts +0 -32
  429. package/vfs/commit.d.ts.map +0 -1
  430. package/vfs/diff.d.ts +0 -73
  431. package/vfs/diff.d.ts.map +0 -1
  432. package/vfs/factory.d.ts +0 -37
  433. package/vfs/factory.d.ts.map +0 -1
  434. package/vfs/fs-tree.d.ts +0 -13
  435. package/vfs/fs-tree.d.ts.map +0 -1
  436. package/vfs/index.cjs.js.map +0 -1
  437. package/vfs/index.esm.js.map +0 -1
  438. package/vfs/types.d.ts +0 -179
  439. package/vfs/types.d.ts.map +0 -1
@@ -1,413 +1,22 @@
1
1
  'use strict';
2
2
 
3
- var node_path = require('node:path');
4
- var node_fs = require('node:fs');
5
-
6
- /**
7
- * Safe copies of Map built-in via factory function.
8
- *
9
- * Since constructors cannot be safely captured via Object.assign, this module
10
- * provides a factory function that uses Reflect.construct internally.
11
- *
12
- * These references are captured at module initialization time to protect against
13
- * prototype pollution attacks. Import only what you need for tree-shaking.
14
- *
15
- * @module @hyperfrontend/immutable-api-utils/built-in-copy/map
16
- */
17
- const _Map = globalThis.Map;
18
- const _Reflect$2 = globalThis.Reflect;
19
- /**
20
- * (Safe copy) Creates a new Map using the captured Map constructor.
21
- * Use this instead of `new Map()`.
22
- *
23
- * @param iterable - Optional iterable of key-value pairs.
24
- * @returns A new Map instance.
25
- */
26
- const createMap = (iterable) => _Reflect$2.construct(_Map, iterable ? [iterable] : []);
27
-
28
- /**
29
- * Safe copies of Object built-in methods.
30
- *
31
- * These references are captured at module initialization time to protect against
32
- * prototype pollution attacks. Import only what you need for tree-shaking.
33
- *
34
- * @module @hyperfrontend/immutable-api-utils/built-in-copy/object
35
- */
36
- const _Object = globalThis.Object;
37
- /**
38
- * (Safe copy) Prevents modification of existing property attributes and values,
39
- * and prevents the addition of new properties.
40
- */
41
- const freeze = _Object.freeze;
42
- /**
43
- * (Safe copy) Returns the names of the enumerable string properties and methods of an object.
44
- */
45
- const keys = _Object.keys;
46
- /**
47
- * (Safe copy) Returns an array of key/values of the enumerable own properties of an object.
48
- */
49
- const entries = _Object.entries;
50
- /**
51
- * (Safe copy) Returns an array of values of the enumerable own properties of an object.
52
- */
53
- const values = _Object.values;
54
- /**
55
- * (Safe copy) Adds one or more properties to an object, and/or modifies attributes of existing properties.
56
- */
57
- const defineProperties = _Object.defineProperties;
58
-
59
- /**
60
- * Safe copies of Set built-in via factory function.
61
- *
62
- * Since constructors cannot be safely captured via Object.assign, this module
63
- * provides a factory function that uses Reflect.construct internally.
64
- *
65
- * These references are captured at module initialization time to protect against
66
- * prototype pollution attacks. Import only what you need for tree-shaking.
67
- *
68
- * @module @hyperfrontend/immutable-api-utils/built-in-copy/set
69
- */
70
- const _Set = globalThis.Set;
71
- const _Reflect$1 = globalThis.Reflect;
72
- /**
73
- * (Safe copy) Creates a new Set using the captured Set constructor.
74
- * Use this instead of `new Set()`.
75
- *
76
- * @param iterable - Optional iterable of values.
77
- * @returns A new Set instance.
78
- */
79
- const createSet = (iterable) => _Reflect$1.construct(_Set, iterable ? [iterable] : []);
80
-
81
- /**
82
- * Safe copies of Error built-ins via factory functions.
83
- *
84
- * Since constructors cannot be safely captured via Object.assign, this module
85
- * provides factory functions that use Reflect.construct internally.
86
- *
87
- * These references are captured at module initialization time to protect against
88
- * prototype pollution attacks. Import only what you need for tree-shaking.
89
- *
90
- * @module @hyperfrontend/immutable-api-utils/built-in-copy/error
91
- */
92
- const _Error = globalThis.Error;
93
- const _Reflect = globalThis.Reflect;
94
- /**
95
- * (Safe copy) Creates a new Error using the captured Error constructor.
96
- * Use this instead of `new Error()`.
97
- *
98
- * @param message - Optional error message.
99
- * @param options - Optional error options.
100
- * @returns A new Error instance.
101
- */
102
- const createError = (message, options) => _Reflect.construct(_Error, [message, options]);
103
-
104
- /**
105
- * Safe copies of JSON built-in methods.
106
- *
107
- * These references are captured at module initialization time to protect against
108
- * prototype pollution attacks. Import only what you need for tree-shaking.
109
- *
110
- * @module @hyperfrontend/immutable-api-utils/built-in-copy/json
111
- */
112
- const _JSON = globalThis.JSON;
113
- /**
114
- * (Safe copy) Converts a JavaScript Object Notation (JSON) string into an object.
115
- */
116
- const parse = _JSON.parse;
117
- /**
118
- * (Safe copy) Converts a JavaScript value to a JavaScript Object Notation (JSON) string.
119
- */
120
- const stringify = _JSON.stringify;
121
-
122
- /**
123
- * Safe copies of Array built-in static methods.
124
- *
125
- * These references are captured at module initialization time to protect against
126
- * prototype pollution attacks. Import only what you need for tree-shaking.
127
- *
128
- * @module @hyperfrontend/immutable-api-utils/built-in-copy/array
129
- */
130
- const _Array = globalThis.Array;
131
- /**
132
- * (Safe copy) Determines whether the passed value is an Array.
133
- */
134
- const isArray = _Array.isArray;
135
-
136
- /**
137
- * Safe copies of Console built-in methods.
138
- *
139
- * These references are captured at module initialization time to protect against
140
- * prototype pollution attacks. Import only what you need for tree-shaking.
141
- *
142
- * @module @hyperfrontend/immutable-api-utils/built-in-copy/console
143
- */
144
- const _console = globalThis.console;
145
- /**
146
- * (Safe copy) Outputs a message to the console.
147
- */
148
- const log = _console.log.bind(_console);
149
- /**
150
- * (Safe copy) Outputs a warning message to the console.
151
- */
152
- const warn = _console.warn.bind(_console);
153
- /**
154
- * (Safe copy) Outputs an error message to the console.
155
- */
156
- const error = _console.error.bind(_console);
157
- /**
158
- * (Safe copy) Outputs an informational message to the console.
159
- */
160
- const info = _console.info.bind(_console);
161
- /**
162
- * (Safe copy) Outputs a debug message to the console.
163
- */
164
- const debug = _console.debug.bind(_console);
165
- /**
166
- * (Safe copy) Outputs a stack trace to the console.
167
- */
168
- _console.trace.bind(_console);
169
- /**
170
- * (Safe copy) Displays an interactive listing of the properties of a specified object.
171
- */
172
- _console.dir.bind(_console);
173
- /**
174
- * (Safe copy) Displays tabular data as a table.
175
- */
176
- _console.table.bind(_console);
177
- /**
178
- * (Safe copy) Writes an error message to the console if the assertion is false.
179
- */
180
- _console.assert.bind(_console);
181
- /**
182
- * (Safe copy) Clears the console.
183
- */
184
- _console.clear.bind(_console);
185
- /**
186
- * (Safe copy) Logs the number of times that this particular call to count() has been called.
187
- */
188
- _console.count.bind(_console);
189
- /**
190
- * (Safe copy) Resets the counter used with console.count().
191
- */
192
- _console.countReset.bind(_console);
193
- /**
194
- * (Safe copy) Creates a new inline group in the console.
195
- */
196
- _console.group.bind(_console);
197
- /**
198
- * (Safe copy) Creates a new inline group in the console that is initially collapsed.
199
- */
200
- _console.groupCollapsed.bind(_console);
201
- /**
202
- * (Safe copy) Exits the current inline group.
203
- */
204
- _console.groupEnd.bind(_console);
205
- /**
206
- * (Safe copy) Starts a timer with a name specified as an input parameter.
207
- */
208
- _console.time.bind(_console);
209
- /**
210
- * (Safe copy) Stops a timer that was previously started.
211
- */
212
- _console.timeEnd.bind(_console);
213
- /**
214
- * (Safe copy) Logs the current value of a timer that was previously started.
215
- */
216
- _console.timeLog.bind(_console);
217
-
218
- const registeredClasses = [];
219
-
220
- /**
221
- * Returns the data type of the target.
222
- * Uses native `typeof` operator, however, makes distinction between `null`, `array`, and `object`.
223
- * Also, when classes are registered via `registerClass`, it checks if objects are instance of any known registered class.
224
- *
225
- * @param target - The target to get the data type of.
226
- * @returns The data type of the target.
227
- */
228
- const getType = (target) => {
229
- if (target === null)
230
- return 'null';
231
- const nativeDataType = typeof target;
232
- if (nativeDataType === 'object') {
233
- if (isArray(target))
234
- return 'array';
235
- for (const registeredClass of registeredClasses) {
236
- if (target instanceof registeredClass)
237
- return registeredClass.name;
238
- }
239
- }
240
- return nativeDataType;
241
- };
242
-
243
- /* eslint-disable @typescript-eslint/no-explicit-any */
244
- /**
245
- * Creates a wrapper function that only executes the wrapped function if the condition function returns true.
246
- *
247
- * @param func - The function to be conditionally executed.
248
- * @param conditionFunc - A function that returns a boolean, determining if `func` should be executed.
249
- * @returns A wrapped version of `func` that executes conditionally.
250
- */
251
- function createConditionalExecutionFunction(func, conditionFunc) {
252
- return function (...args) {
253
- if (conditionFunc()) {
254
- return func(...args);
255
- }
256
- };
257
- }
258
-
259
- /* eslint-disable @typescript-eslint/no-explicit-any */
260
- /**
261
- * Creates a wrapper function that silently ignores any errors thrown by the wrapped void function.
262
- * This function is specifically for wrapping functions that do not return a value (void functions).
263
- * Exceptions are swallowed without any logging or handling.
264
- *
265
- * @param func - The void function to be wrapped.
266
- * @returns A wrapped version of the input function that ignores errors.
267
- */
268
- function createErrorIgnoringFunction(func) {
269
- return function (...args) {
270
- try {
271
- func(...args);
272
- }
273
- catch {
274
- // Deliberately swallowing/ignoring the exception
275
- }
276
- };
277
- }
278
-
279
- /* eslint-disable @typescript-eslint/no-unused-vars */
280
- /**
281
- * A no-operation function (noop) that does nothing regardless of the arguments passed.
282
- * It is designed to be as permissive as possible in its typing without using the `Function` keyword.
283
- *
284
- * @param args - Any arguments passed to the function (ignored)
285
- */
286
- const noop = (...args) => {
287
- // Intentionally does nothing
288
- };
289
-
290
- const logLevels = ['none', 'error', 'warn', 'log', 'info', 'debug'];
291
- const priority = {
292
- error: 4,
293
- warn: 3,
294
- log: 2,
295
- info: 1,
296
- debug: 0,
297
- };
298
- /**
299
- * Validates whether a given string is a valid log level.
300
- *
301
- * @param level - The log level to validate
302
- * @returns True if the level is valid, false otherwise
303
- */
304
- function isValidLogLevel(level) {
305
- return logLevels.includes(level);
306
- }
307
- /**
308
- * Creates a log level configuration manager for controlling logging behavior.
309
- * Provides methods to get, set, and evaluate log levels based on priority.
310
- *
311
- * @param level - The initial log level (defaults to 'error')
312
- * @returns A configuration object with log level management methods
313
- * @throws {Error} When the provided level is not a valid log level
314
- */
315
- function createLogLevelConfig(level = 'error') {
316
- if (!isValidLogLevel(level)) {
317
- throw createError('Cannot create log level configuration with a valid default log level');
318
- }
319
- const state = { level };
320
- const getLogLevel = () => state.level;
321
- const setLogLevel = (level) => {
322
- if (!isValidLogLevel(level)) {
323
- throw createError(`Cannot set value '${level}' level. Expected levels are ${logLevels}.`);
324
- }
325
- state.level = level;
326
- };
327
- const shouldLog = (level) => {
328
- if (state.level === 'none' || level === 'none' || !isValidLogLevel(level)) {
329
- return false;
330
- }
331
- return priority[level] >= priority[state.level];
332
- };
333
- return freeze({
334
- getLogLevel,
335
- setLogLevel,
336
- shouldLog,
337
- });
338
- }
339
-
340
- /**
341
- * Creates a logger instance with configurable log level filtering.
342
- * Each log function is wrapped to respect the current log level setting.
343
- *
344
- * @param error - Function to handle error-level logs (required)
345
- * @param warn - Function to handle warning-level logs (optional, defaults to noop)
346
- * @param log - Function to handle standard logs (optional, defaults to noop)
347
- * @param info - Function to handle info-level logs (optional, defaults to noop)
348
- * @param debug - Function to handle debug-level logs (optional, defaults to noop)
349
- * @returns A frozen logger object with log methods and level control
350
- * @throws {ErrorLevelFn} When any provided log function is invalid
351
- */
352
- function createLogger(error, warn = noop, log = noop, info = noop, debug = noop) {
353
- if (notValidLogFn(error)) {
354
- throw createError(notFnMsg('error'));
355
- }
356
- if (notValidLogFn(warn)) {
357
- throw createError(notFnMsg('warn'));
358
- }
359
- if (notValidLogFn(log)) {
360
- throw createError(notFnMsg('log'));
361
- }
362
- if (notValidLogFn(info)) {
363
- throw createError(notFnMsg('info'));
364
- }
365
- if (notValidLogFn(debug)) {
366
- throw createError(notFnMsg('debug'));
367
- }
368
- const { setLogLevel, getLogLevel, shouldLog } = createLogLevelConfig();
369
- const wrapLogFn = (fn, level) => {
370
- if (fn === noop)
371
- return fn;
372
- const condition = () => shouldLog(level);
373
- return createConditionalExecutionFunction(createErrorIgnoringFunction(fn), condition);
374
- };
375
- return freeze({
376
- error: wrapLogFn(error, 'error'),
377
- warn: wrapLogFn(warn, 'warn'),
378
- log: wrapLogFn(log, 'log'),
379
- info: wrapLogFn(info, 'info'),
380
- debug: wrapLogFn(debug, 'debug'),
381
- setLogLevel,
382
- getLogLevel,
383
- });
384
- }
385
- /**
386
- * Validates whether a given value is a valid log function.
387
- *
388
- * @param fn - The value to validate
389
- * @returns True if the value is not a function (invalid), false if it is valid
390
- */
391
- function notValidLogFn(fn) {
392
- return getType(fn) !== 'function' && fn !== noop;
393
- }
394
- /**
395
- * Generates an error message for invalid log function parameters.
396
- *
397
- * @param label - The name of the log function that failed validation
398
- * @returns A formatted error message string
399
- */
400
- function notFnMsg(label) {
401
- return `Cannot create a logger when ${label} is not a function`;
402
- }
403
-
404
- createLogger(error, warn, log, info, debug);
3
+ const node_path = require('node:path');
4
+ const index_cjs_js$7 = require('../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/map/index.cjs.js');
5
+ const index_cjs_js$2 = require('../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/object/index.cjs.js');
6
+ const index_cjs_js = require('../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/set/index.cjs.js');
7
+ const node_fs = require('node:fs');
8
+ const index_cjs_js$4 = require('../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/array/index.cjs.js');
9
+ const index_cjs_js$3 = require('../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/console/index.cjs.js');
10
+ const index_cjs_js$5 = require('../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/json/index.cjs.js');
11
+ const index_cjs_js$1 = require('../../_dependencies/@hyperfrontend/logging/index.cjs.js');
12
+ const index_cjs_js$6 = require('../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/error/index.cjs.js');
13
+ const { isFile, isDirectory, exists } = require('../../_shared/core/fs/stat/index.cjs.js');
405
14
 
406
15
  /**
407
16
  * Global log level registry.
408
17
  * Tracks all created scoped loggers to allow global log level changes.
409
18
  */
410
- const loggerRegistry = createSet();
19
+ const loggerRegistry = index_cjs_js.createSet();
411
20
  /** Redacted placeholder for sensitive values */
412
21
  const REDACTED = '[REDACTED]';
413
22
  /**
@@ -441,17 +50,24 @@ function isSensitiveKey(key) {
441
50
  *
442
51
  * @param obj - Object to sanitize
443
52
  * @returns New object with sensitive values redacted
53
+ *
54
+ * @example Sanitizing sensitive data
55
+ * ```typescript
56
+ * const config = { apiKey: 'secret123', endpoint: 'https://api.example.com' }
57
+ * const safe = sanitize(config)
58
+ * // => { apiKey: '[REDACTED]', endpoint: 'https://api.example.com' }
59
+ * ```
444
60
  */
445
61
  function sanitize(obj) {
446
62
  if (obj === null || obj === undefined) {
447
63
  return obj;
448
64
  }
449
- if (isArray(obj)) {
65
+ if (index_cjs_js$4.isArray(obj)) {
450
66
  return obj.map((item) => sanitize(item));
451
67
  }
452
68
  if (typeof obj === 'object') {
453
69
  const result = {};
454
- for (const [key, value] of entries(obj)) {
70
+ for (const [key, value] of index_cjs_js$2.entries(obj)) {
455
71
  if (isSensitiveKey(key)) {
456
72
  result[key] = REDACTED;
457
73
  }
@@ -476,9 +92,9 @@ function sanitize(obj) {
476
92
  */
477
93
  function formatMessage(namespace, message, meta) {
478
94
  const prefix = `[${namespace}]`;
479
- if (meta && keys(meta).length > 0) {
95
+ if (meta && index_cjs_js$2.keys(meta).length > 0) {
480
96
  const sanitizedMeta = sanitize(meta);
481
- return `${prefix} ${message} ${stringify(sanitizedMeta)}`;
97
+ return `${prefix} ${message} ${index_cjs_js$5.stringify(sanitizedMeta)}`;
482
98
  }
483
99
  return `${prefix} ${message}`;
484
100
  }
@@ -491,7 +107,7 @@ function formatMessage(namespace, message, meta) {
491
107
  * @param options - Logger configuration options
492
108
  * @returns A configured scoped logger instance
493
109
  *
494
- * @example
110
+ * @example Creating a scoped logger
495
111
  * ```typescript
496
112
  * const logger = createScopedLogger('project-scope')
497
113
  * logger.setLogLevel('debug')
@@ -510,9 +126,9 @@ function createScopedLogger(namespace, options = {}) {
510
126
  const processedMeta = sanitizeSecrets && meta ? sanitize(meta) : meta;
511
127
  baseFn(formatMessage(namespace, message, processedMeta));
512
128
  };
513
- const baseLogger = createLogger(createLogFn(error), createLogFn(warn), createLogFn(log), createLogFn(info), createLogFn(debug));
129
+ const baseLogger = index_cjs_js$1.createLogger(createLogFn(index_cjs_js$3.error), createLogFn(index_cjs_js$3.warn), createLogFn(index_cjs_js$3.log), createLogFn(index_cjs_js$3.info), createLogFn(index_cjs_js$3.debug));
514
130
  baseLogger.setLogLevel(level);
515
- const scopedLogger = freeze({
131
+ const scopedLogger = index_cjs_js$2.freeze({
516
132
  error: (message, meta) => baseLogger.error(message, meta),
517
133
  warn: (message, meta) => baseLogger.warn(message, meta),
518
134
  log: (message, meta) => baseLogger.log(message, meta),
@@ -528,7 +144,7 @@ function createScopedLogger(namespace, options = {}) {
528
144
  * Default logger instance for the project-scope library.
529
145
  * Use this for general logging within the library.
530
146
  *
531
- * @example
147
+ * @example Using the default logger
532
148
  * ```typescript
533
149
  * import { logger } from '@hyperfrontend/project-scope/core'
534
150
  *
@@ -546,10 +162,19 @@ const fsLogger = createScopedLogger('project-scope:fs');
546
162
  * @param code - The category code for this type of filesystem failure
547
163
  * @param context - Additional context including path, operation, and cause
548
164
  * @returns A configured Error object with code and context properties
165
+ *
166
+ * @example Creating a file system error
167
+ * ```typescript
168
+ * throw createFileSystemError(
169
+ * 'Cannot read file',
170
+ * 'FS_READ_ERROR',
171
+ * { path: './missing.txt', operation: 'read' }
172
+ * )
173
+ * ```
549
174
  */
550
175
  function createFileSystemError(message, code, context) {
551
- const error = createError(message);
552
- defineProperties(error, {
176
+ const error = index_cjs_js$6.createError(message);
177
+ index_cjs_js$2.defineProperties(error, {
553
178
  code: { value: code, enumerable: true },
554
179
  context: { value: context, enumerable: true },
555
180
  });
@@ -563,7 +188,7 @@ function createFileSystemError(message, code, context) {
563
188
  * @returns File contents as string
564
189
  * @throws {Error} If file doesn't exist or can't be read
565
190
  *
566
- * @example
191
+ * @example Reading file contents
567
192
  * ```typescript
568
193
  * import { readFileContent } from '@hyperfrontend/project-scope'
569
194
  *
@@ -590,6 +215,14 @@ function readFileContent(filePath, encoding = 'utf-8') {
590
215
  * @param filePath - Path to file
591
216
  * @param encoding - File encoding (default: utf-8)
592
217
  * @returns File contents or null if file doesn't exist
218
+ *
219
+ * @example Reading file if it exists
220
+ * ```typescript
221
+ * const content = readFileIfExists('./optional-config.json')
222
+ * if (content) {
223
+ * // File existed, use content
224
+ * }
225
+ * ```
593
226
  */
594
227
  function readFileIfExists(filePath, encoding = 'utf-8') {
595
228
  if (!node_fs.existsSync(filePath)) {
@@ -603,66 +236,6 @@ function readFileIfExists(filePath, encoding = 'utf-8') {
603
236
  }
604
237
  }
605
238
 
606
- createScopedLogger('project-scope:fs:write');
607
-
608
- /**
609
- * Get file stats with error handling.
610
- *
611
- * @param filePath - Path to file
612
- * @param followSymlinks - Whether to follow symlinks (default: true)
613
- * @returns File stats or null if path doesn't exist
614
- */
615
- function getFileStat(filePath, followSymlinks = true) {
616
- if (!node_fs.existsSync(filePath)) {
617
- return null;
618
- }
619
- try {
620
- const stat = followSymlinks ? node_fs.statSync(filePath) : node_fs.lstatSync(filePath);
621
- return {
622
- isFile: stat.isFile(),
623
- isDirectory: stat.isDirectory(),
624
- isSymlink: stat.isSymbolicLink(),
625
- size: stat.size,
626
- created: stat.birthtime,
627
- modified: stat.mtime,
628
- accessed: stat.atime,
629
- mode: stat.mode,
630
- };
631
- }
632
- catch {
633
- return null;
634
- }
635
- }
636
- /**
637
- * Check if path is a file.
638
- *
639
- * @param filePath - Path to check
640
- * @returns True if path is a file
641
- */
642
- function isFile(filePath) {
643
- const stats = getFileStat(filePath);
644
- return stats?.isFile ?? false;
645
- }
646
- /**
647
- * Check if path is a directory.
648
- *
649
- * @param dirPath - Path to check
650
- * @returns True if path is a directory
651
- */
652
- function isDirectory(dirPath) {
653
- const stats = getFileStat(dirPath);
654
- return stats?.isDirectory ?? false;
655
- }
656
- /**
657
- * Check if path exists.
658
- *
659
- * @param filePath - Path to check
660
- * @returns True if path exists
661
- */
662
- function exists(filePath) {
663
- return node_fs.existsSync(filePath);
664
- }
665
-
666
239
  const fsDirLogger = createScopedLogger('project-scope:fs:dir');
667
240
  /**
668
241
  * List immediate contents of a directory.
@@ -671,7 +244,7 @@ const fsDirLogger = createScopedLogger('project-scope:fs:dir');
671
244
  * @returns Array of entries with metadata for each file/directory
672
245
  * @throws {Error} If directory doesn't exist or isn't a directory
673
246
  *
674
- * @example
247
+ * @example Listing directory contents
675
248
  * ```typescript
676
249
  * import { readDirectory } from '@hyperfrontend/project-scope'
677
250
  *
@@ -714,6 +287,8 @@ function readDirectory(dirPath) {
714
287
 
715
288
  createScopedLogger('project-scope:fs:traversal');
716
289
 
290
+ createScopedLogger('project-scope:fs:write');
291
+
717
292
  const packageLogger = createScopedLogger('project-scope:project:package');
718
293
  /**
719
294
  * Verifies that a value is an object with only string values,
@@ -725,7 +300,7 @@ const packageLogger = createScopedLogger('project-scope:project:package');
725
300
  function isStringRecord(value) {
726
301
  if (typeof value !== 'object' || value === null)
727
302
  return false;
728
- return values(value).every((v) => typeof v === 'string');
303
+ return index_cjs_js$2.values(value).every((v) => typeof v === 'string');
729
304
  }
730
305
  /**
731
306
  * Extracts and normalizes the workspaces field from package.json,
@@ -735,12 +310,12 @@ function isStringRecord(value) {
735
310
  * @returns Normalized workspace patterns or undefined if invalid
736
311
  */
737
312
  function parseWorkspaces(value) {
738
- if (isArray(value) && value.every((v) => typeof v === 'string')) {
313
+ if (index_cjs_js$4.isArray(value) && value.every((v) => typeof v === 'string')) {
739
314
  return value;
740
315
  }
741
316
  if (typeof value === 'object' && value !== null) {
742
317
  const obj = value;
743
- if (isArray(obj['packages'])) {
318
+ if (index_cjs_js$4.isArray(obj['packages'])) {
744
319
  return { packages: obj['packages'] };
745
320
  }
746
321
  }
@@ -754,7 +329,7 @@ function parseWorkspaces(value) {
754
329
  */
755
330
  function validatePackageJson(data) {
756
331
  if (typeof data !== 'object' || data === null) {
757
- throw createError('package.json must be an object');
332
+ throw index_cjs_js$6.createError('package.json must be an object');
758
333
  }
759
334
  const pkg = data;
760
335
  return {
@@ -783,6 +358,16 @@ function validatePackageJson(data) {
783
358
  *
784
359
  * @param projectPath - Project directory path or path to package.json
785
360
  * @returns Parsed package.json or null if not found
361
+ *
362
+ * @example Reading package.json if it exists
363
+ * ```typescript
364
+ * import { readPackageJsonIfExists } from '@hyperfrontend/project-scope'
365
+ *
366
+ * const pkg = readPackageJsonIfExists('/path/to/project')
367
+ * if (pkg) {
368
+ * console.log('Found:', pkg.name)
369
+ * }
370
+ * ```
786
371
  */
787
372
  function readPackageJsonIfExists(projectPath) {
788
373
  const packageJsonPath = projectPath.endsWith('package.json') ? projectPath : node_path.join(projectPath, 'package.json');
@@ -792,7 +377,7 @@ function readPackageJsonIfExists(projectPath) {
792
377
  return null;
793
378
  }
794
379
  try {
795
- const validated = validatePackageJson(parse(content));
380
+ const validated = validatePackageJson(index_cjs_js$5.parse(content));
796
381
  packageLogger.debug('Package.json loaded', { path: packageJsonPath, name: validated.name });
797
382
  return validated;
798
383
  }
@@ -916,7 +501,7 @@ function collectSourceFiles(dir, extensions, maxDepth, currentDepth = 0) {
916
501
  * @param options - Configuration for graph building
917
502
  * @returns Dependency graph with nodes, roots, and leaves
918
503
  *
919
- * @example
504
+ * @example Building a dependency graph
920
505
  * ```typescript
921
506
  * import { buildDependencyGraph } from '@hyperfrontend/project-scope'
922
507
  *
@@ -936,8 +521,8 @@ function buildDependencyGraph(projectPath, options) {
936
521
  const maxDepth = options?.maxDepth ?? 10;
937
522
  const includeExternal = options?.includeExternal ?? false;
938
523
  depsLogger.debug('Building dependency graph', { projectPath, extensions, maxDepth, includeExternal });
939
- const nodes = createMap();
940
- const incomingEdges = createMap();
524
+ const nodes = index_cjs_js$7.createMap();
525
+ const incomingEdges = index_cjs_js$7.createMap();
941
526
  const srcDir = node_path.join(projectPath, 'src');
942
527
  let sourceFiles;
943
528
  if (exists(srcDir) && isDirectory(srcDir)) {
@@ -956,7 +541,7 @@ function buildDependencyGraph(projectPath, options) {
956
541
  dependencies: [],
957
542
  dependents: [],
958
543
  });
959
- incomingEdges.set(relativePath, createSet());
544
+ incomingEdges.set(relativePath, index_cjs_js.createSet());
960
545
  }
961
546
  for (const file of sourceFiles) {
962
547
  const relativePath = node_path.relative(projectPath, file);
@@ -1017,12 +602,21 @@ function buildDependencyGraph(projectPath, options) {
1017
602
  *
1018
603
  * @param graph - Dependency graph
1019
604
  * @returns Array of circular dependencies found
605
+ *
606
+ * @example Finding circular dependencies
607
+ * ```typescript
608
+ * import { buildDependencyGraph, findCircularDependencies } from '@hyperfrontend/project-scope'
609
+ *
610
+ * const graph = buildDependencyGraph('/workspace')
611
+ * const cycles = findCircularDependencies(graph)
612
+ * cycles.forEach(c => console.log(`Cycle: ${c.cycle.join(' -> ')}`))
613
+ * ```
1020
614
  */
1021
615
  function findCircularDependencies(graph) {
1022
616
  depsLogger.debug('Searching for circular dependencies', { nodeCount: graph.nodes.size });
1023
617
  const cycles = [];
1024
- const visited = createSet();
1025
- const recursionStack = createSet();
618
+ const visited = index_cjs_js.createSet();
619
+ const recursionStack = index_cjs_js.createSet();
1026
620
  const path = [];
1027
621
  /**
1028
622
  * Depth-first search to detect cycles.
@@ -1077,6 +671,16 @@ function findCircularDependencies(graph) {
1077
671
  *
1078
672
  * @param projectPath - Project directory
1079
673
  * @returns Dependencies grouped by runtime, dev, peer, and optional
674
+ *
675
+ * @example Getting project dependencies
676
+ * ```typescript
677
+ * import { getProjectDependencies } from '@hyperfrontend/project-scope'
678
+ *
679
+ * const deps = getProjectDependencies('/path/to/project')
680
+ * console.log('Runtime:', deps.runtime) // ['express', 'lodash']
681
+ * console.log('Dev:', deps.development) // ['jest', 'typescript']
682
+ * console.log('Total:', deps.total) // 15
683
+ * ```
1080
684
  */
1081
685
  function getProjectDependencies(projectPath) {
1082
686
  const packageJson = readPackageJsonIfExists(projectPath);
@@ -1089,11 +693,11 @@ function getProjectDependencies(projectPath) {
1089
693
  total: 0,
1090
694
  };
1091
695
  }
1092
- const runtime = packageJson.dependencies ? keys(packageJson.dependencies) : [];
1093
- const development = packageJson.devDependencies ? keys(packageJson.devDependencies) : [];
1094
- const peer = packageJson.peerDependencies ? keys(packageJson.peerDependencies) : [];
1095
- const optional = packageJson.optionalDependencies ? keys(packageJson.optionalDependencies) : [];
1096
- const allDeps = createSet([...runtime, ...development, ...peer, ...optional]);
696
+ const runtime = packageJson.dependencies ? index_cjs_js$2.keys(packageJson.dependencies) : [];
697
+ const development = packageJson.devDependencies ? index_cjs_js$2.keys(packageJson.devDependencies) : [];
698
+ const peer = packageJson.peerDependencies ? index_cjs_js$2.keys(packageJson.peerDependencies) : [];
699
+ const optional = packageJson.optionalDependencies ? index_cjs_js$2.keys(packageJson.optionalDependencies) : [];
700
+ const allDeps = index_cjs_js.createSet([...runtime, ...development, ...peer, ...optional]);
1097
701
  return {
1098
702
  runtime,
1099
703
  development,
@@ -1106,4 +710,3 @@ function getProjectDependencies(projectPath) {
1106
710
  exports.buildDependencyGraph = buildDependencyGraph;
1107
711
  exports.findCircularDependencies = findCircularDependencies;
1108
712
  exports.getProjectDependencies = getProjectDependencies;
1109
- //# sourceMappingURL=index.cjs.js.map