vlt 0.0.0-3 → 0.0.0-5

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 (125) hide show
  1. package/README.md +2 -1
  2. package/package.json +17 -10
  3. package/postinstall.cjs +56 -0
  4. package/vlix +25 -0
  5. package/vlr +25 -0
  6. package/vlrx +25 -0
  7. package/vlt +25 -0
  8. package/vlx +25 -0
  9. package/cache-unzip-src-unzip.js +0 -7896
  10. package/cache-unzip-src-unzip.js.map +0 -7
  11. package/chunk-227OF2U2.js +0 -1183
  12. package/chunk-227OF2U2.js.map +0 -7
  13. package/chunk-3HXIYJS2.js +0 -54
  14. package/chunk-3HXIYJS2.js.map +0 -7
  15. package/chunk-AA6MVXJX.js +0 -19823
  16. package/chunk-AA6MVXJX.js.map +0 -7
  17. package/chunk-BCK4ZGNG.js +0 -41
  18. package/chunk-BCK4ZGNG.js.map +0 -7
  19. package/chunk-DH36SF3E.js +0 -35
  20. package/chunk-DH36SF3E.js.map +0 -7
  21. package/chunk-FNKWJ7AZ.js +0 -1379
  22. package/chunk-FNKWJ7AZ.js.map +0 -7
  23. package/chunk-H77UDCL3.js +0 -9820
  24. package/chunk-H77UDCL3.js.map +0 -7
  25. package/chunk-HL76E44L.js +0 -73
  26. package/chunk-HL76E44L.js.map +0 -7
  27. package/chunk-IN7DEH7F.js +0 -44
  28. package/chunk-IN7DEH7F.js.map +0 -7
  29. package/chunk-JLP2QDXQ.js +0 -1137
  30. package/chunk-JLP2QDXQ.js.map +0 -7
  31. package/chunk-JMGSFQ32.js +0 -969
  32. package/chunk-JMGSFQ32.js.map +0 -7
  33. package/chunk-JQRUGUZ3.js +0 -512
  34. package/chunk-JQRUGUZ3.js.map +0 -7
  35. package/chunk-K2BYYPM7.js +0 -8656
  36. package/chunk-K2BYYPM7.js.map +0 -7
  37. package/chunk-LNUDEBGP.js +0 -2071
  38. package/chunk-LNUDEBGP.js.map +0 -7
  39. package/chunk-MV5ZQ3LW.js +0 -1105
  40. package/chunk-MV5ZQ3LW.js.map +0 -7
  41. package/chunk-O7CDQZDW.js +0 -5234
  42. package/chunk-O7CDQZDW.js.map +0 -7
  43. package/chunk-OFW7MWFP.js +0 -82
  44. package/chunk-OFW7MWFP.js.map +0 -7
  45. package/chunk-PGDJ2ZZ6.js +0 -4810
  46. package/chunk-PGDJ2ZZ6.js.map +0 -7
  47. package/chunk-POVPHE2F.js +0 -1864
  48. package/chunk-POVPHE2F.js.map +0 -7
  49. package/chunk-PTVPYZHU.js +0 -72
  50. package/chunk-PTVPYZHU.js.map +0 -7
  51. package/chunk-SXBMMXTY.js +0 -11837
  52. package/chunk-SXBMMXTY.js.map +0 -7
  53. package/chunk-UZZ72UON.js +0 -152
  54. package/chunk-UZZ72UON.js.map +0 -7
  55. package/chunk-V7KRP7IO.js +0 -481
  56. package/chunk-V7KRP7IO.js.map +0 -7
  57. package/chunk-WVNUD273.js +0 -83
  58. package/chunk-WVNUD273.js.map +0 -7
  59. package/chunk-WYPE3MV4.js +0 -62
  60. package/chunk-WYPE3MV4.js.map +0 -7
  61. package/chunk-ZRNJWPYC.js +0 -37
  62. package/chunk-ZRNJWPYC.js.map +0 -7
  63. package/cli-package.json +0 -107
  64. package/config-3QQHUYLI.js +0 -179
  65. package/config-3QQHUYLI.js.map +0 -7
  66. package/devtools-5BBQJTDW.js +0 -16682
  67. package/devtools-5BBQJTDW.js.map +0 -7
  68. package/exec-C6GK336U.js +0 -50
  69. package/exec-C6GK336U.js.map +0 -7
  70. package/gui-IQ4M4K5X.js +0 -46
  71. package/gui-IQ4M4K5X.js.map +0 -7
  72. package/gui-assets/favicon.ico +0 -0
  73. package/gui-assets/fonts/geist-mono.ttf +0 -0
  74. package/gui-assets/fonts/inter.ttf +0 -0
  75. package/gui-assets/images/folder.png +0 -0
  76. package/gui-assets/index.html +0 -34
  77. package/gui-assets/index.js +0 -1549
  78. package/gui-assets/index.js.map +0 -7
  79. package/gui-assets/main.css +0 -1
  80. package/help-R6TSKVEA.js +0 -25
  81. package/help-R6TSKVEA.js.map +0 -7
  82. package/init-UTJGYULC.js +0 -25
  83. package/init-UTJGYULC.js.map +0 -7
  84. package/install-5XDTGLAU.js +0 -56
  85. package/install-5XDTGLAU.js.map +0 -7
  86. package/install-exec-VMPN3JE7.js +0 -28
  87. package/install-exec-VMPN3JE7.js.map +0 -7
  88. package/list-Q7IANZ3I.js +0 -129
  89. package/list-Q7IANZ3I.js.map +0 -7
  90. package/login-VHJEIRVU.js +0 -36
  91. package/login-VHJEIRVU.js.map +0 -7
  92. package/logout-5KMCSSR4.js +0 -36
  93. package/logout-5KMCSSR4.js.map +0 -7
  94. package/pkg-WYFDWETL.js +0 -364
  95. package/pkg-WYFDWETL.js.map +0 -7
  96. package/query-KP4F5D2Y.js +0 -117
  97. package/query-KP4F5D2Y.js.map +0 -7
  98. package/registry-client-package.json +0 -85
  99. package/reporter-LFGXWL6N.js +0 -18
  100. package/reporter-LFGXWL6N.js.map +0 -7
  101. package/rollback-remove-src-remove.js +0 -7398
  102. package/rollback-remove-src-remove.js.map +0 -7
  103. package/run-XNDZH72D.js +0 -68
  104. package/run-XNDZH72D.js.map +0 -7
  105. package/run-exec-NXA33NXJ.js +0 -41
  106. package/run-exec-NXA33NXJ.js.map +0 -7
  107. package/source-JWPG6PR3.js +0 -33
  108. package/source-JWPG6PR3.js.map +0 -7
  109. package/token-6IJNGEMI.js +0 -86
  110. package/token-6IJNGEMI.js.map +0 -7
  111. package/uninstall-MI7NFD27.js +0 -45
  112. package/uninstall-MI7NFD27.js.map +0 -7
  113. package/vlix.js +0 -25
  114. package/vlix.js.map +0 -7
  115. package/vlr.js +0 -25
  116. package/vlr.js.map +0 -7
  117. package/vlrx.js +0 -25
  118. package/vlrx.js.map +0 -7
  119. package/vlt.js +0 -24
  120. package/vlt.js.map +0 -7
  121. package/vlx.js +0 -25
  122. package/vlx.js.map +0 -7
  123. package/whoami-3IEXJF3U.js +0 -46
  124. package/whoami-3IEXJF3U.js.map +0 -7
  125. package/yoga.wasm +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../node_modules/.pnpm/err-code@2.0.3/node_modules/err-code/index.js", "../../../node_modules/.pnpm/retry@0.12.0/node_modules/retry/lib/retry_operation.js", "../../../node_modules/.pnpm/retry@0.12.0/node_modules/retry/lib/retry.js", "../../../node_modules/.pnpm/retry@0.12.0/node_modules/retry/index.js", "../../../node_modules/.pnpm/promise-retry@2.0.1/node_modules/promise-retry/index.js", "../../../src/git/src/spawn.ts", "../../../src/git/src/make-error.ts", "../../../src/git/src/opts.ts", "../../../node_modules/.pnpm/isexe@3.1.1/node_modules/isexe/src/posix.ts", "../../../node_modules/.pnpm/isexe@3.1.1/node_modules/isexe/src/win32.ts", "../../../node_modules/.pnpm/isexe@3.1.1/node_modules/isexe/src/index.ts", "../../../src/which/src/index.ts", "../../../src/git/src/which.ts", "../../../src/git/src/user.ts", "../../../src/git-scp-url/src/index.ts", "../../../src/git/src/clone.ts", "../../../src/git/src/is-windows.ts", "../../../src/pick-manifest/src/index.ts", "../../../src/git/src/revs.ts", "../../../src/git/src/lines-to-revs.ts", "../../../src/git/src/resolve.ts", "../../../src/git/src/find.ts", "../../../src/git/src/is.ts"],
4
- "sourcesContent": ["'use strict';\n\nfunction assign(obj, props) {\n for (const key in props) {\n Object.defineProperty(obj, key, {\n value: props[key],\n enumerable: true,\n configurable: true,\n });\n }\n\n return obj;\n}\n\nfunction createError(err, code, props) {\n if (!err || typeof err === 'string') {\n throw new TypeError('Please pass an Error to err-code');\n }\n\n if (!props) {\n props = {};\n }\n\n if (typeof code === 'object') {\n props = code;\n code = undefined;\n }\n\n if (code != null) {\n props.code = code;\n }\n\n try {\n return assign(err, props);\n } catch (_) {\n props.message = err.message;\n props.stack = err.stack;\n\n const ErrClass = function () {};\n\n ErrClass.prototype = Object.create(Object.getPrototypeOf(err));\n\n return assign(new ErrClass(), props);\n }\n}\n\nmodule.exports = createError;\n", "function RetryOperation(timeouts, options) {\n // Compatibility for the old (timeouts, retryForever) signature\n if (typeof options === 'boolean') {\n options = { forever: options };\n }\n\n this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));\n this._timeouts = timeouts;\n this._options = options || {};\n this._maxRetryTime = options && options.maxRetryTime || Infinity;\n this._fn = null;\n this._errors = [];\n this._attempts = 1;\n this._operationTimeout = null;\n this._operationTimeoutCb = null;\n this._timeout = null;\n this._operationStart = null;\n\n if (this._options.forever) {\n this._cachedTimeouts = this._timeouts.slice(0);\n }\n}\nmodule.exports = RetryOperation;\n\nRetryOperation.prototype.reset = function() {\n this._attempts = 1;\n this._timeouts = this._originalTimeouts;\n}\n\nRetryOperation.prototype.stop = function() {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n\n this._timeouts = [];\n this._cachedTimeouts = null;\n};\n\nRetryOperation.prototype.retry = function(err) {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n\n if (!err) {\n return false;\n }\n var currentTime = new Date().getTime();\n if (err && currentTime - this._operationStart >= this._maxRetryTime) {\n this._errors.unshift(new Error('RetryOperation timeout occurred'));\n return false;\n }\n\n this._errors.push(err);\n\n var timeout = this._timeouts.shift();\n if (timeout === undefined) {\n if (this._cachedTimeouts) {\n // retry forever, only keep last error\n this._errors.splice(this._errors.length - 1, this._errors.length);\n this._timeouts = this._cachedTimeouts.slice(0);\n timeout = this._timeouts.shift();\n } else {\n return false;\n }\n }\n\n var self = this;\n var timer = setTimeout(function() {\n self._attempts++;\n\n if (self._operationTimeoutCb) {\n self._timeout = setTimeout(function() {\n self._operationTimeoutCb(self._attempts);\n }, self._operationTimeout);\n\n if (self._options.unref) {\n self._timeout.unref();\n }\n }\n\n self._fn(self._attempts);\n }, timeout);\n\n if (this._options.unref) {\n timer.unref();\n }\n\n return true;\n};\n\nRetryOperation.prototype.attempt = function(fn, timeoutOps) {\n this._fn = fn;\n\n if (timeoutOps) {\n if (timeoutOps.timeout) {\n this._operationTimeout = timeoutOps.timeout;\n }\n if (timeoutOps.cb) {\n this._operationTimeoutCb = timeoutOps.cb;\n }\n }\n\n var self = this;\n if (this._operationTimeoutCb) {\n this._timeout = setTimeout(function() {\n self._operationTimeoutCb();\n }, self._operationTimeout);\n }\n\n this._operationStart = new Date().getTime();\n\n this._fn(this._attempts);\n};\n\nRetryOperation.prototype.try = function(fn) {\n console.log('Using RetryOperation.try() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = function(fn) {\n console.log('Using RetryOperation.start() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = RetryOperation.prototype.try;\n\nRetryOperation.prototype.errors = function() {\n return this._errors;\n};\n\nRetryOperation.prototype.attempts = function() {\n return this._attempts;\n};\n\nRetryOperation.prototype.mainError = function() {\n if (this._errors.length === 0) {\n return null;\n }\n\n var counts = {};\n var mainError = null;\n var mainErrorCount = 0;\n\n for (var i = 0; i < this._errors.length; i++) {\n var error = this._errors[i];\n var message = error.message;\n var count = (counts[message] || 0) + 1;\n\n counts[message] = count;\n\n if (count >= mainErrorCount) {\n mainError = error;\n mainErrorCount = count;\n }\n }\n\n return mainError;\n};\n", "var RetryOperation = require('./retry_operation');\n\nexports.operation = function(options) {\n var timeouts = exports.timeouts(options);\n return new RetryOperation(timeouts, {\n forever: options && options.forever,\n unref: options && options.unref,\n maxRetryTime: options && options.maxRetryTime\n });\n};\n\nexports.timeouts = function(options) {\n if (options instanceof Array) {\n return [].concat(options);\n }\n\n var opts = {\n retries: 10,\n factor: 2,\n minTimeout: 1 * 1000,\n maxTimeout: Infinity,\n randomize: false\n };\n for (var key in options) {\n opts[key] = options[key];\n }\n\n if (opts.minTimeout > opts.maxTimeout) {\n throw new Error('minTimeout is greater than maxTimeout');\n }\n\n var timeouts = [];\n for (var i = 0; i < opts.retries; i++) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n if (options && options.forever && !timeouts.length) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n // sort the array numerically ascending\n timeouts.sort(function(a,b) {\n return a - b;\n });\n\n return timeouts;\n};\n\nexports.createTimeout = function(attempt, opts) {\n var random = (opts.randomize)\n ? (Math.random() + 1)\n : 1;\n\n var timeout = Math.round(random * opts.minTimeout * Math.pow(opts.factor, attempt));\n timeout = Math.min(timeout, opts.maxTimeout);\n\n return timeout;\n};\n\nexports.wrap = function(obj, options, methods) {\n if (options instanceof Array) {\n methods = options;\n options = null;\n }\n\n if (!methods) {\n methods = [];\n for (var key in obj) {\n if (typeof obj[key] === 'function') {\n methods.push(key);\n }\n }\n }\n\n for (var i = 0; i < methods.length; i++) {\n var method = methods[i];\n var original = obj[method];\n\n obj[method] = function retryWrapper(original) {\n var op = exports.operation(options);\n var args = Array.prototype.slice.call(arguments, 1);\n var callback = args.pop();\n\n args.push(function(err) {\n if (op.retry(err)) {\n return;\n }\n if (err) {\n arguments[0] = op.mainError();\n }\n callback.apply(this, arguments);\n });\n\n op.attempt(function() {\n original.apply(obj, args);\n });\n }.bind(obj, original);\n obj[method].options = options;\n }\n};\n", "module.exports = require('./lib/retry');", "'use strict';\n\nvar errcode = require('err-code');\nvar retry = require('retry');\n\nvar hasOwn = Object.prototype.hasOwnProperty;\n\nfunction isRetryError(err) {\n return err && err.code === 'EPROMISERETRY' && hasOwn.call(err, 'retried');\n}\n\nfunction promiseRetry(fn, options) {\n var temp;\n var operation;\n\n if (typeof fn === 'object' && typeof options === 'function') {\n // Swap options and fn when using alternate signature (options, fn)\n temp = options;\n options = fn;\n fn = temp;\n }\n\n operation = retry.operation(options);\n\n return new Promise(function (resolve, reject) {\n operation.attempt(function (number) {\n Promise.resolve()\n .then(function () {\n return fn(function (err) {\n if (isRetryError(err)) {\n err = err.retried;\n }\n\n throw errcode(new Error('Retrying'), 'EPROMISERETRY', { retried: err });\n }, number);\n })\n .then(resolve, function (err) {\n if (isRetryError(err)) {\n err = err.retried;\n\n if (operation.retry(err || new Error())) {\n return;\n }\n }\n\n reject(err);\n });\n });\n });\n}\n\nmodule.exports = promiseRetry;\n", "import { promiseSpawn } from '@vltpkg/promise-spawn'\nimport type {\n SpawnResultStderrString,\n SpawnResultStdoutString,\n} from '@vltpkg/promise-spawn'\nimport promiseRetry from 'promise-retry'\nimport type { WrapOptions } from 'retry'\nimport type { GitOptions } from './index.ts'\nimport { makeError } from './make-error.ts'\nimport { opts as makeOpts } from './opts.ts'\nimport { which } from './which.ts'\n\nexport const spawn = async (\n gitArgs: string[],\n opts: GitOptions = {},\n): Promise<SpawnResultStderrString & SpawnResultStdoutString> => {\n const gitPath = which(opts)\n\n if (gitPath instanceof Error) {\n throw gitPath\n }\n\n /* c8 ignore start - undocumented option, only here for tests */\n const args =\n (\n (opts as { allowReplace?: boolean }).allowReplace ||\n gitArgs[0] === '--no-replace-objects'\n ) ?\n gitArgs\n : ['--no-replace-objects', ...gitArgs]\n /* c8 ignore stop */\n\n const retryOpts: WrapOptions = {\n retries: opts['fetch-retries'] || 3,\n factor: opts['fetch-retry-factor'] || 2,\n maxTimeout: opts['fetch-retry-maxtimeout'] || 60000,\n minTimeout: opts['fetch-retry-mintimeout'] || 1000,\n }\n return promiseRetry(async (retryFn, num) => {\n const result = await promiseSpawn(gitPath, args, makeOpts(opts))\n if (result.status || result.signal) {\n const gitError = makeError(result)\n if (!gitError.shouldRetry(num)) {\n throw gitError\n }\n retryFn(gitError)\n }\n return result\n }, retryOpts)\n}\n", "import type {\n SpawnResultStderr,\n SpawnResultString,\n} from '@vltpkg/promise-spawn'\n\nimport { error } from '@vltpkg/error-cause'\n\nconst connectionErrorRe = new RegExp(\n [\n 'remote error: Internal Server Error',\n 'The remote end hung up unexpectedly',\n 'Connection timed out',\n 'Operation timed out',\n 'Failed to connect to .* Timed out',\n 'Connection reset by peer',\n 'SSL_ERROR_SYSCALL',\n 'The requested URL returned error: 503',\n ].join('|'),\n)\n\nconst missingPathspecRe =\n /pathspec .* did not match any file\\(s\\) known to git/\n\nexport const makeError = (\n result: SpawnResultStderr & SpawnResultString,\n): Error & { shouldRetry: (n: number) => boolean } =>\n connectionErrorRe.test(result.stderr) ?\n Object.assign(error('A git connection error occurred', result), {\n shouldRetry: (n: number) => n < 3,\n })\n : Object.assign(\n missingPathspecRe.test(result.stderr) ?\n error('The git reference could not be found', result)\n : error('An unknown git error occurred', result),\n {\n shouldRetry: () => false,\n },\n )\n", "// Values we want to set if they're not already defined by the end user\n\nimport type {\n PromiseSpawnOptionsStderrString,\n PromiseSpawnOptionsStdoutString,\n} from '@vltpkg/promise-spawn'\nimport type { SpawnOptions } from 'child_process'\n\n// This defaults to accepting new ssh host key fingerprints\nconst gitEnv = {\n GIT_ASKPASS: 'echo',\n GIT_SSH_COMMAND: 'ssh -oStrictHostKeyChecking=accept-new',\n}\n\nexport const opts = (\n opts: SpawnOptions = {},\n): PromiseSpawnOptionsStderrString &\n PromiseSpawnOptionsStdoutString => ({\n acceptFail: true,\n ...opts,\n env: opts.env ?? { ...gitEnv, ...process.env },\n stdio: 'pipe',\n stdioString: true,\n shell: false,\n})\n", "/**\n * This is the Posix implementation of isexe, which uses the file\n * mode and uid/gid values.\n *\n * @module\n */\n\nimport { Stats, statSync } from 'fs'\nimport { stat } from 'fs/promises'\nimport { IsexeOptions } from './options'\n\n/**\n * Determine whether a path is executable according to the mode and\n * current (or specified) user and group IDs.\n */\nexport const isexe = async (\n path: string,\n options: IsexeOptions = {}\n): Promise<boolean> => {\n const { ignoreErrors = false } = options\n try {\n return checkStat(await stat(path), options)\n } catch (e) {\n const er = e as NodeJS.ErrnoException\n if (ignoreErrors || er.code === 'EACCES') return false\n throw er\n }\n}\n\n/**\n * Synchronously determine whether a path is executable according to\n * the mode and current (or specified) user and group IDs.\n */\nexport const sync = (\n path: string,\n options: IsexeOptions = {}\n): boolean => {\n const { ignoreErrors = false } = options\n try {\n return checkStat(statSync(path), options)\n } catch (e) {\n const er = e as NodeJS.ErrnoException\n if (ignoreErrors || er.code === 'EACCES') return false\n throw er\n }\n}\n\nconst checkStat = (stat: Stats, options: IsexeOptions) =>\n stat.isFile() && checkMode(stat, options)\n\nconst checkMode = (stat: Stats, options: IsexeOptions) => {\n const myUid = options.uid ?? process.getuid?.()\n const myGroups = options.groups ?? process.getgroups?.() ?? []\n const myGid = options.gid ?? process.getgid?.() ?? myGroups[0]\n if (myUid === undefined || myGid === undefined) {\n throw new Error('cannot get uid or gid')\n }\n\n const groups = new Set([myGid, ...myGroups])\n\n const mod = stat.mode\n const uid = stat.uid\n const gid = stat.gid\n\n const u = parseInt('100', 8)\n const g = parseInt('010', 8)\n const o = parseInt('001', 8)\n const ug = u | g\n\n return !!(\n mod & o ||\n (mod & g && groups.has(gid)) ||\n (mod & u && uid === myUid) ||\n (mod & ug && myUid === 0)\n )\n}\n", "/**\n * This is the Windows implementation of isexe, which uses the file\n * extension and PATHEXT setting.\n *\n * @module\n */\n\nimport { Stats, statSync } from 'fs'\nimport { stat } from 'fs/promises'\nimport { IsexeOptions } from './options'\n\n/**\n * Determine whether a path is executable based on the file extension\n * and PATHEXT environment variable (or specified pathExt option)\n */\nexport const isexe = async (\n path: string,\n options: IsexeOptions = {}\n): Promise<boolean> => {\n const { ignoreErrors = false } = options\n try {\n return checkStat(await stat(path), path, options)\n } catch (e) {\n const er = e as NodeJS.ErrnoException\n if (ignoreErrors || er.code === 'EACCES') return false\n throw er\n }\n}\n\n/**\n * Synchronously determine whether a path is executable based on the file\n * extension and PATHEXT environment variable (or specified pathExt option)\n */\nexport const sync = (\n path: string,\n options: IsexeOptions = {}\n): boolean => {\n const { ignoreErrors = false } = options\n try {\n return checkStat(statSync(path), path, options)\n } catch (e) {\n const er = e as NodeJS.ErrnoException\n if (ignoreErrors || er.code === 'EACCES') return false\n throw er\n }\n}\n\nconst checkPathExt = (path: string, options: IsexeOptions) => {\n const { pathExt = process.env.PATHEXT || '' } = options\n const peSplit = pathExt.split(';')\n if (peSplit.indexOf('') !== -1) {\n return true\n }\n\n for (let i = 0; i < peSplit.length; i++) {\n const p = peSplit[i].toLowerCase()\n const ext = path.substring(path.length - p.length).toLowerCase()\n\n if (p && ext === p) {\n return true\n }\n }\n return false\n}\n\nconst checkStat = (stat: Stats, path: string, options: IsexeOptions) =>\n stat.isFile() && checkPathExt(path, options)\n", "import * as posix from './posix.js'\nimport * as win32 from './win32.js'\nexport * from './options.js'\nexport { win32, posix }\n\nconst platform = process.env._ISEXE_TEST_PLATFORM_ || process.platform\nconst impl = platform === 'win32' ? win32 : posix\n\n/**\n * Determine whether a path is executable on the current platform.\n */\nexport const isexe = impl.isexe\n/**\n * Synchronously determine whether a path is executable on the\n * current platform.\n */\nexport const sync = impl.sync\n", "import { isexe, sync as isexeSync } from 'isexe'\nimport { delimiter, join, sep } from 'path'\n\nconst isWindows = process.platform === 'win32'\n\n// used to check for slashed in commands passed in. always checks for the posix\n// separator on all platforms, and checks for the current separator when not on\n// a posix platform. don't use the isWindows check for this since that is\n// mocked in tests but we still need the code to actually work when called.\n// that is also why it is ignored from coverage.\n/* c8 ignore next */\nconst rSlash = sep === '/' ? /\\// : /[\\\\/]/\nconst rRel = new RegExp(`^\\\\.${rSlash.source}`)\n\n// Simulate a NodeJS.ErrnoException\nconst getNotFoundError = (cmd: string) =>\n Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })\n\nconst getPathInfo = (\n cmd: string,\n {\n path: optPath = process.env.PATH,\n pathExt: optPathExt = process.env.PATHEXT,\n delimiter: optDelimiter = delimiter,\n }: WhichOptions,\n) => {\n // If it has a slash, then we don't bother searching the pathenv.\n // just check the file itself, and that's it.\n const pathEnv =\n cmd.match(rSlash) ?\n ['']\n : [\n // windows always checks the cwd first\n /* c8 ignore next - platform-specific */\n ...(isWindows ? [process.cwd()] : []),\n ...(optPath ?? /* c8 ignore next - very unusual */ '').split(\n optDelimiter,\n ),\n ]\n\n if (isWindows) {\n const pathExtExe =\n optPathExt ||\n ['.EXE', '.CMD', '.BAT', '.COM'].join(optDelimiter)\n const pathExt = pathExtExe\n .split(optDelimiter)\n .flatMap(item => [item, item.toLowerCase()])\n if (cmd.includes('.') && pathExt[0] !== '') {\n pathExt.unshift('')\n }\n return { pathEnv, pathExt, pathExtExe }\n /* c8 ignore start - not reachable on windows */\n }\n\n return { pathEnv, pathExt: [''] }\n}\n/* c8 ignore stop */\n\nconst getPathPart = (raw: string, cmd: string) => {\n const pathPart = /^\".*\"$/.test(raw) ? raw.slice(1, -1) : raw\n const prefix = !pathPart && rRel.test(cmd) ? cmd.slice(0, 2) : ''\n return prefix + join(pathPart, cmd)\n}\n\nexport type WhichOptions = {\n all?: boolean\n path?: string\n pathExt?: string\n nothrow?: boolean\n delimiter?: string\n}\n\nexport type WhichOptionsFindAll = WhichOptions & { all: true }\nexport type WhichOptionsFindOne = WhichOptions & { all?: false }\n\nexport type WhichOptionsNoThrow = WhichOptions & { nothrow: true }\nexport type WhichOptionsThrow = WhichOptions & { nothrow?: false }\n\nexport type WhichOptionsFindOneThrow = WhichOptionsFindOne &\n WhichOptionsThrow\nexport type WhichOptionsFindOneNoThrow = WhichOptionsFindOne &\n WhichOptionsNoThrow\n\nexport type WhichOptionsFindAllNoThrow = WhichOptionsFindAll &\n WhichOptionsNoThrow\nexport type WhichOptionsFindAllThrow = WhichOptionsFindAll &\n WhichOptionsThrow\n\nexport async function which(cmd: string): Promise<string>\nexport async function which(\n cmd: string,\n opt: WhichOptionsFindAllNoThrow,\n): Promise<string[] | null>\nexport async function which(\n cmd: string,\n opt: WhichOptionsFindOneNoThrow,\n): Promise<string | null>\nexport async function which(\n cmd: string,\n opt: WhichOptionsFindAllThrow,\n): Promise<string[]>\nexport async function which(\n cmd: string,\n opt: WhichOptionsFindOneThrow,\n): Promise<string>\nexport async function which(\n cmd: string,\n opt: WhichOptionsFindOne,\n): Promise<string | null>\nexport async function which(\n cmd: string,\n opt: WhichOptionsNoThrow,\n): Promise<string[] | string | null>\nexport async function which(\n cmd: string,\n opt: WhichOptionsFindAll,\n): Promise<string[] | null>\nexport async function which(\n cmd: string,\n opt: WhichOptions,\n): Promise<string[] | string | null>\nexport async function which(cmd: string, opt: WhichOptions = {}) {\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (const envPart of pathEnv) {\n const p = getPathPart(envPart, cmd)\n\n for (const ext of pathExt) {\n const withExt = p + ext\n const is = await isexe(withExt, {\n pathExt: pathExtExe,\n ignoreErrors: true,\n })\n if (is) {\n if (!opt.all) {\n return withExt\n }\n found.push(withExt)\n }\n }\n }\n\n if (opt.all && found.length) {\n return found\n }\n\n if (opt.nothrow) {\n return null\n }\n\n throw getNotFoundError(cmd)\n}\n\nexport function whichSync(cmd: string): string\nexport function whichSync(\n cmd: string,\n opt: WhichOptionsFindAllNoThrow,\n): string[] | null\nexport function whichSync(\n cmd: string,\n opt: WhichOptionsFindOneNoThrow,\n): string | null\nexport function whichSync(\n cmd: string,\n opt: WhichOptionsFindAllThrow,\n): string[]\nexport function whichSync(\n cmd: string,\n opt: WhichOptionsFindOneThrow,\n): string\nexport function whichSync(\n cmd: string,\n opt: WhichOptionsFindOne,\n): string | null\nexport function whichSync(\n cmd: string,\n opt: WhichOptionsNoThrow,\n): string[] | string | null\nexport function whichSync(\n cmd: string,\n opt: WhichOptionsFindAll,\n): string[] | null\nexport function whichSync(\n cmd: string,\n opt?: WhichOptions,\n): string[] | string | null\nexport function whichSync(cmd: string, opt: WhichOptions = {}) {\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (const pathEnvPart of pathEnv) {\n const p = getPathPart(pathEnvPart, cmd)\n\n for (const ext of pathExt) {\n const withExt = p + ext\n const is = isexeSync(withExt, {\n pathExt: pathExtExe,\n ignoreErrors: true,\n })\n if (is) {\n if (!opt.all) {\n return withExt\n }\n found.push(withExt)\n }\n }\n }\n\n if (opt.all && found.length) {\n return found\n }\n\n if (opt.nothrow) {\n return null\n }\n\n throw getNotFoundError(cmd)\n}\n", "import { error } from '@vltpkg/error-cause'\nimport { whichSync } from '@vltpkg/which'\nimport type { GitOptions } from './index.ts'\n\nlet gitPath: string | undefined = undefined\n\nexport const which = (opts: GitOptions = {}) => {\n if (opts.git) {\n return opts.git\n }\n let whichError: unknown = undefined\n if (opts.git !== false) {\n if (!gitPath) {\n try {\n gitPath = whichSync('git')\n } catch (er) {\n whichError = er\n }\n }\n }\n if (!gitPath || opts.git === false) {\n return error(\n 'No git binary found in $PATH',\n {\n code: 'ENOGIT',\n cause: whichError,\n },\n which,\n )\n }\n return gitPath\n}\n", "import { spawn } from './spawn.ts'\n\nexport type GitUser = {\n name?: string\n email?: string\n}\n\nexport const getUser = async (\n opts = {},\n): Promise<GitUser | undefined> => {\n let name = ''\n let email = ''\n\n // retrieve user.name\n const oldFlagUserNameResult = await spawn(\n ['config', '--get', 'user.name'],\n opts,\n )\n if (oldFlagUserNameResult.status || oldFlagUserNameResult.signal) {\n const userNameResult = await spawn(\n ['config', 'get', 'user.name'],\n opts,\n )\n\n name =\n userNameResult.status || userNameResult.signal ?\n ''\n : userNameResult.stdout.trim()\n } else {\n name = oldFlagUserNameResult.stdout.trim()\n }\n\n // retrieve user.email\n const oldFlagUserEmailResult = await spawn(\n ['config', '--get', 'user.email'],\n opts,\n )\n if (\n oldFlagUserEmailResult.status ||\n oldFlagUserEmailResult.signal\n ) {\n const userEmailResult = await spawn(\n ['config', 'get', 'user.email'],\n opts,\n )\n\n email =\n userEmailResult.status || userEmailResult.signal ?\n ''\n : userEmailResult.stdout.trim()\n } else {\n email = oldFlagUserEmailResult.stdout.trim()\n }\n\n // if fails to find both name & email, then return undefined\n if (!name && !email) {\n return undefined\n }\n\n return {\n name,\n email,\n }\n}\n", "const knownProtocols = new Set([\n 'http:',\n 'https:',\n 'git:',\n 'git+ssh:',\n 'git+https:',\n 'ssh:',\n])\n\nconst memo = new Map<string, URL>()\n\n// git+ssh:github.com:user/repo => git+ssh://github.com:user/repo\n// git@github.com:user/repo => git+ssh://user@github.com:user/repo\nconst correctProtocol = (arg: string) => {\n const firstColon = arg.indexOf(':')\n const proto = arg.slice(0, firstColon + 1)\n const doubleSlash = arg.indexOf('//')\n if (knownProtocols.has(proto)) {\n if (doubleSlash === firstColon + 1) {\n return arg\n }\n return proto + '//' + arg.slice(firstColon + 1)\n }\n\n const firstAt = arg.indexOf('@')\n if (firstAt > -1) {\n if (firstAt > firstColon) {\n return `git+ssh://${arg}`\n } else {\n return arg\n }\n // it would've parsed just fine otherwise, but just in case */\n /* c8 ignore start */\n }\n\n return proto + '//' + arg.slice(firstColon + 1)\n}\n/* c8 ignore stop */\n\n// git+ssh://github.com:user/repo => git+ssh://github.com/user/repo\nconst correctUrl = (url: string): string => {\n const firstAt = url.indexOf('@')\n const lastHash = url.lastIndexOf('#')\n let firstColon = url.indexOf(':')\n let lastColon = url.lastIndexOf(\n ':',\n lastHash > -1 ? lastHash : Infinity,\n )\n\n let corrected = url\n if (lastColon > firstAt) {\n // the last : comes after the first @ (or there is no @)\n // like it would in:\n // proto://hostname.com:user/repo\n // username@hostname.com:user/repo\n // :password@hostname.com:user/repo\n // username:password@hostname.com:user/repo\n // proto://username@hostname.com:user/repo\n // proto://:password@hostname.com:user/repo\n // proto://username:password@hostname.com:user/repo\n // then we replace the last : with a / to create a valid path\n corrected =\n url.slice(0, lastColon) + '/' + url.slice(lastColon + 1)\n // // and we find our new : positions\n firstColon = corrected.indexOf(':')\n lastColon = corrected.lastIndexOf(':')\n }\n\n if (firstColon === -1 && !url.includes('//')) {\n // we have no : at all\n // as it would be in:\n // username@hostname.com/user/repo\n // then we prepend a protocol\n corrected = `git+ssh://${corrected}`\n }\n\n return corrected\n}\n\nexport const gitScpURL = (url: string) => {\n const memoized = memo.get(url)\n if (memoized) return memoized\n try {\n const result = new URL(url)\n if (result.hostname) {\n memo.set(url, result)\n return result\n }\n } catch {}\n try {\n const result = new URL(correctUrl(correctProtocol(url)))\n if (result.hostname) {\n memo.set(url, result)\n return result\n }\n } catch {}\n return undefined\n}\n", "// The goal here is to minimize both git workload and\n// the number of refs we download over the network.\n//\n// Every method ends up with the checked out working dir\n// at the specified ref, and resolves with the git sha.\n\nimport type { RevDoc, RevDocEntry } from '@vltpkg/types'\nimport { gitScpURL } from '@vltpkg/git-scp-url'\nimport { mkdir, stat } from 'fs/promises'\nimport { basename, resolve } from 'path'\nimport { fileURLToPath } from 'url'\nimport type { GitOptions } from './index.ts'\nimport { isWindows } from './is-windows.ts'\nimport { resolveRef } from './resolve.ts'\nimport { revs as getRevs } from './revs.ts'\nimport { spawn } from './spawn.ts'\n\n/**\n * Only these whitelisted hosts get shallow cloning. Many hosts (including GHE)\n * don't always support it. A failed shallow fetch takes a LOT longer than a\n * full fetch in most cases, so we skip it entirely. Set opts.gitShallow =\n * true/false to force this behavior one way or the other.\n *\n * If other hosts are added to this set, then they will be shallowly cloned\n * as well.\n */\nexport const shallowHosts = new Set([\n 'github.com',\n 'gist.github.com',\n 'gitlab.com',\n 'bitbucket.com',\n 'bitbucket.org',\n])\n\nexport const clone = async (\n repo: string,\n ref = 'HEAD',\n target: string | undefined = undefined,\n opts: GitOptions = {},\n) => {\n repo = String(gitScpURL(repo) ?? repo).replace(/^git\\+/, '')\n if (repo.startsWith('file://')) repo = fileURLToPath(repo)\n const revs = await getRevs(repo, opts)\n return await clone_(\n repo,\n revs,\n ref,\n revs && resolveRef(revs, ref, opts),\n target || defaultTarget(repo, opts.cwd),\n opts,\n )\n}\n\nconst maybeShallow = (repo: string, opts: GitOptions) => {\n if (opts['git-shallow'] === false || opts['git-shallow']) {\n return opts['git-shallow']\n }\n const host = gitScpURL(repo)?.host ?? ''\n return shallowHosts.has(host)\n}\n\nconst defaultTarget = (\n repo: string,\n /* c8 ignore next */ cwd = process.cwd(),\n) => resolve(cwd, basename(repo.replace(/[/\\\\]?\\.git$/, '')))\n\nconst clone_ = (\n repo: string,\n revs: RevDoc | undefined,\n ref: string,\n revDoc: RevDocEntry | undefined,\n target: string,\n opts: GitOptions,\n) => {\n if (!revDoc || !revs) {\n return unresolved(repo, ref, target, opts)\n }\n if (revDoc.sha === revs.refs.HEAD?.sha) {\n return plain(repo, revDoc, target, opts)\n }\n if (revDoc.type === 'tag' || revDoc.type === 'branch') {\n return branch(repo, revDoc, target, opts)\n }\n return other(repo, revDoc, target, opts)\n}\n\n// pull request or some other kind of advertised ref\nconst other = async (\n repo: string,\n revDoc: RevDocEntry,\n target: string,\n opts: GitOptions,\n) => {\n const shallow = maybeShallow(repo, opts)\n\n const fetchOrigin = ['fetch', 'origin', revDoc.rawRef].concat(\n shallow ? ['--depth=1'] : [],\n )\n\n const git = (args: string[]) =>\n spawn(args, { ...opts, cwd: target })\n await mkdir(target, { recursive: true })\n await git(['init'])\n if (isWindows(opts)) {\n await git([\n 'config',\n '--local',\n '--add',\n 'core.longpaths',\n 'true',\n ])\n }\n await git(['remote', 'add', 'origin', repo])\n await git(fetchOrigin)\n await git(['checkout', revDoc.sha])\n await updateSubmodules(target, opts)\n return revDoc.sha\n}\n\n// tag or branches. use -b\nconst branch = async (\n repo: string,\n revDoc: RevDocEntry,\n target: string,\n opts: GitOptions,\n) => {\n const args = [\n 'clone',\n '-b',\n revDoc.ref,\n repo,\n target,\n '--recurse-submodules',\n ]\n if (maybeShallow(repo, opts)) {\n args.push('--depth=1')\n }\n if (isWindows(opts)) {\n args.push('--config', 'core.longpaths=true')\n }\n await spawn(args, opts)\n return revDoc.sha\n}\n\n// just the head. clone it\nconst plain = async (\n repo: string,\n revDoc: RevDocEntry,\n target: string,\n opts: GitOptions,\n) => {\n const args = ['clone', repo, target, '--recurse-submodules']\n if (maybeShallow(repo, opts)) {\n args.push('--depth=1')\n }\n if (isWindows(opts)) {\n args.push('--config', 'core.longpaths=true')\n }\n await spawn(args, opts)\n return revDoc.sha\n}\n\nconst updateSubmodules = async (target: string, opts: GitOptions) => {\n const hasSubmodules = await stat(`${target}/.gitmodules`)\n .then(() => true)\n .catch(() => false)\n if (!hasSubmodules) {\n return\n }\n await spawn(\n ['submodule', 'update', '-q', '--init', '--recursive'],\n { ...opts, cwd: target },\n )\n}\n\nconst unresolved = async (\n repo: string,\n ref: string,\n target: string,\n opts: GitOptions,\n) => {\n // can't do this one shallowly, because the ref isn't advertised\n // but we can avoid checking out the working dir twice, at least\n const lp =\n isWindows(opts) ? ['--config', 'core.longpaths=true'] : []\n const cloneArgs = [\n 'clone',\n '--mirror',\n '-q',\n repo,\n target + '/.git',\n ]\n const git = (args: string[]) =>\n spawn(args, { ...opts, cwd: target })\n await mkdir(target, { recursive: true })\n await git(cloneArgs.concat(lp))\n await git(['init'])\n await git(['checkout', ref])\n await updateSubmodules(target, opts)\n const result = await git(['rev-parse', '--revs-only', 'HEAD'])\n return result.stdout\n}\n", "import type { GitOptions } from './index.ts'\nexport const isWindows = (opts: GitOptions) =>\n (opts.fakePlatform || process.platform) === 'win32'\n", "import { error } from '@vltpkg/error-cause'\nimport { parse, Range, satisfies, Version } from '@vltpkg/semver'\nimport { Spec } from '@vltpkg/spec'\nimport type {\n Manifest,\n Packument,\n RevDoc,\n RevDocEntry,\n} from '@vltpkg/types'\n\nconst parsedNodeVersion = Version.parse(process.version)\n\nexport type PickManifestOptions = {\n tag?: string\n before?: Date | number | string\n 'node-version'?: string\n os?: NodeJS.Platform\n arch?: NodeJS.Architecture\n}\n\nexport type Manifestish = Manifest | RevDocEntry\nexport type Packumentish = Packument | RevDoc\nexport type PickManifestish<T extends Packumentish> =\n T extends RevDoc ? RevDocEntry : Manifest\nexport type ManiCheck<T extends Packumentish> = {\n version: Version\n deprecated: boolean\n platform: boolean\n prerelease: boolean\n mani: PickManifestish<T>\n}\n\nconst isBefore = (\n version: string,\n before?: number,\n verTimes?: Record<string, string>,\n): boolean => {\n if (!verTimes || !version || !before) return true\n const time = version && verTimes[version]\n return !!time && Date.parse(time) <= before\n}\n\nconst checkList = (value: string, list?: string[] | string) => {\n if (typeof list === 'string') {\n list = [list]\n }\n // invalid list is equivalent to 'any'\n if (!Array.isArray(list)) return true\n if (list.length === 1 && list[0] === 'any') {\n return true\n }\n // match none of the negated values, and at least one of the\n // non-negated values, if any are present.\n let negated = 0\n let match = false\n for (const entry of list) {\n const negate = entry.startsWith('!')\n const test = negate ? entry.slice(1) : entry\n if (negate) {\n negated++\n if (value === test) {\n return false\n }\n } else {\n match = match || value === test\n }\n }\n return match || negated === list.length\n}\n\n/**\n * Call with a manifest and the node version and process platform/arch\n * to check whether a version is suitable for the current platform.\n */\nexport const platformCheck = (\n mani: Manifestish,\n nodeVersion: Version | string,\n wantOs?: NodeJS.Process['platform'],\n wantArch?: NodeJS.Process['arch'],\n): boolean => {\n const { engines, os, cpu } = mani\n if (engines) {\n const { node } = engines\n if (node && !satisfies(nodeVersion, node, true)) {\n return false\n }\n }\n if (wantOs && !checkList(wantOs, os)) return false\n if (wantArch && !checkList(wantArch, cpu)) return false\n return true\n}\n\nconst versionOk = (\n packument: Packumentish,\n version: string,\n nodeVersion: Version,\n os: NodeJS.Process['platform'],\n arch: NodeJS.Process['arch'],\n before?: number,\n) => {\n const mani = packument.versions[version]\n /* c8 ignore next */\n if (!mani) return false\n const { time } = packument\n return (\n isBefore(version, before, time) &&\n platformCheck(mani, nodeVersion, os, arch)\n )\n}\n\n/**\n * Choose the most appropriate manifest from a packument.\n *\n * If `before` is set in the options, then the packument MUST\n * be a full non-minified Packument object. Otherwise, a minified packument\n * is fine.\n */\nexport function pickManifest<T extends Packumentish>(\n packument: T,\n wanted: Range | Spec | string,\n opts: PickManifestOptions = {},\n): PickManifestish<T> | undefined {\n const {\n tag = 'latest',\n before,\n 'node-version': nodeVersion,\n os = process.platform,\n arch = process.arch,\n } = opts\n const nv =\n !nodeVersion ? parsedNodeVersion : Version.parse(nodeVersion)\n\n // cast since 'time' might not be present on minified packuments\n const {\n name,\n time: verTimes,\n versions = {},\n 'dist-tags': distTags = {},\n } = packument\n\n const time = before && verTimes ? +new Date(before) : Infinity\n let range: Range | undefined = undefined\n let spec: Spec | undefined = undefined\n if (typeof wanted === 'object') {\n if (wanted instanceof Spec) {\n const f = wanted.final\n range = f.range\n spec = f\n } else {\n range = wanted\n }\n } else {\n spec = Spec.parse(`${name}@${wanted}`).final\n range = spec.range\n }\n\n if (!range) {\n if (!spec?.distTag) {\n throw error(\n 'Only dist-tag or semver range specs are supported',\n { spec },\n )\n }\n // if there is an explicit dist tag, we must get that version.\n const ver = distTags[spec.distTag]\n if (!ver) return undefined\n // if the version in the dist-tags is before the before date, then\n // we use that. Otherwise, we get the highest precedence version\n // prior to the dist-tag.\n const mani = versions[ver]\n if (mani && versionOk(packument, ver, nv, os, arch, time)) {\n return mani as PickManifestish<T>\n } else {\n range = new Range(`<=${ver}`)\n }\n }\n\n if (range.isAny) range = new Range('*', true)\n\n // if the range is *, then we prefer the 'latest' if available\n // but skip this if it should be avoided, in that case we have\n // to try a little harder.\n const defaultVer = distTags[tag]\n const defTagVersion =\n defaultVer ? Version.parse(defaultVer) : undefined\n if (\n defaultVer &&\n (range.isAny || defTagVersion?.satisfies(range)) &&\n versionOk(packument, defaultVer, nv, os, arch, time)\n ) {\n return versions[defaultVer] as PickManifestish<T>\n }\n\n // ok, actually have to scan the list\n const entries = Object.entries(versions) as [\n string,\n PickManifestish<T>,\n ][]\n\n if (!entries.length) {\n return undefined\n }\n\n let found: ManiCheck<T> | undefined = undefined\n let foundIsDefTag = false\n\n for (const [ver, mani] of entries) {\n if (time && verTimes && !isBefore(ver, time, verTimes)) {\n continue\n }\n const version = parse(ver)\n if (!version?.satisfies(range)) {\n continue\n }\n const mc = {\n version,\n deprecated: !!mani.deprecated,\n platform: platformCheck(mani, nv, os, arch),\n prerelease: !!version.prerelease?.length,\n mani,\n }\n if (!found) {\n found = mc\n if (defTagVersion?.equals(found.version)) {\n foundIsDefTag = true\n }\n continue\n }\n\n const mok = !mc.deprecated && mc.platform\n const fok = !found.deprecated && found.platform\n\n if (mok !== fok) {\n if (mok) {\n found = mc\n foundIsDefTag = !!defTagVersion?.equals(mc.version)\n }\n } else if (mc.platform !== found.platform) {\n if (mc.platform) {\n found = mc\n foundIsDefTag = !!defTagVersion?.equals(mc.version)\n }\n } else if (mc.deprecated !== found.deprecated) {\n if (!mc.deprecated) {\n found = mc\n /* c8 ignore next */\n foundIsDefTag = !!defTagVersion?.equals(mc.version)\n }\n } else if (found.prerelease !== mc.prerelease) {\n if (!mc.prerelease) {\n found = mc\n /* c8 ignore next */\n foundIsDefTag = !!defTagVersion?.equals(mc.version)\n }\n } else if (defTagVersion?.equals(mc.version)) {\n found = mc\n foundIsDefTag = true\n } else if (\n mc.version.greaterThan(found.version) &&\n !foundIsDefTag\n ) {\n found = mc\n }\n }\n return found?.mani\n}\n", "import { gitScpURL } from '@vltpkg/git-scp-url'\nimport type {\n SpawnResultStderrString,\n SpawnResultStdoutString,\n} from '@vltpkg/promise-spawn'\nimport { LRUCache } from 'lru-cache'\nimport { fileURLToPath } from 'url'\nimport type { GitOptions } from './index.ts'\nimport { linesToRevs } from './lines-to-revs.ts'\nimport type { RevDoc } from '@vltpkg/types'\nimport { spawn } from './spawn.ts'\n\nconst fetchMethod = async (\n repo: string,\n _: any,\n options: { context: GitOptions },\n) => {\n const result: SpawnResultStderrString & SpawnResultStdoutString =\n await spawn(['ls-remote', repo], options.context)\n const revsDoc = linesToRevs(result.stdout.split('\\n'))\n return revsDoc\n}\n\nconst revsCache = new LRUCache<string, RevDoc, GitOptions>({\n max: 100,\n ttl: 5 * 60 * 1000,\n allowStaleOnFetchAbort: true,\n allowStaleOnFetchRejection: true,\n fetchMethod,\n})\n\nexport const revs = async (repo: string, opts: GitOptions = {}) => {\n repo = String(gitScpURL(repo) ?? repo).replace(/^git\\+/, '')\n if (repo.startsWith('file://')) repo = fileURLToPath(repo)\n if (opts.noGitRevCache) {\n const result = await fetchMethod(repo, undefined, {\n context: opts,\n })\n revsCache.set(repo, result)\n return result\n }\n return await revsCache.fetch(repo, { context: opts })\n}\n", "import type { RevDoc, RevDocEntry, RefType } from '@vltpkg/types'\nimport { parse } from '@vltpkg/semver'\nimport { error } from '@vltpkg/error-cause'\n\n/**\n * turn an array of lines from `git ls-remote` into a thing\n * vaguely resembling a packument, where docs are a resolved ref\n */\nexport const linesToRevs = (lines: string[]): RevDoc =>\n finish(\n lines.reduce(linesToRevsReducer, {\n name: '',\n versions: {},\n 'dist-tags': {},\n refs: {},\n shas: {},\n }),\n )\n\nconst finish = (revs: RevDoc): RevDoc =>\n distTags(versions(shaList(peelTags(revs))))\n\nconst versions = (revs: RevDoc): RevDoc => {\n for (const [version, entry] of Object.entries(revs.versions)) {\n entry.version = version\n }\n return revs\n}\n\n// We can check out shallow clones on specific SHAs if we have a ref\nconst shaList = (revs: RevDoc): RevDoc => {\n Object.entries(revs.refs).forEach(([ref, doc]) => {\n const shas = revs.shas[doc.sha]\n if (!shas) {\n revs.shas[doc.sha] = [ref]\n } else {\n shas.push(ref)\n }\n })\n return revs\n}\n\n// Replace any tags with their ^{} counterparts, if those exist\nconst peelTags = (revs: RevDoc) => {\n Object.entries(revs.refs)\n .filter(([ref]) => ref.endsWith('^{}'))\n .forEach(([ref, peeled]) => {\n const unpeeled = revs.refs[ref.replace(/\\^\\{\\}$/, '')]\n if (unpeeled) {\n unpeeled.sha = peeled.sha\n delete revs.refs[ref]\n }\n })\n return revs\n}\n\nconst distTags = (revs: RevDoc) => {\n // not entirely sure what situations would result in an\n // ichabod repo, but best to be careful in Sleepy Hollow anyway\n /* c8 ignore start */\n const HEAD = revs.refs.HEAD ?? {\n sha: undefined,\n }\n /* c8 ignore stop */\n for (const [v, ver] of Object.entries(revs.versions)) {\n // simulate a dist-tags with latest pointing at the\n // 'latest' branch if one exists and is a version,\n // or HEAD if not.\n if (revs.refs.latest && ver.sha === revs.refs.latest.sha) {\n revs['dist-tags'].latest = v\n } else if (ver.sha === HEAD.sha) {\n revs['dist-tags'].HEAD = v\n if (!revs.refs.latest) {\n revs['dist-tags'].latest = v\n }\n }\n }\n return revs\n}\n\nconst refType = (ref: string): RefType => {\n if (ref.startsWith('refs/tags/')) {\n return 'tag'\n }\n if (ref.startsWith('refs/heads/')) {\n return 'branch'\n }\n if (ref.startsWith('refs/pull/')) {\n return 'pull'\n }\n if (ref === 'HEAD') {\n return 'head'\n }\n // Could be anything, ignore for now\n /* c8 ignore next */\n return 'other'\n}\n\n// return the doc, or null if we should ignore it.\nconst lineToRevDoc = (line: string): RevDocEntry | undefined => {\n let [sha, rawRef] = line.trim().split(/\\s+/, 2)\n if (sha === undefined || rawRef === undefined) return undefined\n sha = sha.trim()\n rawRef = rawRef.trim()\n\n const type = refType(rawRef)\n\n switch (type) {\n case 'tag': {\n // refs/tags/foo^{} is the 'peeled tag', ie the commit\n // that is tagged by refs/tags/foo they resolve to the same\n // content, just different objects in git's data structure.\n // But, we care about the thing the tag POINTS to, not the tag\n // object itself, so we only look at the peeled tag refs, and\n // ignore the pointer.\n // For now, though, we have to save both, because some tags\n // don't have peels, if they were not annotated.\n const ref = rawRef.slice('refs/tags/'.length)\n return { name: '', version: '', sha, ref, rawRef, type }\n }\n\n case 'branch': {\n const ref = rawRef.slice('refs/heads/'.length)\n return { name: '', version: '', sha, ref, rawRef, type }\n }\n\n case 'pull': {\n // NB: merged pull requests installable with #pull/123/merge\n // for the merged pr, or #pull/123 for the PR head\n const ref = rawRef.slice('refs/'.length).replace(/\\/head$/, '')\n return { name: '', version: '', sha, ref, rawRef, type }\n }\n\n case 'head': {\n const ref = 'HEAD'\n return { name: '', version: '', sha, ref, rawRef, type }\n }\n\n default:\n // at this point, all we can do is leave the ref un-munged\n return { name: '', version: '', sha, ref: rawRef, rawRef, type }\n }\n}\n\nconst linesToRevsReducer = (revs: RevDoc, line: string) => {\n const doc = lineToRevDoc(line)\n\n if (!doc) {\n return revs\n }\n\n revs.refs[doc.ref] = doc\n revs.refs[doc.rawRef] = doc\n\n if (doc.type === 'tag') {\n // try to pull a semver value out of tags like `release-v1.2.3`\n // which is a pretty common pattern.\n const match =\n doc.ref.endsWith('^{}') ?\n null\n : /v?(\\d+\\.\\d+\\.\\d+(?:[-+].+)?)$/.exec(doc.ref)\n if (match) {\n /* c8 ignore start */\n if (!match[1])\n throw error(`invalid semver tag`, { found: doc.ref })\n /* c8 ignore stop */\n const v = parse(match[1])\n if (v) revs.versions[String(v)] = doc\n }\n }\n\n return revs\n}\n", "import type { RevDoc } from '@vltpkg/types'\nimport { pickManifest } from '@vltpkg/pick-manifest'\nimport type { GitOptions } from './index.ts'\nimport { revs } from './revs.ts'\n\n/**\n * Given a repo and either a ref or a git specifier Spec object, resolve the\n * appropriate ref that we should clone, ideally witout actually cloning the\n * repository.\n *\n *\n */\nexport const resolve = async (\n repo: string,\n ref = 'HEAD',\n opts: GitOptions = {},\n) => {\n const revDoc = await revs(repo, opts)\n /* no resolution possible if we can't read the repo */\n if (!revDoc) return undefined\n return resolveRef(revDoc, ref, opts)\n}\n\n/**\n * Given a repo's RevDoc object and either a ref or a git specifier Spec\n * object, resolve the appropriate ref that we should clone, witout actually\n * cloning the repository.\n */\nexport const resolveRef = (\n revDoc: RevDoc,\n ref = 'HEAD',\n opts: GitOptions = {},\n) => {\n const { spec } = opts\n ref = spec?.gitCommittish || ref\n if (spec?.range) {\n return pickManifest(revDoc, spec.range, opts)\n }\n if (!ref) {\n return revDoc.refs.HEAD\n }\n if (revDoc.refs[ref]) {\n return revDoc.refs[ref]\n }\n /* c8 ignore start - typically found above, but just in case */\n const sha = revDoc.shas[ref]?.[0]\n if (sha) {\n return revDoc.refs[sha]\n }\n /* c8 ignore stop */\n return undefined\n}\n", "import { dirname } from 'path'\nimport { is } from './is.ts'\n\nexport type FindOpts = {\n cwd?: string\n root?: string\n}\nexport const find = async ({\n cwd = process.cwd(),\n root,\n}: FindOpts = {}) => {\n while (true) {\n if (await is({ cwd })) {\n return cwd\n }\n const next = dirname(cwd)\n if (cwd === root || cwd === next) {\n return undefined\n }\n cwd = next\n }\n}\n", "// not an airtight indicator, but a good gut-check to even bother trying\nimport { stat } from 'fs/promises'\nexport const is = ({ cwd = process.cwd() } = {}) =>\n stat(cwd + '/.git').then(\n () => true,\n () => false,\n )\n"],
5
- "mappings": "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",
6
- "names": ["error", "opts", "original", "require_retry", "promiseRetry", "resolve", "opts", "stat", "isexe", "sync", "statSync", "stat", "checkStat", "isexe", "sync", "is", "sync", "opts", "opts", "gitPath", "promiseRetry", "opts", "stat", "resolve", "fileURLToPath", "isWindows", "opts", "opts", "versions", "distTags", "revs", "opts", "opts", "opts", "fileURLToPath", "revs", "resolve", "isWindows", "stat", "stat"]
7
- }
package/chunk-3HXIYJS2.js DELETED
@@ -1,54 +0,0 @@
1
- var global = globalThis;
2
- import {Buffer} from "node:buffer";
3
- import {setImmediate, clearImmediate} from "node:timers";
4
- import {createRequire as _vlt_createRequire} from 'node:module';
5
- var require = _vlt_createRequire(import.meta.filename);
6
- var __create = Object.create;
7
- var __defProp = Object.defineProperty;
8
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
- var __getOwnPropNames = Object.getOwnPropertyNames;
10
- var __getProtoOf = Object.getPrototypeOf;
11
- var __hasOwnProp = Object.prototype.hasOwnProperty;
12
- var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
13
- get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
14
- }) : x)(function(x) {
15
- if (typeof require !== "undefined") return require.apply(this, arguments);
16
- throw Error('Dynamic require of "' + x + '" is not supported');
17
- });
18
- var __glob = (map) => (path) => {
19
- var fn = map[path];
20
- if (fn) return fn();
21
- throw new Error("Module not found in bundle: " + path);
22
- };
23
- var __commonJS = (cb, mod) => function __require2() {
24
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
25
- };
26
- var __export = (target, all) => {
27
- for (var name in all)
28
- __defProp(target, name, { get: all[name], enumerable: true });
29
- };
30
- var __copyProps = (to, from, except, desc) => {
31
- if (from && typeof from === "object" || typeof from === "function") {
32
- for (let key of __getOwnPropNames(from))
33
- if (!__hasOwnProp.call(to, key) && key !== except)
34
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
35
- }
36
- return to;
37
- };
38
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
39
- // If the importer is in node compatibility mode or this is not an ESM
40
- // file that has been converted to a CommonJS file using a Babel-
41
- // compatible transform (i.e. "__esModule" has not been set), then set
42
- // "default" to the CommonJS "module.exports" for node compatibility.
43
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
44
- mod
45
- ));
46
-
47
- export {
48
- __require,
49
- __glob,
50
- __commonJS,
51
- __export,
52
- __toESM
53
- };
54
- //# sourceMappingURL=chunk-3HXIYJS2.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }