binary-collections 2.0.13 → 2.0.15

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 (303) hide show
  1. package/.opencode/plugins/opencode-request-logger/README.md +44 -0
  2. package/.venv/Lib/site-packages/pyarrow/tests/data/orc/README.md +22 -0
  3. package/binaries/binary-executor.cjs +307 -238
  4. package/binaries/clean-nodemodule.cjs +307 -238
  5. package/binaries/clean-nodemodules.cjs +307 -238
  6. package/binaries/composer.cjs +323 -0
  7. package/binaries/composer.cmd +2 -0
  8. package/binaries/composer.phar +0 -0
  9. package/binaries/dev.cjs +307 -238
  10. package/binaries/empty.cjs +307 -238
  11. package/binaries/git-reduce-size.cjs +307 -238
  12. package/binaries/javakill.cjs +307 -238
  13. package/binaries/kill-process.cjs +307 -238
  14. package/binaries/nodekill.cjs +307 -238
  15. package/binaries/prod.cjs +307 -238
  16. package/binaries/py.cjs +307 -238
  17. package/binaries/rmfind.cjs +307 -238
  18. package/binaries/rmx.cjs +307 -238
  19. package/binaries/submodule-token.cjs +307 -238
  20. package/binaries/test-cjs.cjs +307 -238
  21. package/binaries/test-esm.cjs +307 -238
  22. package/binaries/yarn-clean.cjs +307 -238
  23. package/binaries/yc.cjs +307 -238
  24. package/binaries/ycw.cjs +307 -238
  25. package/docs-src/binary-collections.md +1 -1
  26. package/docs-src/clean-github-actions-caches.md +1 -1
  27. package/docs-src/copy-move-file.md +1 -4
  28. package/docs-src/del-ps.md +1 -1
  29. package/docs-src/find-node-modules.md +1 -1
  30. package/docs-src/generate-test-ci.md +56 -0
  31. package/docs-src/get-latest-workflow-status.md +100 -0
  32. package/docs-src/git-diff.md +1 -1
  33. package/docs-src/git-fix.md +1 -1
  34. package/docs-src/git-purge.md +1 -1
  35. package/docs-src/install-opencode-plugins.md +86 -0
  36. package/docs-src/kill-night-crows.md +1 -1
  37. package/docs-src/node-cache-cleaner.md +2 -2
  38. package/docs-src/node-package-packer.md +1 -1
  39. package/docs-src/opencode-cli.md +155 -0
  40. package/docs-src/package-resolutions-updater.md +1 -1
  41. package/docs-src/rmpath.md +1 -1
  42. package/docs-src/run-by-checksum.md +1 -1
  43. package/docs-src/submodule-remove.md +1 -1
  44. package/docs-src/upload-backend.md +29 -0
  45. package/docs-src/vscode-cli.md +84 -0
  46. package/docs-src/workflow-badge.md +120 -0
  47. package/lib/binary-collections/config-types.cjs +17 -0
  48. package/lib/binary-collections/config-types.d.ts +12 -0
  49. package/lib/binary-collections/config-types.js +2 -0
  50. package/lib/binary-collections/config-types.mjs +7 -0
  51. package/lib/binary-collections/config.cjs +28 -8
  52. package/lib/binary-collections/config.d.cts +26 -8
  53. package/lib/binary-collections/config.mjs +2 -2
  54. package/lib/binary-collections/findScript.cjs +49 -25
  55. package/lib/binary-collections/findScript.mjs +2 -2
  56. package/lib/binary-collections/listScript.cjs +49 -25
  57. package/lib/binary-collections/listScript.mjs +2 -2
  58. package/lib/binary-collections.cjs +49 -25
  59. package/lib/binary-collections.mjs +6 -6
  60. package/lib/changelog.cjs +142 -4
  61. package/lib/changelog.mjs +9 -5
  62. package/lib/chunk-3T6AMFI3.mjs +52 -0
  63. package/lib/{chunk-2MN4VPV2.mjs → chunk-3ZF2QMDK.mjs} +4 -4
  64. package/lib/chunk-56BVU63B.mjs +86 -0
  65. package/lib/chunk-7N52Z4IJ.mjs +39 -0
  66. package/lib/chunk-B77D3SR4.mjs +28 -0
  67. package/lib/chunk-BPED62FN.mjs +115 -0
  68. package/lib/{chunk-RDN6HF5Z.mjs → chunk-DHFRWM2W.mjs} +1 -1
  69. package/lib/chunk-DPEE3FBB.mjs +146 -0
  70. package/lib/{chunk-MGPYPKIE.mjs → chunk-H7AE4IO3.mjs} +5 -1
  71. package/lib/{chunk-H44UWUFY.mjs → chunk-J4M5EL5P.mjs} +3 -0
  72. package/lib/chunk-KCJYREA2.mjs +67 -0
  73. package/lib/chunk-LACQTD5V.mjs +225 -0
  74. package/lib/{chunk-TBWXE7ST.mjs → chunk-NHD4HLSU.mjs} +24 -31
  75. package/lib/{chunk-RDGDLSPD.mjs → chunk-OWNVMKAA.mjs} +6 -5
  76. package/lib/chunk-SKVF4TMD.mjs +59 -0
  77. package/lib/{chunk-BZWVHODJ.mjs → chunk-TDUUOAQD.mjs} +5 -5
  78. package/lib/chunk-TP3O2JGW.mjs +88 -0
  79. package/lib/{chunk-FLYSZFLW.mjs → chunk-UAEKSLAX.mjs} +1 -1
  80. package/lib/chunk-UDZBVKXH.mjs +94 -0
  81. package/lib/chunk-UEOWRYAN.mjs +32 -0
  82. package/lib/chunk-V6PTSDW5.mjs +82 -0
  83. package/lib/{chunk-NQXUYO67.mjs → chunk-WNUEY6VJ.mjs} +49 -25
  84. package/lib/chunk-X7UVQ6ZC.mjs +183 -0
  85. package/lib/chunk-XW5NZAKI.mjs +82 -0
  86. package/lib/{chunk-LVSPEFU2.mjs → chunk-Z53IUBUN.mjs} +6 -5
  87. package/lib/{chunk-CD3HF3LK.mjs → chunk-Z7RM46Q4.mjs} +5 -11
  88. package/lib/chunk-ZB4IQ6VJ.mjs +46 -0
  89. package/lib/del-gradle.cjs +1 -1
  90. package/lib/del-gradle.mjs +22 -16
  91. package/lib/del-node-modules.cjs +1 -1
  92. package/lib/del-node-modules.mjs +148 -142
  93. package/lib/find-node-modules-cli.cjs +1 -1
  94. package/lib/find-node-modules-cli.mjs +10 -4
  95. package/lib/{git-diff-cli.cjs → git/git-diff-cli.cjs} +32 -12
  96. package/lib/{git-diff-cli.mjs → git/git-diff-cli.mjs} +7 -7
  97. package/lib/{git-diff.cjs → git/git-diff.cjs} +30 -10
  98. package/lib/{git-diff.js → git/git-diff.js} +3 -3
  99. package/lib/{git-diff.mjs → git/git-diff.mjs} +6 -6
  100. package/lib/{git-fix.cjs → git/git-fix.cjs} +142 -3
  101. package/lib/{git-fix.mjs → git/git-fix.mjs} +19 -14
  102. package/lib/{git-purge.cjs → git/git-purge.cjs} +1 -1
  103. package/lib/{git-purge.mjs → git/git-purge.mjs} +4 -4
  104. package/lib/git/user-config.cjs +139 -1
  105. package/lib/git/user-config.mjs +3 -1
  106. package/lib/{clean-github-actions-caches-cli.cjs → github-workflows/clean-github-actions-caches-cli.cjs} +46 -10
  107. package/lib/{clean-github-actions-caches-cli.mjs → github-workflows/clean-github-actions-caches-cli.mjs} +7 -6
  108. package/lib/{clean-github-actions-caches.cjs → github-workflows/clean-github-actions-caches.cjs} +46 -10
  109. package/lib/{clean-github-actions-caches.mjs → github-workflows/clean-github-actions-caches.mjs} +5 -4
  110. package/lib/github-workflows/generate-test-ci-step-cli.cjs +240 -0
  111. package/lib/github-workflows/generate-test-ci-step-cli.d.mts +2 -0
  112. package/lib/github-workflows/generate-test-ci-step-cli.mjs +132 -0
  113. package/lib/github-workflows/get-latest-workflow-status-cli.cjs +549 -0
  114. package/lib/github-workflows/get-latest-workflow-status-cli.d.mts +2 -0
  115. package/lib/github-workflows/get-latest-workflow-status-cli.mjs +61 -0
  116. package/lib/github-workflows/get-latest-workflow-status.cjs +56 -0
  117. package/lib/github-workflows/get-latest-workflow-status.d.mts +1 -0
  118. package/lib/github-workflows/get-latest-workflow-status.mjs +8 -0
  119. package/lib/github-workflows/utils.cjs +279 -0
  120. package/lib/github-workflows/utils.d.cts +76 -0
  121. package/lib/github-workflows/utils.mjs +8 -0
  122. package/lib/github-workflows/workflow-badge-cli.cjs +730 -0
  123. package/lib/github-workflows/workflow-badge-cli.d.mts +2 -0
  124. package/lib/github-workflows/workflow-badge-cli.mjs +98 -0
  125. package/lib/github-workflows/workflow-badge-generator.cjs +200 -0
  126. package/lib/github-workflows/workflow-badge-generator.d.mts +14 -0
  127. package/lib/github-workflows/workflow-badge-generator.mjs +8 -0
  128. package/lib/github-workflows/workflow-test-data.cjs +73 -0
  129. package/lib/github-workflows/workflow-test-data.d.cts +63 -0
  130. package/lib/github-workflows/workflow-test-data.mjs +6 -0
  131. package/lib/node-cache-cleaner-cli.mjs +3 -3
  132. package/lib/opencode/cli/auth-rotate.cjs +458 -0
  133. package/lib/opencode/cli/auth-rotate.d.ts +3 -0
  134. package/lib/opencode/cli/auth-rotate.js +65 -0
  135. package/lib/opencode/cli/auth-rotate.mjs +14 -0
  136. package/lib/opencode/cli/auth-rotate.runner.cjs +454 -0
  137. package/lib/opencode/cli/auth-rotate.runner.d.ts +1 -0
  138. package/lib/opencode/cli/auth-rotate.runner.js +8 -0
  139. package/lib/opencode/cli/auth-rotate.runner.mjs +21 -0
  140. package/lib/opencode/cli/list-projects.cjs +184 -0
  141. package/lib/opencode/cli/list-projects.d.ts +1 -0
  142. package/lib/opencode/cli/list-projects.js +32 -0
  143. package/lib/opencode/cli/list-projects.mjs +11 -0
  144. package/lib/opencode/cli/list-sessions.cjs +215 -0
  145. package/lib/opencode/cli/list-sessions.d.ts +1 -0
  146. package/lib/opencode/cli/list-sessions.js +45 -0
  147. package/lib/opencode/cli/list-sessions.mjs +11 -0
  148. package/lib/opencode/database.cjs +349 -0
  149. package/lib/opencode/database.d.ts +91 -0
  150. package/lib/opencode/database.js +252 -0
  151. package/lib/opencode/database.mjs +28 -0
  152. package/lib/opencode/database.runner.cjs +145 -0
  153. package/lib/opencode/database.runner.d.ts +1 -0
  154. package/lib/opencode/database.runner.js +56 -0
  155. package/lib/opencode/database.runner.mjs +37 -0
  156. package/lib/opencode/install-opencode-plugins-cli.cjs +82 -0
  157. package/lib/opencode/install-opencode-plugins-cli.d.ts +1 -0
  158. package/lib/opencode/install-opencode-plugins-cli.js +78 -0
  159. package/lib/opencode/install-opencode-plugins-cli.mjs +65 -0
  160. package/lib/opencode/opencode-zen.runner.cjs +48 -0
  161. package/lib/opencode/opencode-zen.runner.d.mts +1 -0
  162. package/lib/opencode/opencode-zen.runner.mjs +31 -0
  163. package/lib/opencode/sqlite.cjs +114 -0
  164. package/lib/opencode/sqlite.d.ts +18 -0
  165. package/lib/opencode/sqlite.js +82 -0
  166. package/lib/opencode/sqlite.mjs +10 -0
  167. package/lib/opencode/storage.cjs +124 -0
  168. package/lib/opencode/storage.d.ts +27 -0
  169. package/lib/opencode/storage.js +101 -0
  170. package/lib/opencode/storage.mjs +38 -0
  171. package/lib/opencode/storage.runner.cjs +50 -0
  172. package/lib/opencode/storage.runner.d.ts +1 -0
  173. package/lib/opencode/storage.runner.js +13 -0
  174. package/lib/opencode/storage.runner.mjs +29 -0
  175. package/lib/opencode/types.cjs +17 -0
  176. package/lib/opencode/types.d.ts +31 -0
  177. package/lib/opencode/types.js +2 -0
  178. package/lib/opencode/types.mjs +7 -0
  179. package/lib/opencode/utils/check-api.cjs +373 -0
  180. package/lib/opencode/utils/check-api.d.ts +16 -0
  181. package/lib/opencode/utils/check-api.js +132 -0
  182. package/lib/opencode/utils/check-api.mjs +12 -0
  183. package/lib/opencode/utils/check-api.runner.cjs +0 -0
  184. package/lib/opencode/utils/check-api.runner.d.ts +0 -0
  185. package/lib/opencode/utils/check-api.runner.js +1 -0
  186. package/lib/opencode/utils/check-api.runner.mjs +7 -0
  187. package/lib/opencode-cli.cjs +796 -0
  188. package/lib/opencode-cli.d.ts +2 -0
  189. package/lib/opencode-cli.js +116 -0
  190. package/lib/opencode-cli.mjs +116 -0
  191. package/lib/package-resolutions-updater-cli.cjs +189 -154
  192. package/lib/package-resolutions-updater-cli.mjs +3 -2
  193. package/lib/package-resolutions-updater.cjs +189 -154
  194. package/lib/package-resolutions-updater.d.mts +12 -3
  195. package/lib/package-resolutions-updater.mjs +3 -2
  196. package/lib/print-directory-tree.cjs +139 -3
  197. package/lib/print-directory-tree.mjs +6 -3
  198. package/lib/print-tarball-tree-cli.cjs +305 -0
  199. package/lib/print-tarball-tree-cli.d.mts +2 -0
  200. package/lib/print-tarball-tree-cli.mjs +54 -0
  201. package/lib/print-tarball-tree.cjs +43 -216
  202. package/lib/print-tarball-tree.d.mts +4 -1
  203. package/lib/print-tarball-tree.mjs +12 -66
  204. package/lib/rmpath-cli.cjs +139 -5
  205. package/lib/rmpath-cli.mjs +3 -1
  206. package/lib/rmpath.cjs +155 -11
  207. package/lib/rmpath.mjs +3 -1
  208. package/lib/run-by-checksum/hash.cjs +50 -56
  209. package/lib/run-by-checksum/hash.d.cts +24 -0
  210. package/lib/run-by-checksum/hash.mjs +3 -7
  211. package/lib/run-by-checksum/run.cjs +95 -42
  212. package/lib/run-by-checksum/run.js +3 -3
  213. package/lib/run-by-checksum/run.mjs +2 -2
  214. package/lib/run-by-checksum-cli.cjs +96 -58
  215. package/lib/run-by-checksum-cli.mjs +2 -2
  216. package/lib/submodule-install.cjs +138 -4
  217. package/lib/submodule-install.mjs +5 -4
  218. package/lib/submodule-remove-cli.cjs +139 -5
  219. package/lib/submodule-remove-cli.mjs +3 -1
  220. package/lib/submodule-remove.cjs +154 -5
  221. package/lib/submodule-remove.mjs +3 -1
  222. package/lib/utils/findEnvFiles.cjs +3 -0
  223. package/lib/utils/findEnvFiles.d.cts +2 -2
  224. package/lib/utils/findEnvFiles.mjs +1 -1
  225. package/lib/utils/isDebug.cjs +13 -0
  226. package/lib/utils/isDebug.d.cts +9 -0
  227. package/lib/utils/isDebug.mjs +6 -0
  228. package/lib/vscode/project.cjs +0 -0
  229. package/lib/vscode/project.d.ts +0 -0
  230. package/lib/vscode/project.js +1 -0
  231. package/lib/vscode/project.mjs +7 -0
  232. package/lib/vscode/storage.cjs +138 -0
  233. package/lib/vscode/storage.d.ts +51 -0
  234. package/lib/vscode/storage.js +169 -0
  235. package/lib/vscode/storage.mjs +42 -0
  236. package/lib/vscode/storage.runner.cjs +125 -0
  237. package/lib/vscode/storage.runner.d.ts +1 -0
  238. package/lib/vscode/storage.runner.js +47 -0
  239. package/lib/vscode/storage.runner.mjs +60 -0
  240. package/lib/vscode-cli.cjs +155 -0
  241. package/lib/vscode-cli.d.ts +2 -0
  242. package/lib/vscode-cli.js +80 -0
  243. package/lib/vscode-cli.mjs +71 -0
  244. package/package.json +50 -26
  245. package/readme.md +104 -8
  246. package/releases/readme.md +1 -1
  247. package/src/github-workflows/generate-test-ci-step-cli.mjs +126 -0
  248. package/vendor/clue/ndjson-react/README.md +365 -0
  249. package/vendor/composer/pcre/README.md +189 -0
  250. package/vendor/composer/semver/README.md +99 -0
  251. package/vendor/composer/xdebug-handler/README.md +305 -0
  252. package/vendor/ergebnis/agent-detector/README.md +107 -0
  253. package/vendor/evenement/evenement/README.md +64 -0
  254. package/vendor/fidry/cpu-core-counter/README.md +138 -0
  255. package/vendor/friendsofphp/php-cs-fixer/README.md +97 -0
  256. package/vendor/psr/container/README.md +13 -0
  257. package/vendor/psr/event-dispatcher/README.md +6 -0
  258. package/vendor/psr/log/README.md +58 -0
  259. package/vendor/react/cache/README.md +367 -0
  260. package/vendor/react/child-process/README.md +619 -0
  261. package/vendor/react/dns/README.md +453 -0
  262. package/vendor/react/event-loop/README.md +930 -0
  263. package/vendor/react/promise/README.md +722 -0
  264. package/vendor/react/socket/README.md +1564 -0
  265. package/vendor/react/stream/README.md +1249 -0
  266. package/vendor/sebastian/diff/README.md +151 -0
  267. package/vendor/symfony/console/README.md +30 -0
  268. package/vendor/symfony/deprecation-contracts/README.md +26 -0
  269. package/vendor/symfony/event-dispatcher/README.md +25 -0
  270. package/vendor/symfony/event-dispatcher-contracts/README.md +9 -0
  271. package/vendor/symfony/filesystem/README.md +23 -0
  272. package/vendor/symfony/finder/README.md +24 -0
  273. package/vendor/symfony/options-resolver/README.md +25 -0
  274. package/vendor/symfony/polyfill-ctype/README.md +12 -0
  275. package/vendor/symfony/polyfill-intl-grapheme/README.md +32 -0
  276. package/vendor/symfony/polyfill-intl-normalizer/README.md +14 -0
  277. package/vendor/symfony/polyfill-mbstring/README.md +13 -0
  278. package/vendor/symfony/polyfill-php80/README.md +25 -0
  279. package/vendor/symfony/polyfill-php81/README.md +18 -0
  280. package/vendor/symfony/polyfill-php84/README.md +23 -0
  281. package/vendor/symfony/polyfill-php85/README.md +20 -0
  282. package/vendor/symfony/process/README.md +23 -0
  283. package/vendor/symfony/service-contracts/README.md +9 -0
  284. package/vendor/symfony/stopwatch/README.md +52 -0
  285. package/vendor/symfony/string/README.md +24 -0
  286. package/lib/chunk-WSHVPGNM.mjs +0 -44
  287. package/lib/chunk-X2B3X7D4.mjs +0 -35
  288. package/lib/del-gradle.js +0 -16
  289. package/lib/del-node-modules.js +0 -211
  290. package/lib/find-node-modules-cli.js +0 -4
  291. package/lib/run-by-checksum/hash.d.ts +0 -14
  292. package/lib/run-by-checksum/hash.js +0 -85
  293. package/readme.html +0 -784
  294. /package/lib/{clean-github-actions-caches-cli.d.cts → del-gradle.d.cts} +0 -0
  295. /package/lib/{del-gradle.d.ts → del-node-modules.d.cts} +0 -0
  296. /package/lib/{find-node-modules-cli.d.ts → find-node-modules-cli.d.cts} +0 -0
  297. /package/lib/{git-diff-cli.d.ts → git/git-diff-cli.d.ts} +0 -0
  298. /package/lib/{git-diff-cli.js → git/git-diff-cli.js} +0 -0
  299. /package/lib/{git-diff.d.ts → git/git-diff.d.ts} +0 -0
  300. /package/lib/{git-fix.d.cts → git/git-fix.d.cts} +0 -0
  301. /package/lib/{git-purge.d.cts → git/git-purge.d.cts} +0 -0
  302. /package/lib/{del-node-modules.d.ts → github-workflows/clean-github-actions-caches-cli.d.cts} +0 -0
  303. /package/lib/{clean-github-actions-caches.d.cts → github-workflows/clean-github-actions-caches.d.cts} +0 -0
@@ -201,6 +201,143 @@ var require_utils = __commonJS({
201
201
  }
202
202
  });
203
203
 
204
+ // src/utils/findEnvFiles.cjs
205
+ var require_findEnvFiles = __commonJS({
206
+ "src/utils/findEnvFiles.cjs"(exports2, module2) {
207
+ init_cjs_shims();
208
+ var fs2 = require("fs");
209
+ var path2 = require("path");
210
+ var glob = require("glob");
211
+ var DEFAULT_IGNORES = [
212
+ "**/node_modules/**",
213
+ "**/.git/**",
214
+ "**/.yarn/**",
215
+ "**/.pnpm/**",
216
+ "**/dist/**",
217
+ "**/build/**",
218
+ "**/coverage/**",
219
+ "**/vendor/**",
220
+ "**/tmp/**",
221
+ "**/.cache/**",
222
+ "**/assets/**",
223
+ "**/logs/**",
224
+ "**/output/**",
225
+ "**/public/**",
226
+ "**/static/**",
227
+ "**/temp/**",
228
+ "**/backup/**",
229
+ "**/backups/**",
230
+ "**/examples/**",
231
+ "**/docs/**",
232
+ "**/tests/**",
233
+ "**/__tests__/**",
234
+ "**/spec/**",
235
+ "**/__specs__/**",
236
+ "**/scripts/**",
237
+ "**/bin/**",
238
+ "**/hooks/**",
239
+ "**/config/**",
240
+ "**/configs/**",
241
+ "**/settings/**",
242
+ "**/.vscode/**",
243
+ "**/.idea/**"
244
+ ];
245
+ function findEnvFiles(startDir = process.cwd(), filter) {
246
+ const found = /* @__PURE__ */ new Set();
247
+ function addFile(file) {
248
+ const normalized = path2.normalize(file);
249
+ if (typeof filter === "function" && !filter(normalized)) {
250
+ return;
251
+ }
252
+ found.add(normalized);
253
+ }
254
+ let current = path2.resolve(startDir);
255
+ while (true) {
256
+ const envPath = path2.join(current, ".env");
257
+ if (fs2.existsSync(envPath)) {
258
+ addFile(envPath);
259
+ }
260
+ const parent = path2.dirname(current);
261
+ if (parent === current) {
262
+ break;
263
+ }
264
+ current = parent;
265
+ }
266
+ const files = glob.globSync("**/.env*", {
267
+ cwd: startDir,
268
+ absolute: true,
269
+ nodir: true,
270
+ ignore: DEFAULT_IGNORES
271
+ });
272
+ for (const file of files) {
273
+ addFile(file);
274
+ }
275
+ return [...found];
276
+ }
277
+ function findEnvWithToken(startDir = process.cwd(), tokenName = "GITHUB_TOKEN") {
278
+ const envFiles = findEnvFiles(startDir);
279
+ return envFiles.find((file) => {
280
+ try {
281
+ const content = fs2.readFileSync(file, "utf-8");
282
+ if (tokenName instanceof RegExp) {
283
+ return tokenName.test(content);
284
+ }
285
+ const regex = new RegExp(`^\\s*${tokenName}\\s*=`, "m");
286
+ return regex.test(content);
287
+ } catch (err) {
288
+ console.warn(`Failed to read ${file}: ${err instanceof Error ? err.message : String(err)}`);
289
+ return false;
290
+ }
291
+ });
292
+ }
293
+ module2.exports = {
294
+ DEFAULT_IGNORES,
295
+ findEnvFiles,
296
+ findEnvWithToken,
297
+ default: findEnvFiles
298
+ };
299
+ }
300
+ });
301
+
302
+ // src/binary-collections/config.cjs
303
+ var require_config = __commonJS({
304
+ "src/binary-collections/config.cjs"(exports2, module2) {
305
+ init_cjs_shims();
306
+ var path2 = require("upath");
307
+ var minimistLib = require("minimist");
308
+ var { findEnvWithToken } = require_findEnvFiles();
309
+ var dotenv = require("dotenv");
310
+ var { cosmiconfig } = require("cosmiconfig");
311
+ var loadDotenv = (tokenKey = /ACCESS_TOKEN|GITHUB_TOKEN/) => dotenv.config({ path: findEnvWithToken(void 0, tokenKey), quiet: true, overwrite: true });
312
+ loadDotenv();
313
+ var cliArgv = minimistLib(process.argv.slice(2), {
314
+ string: ["token"]
315
+ });
316
+ var GITHUB_ACCESS_TOKEN = cliArgv.token || process.env.ACCESS_TOKEN || process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
317
+ function getTempPath(...segments) {
318
+ return path2.join(process.env.TEMP_DIR || path2.join(process.cwd(), "tmp"), ...segments);
319
+ }
320
+ async function getConfig(options = {}) {
321
+ const explorer = cosmiconfig("binary-collections", {
322
+ searchStrategy: "project",
323
+ stopDir: options.stopDir
324
+ });
325
+ try {
326
+ const result = await explorer.search(options.searchFrom);
327
+ return result ? result.config : null;
328
+ } catch {
329
+ return null;
330
+ }
331
+ }
332
+ module2.exports = {
333
+ getTempPath,
334
+ GITHUB_ACCESS_TOKEN,
335
+ loadDotenv,
336
+ getConfig
337
+ };
338
+ }
339
+ });
340
+
204
341
  // src/submodule-remove.cjs
205
342
  var require_submodule_remove = __commonJS({
206
343
  "src/submodule-remove.cjs"(exports2, module2) {
@@ -208,11 +345,8 @@ var require_submodule_remove = __commonJS({
208
345
  var { spawnAsync } = require("cross-spawn");
209
346
  var path2 = require("upath");
210
347
  var fs2 = require("fs-extra");
211
- var dotenv = require("dotenv");
212
- var envPath = path2.resolve(process.cwd(), ".env");
213
- if (fs2.existsSync(envPath)) {
214
- dotenv.config({ path: envPath, override: true, quiet: true });
215
- }
348
+ var { loadDotenv } = require_config();
349
+ loadDotenv();
216
350
  async function removeSubmodule2(submodulePath2) {
217
351
  try {
218
352
  await spawnAsync("git", ["submodule", "deinit", "-f", submodulePath2], { stdio: "inherit" });
@@ -1,7 +1,9 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
2
  import {
3
3
  require_submodule_remove
4
- } from "./chunk-BZWVHODJ.mjs";
4
+ } from "./chunk-TDUUOAQD.mjs";
5
+ import "./chunk-3T6AMFI3.mjs";
6
+ import "./chunk-J4M5EL5P.mjs";
5
7
  import {
6
8
  require_utils
7
9
  } from "./chunk-6RK5UCTP.mjs";
@@ -1,12 +1,161 @@
1
+ var __getOwnPropNames = Object.getOwnPropertyNames;
2
+ var __esm = (fn, res) => function __init() {
3
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
4
+ };
5
+ var __commonJS = (cb, mod) => function __require() {
6
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
7
+ };
8
+
9
+ // node_modules/tsup/assets/cjs_shims.js
10
+ var init_cjs_shims = __esm({
11
+ "node_modules/tsup/assets/cjs_shims.js"() {
12
+ }
13
+ });
14
+
15
+ // src/utils/findEnvFiles.cjs
16
+ var require_findEnvFiles = __commonJS({
17
+ "src/utils/findEnvFiles.cjs"(exports2, module2) {
18
+ init_cjs_shims();
19
+ var fs2 = require("fs");
20
+ var path2 = require("path");
21
+ var glob = require("glob");
22
+ var DEFAULT_IGNORES = [
23
+ "**/node_modules/**",
24
+ "**/.git/**",
25
+ "**/.yarn/**",
26
+ "**/.pnpm/**",
27
+ "**/dist/**",
28
+ "**/build/**",
29
+ "**/coverage/**",
30
+ "**/vendor/**",
31
+ "**/tmp/**",
32
+ "**/.cache/**",
33
+ "**/assets/**",
34
+ "**/logs/**",
35
+ "**/output/**",
36
+ "**/public/**",
37
+ "**/static/**",
38
+ "**/temp/**",
39
+ "**/backup/**",
40
+ "**/backups/**",
41
+ "**/examples/**",
42
+ "**/docs/**",
43
+ "**/tests/**",
44
+ "**/__tests__/**",
45
+ "**/spec/**",
46
+ "**/__specs__/**",
47
+ "**/scripts/**",
48
+ "**/bin/**",
49
+ "**/hooks/**",
50
+ "**/config/**",
51
+ "**/configs/**",
52
+ "**/settings/**",
53
+ "**/.vscode/**",
54
+ "**/.idea/**"
55
+ ];
56
+ function findEnvFiles(startDir = process.cwd(), filter) {
57
+ const found = /* @__PURE__ */ new Set();
58
+ function addFile(file) {
59
+ const normalized = path2.normalize(file);
60
+ if (typeof filter === "function" && !filter(normalized)) {
61
+ return;
62
+ }
63
+ found.add(normalized);
64
+ }
65
+ let current = path2.resolve(startDir);
66
+ while (true) {
67
+ const envPath = path2.join(current, ".env");
68
+ if (fs2.existsSync(envPath)) {
69
+ addFile(envPath);
70
+ }
71
+ const parent = path2.dirname(current);
72
+ if (parent === current) {
73
+ break;
74
+ }
75
+ current = parent;
76
+ }
77
+ const files = glob.globSync("**/.env*", {
78
+ cwd: startDir,
79
+ absolute: true,
80
+ nodir: true,
81
+ ignore: DEFAULT_IGNORES
82
+ });
83
+ for (const file of files) {
84
+ addFile(file);
85
+ }
86
+ return [...found];
87
+ }
88
+ function findEnvWithToken(startDir = process.cwd(), tokenName = "GITHUB_TOKEN") {
89
+ const envFiles = findEnvFiles(startDir);
90
+ return envFiles.find((file) => {
91
+ try {
92
+ const content = fs2.readFileSync(file, "utf-8");
93
+ if (tokenName instanceof RegExp) {
94
+ return tokenName.test(content);
95
+ }
96
+ const regex = new RegExp(`^\\s*${tokenName}\\s*=`, "m");
97
+ return regex.test(content);
98
+ } catch (err) {
99
+ console.warn(`Failed to read ${file}: ${err instanceof Error ? err.message : String(err)}`);
100
+ return false;
101
+ }
102
+ });
103
+ }
104
+ module2.exports = {
105
+ DEFAULT_IGNORES,
106
+ findEnvFiles,
107
+ findEnvWithToken,
108
+ default: findEnvFiles
109
+ };
110
+ }
111
+ });
112
+
113
+ // src/binary-collections/config.cjs
114
+ var require_config = __commonJS({
115
+ "src/binary-collections/config.cjs"(exports2, module2) {
116
+ init_cjs_shims();
117
+ var path2 = require("upath");
118
+ var minimistLib = require("minimist");
119
+ var { findEnvWithToken } = require_findEnvFiles();
120
+ var dotenv = require("dotenv");
121
+ var { cosmiconfig } = require("cosmiconfig");
122
+ var loadDotenv2 = (tokenKey = /ACCESS_TOKEN|GITHUB_TOKEN/) => dotenv.config({ path: findEnvWithToken(void 0, tokenKey), quiet: true, overwrite: true });
123
+ loadDotenv2();
124
+ var cliArgv = minimistLib(process.argv.slice(2), {
125
+ string: ["token"]
126
+ });
127
+ var GITHUB_ACCESS_TOKEN = cliArgv.token || process.env.ACCESS_TOKEN || process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
128
+ function getTempPath(...segments) {
129
+ return path2.join(process.env.TEMP_DIR || path2.join(process.cwd(), "tmp"), ...segments);
130
+ }
131
+ async function getConfig(options = {}) {
132
+ const explorer = cosmiconfig("binary-collections", {
133
+ searchStrategy: "project",
134
+ stopDir: options.stopDir
135
+ });
136
+ try {
137
+ const result = await explorer.search(options.searchFrom);
138
+ return result ? result.config : null;
139
+ } catch {
140
+ return null;
141
+ }
142
+ }
143
+ module2.exports = {
144
+ getTempPath,
145
+ GITHUB_ACCESS_TOKEN,
146
+ loadDotenv: loadDotenv2,
147
+ getConfig
148
+ };
149
+ }
150
+ });
151
+
1
152
  // src/submodule-remove.cjs
153
+ init_cjs_shims();
2
154
  var { spawnAsync } = require("cross-spawn");
3
155
  var path = require("upath");
4
156
  var fs = require("fs-extra");
5
- var dotenv = require("dotenv");
6
- var envPath = path.resolve(process.cwd(), ".env");
7
- if (fs.existsSync(envPath)) {
8
- dotenv.config({ path: envPath, override: true, quiet: true });
9
- }
157
+ var { loadDotenv } = require_config();
158
+ loadDotenv();
10
159
  async function removeSubmodule(submodulePath) {
11
160
  try {
12
161
  await spawnAsync("git", ["submodule", "deinit", "-f", submodulePath], { stdio: "inherit" });
@@ -1,6 +1,8 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
2
  import {
3
3
  require_submodule_remove
4
- } from "./chunk-BZWVHODJ.mjs";
4
+ } from "./chunk-TDUUOAQD.mjs";
5
+ import "./chunk-3T6AMFI3.mjs";
6
+ import "./chunk-J4M5EL5P.mjs";
5
7
  import "./chunk-QQ4A6DLD.mjs";
6
8
  export default require_submodule_remove();
@@ -73,6 +73,9 @@ function findEnvWithToken(startDir = process.cwd(), tokenName = "GITHUB_TOKEN")
73
73
  return envFiles.find((file) => {
74
74
  try {
75
75
  const content = fs.readFileSync(file, "utf-8");
76
+ if (tokenName instanceof RegExp) {
77
+ return tokenName.test(content);
78
+ }
76
79
  const regex = new RegExp(`^\\s*${tokenName}\\s*=`, "m");
77
80
  return regex.test(content);
78
81
  } catch (err) {
@@ -12,8 +12,8 @@ export function findEnvFiles(startDir?: string, filter?: (file: string) => boole
12
12
  * Find the first `.env*` file containing a token variable.
13
13
  *
14
14
  * @param {string} [startDir=process.cwd()] Starting directory.
15
- * @param {string} [tokenName="GITHUB_TOKEN"] Environment variable name.
15
+ * @param {string|RegExp} [tokenName="GITHUB_TOKEN"] Environment variable name or regex.
16
16
  * @returns {string | undefined} Matching file path.
17
17
  */
18
- export function findEnvWithToken(startDir?: string, tokenName?: string): string | undefined;
18
+ export function findEnvWithToken(startDir?: string, tokenName?: string | RegExp): string | undefined;
19
19
  export { findEnvFiles as default };
@@ -1,6 +1,6 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
2
  import {
3
3
  require_findEnvFiles
4
- } from "../chunk-H44UWUFY.mjs";
4
+ } from "../chunk-J4M5EL5P.mjs";
5
5
  import "../chunk-QQ4A6DLD.mjs";
6
6
  export default require_findEnvFiles();
@@ -0,0 +1,13 @@
1
+ // src/utils/isDebug.cjs
2
+ function isDebug() {
3
+ if (globalThis.DEBUG !== void 0) {
4
+ if (typeof globalThis.DEBUG === "boolean") {
5
+ return globalThis.DEBUG;
6
+ }
7
+ return globalThis.DEBUG === "true" || globalThis.DEBUG === "1";
8
+ }
9
+ return process.env.DEBUG === "true" || process.env.NODE_ENV === "development" || process.env.DEBUG === "1";
10
+ }
11
+ module.exports = isDebug;
12
+ module.exports.default = isDebug;
13
+ module.exports.isDebug = isDebug;
@@ -0,0 +1,9 @@
1
+ export = isDebug;
2
+ /**
3
+ * @description Check if the application is running in debug mode.
4
+ * @returns {boolean}
5
+ */
6
+ declare function isDebug(): boolean;
7
+ declare namespace isDebug {
8
+ export { isDebug as default, isDebug };
9
+ }
@@ -0,0 +1,6 @@
1
+ import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
+ import {
3
+ require_isDebug
4
+ } from "../chunk-B77D3SR4.mjs";
5
+ import "../chunk-QQ4A6DLD.mjs";
6
+ export default require_isDebug();
File without changes
File without changes
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,7 @@
1
+ import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
+ import {
3
+ init_esm_shims
4
+ } from "../chunk-QQ4A6DLD.mjs";
5
+
6
+ // src/vscode/project.ts
7
+ init_esm_shims();
@@ -0,0 +1,138 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/vscode/storage.ts
30
+ var storage_exports = {};
31
+ __export(storage_exports, {
32
+ APP_DATA_DIR: () => APP_DATA_DIR,
33
+ CACHED_DATA_DIR: () => CACHED_DATA_DIR,
34
+ CACHED_EXTENSIONS_DIR: () => CACHED_EXTENSIONS_DIR,
35
+ CACHED_VSIXS_DIR: () => CACHED_VSIXS_DIR,
36
+ CACHE_DIR: () => CACHE_DIR,
37
+ DATABASE_PATH: () => DATABASE_PATH,
38
+ EXTENSIONS_DIR: () => EXTENSIONS_DIR,
39
+ GLOBAL_STORAGE_DIR: () => GLOBAL_STORAGE_DIR,
40
+ HISTORY_DIR: () => HISTORY_DIR,
41
+ KEYBINDINGS_PATH: () => KEYBINDINGS_PATH,
42
+ LOGS_DIR: () => LOGS_DIR,
43
+ MACHINE_ID_PATH: () => MACHINE_ID_PATH,
44
+ SETTINGS_PATH: () => SETTINGS_PATH,
45
+ SNIPPETS_DIR: () => SNIPPETS_DIR,
46
+ SYNC_DIR: () => SYNC_DIR,
47
+ USER_DIR: () => USER_DIR,
48
+ WORKSPACE_STORAGE_DIR: () => WORKSPACE_STORAGE_DIR,
49
+ listWorkspaceProjects: () => listWorkspaceProjects
50
+ });
51
+ module.exports = __toCommonJS(storage_exports);
52
+ var path = __toESM(require("upath"), 1);
53
+ var os = __toESM(require("os"), 1);
54
+ var process = __toESM(require("process"), 1);
55
+ var import_fs_extra = __toESM(require("fs-extra"), 1);
56
+ function getAppDataDir() {
57
+ if (process.env.VSCODE_APP_DATA) return process.env.VSCODE_APP_DATA;
58
+ const platform2 = os.platform();
59
+ if (platform2 === "win32") return path.join(process.env.APPDATA || path.join(os.homedir(), "AppData/Roaming"), "Code");
60
+ if (platform2 === "darwin") return path.join(os.homedir(), "Library/Application Support/Code");
61
+ return path.join(os.homedir(), ".config/Code");
62
+ }
63
+ function getCacheDir() {
64
+ const platform2 = os.platform();
65
+ if (platform2 === "win32")
66
+ return path.join(process.env.APPDATA || path.join(os.homedir(), "AppData/Roaming"), "Code/Cache");
67
+ if (platform2 === "darwin") return path.join(os.homedir(), "Library/Caches/Code");
68
+ return path.join(os.homedir(), ".cache/Code");
69
+ }
70
+ var APP_DATA_DIR = getAppDataDir();
71
+ var USER_DIR = path.join(APP_DATA_DIR, "User");
72
+ var SETTINGS_PATH = path.join(USER_DIR, "settings.json");
73
+ var KEYBINDINGS_PATH = path.join(USER_DIR, "keybindings.json");
74
+ var SNIPPETS_DIR = path.join(USER_DIR, "snippets");
75
+ var WORKSPACE_STORAGE_DIR = path.join(USER_DIR, "workspaceStorage");
76
+ var GLOBAL_STORAGE_DIR = path.join(USER_DIR, "globalStorage");
77
+ var HISTORY_DIR = path.join(USER_DIR, "History");
78
+ var SYNC_DIR = path.join(USER_DIR, "sync");
79
+ var EXTENSIONS_DIR = path.join(os.homedir(), ".vscode/extensions");
80
+ var CACHE_DIR = getCacheDir();
81
+ var CACHED_DATA_DIR = path.join(CACHE_DIR, "CachedData");
82
+ var CACHED_EXTENSIONS_DIR = path.join(CACHE_DIR, "CachedExtensions");
83
+ var CACHED_VSIXS_DIR = path.join(CACHE_DIR, "CachedExtensionVSIXs");
84
+ var LOGS_DIR = path.join(APP_DATA_DIR, "logs");
85
+ var DATABASE_PATH = path.join(APP_DATA_DIR, "state.vscdb");
86
+ var MACHINE_ID_PATH = path.join(APP_DATA_DIR, "machineid");
87
+ function fileUriToPath(uri) {
88
+ if (!uri.startsWith("file:///")) return uri;
89
+ return decodeURIComponent(uri.slice(8));
90
+ }
91
+ async function listWorkspaceProjects() {
92
+ const entries = [];
93
+ let dirEntries;
94
+ try {
95
+ dirEntries = await import_fs_extra.default.readdir(WORKSPACE_STORAGE_DIR);
96
+ } catch {
97
+ return entries;
98
+ }
99
+ for (const storageId of dirEntries) {
100
+ const wsPath = path.join(WORKSPACE_STORAGE_DIR, storageId, "workspace.json");
101
+ try {
102
+ const content = await import_fs_extra.default.readFile(wsPath, "utf8");
103
+ const data = JSON.parse(content);
104
+ if (typeof data.folder === "string" && data.folder.length > 0) {
105
+ const storagePath = path.join(WORKSPACE_STORAGE_DIR, storageId);
106
+ const entry = { folder: fileUriToPath(data.folder), storageId, storagePath };
107
+ const copilotMemoryDir = path.join(storagePath, "GitHub.copilot-chat", "memory-tool", "memories");
108
+ if (await import_fs_extra.default.pathExists(copilotMemoryDir)) {
109
+ entry.copilotMemoryDir = copilotMemoryDir;
110
+ }
111
+ entries.push(entry);
112
+ }
113
+ } catch {
114
+ }
115
+ }
116
+ return entries;
117
+ }
118
+ // Annotate the CommonJS export names for ESM import in node:
119
+ 0 && (module.exports = {
120
+ APP_DATA_DIR,
121
+ CACHED_DATA_DIR,
122
+ CACHED_EXTENSIONS_DIR,
123
+ CACHED_VSIXS_DIR,
124
+ CACHE_DIR,
125
+ DATABASE_PATH,
126
+ EXTENSIONS_DIR,
127
+ GLOBAL_STORAGE_DIR,
128
+ HISTORY_DIR,
129
+ KEYBINDINGS_PATH,
130
+ LOGS_DIR,
131
+ MACHINE_ID_PATH,
132
+ SETTINGS_PATH,
133
+ SNIPPETS_DIR,
134
+ SYNC_DIR,
135
+ USER_DIR,
136
+ WORKSPACE_STORAGE_DIR,
137
+ listWorkspaceProjects
138
+ });
@@ -0,0 +1,51 @@
1
+ /** VS Code app data root directory (platform-specific). */
2
+ export declare const APP_DATA_DIR: string;
3
+ /** User configuration directory (`<APP_DATA_DIR>/User`). */
4
+ export declare const USER_DIR: string;
5
+ /** User settings file (`<USER_DIR>/settings.json`). */
6
+ export declare const SETTINGS_PATH: string;
7
+ /** User keybindings file (`<USER_DIR>/keybindings.json`). */
8
+ export declare const KEYBINDINGS_PATH: string;
9
+ /** User snippets directory (`<USER_DIR>/snippets`). */
10
+ export declare const SNIPPETS_DIR: string;
11
+ /** Workspace storage directory (`<USER_DIR>/workspaceStorage`). */
12
+ export declare const WORKSPACE_STORAGE_DIR: string;
13
+ /** Global storage directory (`<USER_DIR>/globalStorage`). */
14
+ export declare const GLOBAL_STORAGE_DIR: string;
15
+ /** History directory (`<USER_DIR>/History`). */
16
+ export declare const HISTORY_DIR: string;
17
+ /** Sync data directory (`<USER_DIR>/sync`). */
18
+ export declare const SYNC_DIR: string;
19
+ /** Global extensions directory (`~/.vscode/extensions`). */
20
+ export declare const EXTENSIONS_DIR: string;
21
+ /** VS Code cache root directory (platform-specific). */
22
+ export declare const CACHE_DIR: string;
23
+ /** Cached data directory (`<CACHE_DIR>/CachedData`). */
24
+ export declare const CACHED_DATA_DIR: string;
25
+ /** Cached extensions directory (`<CACHE_DIR>/CachedExtensions`). */
26
+ export declare const CACHED_EXTENSIONS_DIR: string;
27
+ /** Cached VSIX directory (`<CACHE_DIR>/CachedExtensionVSIXs`). */
28
+ export declare const CACHED_VSIXS_DIR: string;
29
+ /** Logs directory (`<APP_DATA_DIR>/logs`). */
30
+ export declare const LOGS_DIR: string;
31
+ /** Main VS Code state database (`<APP_DATA_DIR>/state.vscdb`). */
32
+ export declare const DATABASE_PATH: string;
33
+ /** Machine identifier file (`<APP_DATA_DIR>/machineid`). */
34
+ export declare const MACHINE_ID_PATH: string;
35
+ export interface WorkspaceEntry {
36
+ /** Absolute filesystem path to the workspace folder (decoded from the `file://` URI). */
37
+ folder: string;
38
+ /** The storage folder name (hash). */
39
+ storageId: string;
40
+ /** Full path to the storage directory (e.g. `.../workspaceStorage/<storageId>`). */
41
+ storagePath: string;
42
+ /** Full path to the Copilot memory tool directory, if it exists. */
43
+ copilotMemoryDir?: string;
44
+ }
45
+ /**
46
+ * Scan all subdirectories under `WORKSPACE_STORAGE_DIR` and read each
47
+ * `workspace.json` to collect workspace folder URIs.
48
+ *
49
+ * Subdirectories without a valid `workspace.json` are silently skipped.
50
+ */
51
+ export declare function listWorkspaceProjects(): Promise<WorkspaceEntry[]>;