@socketsecurity/lib 1.3.4 → 2.0.0

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 (287) hide show
  1. package/CHANGELOG.md +103 -0
  2. package/dist/agent.js +1 -1
  3. package/dist/agent.js.map +2 -2
  4. package/dist/bin.js +1 -1
  5. package/dist/bin.js.map +3 -3
  6. package/dist/cacache.d.ts +4 -0
  7. package/dist/cacache.js +1 -1
  8. package/dist/cacache.js.map +3 -3
  9. package/dist/constants/packages.js +1 -1
  10. package/dist/constants/packages.js.map +3 -3
  11. package/dist/debug.d.ts +0 -7
  12. package/dist/debug.js +2 -2
  13. package/dist/debug.js.map +3 -3
  14. package/dist/dlx-binary.js +1 -1
  15. package/dist/dlx-binary.js.map +3 -3
  16. package/dist/effects/text-shimmer.js +1 -1
  17. package/dist/effects/text-shimmer.js.map +2 -2
  18. package/dist/env/ci.d.ts +1 -1
  19. package/dist/env/ci.js +1 -1
  20. package/dist/env/ci.js.map +3 -3
  21. package/dist/env/debug.d.ts +1 -1
  22. package/dist/env/debug.js +1 -1
  23. package/dist/env/debug.js.map +3 -3
  24. package/dist/env/github.d.ts +40 -0
  25. package/dist/env/github.js +3 -0
  26. package/dist/env/github.js.map +7 -0
  27. package/dist/env/home.d.ts +1 -1
  28. package/dist/env/home.js +1 -1
  29. package/dist/env/home.js.map +3 -3
  30. package/dist/env/locale.d.ts +15 -0
  31. package/dist/env/locale.js +3 -0
  32. package/dist/env/locale.js.map +7 -0
  33. package/dist/env/node-auth-token.d.ts +1 -1
  34. package/dist/env/node-auth-token.js +1 -1
  35. package/dist/env/node-auth-token.js.map +3 -3
  36. package/dist/env/node-env.d.ts +1 -1
  37. package/dist/env/node-env.js +1 -1
  38. package/dist/env/node-env.js.map +3 -3
  39. package/dist/env/npm.d.ts +25 -0
  40. package/dist/env/npm.js +3 -0
  41. package/dist/env/npm.js.map +7 -0
  42. package/dist/env/path.d.ts +1 -1
  43. package/dist/env/path.js +1 -1
  44. package/dist/env/path.js.map +3 -3
  45. package/dist/env/pre-commit.d.ts +1 -1
  46. package/dist/env/pre-commit.js +1 -1
  47. package/dist/env/pre-commit.js.map +3 -3
  48. package/dist/env/rewire.d.ts +106 -0
  49. package/dist/env/rewire.js +3 -0
  50. package/dist/env/rewire.js.map +7 -0
  51. package/dist/env/shell.d.ts +1 -1
  52. package/dist/env/shell.js +1 -1
  53. package/dist/env/shell.js.map +3 -3
  54. package/dist/env/socket-cli-shadow.d.ts +30 -0
  55. package/dist/env/socket-cli-shadow.js +3 -0
  56. package/dist/env/socket-cli-shadow.js.map +7 -0
  57. package/dist/env/socket-cli.d.ts +72 -0
  58. package/dist/env/socket-cli.js +3 -0
  59. package/dist/env/socket-cli.js.map +7 -0
  60. package/dist/env/socket.d.ts +75 -0
  61. package/dist/env/socket.js +3 -0
  62. package/dist/env/socket.js.map +7 -0
  63. package/dist/env/temp-dir.d.ts +15 -0
  64. package/dist/env/temp-dir.js +3 -0
  65. package/dist/env/temp-dir.js.map +7 -0
  66. package/dist/env/term.d.ts +1 -1
  67. package/dist/env/term.js +1 -1
  68. package/dist/env/term.js.map +3 -3
  69. package/dist/env/test.d.ts +15 -0
  70. package/dist/env/test.js +3 -0
  71. package/dist/env/test.js.map +7 -0
  72. package/dist/env/windows.d.ts +20 -0
  73. package/dist/env/windows.js +3 -0
  74. package/dist/env/windows.js.map +7 -0
  75. package/dist/env/xdg.d.ts +15 -0
  76. package/dist/env/xdg.js +3 -0
  77. package/dist/env/xdg.js.map +7 -0
  78. package/dist/env.d.ts +67 -0
  79. package/dist/env.js +1 -1
  80. package/dist/env.js.map +3 -3
  81. package/dist/fs.d.ts +7 -0
  82. package/dist/fs.js +3 -3
  83. package/dist/fs.js.map +3 -3
  84. package/dist/github.js +1 -1
  85. package/dist/github.js.map +3 -3
  86. package/dist/globs.js +1 -1
  87. package/dist/globs.js.map +2 -2
  88. package/dist/ipc.d.ts +1 -1
  89. package/dist/ipc.js +1 -1
  90. package/dist/ipc.js.map +3 -3
  91. package/dist/logger.d.ts +2 -1
  92. package/dist/logger.js +1 -1
  93. package/dist/logger.js.map +3 -3
  94. package/dist/packages/isolation.js +1 -1
  95. package/dist/packages/isolation.js.map +3 -3
  96. package/dist/packages/normalize.js +1 -1
  97. package/dist/packages/normalize.js.map +3 -3
  98. package/dist/packages/operations.js +1 -1
  99. package/dist/packages/operations.js.map +3 -3
  100. package/dist/path.d.ts +2 -2
  101. package/dist/path.js +1 -1
  102. package/dist/path.js.map +3 -3
  103. package/dist/paths/rewire.d.ts +71 -0
  104. package/dist/paths/rewire.js +3 -0
  105. package/dist/paths/rewire.js.map +7 -0
  106. package/dist/paths.d.ts +26 -0
  107. package/dist/paths.js +1 -1
  108. package/dist/paths.js.map +3 -3
  109. package/dist/spawn.js +1 -1
  110. package/dist/spawn.js.map +3 -3
  111. package/dist/spinner.js +1 -1
  112. package/dist/spinner.js.map +2 -2
  113. package/package.json +39 -226
  114. package/dist/env/appdata.d.ts +0 -1
  115. package/dist/env/appdata.js +0 -3
  116. package/dist/env/appdata.js.map +0 -7
  117. package/dist/env/comspec.d.ts +0 -1
  118. package/dist/env/comspec.js +0 -3
  119. package/dist/env/comspec.js.map +0 -7
  120. package/dist/env/getters.d.ts +0 -40
  121. package/dist/env/getters.js +0 -3
  122. package/dist/env/getters.js.map +0 -7
  123. package/dist/env/github-api-url.d.ts +0 -1
  124. package/dist/env/github-api-url.js +0 -3
  125. package/dist/env/github-api-url.js.map +0 -7
  126. package/dist/env/github-base-ref.d.ts +0 -1
  127. package/dist/env/github-base-ref.js +0 -3
  128. package/dist/env/github-base-ref.js.map +0 -7
  129. package/dist/env/github-ref-name.d.ts +0 -1
  130. package/dist/env/github-ref-name.js +0 -3
  131. package/dist/env/github-ref-name.js.map +0 -7
  132. package/dist/env/github-ref-type.d.ts +0 -1
  133. package/dist/env/github-ref-type.js +0 -3
  134. package/dist/env/github-ref-type.js.map +0 -7
  135. package/dist/env/github-repository.d.ts +0 -1
  136. package/dist/env/github-repository.js +0 -3
  137. package/dist/env/github-repository.js.map +0 -7
  138. package/dist/env/github-server-url.d.ts +0 -1
  139. package/dist/env/github-server-url.js +0 -3
  140. package/dist/env/github-server-url.js.map +0 -7
  141. package/dist/env/github-token.d.ts +0 -1
  142. package/dist/env/github-token.js +0 -3
  143. package/dist/env/github-token.js.map +0 -7
  144. package/dist/env/jest-worker-id.d.ts +0 -1
  145. package/dist/env/jest-worker-id.js +0 -3
  146. package/dist/env/jest-worker-id.js.map +0 -7
  147. package/dist/env/lang.d.ts +0 -1
  148. package/dist/env/lang.js +0 -3
  149. package/dist/env/lang.js.map +0 -7
  150. package/dist/env/lc-all.d.ts +0 -1
  151. package/dist/env/lc-all.js +0 -3
  152. package/dist/env/lc-all.js.map +0 -7
  153. package/dist/env/lc-messages.d.ts +0 -1
  154. package/dist/env/lc-messages.js +0 -3
  155. package/dist/env/lc-messages.js.map +0 -7
  156. package/dist/env/localappdata.d.ts +0 -1
  157. package/dist/env/localappdata.js +0 -3
  158. package/dist/env/localappdata.js.map +0 -7
  159. package/dist/env/npm-config-registry.d.ts +0 -1
  160. package/dist/env/npm-config-registry.js +0 -3
  161. package/dist/env/npm-config-registry.js.map +0 -7
  162. package/dist/env/npm-config-user-agent.d.ts +0 -1
  163. package/dist/env/npm-config-user-agent.js +0 -3
  164. package/dist/env/npm-config-user-agent.js.map +0 -7
  165. package/dist/env/npm-lifecycle-event.d.ts +0 -1
  166. package/dist/env/npm-lifecycle-event.js +0 -3
  167. package/dist/env/npm-lifecycle-event.js.map +0 -7
  168. package/dist/env/npm-registry.d.ts +0 -1
  169. package/dist/env/npm-registry.js +0 -3
  170. package/dist/env/npm-registry.js.map +0 -7
  171. package/dist/env/npm-token.d.ts +0 -1
  172. package/dist/env/npm-token.js +0 -3
  173. package/dist/env/npm-token.js.map +0 -7
  174. package/dist/env/socket-accept-risks.d.ts +0 -1
  175. package/dist/env/socket-accept-risks.js +0 -3
  176. package/dist/env/socket-accept-risks.js.map +0 -7
  177. package/dist/env/socket-api-base-url.d.ts +0 -1
  178. package/dist/env/socket-api-base-url.js +0 -3
  179. package/dist/env/socket-api-base-url.js.map +0 -7
  180. package/dist/env/socket-api-proxy.d.ts +0 -1
  181. package/dist/env/socket-api-proxy.js +0 -3
  182. package/dist/env/socket-api-proxy.js.map +0 -7
  183. package/dist/env/socket-api-timeout.d.ts +0 -1
  184. package/dist/env/socket-api-timeout.js +0 -3
  185. package/dist/env/socket-api-timeout.js.map +0 -7
  186. package/dist/env/socket-api-token.d.ts +0 -1
  187. package/dist/env/socket-api-token.js +0 -3
  188. package/dist/env/socket-api-token.js.map +0 -7
  189. package/dist/env/socket-cacache-dir.d.ts +0 -1
  190. package/dist/env/socket-cacache-dir.js +0 -3
  191. package/dist/env/socket-cacache-dir.js.map +0 -7
  192. package/dist/env/socket-cli-accept-risks.d.ts +0 -1
  193. package/dist/env/socket-cli-accept-risks.js +0 -3
  194. package/dist/env/socket-cli-accept-risks.js.map +0 -7
  195. package/dist/env/socket-cli-api-base-url.d.ts +0 -1
  196. package/dist/env/socket-cli-api-base-url.js +0 -3
  197. package/dist/env/socket-cli-api-base-url.js.map +0 -7
  198. package/dist/env/socket-cli-api-proxy.d.ts +0 -1
  199. package/dist/env/socket-cli-api-proxy.js +0 -3
  200. package/dist/env/socket-cli-api-proxy.js.map +0 -7
  201. package/dist/env/socket-cli-api-timeout.d.ts +0 -1
  202. package/dist/env/socket-cli-api-timeout.js +0 -3
  203. package/dist/env/socket-cli-api-timeout.js.map +0 -7
  204. package/dist/env/socket-cli-api-token.d.ts +0 -1
  205. package/dist/env/socket-cli-api-token.js +0 -3
  206. package/dist/env/socket-cli-api-token.js.map +0 -7
  207. package/dist/env/socket-cli-config.d.ts +0 -1
  208. package/dist/env/socket-cli-config.js +0 -3
  209. package/dist/env/socket-cli-config.js.map +0 -7
  210. package/dist/env/socket-cli-fix.d.ts +0 -1
  211. package/dist/env/socket-cli-fix.js +0 -3
  212. package/dist/env/socket-cli-fix.js.map +0 -7
  213. package/dist/env/socket-cli-no-api-token.d.ts +0 -1
  214. package/dist/env/socket-cli-no-api-token.js +0 -3
  215. package/dist/env/socket-cli-no-api-token.js.map +0 -7
  216. package/dist/env/socket-cli-optimize.d.ts +0 -1
  217. package/dist/env/socket-cli-optimize.js +0 -3
  218. package/dist/env/socket-cli-optimize.js.map +0 -7
  219. package/dist/env/socket-cli-org-slug.d.ts +0 -1
  220. package/dist/env/socket-cli-org-slug.js +0 -3
  221. package/dist/env/socket-cli-org-slug.js.map +0 -7
  222. package/dist/env/socket-cli-shadow-accept-risks.d.ts +0 -1
  223. package/dist/env/socket-cli-shadow-accept-risks.js +0 -3
  224. package/dist/env/socket-cli-shadow-accept-risks.js.map +0 -7
  225. package/dist/env/socket-cli-shadow-api-token.d.ts +0 -1
  226. package/dist/env/socket-cli-shadow-api-token.js +0 -3
  227. package/dist/env/socket-cli-shadow-api-token.js.map +0 -7
  228. package/dist/env/socket-cli-shadow-bin.d.ts +0 -1
  229. package/dist/env/socket-cli-shadow-bin.js +0 -3
  230. package/dist/env/socket-cli-shadow-bin.js.map +0 -7
  231. package/dist/env/socket-cli-shadow-progress.d.ts +0 -1
  232. package/dist/env/socket-cli-shadow-progress.js +0 -3
  233. package/dist/env/socket-cli-shadow-progress.js.map +0 -7
  234. package/dist/env/socket-cli-shadow-silent.d.ts +0 -1
  235. package/dist/env/socket-cli-shadow-silent.js +0 -3
  236. package/dist/env/socket-cli-shadow-silent.js.map +0 -7
  237. package/dist/env/socket-cli-view-all-risks.d.ts +0 -1
  238. package/dist/env/socket-cli-view-all-risks.js +0 -3
  239. package/dist/env/socket-cli-view-all-risks.js.map +0 -7
  240. package/dist/env/socket-config.d.ts +0 -1
  241. package/dist/env/socket-config.js +0 -3
  242. package/dist/env/socket-config.js.map +0 -7
  243. package/dist/env/socket-debug.d.ts +0 -1
  244. package/dist/env/socket-debug.js +0 -3
  245. package/dist/env/socket-debug.js.map +0 -7
  246. package/dist/env/socket-home.d.ts +0 -1
  247. package/dist/env/socket-home.js +0 -3
  248. package/dist/env/socket-home.js.map +0 -7
  249. package/dist/env/socket-no-api-token.d.ts +0 -1
  250. package/dist/env/socket-no-api-token.js +0 -3
  251. package/dist/env/socket-no-api-token.js.map +0 -7
  252. package/dist/env/socket-npm-registry.d.ts +0 -1
  253. package/dist/env/socket-npm-registry.js +0 -3
  254. package/dist/env/socket-npm-registry.js.map +0 -7
  255. package/dist/env/socket-org-slug.d.ts +0 -1
  256. package/dist/env/socket-org-slug.js +0 -3
  257. package/dist/env/socket-org-slug.js.map +0 -7
  258. package/dist/env/socket-registry-url.d.ts +0 -1
  259. package/dist/env/socket-registry-url.js +0 -3
  260. package/dist/env/socket-registry-url.js.map +0 -7
  261. package/dist/env/socket-view-all-risks.d.ts +0 -1
  262. package/dist/env/socket-view-all-risks.js +0 -3
  263. package/dist/env/socket-view-all-risks.js.map +0 -7
  264. package/dist/env/temp.d.ts +0 -1
  265. package/dist/env/temp.js +0 -3
  266. package/dist/env/temp.js.map +0 -7
  267. package/dist/env/tmp.d.ts +0 -1
  268. package/dist/env/tmp.js +0 -3
  269. package/dist/env/tmp.js.map +0 -7
  270. package/dist/env/tmpdir.d.ts +0 -1
  271. package/dist/env/tmpdir.js +0 -3
  272. package/dist/env/tmpdir.js.map +0 -7
  273. package/dist/env/userprofile.d.ts +0 -1
  274. package/dist/env/userprofile.js +0 -3
  275. package/dist/env/userprofile.js.map +0 -7
  276. package/dist/env/vitest.d.ts +0 -1
  277. package/dist/env/vitest.js +0 -3
  278. package/dist/env/vitest.js.map +0 -7
  279. package/dist/env/xdg-cache-home.d.ts +0 -1
  280. package/dist/env/xdg-cache-home.js +0 -3
  281. package/dist/env/xdg-cache-home.js.map +0 -7
  282. package/dist/env/xdg-config-home.d.ts +0 -1
  283. package/dist/env/xdg-config-home.js +0 -3
  284. package/dist/env/xdg-config-home.js.map +0 -7
  285. package/dist/env/xdg-data-home.d.ts +0 -1
  286. package/dist/env/xdg-data-home.js +0 -3
  287. package/dist/env/xdg-data-home.js.map +0 -7
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/packages/isolation.ts"],
4
- "sourcesContent": ["/**\n * @fileoverview Package isolation utilities for testing.\n * Provides tools to set up isolated test environments for packages.\n */\n\nimport { existsSync, promises as fs } from 'node:fs'\n\nimport { WIN32 } from '#constants/platform'\n\nimport type { PackageJson } from '../packages'\nimport { isAbsolute, isPath, trimLeadingDotSlash } from '../path'\nimport { readPackageJson } from './operations'\n\nlet _os: typeof import('node:os') | undefined\nlet _path: typeof import('node:path') | undefined\n\n/*@__NO_SIDE_EFFECTS__*/\nfunction getOs() {\n if (_os === undefined) {\n // Use non-'node:' prefixed require to avoid Webpack errors.\n\n _os = /*@__PURE__*/ require('node:os')\n }\n return _os as typeof import('node:os')\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nfunction getPath() {\n if (_path === undefined) {\n // Use non-'node:' prefixed require to avoid Webpack errors.\n\n _path = /*@__PURE__*/ require('node:path')\n }\n return _path as typeof import('path')\n}\n\n/**\n * Copy options for fs.cp with cross-platform retry support.\n */\nconst FS_CP_OPTIONS = {\n dereference: true,\n errorOnExist: false,\n filter: (src: string) =>\n !src.includes('node_modules') && !src.endsWith('.DS_Store'),\n force: true,\n recursive: true,\n ...(WIN32 ? { maxRetries: 3, retryDelay: 100 } : {}),\n}\n\n/**\n * Resolve a path to its real location, handling symlinks.\n */\nasync function resolveRealPath(pathStr: string): Promise<string> {\n const path = getPath()\n return await fs.realpath(pathStr).catch(() => path.resolve(pathStr))\n}\n\n/**\n * Merge and write package.json with original and new values.\n */\nasync function mergePackageJson(\n pkgJsonPath: string,\n originalPkgJson: PackageJson | undefined,\n): Promise<PackageJson> {\n const pkgJson = JSON.parse(await fs.readFile(pkgJsonPath, 'utf8'))\n const mergedPkgJson = originalPkgJson\n ? { ...originalPkgJson, ...pkgJson }\n : pkgJson\n return mergedPkgJson\n}\n\nexport type IsolatePackageOptions = {\n imports?: Record<string, string> | undefined\n install?: ((cwd: string) => Promise<void>) | undefined\n onPackageJson?:\n | ((pkgJson: PackageJson) => PackageJson | Promise<PackageJson>)\n | undefined\n sourcePath?: string | undefined\n}\n\nexport type IsolatePackageResult = {\n exports?: Record<string, unknown> | undefined\n tmpdir: string\n}\n\n/**\n * Isolates a package in a temporary test environment.\n *\n * Supports multiple input types:\n * 1. File system path (absolute or relative)\n * 2. Package name with optional version spec\n * 3. npm package spec (parsed via npm-package-arg)\n *\n * @throws {Error} When package installation or setup fails.\n */\nexport async function isolatePackage(\n packageSpec: string,\n options?: IsolatePackageOptions | undefined,\n): Promise<IsolatePackageResult> {\n const os = getOs()\n const path = getPath()\n const opts = { __proto__: null, ...options } as IsolatePackageOptions\n const { imports, install, onPackageJson, sourcePath: optSourcePath } = opts\n\n let sourcePath = optSourcePath\n let packageName: string | undefined\n let spec: string | undefined\n\n // Determine if this is a path or package spec.\n if (isPath(packageSpec)) {\n // File system path.\n // Handle edge case on Windows where path.relative() returns an absolute path\n // when paths are on different drives, and the test prepends './' to it.\n // Example: './C:\\Users\\...' should be treated as 'C:\\Users\\...'.\n const trimmedPath = trimLeadingDotSlash(packageSpec)\n const pathToResolve = isAbsolute(trimmedPath) ? trimmedPath : packageSpec\n sourcePath = path.resolve(pathToResolve)\n\n if (!existsSync(sourcePath)) {\n throw new Error(`Source path does not exist: ${sourcePath}`)\n }\n\n // Read package.json to get the name.\n const pkgJson = await readPackageJson(sourcePath, { normalize: true })\n if (!pkgJson) {\n throw new Error(`Could not read package.json from: ${sourcePath}`)\n }\n packageName = pkgJson.name as string\n } else {\n // Parse as npm package spec.\n const npa = /*@__PURE__*/ require('../external/npm-package-arg')\n const parsed = npa(packageSpec)\n\n packageName = parsed.name\n\n if (parsed.type === 'directory' || parsed.type === 'file') {\n sourcePath = parsed.fetchSpec\n if (!sourcePath || !existsSync(sourcePath)) {\n throw new Error(`Source path does not exist: ${sourcePath}`)\n }\n // If package name not provided by parser, read from package.json.\n if (!packageName) {\n const pkgJson = await readPackageJson(sourcePath, { normalize: true })\n if (!pkgJson) {\n throw new Error(`Could not read package.json from: ${sourcePath}`)\n }\n packageName = pkgJson.name as string\n }\n } else {\n // Registry package.\n spec = parsed.fetchSpec || parsed.rawSpec\n }\n }\n\n if (!packageName) {\n throw new Error(`Could not determine package name from: ${packageSpec}`)\n }\n\n // Create temp directory for this package.\n const sanitizedName = packageName.replace(/[@/]/g, '-')\n const tempDir = await fs.mkdtemp(\n path.join(os.tmpdir(), `socket-test-${sanitizedName}-`),\n )\n const packageTempDir = path.join(tempDir, sanitizedName)\n await fs.mkdir(packageTempDir, { recursive: true })\n\n let installedPath: string\n let originalPackageJson: PackageJson | undefined\n\n if (spec) {\n // Installing from registry first, then copying source on top if provided.\n await fs.writeFile(\n path.join(packageTempDir, 'package.json'),\n JSON.stringify(\n {\n name: 'test-temp',\n private: true,\n version: '1.0.0',\n },\n null,\n 2,\n ),\n )\n\n // Use custom install function or default pnpm install.\n if (install) {\n await install(packageTempDir)\n } else {\n const { spawn } = /*@__PURE__*/ require('../spawn')\n const WIN32 = require('../constants/platform').WIN32\n const packageInstallSpec = spec.startsWith('https://')\n ? spec\n : `${packageName}@${spec}`\n\n await spawn('pnpm', ['add', packageInstallSpec], {\n cwd: packageTempDir,\n shell: WIN32,\n stdio: 'pipe',\n })\n }\n\n installedPath = path.join(packageTempDir, 'node_modules', packageName)\n\n // Save original package.json before copying source.\n originalPackageJson = await readPackageJson(installedPath, {\n normalize: true,\n })\n\n // Copy source files on top if provided.\n if (sourcePath) {\n // Check if source and destination are the same (symlinked).\n const realInstalledPath = await resolveRealPath(installedPath)\n const realSourcePath = await resolveRealPath(sourcePath)\n\n if (realSourcePath !== realInstalledPath) {\n await fs.cp(sourcePath, installedPath, FS_CP_OPTIONS)\n }\n }\n } else {\n // Just copying local package, no registry install.\n if (!sourcePath) {\n throw new Error('sourcePath is required when no version spec provided')\n }\n\n const scopedPath = packageName.startsWith('@')\n ? path.join(\n packageTempDir,\n 'node_modules',\n packageName.split('/')[0] ?? '',\n )\n : path.join(packageTempDir, 'node_modules')\n\n await fs.mkdir(scopedPath, { recursive: true })\n installedPath = path.join(packageTempDir, 'node_modules', packageName)\n\n await fs.cp(sourcePath, installedPath, FS_CP_OPTIONS)\n }\n\n // Prepare package.json if callback provided or if we need to merge with original.\n if (onPackageJson || originalPackageJson) {\n const pkgJsonPath = path.join(installedPath, 'package.json')\n const mergedPkgJson = await mergePackageJson(\n pkgJsonPath,\n originalPackageJson,\n )\n\n const finalPkgJson = onPackageJson\n ? await onPackageJson(mergedPkgJson)\n : mergedPkgJson\n\n await fs.writeFile(pkgJsonPath, JSON.stringify(finalPkgJson, null, 2))\n }\n\n // Install dependencies.\n if (install) {\n await install(installedPath)\n } else {\n const { spawn } = /*@__PURE__*/ require('../spawn')\n const WIN32 = require('../constants/platform').WIN32\n await spawn('pnpm', ['install'], {\n cwd: installedPath,\n shell: WIN32,\n stdio: 'pipe',\n })\n }\n\n // Load module exports if imports provided.\n const exports: Record<string, unknown> = imports\n ? { __proto__: null }\n : (undefined as unknown as Record<string, unknown>)\n\n if (imports) {\n for (const { 0: key, 1: specifier } of Object.entries(imports)) {\n const fullPath = path.join(installedPath, specifier)\n exports[key] = require(fullPath)\n }\n }\n\n return {\n exports,\n tmpdir: installedPath,\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["isolation_exports", "__export", "isolatePackage", "__toCommonJS", "import_node_fs", "import_platform", "import_path", "import_operations", "_os", "_path", "getOs", "getPath", "FS_CP_OPTIONS", "src", "resolveRealPath", "pathStr", "path", "fs", "mergePackageJson", "pkgJsonPath", "originalPkgJson", "pkgJson", "packageSpec", "options", "os", "opts", "imports", "install", "onPackageJson", "optSourcePath", "sourcePath", "packageName", "spec", "trimmedPath", "pathToResolve", "parsed", "sanitizedName", "tempDir", "packageTempDir", "installedPath", "originalPackageJson", "spawn", "WIN32", "packageInstallSpec", "realInstalledPath", "scopedPath", "mergedPkgJson", "finalPkgJson", "exports", "key", "specifier", "fullPath"]
4
+ "sourcesContent": ["/**\n * @fileoverview Package isolation utilities for testing.\n * Provides tools to set up isolated test environments for packages.\n */\n\nimport { existsSync, promises as fs } from 'node:fs'\n\nimport { WIN32 } from '#constants/platform'\n\nimport type { PackageJson } from '../packages'\nimport { isAbsolute, isPath, trimLeadingDotSlash } from '../path'\nimport { readPackageJson } from './operations'\nimport { getOsTmpDir } from '#lib/paths'\n\nlet _path: typeof import('node:path') | undefined\n\n/*@__NO_SIDE_EFFECTS__*/\nfunction getPath() {\n if (_path === undefined) {\n // Use non-'node:' prefixed require to avoid Webpack errors.\n\n _path = /*@__PURE__*/ require('node:path')\n }\n return _path as typeof import('path')\n}\n\n/**\n * Copy options for fs.cp with cross-platform retry support.\n */\nconst FS_CP_OPTIONS = {\n dereference: true,\n errorOnExist: false,\n filter: (src: string) =>\n !src.includes('node_modules') && !src.endsWith('.DS_Store'),\n force: true,\n recursive: true,\n ...(WIN32 ? { maxRetries: 3, retryDelay: 100 } : {}),\n}\n\n/**\n * Resolve a path to its real location, handling symlinks.\n */\nasync function resolveRealPath(pathStr: string): Promise<string> {\n const path = getPath()\n return await fs.realpath(pathStr).catch(() => path.resolve(pathStr))\n}\n\n/**\n * Merge and write package.json with original and new values.\n */\nasync function mergePackageJson(\n pkgJsonPath: string,\n originalPkgJson: PackageJson | undefined,\n): Promise<PackageJson> {\n const pkgJson = JSON.parse(await fs.readFile(pkgJsonPath, 'utf8'))\n const mergedPkgJson = originalPkgJson\n ? { ...originalPkgJson, ...pkgJson }\n : pkgJson\n return mergedPkgJson\n}\n\nexport type IsolatePackageOptions = {\n imports?: Record<string, string> | undefined\n install?: ((cwd: string) => Promise<void>) | undefined\n onPackageJson?:\n | ((pkgJson: PackageJson) => PackageJson | Promise<PackageJson>)\n | undefined\n sourcePath?: string | undefined\n}\n\nexport type IsolatePackageResult = {\n exports?: Record<string, unknown> | undefined\n tmpdir: string\n}\n\n/**\n * Isolates a package in a temporary test environment.\n *\n * Supports multiple input types:\n * 1. File system path (absolute or relative)\n * 2. Package name with optional version spec\n * 3. npm package spec (parsed via npm-package-arg)\n *\n * @throws {Error} When package installation or setup fails.\n */\nexport async function isolatePackage(\n packageSpec: string,\n options?: IsolatePackageOptions | undefined,\n): Promise<IsolatePackageResult> {\n const path = getPath()\n const opts = { __proto__: null, ...options } as IsolatePackageOptions\n const { imports, install, onPackageJson, sourcePath: optSourcePath } = opts\n\n let sourcePath = optSourcePath\n let packageName: string | undefined\n let spec: string | undefined\n\n // Determine if this is a path or package spec.\n if (isPath(packageSpec)) {\n // File system path.\n // Handle edge case on Windows where path.relative() returns an absolute path\n // when paths are on different drives, and the test prepends './' to it.\n // Example: './C:\\path\\to\\file' should be treated as 'C:\\path\\to\\file'.\n const trimmedPath = trimLeadingDotSlash(packageSpec)\n const pathToResolve = isAbsolute(trimmedPath) ? trimmedPath : packageSpec\n sourcePath = path.resolve(pathToResolve)\n\n if (!existsSync(sourcePath)) {\n throw new Error(`Source path does not exist: ${sourcePath}`)\n }\n\n // Read package.json to get the name.\n const pkgJson = await readPackageJson(sourcePath, { normalize: true })\n if (!pkgJson) {\n throw new Error(`Could not read package.json from: ${sourcePath}`)\n }\n packageName = pkgJson.name as string\n } else {\n // Parse as npm package spec.\n const npa = /*@__PURE__*/ require('../external/npm-package-arg')\n const parsed = npa(packageSpec)\n\n packageName = parsed.name\n\n if (parsed.type === 'directory' || parsed.type === 'file') {\n sourcePath = parsed.fetchSpec\n if (!sourcePath || !existsSync(sourcePath)) {\n throw new Error(`Source path does not exist: ${sourcePath}`)\n }\n // If package name not provided by parser, read from package.json.\n if (!packageName) {\n const pkgJson = await readPackageJson(sourcePath, { normalize: true })\n if (!pkgJson) {\n throw new Error(`Could not read package.json from: ${sourcePath}`)\n }\n packageName = pkgJson.name as string\n }\n } else {\n // Registry package.\n spec = parsed.fetchSpec || parsed.rawSpec\n }\n }\n\n if (!packageName) {\n throw new Error(`Could not determine package name from: ${packageSpec}`)\n }\n\n // Create temp directory for this package.\n const sanitizedName = packageName.replace(/[@/]/g, '-')\n const tempDir = await fs.mkdtemp(\n path.join(getOsTmpDir(), `socket-test-${sanitizedName}-`),\n )\n const packageTempDir = path.join(tempDir, sanitizedName)\n await fs.mkdir(packageTempDir, { recursive: true })\n\n let installedPath: string\n let originalPackageJson: PackageJson | undefined\n\n if (spec) {\n // Installing from registry first, then copying source on top if provided.\n await fs.writeFile(\n path.join(packageTempDir, 'package.json'),\n JSON.stringify(\n {\n name: 'test-temp',\n private: true,\n version: '1.0.0',\n },\n null,\n 2,\n ),\n )\n\n // Use custom install function or default pnpm install.\n if (install) {\n await install(packageTempDir)\n } else {\n const { spawn } = /*@__PURE__*/ require('../spawn')\n const WIN32 = require('../constants/platform').WIN32\n const packageInstallSpec = spec.startsWith('https://')\n ? spec\n : `${packageName}@${spec}`\n\n await spawn('pnpm', ['add', packageInstallSpec], {\n cwd: packageTempDir,\n shell: WIN32,\n stdio: 'pipe',\n })\n }\n\n installedPath = path.join(packageTempDir, 'node_modules', packageName)\n\n // Save original package.json before copying source.\n originalPackageJson = await readPackageJson(installedPath, {\n normalize: true,\n })\n\n // Copy source files on top if provided.\n if (sourcePath) {\n // Check if source and destination are the same (symlinked).\n const realInstalledPath = await resolveRealPath(installedPath)\n const realSourcePath = await resolveRealPath(sourcePath)\n\n if (realSourcePath !== realInstalledPath) {\n await fs.cp(sourcePath, installedPath, FS_CP_OPTIONS)\n }\n }\n } else {\n // Just copying local package, no registry install.\n if (!sourcePath) {\n throw new Error('sourcePath is required when no version spec provided')\n }\n\n const scopedPath = packageName.startsWith('@')\n ? path.join(\n packageTempDir,\n 'node_modules',\n packageName.split('/')[0] ?? '',\n )\n : path.join(packageTempDir, 'node_modules')\n\n await fs.mkdir(scopedPath, { recursive: true })\n installedPath = path.join(packageTempDir, 'node_modules', packageName)\n\n await fs.cp(sourcePath, installedPath, FS_CP_OPTIONS)\n }\n\n // Prepare package.json if callback provided or if we need to merge with original.\n if (onPackageJson || originalPackageJson) {\n const pkgJsonPath = path.join(installedPath, 'package.json')\n const mergedPkgJson = await mergePackageJson(\n pkgJsonPath,\n originalPackageJson,\n )\n\n const finalPkgJson = onPackageJson\n ? await onPackageJson(mergedPkgJson)\n : mergedPkgJson\n\n await fs.writeFile(pkgJsonPath, JSON.stringify(finalPkgJson, null, 2))\n }\n\n // Install dependencies.\n if (install) {\n await install(installedPath)\n } else {\n const { spawn } = /*@__PURE__*/ require('../spawn')\n const WIN32 = require('../constants/platform').WIN32\n await spawn('pnpm', ['install'], {\n cwd: installedPath,\n shell: WIN32,\n stdio: 'pipe',\n })\n }\n\n // Load module exports if imports provided.\n const exports: Record<string, unknown> = imports\n ? { __proto__: null }\n : (undefined as unknown as Record<string, unknown>)\n\n if (imports) {\n for (const { 0: key, 1: specifier } of Object.entries(imports)) {\n const fullPath = path.join(installedPath, specifier)\n exports[key] = require(fullPath)\n }\n }\n\n return {\n exports,\n tmpdir: installedPath,\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["isolation_exports", "__export", "isolatePackage", "__toCommonJS", "import_node_fs", "import_platform", "import_path", "import_operations", "import_paths", "_path", "getPath", "FS_CP_OPTIONS", "src", "resolveRealPath", "pathStr", "path", "fs", "mergePackageJson", "pkgJsonPath", "originalPkgJson", "pkgJson", "packageSpec", "options", "opts", "imports", "install", "onPackageJson", "optSourcePath", "sourcePath", "packageName", "spec", "trimmedPath", "pathToResolve", "parsed", "sanitizedName", "tempDir", "packageTempDir", "installedPath", "originalPackageJson", "spawn", "WIN32", "packageInstallSpec", "realInstalledPath", "scopedPath", "mergedPkgJson", "finalPkgJson", "exports", "key", "specifier", "fullPath"]
7
7
  }
@@ -1,3 +1,3 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var c=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var I=(e,n)=>{for(var t in n)c(e,t,{get:n[t],enumerable:!0})},x=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of _(n))!O.call(e,i)&&i!==t&&c(e,i,{get:()=>n[i],enumerable:!(r=S(n,i))||r.enumerable});return e};var P=e=>x(c({},"__esModule",{value:!0}),e);var G={};I(G,{normalizePackageJson:()=>v,resolveEscapedScope:()=>E,resolveOriginalPackageName:()=>D,unescapeScope:()=>m});module.exports=P(G);var g=require("../objects");const T=Array.isArray,s=Object.hasOwn;let o;function p(){return o===void 0&&(o=require("../constants/socket").REGISTRY_SCOPE_DELIMITER),o}let u;function y(){return u===void 0&&(u=require("../constants/socket").SOCKET_REGISTRY_SCOPE),u}let d;function C(){return d===void 0&&(d=require("../regexps").escapeRegExp),d}function h(){const e=p(),n=C(),t=e[0];return new RegExp(`^[^${n(t)}]+${n(e)}(?!${n(t)})`)}let f;function z(){return f===void 0&&(f=require("../external/normalize-package-data")),f}function v(e,n){const{preserve:t}={__proto__:null,...n};s(e,"version")||(e.version="0.0.0");const r=[["_id",void 0],["readme",void 0],...s(e,"bugs")?[]:[["bugs",void 0]],...s(e,"homepage")?[]:[["homepage",void 0]],...s(e,"name")?[]:[["name",void 0]],...T(t)?t.map(a=>[a,s(e,a)?e[a]:void 0]):[]];z()(e);const{findPackageExtensions:l}=require("./operations");e.name&&e.version&&(0,g.merge)(e,l(e.name,e.version));for(const{0:a,1:R}of r)e[a]=R;return e}function E(e){return h().exec(e)?.[0]||void 0}function D(e){const n=y(),t=e.startsWith(`${n}/`)?e.slice(n.length+1):e,r=E(t);return r?`${m(r)}/${t.slice(r.length)}`:t}function m(e){const n=p();return`@${e.slice(0,-n.length)}`}0&&(module.exports={normalizePackageJson,resolveEscapedScope,resolveOriginalPackageName,unescapeScope});
2
+ var c=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var P=(e,n)=>{for(var t in n)c(e,t,{get:n[t],enumerable:!0})},O=(e,n,t,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of _(n))!x.call(e,r)&&r!==t&&c(e,r,{get:()=>n[r],enumerable:!(i=S(n,r))||i.enumerable});return e};var I=e=>O(c({},"__esModule",{value:!0}),e);var Y={};P(Y,{normalizePackageJson:()=>D,resolveEscapedScope:()=>l,resolveOriginalPackageName:()=>G,unescapeScope:()=>R});module.exports=I(Y);var p=require("../objects");const T=Array.isArray,o=Object.hasOwn;let d;function m(){return d===void 0&&(d=require("../constants/socket").REGISTRY_SCOPE_DELIMITER),d}let g;function y(){return g===void 0&&(g=require("../constants/socket").SOCKET_REGISTRY_SCOPE),g}let f;function v(){return f===void 0&&(f=require("../regexps").escapeRegExp),f}function C(){const e=m(),n=v(),t=e[0];return new RegExp(`^[^${n(t)}]+${n(e)}(?!${n(t)})`)}let u;function h(){return u===void 0&&(u=require("../external/normalize-package-data")),u}let E;function z(){return E===void 0&&(E=require("#packages/operations").findPackageExtensions),E}function D(e,n){const{preserve:t}={__proto__:null,...n};o(e,"version")||(e.version="0.0.0");const i=[["_id",void 0],["readme",void 0],...o(e,"bugs")?[]:[["bugs",void 0]],...o(e,"homepage")?[]:[["homepage",void 0]],...o(e,"name")?[]:[["name",void 0]],...T(t)?t.map(a=>[a,o(e,a)?e[a]:void 0]):[]];if(h()(e),e.name&&e.version){const s=z()(e.name,e.version);s&&typeof s=="object"&&(0,p.merge)(e,s)}for(const{0:a,1:s}of i)e[a]=s;return e}function l(e){return C().exec(e)?.[0]||void 0}function G(e){const n=y(),t=e.startsWith(`${n}/`)?e.slice(n.length+1):e,i=l(t);return i?`${R(i)}/${t.slice(i.length)}`:t}function R(e){const n=m();return`@${e.slice(0,-n.length)}`}0&&(module.exports={normalizePackageJson,resolveEscapedScope,resolveOriginalPackageName,unescapeScope});
3
3
  //# sourceMappingURL=normalize.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/packages/normalize.ts"],
4
- "sourcesContent": ["/**\n * @fileoverview Package.json normalization utilities.\n */\n\nimport { merge } from '../objects'\n\nimport type { NormalizeOptions, PackageJson } from '../packages'\n\nconst ArrayIsArray = Array.isArray\nconst ObjectHasOwn = Object.hasOwn\n\n// Lazy load constants to avoid circular dependencies.\nlet _REGISTRY_SCOPE_DELIMITER: string | undefined\nfunction getRegistryScopeDelimiter(): string {\n if (_REGISTRY_SCOPE_DELIMITER === undefined) {\n _REGISTRY_SCOPE_DELIMITER =\n /*@__INLINE__*/ require('../constants/socket').REGISTRY_SCOPE_DELIMITER\n }\n return _REGISTRY_SCOPE_DELIMITER as string\n}\n\nlet _SOCKET_REGISTRY_SCOPE: string | undefined\nfunction getSocketRegistryScope(): string {\n if (_SOCKET_REGISTRY_SCOPE === undefined) {\n _SOCKET_REGISTRY_SCOPE =\n /*@__INLINE__*/ require('../constants/socket').SOCKET_REGISTRY_SCOPE\n }\n return _SOCKET_REGISTRY_SCOPE as string\n}\n\nlet _escapeRegExp: ((s: string) => string) | undefined\nfunction getEscapeRegExp(): (s: string) => string {\n if (_escapeRegExp === undefined) {\n _escapeRegExp = /*@__PURE__*/ require('../regexps').escapeRegExp\n }\n return _escapeRegExp as (s: string) => string\n}\n\nfunction getEscapedScopeRegExp(): RegExp {\n const REGISTRY_SCOPE_DELIMITER = getRegistryScopeDelimiter()\n const escapeRegExp = getEscapeRegExp()\n const firstChar = REGISTRY_SCOPE_DELIMITER[0] as string\n return new RegExp(\n `^[^${escapeRegExp(firstChar)}]+${escapeRegExp(REGISTRY_SCOPE_DELIMITER)}(?!${escapeRegExp(firstChar)})`,\n )\n}\n\nlet _normalizePackageData: typeof import('normalize-package-data') | undefined\n/**\n * Get the normalize-package-data module.\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getNormalizePackageData() {\n if (_normalizePackageData === undefined) {\n _normalizePackageData =\n /*@__PURE__*/ require('../external/normalize-package-data')\n }\n return _normalizePackageData as typeof import('normalize-package-data')\n}\n\n/**\n * Normalize a package.json object with standard npm package normalization.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function normalizePackageJson(\n pkgJson: PackageJson,\n options?: NormalizeOptions,\n): PackageJson {\n const { preserve } = { __proto__: null, ...options } as NormalizeOptions\n // Add default version if not present.\n if (!ObjectHasOwn(pkgJson, 'version')) {\n pkgJson.version = '0.0.0'\n }\n const preserved = [\n ['_id', undefined],\n ['readme', undefined],\n ...(ObjectHasOwn(pkgJson, 'bugs') ? [] : [['bugs', undefined]]),\n ...(ObjectHasOwn(pkgJson, 'homepage') ? [] : [['homepage', undefined]]),\n ...(ObjectHasOwn(pkgJson, 'name') ? [] : [['name', undefined]]),\n ...(ArrayIsArray(preserve)\n ? preserve.map(k => [\n k,\n ObjectHasOwn(pkgJson, k) ? pkgJson[k] : undefined,\n ])\n : []),\n ]\n const normalizePackageData = getNormalizePackageData()\n normalizePackageData(pkgJson)\n // Import findPackageExtensions from operations to avoid circular dependency.\n const { findPackageExtensions } = require('./operations')\n if (pkgJson.name && pkgJson.version) {\n merge(pkgJson, findPackageExtensions(pkgJson.name, pkgJson.version))\n }\n // Revert/remove properties we don't care to have normalized.\n // Properties with undefined values are omitted when saved as JSON.\n for (const { 0: key, 1: value } of preserved) {\n pkgJson[key as keyof typeof pkgJson] = value\n }\n return pkgJson\n}\n\n/**\n * Extract escaped scope from a Socket registry package name.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function resolveEscapedScope(\n sockRegPkgName: string,\n): string | undefined {\n const escapedScopeRegExp = getEscapedScopeRegExp()\n const match = escapedScopeRegExp.exec(sockRegPkgName)?.[0]\n return match || undefined\n}\n\n/**\n * Resolve original package name from Socket registry package name.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function resolveOriginalPackageName(sockRegPkgName: string): string {\n const SOCKET_REGISTRY_SCOPE = getSocketRegistryScope()\n const name = sockRegPkgName.startsWith(`${SOCKET_REGISTRY_SCOPE}/`)\n ? sockRegPkgName.slice(SOCKET_REGISTRY_SCOPE.length + 1)\n : sockRegPkgName\n const escapedScope = resolveEscapedScope(name)\n return escapedScope\n ? `${unescapeScope(escapedScope)}/${name.slice(escapedScope.length)}`\n : name\n}\n\n/**\n * Convert escaped scope to standard npm scope format.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function unescapeScope(escapedScope: string): string {\n const REGISTRY_SCOPE_DELIMITER = getRegistryScopeDelimiter()\n return `@${escapedScope.slice(0, -REGISTRY_SCOPE_DELIMITER.length)}`\n}\n"],
5
- "mappings": ";4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,EAAA,wBAAAC,EAAA,+BAAAC,EAAA,kBAAAC,IAAA,eAAAC,EAAAN,GAIA,IAAAO,EAAsB,sBAItB,MAAMC,EAAe,MAAM,QACrBC,EAAe,OAAO,OAG5B,IAAIC,EACJ,SAASC,GAAoC,CAC3C,OAAID,IAA8B,SAChCA,EACkB,QAAQ,qBAAqB,EAAE,0BAE5CA,CACT,CAEA,IAAIE,EACJ,SAASC,GAAiC,CACxC,OAAID,IAA2B,SAC7BA,EACkB,QAAQ,qBAAqB,EAAE,uBAE5CA,CACT,CAEA,IAAIE,EACJ,SAASC,GAAyC,CAChD,OAAID,IAAkB,SACpBA,EAA8B,QAAQ,YAAY,EAAE,cAE/CA,CACT,CAEA,SAASE,GAAgC,CACvC,MAAMC,EAA2BN,EAA0B,EACrDO,EAAeH,EAAgB,EAC/BI,EAAYF,EAAyB,CAAC,EAC5C,OAAO,IAAI,OACT,MAAMC,EAAaC,CAAS,CAAC,KAAKD,EAAaD,CAAwB,CAAC,MAAMC,EAAaC,CAAS,CAAC,GACvG,CACF,CAEA,IAAIC,EAKJ,SAASC,GAA0B,CACjC,OAAID,IAA0B,SAC5BA,EACgB,QAAQ,oCAAoC,GAEvDA,CACT,CAMO,SAASlB,EACdoB,EACAC,EACa,CACb,KAAM,CAAE,SAAAC,CAAS,EAAI,CAAE,UAAW,KAAM,GAAGD,CAAQ,EAE9Cd,EAAaa,EAAS,SAAS,IAClCA,EAAQ,QAAU,SAEpB,MAAMG,EAAY,CAChB,CAAC,MAAO,MAAS,EACjB,CAAC,SAAU,MAAS,EACpB,GAAIhB,EAAaa,EAAS,MAAM,EAAI,CAAC,EAAI,CAAC,CAAC,OAAQ,MAAS,CAAC,EAC7D,GAAIb,EAAaa,EAAS,UAAU,EAAI,CAAC,EAAI,CAAC,CAAC,WAAY,MAAS,CAAC,EACrE,GAAIb,EAAaa,EAAS,MAAM,EAAI,CAAC,EAAI,CAAC,CAAC,OAAQ,MAAS,CAAC,EAC7D,GAAId,EAAagB,CAAQ,EACrBA,EAAS,IAAIE,GAAK,CAChBA,EACAjB,EAAaa,EAASI,CAAC,EAAIJ,EAAQI,CAAC,EAAI,MAC1C,CAAC,EACD,CAAC,CACP,EAC6BL,EAAwB,EAChCC,CAAO,EAE5B,KAAM,CAAE,sBAAAK,CAAsB,EAAI,QAAQ,cAAc,EACpDL,EAAQ,MAAQA,EAAQ,YAC1B,SAAMA,EAASK,EAAsBL,EAAQ,KAAMA,EAAQ,OAAO,CAAC,EAIrE,SAAW,CAAE,EAAGM,EAAK,EAAGC,CAAM,IAAKJ,EACjCH,EAAQM,CAA2B,EAAIC,EAEzC,OAAOP,CACT,CAMO,SAASnB,EACd2B,EACoB,CAGpB,OAF2Bd,EAAsB,EAChB,KAAKc,CAAc,IAAI,CAAC,GACzC,MAClB,CAMO,SAAS1B,EAA2B0B,EAAgC,CACzE,MAAMC,EAAwBlB,EAAuB,EAC/CmB,EAAOF,EAAe,WAAW,GAAGC,CAAqB,GAAG,EAC9DD,EAAe,MAAMC,EAAsB,OAAS,CAAC,EACrDD,EACEG,EAAe9B,EAAoB6B,CAAI,EAC7C,OAAOC,EACH,GAAG5B,EAAc4B,CAAY,CAAC,IAAID,EAAK,MAAMC,EAAa,MAAM,CAAC,GACjED,CACN,CAMO,SAAS3B,EAAc4B,EAA8B,CAC1D,MAAMhB,EAA2BN,EAA0B,EAC3D,MAAO,IAAIsB,EAAa,MAAM,EAAG,CAAChB,EAAyB,MAAM,CAAC,EACpE",
6
- "names": ["normalize_exports", "__export", "normalizePackageJson", "resolveEscapedScope", "resolveOriginalPackageName", "unescapeScope", "__toCommonJS", "import_objects", "ArrayIsArray", "ObjectHasOwn", "_REGISTRY_SCOPE_DELIMITER", "getRegistryScopeDelimiter", "_SOCKET_REGISTRY_SCOPE", "getSocketRegistryScope", "_escapeRegExp", "getEscapeRegExp", "getEscapedScopeRegExp", "REGISTRY_SCOPE_DELIMITER", "escapeRegExp", "firstChar", "_normalizePackageData", "getNormalizePackageData", "pkgJson", "options", "preserve", "preserved", "k", "findPackageExtensions", "key", "value", "sockRegPkgName", "SOCKET_REGISTRY_SCOPE", "name", "escapedScope"]
4
+ "sourcesContent": ["/**\n * @fileoverview Package.json normalization utilities.\n */\n\nimport { merge } from '../objects'\n\nimport type { NormalizeOptions, PackageJson } from '../packages'\n\nconst ArrayIsArray = Array.isArray\nconst ObjectHasOwn = Object.hasOwn\n\n// Lazy load constants to avoid circular dependencies.\nlet _REGISTRY_SCOPE_DELIMITER: string | undefined\nfunction getRegistryScopeDelimiter(): string {\n if (_REGISTRY_SCOPE_DELIMITER === undefined) {\n _REGISTRY_SCOPE_DELIMITER =\n /*@__INLINE__*/ require('../constants/socket').REGISTRY_SCOPE_DELIMITER\n }\n return _REGISTRY_SCOPE_DELIMITER as string\n}\n\nlet _SOCKET_REGISTRY_SCOPE: string | undefined\nfunction getSocketRegistryScope(): string {\n if (_SOCKET_REGISTRY_SCOPE === undefined) {\n _SOCKET_REGISTRY_SCOPE =\n /*@__INLINE__*/ require('../constants/socket').SOCKET_REGISTRY_SCOPE\n }\n return _SOCKET_REGISTRY_SCOPE as string\n}\n\nlet _escapeRegExp: ((s: string) => string) | undefined\nfunction getEscapeRegExp(): (s: string) => string {\n if (_escapeRegExp === undefined) {\n _escapeRegExp = /*@__PURE__*/ require('../regexps').escapeRegExp\n }\n return _escapeRegExp as (s: string) => string\n}\n\nfunction getEscapedScopeRegExp(): RegExp {\n const REGISTRY_SCOPE_DELIMITER = getRegistryScopeDelimiter()\n const escapeRegExp = getEscapeRegExp()\n const firstChar = REGISTRY_SCOPE_DELIMITER[0] as string\n return new RegExp(\n `^[^${escapeRegExp(firstChar)}]+${escapeRegExp(REGISTRY_SCOPE_DELIMITER)}(?!${escapeRegExp(firstChar)})`,\n )\n}\n\nlet _normalizePackageData: typeof import('normalize-package-data') | undefined\n/**\n * Get the normalize-package-data module.\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getNormalizePackageData() {\n if (_normalizePackageData === undefined) {\n _normalizePackageData =\n /*@__PURE__*/ require('../external/normalize-package-data')\n }\n return _normalizePackageData as typeof import('normalize-package-data')\n}\n\nlet _findPackageExtensions:\n | ((name: string, version: string) => unknown)\n | undefined\n/**\n * Get the findPackageExtensions function from operations module.\n * Lazy loaded to avoid circular dependency.\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction _getFindPackageExtensions() {\n if (_findPackageExtensions === undefined) {\n // Dynamically import to avoid circular dependency.\n // Use path alias for reliable resolution in both test and production environments.\n const operations: {\n findPackageExtensions: (name: string, version: string) => unknown\n } = require('#packages/operations')\n _findPackageExtensions = operations.findPackageExtensions\n }\n return _findPackageExtensions as (name: string, version: string) => unknown\n}\n\n/**\n * Normalize a package.json object with standard npm package normalization.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function normalizePackageJson(\n pkgJson: PackageJson,\n options?: NormalizeOptions,\n): PackageJson {\n const { preserve } = { __proto__: null, ...options } as NormalizeOptions\n // Add default version if not present.\n if (!ObjectHasOwn(pkgJson, 'version')) {\n pkgJson.version = '0.0.0'\n }\n const preserved = [\n ['_id', undefined],\n ['readme', undefined],\n ...(ObjectHasOwn(pkgJson, 'bugs') ? [] : [['bugs', undefined]]),\n ...(ObjectHasOwn(pkgJson, 'homepage') ? [] : [['homepage', undefined]]),\n ...(ObjectHasOwn(pkgJson, 'name') ? [] : [['name', undefined]]),\n ...(ArrayIsArray(preserve)\n ? preserve.map(k => [\n k,\n ObjectHasOwn(pkgJson, k) ? pkgJson[k] : undefined,\n ])\n : []),\n ]\n const normalizePackageData = getNormalizePackageData()\n normalizePackageData(pkgJson)\n // Apply package extensions if name and version are present.\n if (pkgJson.name && pkgJson.version) {\n const findPackageExtensions = _getFindPackageExtensions()\n const extensions = findPackageExtensions(pkgJson.name, pkgJson.version)\n if (extensions && typeof extensions === 'object') {\n merge(pkgJson, extensions)\n }\n }\n // Revert/remove properties we don't care to have normalized.\n // Properties with undefined values are omitted when saved as JSON.\n for (const { 0: key, 1: value } of preserved) {\n pkgJson[key as keyof typeof pkgJson] = value\n }\n return pkgJson\n}\n\n/**\n * Extract escaped scope from a Socket registry package name.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function resolveEscapedScope(\n sockRegPkgName: string,\n): string | undefined {\n const escapedScopeRegExp = getEscapedScopeRegExp()\n const match = escapedScopeRegExp.exec(sockRegPkgName)?.[0]\n return match || undefined\n}\n\n/**\n * Resolve original package name from Socket registry package name.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function resolveOriginalPackageName(sockRegPkgName: string): string {\n const SOCKET_REGISTRY_SCOPE = getSocketRegistryScope()\n const name = sockRegPkgName.startsWith(`${SOCKET_REGISTRY_SCOPE}/`)\n ? sockRegPkgName.slice(SOCKET_REGISTRY_SCOPE.length + 1)\n : sockRegPkgName\n const escapedScope = resolveEscapedScope(name)\n return escapedScope\n ? `${unescapeScope(escapedScope)}/${name.slice(escapedScope.length)}`\n : name\n}\n\n/**\n * Convert escaped scope to standard npm scope format.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function unescapeScope(escapedScope: string): string {\n const REGISTRY_SCOPE_DELIMITER = getRegistryScopeDelimiter()\n return `@${escapedScope.slice(0, -REGISTRY_SCOPE_DELIMITER.length)}`\n}\n"],
5
+ "mappings": ";4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,EAAA,wBAAAC,EAAA,+BAAAC,EAAA,kBAAAC,IAAA,eAAAC,EAAAN,GAIA,IAAAO,EAAsB,sBAItB,MAAMC,EAAe,MAAM,QACrBC,EAAe,OAAO,OAG5B,IAAIC,EACJ,SAASC,GAAoC,CAC3C,OAAID,IAA8B,SAChCA,EACkB,QAAQ,qBAAqB,EAAE,0BAE5CA,CACT,CAEA,IAAIE,EACJ,SAASC,GAAiC,CACxC,OAAID,IAA2B,SAC7BA,EACkB,QAAQ,qBAAqB,EAAE,uBAE5CA,CACT,CAEA,IAAIE,EACJ,SAASC,GAAyC,CAChD,OAAID,IAAkB,SACpBA,EAA8B,QAAQ,YAAY,EAAE,cAE/CA,CACT,CAEA,SAASE,GAAgC,CACvC,MAAMC,EAA2BN,EAA0B,EACrDO,EAAeH,EAAgB,EAC/BI,EAAYF,EAAyB,CAAC,EAC5C,OAAO,IAAI,OACT,MAAMC,EAAaC,CAAS,CAAC,KAAKD,EAAaD,CAAwB,CAAC,MAAMC,EAAaC,CAAS,CAAC,GACvG,CACF,CAEA,IAAIC,EAKJ,SAASC,GAA0B,CACjC,OAAID,IAA0B,SAC5BA,EACgB,QAAQ,oCAAoC,GAEvDA,CACT,CAEA,IAAIE,EAQJ,SAASC,GAA4B,CACnC,OAAID,IAA2B,SAM7BA,EADI,QAAQ,sBAAsB,EACE,uBAE/BA,CACT,CAMO,SAASpB,EACdsB,EACAC,EACa,CACb,KAAM,CAAE,SAAAC,CAAS,EAAI,CAAE,UAAW,KAAM,GAAGD,CAAQ,EAE9ChB,EAAae,EAAS,SAAS,IAClCA,EAAQ,QAAU,SAEpB,MAAMG,EAAY,CAChB,CAAC,MAAO,MAAS,EACjB,CAAC,SAAU,MAAS,EACpB,GAAIlB,EAAae,EAAS,MAAM,EAAI,CAAC,EAAI,CAAC,CAAC,OAAQ,MAAS,CAAC,EAC7D,GAAIf,EAAae,EAAS,UAAU,EAAI,CAAC,EAAI,CAAC,CAAC,WAAY,MAAS,CAAC,EACrE,GAAIf,EAAae,EAAS,MAAM,EAAI,CAAC,EAAI,CAAC,CAAC,OAAQ,MAAS,CAAC,EAC7D,GAAIhB,EAAakB,CAAQ,EACrBA,EAAS,IAAIE,GAAK,CAChBA,EACAnB,EAAae,EAASI,CAAC,EAAIJ,EAAQI,CAAC,EAAI,MAC1C,CAAC,EACD,CAAC,CACP,EAIA,GAH6BP,EAAwB,EAChCG,CAAO,EAExBA,EAAQ,MAAQA,EAAQ,QAAS,CAEnC,MAAMK,EADwBN,EAA0B,EACfC,EAAQ,KAAMA,EAAQ,OAAO,EAClEK,GAAc,OAAOA,GAAe,aACtC,SAAML,EAASK,CAAU,CAE7B,CAGA,SAAW,CAAE,EAAGC,EAAK,EAAGC,CAAM,IAAKJ,EACjCH,EAAQM,CAA2B,EAAIC,EAEzC,OAAOP,CACT,CAMO,SAASrB,EACd6B,EACoB,CAGpB,OAF2BhB,EAAsB,EAChB,KAAKgB,CAAc,IAAI,CAAC,GACzC,MAClB,CAMO,SAAS5B,EAA2B4B,EAAgC,CACzE,MAAMC,EAAwBpB,EAAuB,EAC/CqB,EAAOF,EAAe,WAAW,GAAGC,CAAqB,GAAG,EAC9DD,EAAe,MAAMC,EAAsB,OAAS,CAAC,EACrDD,EACEG,EAAehC,EAAoB+B,CAAI,EAC7C,OAAOC,EACH,GAAG9B,EAAc8B,CAAY,CAAC,IAAID,EAAK,MAAMC,EAAa,MAAM,CAAC,GACjED,CACN,CAMO,SAAS7B,EAAc8B,EAA8B,CAC1D,MAAMlB,EAA2BN,EAA0B,EAC3D,MAAO,IAAIwB,EAAa,MAAM,EAAG,CAAClB,EAAyB,MAAM,CAAC,EACpE",
6
+ "names": ["normalize_exports", "__export", "normalizePackageJson", "resolveEscapedScope", "resolveOriginalPackageName", "unescapeScope", "__toCommonJS", "import_objects", "ArrayIsArray", "ObjectHasOwn", "_REGISTRY_SCOPE_DELIMITER", "getRegistryScopeDelimiter", "_SOCKET_REGISTRY_SCOPE", "getSocketRegistryScope", "_escapeRegExp", "getEscapeRegExp", "getEscapedScopeRegExp", "REGISTRY_SCOPE_DELIMITER", "escapeRegExp", "firstChar", "_normalizePackageData", "getNormalizePackageData", "_findPackageExtensions", "_getFindPackageExtensions", "pkgJson", "options", "preserve", "preserved", "k", "extensions", "key", "value", "sockRegPkgName", "SOCKET_REGISTRY_SCOPE", "name", "escapedScope"]
7
7
  }
@@ -1,3 +1,3 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var y=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var A=(t,e)=>{for(var a in e)y(t,a,{get:e[a],enumerable:!0})},I=(t,e,a,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of $(e))!C.call(t,r)&&r!==a&&y(t,r,{get:()=>e[r],enumerable:!(n=q(e,r))||n.enumerable});return t};var L=t=>I(y({},"__esModule",{value:!0}),t);var oe={};A(oe,{extractPackage:()=>Q,findPackageExtensions:()=>V,getReleaseTag:()=>X,packPackage:()=>Z,readPackageJson:()=>T,readPackageJsonSync:()=>ee,resolveGitHubTgzUrl:()=>te,resolvePackageName:()=>ne,resolveRegistryPackageName:()=>ae});module.exports=L(oe);var m=require("#constants/packages"),z=require("#constants/process"),E=require("#constants/socket"),d=require("../fs"),k=require("../objects"),S=require("./normalize"),U=require("./paths"),s=require("./specs");const G=(0,z.getAbortSignal)(),M=(0,m.getPackageExtensions)(),H=(0,m.getPackumentCache)(),F=(0,m.getPacoteCachePath)();let b;function N(){return b===void 0&&(b=require("../external/cacache")),b}let x;function v(){return x===void 0&&(x=require("../external/make-fetch-happen").defaults({cachePath:F,cache:"force-cache"})),x}let _;function D(){return _===void 0&&(_=require("../external/npm-package-arg")),_}let O;function W(){return O===void 0&&(O=require("../external/libnpmpack")),O}let w;function Y(){return w===void 0&&(w=require("../external/@socketregistry/packageurl-js").PackageURL),w}let J;function B(){return J===void 0&&(J=require("../external/pacote")),J}let R;function K(){return R===void 0&&(R=require("../external/semver")),R}async function Q(t,e,a){let n=a,r=e;arguments.length===2&&typeof e=="function"&&(n=e,r=void 0);const{dest:i,tmpPrefix:o,...c}={__proto__:null,...r},u={packumentCache:H,preferOffline:!0,...c},g=B();typeof i=="string"?(await g.extract(t,i,u),typeof n=="function"&&await n(i)):await N().tmp.withTmp(F,{tmpPrefix:o},async p=>{await g.extract(t,p,u),typeof n=="function"&&await n(p)})}function V(t,e){let a;for(const n of M){const r=String(n[0]),i=n[1],o=r.lastIndexOf("@"),c=r.slice(0,o);if(t===c){const u=K(),g=r.slice(o+1);u.satisfies(e,g)&&(a===void 0&&(a={}),typeof i=="object"&&i!==null&&(0,k.merge)(a,i))}}return a}function X(t){if(!t)return"";let e=-1;return t.startsWith("@")?e=t.indexOf("@",1):e=t.indexOf("@"),e!==-1?t.slice(e+1):""}async function Z(t,e){return await W()(t,{__proto__:null,signal:G,...e,packumentCache:H,preferOffline:!0})}async function T(t,e){const{editable:a,normalize:n,throws:r,...i}={__proto__:null,...e},o=await(0,d.readJson)((0,U.resolvePackageJsonPath)(t),{throws:r});if(o){if(a){const{toEditablePackageJson:c}=require("./editable");return await c(o,{path:t,normalize:n,...i})}return n?(0,S.normalizePackageJson)(o,i):o}}function ee(t,e){const{editable:a,normalize:n,throws:r,...i}={__proto__:null,...e},o=(0,d.readJsonSync)((0,U.resolvePackageJsonPath)(t),{throws:r});if(o){if(a){const{toEditablePackageJsonSync:c}=require("./editable");return c(o,{path:t,normalize:n,...i})}return n?(0,S.normalizePackageJson)(o,i):o}}async function te(t,e){const a=(0,k.isObjectObject)(e),n=a?e:await T(e,{normalize:!0});if(!n)return"";const{version:r}=n,o=D()(t,a?void 0:e);if((0,s.isGitHubTgzSpec)(o))return o.saveSpec||"";const u=(0,s.isGitHubUrlSpec)(o),g=n.repository,{project:l,user:p}=(u?o.hosted:(0,s.getRepoUrlDetails)(g?.url))||{project:"",user:""};if(p&&l){let f="";if(u)f=(0,s.gitHubTagRefUrl)(p,l,o.gitCommittish||"");else{const P=v(),h=r;f=(0,s.gitHubTagRefUrl)(p,l,`v${h}`),(await P(f,{method:"head"})).ok||(f=(0,s.gitHubTagRefUrl)(p,l,h),(await P(f,{method:"head"})).ok||(f=""))}if(f){const j=(await(await v()(f)).json())?.object?.sha;if(j)return(0,s.gitHubTgzUrl)(p,l,j)}}return""}function ne(t,e="/"){const{name:a,namespace:n}=t;return`${n?`${n}${e}`:""}${a}`}function ae(t){const e=Y().fromString(`pkg:npm/${t}`);return e.namespace?`${e.namespace.slice(1)}${E.REGISTRY_SCOPE_DELIMITER}${e.name}`:t}0&&(module.exports={extractPackage,findPackageExtensions,getReleaseTag,packPackage,readPackageJson,readPackageJsonSync,resolveGitHubTgzUrl,resolvePackageName,resolveRegistryPackageName});
2
+ var J=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var L=(n,e)=>{for(var a in e)J(n,a,{get:e[a],enumerable:!0})},G=(n,e,a,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of A(e))!I.call(n,r)&&r!==a&&J(n,r,{get:()=>e[r],enumerable:!(t=C(e,r))||t.enumerable});return n};var M=n=>G(J({},"__esModule",{value:!0}),n);var ce={};L(ce,{extractPackage:()=>ee,findPackageExtensions:()=>ne,getReleaseTag:()=>te,packPackage:()=>ae,readPackageJson:()=>$,readPackageJsonSync:()=>oe,resolveGitHubTgzUrl:()=>re,resolvePackageName:()=>ie,resolveRegistryPackageName:()=>se});module.exports=M(ce);var k=require("#constants/packages"),H=require("#constants/process"),T=require("#constants/socket"),d=require("../fs"),m=require("../objects"),U=require("./normalize"),j=require("./paths"),s=require("./specs");const N=(0,H.getAbortSignal)(),D=(0,k.getPackageExtensions)(),F=(0,k.getPackumentCache)(),q=(0,k.getPacoteCachePath)();let b;function W(){return b===void 0&&(b=require("../external/cacache")),b}let y;function z(){return y===void 0&&(y=require("../external/make-fetch-happen").defaults({cachePath:q,cache:"force-cache"})),y}let x;function Y(){return x===void 0&&(x=require("../external/npm-package-arg")),x}let _;function B(){return _===void 0&&(_=require("../external/libnpmpack")),_}let w;function K(){return w===void 0&&(w=require("../external/@socketregistry/packageurl-js").PackageURL),w}let O;function Q(){return O===void 0&&(O=require("../external/pacote")),O}let E;function V(){return E===void 0&&(E=require("../external/semver")),E}let S;function X(){return S===void 0&&(S=require("#packages/editable").toEditablePackageJson),S}let R;function Z(){return R===void 0&&(R=require("#packages/editable").toEditablePackageJsonSync),R}async function ee(n,e,a){let t=a,r=e;arguments.length===2&&typeof e=="function"&&(t=e,r=void 0);const{dest:i,tmpPrefix:o,...f}={__proto__:null,...r},g={packumentCache:F,preferOffline:!0,...f},u=Q();typeof i=="string"?(await u.extract(n,i,g),typeof t=="function"&&await t(i)):await W().tmp.withTmp(q,{tmpPrefix:o},async c=>{await u.extract(n,c,g),typeof t=="function"&&await t(c)})}function ne(n,e){let a;for(const t of D){const r=String(t[0]),i=t[1],o=r.lastIndexOf("@"),f=r.slice(0,o);if(n===f){const g=V(),u=r.slice(o+1);g.satisfies(e,u)&&(a===void 0&&(a={}),typeof i=="object"&&i!==null&&(0,m.merge)(a,i))}}return a}function te(n){if(!n)return"";let e=-1;return n.startsWith("@")?e=n.indexOf("@",1):e=n.indexOf("@"),e!==-1?n.slice(e+1):""}async function ae(n,e){return await B()(n,{__proto__:null,signal:N,...e,packumentCache:F,preferOffline:!0})}async function $(n,e){const{editable:a,normalize:t,throws:r,...i}={__proto__:null,...e},o=await(0,d.readJson)((0,j.resolvePackageJsonPath)(n),{throws:r});if(o)return a?await X()(o,{path:n,normalize:t,...i}):t?(0,U.normalizePackageJson)(o,i):o}function oe(n,e){const{editable:a,normalize:t,throws:r,...i}={__proto__:null,...e},o=(0,d.readJsonSync)((0,j.resolvePackageJsonPath)(n),{throws:r});if(o)return a?Z()(o,{path:n,normalize:t,...i}):t?(0,U.normalizePackageJson)(o,i):o}async function re(n,e){const a=(0,m.isObjectObject)(e),t=a?e:await $(e,{normalize:!0});if(!t)return"";const{version:r}=t,o=Y()(n,a?void 0:e);if((0,s.isGitHubTgzSpec)(o))return o.saveSpec||"";const g=(0,s.isGitHubUrlSpec)(o),u=t.repository,{project:l,user:c}=(g?o.hosted:(0,s.getRepoUrlDetails)(u?.url))||{project:"",user:""};if(c&&l){let p="";if(g)p=(0,s.gitHubTagRefUrl)(c,l,o.gitCommittish||"");else{const P=z(),h=r;p=(0,s.gitHubTagRefUrl)(c,l,`v${h}`),(await P(p,{method:"head"})).ok||(p=(0,s.gitHubTagRefUrl)(c,l,h),(await P(p,{method:"head"})).ok||(p=""))}if(p){const v=(await(await z()(p)).json())?.object?.sha;if(v)return(0,s.gitHubTgzUrl)(c,l,v)}}return""}function ie(n,e="/"){const{name:a,namespace:t}=n;return`${t?`${t}${e}`:""}${a}`}function se(n){const e=K().fromString(`pkg:npm/${n}`);return e.namespace?`${e.namespace.slice(1)}${T.REGISTRY_SCOPE_DELIMITER}${e.name}`:n}0&&(module.exports={extractPackage,findPackageExtensions,getReleaseTag,packPackage,readPackageJson,readPackageJsonSync,resolveGitHubTgzUrl,resolvePackageName,resolveRegistryPackageName});
3
3
  //# sourceMappingURL=operations.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/packages/operations.ts"],
4
- "sourcesContent": ["/**\n * @fileoverview Package operations including extraction, packing, and I/O.\n */\n\nimport {\n getPackageExtensions,\n getPackumentCache,\n getPacoteCachePath,\n} from '#constants/packages'\nimport { getAbortSignal } from '#constants/process'\nimport { REGISTRY_SCOPE_DELIMITER } from '#constants/socket'\n\nconst abortSignal = getAbortSignal()\nconst packageExtensions = getPackageExtensions()\nconst packumentCache = getPackumentCache()\nconst pacoteCachePath = getPacoteCachePath()\n\nimport { readJson, readJsonSync } from '../fs'\nimport { isObjectObject, merge } from '../objects'\nimport type {\n ExtractOptions,\n NormalizeOptions,\n PackageJson,\n PacoteOptions,\n ReadPackageJsonOptions,\n} from '../packages'\nimport { normalizePackageJson } from './normalize'\nimport { resolvePackageJsonPath } from './paths'\nimport {\n getRepoUrlDetails,\n gitHubTagRefUrl,\n gitHubTgzUrl,\n isGitHubTgzSpec,\n isGitHubUrlSpec,\n} from './specs'\n\nlet _cacache: typeof import('cacache') | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getCacache() {\n if (_cacache === undefined) {\n _cacache = /*@__PURE__*/ require('../external/cacache')\n }\n return _cacache as typeof import('cacache')\n}\n\n// Type for make-fetch-happen fetcher function.\ntype MakeFetchHappenFetcher = ((\n url: string,\n opts?: unknown,\n) => Promise<Response>) & {\n defaults: (opts: unknown) => MakeFetchHappenFetcher\n delete: (url: string, opts?: unknown) => Promise<boolean>\n}\n\nlet _fetcher: MakeFetchHappenFetcher | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getFetcher() {\n if (_fetcher === undefined) {\n const makeFetchHappen =\n /*@__PURE__*/ require('../external/make-fetch-happen')\n _fetcher = makeFetchHappen.defaults({\n cachePath: pacoteCachePath,\n // Prefer-offline: Staleness checks for cached data will be bypassed, but\n // missing data will be requested from the server.\n // https://github.com/npm/make-fetch-happen?tab=readme-ov-file#--optscache\n cache: 'force-cache',\n })\n }\n return _fetcher as MakeFetchHappenFetcher\n}\n\nlet _npmPackageArg: typeof import('npm-package-arg') | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getNpmPackageArg() {\n if (_npmPackageArg === undefined) {\n _npmPackageArg = /*@__PURE__*/ require('../external/npm-package-arg')\n }\n return _npmPackageArg as typeof import('npm-package-arg')\n}\n\nlet _pack: typeof import('../external/libnpmpack') | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getPack() {\n if (_pack === undefined) {\n _pack = /*@__PURE__*/ require('../external/libnpmpack')\n }\n return _pack as typeof import('../external/libnpmpack')\n}\n\nlet _PackageURL:\n | typeof import('@socketregistry/packageurl-js').PackageURL\n | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getPackageURL() {\n if (_PackageURL === undefined) {\n // The 'packageurl-js' package is browser safe.\n const packageUrlJs =\n /*@__PURE__*/ require('../external/@socketregistry/packageurl-js')\n _PackageURL = packageUrlJs.PackageURL\n }\n return _PackageURL as typeof import('@socketregistry/packageurl-js').PackageURL\n}\n\nlet _pacote: typeof import('pacote') | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getPacote() {\n if (_pacote === undefined) {\n _pacote = /*@__PURE__*/ require('../external/pacote')\n }\n return _pacote as typeof import('pacote')\n}\n\nlet _semver: typeof import('semver') | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getSemver() {\n if (_semver === undefined) {\n // The 'semver' package is browser safe.\n _semver = /*@__PURE__*/ require('../external/semver')\n }\n return _semver as typeof import('semver')\n}\n\n/**\n * Extract a package to a destination directory.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport async function extractPackage(\n pkgNameOrId: string,\n options?: ExtractOptions,\n callback?: (destPath: string) => Promise<unknown>,\n): Promise<void> {\n let actualCallback = callback\n let actualOptions = options\n // biome-ignore lint/complexity/noArguments: Function overload support.\n if (arguments.length === 2 && typeof options === 'function') {\n actualCallback = options\n actualOptions = undefined\n }\n const { dest, tmpPrefix, ...extractOptions_ } = {\n __proto__: null,\n ...actualOptions,\n } as ExtractOptions\n const extractOptions = {\n packumentCache,\n preferOffline: true,\n ...extractOptions_,\n }\n const pacote = getPacote()\n if (typeof dest === 'string') {\n await pacote.extract(pkgNameOrId, dest, extractOptions)\n if (typeof actualCallback === 'function') {\n await actualCallback(dest)\n }\n } else {\n // The DefinitelyTyped types for cacache.tmp.withTmp are incorrect.\n // It DOES returns a promise.\n const cacache = getCacache()\n await cacache.tmp.withTmp(\n pacoteCachePath,\n { tmpPrefix },\n async (tmpDirPath: string) => {\n await pacote.extract(pkgNameOrId, tmpDirPath, extractOptions)\n if (typeof actualCallback === 'function') {\n await actualCallback(tmpDirPath)\n }\n },\n )\n }\n}\n\n/**\n * Find package extensions for a given package.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function findPackageExtensions(\n pkgName: string,\n pkgVer: string,\n): unknown {\n let result: unknown\n for (const entry of packageExtensions) {\n const selector = String(entry[0])\n const ext = entry[1]\n const lastAtSignIndex = selector.lastIndexOf('@')\n const name = selector.slice(0, lastAtSignIndex)\n if (pkgName === name) {\n const semver = getSemver()\n const range = selector.slice(lastAtSignIndex + 1)\n if (semver.satisfies(pkgVer, range)) {\n if (result === undefined) {\n result = {}\n }\n if (typeof ext === 'object' && ext !== null) {\n merge(result as object, ext)\n }\n }\n }\n }\n return result\n}\n\n/**\n * Get the release tag for a version.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function getReleaseTag(spec: string): string {\n if (!spec) {\n return ''\n }\n // Handle scoped packages like @scope/package vs @scope/package@tag.\n let atIndex = -1\n if (spec.startsWith('@')) {\n // Find the second @ for scoped packages.\n atIndex = spec.indexOf('@', 1)\n } else {\n // Find the first @ for unscoped packages.\n atIndex = spec.indexOf('@')\n }\n if (atIndex !== -1) {\n return spec.slice(atIndex + 1)\n }\n return ''\n}\n\n/**\n * Pack a package tarball using pacote.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport async function packPackage(\n spec: string,\n options?: PacoteOptions,\n): Promise<unknown> {\n const pack = getPack()\n return await pack(spec, {\n __proto__: null,\n signal: abortSignal,\n ...options,\n packumentCache,\n preferOffline: true,\n } as PacoteOptions)\n}\n\n/**\n * Read and parse a package.json file asynchronously.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport async function readPackageJson(\n filepath: string,\n options?: ReadPackageJsonOptions,\n): Promise<PackageJson | undefined> {\n const { editable, normalize, throws, ...normalizeOptions } = {\n __proto__: null,\n ...options,\n } as ReadPackageJsonOptions\n const pkgJson = (await readJson(resolvePackageJsonPath(filepath), {\n throws,\n })) as PackageJson | undefined\n if (pkgJson) {\n if (editable) {\n // Import toEditablePackageJson to avoid circular dependency.\n const { toEditablePackageJson } = require('./editable')\n return await toEditablePackageJson(pkgJson, {\n path: filepath,\n normalize,\n ...normalizeOptions,\n })\n }\n return normalize ? normalizePackageJson(pkgJson, normalizeOptions) : pkgJson\n }\n return undefined\n}\n\n/**\n * Read and parse package.json from a file path synchronously.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function readPackageJsonSync(\n filepath: string,\n options?: NormalizeOptions & { editable?: boolean; throws?: boolean },\n): PackageJson | undefined {\n const { editable, normalize, throws, ...normalizeOptions } = {\n __proto__: null,\n ...options,\n } as NormalizeOptions & {\n editable?: boolean\n throws?: boolean\n normalize?: boolean\n }\n const pkgJson = readJsonSync(resolvePackageJsonPath(filepath), { throws }) as\n | PackageJson\n | undefined\n if (pkgJson) {\n if (editable) {\n // Import toEditablePackageJsonSync to avoid circular dependency.\n const { toEditablePackageJsonSync } = require('./editable')\n return toEditablePackageJsonSync(pkgJson, {\n path: filepath,\n normalize,\n ...normalizeOptions,\n })\n }\n return normalize ? normalizePackageJson(pkgJson, normalizeOptions) : pkgJson\n }\n return undefined\n}\n\n/**\n * Resolve GitHub tarball URL for a package specifier.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport async function resolveGitHubTgzUrl(\n pkgNameOrId: string,\n where?: unknown,\n): Promise<string> {\n const whereIsPkgJson = isObjectObject(where)\n const pkgJson = whereIsPkgJson\n ? where\n : await readPackageJson(where as string, { normalize: true })\n if (!pkgJson) {\n return ''\n }\n const { version } = pkgJson\n const npmPackageArg = getNpmPackageArg()\n const parsedSpec = npmPackageArg(\n pkgNameOrId,\n whereIsPkgJson ? undefined : (where as string),\n )\n const isTarballUrl = isGitHubTgzSpec(parsedSpec)\n if (isTarballUrl) {\n return parsedSpec.saveSpec || ''\n }\n const isGitHubUrl = isGitHubUrlSpec(parsedSpec)\n const repository = pkgJson.repository as { url?: string }\n const { project, user } = (isGitHubUrl\n ? parsedSpec.hosted\n : getRepoUrlDetails(repository?.url)) || { project: '', user: '' }\n\n if (user && project) {\n let apiUrl = ''\n if (isGitHubUrl) {\n apiUrl = gitHubTagRefUrl(user, project, parsedSpec.gitCommittish || '')\n } else {\n const fetcher = getFetcher()\n const versionStr = version as string\n // First try to resolve the sha for a tag starting with \"v\", e.g. v1.2.3.\n apiUrl = gitHubTagRefUrl(user, project, `v${versionStr}`)\n if (!(await fetcher(apiUrl, { method: 'head' })).ok) {\n // If a sha isn't found, try again with the \"v\" removed, e.g. 1.2.3.\n apiUrl = gitHubTagRefUrl(user, project, versionStr)\n if (!(await fetcher(apiUrl, { method: 'head' })).ok) {\n apiUrl = ''\n }\n }\n }\n if (apiUrl) {\n const fetcher = getFetcher()\n const resp = await fetcher(apiUrl)\n const json = (await resp.json()) as { object?: { sha?: string } }\n const sha = json?.object?.sha\n if (sha) {\n return gitHubTgzUrl(user, project, sha)\n }\n }\n }\n return ''\n}\n\n/**\n * Resolve full package name from a PURL object with custom delimiter.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function resolvePackageName(\n purlObj: { name: string; namespace?: string },\n delimiter: string = '/',\n): string {\n const { name, namespace } = purlObj\n return `${namespace ? `${namespace}${delimiter}` : ''}${name}`\n}\n\n/**\n * Convert npm package name to Socket registry format with delimiter.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function resolveRegistryPackageName(pkgName: string): string {\n const purlObj = getPackageURL().fromString(`pkg:npm/${pkgName}`)\n return purlObj.namespace\n ? `${purlObj.namespace.slice(1)}${REGISTRY_SCOPE_DELIMITER}${purlObj.name}`\n : pkgName\n}\n\n// Re-export types from lib/packages.\nexport type { PackageJson } from '../packages'\n"],
5
- "mappings": "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",
6
- "names": ["operations_exports", "__export", "extractPackage", "findPackageExtensions", "getReleaseTag", "packPackage", "readPackageJson", "readPackageJsonSync", "resolveGitHubTgzUrl", "resolvePackageName", "resolveRegistryPackageName", "__toCommonJS", "import_packages", "import_process", "import_socket", "import_fs", "import_objects", "import_normalize", "import_paths", "import_specs", "abortSignal", "packageExtensions", "packumentCache", "pacoteCachePath", "_cacache", "getCacache", "_fetcher", "getFetcher", "_npmPackageArg", "getNpmPackageArg", "_pack", "getPack", "_PackageURL", "getPackageURL", "_pacote", "getPacote", "_semver", "getSemver", "pkgNameOrId", "options", "callback", "actualCallback", "actualOptions", "dest", "tmpPrefix", "extractOptions_", "extractOptions", "pacote", "tmpDirPath", "pkgName", "pkgVer", "result", "entry", "selector", "ext", "lastAtSignIndex", "name", "semver", "range", "spec", "atIndex", "filepath", "editable", "normalize", "throws", "normalizeOptions", "pkgJson", "toEditablePackageJson", "toEditablePackageJsonSync", "where", "whereIsPkgJson", "version", "parsedSpec", "isGitHubUrl", "repository", "project", "user", "apiUrl", "fetcher", "versionStr", "sha", "purlObj", "delimiter", "namespace"]
4
+ "sourcesContent": ["/**\n * @fileoverview Package operations including extraction, packing, and I/O.\n */\n\nimport {\n getPackageExtensions,\n getPackumentCache,\n getPacoteCachePath,\n} from '#constants/packages'\nimport { getAbortSignal } from '#constants/process'\nimport { REGISTRY_SCOPE_DELIMITER } from '#constants/socket'\n\nconst abortSignal = getAbortSignal()\nconst packageExtensions = getPackageExtensions()\nconst packumentCache = getPackumentCache()\nconst pacoteCachePath = getPacoteCachePath()\n\nimport { readJson, readJsonSync } from '../fs'\nimport { isObjectObject, merge } from '../objects'\nimport type {\n ExtractOptions,\n NormalizeOptions,\n PackageJson,\n PacoteOptions,\n ReadPackageJsonOptions,\n} from '../packages'\nimport { normalizePackageJson } from './normalize'\nimport { resolvePackageJsonPath } from './paths'\nimport {\n getRepoUrlDetails,\n gitHubTagRefUrl,\n gitHubTgzUrl,\n isGitHubTgzSpec,\n isGitHubUrlSpec,\n} from './specs'\n\nlet _cacache: typeof import('cacache') | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getCacache() {\n if (_cacache === undefined) {\n _cacache = /*@__PURE__*/ require('../external/cacache')\n }\n return _cacache as typeof import('cacache')\n}\n\n// Type for make-fetch-happen fetcher function.\ntype MakeFetchHappenFetcher = ((\n url: string,\n opts?: unknown,\n) => Promise<Response>) & {\n defaults: (opts: unknown) => MakeFetchHappenFetcher\n delete: (url: string, opts?: unknown) => Promise<boolean>\n}\n\nlet _fetcher: MakeFetchHappenFetcher | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getFetcher() {\n if (_fetcher === undefined) {\n const makeFetchHappen =\n /*@__PURE__*/ require('../external/make-fetch-happen')\n _fetcher = makeFetchHappen.defaults({\n cachePath: pacoteCachePath,\n // Prefer-offline: Staleness checks for cached data will be bypassed, but\n // missing data will be requested from the server.\n // https://github.com/npm/make-fetch-happen?tab=readme-ov-file#--optscache\n cache: 'force-cache',\n })\n }\n return _fetcher as MakeFetchHappenFetcher\n}\n\nlet _npmPackageArg: typeof import('npm-package-arg') | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getNpmPackageArg() {\n if (_npmPackageArg === undefined) {\n _npmPackageArg = /*@__PURE__*/ require('../external/npm-package-arg')\n }\n return _npmPackageArg as typeof import('npm-package-arg')\n}\n\nlet _pack: typeof import('../external/libnpmpack') | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getPack() {\n if (_pack === undefined) {\n _pack = /*@__PURE__*/ require('../external/libnpmpack')\n }\n return _pack as typeof import('../external/libnpmpack')\n}\n\nlet _PackageURL:\n | typeof import('@socketregistry/packageurl-js').PackageURL\n | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getPackageURL() {\n if (_PackageURL === undefined) {\n // The 'packageurl-js' package is browser safe.\n const packageUrlJs =\n /*@__PURE__*/ require('../external/@socketregistry/packageurl-js')\n _PackageURL = packageUrlJs.PackageURL\n }\n return _PackageURL as typeof import('@socketregistry/packageurl-js').PackageURL\n}\n\nlet _pacote: typeof import('pacote') | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getPacote() {\n if (_pacote === undefined) {\n _pacote = /*@__PURE__*/ require('../external/pacote')\n }\n return _pacote as typeof import('pacote')\n}\n\nlet _semver: typeof import('semver') | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getSemver() {\n if (_semver === undefined) {\n // The 'semver' package is browser safe.\n _semver = /*@__PURE__*/ require('../external/semver')\n }\n return _semver as typeof import('semver')\n}\n\nlet _toEditablePackageJson:\n | ((pkgJson: PackageJson, options?: unknown) => Promise<PackageJson>)\n | undefined\n/**\n * Get the toEditablePackageJson function from editable module.\n * Lazy loaded to avoid circular dependency.\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction _getToEditablePackageJson() {\n if (_toEditablePackageJson === undefined) {\n // Use path alias for reliable resolution in both test and production environments.\n _toEditablePackageJson =\n /*@__PURE__*/ require('#packages/editable').toEditablePackageJson\n }\n return _toEditablePackageJson as (\n pkgJson: PackageJson,\n options?: unknown,\n ) => Promise<PackageJson>\n}\n\nlet _toEditablePackageJsonSync:\n | ((pkgJson: PackageJson, options?: unknown) => PackageJson)\n | undefined\n/**\n * Get the toEditablePackageJsonSync function from editable module.\n * Lazy loaded to avoid circular dependency.\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction _getToEditablePackageJsonSync() {\n if (_toEditablePackageJsonSync === undefined) {\n // Use path alias for reliable resolution in both test and production environments.\n _toEditablePackageJsonSync =\n /*@__PURE__*/ require('#packages/editable').toEditablePackageJsonSync\n }\n return _toEditablePackageJsonSync as (\n pkgJson: PackageJson,\n options?: unknown,\n ) => PackageJson\n}\n\n/**\n * Extract a package to a destination directory.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport async function extractPackage(\n pkgNameOrId: string,\n options?: ExtractOptions,\n callback?: (destPath: string) => Promise<unknown>,\n): Promise<void> {\n let actualCallback = callback\n let actualOptions = options\n // biome-ignore lint/complexity/noArguments: Function overload support.\n if (arguments.length === 2 && typeof options === 'function') {\n actualCallback = options\n actualOptions = undefined\n }\n const { dest, tmpPrefix, ...extractOptions_ } = {\n __proto__: null,\n ...actualOptions,\n } as ExtractOptions\n const extractOptions = {\n packumentCache,\n preferOffline: true,\n ...extractOptions_,\n }\n const pacote = getPacote()\n if (typeof dest === 'string') {\n await pacote.extract(pkgNameOrId, dest, extractOptions)\n if (typeof actualCallback === 'function') {\n await actualCallback(dest)\n }\n } else {\n // The DefinitelyTyped types for cacache.tmp.withTmp are incorrect.\n // It DOES returns a promise.\n const cacache = getCacache()\n await cacache.tmp.withTmp(\n pacoteCachePath,\n { tmpPrefix },\n async (tmpDirPath: string) => {\n await pacote.extract(pkgNameOrId, tmpDirPath, extractOptions)\n if (typeof actualCallback === 'function') {\n await actualCallback(tmpDirPath)\n }\n },\n )\n }\n}\n\n/**\n * Find package extensions for a given package.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function findPackageExtensions(\n pkgName: string,\n pkgVer: string,\n): unknown {\n let result: unknown\n for (const entry of packageExtensions) {\n const selector = String(entry[0])\n const ext = entry[1]\n const lastAtSignIndex = selector.lastIndexOf('@')\n const name = selector.slice(0, lastAtSignIndex)\n if (pkgName === name) {\n const semver = getSemver()\n const range = selector.slice(lastAtSignIndex + 1)\n if (semver.satisfies(pkgVer, range)) {\n if (result === undefined) {\n result = {}\n }\n if (typeof ext === 'object' && ext !== null) {\n merge(result as object, ext)\n }\n }\n }\n }\n return result\n}\n\n/**\n * Get the release tag for a version.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function getReleaseTag(spec: string): string {\n if (!spec) {\n return ''\n }\n // Handle scoped packages like @scope/package vs @scope/package@tag.\n let atIndex = -1\n if (spec.startsWith('@')) {\n // Find the second @ for scoped packages.\n atIndex = spec.indexOf('@', 1)\n } else {\n // Find the first @ for unscoped packages.\n atIndex = spec.indexOf('@')\n }\n if (atIndex !== -1) {\n return spec.slice(atIndex + 1)\n }\n return ''\n}\n\n/**\n * Pack a package tarball using pacote.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport async function packPackage(\n spec: string,\n options?: PacoteOptions,\n): Promise<unknown> {\n const pack = getPack()\n return await pack(spec, {\n __proto__: null,\n signal: abortSignal,\n ...options,\n packumentCache,\n preferOffline: true,\n } as PacoteOptions)\n}\n\n/**\n * Read and parse a package.json file asynchronously.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport async function readPackageJson(\n filepath: string,\n options?: ReadPackageJsonOptions,\n): Promise<PackageJson | undefined> {\n const { editable, normalize, throws, ...normalizeOptions } = {\n __proto__: null,\n ...options,\n } as ReadPackageJsonOptions\n const pkgJson = (await readJson(resolvePackageJsonPath(filepath), {\n throws,\n })) as PackageJson | undefined\n if (pkgJson) {\n if (editable) {\n const toEditablePackageJson = _getToEditablePackageJson()\n return await toEditablePackageJson(pkgJson, {\n path: filepath,\n normalize,\n ...normalizeOptions,\n })\n }\n return normalize ? normalizePackageJson(pkgJson, normalizeOptions) : pkgJson\n }\n return undefined\n}\n\n/**\n * Read and parse package.json from a file path synchronously.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function readPackageJsonSync(\n filepath: string,\n options?: NormalizeOptions & { editable?: boolean; throws?: boolean },\n): PackageJson | undefined {\n const { editable, normalize, throws, ...normalizeOptions } = {\n __proto__: null,\n ...options,\n } as NormalizeOptions & {\n editable?: boolean\n throws?: boolean\n normalize?: boolean\n }\n const pkgJson = readJsonSync(resolvePackageJsonPath(filepath), { throws }) as\n | PackageJson\n | undefined\n if (pkgJson) {\n if (editable) {\n const toEditablePackageJsonSync = _getToEditablePackageJsonSync()\n return toEditablePackageJsonSync(pkgJson, {\n path: filepath,\n normalize,\n ...normalizeOptions,\n })\n }\n return normalize ? normalizePackageJson(pkgJson, normalizeOptions) : pkgJson\n }\n return undefined\n}\n\n/**\n * Resolve GitHub tarball URL for a package specifier.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport async function resolveGitHubTgzUrl(\n pkgNameOrId: string,\n where?: unknown,\n): Promise<string> {\n const whereIsPkgJson = isObjectObject(where)\n const pkgJson = whereIsPkgJson\n ? where\n : await readPackageJson(where as string, { normalize: true })\n if (!pkgJson) {\n return ''\n }\n const { version } = pkgJson\n const npmPackageArg = getNpmPackageArg()\n const parsedSpec = npmPackageArg(\n pkgNameOrId,\n whereIsPkgJson ? undefined : (where as string),\n )\n const isTarballUrl = isGitHubTgzSpec(parsedSpec)\n if (isTarballUrl) {\n return parsedSpec.saveSpec || ''\n }\n const isGitHubUrl = isGitHubUrlSpec(parsedSpec)\n const repository = pkgJson.repository as { url?: string }\n const { project, user } = (isGitHubUrl\n ? parsedSpec.hosted\n : getRepoUrlDetails(repository?.url)) || { project: '', user: '' }\n\n if (user && project) {\n let apiUrl = ''\n if (isGitHubUrl) {\n apiUrl = gitHubTagRefUrl(user, project, parsedSpec.gitCommittish || '')\n } else {\n const fetcher = getFetcher()\n const versionStr = version as string\n // First try to resolve the sha for a tag starting with \"v\", e.g. v1.2.3.\n apiUrl = gitHubTagRefUrl(user, project, `v${versionStr}`)\n if (!(await fetcher(apiUrl, { method: 'head' })).ok) {\n // If a sha isn't found, try again with the \"v\" removed, e.g. 1.2.3.\n apiUrl = gitHubTagRefUrl(user, project, versionStr)\n if (!(await fetcher(apiUrl, { method: 'head' })).ok) {\n apiUrl = ''\n }\n }\n }\n if (apiUrl) {\n const fetcher = getFetcher()\n const resp = await fetcher(apiUrl)\n const json = (await resp.json()) as { object?: { sha?: string } }\n const sha = json?.object?.sha\n if (sha) {\n return gitHubTgzUrl(user, project, sha)\n }\n }\n }\n return ''\n}\n\n/**\n * Resolve full package name from a PURL object with custom delimiter.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function resolvePackageName(\n purlObj: { name: string; namespace?: string },\n delimiter: string = '/',\n): string {\n const { name, namespace } = purlObj\n return `${namespace ? `${namespace}${delimiter}` : ''}${name}`\n}\n\n/**\n * Convert npm package name to Socket registry format with delimiter.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function resolveRegistryPackageName(pkgName: string): string {\n const purlObj = getPackageURL().fromString(`pkg:npm/${pkgName}`)\n return purlObj.namespace\n ? `${purlObj.namespace.slice(1)}${REGISTRY_SCOPE_DELIMITER}${purlObj.name}`\n : pkgName\n}\n\n// Re-export types from lib/packages.\nexport type { PackageJson } from '../packages'\n"],
5
+ "mappings": "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",
6
+ "names": ["operations_exports", "__export", "extractPackage", "findPackageExtensions", "getReleaseTag", "packPackage", "readPackageJson", "readPackageJsonSync", "resolveGitHubTgzUrl", "resolvePackageName", "resolveRegistryPackageName", "__toCommonJS", "import_packages", "import_process", "import_socket", "import_fs", "import_objects", "import_normalize", "import_paths", "import_specs", "abortSignal", "packageExtensions", "packumentCache", "pacoteCachePath", "_cacache", "getCacache", "_fetcher", "getFetcher", "_npmPackageArg", "getNpmPackageArg", "_pack", "getPack", "_PackageURL", "getPackageURL", "_pacote", "getPacote", "_semver", "getSemver", "_toEditablePackageJson", "_getToEditablePackageJson", "_toEditablePackageJsonSync", "_getToEditablePackageJsonSync", "pkgNameOrId", "options", "callback", "actualCallback", "actualOptions", "dest", "tmpPrefix", "extractOptions_", "extractOptions", "pacote", "tmpDirPath", "pkgName", "pkgVer", "result", "entry", "selector", "ext", "lastAtSignIndex", "name", "semver", "range", "spec", "atIndex", "filepath", "editable", "normalize", "throws", "normalizeOptions", "pkgJson", "where", "whereIsPkgJson", "version", "parsedSpec", "isGitHubUrl", "repository", "project", "user", "apiUrl", "fetcher", "versionStr", "sha", "purlObj", "delimiter", "namespace"]
7
7
  }
package/dist/path.d.ts CHANGED
@@ -170,8 +170,8 @@ export declare function isRelative(pathLike: string | Buffer | URL): boolean;
170
170
  * normalizePath('foo/bar/../baz') // 'foo/baz'
171
171
  *
172
172
  * // Windows paths
173
- * normalizePath('C:\\Users\\John\\file.txt') // 'C:/Users/John/file.txt'
174
- * normalizePath('foo\\bar\\baz') // 'foo/bar/baz'
173
+ * normalizePath('C:\\Users\\username\\file.txt') // 'C:/Users/username/file.txt'
174
+ * normalizePath('foo\\bar\\baz') // 'foo/bar/baz'
175
175
  *
176
176
  * // UNC paths
177
177
  * normalizePath('\\\\server\\share\\file') // '//server/share/file'
package/dist/path.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var S=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var H=Object.prototype.hasOwnProperty;var D=(t,e)=>{for(var n in e)S(t,n,{get:e[n],enumerable:!0})},N=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of y(e))!H.call(t,r)&&r!==n&&S(t,r,{get:()=>e[r],enumerable:!(i=v(e,r))||i.enumerable});return t};var O=t=>N(S({},"__esModule",{value:!0}),t);var Y={};D(Y,{isAbsolute:()=>R,isNodeModules:()=>Z,isPath:()=>K,isRelative:()=>j,normalizePath:()=>E,pathLikeToString:()=>C,relativeResolve:()=>X,splitPath:()=>G,trimLeadingDotSlash:()=>J});module.exports=O(Y);var U=require("#constants/platform"),W=require("./strings");const B=92,$=58,P=47,V=97,q=122,_=65,b=90,w=/[/\\]/,z=/(?:^|[/\\])node_modules(?:[/\\]|$)/;function p(t){return t===P||t===B}function T(t){return t>=_&&t<=b||t>=V&&t<=q}let x;function F(){return x===void 0&&(x=require("node:buffer")),x}let L;function M(){return L===void 0&&(L=require("node:url")),L}function Z(t){const e=C(t);return z.test(e)}function R(t){const e=C(t),{length:n}=e;if(n===0)return!1;const i=e.charCodeAt(0);return!!(i===P||i===B||U.WIN32&&n>2&&T(i)&&e.charCodeAt(1)===$&&p(e.charCodeAt(2)))}function K(t){const e=C(t);if(typeof e!="string"||e.length===0||/^[a-z][a-z0-9+.-]+:/i.test(e))return!1;if(e==="."||e===".."||R(e))return!0;if(e.includes("/")||e.includes("\\")){if(e.startsWith("@")&&!e.startsWith("@/")){const n=e.split("/");if(n.length<=2&&!n[1]?.includes("\\"))return!1}return!0}return!1}function j(t){const e=C(t);return typeof e!="string"?!1:e.length===0?!0:!R(e)}function E(t){const e=C(t),{length:n}=e;if(n===0)return".";if(n<2)return n===1&&e.charCodeAt(0)===92?"/":e;let i=0,r=0,l="";if(n>4&&e.charCodeAt(3)===92){const f=e.charCodeAt(2);(f===63||f===46)&&e.charCodeAt(0)===92&&e.charCodeAt(1)===92&&(r=2,l="//")}if(r===0)if(n>2&&(e.charCodeAt(0)===92&&e.charCodeAt(1)===92&&e.charCodeAt(2)!==92||e.charCodeAt(0)===47&&e.charCodeAt(1)===47&&e.charCodeAt(2)!==47)){let f=-1,a=!1,o=2;for(;o<n&&(e.charCodeAt(o)===47||e.charCodeAt(o)===92);)o++;for(;o<n;){const A=e.charCodeAt(o);if(A===47||A===92){f=o;break}o++}if(f>2){for(o=f;o<n&&(e.charCodeAt(o)===47||e.charCodeAt(o)===92);)o++;o<n&&(a=!0)}if(f>2&&a)r=2,l="//";else{for(i=e.charCodeAt(r);i===47||i===92;)r+=1,i=e.charCodeAt(r);r&&(l="/")}}else{for(i=e.charCodeAt(r);i===47||i===92;)r+=1,i=e.charCodeAt(r);r&&(l="/")}let u=(0,W.search)(e,w,{fromIndex:r});if(u===-1){const f=e.slice(r);return f==="."||f.length===0?l||".":f===".."?l?l.slice(0,-1)||"/":"..":l+f}let s="",c=0,g=0;for(;u!==-1;){const f=e.slice(r,u);if(f.length>0&&f!==".")if(f==="..")if(c>0){const a=s.lastIndexOf("/");if(a===-1)s="",c=0,g>0&&!l&&(s="..",g=1);else{const o=a+1;s.slice(o)===".."?(s=`${s}/${f}`,g+=1):(s=s.slice(0,a),c-=1)}}else l||(s=s+(s.length===0?"":"/")+f,g+=1);else s=s+(s.length===0?"":"/")+f,c+=1;for(r=u+1,i=e.charCodeAt(r);i===47||i===92;)r+=1,i=e.charCodeAt(r);u=(0,W.search)(e,w,{fromIndex:r})}const h=e.slice(r);if(h.length>0&&h!==".")if(h==="..")if(c>0){const f=s.lastIndexOf("/");if(f===-1)s="",c=0,g>0&&!l&&(s="..",g=1);else{const a=f+1;s.slice(a)===".."?(s=`${s}/${h}`,g+=1):(s=s.slice(0,f),c-=1)}}else l||(s=s+(s.length===0?"":"/")+h,g+=1);else s=s+(s.length===0?"":"/")+h,c+=1;return s.length===0?l||".":l+s}function C(t){if(t==null)return"";if(typeof t=="string")return t;const{Buffer:e}=F();if(e.isBuffer(t))return t.toString("utf8");const n=M();if(t instanceof URL)try{return n.fileURLToPath(t)}catch{const i=t.pathname,r=decodeURIComponent(i);if(require("./constants/platform").WIN32&&r.startsWith("/")){const u=r.charCodeAt(1)|32;if(!(r.length>=3&&u>=97&&u<=122&&r.charAt(2)===":"))return r}return r}return String(t)}function G(t){const e=C(t);return e===""?[]:e.split(w)}function J(t){const e=C(t);return e.startsWith("./")||e.startsWith(".\\")?e.slice(2):e}function I(...t){let e="",n=!1;for(let i=t.length-1;i>=0&&!n;i-=1){const r=t[i];typeof r!="string"||r.length===0||(e=r+(e.length===0?"":`/${e}`),n=R(r))}return n||(e=require("node:process").cwd()+(e.length===0?"":`/${e}`)),E(e)}function Q(t,e){if(t===e)return"";const n=I(t),i=I(e);if(n===i)return"";const r=require("./constants/platform").WIN32;if(r){const d=n.toLowerCase(),m=i.toLowerCase();if(d===m)return""}const l=1,u=n.length,s=u-l,c=1,h=i.length-c,f=s<h?s:h;let a=-1,o=0;for(;o<f;o+=1){let d=n.charCodeAt(l+o),m=i.charCodeAt(c+o);if(r&&(d>=_&&d<=b&&(d+=32),m>=_&&m<=b&&(m+=32)),d!==m)break;p(n.charCodeAt(l+o))&&(a=o)}if(o===f){if(h>f){const d=i.charCodeAt(c+o);if(p(d))return i.slice(c+o+1);if(o===0)return i.slice(c+o)}else if(s>f){const d=n.charCodeAt(l+o);p(d)?a=o:o===0&&(a=0)}}let A="";for(o=l+a+1;o<=u;o+=1){const d=n.charCodeAt(o);(o===u||p(d))&&(A+=A.length===0?"..":"/..")}return A+i.slice(c+a)}function X(t,e){const n=Q(t,e);return n===""?"":E(n)}0&&(module.exports={isAbsolute,isNodeModules,isPath,isRelative,normalizePath,pathLikeToString,relativeResolve,splitPath,trimLeadingDotSlash});
2
+ var S=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var H=Object.prototype.hasOwnProperty;var I=(e,t)=>{for(var n in t)S(e,n,{get:t[n],enumerable:!0})},D=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of y(t))!H.call(e,r)&&r!==n&&S(e,r,{get:()=>t[r],enumerable:!(i=v(t,r))||i.enumerable});return e};var O=e=>D(S({},"__esModule",{value:!0}),e);var X={};I(X,{isAbsolute:()=>R,isNodeModules:()=>M,isPath:()=>Z,isRelative:()=>K,normalizePath:()=>U,pathLikeToString:()=>C,relativeResolve:()=>Q,splitPath:()=>j,trimLeadingDotSlash:()=>G});module.exports=O(X);var p=require("#constants/platform"),_=require("./strings");const P=92,$=58,W=47,V=97,q=122,b=65,w=90,E=/[/\\]/,z=/(?:^|[/\\])node_modules(?:[/\\]|$)/;function m(e){return e===W||e===P}function N(e){return e>=b&&e<=w||e>=V&&e<=q}let x;function T(){return x===void 0&&(x=require("node:buffer")),x}let L;function F(){return L===void 0&&(L=require("node:url")),L}function M(e){const t=C(e);return z.test(t)}function R(e){const t=C(e),{length:n}=t;if(n===0)return!1;const i=t.charCodeAt(0);return!!(i===W||i===P||p.WIN32&&n>2&&N(i)&&t.charCodeAt(1)===$&&m(t.charCodeAt(2)))}function Z(e){const t=C(e);if(typeof t!="string"||t.length===0||/^[a-z][a-z0-9+.-]+:/i.test(t))return!1;if(t==="."||t===".."||R(t))return!0;if(t.includes("/")||t.includes("\\")){if(t.startsWith("@")&&!t.startsWith("@/")){const n=t.split("/");if(n.length<=2&&!n[1]?.includes("\\"))return!1}return!0}return!1}function K(e){const t=C(e);return typeof t!="string"?!1:t.length===0?!0:!R(t)}function U(e){const t=C(e),{length:n}=t;if(n===0)return".";if(n<2)return n===1&&t.charCodeAt(0)===92?"/":t;let i=0,r=0,l="";if(n>4&&t.charCodeAt(3)===92){const s=t.charCodeAt(2);(s===63||s===46)&&t.charCodeAt(0)===92&&t.charCodeAt(1)===92&&(r=2,l="//")}if(r===0)if(n>2&&(t.charCodeAt(0)===92&&t.charCodeAt(1)===92&&t.charCodeAt(2)!==92||t.charCodeAt(0)===47&&t.charCodeAt(1)===47&&t.charCodeAt(2)!==47)){let s=-1,f=!1,c=2;for(;c<n&&(t.charCodeAt(c)===47||t.charCodeAt(c)===92);)c++;for(;c<n;){const a=t.charCodeAt(c);if(a===47||a===92){s=c;break}c++}if(s>2){for(c=s;c<n&&(t.charCodeAt(c)===47||t.charCodeAt(c)===92);)c++;c<n&&(f=!0)}if(s>2&&f)r=2,l="//";else{for(i=t.charCodeAt(r);i===47||i===92;)r+=1,i=t.charCodeAt(r);r&&(l="/")}}else{for(i=t.charCodeAt(r);i===47||i===92;)r+=1,i=t.charCodeAt(r);r&&(l="/")}let h=(0,_.search)(t,E,{fromIndex:r});if(h===-1){const s=t.slice(r);return s==="."||s.length===0?l||".":s===".."?l?l.slice(0,-1)||"/":"..":l+s}let o="",g=0,u=0;for(;h!==-1;){const s=t.slice(r,h);if(s.length>0&&s!==".")if(s==="..")if(g>0){const f=o.lastIndexOf("/");if(f===-1)o="",g=0,u>0&&!l&&(o="..",u=1);else{const c=f+1;o.slice(c)===".."?(o=`${o}/${s}`,u+=1):(o=o.slice(0,f),g-=1)}}else l||(o=o+(o.length===0?"":"/")+s,u+=1);else o=o+(o.length===0?"":"/")+s,g+=1;for(r=h+1,i=t.charCodeAt(r);i===47||i===92;)r+=1,i=t.charCodeAt(r);h=(0,_.search)(t,E,{fromIndex:r})}const d=t.slice(r);if(d.length>0&&d!==".")if(d==="..")if(g>0){const s=o.lastIndexOf("/");if(s===-1)o="",g=0,u>0&&!l&&(o="..",u=1);else{const f=s+1;o.slice(f)===".."?(o=`${o}/${d}`,u+=1):(o=o.slice(0,s),g-=1)}}else l||(o=o+(o.length===0?"":"/")+d,u+=1);else o=o+(o.length===0?"":"/")+d,g+=1;return o.length===0?l||".":l+o}function C(e){if(e==null)return"";if(typeof e=="string")return e;const{Buffer:t}=T();if(t.isBuffer(e))return e.toString("utf8");const n=F();if(e instanceof URL)try{return n.fileURLToPath(e)}catch{const i=e.pathname,r=decodeURIComponent(i);if(p.WIN32&&r.startsWith("/")){const l=r.charCodeAt(1)|32;if(!(r.length>=3&&l>=97&&l<=122&&r.charAt(2)===":"))return r}return r}return String(e)}function j(e){const t=C(e);return t===""?[]:t.split(E)}function G(e){const t=C(e);return t.startsWith("./")||t.startsWith(".\\")?t.slice(2):t}function B(...e){let t="",n=!1;for(let i=e.length-1;i>=0&&!n;i-=1){const r=e[i];typeof r!="string"||r.length===0||(t=r+(t.length===0?"":`/${t}`),n=R(r))}return n||(t=require("node:process").cwd()+(t.length===0?"":`/${t}`)),U(t)}function J(e,t){if(e===t)return"";const n=B(e),i=B(t);if(n===i)return"";if(p.WIN32){const a=n.toLowerCase(),A=i.toLowerCase();if(a===A)return""}const r=1,l=n.length,h=l-r,o=1,u=i.length-o,d=h<u?h:u;let s=-1,f=0;for(;f<d;f+=1){let a=n.charCodeAt(r+f),A=i.charCodeAt(o+f);if(p.WIN32&&(a>=b&&a<=w&&(a+=32),A>=b&&A<=w&&(A+=32)),a!==A)break;m(n.charCodeAt(r+f))&&(s=f)}if(f===d){if(u>d){const a=i.charCodeAt(o+f);if(m(a))return i.slice(o+f+1);if(f===0)return i.slice(o+f)}else if(h>d){const a=n.charCodeAt(r+f);m(a)?s=f:f===0&&(s=0)}}let c="";for(f=r+s+1;f<=l;f+=1){const a=n.charCodeAt(f);(f===l||m(a))&&(c+=c.length===0?"..":"/..")}return c+i.slice(o+s)}function Q(e,t){const n=J(e,t);return n===""?"":U(n)}0&&(module.exports={isAbsolute,isNodeModules,isPath,isRelative,normalizePath,pathLikeToString,relativeResolve,splitPath,trimLeadingDotSlash});
3
3
  //# sourceMappingURL=path.js.map