@gjsify/npm-registry 0.47.0 → 0.49.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.
package/lib/esm/auth.js CHANGED
@@ -1 +1 @@
1
- import"./_virtual/_rolldown/runtime.js";function buildHeaders(e,t){let n={"user-agent":`gjsify-install/0.47.0`,"accept-encoding":t.acceptEncoding??`identity`};if(t.npmrc){let r=resolveAuthForUrl(e,t.npmrc);r&&(n.authorization=r)}if(t.headers)for(let[e,r]of Object.entries(t.headers))n[e.toLowerCase()]=r;return n}function resolveAuthForUrl(e,t){let n=pathPrefixes(new URL(e));for(let e of n){let n=t.authTokens[e];if(n)return`Bearer ${n}`;let r=t.basicAuth[e];if(r)return`Basic ${btoa(`${r.username}:${r.password}`)}`}return null}function pathPrefixes(e){let t=e.pathname.split(`/`).filter(Boolean),n=[];for(let r=t.length;r>=0;r--){let i=t.slice(0,r).join(`/`);n.push(i?`//${e.host}/${i}`:`//${e.host}`)}return n}export{buildHeaders,resolveAuthForUrl};
1
+ import"./_virtual/_rolldown/runtime.js";function buildHeaders(e,t){let n={"user-agent":`gjsify-install/0.49.0`,"accept-encoding":t.acceptEncoding??`identity`};if(t.npmrc){let r=resolveAuthForUrl(e,t.npmrc);r&&(n.authorization=r)}if(t.headers)for(let[e,r]of Object.entries(t.headers))n[e.toLowerCase()]=r;return n}function resolveAuthForUrl(e,t){let n=pathPrefixes(new URL(e));for(let e of n){let n=t.authTokens[e];if(n)return`Bearer ${n}`;let r=t.basicAuth[e];if(r)return`Basic ${btoa(`${r.username}:${r.password}`)}`}return null}function pathPrefixes(e){let t=e.pathname.split(`/`).filter(Boolean),n=[];for(let r=t.length;r>=0;r--){let i=t.slice(0,r).join(`/`);n.push(i?`//${e.host}/${i}`:`//${e.host}`)}return n}export{buildHeaders,resolveAuthForUrl};
package/lib/esm/errors.js CHANGED
@@ -1 +1 @@
1
- import"./_virtual/_rolldown/runtime.js";var PackageNotFoundError=class extends Error{name;url;constructor(e,t){super(`Package not found in registry: ${e} (${t})`),this.name=e,this.url=t,this.name=`PackageNotFoundError`}},IntegrityError=class extends Error{url;integrity;constructor(e,t){super(`Tarball integrity mismatch for ${e} (expected ${t})`),this.url=e,this.integrity=t,this.name=`IntegrityError`}},RegistryTimeoutError=class extends Error{url;timeoutMs;attempts;constructor(e,t,n){let r=Math.round(t/100)/10,i=Math.round(t*n/100)/10;super(`@gjsify/npm-registry: GET ${e} timed out after ${r}s × ${n} attempt(s) (total ~${i}s). This usually means the registry CDN is slow or unreachable.`),this.url=e,this.timeoutMs=t,this.attempts=n,this.name=`RegistryTimeoutError`}};export{IntegrityError,PackageNotFoundError,RegistryTimeoutError};
1
+ import"./_virtual/_rolldown/runtime.js";var PackageNotFoundError=class extends Error{name;url;constructor(e,t){super(`Package not found in registry: ${e} (${t})`),this.name=e,this.url=t,this.name=`PackageNotFoundError`}},IntegrityError=class extends Error{url;integrity;constructor(e,t){super(`Tarball integrity mismatch for ${e} (expected ${t})`),this.url=e,this.integrity=t,this.name=`IntegrityError`}},RegistryTimeoutError=class extends Error{url;timeoutMs;attempts;constructor(e,t,n){let r=Math.round(t/100)/10,i=Math.round(t*n/100)/10;super(`@gjsify/npm-registry: GET ${e} timed out after ${r}s × ${n} attempt(s) (total ~${i}s). This usually means the registry CDN is slow or unreachable.`),this.url=e,this.timeoutMs=t,this.attempts=n,this.name=`RegistryTimeoutError`}},RegistryUnreachableError=class extends Error{url;attempts;elapsedMs;constructor(e,t,n,r){let i=Math.round(n/100)/10,a=r instanceof Error?r.message:String(r);super(`@gjsify/npm-registry: GET ${e} failed after ${t} attempt(s) over ~${i}s: ${a}. This usually means the registry or the network dropped out.`),this.url=e,this.attempts=t,this.elapsedMs=n,this.name=`RegistryUnreachableError`,this.cause=r}};export{IntegrityError,PackageNotFoundError,RegistryTimeoutError,RegistryUnreachableError};
package/lib/esm/index.js CHANGED
@@ -1 +1 @@
1
- import{buildHeaders as e,resolveAuthForUrl as t}from"./auth.js";import{IntegrityError as n,PackageNotFoundError as r,RegistryTimeoutError as i}from"./errors.js";import{DEFAULT_REGISTRY as a,parseNpmrc as o,registryFor as s}from"./npmrc.js";import{fetchWithRetry as c}from"./retry.js";import{verifyIntegrity as l}from"./integrity.js";import{assertPackument as u,fetchPackument as d,fetchPackumentConditional as f,packumentUrl as p}from"./packument.js";import{fetchTarball as m}from"./tarball.js";import{whoami as h}from"./whoami.js";export{a as DEFAULT_REGISTRY,n as IntegrityError,r as PackageNotFoundError,i as RegistryTimeoutError,u as assertPackument,e as buildHeaders,d as fetchPackument,f as fetchPackumentConditional,m as fetchTarball,c as fetchWithRetry,p as packumentUrl,o as parseNpmrc,s as registryFor,t as resolveAuthForUrl,l as verifyIntegrity,h as whoami};
1
+ import{buildHeaders as e,resolveAuthForUrl as t}from"./auth.js";import{IntegrityError as n,PackageNotFoundError as r,RegistryTimeoutError as i,RegistryUnreachableError as a}from"./errors.js";import{DEFAULT_REGISTRY as o,parseNpmrc as s,registryFor as c}from"./npmrc.js";import{fetchWithRetry as l}from"./retry.js";import{verifyIntegrity as u}from"./integrity.js";import{assertPackument as d,fetchPackument as f,fetchPackumentConditional as p,packumentUrl as m}from"./packument.js";import{fetchTarball as h}from"./tarball.js";import{whoami as g}from"./whoami.js";export{o as DEFAULT_REGISTRY,n as IntegrityError,r as PackageNotFoundError,i as RegistryTimeoutError,a as RegistryUnreachableError,d as assertPackument,e as buildHeaders,f as fetchPackument,p as fetchPackumentConditional,h as fetchTarball,l as fetchWithRetry,m as packumentUrl,s as parseNpmrc,c as registryFor,t as resolveAuthForUrl,u as verifyIntegrity,g as whoami};
@@ -1 +1 @@
1
- import"./_virtual/_rolldown/runtime.js";import{buildHeaders as e}from"./auth.js";import{PackageNotFoundError as t}from"./errors.js";import{ensureTrailingSlash as n,registryFor as r}from"./npmrc.js";import{fetchWithRetry as i}from"./retry.js";function assertPackument(e,t){if(!t||typeof t!=`object`)throw TypeError(`registry: ${e} packument is not an object`);let n=t;if(typeof n.name!=`string`)throw TypeError(`registry: ${e} packument missing string name`);if(!n.versions||typeof n.versions!=`object`)throw TypeError(`registry: ${e} packument missing versions map`)}function packumentUrl(e,t){let r=n(t);if(e.startsWith(`@`)){let t=e.indexOf(`/`);if(t<0)throw TypeError(`Invalid scoped package name: ${e}`);let n=e.slice(0,t),i=e.slice(t+1);return`${r}${encodeURIComponent(n)}/${encodeURIComponent(i)}`}return`${r}${encodeURIComponent(e)}`}async function fetchPackumentConditional(n,a={}){let o=packumentUrl(n,a.registry??r(n,a.npmrc)),s=e(o,{...a,acceptEncoding:`gzip`});s.accept??=a.fullMetadata?`application/json`:`application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*`,a.ifNoneMatch&&(s[`if-none-match`]=a.ifNoneMatch);let c=await i(o,{headers:s,signal:a.signal},{fetch:a.fetch,retries:a.retries,retryDelayMs:a.retryDelayMs,timeoutMs:a.timeoutMs,onRetry:a.onRetry});if(c.status===304){try{await c.arrayBuffer()}catch{}return{status:`not-modified`,etag:a.ifNoneMatch}}if(!c.ok)throw c.status===404||c.status===406?new t(n,o):Error(`registry GET ${o} -> ${c.status} ${c.statusText}`);let l=c.headers.get(`etag`)??void 0,u=await decodeJsonBody(c);return assertPackument(n,u),{status:`fresh`,packument:u,etag:l}}async function decodeJsonBody(e){return e.json()}async function fetchPackument(e,t={}){let n=await fetchPackumentConditional(e,t);if(!n.packument)throw Error(`registry: ${e} returned 304 Not Modified to an unconditional request`);return n.packument}export{assertPackument,fetchPackument,fetchPackumentConditional,packumentUrl};
1
+ import"./_virtual/_rolldown/runtime.js";import{buildHeaders as e}from"./auth.js";import{PackageNotFoundError as t}from"./errors.js";import{ensureTrailingSlash as n,registryFor as r}from"./npmrc.js";import{fetchWithRetry as i}from"./retry.js";function assertPackument(e,t){if(!t||typeof t!=`object`)throw TypeError(`registry: ${e} packument is not an object`);let n=t;if(typeof n.name!=`string`)throw TypeError(`registry: ${e} packument missing string name`);if(!n.versions||typeof n.versions!=`object`)throw TypeError(`registry: ${e} packument missing versions map`)}function packumentUrl(e,t){let r=n(t);if(e.startsWith(`@`)){let t=e.indexOf(`/`);if(t<0)throw TypeError(`Invalid scoped package name: ${e}`);let n=e.slice(0,t),i=e.slice(t+1);return`${r}${encodeURIComponent(n)}/${encodeURIComponent(i)}`}return`${r}${encodeURIComponent(e)}`}async function fetchPackumentConditional(n,a={}){let o=packumentUrl(n,a.registry??r(n,a.npmrc)),s=e(o,{...a,acceptEncoding:`gzip`});s.accept??=a.fullMetadata?`application/json`:`application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*`,a.ifNoneMatch&&(s[`if-none-match`]=a.ifNoneMatch);let c=await i(o,{headers:s,signal:a.signal},{fetch:a.fetch,retries:a.retries,retryDelayMs:a.retryDelayMs,timeoutMs:a.timeoutMs,onRetry:a.onRetry,read:async e=>{if(e.status===304){try{await e.arrayBuffer()}catch{}return{status:`not-modified`}}if(!e.ok)throw e.status===404||e.status===406?new t(n,o):Error(`registry GET ${o} -> ${e.status} ${e.statusText}`);return{status:`fresh`,body:await decodeJsonBody(e),etag:e.headers.get(`etag`)??void 0}}});if(c.status===`not-modified`)return{status:`not-modified`,etag:a.ifNoneMatch};let l=c.body;return assertPackument(n,l),{status:`fresh`,packument:l,etag:c.etag}}async function decodeJsonBody(e){return e.json()}async function fetchPackument(e,t={}){let n=await fetchPackumentConditional(e,t);if(!n.packument)throw Error(`registry: ${e} returned 304 Not Modified to an unconditional request`);return n.packument}export{assertPackument,fetchPackument,fetchPackumentConditional,packumentUrl};
package/lib/esm/retry.js CHANGED
@@ -1 +1 @@
1
- import"./_virtual/_rolldown/runtime.js";import{RegistryTimeoutError as e}from"./errors.js";async function fetchWithRetry(t,n,r){let i=r.fetch??globalThis.fetch;if(!i)throw Error(`@gjsify/npm-registry: globalThis.fetch is missing`);let a=Math.max(0,r.retries??3),o=Math.max(0,r.retryDelayMs??250),s=Math.max(0,r.timeoutMs??3e4),c=r.retryNotFound??!1,l=0,u,d=0;for(;;){if(n.signal?.aborted)throw signalAbortError(n.signal);let f=s>0?new AbortController:null,p=f===null?null:setTimeout(()=>f.abort(Error(`@gjsify/npm-registry: per-request timeout ${s}ms`)),s),m=composeSignals(n.signal,f?.signal);try{let e=await i(t,{...n,signal:m}),r=isRetryableStatus(e.status)||c&&e.status===404;if(e.ok||!r||l>=a)return e;try{await e.arrayBuffer()}catch{}u=Error(`HTTP ${e.status} ${e.statusText}`)}catch(r){let i=f!==null&&f.signal.aborted,o=n.signal?.aborted===!0;if(i&&!o){if(d++,l>=a)throw new e(t,s,d);u=r}else if(o)throw signalAbortError(n.signal);else{if(!isRetryableError(r)||l>=a)throw r;u=r}}finally{p!==null&&clearTimeout(p)}let h=Math.min(o*2**l,8e3);r.onRetry?.({attempt:l+1,error:u,delayMs:h}),await delay(h,n.signal),l++}}function composeSignals(e,t){return e?t?AbortSignal.any([e,t]):e:t}function isRetryableStatus(e){return e===408||e===425||e===429||e===500||e===502||e===503||e===504||e===521||e===522||e===524||e===525}function isRetryableError(e){if(e&&typeof e==`object`&&`name`in e&&e.name===`AbortError`)return!1;if(e instanceof TypeError)return!0;if(e&&typeof e==`object`&&`name`in e){let t=e.name;if(t===`FetchError`)return!0;if(t===`AbortError`)return!1}let t=e?.cause;if(t&&typeof t==`object`&&`code`in t){let e=t.code;if(typeof e==`string`)return e===`ECONNRESET`||e===`ECONNREFUSED`||e===`ENETUNREACH`||e===`ENOTFOUND`||e===`ETIMEDOUT`||e===`EAI_AGAIN`||e===`UND_ERR_SOCKET`||e===`UND_ERR_CONNECT_TIMEOUT`}return!1}function delay(e,t){return e<=0?Promise.resolve():new Promise((n,r)=>{let i=setTimeout(()=>{t?.removeEventListener?.(`abort`,onAbort),n()},e),onAbort=()=>{clearTimeout(i),r(signalAbortError(t))};if(t?.aborted){clearTimeout(i),r(signalAbortError(t));return}t?.addEventListener?.(`abort`,onAbort,{once:!0})})}function signalAbortError(e){let t=e&&`reason`in e?e.reason:void 0;if(t instanceof Error)return t;let n=Error(`Aborted`);return n.name=`AbortError`,n}export{fetchWithRetry};
1
+ import"./_virtual/_rolldown/runtime.js";import{RegistryTimeoutError as e,RegistryUnreachableError as t}from"./errors.js";async function fetchWithRetry(n,r,i){let a=i.fetch??globalThis.fetch;if(!a)throw Error(`@gjsify/npm-registry: globalThis.fetch is missing`);let o=Math.max(0,i.retries??5),s=Math.max(0,i.retryDelayMs??1e3),c=Math.max(0,i.timeoutMs??3e4),l=i.retryNotFound??!1,u=Date.now(),d=0,f,p=0;for(;;){if(r.signal?.aborted)throw signalAbortError(r.signal);let m=c>0?new AbortController:null,h=m===null?null:setTimeout(()=>m.abort(Error(`@gjsify/npm-registry: per-request timeout ${c}ms`)),c),g=composeSignals(r.signal,m?.signal);try{let e=await a(n,{...r,signal:g}),t=isRetryableStatus(e.status)||l&&e.status===404;if(e.ok||!t||d>=o)return i.read?await i.read(e):e;try{await e.arrayBuffer()}catch{}f=Error(`HTTP ${e.status} ${e.statusText}`)}catch(i){let a=m!==null&&m.signal.aborted,s=r.signal?.aborted===!0;if(a&&!s){if(p++,d>=o)throw new e(n,c,p);f=i}else if(s)throw signalAbortError(r.signal);else{if(!isRetryableError(i))throw i;if(d>=o)throw new t(n,d+1,Date.now()-u,i);f=i}}finally{h!==null&&clearTimeout(h)}let _=Math.min(s*2**d,8e3);i.onRetry?.({attempt:d+1,error:f,delayMs:_}),await delay(_,r.signal),d++}}function composeSignals(e,t){return e?t?AbortSignal.any([e,t]):e:t}function isRetryableStatus(e){return e===408||e===425||e===429||e===500||e===502||e===503||e===504||e===521||e===522||e===524||e===525}function isRetryableError(e){if(e&&typeof e==`object`&&`name`in e&&e.name===`AbortError`)return!1;if(e instanceof TypeError)return!0;if(e&&typeof e==`object`&&`name`in e){let t=e.name;if(t===`FetchError`)return!0;if(t===`AbortError`)return!1}let t=e?.cause;if(t&&typeof t==`object`&&`code`in t){let e=t.code;if(typeof e==`string`)return e===`ECONNRESET`||e===`ECONNREFUSED`||e===`ENETUNREACH`||e===`ENOTFOUND`||e===`ETIMEDOUT`||e===`EAI_AGAIN`||e===`UND_ERR_SOCKET`||e===`UND_ERR_CONNECT_TIMEOUT`}return!1}function delay(e,t){return e<=0?Promise.resolve():new Promise((n,r)=>{let i=setTimeout(()=>{t?.removeEventListener?.(`abort`,onAbort),n()},e),onAbort=()=>{clearTimeout(i),r(signalAbortError(t))};if(t?.aborted){clearTimeout(i),r(signalAbortError(t));return}t?.addEventListener?.(`abort`,onAbort,{once:!0})})}function signalAbortError(e){let t=e&&`reason`in e?e.reason:void 0;if(t instanceof Error)return t;let n=Error(`Aborted`);return n.name=`AbortError`,n}export{fetchWithRetry};
@@ -1 +1 @@
1
- import"./_virtual/_rolldown/runtime.js";import{buildHeaders as e}from"./auth.js";import{IntegrityError as t}from"./errors.js";import{fetchWithRetry as n}from"./retry.js";import{verifyIntegrity as r}from"./integrity.js";async function fetchTarball(i,a={}){let o=e(i,{...a,acceptEncoding:`identity`});o.accept??=`application/octet-stream`;let s=await n(i,{headers:o,signal:a.signal},{fetch:a.fetch,retries:a.retries,retryDelayMs:a.retryDelayMs,timeoutMs:a.timeoutMs,onRetry:a.onRetry,retryNotFound:a.retryNotFound??!0});if(!s.ok)throw Error(`tarball GET ${i} -> ${s.status} ${s.statusText}`);let c=new Uint8Array(await s.arrayBuffer());if(a.integrity&&!await r(c,a.integrity))throw new t(i,a.integrity);return c}export{fetchTarball};
1
+ import"./_virtual/_rolldown/runtime.js";import{buildHeaders as e}from"./auth.js";import{IntegrityError as t}from"./errors.js";import{fetchWithRetry as n}from"./retry.js";import{verifyIntegrity as r}from"./integrity.js";async function fetchTarball(i,a={}){let o=e(i,{...a,acceptEncoding:`identity`});o.accept??=`application/octet-stream`;let s=await n(i,{headers:o,signal:a.signal},{fetch:a.fetch,retries:a.retries,retryDelayMs:a.retryDelayMs,timeoutMs:a.timeoutMs,onRetry:a.onRetry,retryNotFound:a.retryNotFound??!0,read:async e=>{if(!e.ok)throw Error(`tarball GET ${i} -> ${e.status} ${e.statusText}`);return new Uint8Array(await e.arrayBuffer())}});if(a.integrity&&!await r(s,a.integrity))throw new t(i,a.integrity);return s}export{fetchTarball};
@@ -1 +1 @@
1
- {"fileNames":["../../../../node_modules/@gjsify/tsc/lib/lib.es5.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2015.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2016.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2017.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2018.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2019.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2020.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2021.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2022.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2023.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2024.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2025.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.esnext.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.dom.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2015.core.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2015.collection.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2015.generator.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2015.iterable.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2015.promise.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2015.proxy.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2015.reflect.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2015.symbol.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2016.array.include.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2016.intl.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2017.arraybuffer.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2017.date.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2017.object.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2017.string.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2017.intl.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2018.intl.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2018.promise.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2018.regexp.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2019.array.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2019.object.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2019.string.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2019.symbol.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2019.intl.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2020.bigint.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2020.date.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2020.promise.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2020.string.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2020.intl.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2020.number.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2021.promise.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2021.string.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2021.weakref.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2021.intl.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2022.array.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2022.error.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2022.intl.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2022.object.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2022.string.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2022.regexp.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2023.array.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2023.collection.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2023.intl.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2024.arraybuffer.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2024.collection.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2024.object.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2024.promise.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2024.regexp.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2024.sharedmemory.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2024.string.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2025.collection.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2025.float16.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2025.intl.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2025.iterator.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2025.promise.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.es2025.regexp.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.esnext.array.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.esnext.collection.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.esnext.date.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.esnext.decorators.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.esnext.disposable.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.esnext.error.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.esnext.intl.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.esnext.sharedmemory.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.esnext.temporal.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.esnext.typedarrays.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.decorators.d.ts","../../../../node_modules/@gjsify/tsc/lib/lib.decorators.legacy.d.ts","../src/types.ts","../src/auth.ts","../src/errors.ts","../src/npmrc.ts","../src/retry.ts","../src/integrity.ts","../src/packument.ts","../src/tarball.ts","../src/whoami.ts","../src/index.ts"],"fileIdsList":[[89],[89,90,91,92,93,94,95,96,97],[89,90,91,92,93],[89,91],[89,90,91,93,94],[89,90,92]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":99},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":99},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":99},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":99},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":99},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":99},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":99},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":99},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":99},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":99},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":99},{"version":"999ca32883495a866aa5737fe1babc764a469e4cde6ee6b136a4b9ae68853e4b","impliedFormat":99},{"version":"17f13ecb98cbc39243f2eee1f16d45cd8ec4706b03ee314f1915f1a8b42f6984","impliedFormat":99},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":99},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":99},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":99},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":99},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":99},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":99},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":99},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":99},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":99},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":99},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":99},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":99},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":99},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":99},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":99},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":99},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":99},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":99},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":99},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":99},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":99},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":99},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":99},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":99},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":99},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":99},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":99},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":99},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":99},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":99},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":99},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":99},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":99},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":99},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":99},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":99},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":99},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":99},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":99},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":99},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":99},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":99},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":99},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":99},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":99},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":99},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":99},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":99},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":99},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":99},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":99},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":99},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":99},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":99},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":99},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":99},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":99},{"version":"30d62269b05b584741f19a5369852d5d34895aa2ac4fd948956f886d15f9cc0d","affectsGlobalScope":true,"impliedFormat":99},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":99},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":99},{"version":"996fb27b15277369c68a4ba46ed138b4e9e839a02fb4ec756f7997629242fd9f","affectsGlobalScope":true,"impliedFormat":99},{"version":"79b712591b270d4778c89706ca2cfc56ddb8c3f895840e477388f1710dc5eda9","affectsGlobalScope":true,"impliedFormat":99},{"version":"20884846cef428b992b9bd032e70a4ef88e349263f63aeddf04dda837a7dba26","affectsGlobalScope":true,"impliedFormat":99},{"version":"5fcab789c73a97cd43828ee3cc94a61264cf24d4c44472ce64ced0e0f148bdb2","affectsGlobalScope":true,"impliedFormat":99},{"version":"db59a81f070c1880ad645b2c0275022baa6a0c4f0acdc58d29d349c6efcf0903","affectsGlobalScope":true,"impliedFormat":99},{"version":"673294292640f5722b700e7d814e17aaf7d93f83a48a2c9b38f33cbc940ad8b0","affectsGlobalScope":true,"impliedFormat":99},{"version":"d786b48f934cbca483b3c6d0a798cb43bbb4ada283e76fb22c28e53ae05b9e69","affectsGlobalScope":true,"impliedFormat":99},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":99},{"version":"142efd4ce210576f777dc34df121777be89eda476942d6d6663b03dcb53be3ff","affectsGlobalScope":true,"impliedFormat":99},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":99},{"version":"ed484fb2aa8a1a23d0277056ec3336e0a0b52f9b8d6a961f338a642faf43235d","affectsGlobalScope":true,"impliedFormat":99},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":99},{"version":"83a730b125d477dd264df8ba479afab27a3dae7152b005c214ab94dc7ee44fd3","affectsGlobalScope":true,"impliedFormat":99},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":99},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":99},{"version":"6126d8472c154ac3c8223f8195bcce57becac9b881dbba09792f5a5e762dbc58","signature":"710a57ef7a33e357a15f1051887d84b5cc701959e205959d0dc81d0ed51ce29f"},{"version":"a3fbf0fafd69135c3e09033c11c5f7afa8cfd5cdd48c96dfd527a73ebf90c1f4","signature":"4f874f5daf3eafe4105cbfe0157be5ff34f0741d54650aaec47600714d009be2"},{"version":"f5ba66d1fe7a8cb103ee4262aa15fa3988a5505c8a08a56dd2f782ca699769c9","signature":"b309ce8c50d191e30fc3314df5d24f556bc6af1d0aab78cfa0b2e7f8d52ac107"},{"version":"a9e8884690e997f43ae050f53857d81a309ccb7d7edc3d707c2bca6225a5c212","signature":"23ef376f13c7eb6e3c3310f2386f46077b416c124947143d35bd93c0553f315d"},{"version":"fe7c2129797e9f34fe3f72291ee94bf501b776525215a629cbd10032a12e68f0","signature":"888ac3930d7f6d179e369a0e84299c135a3efb595f074d80248697625b37799c"},{"version":"2e687b0353b6ed4c2af49a1687409c895e32b0f99faca455e97206bfad7ef5d9","signature":"b0c42f874e366f8049a42baab30af08969e4c5b90f96c359ac7f8eb9eae82c59"},{"version":"997978cd8f53d111ce42bf7d0a6825338dc7cd121441e9ae22372e25ac24c700","signature":"5336c2dcf6bb3bc1513a1612347e5e213138ad131bb2a07af839ea2573b3e3f8"},{"version":"af466292c1c7e9ac85cdc2915c746418a7b70918e75e8f689e0a971d2e530c39","signature":"da8af403956b42c8ff42ca5bacea8049cc751cc65abc755d1a75412b39f5d4df"},{"version":"b1d979324fd79839e7b0be14302d42e745be43172ad6acf78cc31914e944eb63","signature":"614b920fcd2d54e364feccdbc7fdb64a57e72e30c8a3c8baf8b5250f823dc5d8"},{"version":"3aa61537bc287a10f866ea56d16268a5950113d4e80ea9b89ea199e081878a4f","signature":"e13d9b21ecec050528c7b2b31b15e08b34d07138aa3bc49cf63a2b3c8e5bb8e0"}],"root":[[89,98]],"options":{"allowImportingTsExtensions":false,"composite":true,"declaration":true,"declarationDir":"./types","emitDeclarationOnly":true,"experimentalDecorators":true,"module":99,"outDir":"./esm","rootDir":"../src","skipLibCheck":true,"strict":true,"target":99},"referencedMap":[[90,1],[98,2],[92,1],[95,3],[93,4],[96,5],[97,6]],"latestChangedDtsFile":"./types/index.d.ts","version":"6.0.3"}
1
+ {"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../../node_modules/typescript/lib/lib.es2024.d.ts","../../../../node_modules/typescript/lib/lib.es2025.d.ts","../../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../../../node_modules/typescript/lib/lib.es2025.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2025.float16.d.ts","../../../../node_modules/typescript/lib/lib.es2025.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2025.iterator.d.ts","../../../../node_modules/typescript/lib/lib.es2025.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2025.regexp.d.ts","../../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../../node_modules/typescript/lib/lib.esnext.date.d.ts","../../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.esnext.temporal.d.ts","../../../../node_modules/typescript/lib/lib.esnext.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/types.ts","../src/auth.ts","../src/errors.ts","../src/npmrc.ts","../src/retry.ts","../src/integrity.ts","../src/packument.ts","../src/tarball.ts","../src/whoami.ts","../src/index.ts"],"fileIdsList":[[89],[89,90,91,92,93,94,95,96,97],[89,90,91,92,93],[89,91],[89,90,91,93,94],[89,90,92]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":1},{"version":"999ca32883495a866aa5737fe1babc764a469e4cde6ee6b136a4b9ae68853e4b","impliedFormat":1},{"version":"17f13ecb98cbc39243f2eee1f16d45cd8ec4706b03ee314f1915f1a8b42f6984","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":1},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":1},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":1},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":1},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":1},{"version":"30d62269b05b584741f19a5369852d5d34895aa2ac4fd948956f886d15f9cc0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"996fb27b15277369c68a4ba46ed138b4e9e839a02fb4ec756f7997629242fd9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"79b712591b270d4778c89706ca2cfc56ddb8c3f895840e477388f1710dc5eda9","affectsGlobalScope":true,"impliedFormat":1},{"version":"20884846cef428b992b9bd032e70a4ef88e349263f63aeddf04dda837a7dba26","affectsGlobalScope":true,"impliedFormat":1},{"version":"5fcab789c73a97cd43828ee3cc94a61264cf24d4c44472ce64ced0e0f148bdb2","affectsGlobalScope":true,"impliedFormat":1},{"version":"db59a81f070c1880ad645b2c0275022baa6a0c4f0acdc58d29d349c6efcf0903","affectsGlobalScope":true,"impliedFormat":1},{"version":"673294292640f5722b700e7d814e17aaf7d93f83a48a2c9b38f33cbc940ad8b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d786b48f934cbca483b3c6d0a798cb43bbb4ada283e76fb22c28e53ae05b9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"142efd4ce210576f777dc34df121777be89eda476942d6d6663b03dcb53be3ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ed484fb2aa8a1a23d0277056ec3336e0a0b52f9b8d6a961f338a642faf43235d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":1},{"version":"83a730b125d477dd264df8ba479afab27a3dae7152b005c214ab94dc7ee44fd3","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"0c383d916ff3ebd44dcd652b7092c718489ef620a1bced5fc325198f3d3587d3","signature":"5598add9e355e2ff5eb1749a9a535797c92edcfd3de289852def2e0c06f6c3a2"},{"version":"a3fbf0fafd69135c3e09033c11c5f7afa8cfd5cdd48c96dfd527a73ebf90c1f4","signature":"4f874f5daf3eafe4105cbfe0157be5ff34f0741d54650aaec47600714d009be2"},{"version":"03811c9010096b2e0d9d13812c71c4e0a9a0bdb9d818d5f5d979f4814726bd5c","signature":"99294c7c0b3473e9a7fe66a14dde7e27fd70579ff8f498e2eef59fd4f748e0ca"},{"version":"a9e8884690e997f43ae050f53857d81a309ccb7d7edc3d707c2bca6225a5c212","signature":"23ef376f13c7eb6e3c3310f2386f46077b416c124947143d35bd93c0553f315d"},{"version":"b03ae98bac109f59b896d73eea01f61f81e7f99dfc6271fd495c318c3f36c7b6","signature":"a3b41b5301036855346e1ae7ca1db46ae51389fe54a0cc2bf85b64eceacb8a28"},{"version":"2e687b0353b6ed4c2af49a1687409c895e32b0f99faca455e97206bfad7ef5d9","signature":"b0c42f874e366f8049a42baab30af08969e4c5b90f96c359ac7f8eb9eae82c59"},{"version":"841dd75cf5f43eb71f074842c4298bc33c027cd3b22d5b125f7dee367259b678","signature":"20a00510ca5280344e87ce1a55900f2a892c366427339dead6573bd80230b4c5"},{"version":"3bf537246235471ef6b812519c67e9fdde7c451f1b2c81c5bb2ce0e4157c0a9c","signature":"da8af403956b42c8ff42ca5bacea8049cc751cc65abc755d1a75412b39f5d4df"},{"version":"b1d979324fd79839e7b0be14302d42e745be43172ad6acf78cc31914e944eb63","signature":"614b920fcd2d54e364feccdbc7fdb64a57e72e30c8a3c8baf8b5250f823dc5d8"},{"version":"c3f77380805d353cf36556a3340a56209c80dc56de663667b03001d4484bdf49","signature":"7b59f12ebf5850019e504afe1fbe56faa3511b1dd0e212bf9de5c15ee3b6c69d"}],"root":[[89,98]],"options":{"allowImportingTsExtensions":false,"composite":true,"declaration":true,"declarationDir":"./types","emitDeclarationOnly":true,"experimentalDecorators":true,"module":99,"outDir":"./esm","rootDir":"../src","skipLibCheck":true,"strict":true,"target":99},"referencedMap":[[90,1],[98,2],[92,1],[95,3],[93,4],[96,5],[97,6]],"latestChangedDtsFile":"./types/index.d.ts","version":"6.0.3"}
@@ -21,3 +21,24 @@ export declare class RegistryTimeoutError extends Error {
21
21
  readonly attempts: number;
22
22
  constructor(url: string, timeoutMs: number, attempts: number);
23
23
  }
24
+ /**
25
+ * Thrown when every retry attempt against a registry URL fails at the network
26
+ * layer (`fetch` rejects, the connection resets, the body stops arriving
27
+ * mid-stream). The sibling of {@link RegistryTimeoutError} for the case where
28
+ * the request does not hang but dies.
29
+ *
30
+ * It exists for the same reason: the raw error the runtime hands us is
31
+ * `TypeError: fetch failed` (undici) or a bare `FetchError` (GJS/libsoup),
32
+ * neither of which says WHICH of an install's several thousand requests died,
33
+ * how many attempts it got, or how long it was given. A CI log that ends in one
34
+ * unattributed `fetch failed` line is not enough to tell a registry outage from
35
+ * a bug, which is what happened to gjsify's own macOS run on 2026-09-08.
36
+ *
37
+ * The underlying error stays reachable as `cause`.
38
+ */
39
+ export declare class RegistryUnreachableError extends Error {
40
+ readonly url: string;
41
+ readonly attempts: number;
42
+ readonly elapsedMs: number;
43
+ constructor(url: string, attempts: number, elapsedMs: number, cause: unknown);
44
+ }
@@ -1,5 +1,5 @@
1
1
  export type { FetchOptions, NpmrcConfig, Packument, PackumentDist, PackumentVersion } from './types.js';
2
- export { IntegrityError, PackageNotFoundError, RegistryTimeoutError } from './errors.js';
2
+ export { IntegrityError, PackageNotFoundError, RegistryTimeoutError, RegistryUnreachableError } from './errors.js';
3
3
  export { DEFAULT_REGISTRY, parseNpmrc, registryFor } from './npmrc.js';
4
4
  export { buildHeaders, resolveAuthForUrl } from './auth.js';
5
5
  export { fetchWithRetry } from './retry.js';
@@ -3,7 +3,6 @@ import type { FetchOptions, Packument } from './types.js';
3
3
  export declare function assertPackument(name: string, body: unknown): asserts body is Packument;
4
4
  /** Build the GET URL for a packument. Handles `@scope/name` URL-encoding. */
5
5
  export declare function packumentUrl(name: string, registry: string): string;
6
- /** Outcome of a conditional packument fetch ({@link fetchPackumentConditional}). */
7
6
  export interface ConditionalPackument {
8
7
  /** `'fresh'` — the registry returned a new body (200). `'not-modified'` —
9
8
  * a 304, so the caller's cached copy is still current. */
@@ -1,4 +1,13 @@
1
1
  import type { FetchOptions } from './types.js';
2
+ /** `compress` is forwarded verbatim to the fetch impl. On @gjsify/fetch (GJS)
3
+ * `compress: false` disables transparent gzip decoding so the caller can
4
+ * buffer-then-gunzip itself; Node's undici ignores the field. */
5
+ type RetryInit = {
6
+ headers: Record<string, string>;
7
+ signal?: AbortSignal;
8
+ compress?: boolean;
9
+ };
10
+ type RetryOpts = Pick<FetchOptions, 'fetch' | 'retries' | 'retryDelayMs' | 'timeoutMs' | 'onRetry' | 'retryNotFound'>;
2
11
  /**
3
12
  * Wrap a single GET in exponential-backoff retry for transient failures.
4
13
  *
@@ -12,6 +21,8 @@ import type { FetchOptions } from './types.js';
12
21
  * surfaced by a fired timeout signal is treated as transient (slow
13
22
  * CDN) and retried like any other network blip; distinguished from
14
23
  * a caller-triggered abort via the abort signal's `reason` identity.
24
+ * - a body that stops arriving mid-stream, but ONLY when the caller passes
25
+ * `opts.read` (see below)
15
26
  *
16
27
  * Does NOT retry on:
17
28
  * - 4xx other than 408/425/429 (semantic errors — 404 surfaces via the
@@ -21,17 +32,35 @@ import type { FetchOptions } from './types.js';
21
32
  * - AbortError from the CALLER's signal (`opts.signal` — caller wants out)
22
33
  * - any other thrown shape that doesn't look transient
23
34
  *
24
- * Default schedule: 250ms, 500ms, 1000ms (3 retries → 4 total attempts);
25
- * capped at 8s per delay. Caller can tune via opts.retries / opts.retryDelayMs
26
- * / opts.timeoutMs.
35
+ * `opts.read` brings the BODY inside the retried region. Without it this
36
+ * returns once the HEADERS are in, so a caller's `res.arrayBuffer()` /
37
+ * `res.json()` runs outside every retry and a connection dying mid-body throws
38
+ * there, unretried.
39
+ *
40
+ * Keep VALIDATION out of `read` (`assertPackument`, SRI): `assertPackument`
41
+ * throws `TypeError`, which {@link isRetryableError} reads as transient, so a
42
+ * malformed packument would spend the whole budget and then be reported as a
43
+ * network fault. `read` covers transport; the caller checks what arrived.
27
44
  *
28
- * When ALL retries exhaust because of per-request timeouts, throws a
29
- * typed `RegistryTimeoutError` (not the raw "signal is aborted without
30
- * reason" the underlying fetch would surface) so the user gets a clear
31
- * "<url> timed out after Xs × N attempts" message.
45
+ * Default schedule: 1s, 2s, 4s, 8s, 8s (5 retries → 6 attempts, ~23s of
46
+ * patience), capped at 8s per delay. Tunable via opts.retries /
47
+ * opts.retryDelayMs / opts.timeoutMs. The previous 250/500/1000ms was two
48
+ * orders of magnitude under npm, whose defaults (`fetch-retries=2`,
49
+ * `fetch-retry-mintimeout=10s`, `fetch-retry-factor=10`) wait ~70s, and pnpm
50
+ * ships npm's numbers. A cold install fans the whole dependency closure out at
51
+ * 16-way concurrency for minutes, so a blip need only outlast the budget ONCE
52
+ * to fail the run: this repository's macOS CI went red that way on 2026-09-08,
53
+ * at 32% of an `install --immutable`, on a single `fetch failed`.
54
+ *
55
+ * When ALL retries exhaust, throws a typed error naming the URL and the
56
+ * attempts spent instead of whatever shape the runtime hands us:
57
+ * `RegistryTimeoutError` for per-request timeouts, `RegistryUnreachableError`
58
+ * (original error as `cause`) at the network layer. An unattributed
59
+ * `fetch failed` does not say which request of an install died, or how hard it
60
+ * was tried.
32
61
  */
33
- export declare function fetchWithRetry(url: string, init: {
34
- headers: Record<string, string>;
35
- signal?: AbortSignal;
36
- compress?: boolean;
37
- }, opts: Pick<FetchOptions, 'fetch' | 'retries' | 'retryDelayMs' | 'timeoutMs' | 'onRetry' | 'retryNotFound'>): Promise<Response>;
62
+ export declare function fetchWithRetry(url: string, init: RetryInit, opts: RetryOpts): Promise<Response>;
63
+ export declare function fetchWithRetry<T>(url: string, init: RetryInit, opts: RetryOpts & {
64
+ read: (res: Response) => Promise<T>;
65
+ }): Promise<T>;
66
+ export {};
@@ -84,13 +84,20 @@ export interface FetchOptions {
84
84
  fetch?: typeof fetch;
85
85
  /**
86
86
  * Max retry attempts on transient failures (network errors, TLS handshake
87
- * resets, 5xx, 408, 429). Default 3 → up to 4 total attempts. Set to 0
88
- * to disable retry.
87
+ * resets, a body that stops arriving, 5xx, 408, 429). Default 5 → up to 6
88
+ * total attempts. Set to 0 to disable retry.
89
89
  */
90
90
  retries?: number;
91
91
  /**
92
- * Initial backoff in ms; doubles per attempt. Default 250 → 250, 500, 1000.
93
- * The cap is 8s per delay so a bad spell stays bounded.
92
+ * Initial backoff in ms; doubles per attempt. Default 1000 → 1s, 2s, 4s,
93
+ * 8s, 8s, so the default budget is ~23s of patience. The cap is 8s per
94
+ * delay so a bad spell stays bounded.
95
+ *
96
+ * Sized against npm, which waits ~70s across three attempts
97
+ * (`fetch-retries=2`, `fetch-retry-mintimeout=10s`, `fetch-retry-factor=10`)
98
+ * and pnpm, which ships the same numbers. The 1.75s this used to allow was
99
+ * short enough that one blip during a multi-thousand-request cold install
100
+ * failed the whole run.
94
101
  */
95
102
  retryDelayMs?: number;
96
103
  /**
@@ -104,7 +111,8 @@ export interface FetchOptions {
104
111
  * loop treats as transient (CDN slowdowns recover), so a slow attempt
105
112
  * gets retried per the retries / retryDelayMs schedule. When ALL
106
113
  * retries exhaust because of timeouts, a `RegistryTimeoutError` is
107
- * thrown with a clear "timed out after Xs × N attempts" message.
114
+ * thrown with a clear "timed out after Xs × N attempts" message; when they
115
+ * exhaust at the network layer instead, a `RegistryUnreachableError`.
108
116
  */
109
117
  timeoutMs?: number;
110
118
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gjsify/npm-registry",
3
- "version": "0.47.0",
3
+ "version": "0.49.0",
4
4
  "description": "npm registry client for the gjsify install backend — packuments, tarballs, .npmrc auth (Node + GJS)",
5
5
  "type": "module",
6
6
  "module": "lib/esm/index.js",
@@ -40,8 +40,8 @@
40
40
  ],
41
41
  "license": "MIT",
42
42
  "devDependencies": {
43
- "@gjsify/cli": "^0.47.0",
44
- "@gjsify/unit": "^0.47.0",
43
+ "@gjsify/cli": "^0.49.0",
44
+ "@gjsify/unit": "^0.49.0",
45
45
  "typescript": "^6.0.3"
46
46
  },
47
47
  "repository": {