@hyperfrontend/project-scope 0.2.0 → 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 +13 -15
  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 +1699 -2040
  55. package/cli/index.d.ts +273 -7
  56. package/cli/index.d.ts.map +1 -1
  57. package/cli/index.esm.js +1603 -1944
  58. package/core/encoding/index.cjs.js +88 -424
  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 +80 -415
  62. package/core/fs/index.cjs.js +231 -595
  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 -585
  66. package/core/index.cjs.js +518 -1804
  67. package/core/index.d.ts +486 -9
  68. package/core/index.d.ts.map +1 -1
  69. package/core/index.esm.js +501 -1784
  70. package/core/path/index.cjs.js +6 -235
  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 -233
  74. package/core/platform/index.cjs.js +5 -226
  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 -222
  78. package/heuristics/dependencies/index.cjs.js +95 -509
  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 -483
  82. package/heuristics/entry-points/index.cjs.js +93 -825
  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 +74 -806
  86. package/heuristics/framework/index.cjs.js +1482 -1473
  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 +1418 -1409
  90. package/heuristics/index.cjs.js +3207 -3383
  91. package/heuristics/index.d.ts +4 -5
  92. package/heuristics/index.d.ts.map +1 -1
  93. package/heuristics/index.esm.js +3234 -3410
  94. package/heuristics/project-type/index.cjs.js +1488 -1500
  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 +1417 -1429
  98. package/index.cjs.js +3064 -3765
  99. package/index.d.ts +44 -10
  100. package/index.d.ts.map +1 -1
  101. package/index.esm.js +2923 -3612
  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 -606
  107. package/nx/index.d.ts +279 -4
  108. package/nx/index.d.ts.map +1 -1
  109. package/nx/index.esm.js +145 -583
  110. package/package.json +13 -12
  111. package/project/config/index.cjs.js +122 -1104
  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 -1085
  115. package/project/index.cjs.js +323 -1143
  116. package/project/index.d.ts +4 -5
  117. package/project/index.d.ts.map +1 -1
  118. package/project/index.esm.js +302 -1119
  119. package/project/package/index.cjs.js +191 -483
  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 -469
  123. package/project/root/index.cjs.js +107 -427
  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 -416
  127. package/project/traversal/index.cjs.js +94 -645
  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 -631
  131. package/tech/backend/index.cjs.js +221 -524
  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 -503
  135. package/tech/build/index.cjs.js +348 -647
  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 -625
  139. package/tech/frontend/index.cjs.js +505 -700
  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 -676
  143. package/tech/index.cjs.js +1580 -1482
  144. package/tech/index.d.ts +55 -32
  145. package/tech/index.d.ts.map +1 -1
  146. package/tech/index.esm.js +1513 -1415
  147. package/tech/legacy/index.cjs.js +97 -474
  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 -456
  151. package/tech/linting/index.cjs.js +136 -536
  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 -516
  155. package/tech/monorepo/index.cjs.js +244 -584
  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 -564
  159. package/tech/testing/index.cjs.js +214 -582
  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 -564
  163. package/tech/types/index.cjs.js +121 -532
  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 -510
  167. package/vfs/index.cjs.js +647 -1187
  168. package/vfs/index.d.ts +360 -6
  169. package/vfs/index.d.ts.map +1 -1
  170. package/vfs/index.esm.js +672 -1212
  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 -20
  175. package/cli/commands/analyze.d.ts.map +0 -1
  176. package/cli/commands/config.d.ts +0 -20
  177. package/cli/commands/config.d.ts.map +0 -1
  178. package/cli/commands/deps.d.ts +0 -18
  179. package/cli/commands/deps.d.ts.map +0 -1
  180. package/cli/commands/tree.d.ts +0 -24
  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 -157
  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 -86
  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 -64
  197. package/core/errors/structured-errors.d.ts.map +0 -1
  198. package/core/fs/directory.d.ts +0 -88
  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 -86
  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 -46
  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 -86
  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 -109
  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 -66
  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 -178
  439. package/vfs/types.d.ts.map +0 -1
package/CHANGELOG.md CHANGED
@@ -2,26 +2,24 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- ## 0.2.0 - 2026-03-16
5
+ ## [0.2.2](https://github.com/AndrewRedican/hyperfrontend/compare/d96fee4d4d3a70178c8a01e5f2e2ae675fa23f37...466c0388c4cd516b9c704214140b4df1004098e6) - 2026-06-23
6
6
 
7
- ### Features
7
+ ### Other
8
+
9
+ - **@hyperfrontend/workspace:** remove lib-builder and tool-package as implicit dependencies for all lib projects
8
10
 
9
- - **lib-versioning:** support commit amend no edit
10
- - **lib-versioning:** support force bump with release as config
11
- - **tool-package:** improve memory management and visibility on builder executor
12
- - **eslint-rules:** lib-ts-config-paths
13
- - **e2e-lib-versioning:** test cjs and esm builds
14
- - **eslint-rules:** lib-e2e-project-required
15
- - **lib-versioning:** implement project versioning
16
- - **eslint-rules:** ensure publishable libraries accounted for in docs
17
- - **eslint-rules:** add rule to ensure pipeline is ready for publishable libraries
18
- - **eslint-rules:** root readme.md rule to ensure packages are listed
19
- - **eslint-rules:** rules to align readme.md content format
11
+ ## [0.2.1](https://github.com/AndrewRedican/hyperfrontend/compare/a9185d9b783d7d8d51cc4ad91eb3178eba3e3930...61a93d778d6b84915c51120f315e81b3a16fd67c) - 2026-04-06
20
12
 
21
13
  ### Bug Fixes
22
14
 
23
- - **lib-versioning:** remove unused %h format causing git log field misalignment
24
- - **lib-immutable-api-utils:** rename safe object to prevent variable shadowing on cjs module init
15
+ - **@hyperfrontend/workspace:** define local custom eslint rules plugin globally on config files
16
+ - use @hyperfrontend/logging api execlusively for logging
17
+
18
+ ## [0.2.0](https://github.com/AndrewRedican/hyperfrontend/compare/lib-project-scope@0.1.0...lib-project-scope@0.2.0) - 2026-03-16
19
+
20
+ ### Other
21
+
22
+ - Version sync (no direct changes to this package)
25
23
 
26
24
  ## 0.1.0 - 2026-03-08
27
25
 
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 };