@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
@@ -0,0 +1,186 @@
1
+ import { createError } from '../immutable-api-utils/built-in-copy/error/index.esm.js';
2
+ import { freeze } from '../immutable-api-utils/built-in-copy/object/index.esm.js';
3
+ import { isArray } from '../immutable-api-utils/built-in-copy/array/index.esm.js';
4
+ import '../immutable-api-utils/built-in-copy/map/index.esm.js';
5
+ import { dateNow } from '../immutable-api-utils/built-in-copy/date/index.esm.js';
6
+ import '../immutable-api-utils/built-in-copy/math/index.esm.js';
7
+ import '../immutable-api-utils/built-in-copy/set/index.esm.js';
8
+ import { debug, info, log, warn, error } from '../immutable-api-utils/built-in-copy/console/index.esm.js';
9
+
10
+ const logLevels = ['none', 'error', 'warn', 'log', 'info', 'debug'];
11
+ const priority = {
12
+ error: 4,
13
+ warn: 3,
14
+ log: 2,
15
+ info: 1,
16
+ debug: 0,
17
+ };
18
+ function isValidLogLevel(level) {
19
+ return logLevels.includes(level);
20
+ }
21
+ function createLogLevelConfig(level = 'error') {
22
+ if (!isValidLogLevel(level)) {
23
+ throw createError('Cannot create log level configuration with a valid default log level');
24
+ }
25
+ const state = { level };
26
+ const getLogLevel = () => state.level;
27
+ const setLogLevel = (level) => {
28
+ if (!isValidLogLevel(level)) {
29
+ throw createError(`Cannot set value '${level}' level. Expected levels are ${logLevels}.`);
30
+ }
31
+ state.level = level;
32
+ };
33
+ const shouldLog = (level) => {
34
+ if (state.level === 'none' || level === 'none' || !isValidLogLevel(level)) {
35
+ return false;
36
+ }
37
+ return priority[level] >= priority[state.level];
38
+ };
39
+ return freeze({
40
+ getLogLevel,
41
+ setLogLevel,
42
+ shouldLog,
43
+ });
44
+ }
45
+
46
+ const registeredClasses = [];
47
+
48
+ const getType = (target) => {
49
+ if (target === null)
50
+ return 'null';
51
+ const nativeDataType = typeof target;
52
+ if (nativeDataType === 'object') {
53
+ if (isArray(target))
54
+ return 'array';
55
+ for (const registeredClass of registeredClasses) {
56
+ if (target instanceof registeredClass)
57
+ return registeredClass.name;
58
+ }
59
+ }
60
+ return nativeDataType;
61
+ };
62
+
63
+ function createConditionalExecutionFunction(func, conditionFunc) {
64
+ return function (...args) {
65
+ if (conditionFunc()) {
66
+ return func(...args);
67
+ }
68
+ };
69
+ }
70
+
71
+ function createErrorIgnoringFunction(func) {
72
+ return function (...args) {
73
+ try {
74
+ func(...args);
75
+ }
76
+ catch {
77
+ }
78
+ };
79
+ }
80
+
81
+ const noop = (...args) => {
82
+ };
83
+
84
+ function createLogger(error, warn = noop, log = noop, info = noop, debug = noop) {
85
+ if (notValidLogFn(error)) {
86
+ throw createError(notFnMsg('error'));
87
+ }
88
+ if (notValidLogFn(warn)) {
89
+ throw createError(notFnMsg('warn'));
90
+ }
91
+ if (notValidLogFn(log)) {
92
+ throw createError(notFnMsg('log'));
93
+ }
94
+ if (notValidLogFn(info)) {
95
+ throw createError(notFnMsg('info'));
96
+ }
97
+ if (notValidLogFn(debug)) {
98
+ throw createError(notFnMsg('debug'));
99
+ }
100
+ const { setLogLevel, getLogLevel, shouldLog } = createLogLevelConfig();
101
+ const wrapLogFn = (fn, level) => {
102
+ if (fn === noop)
103
+ return fn;
104
+ const condition = () => shouldLog(level);
105
+ return createConditionalExecutionFunction(createErrorIgnoringFunction(fn), condition);
106
+ };
107
+ const core = {
108
+ error: wrapLogFn(error, 'error'),
109
+ warn: wrapLogFn(warn, 'warn'),
110
+ log: wrapLogFn(log, 'log'),
111
+ info: wrapLogFn(info, 'info'),
112
+ debug: wrapLogFn(debug, 'debug'),
113
+ setLogLevel,
114
+ getLogLevel,
115
+ };
116
+ return createPrefixedLogger(core, '');
117
+ }
118
+ function createPrefixedLogger(core, fullPrefix) {
119
+ const tag = fullPrefix ? `[${fullPrefix}]` : '';
120
+ const prefixed = (fn) => {
121
+ if (!tag)
122
+ return fn;
123
+ return (...data) => fn(tag, ...data);
124
+ };
125
+ const instance = freeze({
126
+ error: prefixed(core.error),
127
+ warn: prefixed(core.warn),
128
+ log: prefixed(core.log),
129
+ info: prefixed(core.info),
130
+ debug: prefixed(core.debug),
131
+ setLogLevel: core.setLogLevel,
132
+ getLogLevel: core.getLogLevel,
133
+ channel: (childPrefix) => createPrefixedLogger(core, fullPrefix ? `${fullPrefix}:${childPrefix}` : childPrefix),
134
+ timed(label, fn) {
135
+ return runTimed(instance, label, fn);
136
+ },
137
+ timedAsync(label, fn) {
138
+ return runTimedAsync(instance, label, fn);
139
+ },
140
+ });
141
+ return instance;
142
+ }
143
+ function runTimed(logger, label, fn) {
144
+ const start = dateNow();
145
+ try {
146
+ const result = fn();
147
+ const elapsed = dateNow() - start;
148
+ logger.debug(`${label} completed in ${elapsed}ms`);
149
+ return result;
150
+ }
151
+ catch (error) {
152
+ const elapsed = dateNow() - start;
153
+ logger.error(`${label} failed after ${elapsed}ms: ${describeError(error)}`);
154
+ throw error;
155
+ }
156
+ }
157
+ async function runTimedAsync(logger, label, fn) {
158
+ const start = dateNow();
159
+ try {
160
+ const result = await fn();
161
+ const elapsed = dateNow() - start;
162
+ logger.debug(`${label} completed in ${elapsed}ms`);
163
+ return result;
164
+ }
165
+ catch (error) {
166
+ const elapsed = dateNow() - start;
167
+ logger.error(`${label} failed after ${elapsed}ms: ${describeError(error)}`);
168
+ if (error instanceof Error && error.stack) {
169
+ logger.debug(`Stack trace:\n${error.stack}`);
170
+ }
171
+ throw error;
172
+ }
173
+ }
174
+ function describeError(error) {
175
+ return error instanceof Error ? error.message : String(error);
176
+ }
177
+ function notValidLogFn(fn) {
178
+ return getType(fn) !== 'function' && fn !== noop;
179
+ }
180
+ function notFnMsg(label) {
181
+ return `Cannot create a logger when ${label} is not a function`;
182
+ }
183
+
184
+ const logger = createLogger(error, warn, log, info, debug);
185
+
186
+ export { createLogLevelConfig, createLogger, isValidLogLevel, logger };
@@ -0,0 +1,135 @@
1
+ 'use strict';
2
+
3
+ const index_cjs_js = require('../../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/set/index.cjs.js');
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
+
7
+ const cacheRegistry = index_cjs_js.createSet();
8
+ function createCache(options) {
9
+ const { ttl, maxSize } = options ?? {};
10
+ const store = index_cjs_js$7.createMap();
11
+ const insertionOrder = [];
12
+ /**
13
+ * Check if an entry is expired.
14
+ *
15
+ * @param entry - Cache entry to check
16
+ * @returns True if entry is expired
17
+ */
18
+ function isExpired(entry) {
19
+ if (ttl === undefined)
20
+ return false;
21
+ // eslint-disable-next-line workspace/no-unsafe-builtin-methods -- Date.now() is needed for Jest fake timers compatibility
22
+ return Date.now() - entry.timestamp > ttl;
23
+ }
24
+ /**
25
+ * Evict oldest entries to make room for new ones.
26
+ */
27
+ function evictIfNeeded() {
28
+ if (maxSize === undefined)
29
+ return;
30
+ while (store.size >= maxSize && insertionOrder.length > 0) {
31
+ const oldestKey = insertionOrder.shift();
32
+ if (oldestKey !== undefined) {
33
+ store.delete(oldestKey);
34
+ }
35
+ }
36
+ }
37
+ /**
38
+ * Remove key from insertion order tracking.
39
+ *
40
+ * @param key - Key to remove from order tracking
41
+ */
42
+ function removeFromOrder(key) {
43
+ const index = insertionOrder.indexOf(key);
44
+ if (index !== -1) {
45
+ insertionOrder.splice(index, 1);
46
+ }
47
+ }
48
+ const cache = {
49
+ get(key) {
50
+ const entry = store.get(key);
51
+ if (!entry)
52
+ return undefined;
53
+ if (isExpired(entry)) {
54
+ store.delete(key);
55
+ removeFromOrder(key);
56
+ return undefined;
57
+ }
58
+ return entry.value;
59
+ },
60
+ set(key, value) {
61
+ if (store.has(key)) {
62
+ removeFromOrder(key);
63
+ }
64
+ else {
65
+ evictIfNeeded();
66
+ }
67
+ // eslint-disable-next-line workspace/no-unsafe-builtin-methods -- Date.now() is needed for Jest fake timers compatibility
68
+ store.set(key, { value, timestamp: Date.now() });
69
+ insertionOrder.push(key);
70
+ },
71
+ has(key) {
72
+ const entry = store.get(key);
73
+ if (!entry)
74
+ return false;
75
+ if (isExpired(entry)) {
76
+ store.delete(key);
77
+ removeFromOrder(key);
78
+ return false;
79
+ }
80
+ return true;
81
+ },
82
+ delete(key) {
83
+ removeFromOrder(key);
84
+ return store.delete(key);
85
+ },
86
+ clear() {
87
+ store.clear();
88
+ insertionOrder.length = 0;
89
+ },
90
+ size() {
91
+ return store.size;
92
+ },
93
+ keys() {
94
+ return [...insertionOrder];
95
+ },
96
+ };
97
+ cacheRegistry.add(cache);
98
+ return index_cjs_js$2.freeze(cache);
99
+ }
100
+ function clearAllCaches() {
101
+ for (const cache of cacheRegistry) {
102
+ cache.clear();
103
+ }
104
+ }
105
+ function getCacheCount() {
106
+ return cacheRegistry.size;
107
+ }
108
+ function unregisterCache(cache) {
109
+ return cacheRegistry.delete(cache);
110
+ }
111
+ function memoize(fn, options) {
112
+ const cache = createCache(options);
113
+ const memoized = (key) => {
114
+ const cached = cache.get(key);
115
+ if (cached !== undefined) {
116
+ return cached;
117
+ }
118
+ const result = fn(key);
119
+ cache.set(key, result);
120
+ return result;
121
+ };
122
+ index_cjs_js$2.defineProperty(memoized, 'cache', {
123
+ value: cache,
124
+ writable: false,
125
+ enumerable: true,
126
+ });
127
+ return memoized;
128
+ }
129
+
130
+ exports.cacheRegistry = cacheRegistry;
131
+ exports.createCache = createCache;
132
+ exports.clearAllCaches = clearAllCaches;
133
+ exports.getCacheCount = getCacheCount;
134
+ exports.unregisterCache = unregisterCache;
135
+ exports.memoize = memoize;
@@ -0,0 +1,128 @@
1
+ import { createMap } from '../../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/map/index.esm.js';
2
+ import { keys, freeze, defineProperty } from '../../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/object/index.esm.js';
3
+ import { createSet } from '../../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/set/index.esm.js';
4
+
5
+ const cacheRegistry = createSet();
6
+ function createCache(options) {
7
+ const { ttl, maxSize } = options ?? {};
8
+ const store = createMap();
9
+ const insertionOrder = [];
10
+ /**
11
+ * Check if an entry is expired.
12
+ *
13
+ * @param entry - Cache entry to check
14
+ * @returns True if entry is expired
15
+ */
16
+ function isExpired(entry) {
17
+ if (ttl === undefined)
18
+ return false;
19
+ // eslint-disable-next-line workspace/no-unsafe-builtin-methods -- Date.now() is needed for Jest fake timers compatibility
20
+ return Date.now() - entry.timestamp > ttl;
21
+ }
22
+ /**
23
+ * Evict oldest entries to make room for new ones.
24
+ */
25
+ function evictIfNeeded() {
26
+ if (maxSize === undefined)
27
+ return;
28
+ while (store.size >= maxSize && insertionOrder.length > 0) {
29
+ const oldestKey = insertionOrder.shift();
30
+ if (oldestKey !== undefined) {
31
+ store.delete(oldestKey);
32
+ }
33
+ }
34
+ }
35
+ /**
36
+ * Remove key from insertion order tracking.
37
+ *
38
+ * @param key - Key to remove from order tracking
39
+ */
40
+ function removeFromOrder(key) {
41
+ const index = insertionOrder.indexOf(key);
42
+ if (index !== -1) {
43
+ insertionOrder.splice(index, 1);
44
+ }
45
+ }
46
+ const cache = {
47
+ get(key) {
48
+ const entry = store.get(key);
49
+ if (!entry)
50
+ return undefined;
51
+ if (isExpired(entry)) {
52
+ store.delete(key);
53
+ removeFromOrder(key);
54
+ return undefined;
55
+ }
56
+ return entry.value;
57
+ },
58
+ set(key, value) {
59
+ if (store.has(key)) {
60
+ removeFromOrder(key);
61
+ }
62
+ else {
63
+ evictIfNeeded();
64
+ }
65
+ // eslint-disable-next-line workspace/no-unsafe-builtin-methods -- Date.now() is needed for Jest fake timers compatibility
66
+ store.set(key, { value, timestamp: Date.now() });
67
+ insertionOrder.push(key);
68
+ },
69
+ has(key) {
70
+ const entry = store.get(key);
71
+ if (!entry)
72
+ return false;
73
+ if (isExpired(entry)) {
74
+ store.delete(key);
75
+ removeFromOrder(key);
76
+ return false;
77
+ }
78
+ return true;
79
+ },
80
+ delete(key) {
81
+ removeFromOrder(key);
82
+ return store.delete(key);
83
+ },
84
+ clear() {
85
+ store.clear();
86
+ insertionOrder.length = 0;
87
+ },
88
+ size() {
89
+ return store.size;
90
+ },
91
+ keys() {
92
+ return [...insertionOrder];
93
+ },
94
+ };
95
+ cacheRegistry.add(cache);
96
+ return freeze(cache);
97
+ }
98
+ function clearAllCaches() {
99
+ for (const cache of cacheRegistry) {
100
+ cache.clear();
101
+ }
102
+ }
103
+ function getCacheCount() {
104
+ return cacheRegistry.size;
105
+ }
106
+ function unregisterCache(cache) {
107
+ return cacheRegistry.delete(cache);
108
+ }
109
+ function memoize(fn, options) {
110
+ const cache = createCache(options);
111
+ const memoized = (key) => {
112
+ const cached = cache.get(key);
113
+ if (cached !== undefined) {
114
+ return cached;
115
+ }
116
+ const result = fn(key);
117
+ cache.set(key, result);
118
+ return result;
119
+ };
120
+ defineProperty(memoized, 'cache', {
121
+ value: cache,
122
+ writable: false,
123
+ enumerable: true,
124
+ });
125
+ return memoized;
126
+ }
127
+
128
+ export { cacheRegistry, createCache, clearAllCaches, getCacheCount, unregisterCache, memoize };
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ const index_cjs_js$6 = require('../../../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/error/index.cjs.js');
4
+
5
+ function createStructuredError(message, code, context) {
6
+ const error = index_cjs_js$6.createError(message);
7
+ error.code = code;
8
+ error.context = context ?? {};
9
+ return error;
10
+ }
11
+ function createConfigError(message, code, context) {
12
+ return createStructuredError(message, code, { ...context, type: 'config' });
13
+ }
14
+ function createFsError(message, code, context) {
15
+ return createStructuredError(message, code, { ...context, type: 'fs' });
16
+ }
17
+ function createParseError(message, code, context) {
18
+ return createStructuredError(message, code, { ...context, type: 'parse' });
19
+ }
20
+ function createValidationError(message, code, context) {
21
+ return createStructuredError(message, code, { ...context, type: 'validation' });
22
+ }
23
+
24
+ exports.createStructuredError = createStructuredError;
25
+ exports.createConfigError = createConfigError;
26
+ exports.createFsError = createFsError;
27
+ exports.createParseError = createParseError;
28
+ exports.createValidationError = createValidationError;
@@ -0,0 +1,23 @@
1
+ import { error } from '../../../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/console/index.esm.js';
2
+ import { createError } from '../../../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/error/index.esm.js';
3
+
4
+ function createStructuredError(message, code, context) {
5
+ const error = createError(message);
6
+ error.code = code;
7
+ error.context = context ?? {};
8
+ return error;
9
+ }
10
+ function createConfigError(message, code, context) {
11
+ return createStructuredError(message, code, { ...context, type: 'config' });
12
+ }
13
+ function createFsError(message, code, context) {
14
+ return createStructuredError(message, code, { ...context, type: 'fs' });
15
+ }
16
+ function createParseError(message, code, context) {
17
+ return createStructuredError(message, code, { ...context, type: 'parse' });
18
+ }
19
+ function createValidationError(message, code, context) {
20
+ return createStructuredError(message, code, { ...context, type: 'validation' });
21
+ }
22
+
23
+ export { createStructuredError, createConfigError, createFsError, createParseError, createValidationError };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ function isSafePath(filePath) {
4
+ return !filePath.includes('\u0000');
5
+ }
6
+
7
+ exports.isSafePath = isSafePath;
@@ -0,0 +1,5 @@
1
+ function isSafePath(filePath) {
2
+ return !filePath.includes('\u0000');
3
+ }
4
+
5
+ export { isSafePath };
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ const { isSafePath } = require('../guard/index.cjs.js');
4
+ const node_fs = require('node:fs');
5
+
6
+ function getFileStat(filePath, followSymlinks = true) {
7
+ if (!isSafePath(filePath) || !node_fs.existsSync(filePath)) {
8
+ return null;
9
+ }
10
+ try {
11
+ const stat = followSymlinks ? node_fs.statSync(filePath) : node_fs.lstatSync(filePath);
12
+ return {
13
+ isFile: stat.isFile(),
14
+ isDirectory: stat.isDirectory(),
15
+ isSymlink: stat.isSymbolicLink(),
16
+ size: stat.size,
17
+ created: stat.birthtime,
18
+ modified: stat.mtime,
19
+ accessed: stat.atime,
20
+ mode: stat.mode,
21
+ };
22
+ }
23
+ catch {
24
+ return null;
25
+ }
26
+ }
27
+ function isFile(filePath) {
28
+ const stats = getFileStat(filePath);
29
+ return stats?.isFile ?? false;
30
+ }
31
+ function isDirectory(dirPath) {
32
+ const stats = getFileStat(dirPath);
33
+ return stats?.isDirectory ?? false;
34
+ }
35
+ function isSymlink(linkPath) {
36
+ const stats = getFileStat(linkPath, false);
37
+ return stats?.isSymlink ?? false;
38
+ }
39
+ function exists(filePath) {
40
+ return isSafePath(filePath) && node_fs.existsSync(filePath);
41
+ }
42
+
43
+ exports.getFileStat = getFileStat;
44
+ exports.isFile = isFile;
45
+ exports.isDirectory = isDirectory;
46
+ exports.isSymlink = isSymlink;
47
+ exports.exists = exists;
@@ -0,0 +1,41 @@
1
+ import { isSafePath } from '../guard/index.esm.js';
2
+ import { existsSync, statSync, lstatSync } from 'node:fs';
3
+
4
+ function getFileStat(filePath, followSymlinks = true) {
5
+ if (!isSafePath(filePath) || !existsSync(filePath)) {
6
+ return null;
7
+ }
8
+ try {
9
+ const stat = followSymlinks ? statSync(filePath) : lstatSync(filePath);
10
+ return {
11
+ isFile: stat.isFile(),
12
+ isDirectory: stat.isDirectory(),
13
+ isSymlink: stat.isSymbolicLink(),
14
+ size: stat.size,
15
+ created: stat.birthtime,
16
+ modified: stat.mtime,
17
+ accessed: stat.atime,
18
+ mode: stat.mode,
19
+ };
20
+ }
21
+ catch {
22
+ return null;
23
+ }
24
+ }
25
+ function isFile(filePath) {
26
+ const stats = getFileStat(filePath);
27
+ return stats?.isFile ?? false;
28
+ }
29
+ function isDirectory(dirPath) {
30
+ const stats = getFileStat(dirPath);
31
+ return stats?.isDirectory ?? false;
32
+ }
33
+ function isSymlink(linkPath) {
34
+ const stats = getFileStat(linkPath, false);
35
+ return stats?.isSymlink ?? false;
36
+ }
37
+ function exists(filePath) {
38
+ return isSafePath(filePath) && existsSync(filePath);
39
+ }
40
+
41
+ export { getFileStat, isFile, isDirectory, isSymlink, exists };
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ const { removeTrailingSlash, normalizePath } = require('../normalize/index.cjs.js');
4
+ const node_path = require('node:path');
5
+ const node_fs = require('node:fs');
6
+
7
+ function contains(root, path) {
8
+ const base = removeTrailingSlash(root);
9
+ return path === base || path.startsWith(`${base}/`);
10
+ }
11
+ function isWithinRoot(root, candidate) {
12
+ if (!contains(normalizePath(node_path.resolve(root)), normalizePath(node_path.resolve(candidate)))) {
13
+ return false;
14
+ }
15
+ if (!node_fs.existsSync(candidate)) {
16
+ return true;
17
+ }
18
+ return contains(normalizePath(node_fs.realpathSync(root)), normalizePath(node_fs.realpathSync(candidate)));
19
+ }
20
+
21
+ exports.contains = contains;
22
+ exports.isWithinRoot = isWithinRoot;
@@ -0,0 +1,19 @@
1
+ import { removeTrailingSlash, normalizePath } from '../normalize/index.esm.js';
2
+ import { existsSync, realpathSync } from 'node:fs';
3
+ import { resolve } from 'node:path';
4
+
5
+ function contains(root, path) {
6
+ const base = removeTrailingSlash(root);
7
+ return path === base || path.startsWith(`${base}/`);
8
+ }
9
+ function isWithinRoot(root, candidate) {
10
+ if (!contains(normalizePath(resolve(root)), normalizePath(resolve(candidate)))) {
11
+ return false;
12
+ }
13
+ if (!existsSync(candidate)) {
14
+ return true;
15
+ }
16
+ return contains(normalizePath(realpathSync(root)), normalizePath(realpathSync(candidate)));
17
+ }
18
+
19
+ export { contains, isWithinRoot };
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ const node_path = require('node:path');
4
+
5
+ function join(...paths) {
6
+ return node_path.join(...paths);
7
+ }
8
+ function joinPosix(...paths) {
9
+ return node_path.posix.join(...paths);
10
+ }
11
+
12
+ exports.join = join;
13
+ exports.joinPosix = joinPosix;
@@ -0,0 +1,10 @@
1
+ import { posix } from 'node:path';
2
+
3
+ function join(...paths) {
4
+ return join$1(...paths);
5
+ }
6
+ function joinPosix(...paths) {
7
+ return posix.join(...paths);
8
+ }
9
+
10
+ export { join, joinPosix };