@socketsecurity/lib 1.3.2 → 1.3.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 (337) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/abort.js +1 -60
  3. package/dist/abort.js.map +2 -2
  4. package/dist/agent.js +1 -289
  5. package/dist/agent.js.map +2 -2
  6. package/dist/ansi.js +1 -60
  7. package/dist/ansi.js.map +2 -2
  8. package/dist/argv/flags.js +1 -282
  9. package/dist/argv/flags.js.map +2 -2
  10. package/dist/argv/parse.js +1 -171
  11. package/dist/argv/parse.js.map +2 -2
  12. package/dist/arrays.js +1 -85
  13. package/dist/arrays.js.map +2 -2
  14. package/dist/bin.js +1 -402
  15. package/dist/bin.js.map +2 -2
  16. package/dist/cacache.js +1 -137
  17. package/dist/cacache.js.map +2 -2
  18. package/dist/cache-with-ttl.js +1 -223
  19. package/dist/cache-with-ttl.js.map +2 -2
  20. package/dist/constants/agents.js +1 -126
  21. package/dist/constants/agents.js.map +2 -2
  22. package/dist/constants/core.js +2 -57
  23. package/dist/constants/core.js.map +2 -2
  24. package/dist/constants/encoding.js +1 -48
  25. package/dist/constants/encoding.js.map +2 -2
  26. package/dist/constants/github.js +1 -30
  27. package/dist/constants/github.js.map +2 -2
  28. package/dist/constants/licenses.js +1 -66
  29. package/dist/constants/licenses.js.map +2 -2
  30. package/dist/constants/node.js +1 -171
  31. package/dist/constants/node.js.map +2 -2
  32. package/dist/constants/packages.js +1 -128
  33. package/dist/constants/packages.js.map +2 -2
  34. package/dist/constants/paths.js +1 -150
  35. package/dist/constants/paths.js.map +2 -2
  36. package/dist/constants/platform.js +1 -41
  37. package/dist/constants/platform.js.map +2 -2
  38. package/dist/constants/process.js +1 -52
  39. package/dist/constants/process.js.map +2 -2
  40. package/dist/constants/socket.js +1 -81
  41. package/dist/constants/socket.js.map +2 -2
  42. package/dist/constants/testing.js +1 -36
  43. package/dist/constants/testing.js.map +2 -2
  44. package/dist/constants/time.js +1 -39
  45. package/dist/constants/time.js.map +2 -2
  46. package/dist/constants/typescript.js +1 -54
  47. package/dist/constants/typescript.js.map +2 -2
  48. package/dist/cover/code.js +1 -135
  49. package/dist/cover/code.js.map +2 -2
  50. package/dist/cover/formatters.js +11 -101
  51. package/dist/cover/formatters.js.map +2 -2
  52. package/dist/cover/type.js +1 -63
  53. package/dist/cover/type.js.map +2 -2
  54. package/dist/cover/types.js +1 -15
  55. package/dist/cover/types.js.map +2 -2
  56. package/dist/debug.js +2 -343
  57. package/dist/debug.js.map +2 -2
  58. package/dist/dlx-binary.js +1 -259
  59. package/dist/dlx-binary.js.map +2 -2
  60. package/dist/dlx-package.js +1 -149
  61. package/dist/dlx-package.js.map +2 -2
  62. package/dist/dlx.js +1 -166
  63. package/dist/dlx.js.map +2 -2
  64. package/dist/download-lock.js +1 -137
  65. package/dist/download-lock.js.map +2 -2
  66. package/dist/effects/pulse-frames.js +1 -64
  67. package/dist/effects/pulse-frames.js.map +2 -2
  68. package/dist/effects/text-shimmer.js +1 -174
  69. package/dist/effects/text-shimmer.js.map +2 -2
  70. package/dist/effects/types.js +1 -15
  71. package/dist/effects/types.js.map +2 -2
  72. package/dist/effects/ultra.js +1 -61
  73. package/dist/effects/ultra.js.map +2 -2
  74. package/dist/env/appdata.js +1 -28
  75. package/dist/env/appdata.js.map +2 -2
  76. package/dist/env/ci.js +1 -29
  77. package/dist/env/ci.js.map +2 -2
  78. package/dist/env/comspec.js +1 -28
  79. package/dist/env/comspec.js.map +2 -2
  80. package/dist/env/debug.js +1 -28
  81. package/dist/env/debug.js.map +2 -2
  82. package/dist/env/getters.js +1 -281
  83. package/dist/env/getters.js.map +2 -2
  84. package/dist/env/github-api-url.js +1 -28
  85. package/dist/env/github-api-url.js.map +2 -2
  86. package/dist/env/github-base-ref.js +1 -28
  87. package/dist/env/github-base-ref.js.map +2 -2
  88. package/dist/env/github-ref-name.js +1 -28
  89. package/dist/env/github-ref-name.js.map +2 -2
  90. package/dist/env/github-ref-type.js +1 -28
  91. package/dist/env/github-ref-type.js.map +2 -2
  92. package/dist/env/github-repository.js +1 -28
  93. package/dist/env/github-repository.js.map +2 -2
  94. package/dist/env/github-server-url.js +1 -28
  95. package/dist/env/github-server-url.js.map +2 -2
  96. package/dist/env/github-token.js +1 -28
  97. package/dist/env/github-token.js.map +2 -2
  98. package/dist/env/helpers.js +1 -47
  99. package/dist/env/helpers.js.map +2 -2
  100. package/dist/env/home.js +1 -28
  101. package/dist/env/home.js.map +2 -2
  102. package/dist/env/jest-worker-id.js +1 -28
  103. package/dist/env/jest-worker-id.js.map +2 -2
  104. package/dist/env/lang.js +1 -28
  105. package/dist/env/lang.js.map +2 -2
  106. package/dist/env/lc-all.js +1 -28
  107. package/dist/env/lc-all.js.map +2 -2
  108. package/dist/env/lc-messages.js +1 -28
  109. package/dist/env/lc-messages.js.map +2 -2
  110. package/dist/env/localappdata.js +1 -28
  111. package/dist/env/localappdata.js.map +2 -2
  112. package/dist/env/node-auth-token.js +1 -28
  113. package/dist/env/node-auth-token.js.map +2 -2
  114. package/dist/env/node-env.js +1 -28
  115. package/dist/env/node-env.js.map +2 -2
  116. package/dist/env/npm-config-registry.js +1 -28
  117. package/dist/env/npm-config-registry.js.map +2 -2
  118. package/dist/env/npm-config-user-agent.js +1 -28
  119. package/dist/env/npm-config-user-agent.js.map +2 -2
  120. package/dist/env/npm-lifecycle-event.js +1 -28
  121. package/dist/env/npm-lifecycle-event.js.map +2 -2
  122. package/dist/env/npm-registry.js +1 -28
  123. package/dist/env/npm-registry.js.map +2 -2
  124. package/dist/env/npm-token.js +1 -28
  125. package/dist/env/npm-token.js.map +2 -2
  126. package/dist/env/path.js +1 -28
  127. package/dist/env/path.js.map +2 -2
  128. package/dist/env/pre-commit.js +1 -29
  129. package/dist/env/pre-commit.js.map +2 -2
  130. package/dist/env/shell.js +1 -28
  131. package/dist/env/shell.js.map +2 -2
  132. package/dist/env/socket-accept-risks.js +1 -29
  133. package/dist/env/socket-accept-risks.js.map +2 -2
  134. package/dist/env/socket-api-base-url.js +1 -28
  135. package/dist/env/socket-api-base-url.js.map +2 -2
  136. package/dist/env/socket-api-proxy.js +1 -28
  137. package/dist/env/socket-api-proxy.js.map +2 -2
  138. package/dist/env/socket-api-timeout.js +1 -29
  139. package/dist/env/socket-api-timeout.js.map +2 -2
  140. package/dist/env/socket-api-token.js +1 -28
  141. package/dist/env/socket-api-token.js.map +2 -2
  142. package/dist/env/socket-cacache-dir.js +1 -28
  143. package/dist/env/socket-cacache-dir.js.map +2 -2
  144. package/dist/env/socket-cli-accept-risks.js +1 -31
  145. package/dist/env/socket-cli-accept-risks.js.map +2 -2
  146. package/dist/env/socket-cli-api-base-url.js +1 -28
  147. package/dist/env/socket-cli-api-base-url.js.map +2 -2
  148. package/dist/env/socket-cli-api-proxy.js +1 -28
  149. package/dist/env/socket-cli-api-proxy.js.map +2 -2
  150. package/dist/env/socket-cli-api-timeout.js +1 -29
  151. package/dist/env/socket-cli-api-timeout.js.map +2 -2
  152. package/dist/env/socket-cli-api-token.js +1 -28
  153. package/dist/env/socket-cli-api-token.js.map +2 -2
  154. package/dist/env/socket-cli-config.js +1 -28
  155. package/dist/env/socket-cli-config.js.map +2 -2
  156. package/dist/env/socket-cli-fix.js +1 -28
  157. package/dist/env/socket-cli-fix.js.map +2 -2
  158. package/dist/env/socket-cli-no-api-token.js +1 -31
  159. package/dist/env/socket-cli-no-api-token.js.map +2 -2
  160. package/dist/env/socket-cli-optimize.js +1 -29
  161. package/dist/env/socket-cli-optimize.js.map +2 -2
  162. package/dist/env/socket-cli-org-slug.js +1 -28
  163. package/dist/env/socket-cli-org-slug.js.map +2 -2
  164. package/dist/env/socket-cli-shadow-accept-risks.js +1 -31
  165. package/dist/env/socket-cli-shadow-accept-risks.js.map +2 -2
  166. package/dist/env/socket-cli-shadow-api-token.js +1 -28
  167. package/dist/env/socket-cli-shadow-api-token.js.map +2 -2
  168. package/dist/env/socket-cli-shadow-bin.js +1 -28
  169. package/dist/env/socket-cli-shadow-bin.js.map +2 -2
  170. package/dist/env/socket-cli-shadow-progress.js +1 -31
  171. package/dist/env/socket-cli-shadow-progress.js.map +2 -2
  172. package/dist/env/socket-cli-shadow-silent.js +1 -31
  173. package/dist/env/socket-cli-shadow-silent.js.map +2 -2
  174. package/dist/env/socket-cli-view-all-risks.js +1 -31
  175. package/dist/env/socket-cli-view-all-risks.js.map +2 -2
  176. package/dist/env/socket-config.js +1 -28
  177. package/dist/env/socket-config.js.map +2 -2
  178. package/dist/env/socket-debug.js +1 -28
  179. package/dist/env/socket-debug.js.map +2 -2
  180. package/dist/env/socket-home.js +1 -28
  181. package/dist/env/socket-home.js.map +2 -2
  182. package/dist/env/socket-no-api-token.js +1 -29
  183. package/dist/env/socket-no-api-token.js.map +2 -2
  184. package/dist/env/socket-npm-registry.js +1 -28
  185. package/dist/env/socket-npm-registry.js.map +2 -2
  186. package/dist/env/socket-org-slug.js +1 -28
  187. package/dist/env/socket-org-slug.js.map +2 -2
  188. package/dist/env/socket-registry-url.js +1 -28
  189. package/dist/env/socket-registry-url.js.map +2 -2
  190. package/dist/env/socket-view-all-risks.js +1 -29
  191. package/dist/env/socket-view-all-risks.js.map +2 -2
  192. package/dist/env/temp.js +1 -28
  193. package/dist/env/temp.js.map +2 -2
  194. package/dist/env/term.js +1 -28
  195. package/dist/env/term.js.map +2 -2
  196. package/dist/env/tmp.js +1 -28
  197. package/dist/env/tmp.js.map +2 -2
  198. package/dist/env/tmpdir.js +1 -28
  199. package/dist/env/tmpdir.js.map +2 -2
  200. package/dist/env/userprofile.js +1 -28
  201. package/dist/env/userprofile.js.map +2 -2
  202. package/dist/env/vitest.js +1 -29
  203. package/dist/env/vitest.js.map +2 -2
  204. package/dist/env/xdg-cache-home.js +1 -28
  205. package/dist/env/xdg-cache-home.js.map +2 -2
  206. package/dist/env/xdg-config-home.js +1 -28
  207. package/dist/env/xdg-config-home.js.map +2 -2
  208. package/dist/env/xdg-data-home.js +1 -28
  209. package/dist/env/xdg-data-home.js.map +2 -2
  210. package/dist/env.js +1 -61
  211. package/dist/env.js.map +2 -2
  212. package/dist/fs.js +3 -626
  213. package/dist/fs.js.map +2 -2
  214. package/dist/functions.js +1 -68
  215. package/dist/functions.js.map +2 -2
  216. package/dist/git.js +2 -320
  217. package/dist/git.js.map +2 -2
  218. package/dist/github.js +1 -201
  219. package/dist/github.js.map +2 -2
  220. package/dist/globs.js +1 -152
  221. package/dist/globs.js.map +2 -2
  222. package/dist/http-request.js +1 -313
  223. package/dist/http-request.js.map +2 -2
  224. package/dist/index.js +1 -62
  225. package/dist/index.js.map +2 -2
  226. package/dist/ipc.js +1 -232
  227. package/dist/ipc.js.map +2 -2
  228. package/dist/json.js +1 -73
  229. package/dist/json.js.map +2 -2
  230. package/dist/logger.js +1 -1254
  231. package/dist/logger.js.map +2 -2
  232. package/dist/maintained-node-versions.js +1 -35
  233. package/dist/maintained-node-versions.js.map +2 -2
  234. package/dist/memoization.js +1 -210
  235. package/dist/memoization.js.map +2 -2
  236. package/dist/objects.d.ts +0 -3
  237. package/dist/objects.js +1 -319
  238. package/dist/objects.js.map +3 -3
  239. package/dist/packages/editable.js +9 -356
  240. package/dist/packages/editable.js.map +2 -2
  241. package/dist/packages/exports.js +1 -162
  242. package/dist/packages/exports.js.map +2 -2
  243. package/dist/packages/isolation.js +1 -195
  244. package/dist/packages/isolation.js.map +2 -2
  245. package/dist/packages/licenses.js +1 -214
  246. package/dist/packages/licenses.js.map +2 -2
  247. package/dist/packages/manifest.js +1 -190
  248. package/dist/packages/manifest.js.map +2 -2
  249. package/dist/packages/normalize.js +1 -120
  250. package/dist/packages/normalize.js.map +2 -2
  251. package/dist/packages/operations.js +1 -304
  252. package/dist/packages/operations.js.map +2 -2
  253. package/dist/packages/paths.js +1 -53
  254. package/dist/packages/paths.js.map +2 -2
  255. package/dist/packages/provenance.js +1 -178
  256. package/dist/packages/provenance.js.map +2 -2
  257. package/dist/packages/registry.js +1 -28
  258. package/dist/packages/registry.js.map +2 -2
  259. package/dist/packages/specs.js +1 -83
  260. package/dist/packages/specs.js.map +2 -2
  261. package/dist/packages/validation.js +1 -51
  262. package/dist/packages/validation.js.map +2 -2
  263. package/dist/packages.js +1 -129
  264. package/dist/packages.js.map +2 -2
  265. package/dist/path.js +1 -448
  266. package/dist/path.js.map +2 -2
  267. package/dist/paths.js +1 -143
  268. package/dist/paths.js.map +2 -2
  269. package/dist/performance.js +15 -216
  270. package/dist/performance.js.map +2 -2
  271. package/dist/promise-queue.js +1 -109
  272. package/dist/promise-queue.js.map +2 -2
  273. package/dist/promises.js +1 -269
  274. package/dist/promises.js.map +2 -2
  275. package/dist/prompts.js +1 -58
  276. package/dist/prompts.js.map +2 -2
  277. package/dist/regexps.js +1 -30
  278. package/dist/regexps.js.map +2 -2
  279. package/dist/sea.js +1 -44
  280. package/dist/sea.js.map +2 -2
  281. package/dist/shadow.js +1 -58
  282. package/dist/shadow.js.map +2 -2
  283. package/dist/signal-exit.js +1 -248
  284. package/dist/signal-exit.js.map +2 -2
  285. package/dist/sorts.js +1 -94
  286. package/dist/sorts.js.map +2 -2
  287. package/dist/spawn.js +1 -199
  288. package/dist/spawn.js.map +2 -2
  289. package/dist/spinner.js +1 -865
  290. package/dist/spinner.js.map +2 -2
  291. package/dist/ssri.js +1 -71
  292. package/dist/ssri.js.map +2 -2
  293. package/dist/stdio/clear.js +1 -82
  294. package/dist/stdio/clear.js.map +2 -2
  295. package/dist/stdio/divider.js +3 -89
  296. package/dist/stdio/divider.js.map +2 -2
  297. package/dist/stdio/footer.js +2 -94
  298. package/dist/stdio/footer.js.map +2 -2
  299. package/dist/stdio/header.js +2 -100
  300. package/dist/stdio/header.js.map +2 -2
  301. package/dist/stdio/mask.js +5 -206
  302. package/dist/stdio/mask.js.map +2 -2
  303. package/dist/stdio/progress.js +2 -209
  304. package/dist/stdio/progress.js.map +2 -2
  305. package/dist/stdio/prompts.js +1 -88
  306. package/dist/stdio/prompts.js.map +2 -2
  307. package/dist/stdio/stderr.js +2 -89
  308. package/dist/stdio/stderr.js.map +2 -2
  309. package/dist/stdio/stdout.js +2 -103
  310. package/dist/stdio/stdout.js.map +2 -2
  311. package/dist/streams.js +1 -78
  312. package/dist/streams.js.map +2 -2
  313. package/dist/strings.js +3 -251
  314. package/dist/strings.js.map +2 -2
  315. package/dist/suppress-warnings.js +1 -98
  316. package/dist/suppress-warnings.js.map +2 -2
  317. package/dist/tables.js +3 -128
  318. package/dist/tables.js.map +2 -2
  319. package/dist/temporary-executor.js +1 -53
  320. package/dist/temporary-executor.js.map +2 -2
  321. package/dist/types.js +1 -72
  322. package/dist/types.js.map +2 -2
  323. package/dist/url.js +1 -142
  324. package/dist/url.js.map +2 -2
  325. package/dist/utils/get-ipc.js +1 -58
  326. package/dist/utils/get-ipc.js.map +2 -2
  327. package/dist/validation/json-parser.js +1 -127
  328. package/dist/validation/json-parser.js.map +2 -2
  329. package/dist/validation/types.js +1 -15
  330. package/dist/validation/types.js.map +2 -2
  331. package/dist/versions.js +1 -153
  332. package/dist/versions.js.map +2 -2
  333. package/dist/words.js +1 -50
  334. package/dist/words.js.map +2 -2
  335. package/dist/zod.js +1 -27
  336. package/dist/zod.js.map +2 -2
  337. package/package.json +1 -1
package/dist/debug.js.map CHANGED
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/debug.ts"],
4
4
  "sourcesContent": ["/**\n * @fileoverview Debug logging utilities with lazy loading and environment-based control.\n * Provides Socket CLI specific debug functionality and logging formatters.\n */\n\nimport { getSpinner } from '#constants/process'\nimport { DEBUG } from '#env/debug'\nimport { SOCKET_DEBUG } from '#env/socket-debug'\nimport isUnicodeSupported from './external/@socketregistry/is-unicode-supported'\nimport debugJs from './external/debug'\n\nimport { logger } from './logger'\nimport { hasOwn } from './objects'\nimport { applyLinePrefix } from './strings'\n\n// IMPORTANT: Do not use destructuring here - use direct assignment instead.\n// tsgo has a bug that incorrectly transpiles destructured exports, resulting in\n// `exports.SomeName = void 0;` which causes runtime errors.\n// See: https://github.com/SocketDev/socket-packageurl-js/issues/3\nconst ReflectApply = Reflect.apply\n\n// Type definitions\ninterface DebugOptions {\n namespaces?: string\n spinner?: { isSpinning: boolean; stop(): void; start(): void }\n [key: string]: unknown\n}\n\ntype NamespacesOrOptions = string | DebugOptions\n\ninterface InspectOptions {\n depth?: number | null\n colors?: boolean\n [key: string]: unknown\n}\n\nexport type { DebugOptions, NamespacesOrOptions, InspectOptions }\n\nconst debugByNamespace = new Map()\n/**\n * Get or create a debug instance for a namespace.\n * @private\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getDebugJsInstance(namespace: string) {\n let inst = debugByNamespace.get(namespace)\n if (inst) {\n return inst\n }\n if (\n !DEBUG &&\n SOCKET_DEBUG &&\n (namespace === 'error' || namespace === 'notice')\n ) {\n debugJs.enable(namespace)\n }\n inst = debugJs(namespace)\n inst.log = customLog\n debugByNamespace.set(namespace, inst)\n return inst\n}\n\nlet _util: typeof import('util') | undefined\n/**\n * Lazily load the util module.\n * @private\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getUtil() {\n if (_util === undefined) {\n // Use non-'node:' prefixed require to avoid Webpack errors.\n\n _util = /*@__PURE__*/ require('node:util')\n }\n return _util as typeof import('util')\n}\n\n/**\n * Extract caller information from the stack trace.\n * @private\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getCallerInfo(stackOffset: number = 3): string {\n let name = ''\n const captureStackTrace = Error.captureStackTrace\n if (typeof captureStackTrace === 'function') {\n const obj: { stack?: unknown } = {}\n captureStackTrace(obj, getCallerInfo)\n const stack = obj.stack\n if (typeof stack === 'string') {\n let lineCount = 0\n let lineStart = 0\n for (let i = 0, { length } = stack; i < length; i += 1) {\n if (stack[i] === '\\n') {\n lineCount += 1\n if (lineCount < stackOffset) {\n // Store the start index of the next line.\n lineStart = i + 1\n } else {\n // Extract the full line and trim it.\n const line = stack.slice(lineStart, i).trimStart()\n // Match the function name portion (e.g., \"async runFix\").\n const match = /(?<=^at\\s+).*?(?=\\s+\\(|$)/.exec(line)?.[0]\n if (match) {\n name = match\n // Strip known V8 invocation prefixes to get the name.\n .replace(/^(?:async|bound|get|new|set)\\s+/, '')\n if (name.startsWith('Object.')) {\n // Strip leading 'Object.' if not an own property of Object.\n const afterDot = name.slice(7 /*'Object.'.length*/)\n if (!hasOwn(Object, afterDot)) {\n name = afterDot\n }\n }\n }\n break\n }\n }\n }\n }\n }\n return name\n}\n\n/**\n * Custom log function for debug output.\n * @private\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction customLog(...args: unknown[]) {\n const util = getUtil()\n const inspectOpts = debugJs.inspectOpts\n ? {\n ...debugJs.inspectOpts,\n showHidden:\n debugJs.inspectOpts.showHidden === null\n ? undefined\n : debugJs.inspectOpts.showHidden,\n depth:\n debugJs.inspectOpts.depth === null ||\n typeof debugJs.inspectOpts.depth === 'boolean'\n ? undefined\n : debugJs.inspectOpts.depth,\n }\n : {}\n ReflectApply(logger.info, logger, [\n util.formatWithOptions(inspectOpts, ...args),\n ])\n}\n\n/**\n * Extract options from namespaces parameter.\n * @private\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction extractOptions(namespaces: NamespacesOrOptions): DebugOptions {\n return namespaces !== null && typeof namespaces === 'object'\n ? ({ __proto__: null, ...namespaces } as DebugOptions)\n : ({ __proto__: null, namespaces } as DebugOptions)\n}\n\n/**\n * Check if debug is enabled for given namespaces.\n * @private\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction isEnabled(namespaces: string | undefined) {\n // Check if debugging is enabled at all\n if (!SOCKET_DEBUG) {\n return false\n }\n if (typeof namespaces !== 'string' || !namespaces || namespaces === '*') {\n return true\n }\n // Namespace splitting logic is based the 'debug' package implementation:\n // https://github.com/debug-js/debug/blob/4.4.1/src/common.js#L169-L173.\n const split = namespaces\n .trim()\n .replace(/\\s+/g, ',')\n .split(',')\n .filter(Boolean)\n const names = []\n const skips = []\n for (const ns of split) {\n if (ns.startsWith('-')) {\n skips.push(ns.slice(1))\n } else {\n names.push(ns)\n }\n }\n if (names.length && !names.some(ns => getDebugJsInstance(ns).enabled)) {\n return false\n }\n return skips.every(ns => !getDebugJsInstance(ns).enabled)\n}\n\n/**\n * Debug output for object inspection with caller info.\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction debugDirNs(\n namespacesOrOpts: NamespacesOrOptions,\n obj: unknown,\n inspectOpts?: InspectOptions | undefined,\n) {\n const options = extractOptions(namespacesOrOpts)\n const { namespaces } = options\n if (!isEnabled(namespaces as string)) {\n return\n }\n // Get caller info with stack offset of 4 (caller -> debugDirNs -> getCallerInfo).\n const callerName = getCallerInfo(4) || 'anonymous'\n\n if (pointingTriangle === undefined) {\n const supported = isUnicodeSupported()\n pointingTriangle = supported ? '\u25B8' : '>'\n }\n\n let opts: InspectOptions | undefined = inspectOpts\n if (opts === undefined) {\n const debugOpts = debugJs.inspectOpts\n if (debugOpts) {\n opts = {\n ...debugOpts,\n showHidden:\n debugOpts.showHidden === null ? undefined : debugOpts.showHidden,\n depth:\n debugOpts.depth === null || typeof debugOpts.depth === 'boolean'\n ? null\n : debugOpts.depth,\n } as InspectOptions\n }\n }\n const spinnerInstance = options.spinner || getSpinner()\n const wasSpinning = spinnerInstance?.isSpinning\n spinnerInstance?.stop()\n logger.info(`[DEBUG] ${callerName} ${pointingTriangle} object inspection:`)\n logger.dir(obj, inspectOpts)\n if (wasSpinning) {\n spinnerInstance?.start()\n }\n}\n\nlet pointingTriangle: string | undefined\n/**\n * Debug output with caller info.\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction debugNs(namespacesOrOpts: NamespacesOrOptions, ...args: unknown[]) {\n const options = extractOptions(namespacesOrOpts)\n const { namespaces } = options\n if (!isEnabled(namespaces as string)) {\n return\n }\n // Get caller info with stack offset of 4 (caller -> debugNs -> getCallerInfo).\n const name = getCallerInfo(4) || 'anonymous'\n if (pointingTriangle === undefined) {\n const supported = isUnicodeSupported()\n pointingTriangle = supported ? '\u25B8' : '>'\n }\n const text = args.at(0)\n const logArgs =\n typeof text === 'string'\n ? [\n applyLinePrefix(\n `${name ? `${name} ${pointingTriangle} ` : ''}${text}`,\n { prefix: '[DEBUG] ' },\n ),\n ...args.slice(1),\n ]\n : args\n const spinnerInstance = options.spinner || getSpinner()\n const wasSpinning = spinnerInstance?.isSpinning\n spinnerInstance?.stop()\n ReflectApply(logger.info, logger, logArgs)\n if (wasSpinning) {\n spinnerInstance?.start()\n }\n}\n\n/**\n * Debug logging function with caller info.\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction debugLogNs(namespacesOrOpts: NamespacesOrOptions, ...args: unknown[]) {\n const options = extractOptions(namespacesOrOpts)\n const { namespaces } = options\n if (!isEnabled(namespaces as string)) {\n return\n }\n // Get caller info with stack offset of 4 (caller -> debugLogNs -> getCallerInfo).\n const callerName = getCallerInfo(4) || 'anonymous'\n\n if (pointingTriangle === undefined) {\n const supported = isUnicodeSupported()\n pointingTriangle = supported ? '\u25B8' : '>'\n }\n\n const text = args.at(0)\n const logArgs =\n typeof text === 'string'\n ? [\n applyLinePrefix(\n `${callerName ? `${callerName} ${pointingTriangle} ` : ''}${text}`,\n { prefix: '[DEBUG] ' },\n ),\n ...args.slice(1),\n ]\n : [`[DEBUG] ${callerName} ${pointingTriangle}`, ...args]\n\n const spinnerInstance = options.spinner || getSpinner()\n const wasSpinning = spinnerInstance?.isSpinning\n spinnerInstance?.stop()\n ReflectApply(logger.info, logger, logArgs)\n if (wasSpinning) {\n spinnerInstance?.start()\n }\n}\n\n/**\n * Debug output for cache operations with caller info.\n * First argument is the operation type (hit/miss/set/clear).\n * Second argument is the cache key or message.\n * Optional third argument is metadata object.\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction debugCacheNs(\n namespacesOrOpts: NamespacesOrOptions,\n operation: string,\n key: string,\n meta?: unknown | undefined,\n) {\n const options = extractOptions(namespacesOrOpts)\n const { namespaces } = options\n if (!isEnabled(namespaces as string)) {\n return\n }\n // Get caller info with stack offset of 4 (caller -> debugCacheNs -> getCallerInfo).\n const callerName = getCallerInfo(4) || 'cache'\n\n if (pointingTriangle === undefined) {\n const supported = isUnicodeSupported()\n pointingTriangle = supported ? '\u25B8' : '>'\n }\n\n const prefix = `[CACHE] ${callerName} ${pointingTriangle} ${operation}: ${key}`\n const logArgs = meta !== undefined ? [prefix, meta] : [prefix]\n\n const spinnerInstance = options.spinner || getSpinner()\n const wasSpinning = spinnerInstance?.isSpinning\n spinnerInstance?.stop()\n ReflectApply(logger.info, logger, logArgs)\n if (wasSpinning) {\n spinnerInstance?.start()\n }\n}\n\n/**\n * Cache debug function with caller info.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function debugCache(\n operation: string,\n key: string,\n meta?: unknown | undefined,\n): void {\n if (!SOCKET_DEBUG) {\n return\n }\n // Get caller info with stack offset of 3 (caller -> debugCache -> getCallerInfo).\n const callerName = getCallerInfo(3) || 'cache'\n\n if (pointingTriangle === undefined) {\n const supported = isUnicodeSupported()\n pointingTriangle = supported ? '\u25B8' : '>'\n }\n\n const prefix = `[CACHE] ${callerName} ${pointingTriangle} ${operation}: ${key}`\n const args = meta !== undefined ? [prefix, meta] : [prefix]\n console.log(...args)\n}\n\n/**\n * Check if debug mode is enabled.\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction isDebugNs(namespaces: string | undefined): boolean {\n return !!SOCKET_DEBUG && isEnabled(namespaces)\n}\n\n/**\n * Debug output with caller info (wrapper for debugNs with default namespace).\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction debug(...args: unknown[]): void {\n debugNs('*', ...args)\n}\n\n/**\n * Debug output for object inspection (wrapper for debugDirNs with default namespace).\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction debugDir(\n obj: unknown,\n inspectOpts?: InspectOptions | undefined,\n): void {\n debugDirNs('*', obj, inspectOpts)\n}\n\n/**\n * Debug logging function (wrapper for debugLogNs with default namespace).\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction debugLog(...args: unknown[]): void {\n debugLogNs('*', ...args)\n}\n\n/**\n * Check if debug mode is enabled.\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction isDebug(): boolean {\n return !!SOCKET_DEBUG\n}\n\n/**\n * Create a Node.js util.debuglog compatible function.\n * Returns a function that conditionally writes debug messages to stderr.\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction debuglog(section: string) {\n const util = getUtil()\n return util.debuglog(section)\n}\n\n/**\n * Create timing functions for measuring code execution time.\n * Returns an object with start() and end() methods, plus a callable function.\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction debugtime(label: string) {\n const util = getUtil()\n // Node.js util doesn't have debugtime - create a custom implementation\n let startTime: number | undefined\n const impl = () => {\n if (startTime === undefined) {\n startTime = Date.now()\n } else {\n const duration = Date.now() - startTime\n util.debuglog('time')(`${label}: ${duration}ms`)\n startTime = undefined\n }\n }\n impl.start = () => {\n startTime = Date.now()\n }\n impl.end = () => {\n if (startTime !== undefined) {\n const duration = Date.now() - startTime\n util.debuglog('time')(`${label}: ${duration}ms`)\n startTime = undefined\n }\n }\n return impl\n}\n\n// Export main debug functions with caller info.\nexport { debug }\n// debugCache is already exported directly above\nexport { debugCacheNs }\nexport { debugDir }\nexport { debugDirNs }\nexport { debugLog }\nexport { debuglog }\nexport { debugLogNs }\nexport { debugNs }\nexport { debugtime }\nexport { isDebug }\nexport { isDebugNs }\n"],
5
- "mappings": "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",
6
- "names": ["import_debug", "debugJs", "isUnicodeSupported"]
5
+ "mappings": "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",
6
+ "names": ["debug_exports", "__export", "debug", "debugCache", "debugCacheNs", "debugDir", "debugDirNs", "debugLog", "debugLogNs", "debugNs", "debuglog", "debugtime", "isDebug", "isDebugNs", "__toCommonJS", "import_process", "import_debug", "import_socket_debug", "import_is_unicode_supported", "import_logger", "import_objects", "import_strings", "ReflectApply", "debugByNamespace", "getDebugJsInstance", "namespace", "inst", "debugJs", "customLog", "_util", "getUtil", "getCallerInfo", "stackOffset", "name", "captureStackTrace", "obj", "stack", "lineCount", "lineStart", "i", "length", "line", "match", "afterDot", "args", "util", "inspectOpts", "extractOptions", "namespaces", "isEnabled", "split", "names", "skips", "ns", "namespacesOrOpts", "options", "callerName", "pointingTriangle", "isUnicodeSupported", "opts", "debugOpts", "spinnerInstance", "wasSpinning", "text", "logArgs", "operation", "key", "meta", "prefix", "section", "label", "startTime", "impl", "duration"]
7
7
  }
@@ -1,261 +1,3 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var dlx_binary_exports = {};
30
- __export(dlx_binary_exports, {
31
- cleanDlxCache: () => cleanDlxCache,
32
- dlxBinary: () => dlxBinary,
33
- getDlxCachePath: () => getDlxCachePath,
34
- listDlxCache: () => listDlxCache
35
- });
36
- module.exports = __toCommonJS(dlx_binary_exports);
37
- var import_node_crypto = require("node:crypto");
38
- var import_node_fs = require("node:fs");
39
- var import_node_os = __toESM(require("node:os"));
40
- var import_node_path = __toESM(require("node:path"));
41
- var import_platform = require("#constants/platform");
42
- var import_fs = require("./fs");
43
- var import_http_request = require("./http-request");
44
- var import_objects = require("./objects");
45
- var import_path = require("./path");
46
- var import_paths = require("./paths");
47
- var import_spawn = require("./spawn");
48
- function generateCacheKey(url) {
49
- return (0, import_node_crypto.createHash)("sha256").update(url).digest("hex");
50
- }
51
- function getMetadataPath(cacheEntryPath) {
52
- return import_node_path.default.join(cacheEntryPath, ".dlx-metadata.json");
53
- }
54
- async function isCacheValid(cacheEntryPath, cacheTtl) {
55
- try {
56
- const metaPath = getMetadataPath(cacheEntryPath);
57
- if (!(0, import_node_fs.existsSync)(metaPath)) {
58
- return false;
59
- }
60
- const metadata = await (0, import_fs.readJson)(metaPath, { throws: false });
61
- if (!(0, import_objects.isObjectObject)(metadata)) {
62
- return false;
63
- }
64
- const now = Date.now();
65
- const age = now - (metadata["timestamp"] || 0);
66
- return age < cacheTtl;
67
- } catch {
68
- return false;
69
- }
70
- }
71
- async function downloadBinary(url, destPath, checksum) {
72
- const response = await (0, import_http_request.httpRequest)(url);
73
- if (!response.ok) {
74
- throw new Error(
75
- `Failed to download binary: ${response.status} ${response.statusText}`
76
- );
77
- }
78
- const tempPath = `${destPath}.download`;
79
- const hasher = (0, import_node_crypto.createHash)("sha256");
80
- try {
81
- await import_node_fs.promises.mkdir(import_node_path.default.dirname(destPath), { recursive: true });
82
- const buffer = response.body;
83
- hasher.update(buffer);
84
- const actualChecksum = hasher.digest("hex");
85
- if (checksum && actualChecksum !== checksum) {
86
- throw new Error(
87
- `Checksum mismatch: expected ${checksum}, got ${actualChecksum}`
88
- );
89
- }
90
- await import_node_fs.promises.writeFile(tempPath, buffer);
91
- if (!import_platform.WIN32) {
92
- await import_node_fs.promises.chmod(tempPath, 493);
93
- }
94
- await import_node_fs.promises.rename(tempPath, destPath);
95
- return actualChecksum;
96
- } catch (e) {
97
- try {
98
- await (0, import_fs.safeDelete)(tempPath);
99
- } catch {
100
- }
101
- throw e;
102
- }
103
- }
104
- async function writeMetadata(cacheEntryPath, url, checksum) {
105
- const metaPath = getMetadataPath(cacheEntryPath);
106
- const metadata = {
107
- arch: import_node_os.default.arch(),
108
- checksum,
109
- platform: import_node_os.default.platform(),
110
- timestamp: Date.now(),
111
- url,
112
- version: "1.0.0"
113
- };
114
- await import_node_fs.promises.writeFile(metaPath, JSON.stringify(metadata, null, 2));
115
- }
116
- async function cleanDlxCache(maxAge = (
117
- /*@__INLINE__*/
118
- require("./constants/time").DLX_BINARY_CACHE_TTL
119
- )) {
120
- const cacheDir = getDlxCachePath();
121
- if (!(0, import_node_fs.existsSync)(cacheDir)) {
122
- return 0;
123
- }
124
- let cleaned = 0;
125
- const now = Date.now();
126
- const entries = await import_node_fs.promises.readdir(cacheDir);
127
- for (const entry of entries) {
128
- const entryPath = import_node_path.default.join(cacheDir, entry);
129
- const metaPath = getMetadataPath(entryPath);
130
- try {
131
- if (!await (0, import_fs.isDir)(entryPath)) {
132
- continue;
133
- }
134
- const metadata = await (0, import_fs.readJson)(metaPath, { throws: false });
135
- if (!metadata || typeof metadata !== "object" || Array.isArray(metadata)) {
136
- continue;
137
- }
138
- const age = now - (metadata["timestamp"] || 0);
139
- if (age > maxAge) {
140
- await (0, import_fs.safeDelete)(entryPath, { force: true, recursive: true });
141
- cleaned += 1;
142
- }
143
- } catch {
144
- try {
145
- const contents = await import_node_fs.promises.readdir(entryPath);
146
- if (!contents.length) {
147
- await (0, import_fs.safeDelete)(entryPath);
148
- cleaned += 1;
149
- }
150
- } catch {
151
- }
152
- }
153
- }
154
- return cleaned;
155
- }
156
- async function dlxBinary(args, options, spawnExtra) {
157
- const {
158
- cacheTtl = (
159
- /*@__INLINE__*/
160
- require("./constants/time").DLX_BINARY_CACHE_TTL
161
- ),
162
- checksum,
163
- force = false,
164
- name,
165
- spawnOptions,
166
- url
167
- } = { __proto__: null, ...options };
168
- const cacheDir = getDlxCachePath();
169
- const cacheKey = generateCacheKey(url);
170
- const cacheEntryDir = import_node_path.default.join(cacheDir, cacheKey);
171
- const binaryName = name || `binary-${process.platform}-${import_node_os.default.arch()}`;
172
- const binaryPath = (0, import_path.normalizePath)(import_node_path.default.join(cacheEntryDir, binaryName));
173
- let downloaded = false;
174
- let computedChecksum = checksum;
175
- if (!force && (0, import_node_fs.existsSync)(cacheEntryDir) && await isCacheValid(cacheEntryDir, cacheTtl)) {
176
- try {
177
- const metaPath = getMetadataPath(cacheEntryDir);
178
- const metadata = await (0, import_fs.readJson)(metaPath, { throws: false });
179
- if (metadata && typeof metadata === "object" && !Array.isArray(metadata) && typeof metadata["checksum"] === "string") {
180
- computedChecksum = metadata["checksum"];
181
- } else {
182
- downloaded = true;
183
- }
184
- } catch {
185
- downloaded = true;
186
- }
187
- } else {
188
- downloaded = true;
189
- }
190
- if (downloaded) {
191
- await import_node_fs.promises.mkdir(cacheEntryDir, { recursive: true });
192
- computedChecksum = await downloadBinary(url, binaryPath, checksum);
193
- await writeMetadata(cacheEntryDir, url, computedChecksum || "");
194
- }
195
- const needsShell = import_platform.WIN32 && /\.(?:bat|cmd|ps1)$/i.test(binaryPath);
196
- const finalSpawnOptions = needsShell ? {
197
- ...spawnOptions,
198
- env: {
199
- ...spawnOptions?.env,
200
- PATH: `${cacheEntryDir}${import_node_path.default.delimiter}${process.env["PATH"] || ""}`
201
- },
202
- shell: true
203
- } : spawnOptions;
204
- const spawnPromise = (0, import_spawn.spawn)(binaryPath, args, finalSpawnOptions, spawnExtra);
205
- return {
206
- binaryPath,
207
- downloaded,
208
- spawnPromise
209
- };
210
- }
211
- function getDlxCachePath() {
212
- return (0, import_paths.getSocketDlxDir)();
213
- }
214
- async function listDlxCache() {
215
- const cacheDir = getDlxCachePath();
216
- if (!(0, import_node_fs.existsSync)(cacheDir)) {
217
- return [];
218
- }
219
- const results = [];
220
- const now = Date.now();
221
- const entries = await import_node_fs.promises.readdir(cacheDir);
222
- for (const entry of entries) {
223
- const entryPath = import_node_path.default.join(cacheDir, entry);
224
- try {
225
- if (!await (0, import_fs.isDir)(entryPath)) {
226
- continue;
227
- }
228
- const metaPath = getMetadataPath(entryPath);
229
- const metadata = await (0, import_fs.readJson)(metaPath, { throws: false });
230
- if (!metadata || typeof metadata !== "object" || Array.isArray(metadata)) {
231
- continue;
232
- }
233
- const files = await import_node_fs.promises.readdir(entryPath);
234
- const binaryFile = files.find((f) => !f.startsWith("."));
235
- if (binaryFile) {
236
- const binaryPath = import_node_path.default.join(entryPath, binaryFile);
237
- const binaryStats = await import_node_fs.promises.stat(binaryPath);
238
- const metaObj = metadata;
239
- results.push({
240
- age: now - (metaObj["timestamp"] || 0),
241
- arch: metaObj["arch"] || "unknown",
242
- checksum: metaObj["checksum"] || "",
243
- name: binaryFile,
244
- platform: metaObj["platform"] || "unknown",
245
- size: binaryStats.size,
246
- url: metaObj["url"] || ""
247
- });
248
- }
249
- } catch {
250
- }
251
- }
252
- return results;
253
- }
254
- // Annotate the CommonJS export names for ESM import in node:
255
- 0 && (module.exports = {
256
- cleanDlxCache,
257
- dlxBinary,
258
- getDlxCachePath,
259
- listDlxCache
260
- });
2
+ var H=Object.create;var x=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var z=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var q=(t,n)=>{for(var e in n)x(t,e,{get:n[e],enumerable:!0})},C=(t,n,e,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of z(n))!L.call(t,r)&&r!==e&&x(t,r,{get:()=>n[r],enumerable:!(a=N(n,r))||a.enumerable});return t};var O=(t,n,e)=>(e=t!=null?H(F(t)):{},C(n||!t||!t.__esModule?x(e,"default",{value:t,enumerable:!0}):e,t)),I=t=>C(x({},"__esModule",{value:!0}),t);var G={};q(G,{cleanDlxCache:()=>X,dlxBinary:()=>Y,getDlxCachePath:()=>P,listDlxCache:()=>V});module.exports=I(G);var j=require("node:crypto"),s=require("node:fs"),D=O(require("node:os")),l=O(require("node:path")),A=require("#constants/platform"),m=require("./fs"),R=require("./http-request"),S=require("./objects"),$=require("./path"),T=require("./paths"),_=require("./spawn");function J(t){return(0,j.createHash)("sha256").update(t).digest("hex")}function g(t){return l.default.join(t,".dlx-metadata.json")}async function K(t,n){try{const e=g(t);if(!(0,s.existsSync)(e))return!1;const a=await(0,m.readJson)(e,{throws:!1});return(0,S.isObjectObject)(a)?Date.now()-(a.timestamp||0)<n:!1}catch{return!1}}async function M(t,n,e){const a=await(0,R.httpRequest)(t);if(!a.ok)throw new Error(`Failed to download binary: ${a.status} ${a.statusText}`);const r=`${n}.download`,c=(0,j.createHash)("sha256");try{await s.promises.mkdir(l.default.dirname(n),{recursive:!0});const i=a.body;c.update(i);const o=c.digest("hex");if(e&&o!==e)throw new Error(`Checksum mismatch: expected ${e}, got ${o}`);return await s.promises.writeFile(r,i),A.WIN32||await s.promises.chmod(r,493),await s.promises.rename(r,n),o}catch(i){try{await(0,m.safeDelete)(r)}catch{}throw i}}async function W(t,n,e){const a=g(t),r={arch:D.default.arch(),checksum:e,platform:D.default.platform(),timestamp:Date.now(),url:n,version:"1.0.0"};await s.promises.writeFile(a,JSON.stringify(r,null,2))}async function X(t=require("./constants/time").DLX_BINARY_CACHE_TTL){const n=P();if(!(0,s.existsSync)(n))return 0;let e=0;const a=Date.now(),r=await s.promises.readdir(n);for(const c of r){const i=l.default.join(n,c),o=g(i);try{if(!await(0,m.isDir)(i))continue;const u=await(0,m.readJson)(o,{throws:!1});if(!u||typeof u!="object"||Array.isArray(u))continue;a-(u.timestamp||0)>t&&(await(0,m.safeDelete)(i,{force:!0,recursive:!0}),e+=1)}catch{try{(await s.promises.readdir(i)).length||(await(0,m.safeDelete)(i),e+=1)}catch{}}}return e}async function Y(t,n,e){const{cacheTtl:a=require("./constants/time").DLX_BINARY_CACHE_TTL,checksum:r,force:c=!1,name:i,spawnOptions:o,url:u}={__proto__:null,...n},h=P(),p=J(u),f=l.default.join(h,p),d=i||`binary-${process.platform}-${D.default.arch()}`,b=(0,$.normalizePath)(l.default.join(f,d));let w=!1,k=r;if(!c&&(0,s.existsSync)(f)&&await K(f,a))try{const E=g(f),y=await(0,m.readJson)(E,{throws:!1});y&&typeof y=="object"&&!Array.isArray(y)&&typeof y.checksum=="string"?k=y.checksum:w=!0}catch{w=!0}else w=!0;w&&(await s.promises.mkdir(f,{recursive:!0}),k=await M(u,b,r),await W(f,u,k||""));const B=A.WIN32&&/\.(?:bat|cmd|ps1)$/i.test(b)?{...o,env:{...o?.env,PATH:`${f}${l.default.delimiter}${process.env.PATH||""}`},shell:!0}:o,v=(0,_.spawn)(b,t,B,e);return{binaryPath:b,downloaded:w,spawnPromise:v}}function P(){return(0,T.getSocketDlxDir)()}async function V(){const t=P();if(!(0,s.existsSync)(t))return[];const n=[],e=Date.now(),a=await s.promises.readdir(t);for(const r of a){const c=l.default.join(t,r);try{if(!await(0,m.isDir)(c))continue;const i=g(c),o=await(0,m.readJson)(i,{throws:!1});if(!o||typeof o!="object"||Array.isArray(o))continue;const h=(await s.promises.readdir(c)).find(p=>!p.startsWith("."));if(h){const p=l.default.join(c,h),f=await s.promises.stat(p),d=o;n.push({age:e-(d.timestamp||0),arch:d.arch||"unknown",checksum:d.checksum||"",name:h,platform:d.platform||"unknown",size:f.size,url:d.url||""})}}catch{}}return n}0&&(module.exports={cleanDlxCache,dlxBinary,getDlxCachePath,listDlxCache});
261
3
  //# sourceMappingURL=dlx-binary.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/dlx-binary.ts"],
4
4
  "sourcesContent": ["/** @fileoverview DLX binary execution utilities for Socket ecosystem. */\n\nimport { createHash } from 'node:crypto'\nimport { existsSync, promises as fs } from 'node:fs'\nimport os from 'node:os'\nimport path from 'node:path'\n\nimport { WIN32 } from '#constants/platform'\n\nimport { isDir, readJson, safeDelete } from './fs'\nimport { httpRequest } from './http-request'\nimport { isObjectObject } from './objects'\nimport { normalizePath } from './path'\nimport { getSocketDlxDir } from './paths'\nimport type { SpawnExtra, SpawnOptions } from './spawn'\nimport { spawn } from './spawn'\n\nexport interface DlxBinaryOptions {\n /** URL to download the binary from. */\n url: string\n /** Optional name for the cached binary (defaults to URL hash). */\n name?: string | undefined\n /** Expected checksum (sha256) for verification. */\n checksum?: string | undefined\n /** Cache TTL in milliseconds (default: 7 days). */\n cacheTtl?: number | undefined\n /** Force re-download even if cached. */\n force?: boolean | undefined\n /** Additional spawn options. */\n spawnOptions?: SpawnOptions | undefined\n}\n\nexport interface DlxBinaryResult {\n /** Path to the cached binary. */\n binaryPath: string\n /** Whether the binary was newly downloaded. */\n downloaded: boolean\n /** The spawn promise for the running process. */\n spawnPromise: ReturnType<typeof spawn>\n}\n\n/**\n * Generate a cache directory name from URL, similar to pnpm/npx.\n * Uses SHA256 hash to create content-addressed storage.\n */\nfunction generateCacheKey(url: string): string {\n return createHash('sha256').update(url).digest('hex')\n}\n\n/**\n * Get metadata file path for a cached binary.\n */\nfunction getMetadataPath(cacheEntryPath: string): string {\n return path.join(cacheEntryPath, '.dlx-metadata.json')\n}\n\n/**\n * Check if a cached binary is still valid.\n */\nasync function isCacheValid(\n cacheEntryPath: string,\n cacheTtl: number,\n): Promise<boolean> {\n try {\n const metaPath = getMetadataPath(cacheEntryPath)\n if (!existsSync(metaPath)) {\n return false\n }\n\n const metadata = await readJson(metaPath, { throws: false })\n if (!isObjectObject(metadata)) {\n return false\n }\n const now = Date.now()\n const age =\n now -\n (((metadata as Record<string, unknown>)['timestamp'] as number) || 0)\n\n return age < cacheTtl\n } catch {\n return false\n }\n}\n\n/**\n * Download a file from a URL with integrity checking.\n */\nasync function downloadBinary(\n url: string,\n destPath: string,\n checksum?: string | undefined,\n): Promise<string> {\n const response = await httpRequest(url)\n if (!response.ok) {\n throw new Error(\n `Failed to download binary: ${response.status} ${response.statusText}`,\n )\n }\n\n // Create a temporary file first.\n const tempPath = `${destPath}.download`\n const hasher = createHash('sha256')\n\n try {\n // Ensure directory exists.\n await fs.mkdir(path.dirname(destPath), { recursive: true })\n\n // Get the response as a buffer and compute hash.\n const buffer = response.body\n\n // Compute hash.\n hasher.update(buffer)\n const actualChecksum = hasher.digest('hex')\n\n // Verify checksum if provided.\n if (checksum && actualChecksum !== checksum) {\n throw new Error(\n `Checksum mismatch: expected ${checksum}, got ${actualChecksum}`,\n )\n }\n\n // Write to temp file.\n await fs.writeFile(tempPath, buffer)\n\n // Make executable on POSIX systems.\n if (!WIN32) {\n await fs.chmod(tempPath, 0o755)\n }\n\n // Move temp file to final location.\n await fs.rename(tempPath, destPath)\n\n return actualChecksum\n } catch (e) {\n // Clean up temp file on error.\n try {\n await safeDelete(tempPath)\n } catch {\n // Ignore cleanup errors.\n }\n throw e\n }\n}\n\n/**\n * Write metadata for a cached binary.\n */\nasync function writeMetadata(\n cacheEntryPath: string,\n url: string,\n checksum: string,\n): Promise<void> {\n const metaPath = getMetadataPath(cacheEntryPath)\n const metadata = {\n arch: os.arch(),\n checksum,\n platform: os.platform(),\n timestamp: Date.now(),\n url,\n version: '1.0.0',\n }\n await fs.writeFile(metaPath, JSON.stringify(metadata, null, 2))\n}\n\n/**\n * Clean expired entries from the DLX cache.\n */\nexport async function cleanDlxCache(\n maxAge: number = /*@__INLINE__*/ require('../constants/time').DLX_BINARY_CACHE_TTL,\n): Promise<number> {\n const cacheDir = getDlxCachePath()\n\n if (!existsSync(cacheDir)) {\n return 0\n }\n\n let cleaned = 0\n const now = Date.now()\n const entries = await fs.readdir(cacheDir)\n\n for (const entry of entries) {\n const entryPath = path.join(cacheDir, entry)\n const metaPath = getMetadataPath(entryPath)\n\n try {\n // eslint-disable-next-line no-await-in-loop\n if (!(await isDir(entryPath))) {\n continue\n }\n\n // eslint-disable-next-line no-await-in-loop\n const metadata = await readJson(metaPath, { throws: false })\n if (\n !metadata ||\n typeof metadata !== 'object' ||\n Array.isArray(metadata)\n ) {\n continue\n }\n const age =\n now -\n (((metadata as Record<string, unknown>)['timestamp'] as number) || 0)\n\n if (age > maxAge) {\n // Remove entire cache entry directory.\n // eslint-disable-next-line no-await-in-loop\n await safeDelete(entryPath, { force: true, recursive: true })\n cleaned += 1\n }\n } catch {\n // If we can't read metadata, check if directory is empty or corrupted.\n try {\n // eslint-disable-next-line no-await-in-loop\n const contents = await fs.readdir(entryPath)\n if (!contents.length) {\n // Remove empty directory.\n // eslint-disable-next-line no-await-in-loop\n await safeDelete(entryPath)\n cleaned += 1\n }\n } catch {}\n }\n }\n\n return cleaned\n}\n\n/**\n * Download and execute a binary from a URL with caching.\n */\nexport async function dlxBinary(\n args: readonly string[] | string[],\n options?: DlxBinaryOptions | undefined,\n spawnExtra?: SpawnExtra | undefined,\n): Promise<DlxBinaryResult> {\n const {\n cacheTtl = /*@__INLINE__*/ require('../constants/time').DLX_BINARY_CACHE_TTL,\n checksum,\n force = false,\n name,\n spawnOptions,\n url,\n } = { __proto__: null, ...options } as DlxBinaryOptions\n\n // Generate cache paths similar to pnpm/npx structure.\n const cacheDir = getDlxCachePath()\n const cacheKey = generateCacheKey(url)\n const cacheEntryDir = path.join(cacheDir, cacheKey)\n const binaryName = name || `binary-${process.platform}-${os.arch()}`\n const binaryPath = normalizePath(path.join(cacheEntryDir, binaryName))\n\n let downloaded = false\n let computedChecksum = checksum\n\n // Check if we need to download.\n if (\n !force &&\n existsSync(cacheEntryDir) &&\n (await isCacheValid(cacheEntryDir, cacheTtl))\n ) {\n // Binary is cached and valid, read the checksum from metadata.\n try {\n const metaPath = getMetadataPath(cacheEntryDir)\n const metadata = await readJson(metaPath, { throws: false })\n if (\n metadata &&\n typeof metadata === 'object' &&\n !Array.isArray(metadata) &&\n typeof (metadata as Record<string, unknown>)['checksum'] === 'string'\n ) {\n computedChecksum = (metadata as Record<string, unknown>)[\n 'checksum'\n ] as string\n } else {\n // If metadata is invalid, re-download.\n downloaded = true\n }\n } catch {\n // If we can't read metadata, re-download.\n downloaded = true\n }\n } else {\n downloaded = true\n }\n\n if (downloaded) {\n // Ensure cache directory exists.\n await fs.mkdir(cacheEntryDir, { recursive: true })\n\n // Download the binary.\n computedChecksum = await downloadBinary(url, binaryPath, checksum)\n await writeMetadata(cacheEntryDir, url, computedChecksum || '')\n }\n\n // Execute the binary.\n // On Windows, script files (.bat, .cmd, .ps1) require shell: true because\n // they are not executable on their own and must be run through cmd.exe.\n // Note: .exe files are actual binaries and don't need shell mode.\n const needsShell = WIN32 && /\\.(?:bat|cmd|ps1)$/i.test(binaryPath)\n // Windows cmd.exe PATH resolution behavior:\n // When shell: true on Windows with .cmd/.bat/.ps1 files, spawn will automatically\n // strip the full path down to just the basename without extension (e.g.,\n // C:\\cache\\test.cmd becomes just \"test\"). Windows cmd.exe then searches for \"test\"\n // in directories listed in PATH, trying each extension from PATHEXT environment\n // variable (.COM, .EXE, .BAT, .CMD, etc.) until it finds a match.\n //\n // Since our binaries are downloaded to a custom cache directory that's not in PATH\n // (unlike system package managers like npm/pnpm/yarn which are already in PATH),\n // we must prepend the cache directory to PATH so cmd.exe can locate the binary.\n //\n // This approach is consistent with how other tools handle Windows command execution:\n // - npm's promise-spawn: uses which.sync() to find commands in PATH\n // - cross-spawn: spawns cmd.exe with escaped arguments\n // - Node.js spawn with shell: true: delegates to cmd.exe which uses PATH\n const finalSpawnOptions = needsShell\n ? {\n ...spawnOptions,\n env: {\n ...spawnOptions?.env,\n PATH: `${cacheEntryDir}${path.delimiter}${process.env['PATH'] || ''}`,\n },\n shell: true,\n }\n : spawnOptions\n const spawnPromise = spawn(binaryPath, args, finalSpawnOptions, spawnExtra)\n\n return {\n binaryPath,\n downloaded,\n spawnPromise,\n }\n}\n\n/**\n * Get the DLX binary cache directory path.\n * Returns normalized path for cross-platform compatibility.\n * Uses same directory as dlx-package for unified DLX storage.\n */\nexport function getDlxCachePath(): string {\n return getSocketDlxDir()\n}\n\n/**\n * Get information about cached binaries.\n */\nexport async function listDlxCache(): Promise<\n Array<{\n age: number\n arch: string\n checksum: string\n name: string\n platform: string\n size: number\n url: string\n }>\n> {\n const cacheDir = getDlxCachePath()\n\n if (!existsSync(cacheDir)) {\n return []\n }\n\n const results = []\n const now = Date.now()\n const entries = await fs.readdir(cacheDir)\n\n for (const entry of entries) {\n const entryPath = path.join(cacheDir, entry)\n try {\n // eslint-disable-next-line no-await-in-loop\n if (!(await isDir(entryPath))) {\n continue\n }\n\n const metaPath = getMetadataPath(entryPath)\n // eslint-disable-next-line no-await-in-loop\n const metadata = await readJson(metaPath, { throws: false })\n if (\n !metadata ||\n typeof metadata !== 'object' ||\n Array.isArray(metadata)\n ) {\n continue\n }\n\n // Find the binary file in the directory.\n // eslint-disable-next-line no-await-in-loop\n const files = await fs.readdir(entryPath)\n const binaryFile = files.find(f => !f.startsWith('.'))\n\n if (binaryFile) {\n const binaryPath = path.join(entryPath, binaryFile)\n // eslint-disable-next-line no-await-in-loop\n const binaryStats = await fs.stat(binaryPath)\n\n const metaObj = metadata as Record<string, unknown>\n results.push({\n age: now - ((metaObj['timestamp'] as number) || 0),\n arch: (metaObj['arch'] as string) || 'unknown',\n checksum: (metaObj['checksum'] as string) || '',\n name: binaryFile,\n platform: (metaObj['platform'] as string) || 'unknown',\n size: binaryStats.size,\n url: (metaObj['url'] as string) || '',\n })\n }\n } catch {}\n }\n\n return results\n}\n"],
5
- "mappings": "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",
6
- "names": ["path", "fs", "os"]
5
+ "mappings": "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",
6
+ "names": ["dlx_binary_exports", "__export", "cleanDlxCache", "dlxBinary", "getDlxCachePath", "listDlxCache", "__toCommonJS", "import_node_crypto", "import_node_fs", "import_node_os", "import_node_path", "import_platform", "import_fs", "import_http_request", "import_objects", "import_path", "import_paths", "import_spawn", "generateCacheKey", "url", "getMetadataPath", "cacheEntryPath", "path", "isCacheValid", "cacheTtl", "metaPath", "metadata", "downloadBinary", "destPath", "checksum", "response", "tempPath", "hasher", "fs", "buffer", "actualChecksum", "e", "writeMetadata", "os", "maxAge", "cacheDir", "cleaned", "now", "entries", "entry", "entryPath", "args", "options", "spawnExtra", "force", "name", "spawnOptions", "cacheKey", "cacheEntryDir", "binaryName", "binaryPath", "downloaded", "computedChecksum", "finalSpawnOptions", "spawnPromise", "results", "binaryFile", "f", "binaryStats", "metaObj"]
7
7
  }
@@ -1,151 +1,3 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var dlx_package_exports = {};
30
- __export(dlx_package_exports, {
31
- dlxPackage: () => dlxPackage
32
- });
33
- module.exports = __toCommonJS(dlx_package_exports);
34
- var import_node_crypto = require("node:crypto");
35
- var import_node_fs = require("node:fs");
36
- var import_node_path = __toESM(require("node:path"));
37
- var import_platform = require("./constants/platform");
38
- var import_fs = require("./fs");
39
- var import_path = require("./path");
40
- var import_paths = require("./paths");
41
- var import_spawn = require("./spawn");
42
- const rangeOperatorsRegExp = /[~^><=xX* ]|\|\|/;
43
- function generatePackageCacheKey(packageSpec) {
44
- return (0, import_node_crypto.createHash)("sha256").update(packageSpec).digest("hex").slice(0, 16);
45
- }
46
- function parsePackageSpec(spec) {
47
- if (spec.startsWith("@")) {
48
- const parts = spec.split("@");
49
- if (parts.length === 3) {
50
- return { name: parts[1], version: parts[2] };
51
- }
52
- if (parts.length === 2) {
53
- return { name: `@${parts[1]}`, version: void 0 };
54
- }
55
- const scopeAndName = `@${parts[1]}`;
56
- return { name: scopeAndName, version: parts[2] };
57
- }
58
- const atIndex = spec.lastIndexOf("@");
59
- if (atIndex === -1) {
60
- return { name: spec, version: void 0 };
61
- }
62
- return {
63
- name: spec.slice(0, atIndex),
64
- version: spec.slice(atIndex + 1)
65
- };
66
- }
67
- async function ensurePackageInstalled(packageSpec, packageName, force) {
68
- const cacheKey = generatePackageCacheKey(packageSpec);
69
- const packageDir = (0, import_path.normalizePath)(import_node_path.default.join((0, import_paths.getSocketDlxDir)(), cacheKey));
70
- const installedDir = (0, import_path.normalizePath)(
71
- import_node_path.default.join(packageDir, "node_modules", packageName)
72
- );
73
- if (!force && (0, import_node_fs.existsSync)(installedDir)) {
74
- const pkgJsonPath = import_node_path.default.join(installedDir, "package.json");
75
- if ((0, import_node_fs.existsSync)(pkgJsonPath)) {
76
- return { installed: false, packageDir };
77
- }
78
- }
79
- await (0, import_spawn.spawn)(
80
- "npm",
81
- [
82
- "install",
83
- "--prefix",
84
- packageDir,
85
- "--no-save",
86
- "--no-package-lock",
87
- "--no-audit",
88
- "--no-fund",
89
- packageSpec
90
- ],
91
- {
92
- stdio: "pipe"
93
- }
94
- );
95
- return { installed: true, packageDir };
96
- }
97
- function findBinaryPath(packageDir, packageName, binaryName) {
98
- const installedDir = (0, import_path.normalizePath)(
99
- import_node_path.default.join(packageDir, "node_modules", packageName)
100
- );
101
- const pkgJsonPath = import_node_path.default.join(installedDir, "package.json");
102
- const pkgJson = (0, import_fs.readJsonSync)(pkgJsonPath);
103
- const bin = pkgJson["bin"];
104
- let binPath;
105
- if (typeof bin === "string") {
106
- binPath = bin;
107
- } else if (typeof bin === "object" && bin !== null) {
108
- const binName = binaryName || packageName.split("/").pop();
109
- binPath = bin[binName];
110
- }
111
- if (!binPath) {
112
- throw new Error(`No binary found for package "${packageName}"`);
113
- }
114
- return (0, import_path.normalizePath)(import_node_path.default.join(installedDir, binPath));
115
- }
116
- async function dlxPackage(args, options, spawnExtra) {
117
- const {
118
- force: userForce,
119
- package: packageSpec,
120
- spawnOptions
121
- } = { __proto__: null, ...options };
122
- const { name: packageName, version: packageVersion } = parsePackageSpec(packageSpec);
123
- const isVersionRange = packageVersion !== void 0 && rangeOperatorsRegExp.test(packageVersion);
124
- const force = userForce !== void 0 ? userForce : isVersionRange;
125
- const fullPackageSpec = packageVersion ? `${packageName}@${packageVersion}` : packageName;
126
- const { installed, packageDir } = await ensurePackageInstalled(
127
- fullPackageSpec,
128
- packageName,
129
- force
130
- );
131
- const binaryPath = findBinaryPath(packageDir, packageName);
132
- if (!import_platform.WIN32 && (0, import_node_fs.existsSync)(binaryPath)) {
133
- const { chmodSync } = require("node:fs");
134
- try {
135
- chmodSync(binaryPath, 493);
136
- } catch {
137
- }
138
- }
139
- const spawnPromise = (0, import_spawn.spawn)(binaryPath, args, spawnOptions, spawnExtra);
140
- return {
141
- binaryPath,
142
- installed,
143
- packageDir,
144
- spawnPromise
145
- };
146
- }
147
- // Annotate the CommonJS export names for ESM import in node:
148
- 0 && (module.exports = {
149
- dlxPackage
150
- });
2
+ var O=Object.create;var l=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var _=Object.getPrototypeOf,J=Object.prototype.hasOwnProperty;var $=(n,e)=>{for(var t in e)l(n,t,{get:e[t],enumerable:!0})},k=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of R(e))!J.call(n,o)&&o!==t&&l(n,o,{get:()=>e[o],enumerable:!(r=v(e,o))||r.enumerable});return n};var E=(n,e,t)=>(t=n!=null?O(_(n)):{},k(e||!n||!n.__esModule?l(t,"default",{value:n,enumerable:!0}):t,n)),I=n=>k(l({},"__esModule",{value:!0}),n);var z={};$(z,{dlxPackage:()=>q});module.exports=I(z);var P=require("node:crypto"),f=require("node:fs"),s=E(require("node:path")),h=require("./constants/platform"),x=require("./fs"),p=require("./path"),y=require("./paths"),u=require("./spawn");const N=/[~^><=xX* ]|\|\|/;function A(n){return(0,P.createHash)("sha256").update(n).digest("hex").slice(0,16)}function K(n){if(n.startsWith("@")){const t=n.split("@");return t.length===3?{name:t[1],version:t[2]}:t.length===2?{name:`@${t[1]}`,version:void 0}:{name:`@${t[1]}`,version:t[2]}}const e=n.lastIndexOf("@");return e===-1?{name:n,version:void 0}:{name:n.slice(0,e),version:n.slice(e+1)}}async function V(n,e,t){const r=A(n),o=(0,p.normalizePath)(s.default.join((0,y.getSocketDlxDir)(),r)),c=(0,p.normalizePath)(s.default.join(o,"node_modules",e));if(!t&&(0,f.existsSync)(c)){const i=s.default.join(c,"package.json");if((0,f.existsSync)(i))return{installed:!1,packageDir:o}}return await(0,u.spawn)("npm",["install","--prefix",o,"--no-save","--no-package-lock","--no-audit","--no-fund",n],{stdio:"pipe"}),{installed:!0,packageDir:o}}function W(n,e,t){const r=(0,p.normalizePath)(s.default.join(n,"node_modules",e)),o=s.default.join(r,"package.json"),i=(0,x.readJsonSync)(o).bin;let a;if(typeof i=="string")a=i;else if(typeof i=="object"&&i!==null){const d=t||e.split("/").pop();a=i[d]}if(!a)throw new Error(`No binary found for package "${e}"`);return(0,p.normalizePath)(s.default.join(r,a))}async function q(n,e,t){const{force:r,package:o,spawnOptions:c}={__proto__:null,...e},{name:i,version:a}=K(o),d=a!==void 0&&N.test(a),w=r!==void 0?r:d,D=a?`${i}@${a}`:i,{installed:b,packageDir:m}=await V(D,i,w),g=W(m,i);if(!h.WIN32&&(0,f.existsSync)(g)){const{chmodSync:j}=require("node:fs");try{j(g,493)}catch{}}const S=(0,u.spawn)(g,n,c,t);return{binaryPath:g,installed:b,packageDir:m,spawnPromise:S}}0&&(module.exports={dlxPackage});
151
3
  //# sourceMappingURL=dlx-package.js.map