@hyperfrontend/project-scope 0.2.1 → 0.2.3

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 (443) hide show
  1. package/CHANGELOG.md +14 -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/guard/index.cjs.js +7 -0
  31. package/_shared/core/fs/guard/index.esm.js +5 -0
  32. package/_shared/core/fs/stat/index.cjs.js +47 -0
  33. package/_shared/core/fs/stat/index.esm.js +41 -0
  34. package/_shared/core/path/confine/index.cjs.js +22 -0
  35. package/_shared/core/path/confine/index.esm.js +19 -0
  36. package/_shared/core/path/join/index.cjs.js +13 -0
  37. package/_shared/core/path/join/index.esm.js +10 -0
  38. package/_shared/core/path/normalize/index.cjs.js +37 -0
  39. package/_shared/core/path/normalize/index.esm.js +31 -0
  40. package/_shared/core/path/resolve/index.cjs.js +47 -0
  41. package/_shared/core/path/resolve/index.esm.js +41 -0
  42. package/_shared/core/path/segments/index.cjs.js +38 -0
  43. package/_shared/core/path/segments/index.esm.js +31 -0
  44. package/_shared/core/patterns/glob/index.cjs.js +145 -0
  45. package/_shared/core/patterns/glob/index.esm.js +136 -0
  46. package/_shared/core/platform/detect/index.cjs.js +103 -0
  47. package/_shared/core/platform/detect/index.esm.js +95 -0
  48. package/_shared/core/platform/line-endings/index.cjs.js +52 -0
  49. package/_shared/core/platform/line-endings/index.esm.js +44 -0
  50. package/_shared/project/config/patterns/index.cjs.js +172 -0
  51. package/_shared/project/config/patterns/index.esm.js +169 -0
  52. package/_shared/tech/monorepo/pnpm-workspaces/index.cjs.js +33 -0
  53. package/_shared/tech/monorepo/pnpm-workspaces/index.esm.js +31 -0
  54. package/_shared/tech/shared-utils/detector-helpers/index.cjs.js +48 -0
  55. package/_shared/tech/shared-utils/detector-helpers/index.esm.js +43 -0
  56. package/_shared/vfs/types/index.cjs.js +14 -0
  57. package/_shared/vfs/types/index.esm.js +12 -0
  58. package/cli/index.cjs.js +1706 -1910
  59. package/cli/index.d.ts +273 -7
  60. package/cli/index.d.ts.map +1 -1
  61. package/cli/index.esm.js +1593 -1797
  62. package/core/encoding/index.cjs.js +86 -401
  63. package/core/encoding/index.d.ts +186 -3
  64. package/core/encoding/index.d.ts.map +1 -1
  65. package/core/encoding/index.esm.js +78 -392
  66. package/core/fs/index.cjs.js +243 -583
  67. package/core/fs/index.d.ts +479 -6
  68. package/core/fs/index.d.ts.map +1 -1
  69. package/core/fs/index.esm.js +233 -573
  70. package/core/index.cjs.js +526 -1746
  71. package/core/index.d.ts +486 -9
  72. package/core/index.d.ts.map +1 -1
  73. package/core/index.esm.js +515 -1732
  74. package/core/path/index.cjs.js +8 -234
  75. package/core/path/index.d.ts +327 -5
  76. package/core/path/index.d.ts.map +1 -1
  77. package/core/path/index.esm.js +8 -235
  78. package/core/platform/index.cjs.js +5 -216
  79. package/core/platform/index.d.ts +185 -3
  80. package/core/platform/index.d.ts.map +1 -1
  81. package/core/platform/index.esm.js +3 -212
  82. package/heuristics/dependencies/index.cjs.js +105 -493
  83. package/heuristics/dependencies/index.d.ts +99 -2
  84. package/heuristics/dependencies/index.d.ts.map +1 -1
  85. package/heuristics/dependencies/index.esm.js +81 -469
  86. package/heuristics/entry-points/index.cjs.js +93 -796
  87. package/heuristics/entry-points/index.d.ts +123 -2
  88. package/heuristics/entry-points/index.d.ts.map +1 -1
  89. package/heuristics/entry-points/index.esm.js +74 -777
  90. package/heuristics/framework/index.cjs.js +1483 -1411
  91. package/heuristics/framework/index.d.ts +104 -2
  92. package/heuristics/framework/index.d.ts.map +1 -1
  93. package/heuristics/framework/index.esm.js +1419 -1347
  94. package/heuristics/index.cjs.js +3220 -3306
  95. package/heuristics/index.d.ts +4 -5
  96. package/heuristics/index.d.ts.map +1 -1
  97. package/heuristics/index.esm.js +3244 -3330
  98. package/heuristics/project-type/index.cjs.js +1489 -1438
  99. package/heuristics/project-type/index.d.ts +64 -2
  100. package/heuristics/project-type/index.d.ts.map +1 -1
  101. package/heuristics/project-type/index.esm.js +1419 -1368
  102. package/index.cjs.js +3058 -3532
  103. package/index.d.ts +44 -10
  104. package/index.d.ts.map +1 -1
  105. package/index.esm.js +2914 -3376
  106. package/models/index.cjs.js +0 -1
  107. package/models/index.d.ts +20 -14
  108. package/models/index.d.ts.map +1 -1
  109. package/models/index.esm.js +0 -1
  110. package/nx/index.cjs.js +166 -579
  111. package/nx/index.d.ts +279 -4
  112. package/nx/index.d.ts.map +1 -1
  113. package/nx/index.esm.js +148 -556
  114. package/package.json +13 -12
  115. package/project/config/index.cjs.js +127 -1063
  116. package/project/config/index.d.ts +202 -4
  117. package/project/config/index.d.ts.map +1 -1
  118. package/project/config/index.esm.js +110 -1044
  119. package/project/index.cjs.js +328 -1101
  120. package/project/index.d.ts +4 -5
  121. package/project/index.d.ts.map +1 -1
  122. package/project/index.esm.js +307 -1077
  123. package/project/package/index.cjs.js +196 -473
  124. package/project/package/index.d.ts +280 -3
  125. package/project/package/index.d.ts.map +1 -1
  126. package/project/package/index.esm.js +183 -459
  127. package/project/root/index.cjs.js +109 -417
  128. package/project/root/index.d.ts +83 -2
  129. package/project/root/index.d.ts.map +1 -1
  130. package/project/root/index.esm.js +98 -406
  131. package/project/traversal/index.cjs.js +96 -622
  132. package/project/traversal/index.d.ts +165 -3
  133. package/project/traversal/index.d.ts.map +1 -1
  134. package/project/traversal/index.esm.js +82 -608
  135. package/tech/backend/index.cjs.js +223 -508
  136. package/tech/backend/index.d.ts +205 -8
  137. package/tech/backend/index.d.ts.map +1 -1
  138. package/tech/backend/index.esm.js +202 -487
  139. package/tech/build/index.cjs.js +350 -636
  140. package/tech/build/index.d.ts +276 -10
  141. package/tech/build/index.d.ts.map +1 -1
  142. package/tech/build/index.esm.js +328 -614
  143. package/tech/frontend/index.cjs.js +507 -685
  144. package/tech/frontend/index.d.ts +379 -15
  145. package/tech/frontend/index.d.ts.map +1 -1
  146. package/tech/frontend/index.esm.js +483 -661
  147. package/tech/index.cjs.js +1581 -1420
  148. package/tech/index.d.ts +55 -32
  149. package/tech/index.d.ts.map +1 -1
  150. package/tech/index.esm.js +1515 -1354
  151. package/tech/legacy/index.cjs.js +99 -449
  152. package/tech/legacy/index.d.ts +125 -7
  153. package/tech/legacy/index.d.ts.map +1 -1
  154. package/tech/legacy/index.esm.js +81 -431
  155. package/tech/linting/index.cjs.js +138 -523
  156. package/tech/linting/index.d.ts +129 -7
  157. package/tech/linting/index.d.ts.map +1 -1
  158. package/tech/linting/index.esm.js +118 -503
  159. package/tech/monorepo/index.cjs.js +246 -573
  160. package/tech/monorepo/index.d.ts +241 -10
  161. package/tech/monorepo/index.d.ts.map +1 -1
  162. package/tech/monorepo/index.esm.js +226 -553
  163. package/tech/testing/index.cjs.js +216 -571
  164. package/tech/testing/index.d.ts +176 -8
  165. package/tech/testing/index.d.ts.map +1 -1
  166. package/tech/testing/index.esm.js +198 -553
  167. package/tech/types/index.cjs.js +123 -506
  168. package/tech/types/index.d.ts +120 -2
  169. package/tech/types/index.d.ts.map +1 -1
  170. package/tech/types/index.esm.js +101 -484
  171. package/vfs/index.cjs.js +647 -1142
  172. package/vfs/index.d.ts +360 -6
  173. package/vfs/index.d.ts.map +1 -1
  174. package/vfs/index.esm.js +672 -1167
  175. package/ARCHITECTURE.md +0 -370
  176. package/analyze.d.ts +0 -33
  177. package/analyze.d.ts.map +0 -1
  178. package/cli/commands/analyze.d.ts +0 -28
  179. package/cli/commands/analyze.d.ts.map +0 -1
  180. package/cli/commands/config.d.ts +0 -27
  181. package/cli/commands/config.d.ts.map +0 -1
  182. package/cli/commands/deps.d.ts +0 -24
  183. package/cli/commands/deps.d.ts.map +0 -1
  184. package/cli/commands/tree.d.ts +0 -36
  185. package/cli/commands/tree.d.ts.map +0 -1
  186. package/cli/index.cjs.js.map +0 -1
  187. package/cli/index.esm.js.map +0 -1
  188. package/cli/run.d.ts +0 -25
  189. package/cli/run.d.ts.map +0 -1
  190. package/cli/types.d.ts +0 -55
  191. package/cli/types.d.ts.map +0 -1
  192. package/core/cache.d.ts +0 -158
  193. package/core/cache.d.ts.map +0 -1
  194. package/core/encoding/convert.d.ts +0 -32
  195. package/core/encoding/convert.d.ts.map +0 -1
  196. package/core/encoding/detect.d.ts +0 -91
  197. package/core/encoding/detect.d.ts.map +0 -1
  198. package/core/encoding/index.cjs.js.map +0 -1
  199. package/core/encoding/index.esm.js.map +0 -1
  200. package/core/errors/structured-errors.d.ts +0 -66
  201. package/core/errors/structured-errors.d.ts.map +0 -1
  202. package/core/fs/directory.d.ts +0 -91
  203. package/core/fs/directory.d.ts.map +0 -1
  204. package/core/fs/index.cjs.js.map +0 -1
  205. package/core/fs/index.esm.js.map +0 -1
  206. package/core/fs/read.d.ts +0 -94
  207. package/core/fs/read.d.ts.map +0 -1
  208. package/core/fs/stat.d.ts +0 -58
  209. package/core/fs/stat.d.ts.map +0 -1
  210. package/core/fs/traversal.d.ts +0 -26
  211. package/core/fs/traversal.d.ts.map +0 -1
  212. package/core/fs/write.d.ts +0 -75
  213. package/core/fs/write.d.ts.map +0 -1
  214. package/core/index.cjs.js.map +0 -1
  215. package/core/index.esm.js.map +0 -1
  216. package/core/logger.d.ts +0 -111
  217. package/core/logger.d.ts.map +0 -1
  218. package/core/path/index.cjs.js.map +0 -1
  219. package/core/path/index.esm.js.map +0 -1
  220. package/core/path/join.d.ts +0 -17
  221. package/core/path/join.d.ts.map +0 -1
  222. package/core/path/normalize.d.ts +0 -37
  223. package/core/path/normalize.d.ts.map +0 -1
  224. package/core/path/resolve.d.ts +0 -52
  225. package/core/path/resolve.d.ts.map +0 -1
  226. package/core/path/segments.d.ts +0 -59
  227. package/core/path/segments.d.ts.map +0 -1
  228. package/core/patterns/glob.d.ts +0 -42
  229. package/core/patterns/glob.d.ts.map +0 -1
  230. package/core/platform/detect.d.ts +0 -66
  231. package/core/platform/detect.d.ts.map +0 -1
  232. package/core/platform/index.cjs.js.map +0 -1
  233. package/core/platform/index.esm.js.map +0 -1
  234. package/core/platform/line-endings.d.ts +0 -48
  235. package/core/platform/line-endings.d.ts.map +0 -1
  236. package/heuristics/dependencies/analyze.d.ts +0 -77
  237. package/heuristics/dependencies/analyze.d.ts.map +0 -1
  238. package/heuristics/dependencies/index.cjs.js.map +0 -1
  239. package/heuristics/dependencies/index.esm.js.map +0 -1
  240. package/heuristics/entry-points/discover.d.ts +0 -113
  241. package/heuristics/entry-points/discover.d.ts.map +0 -1
  242. package/heuristics/entry-points/index.cjs.js.map +0 -1
  243. package/heuristics/entry-points/index.esm.js.map +0 -1
  244. package/heuristics/framework/identify.d.ts +0 -84
  245. package/heuristics/framework/identify.d.ts.map +0 -1
  246. package/heuristics/framework/index.cjs.js.map +0 -1
  247. package/heuristics/framework/index.esm.js.map +0 -1
  248. package/heuristics/index.cjs.js.map +0 -1
  249. package/heuristics/index.esm.js.map +0 -1
  250. package/heuristics/project-type/detect.d.ts +0 -61
  251. package/heuristics/project-type/detect.d.ts.map +0 -1
  252. package/heuristics/project-type/index.cjs.js.map +0 -1
  253. package/heuristics/project-type/index.esm.js.map +0 -1
  254. package/index.cjs.js.map +0 -1
  255. package/index.esm.js.map +0 -1
  256. package/models/index.cjs.js.map +0 -1
  257. package/models/index.esm.js.map +0 -1
  258. package/nx/detect.d.ts +0 -105
  259. package/nx/detect.d.ts.map +0 -1
  260. package/nx/devkit-loader.d.ts +0 -62
  261. package/nx/devkit-loader.d.ts.map +0 -1
  262. package/nx/index.cjs.js.map +0 -1
  263. package/nx/index.esm.js.map +0 -1
  264. package/nx/project-config.d.ts +0 -111
  265. package/nx/project-config.d.ts.map +0 -1
  266. package/project/config/detect.d.ts +0 -77
  267. package/project/config/detect.d.ts.map +0 -1
  268. package/project/config/index.cjs.js.map +0 -1
  269. package/project/config/index.esm.js.map +0 -1
  270. package/project/config/parse.d.ts +0 -53
  271. package/project/config/parse.d.ts.map +0 -1
  272. package/project/config/patterns.d.ts +0 -31
  273. package/project/config/patterns.d.ts.map +0 -1
  274. package/project/index.cjs.js.map +0 -1
  275. package/project/index.esm.js.map +0 -1
  276. package/project/package/dependencies.d.ts +0 -101
  277. package/project/package/dependencies.d.ts.map +0 -1
  278. package/project/package/index.cjs.js.map +0 -1
  279. package/project/package/index.esm.js.map +0 -1
  280. package/project/package/read.d.ts +0 -67
  281. package/project/package/read.d.ts.map +0 -1
  282. package/project/root/detect.d.ts +0 -65
  283. package/project/root/detect.d.ts.map +0 -1
  284. package/project/root/index.cjs.js.map +0 -1
  285. package/project/root/index.esm.js.map +0 -1
  286. package/project/traversal/index.cjs.js.map +0 -1
  287. package/project/traversal/index.esm.js.map +0 -1
  288. package/project/traversal/search.d.ts +0 -59
  289. package/project/traversal/search.d.ts.map +0 -1
  290. package/project/traversal/walk.d.ts +0 -63
  291. package/project/traversal/walk.d.ts.map +0 -1
  292. package/tech/backend/detect-all.d.ts +0 -13
  293. package/tech/backend/detect-all.d.ts.map +0 -1
  294. package/tech/backend/express.d.ts +0 -11
  295. package/tech/backend/express.d.ts.map +0 -1
  296. package/tech/backend/fastify.d.ts +0 -11
  297. package/tech/backend/fastify.d.ts.map +0 -1
  298. package/tech/backend/hono.d.ts +0 -11
  299. package/tech/backend/hono.d.ts.map +0 -1
  300. package/tech/backend/index.cjs.js.map +0 -1
  301. package/tech/backend/index.esm.js.map +0 -1
  302. package/tech/backend/koa.d.ts +0 -11
  303. package/tech/backend/koa.d.ts.map +0 -1
  304. package/tech/backend/nestjs.d.ts +0 -11
  305. package/tech/backend/nestjs.d.ts.map +0 -1
  306. package/tech/backend/types.d.ts +0 -31
  307. package/tech/backend/types.d.ts.map +0 -1
  308. package/tech/build/babel.d.ts +0 -13
  309. package/tech/build/babel.d.ts.map +0 -1
  310. package/tech/build/detect-all.d.ts +0 -13
  311. package/tech/build/detect-all.d.ts.map +0 -1
  312. package/tech/build/esbuild.d.ts +0 -11
  313. package/tech/build/esbuild.d.ts.map +0 -1
  314. package/tech/build/index.cjs.js.map +0 -1
  315. package/tech/build/index.esm.js.map +0 -1
  316. package/tech/build/parcel.d.ts +0 -13
  317. package/tech/build/parcel.d.ts.map +0 -1
  318. package/tech/build/rollup.d.ts +0 -13
  319. package/tech/build/rollup.d.ts.map +0 -1
  320. package/tech/build/swc.d.ts +0 -13
  321. package/tech/build/swc.d.ts.map +0 -1
  322. package/tech/build/types.d.ts +0 -31
  323. package/tech/build/types.d.ts.map +0 -1
  324. package/tech/build/vite.d.ts +0 -13
  325. package/tech/build/vite.d.ts.map +0 -1
  326. package/tech/build/webpack.d.ts +0 -13
  327. package/tech/build/webpack.d.ts.map +0 -1
  328. package/tech/frontend/angular.d.ts +0 -11
  329. package/tech/frontend/angular.d.ts.map +0 -1
  330. package/tech/frontend/astro.d.ts +0 -11
  331. package/tech/frontend/astro.d.ts.map +0 -1
  332. package/tech/frontend/detect-all.d.ts +0 -13
  333. package/tech/frontend/detect-all.d.ts.map +0 -1
  334. package/tech/frontend/gatsby.d.ts +0 -11
  335. package/tech/frontend/gatsby.d.ts.map +0 -1
  336. package/tech/frontend/index.cjs.js.map +0 -1
  337. package/tech/frontend/index.esm.js.map +0 -1
  338. package/tech/frontend/nextjs.d.ts +0 -11
  339. package/tech/frontend/nextjs.d.ts.map +0 -1
  340. package/tech/frontend/nuxt.d.ts +0 -11
  341. package/tech/frontend/nuxt.d.ts.map +0 -1
  342. package/tech/frontend/qwik.d.ts +0 -11
  343. package/tech/frontend/qwik.d.ts.map +0 -1
  344. package/tech/frontend/react.d.ts +0 -11
  345. package/tech/frontend/react.d.ts.map +0 -1
  346. package/tech/frontend/remix.d.ts +0 -11
  347. package/tech/frontend/remix.d.ts.map +0 -1
  348. package/tech/frontend/solid.d.ts +0 -11
  349. package/tech/frontend/solid.d.ts.map +0 -1
  350. package/tech/frontend/svelte.d.ts +0 -11
  351. package/tech/frontend/svelte.d.ts.map +0 -1
  352. package/tech/frontend/sveltekit.d.ts +0 -11
  353. package/tech/frontend/sveltekit.d.ts.map +0 -1
  354. package/tech/frontend/types.d.ts +0 -35
  355. package/tech/frontend/types.d.ts.map +0 -1
  356. package/tech/frontend/vue.d.ts +0 -11
  357. package/tech/frontend/vue.d.ts.map +0 -1
  358. package/tech/index.cjs.js.map +0 -1
  359. package/tech/index.esm.js.map +0 -1
  360. package/tech/legacy/angularjs.d.ts +0 -12
  361. package/tech/legacy/angularjs.d.ts.map +0 -1
  362. package/tech/legacy/backbone.d.ts +0 -11
  363. package/tech/legacy/backbone.d.ts.map +0 -1
  364. package/tech/legacy/detect-all.d.ts +0 -13
  365. package/tech/legacy/detect-all.d.ts.map +0 -1
  366. package/tech/legacy/ember.d.ts +0 -11
  367. package/tech/legacy/ember.d.ts.map +0 -1
  368. package/tech/legacy/index.cjs.js.map +0 -1
  369. package/tech/legacy/index.esm.js.map +0 -1
  370. package/tech/legacy/jquery.d.ts +0 -11
  371. package/tech/legacy/jquery.d.ts.map +0 -1
  372. package/tech/legacy/types.d.ts +0 -33
  373. package/tech/legacy/types.d.ts.map +0 -1
  374. package/tech/linting/biome.d.ts +0 -11
  375. package/tech/linting/biome.d.ts.map +0 -1
  376. package/tech/linting/detect-all.d.ts +0 -13
  377. package/tech/linting/detect-all.d.ts.map +0 -1
  378. package/tech/linting/eslint.d.ts +0 -13
  379. package/tech/linting/eslint.d.ts.map +0 -1
  380. package/tech/linting/index.cjs.js.map +0 -1
  381. package/tech/linting/index.esm.js.map +0 -1
  382. package/tech/linting/prettier.d.ts +0 -13
  383. package/tech/linting/prettier.d.ts.map +0 -1
  384. package/tech/linting/stylelint.d.ts +0 -13
  385. package/tech/linting/stylelint.d.ts.map +0 -1
  386. package/tech/linting/types.d.ts +0 -31
  387. package/tech/linting/types.d.ts.map +0 -1
  388. package/tech/monorepo/detect-all.d.ts +0 -13
  389. package/tech/monorepo/detect-all.d.ts.map +0 -1
  390. package/tech/monorepo/index.cjs.js.map +0 -1
  391. package/tech/monorepo/index.esm.js.map +0 -1
  392. package/tech/monorepo/lerna.d.ts +0 -11
  393. package/tech/monorepo/lerna.d.ts.map +0 -1
  394. package/tech/monorepo/npm-workspaces.d.ts +0 -11
  395. package/tech/monorepo/npm-workspaces.d.ts.map +0 -1
  396. package/tech/monorepo/nx.d.ts +0 -11
  397. package/tech/monorepo/nx.d.ts.map +0 -1
  398. package/tech/monorepo/pnpm-workspaces.d.ts +0 -9
  399. package/tech/monorepo/pnpm-workspaces.d.ts.map +0 -1
  400. package/tech/monorepo/rush.d.ts +0 -11
  401. package/tech/monorepo/rush.d.ts.map +0 -1
  402. package/tech/monorepo/turborepo.d.ts +0 -11
  403. package/tech/monorepo/turborepo.d.ts.map +0 -1
  404. package/tech/monorepo/types.d.ts +0 -39
  405. package/tech/monorepo/types.d.ts.map +0 -1
  406. package/tech/monorepo/yarn-workspaces.d.ts +0 -11
  407. package/tech/monorepo/yarn-workspaces.d.ts.map +0 -1
  408. package/tech/shared-utils/detector-helpers.d.ts +0 -52
  409. package/tech/shared-utils/detector-helpers.d.ts.map +0 -1
  410. package/tech/shared-utils/types.d.ts +0 -41
  411. package/tech/shared-utils/types.d.ts.map +0 -1
  412. package/tech/testing/cypress.d.ts +0 -13
  413. package/tech/testing/cypress.d.ts.map +0 -1
  414. package/tech/testing/detect-all.d.ts +0 -13
  415. package/tech/testing/detect-all.d.ts.map +0 -1
  416. package/tech/testing/index.cjs.js.map +0 -1
  417. package/tech/testing/index.esm.js.map +0 -1
  418. package/tech/testing/jest.d.ts +0 -13
  419. package/tech/testing/jest.d.ts.map +0 -1
  420. package/tech/testing/mocha.d.ts +0 -13
  421. package/tech/testing/mocha.d.ts.map +0 -1
  422. package/tech/testing/playwright.d.ts +0 -13
  423. package/tech/testing/playwright.d.ts.map +0 -1
  424. package/tech/testing/types.d.ts +0 -35
  425. package/tech/testing/types.d.ts.map +0 -1
  426. package/tech/testing/vitest.d.ts +0 -13
  427. package/tech/testing/vitest.d.ts.map +0 -1
  428. package/tech/types/detectors.d.ts +0 -67
  429. package/tech/types/detectors.d.ts.map +0 -1
  430. package/tech/types/index.cjs.js.map +0 -1
  431. package/tech/types/index.esm.js.map +0 -1
  432. package/vfs/commit.d.ts +0 -32
  433. package/vfs/commit.d.ts.map +0 -1
  434. package/vfs/diff.d.ts +0 -73
  435. package/vfs/diff.d.ts.map +0 -1
  436. package/vfs/factory.d.ts +0 -37
  437. package/vfs/factory.d.ts.map +0 -1
  438. package/vfs/fs-tree.d.ts +0 -13
  439. package/vfs/fs-tree.d.ts.map +0 -1
  440. package/vfs/index.cjs.js.map +0 -1
  441. package/vfs/index.esm.js.map +0 -1
  442. package/vfs/types.d.ts +0 -179
  443. package/vfs/types.d.ts.map +0 -1
package/CHANGELOG.md CHANGED
@@ -2,7 +2,20 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- ## [0.2.1](https://github.com/AndrewRedican/hyperfrontend/compare/a9185d9b783d7d8d51cc4ad91eb3178eba3e3930...f358c827dea7ad2a7d8f235673daf5b2bd4257a3) - 2026-04-06
5
+ ## [0.2.3](https://github.com/AndrewRedican/hyperfrontend/compare/5f116abb8ba6355dfb283fa03b7481e5eb029480...7fb26b6a30c007cd0392f1fc973265c3d25e16dd) - 2026-06-28
6
+
7
+ ### Bug Fixes
8
+
9
+ - confine import resolution to the project root
10
+ - reject NUL-byte paths in fs primitives
11
+
12
+ ## [0.2.2](https://github.com/AndrewRedican/hyperfrontend/compare/d96fee4d4d3a70178c8a01e5f2e2ae675fa23f37...466c0388c4cd516b9c704214140b4df1004098e6) - 2026-06-23
13
+
14
+ ### Other
15
+
16
+ - **@hyperfrontend/workspace:** remove lib-builder and tool-package as implicit dependencies for all lib projects
17
+
18
+ ## [0.2.1](https://github.com/AndrewRedican/hyperfrontend/compare/a9185d9b783d7d8d51cc4ad91eb3178eba3e3930...61a93d778d6b84915c51120f315e81b3a16fd67c) - 2026-04-06
6
19
 
7
20
  ### Bug Fixes
8
21
 
package/README.md CHANGED
@@ -41,13 +41,13 @@ Comprehensive project analysis, technology stack detection, and transactional vi
41
41
 
42
42
  @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.
43
43
 
44
- 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.
44
+ Designed for tooling authors building code generators, IDE extensions, CI/CD pipelines, and monorepo tooling. Built-in NX workspace detection reads `nx.json`, `workspace.json`, and `project.json` so tooling can adapt to NX-shaped repos with zero runtime peer dependencies.
45
45
 
46
46
  ### Key Features
47
47
 
48
48
  - **Project Classification** - Detect application, library, e2e, tool, or plugin with confidence scoring and evidence tracking
49
49
  - **Technology Detection** - Identify 20+ frameworks (React, Vue, Angular, Svelte), build tools (Vite, Webpack, esbuild), and testing frameworks (Jest, Vitest, Cypress)
50
- - **Virtual File System** - Transaction-aware file operations with atomic commit/rollback, following NX devkit's Tree interface
50
+ - **Virtual File System** - Transaction-aware file operations with atomic commit/rollback
51
51
  - **Monorepo Intelligence** - Detect NX, Turborepo, Lerna, pnpm/npm/Yarn workspaces; read project configurations
52
52
  - **Dependency Graph** - Build internal import graphs from source code with root/leaf node identification
53
53
  - **Entry Point Discovery** - Find application entries from package.json exports, bin fields, and convention patterns
@@ -179,7 +179,6 @@ project-scope tree ./my-project --depth 3
179
179
  - **`isNxWorkspace(path): boolean`** - Check if directory is NX workspace
180
180
  - **`getNxWorkspaceInfo(path): NxWorkspaceInfo`** - Get workspace details
181
181
  - **`findNxProjects(path): NxProjectConfig[]`** - Find all projects
182
- - **`isDevkitAvailable(): boolean`** - Check if `@nx/devkit` is available
183
182
 
184
183
  ### Core Utilities
185
184
 
@@ -241,4 +240,4 @@ This library is part of the [hyperfrontend](https://github.com/AndrewRedican/hyp
241
240
 
242
241
  ## License
243
242
 
244
- MIT
243
+ [MIT](https://github.com/AndrewRedican/hyperfrontend/blob/main/LICENSE.md)
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ const _Array = globalThis.Array;
4
+ const isArray = _Array.isArray;
5
+ const from = _Array.from;
6
+ exports.from = from;
7
+ exports.isArray = isArray;
@@ -0,0 +1,5 @@
1
+ const _Array = globalThis.Array;
2
+ const isArray = _Array.isArray;
3
+ const from = _Array.from;
4
+
5
+ export { from, isArray };
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ const _console = globalThis.console;
4
+ const log = _console.log.bind(_console);
5
+ const warn = _console.warn.bind(_console);
6
+ const error = _console.error.bind(_console);
7
+ const info = _console.info.bind(_console);
8
+ const debug = _console.debug.bind(_console);
9
+ exports.debug = debug;
10
+ exports.error = error;
11
+ exports.info = info;
12
+ exports.log = log;
13
+ exports.warn = warn;
@@ -0,0 +1,8 @@
1
+ const _console = globalThis.console;
2
+ const log = _console.log.bind(_console);
3
+ const warn = _console.warn.bind(_console);
4
+ const error = _console.error.bind(_console);
5
+ const info = _console.info.bind(_console);
6
+ const debug = _console.debug.bind(_console);
7
+
8
+ export { debug, error, info, log, warn };
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ const _Date = globalThis.Date;
4
+ const _Reflect = globalThis.Reflect;
5
+ function createDate(...args) {
6
+ return _Reflect.construct(_Date, args);
7
+ }
8
+ const dateNow = _Date.now;
9
+ exports.createDate = createDate;
10
+ exports.dateNow = dateNow;
@@ -0,0 +1,8 @@
1
+ const _Date = globalThis.Date;
2
+ const _Reflect = globalThis.Reflect;
3
+ function createDate(...args) {
4
+ return _Reflect.construct(_Date, args);
5
+ }
6
+ const dateNow = _Date.now;
7
+
8
+ export { createDate, dateNow };
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const _Error = globalThis.Error;
4
+ const _Reflect = globalThis.Reflect;
5
+ const createError = (message, options) => _Reflect.construct(_Error, [message, options]);
6
+ exports.createError = createError;
@@ -0,0 +1,5 @@
1
+ const _Error = globalThis.Error;
2
+ const _Reflect = globalThis.Reflect;
3
+ const createError = (message, options) => _Reflect.construct(_Error, [message, options]);
4
+
5
+ export { createError };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ const _JSON = globalThis.JSON;
4
+ const parse = _JSON.parse;
5
+ const stringify = _JSON.stringify;
6
+ exports.parse = parse;
7
+ exports.stringify = stringify;
@@ -0,0 +1,5 @@
1
+ const _JSON = globalThis.JSON;
2
+ const parse = _JSON.parse;
3
+ const stringify = _JSON.stringify;
4
+
5
+ export { parse, stringify };
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const _Map = globalThis.Map;
4
+ const _Reflect = globalThis.Reflect;
5
+ const createMap = (iterable) => _Reflect.construct(_Map, iterable ? [iterable] : []);
6
+ exports.createMap = createMap;
@@ -0,0 +1,5 @@
1
+ const _Map = globalThis.Map;
2
+ const _Reflect = globalThis.Reflect;
3
+ const createMap = (iterable) => _Reflect.construct(_Map, iterable ? [iterable] : []);
4
+
5
+ export { createMap };
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ const _Math = globalThis.Math;
4
+ const round = _Math.round;
5
+ const max = _Math.max;
6
+ const min = _Math.min;
7
+ exports.max = max;
8
+ exports.min = min;
9
+ exports.round = round;
@@ -0,0 +1,6 @@
1
+ const _Math = globalThis.Math;
2
+ const round = _Math.round;
3
+ const max = _Math.max;
4
+ const min = _Math.min;
5
+
6
+ export { max, min, round };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+ const _parseInt = globalThis.parseInt;
3
+ const _parseFloat = globalThis.parseFloat;
4
+ const parseInt = _parseInt;
5
+ const parseFloat = _parseFloat;
6
+ exports.parseFloat = parseFloat;
7
+ exports.parseInt = parseInt;
@@ -0,0 +1,7 @@
1
+
2
+ const _parseInt = globalThis.parseInt;
3
+ const _parseFloat = globalThis.parseFloat;
4
+ const parseInt = _parseInt;
5
+ const parseFloat = _parseFloat;
6
+
7
+ export { parseFloat, parseInt };
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ const _Object = globalThis.Object;
4
+ const freeze = _Object.freeze;
5
+ const keys = _Object.keys;
6
+ const entries = _Object.entries;
7
+ const values = _Object.values;
8
+ const defineProperty = _Object.defineProperty;
9
+ const defineProperties = _Object.defineProperties;
10
+ exports.defineProperties = defineProperties;
11
+ exports.defineProperty = defineProperty;
12
+ exports.entries = entries;
13
+ exports.freeze = freeze;
14
+ exports.keys = keys;
15
+ exports.values = values;
@@ -0,0 +1,9 @@
1
+ const _Object = globalThis.Object;
2
+ const freeze = _Object.freeze;
3
+ const keys = _Object.keys;
4
+ const entries = _Object.entries;
5
+ const values = _Object.values;
6
+ const defineProperty = _Object.defineProperty;
7
+ const defineProperties = _Object.defineProperties;
8
+
9
+ export { defineProperties, defineProperty, entries, freeze, keys, values };
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const _Set = globalThis.Set;
4
+ const _Reflect = globalThis.Reflect;
5
+ const createSet = (iterable) => _Reflect.construct(_Set, iterable ? [iterable] : []);
6
+ exports.createSet = createSet;
@@ -0,0 +1,5 @@
1
+ const _Set = globalThis.Set;
2
+ const _Reflect = globalThis.Reflect;
3
+ const createSet = (iterable) => _Reflect.construct(_Set, iterable ? [iterable] : []);
4
+
5
+ export { createSet };
@@ -0,0 +1,191 @@
1
+ 'use strict';
2
+
3
+ const { createError } = require('../immutable-api-utils/built-in-copy/error/index.cjs.js');
4
+ const { freeze } = require('../immutable-api-utils/built-in-copy/object/index.cjs.js');
5
+ const { isArray } = require('../immutable-api-utils/built-in-copy/array/index.cjs.js');
6
+ require('../immutable-api-utils/built-in-copy/map/index.cjs.js');
7
+ const { dateNow } = require('../immutable-api-utils/built-in-copy/date/index.cjs.js');
8
+ require('../immutable-api-utils/built-in-copy/math/index.cjs.js');
9
+ require('../immutable-api-utils/built-in-copy/set/index.cjs.js');
10
+ const { debug: debug$1, error: error$1, info: info$1, log: log$1, warn: warn$1 } = require('../immutable-api-utils/built-in-copy/console/index.cjs.js');
11
+
12
+ const logLevels = ['none', 'error', 'warn', 'log', 'info', 'debug'];
13
+ const priority = {
14
+ error: 4,
15
+ warn: 3,
16
+ log: 2,
17
+ info: 1,
18
+ debug: 0,
19
+ };
20
+ function isValidLogLevel(level) {
21
+ return logLevels.includes(level);
22
+ }
23
+ function createLogLevelConfig(level = 'error') {
24
+ if (!isValidLogLevel(level)) {
25
+ throw createError('Cannot create log level configuration with a valid default log level');
26
+ }
27
+ const state = { level };
28
+ const getLogLevel = () => state.level;
29
+ const setLogLevel = (level) => {
30
+ if (!isValidLogLevel(level)) {
31
+ throw createError(`Cannot set value '${level}' level. Expected levels are ${logLevels}.`);
32
+ }
33
+ state.level = level;
34
+ };
35
+ const shouldLog = (level) => {
36
+ if (state.level === 'none' || level === 'none' || !isValidLogLevel(level)) {
37
+ return false;
38
+ }
39
+ return priority[level] >= priority[state.level];
40
+ };
41
+ return freeze({
42
+ getLogLevel,
43
+ setLogLevel,
44
+ shouldLog,
45
+ });
46
+ }
47
+
48
+ const registeredClasses = [];
49
+
50
+ const getType = (target) => {
51
+ if (target === null)
52
+ return 'null';
53
+ const nativeDataType = typeof target;
54
+ if (nativeDataType === 'object') {
55
+ if (isArray(target))
56
+ return 'array';
57
+ for (const registeredClass of registeredClasses) {
58
+ if (target instanceof registeredClass)
59
+ return registeredClass.name;
60
+ }
61
+ }
62
+ return nativeDataType;
63
+ };
64
+
65
+ function createConditionalExecutionFunction(func, conditionFunc) {
66
+ return function (...args) {
67
+ if (conditionFunc()) {
68
+ return func(...args);
69
+ }
70
+ };
71
+ }
72
+
73
+ function createErrorIgnoringFunction(func) {
74
+ return function (...args) {
75
+ try {
76
+ func(...args);
77
+ }
78
+ catch {
79
+ }
80
+ };
81
+ }
82
+
83
+ const noop = (...args) => {
84
+ };
85
+
86
+ function createLogger(error, warn = noop, log = noop, info = noop, debug = noop) {
87
+ if (notValidLogFn(error)) {
88
+ throw createError(notFnMsg('error'));
89
+ }
90
+ if (notValidLogFn(warn)) {
91
+ throw createError(notFnMsg('warn'));
92
+ }
93
+ if (notValidLogFn(log)) {
94
+ throw createError(notFnMsg('log'));
95
+ }
96
+ if (notValidLogFn(info)) {
97
+ throw createError(notFnMsg('info'));
98
+ }
99
+ if (notValidLogFn(debug)) {
100
+ throw createError(notFnMsg('debug'));
101
+ }
102
+ const { setLogLevel, getLogLevel, shouldLog } = createLogLevelConfig();
103
+ const wrapLogFn = (fn, level) => {
104
+ if (fn === noop)
105
+ return fn;
106
+ const condition = () => shouldLog(level);
107
+ return createConditionalExecutionFunction(createErrorIgnoringFunction(fn), condition);
108
+ };
109
+ const core = {
110
+ error: wrapLogFn(error, 'error'),
111
+ warn: wrapLogFn(warn, 'warn'),
112
+ log: wrapLogFn(log, 'log'),
113
+ info: wrapLogFn(info, 'info'),
114
+ debug: wrapLogFn(debug, 'debug'),
115
+ setLogLevel,
116
+ getLogLevel,
117
+ };
118
+ return createPrefixedLogger(core, '');
119
+ }
120
+ function createPrefixedLogger(core, fullPrefix) {
121
+ const tag = fullPrefix ? `[${fullPrefix}]` : '';
122
+ const prefixed = (fn) => {
123
+ if (!tag)
124
+ return fn;
125
+ return (...data) => fn(tag, ...data);
126
+ };
127
+ const instance = freeze({
128
+ error: prefixed(core.error),
129
+ warn: prefixed(core.warn),
130
+ log: prefixed(core.log),
131
+ info: prefixed(core.info),
132
+ debug: prefixed(core.debug),
133
+ setLogLevel: core.setLogLevel,
134
+ getLogLevel: core.getLogLevel,
135
+ channel: (childPrefix) => createPrefixedLogger(core, fullPrefix ? `${fullPrefix}:${childPrefix}` : childPrefix),
136
+ timed(label, fn) {
137
+ return runTimed(instance, label, fn);
138
+ },
139
+ timedAsync(label, fn) {
140
+ return runTimedAsync(instance, label, fn);
141
+ },
142
+ });
143
+ return instance;
144
+ }
145
+ function runTimed(logger, label, fn) {
146
+ const start = dateNow();
147
+ try {
148
+ const result = fn();
149
+ const elapsed = dateNow() - start;
150
+ logger.debug(`${label} completed in ${elapsed}ms`);
151
+ return result;
152
+ }
153
+ catch (error) {
154
+ const elapsed = dateNow() - start;
155
+ logger.error(`${label} failed after ${elapsed}ms: ${describeError(error)}`);
156
+ throw error;
157
+ }
158
+ }
159
+ async function runTimedAsync(logger, label, fn) {
160
+ const start = dateNow();
161
+ try {
162
+ const result = await fn();
163
+ const elapsed = dateNow() - start;
164
+ logger.debug(`${label} completed in ${elapsed}ms`);
165
+ return result;
166
+ }
167
+ catch (error) {
168
+ const elapsed = dateNow() - start;
169
+ logger.error(`${label} failed after ${elapsed}ms: ${describeError(error)}`);
170
+ if (error instanceof Error && error.stack) {
171
+ logger.debug(`Stack trace:\n${error.stack}`);
172
+ }
173
+ throw error;
174
+ }
175
+ }
176
+ function describeError(error) {
177
+ return error instanceof Error ? error.message : String(error);
178
+ }
179
+ function notValidLogFn(fn) {
180
+ return getType(fn) !== 'function' && fn !== noop;
181
+ }
182
+ function notFnMsg(label) {
183
+ return `Cannot create a logger when ${label} is not a function`;
184
+ }
185
+
186
+ const logger = createLogger(error$1, warn$1, log$1, info$1, debug$1);
187
+
188
+ exports.createLogLevelConfig = createLogLevelConfig;
189
+ exports.createLogger = createLogger;
190
+ exports.isValidLogLevel = isValidLogLevel;
191
+ exports.logger = logger;
@@ -0,0 +1,151 @@
1
+ /** Valid log level values in order of verbosity */
2
+ type LogLevel = 'none' | 'error' | 'warn' | 'log' | 'info' | 'debug';
3
+ /**
4
+ * Encapsulates the current log level state.
5
+ */
6
+ interface LogLevelState {
7
+ /** The active log level */
8
+ level: LogLevel;
9
+ }
10
+ /** Function to update the log level */
11
+ type SetLogLevel = (level: LogLevel) => void;
12
+ /** Function to retrieve the current log level */
13
+ type GetLogLevel = () => LogLevel;
14
+ /** Predicate to determine if a message should be logged */
15
+ type ShouldLog = (level: LogLevel) => boolean;
16
+ /**
17
+ * Configuration interface for managing log levels.
18
+ */
19
+ interface LogLevelConfig {
20
+ /** Updates the log level */
21
+ setLogLevel: SetLogLevel;
22
+ /** Retrieves the current log level */
23
+ getLogLevel: GetLogLevel;
24
+ /** Checks if a given level should be logged */
25
+ shouldLog: ShouldLog;
26
+ }
27
+ /**
28
+ * Validates whether a given string is a valid log level.
29
+ *
30
+ * @param level - The log level to validate
31
+ * @returns True if the level is valid, false otherwise
32
+ *
33
+ * @example Validating log levels
34
+ * ```typescript
35
+ * isValidLogLevel('error') // => true
36
+ * isValidLogLevel('verbose') // => false
37
+ * ```
38
+ */
39
+ declare function isValidLogLevel(level: LogLevel): boolean;
40
+ /**
41
+ * Creates a log level configuration manager for controlling logging behavior.
42
+ * Provides methods to get, set, and evaluate log levels based on priority.
43
+ *
44
+ * @param level - The initial log level (defaults to 'error')
45
+ * @returns A configuration object with log level management methods
46
+ * @throws {Error} When the provided level is not a valid log level
47
+ *
48
+ * @example Managing log levels with priority checks
49
+ * ```typescript
50
+ * const config = createLogLevelConfig('warn')
51
+ * config.shouldLog('error') // => true (error >= warn)
52
+ * config.shouldLog('debug') // => false (debug < warn)
53
+ * config.setLogLevel('debug')
54
+ * config.shouldLog('debug') // => true
55
+ * ```
56
+ */
57
+ declare function createLogLevelConfig(level?: LogLevel): LogLevelConfig;
58
+
59
+ /** Function signature for standard log output */
60
+ type LogLevelFn = (...data: any[]) => void;
61
+ /** Function signature for warning output */
62
+ type WarnLevelFn = (...data: any[]) => void;
63
+ /** Function signature for error output */
64
+ type ErrorLevelFn = (...data: any[]) => void;
65
+ /** Function signature for info output */
66
+ type InfoLevelFn = (...data: any[]) => void;
67
+ /** Function signature for debug output */
68
+ type DebugLevelFn = (...data: any[]) => void;
69
+ /** Returns a sub-logger that prepends `[prefix]` to every message. */
70
+ type ChannelFn = (prefix: string) => Logger;
71
+ /** Wraps a sync call with timing. Logs completion or failure with elapsed ms. */
72
+ type TimedFn = <T>(label: string, fn: () => T) => T;
73
+ /** Wraps a promise-returning call with timing. Dumps stack trace on error to debug log. */
74
+ type TimedAsyncFn = <T>(label: string, fn: () => Promise<T>) => Promise<T>;
75
+ /** Logger interface with level-specific methods and level control */
76
+ interface Logger {
77
+ /** Standard log output */
78
+ log: LogLevelFn;
79
+ /** Warning-level output */
80
+ warn: WarnLevelFn;
81
+ /** Error-level output */
82
+ error: ErrorLevelFn;
83
+ /** Info-level output */
84
+ info: InfoLevelFn;
85
+ /** Debug-level output */
86
+ debug: DebugLevelFn;
87
+ /** Sets the current log level */
88
+ setLogLevel: SetLogLevel;
89
+ /** Gets the current log level */
90
+ getLogLevel: GetLogLevel;
91
+ /** Returns a sub-logger that prepends `[prefix]` to every message. */
92
+ channel: ChannelFn;
93
+ /** Wraps a sync call with timing. Logs completion or failure with elapsed ms. */
94
+ timed: TimedFn;
95
+ /** Wraps a promise-returning call with timing. Dumps stack trace on error to debug log. */
96
+ timedAsync: TimedAsyncFn;
97
+ }
98
+ /** Keys of Logger that represent log functions */
99
+ type LogFnName = Extract<keyof Logger, 'error' | 'warn' | 'log' | 'info' | 'debug'>;
100
+ /** Union type of all log function signatures */
101
+ type LogFunction = Logger[LogFnName];
102
+ /**
103
+ * Creates a logger instance with configurable log level filtering.
104
+ * Each log function is wrapped to respect the current log level setting.
105
+ *
106
+ * @param error - Function to handle error-level logs (required)
107
+ * @param warn - Function to handle warning-level logs (optional, defaults to noop)
108
+ * @param log - Function to handle standard logs (optional, defaults to noop)
109
+ * @param info - Function to handle info-level logs (optional, defaults to noop)
110
+ * @param debug - Function to handle debug-level logs (optional, defaults to noop)
111
+ * @returns A frozen logger object with log methods, level control, channel, and timing helpers
112
+ * @throws {ErrorLevelFn} When any provided log function is invalid
113
+ *
114
+ * @example Creating a logger with log level filtering
115
+ * ```typescript
116
+ * const logger = createLogger(console.error, console.warn, console.log)
117
+ * logger.setLogLevel('warn')
118
+ * logger.warn('Connection timeout') // logs
119
+ * logger.info('Request complete') // suppressed (below 'warn' level)
120
+ * ```
121
+ *
122
+ * @example Channeling and timing
123
+ * ```typescript
124
+ * const logger = createLogger(console.error, console.warn, console.log, console.info, console.debug)
125
+ * logger.setLogLevel('debug')
126
+ * const build = logger.channel('build')
127
+ * await build.timedAsync('bundle', async () => bundle())
128
+ * ```
129
+ */
130
+ declare function createLogger(error: ErrorLevelFn, warn?: WarnLevelFn, log?: LogLevelFn, info?: InfoLevelFn, debug?: DebugLevelFn): Logger;
131
+
132
+ /**
133
+ * Validates whether an object is a properly structured Logger instance.
134
+ * Checks for the presence and type of all required logger methods.
135
+ *
136
+ * @param logger - The object to validate
137
+ * @returns True if the object is a valid logger, false otherwise
138
+ *
139
+ * @example Validating a logger instance
140
+ * ```typescript
141
+ * const logger = createLogger(console.error)
142
+ * isValidLogger(logger) // => true
143
+ * isValidLogger({}) // => false
144
+ * ```
145
+ */
146
+ declare function isValidLogger(logger: unknown): boolean;
147
+
148
+ declare const logger: Logger;
149
+
150
+ export { createLogLevelConfig, createLogger, isValidLogLevel, isValidLogger, logger };
151
+ export type { ChannelFn, DebugLevelFn, ErrorLevelFn, GetLogLevel, InfoLevelFn, LogFnName, LogFunction, LogLevel, LogLevelConfig, LogLevelFn, LogLevelState, Logger, SetLogLevel, ShouldLog, TimedAsyncFn, TimedFn, WarnLevelFn };