@pnpm/exe 11.0.0-alpha.9 → 11.0.0-beta.1
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/dist/node_modules/@gar/promise-retry/lib/index.js +28 -0
- package/dist/node_modules/@gar/promise-retry/package.json +48 -0
- package/dist/node_modules/@npmcli/agent/package.json +7 -7
- package/dist/node_modules/@npmcli/fs/package.json +4 -4
- package/dist/node_modules/abbrev/package.json +11 -15
- package/dist/node_modules/balanced-match/package.json +4 -7
- package/dist/node_modules/brace-expansion/dist/commonjs/index.js +1 -1
- package/dist/node_modules/brace-expansion/dist/esm/index.js +1 -1
- package/dist/node_modules/brace-expansion/package.json +3 -3
- package/dist/node_modules/cacache/package.json +10 -11
- package/dist/node_modules/glob/dist/commonjs/glob.js +2 -1
- package/dist/node_modules/glob/dist/commonjs/index.min.js +4 -0
- package/dist/node_modules/glob/dist/commonjs/pattern.js +4 -0
- package/dist/node_modules/glob/dist/esm/glob.js +2 -1
- package/dist/node_modules/glob/dist/esm/index.min.js +4 -0
- package/dist/node_modules/glob/dist/esm/pattern.js +4 -0
- package/dist/node_modules/glob/package.json +38 -37
- package/dist/node_modules/iconv-lite/encodings/dbcs-codec.js +460 -525
- package/dist/node_modules/iconv-lite/encodings/dbcs-data.js +179 -182
- package/dist/node_modules/iconv-lite/encodings/index.js +15 -15
- package/dist/node_modules/iconv-lite/encodings/internal.js +168 -148
- package/dist/node_modules/iconv-lite/encodings/sbcs-codec.js +55 -52
- package/dist/node_modules/iconv-lite/encodings/sbcs-data.js +174 -175
- package/dist/node_modules/iconv-lite/encodings/utf16.js +121 -131
- package/dist/node_modules/iconv-lite/encodings/utf32.js +226 -238
- package/dist/node_modules/iconv-lite/encodings/utf7.js +208 -215
- package/dist/node_modules/iconv-lite/lib/bom-handling.js +30 -34
- package/dist/node_modules/iconv-lite/lib/helpers/merge-exports.js +13 -0
- package/dist/node_modules/iconv-lite/lib/index.js +125 -123
- package/dist/node_modules/iconv-lite/lib/streams.js +92 -96
- package/dist/node_modules/iconv-lite/package.json +34 -8
- package/dist/node_modules/isexe/package.json +65 -18
- package/dist/node_modules/lru-cache/dist/commonjs/index.js +134 -85
- package/dist/node_modules/lru-cache/dist/commonjs/index.min.js +1 -1
- package/dist/node_modules/lru-cache/dist/esm/index.js +134 -85
- package/dist/node_modules/lru-cache/dist/esm/index.min.js +1 -1
- package/dist/node_modules/lru-cache/package.json +18 -41
- package/dist/node_modules/make-fetch-happen/lib/remote.js +1 -1
- package/dist/node_modules/make-fetch-happen/package.json +10 -10
- package/dist/node_modules/minimatch/dist/commonjs/ast.js +266 -21
- package/dist/node_modules/minimatch/dist/commonjs/index.js +178 -92
- package/dist/node_modules/minimatch/dist/esm/ast.js +266 -21
- package/dist/node_modules/minimatch/dist/esm/index.js +178 -92
- package/dist/node_modules/minimatch/package.json +4 -4
- package/dist/node_modules/minipass/dist/commonjs/index.js +13 -3
- package/dist/node_modules/minipass/dist/esm/index.js +3 -1
- package/dist/node_modules/minipass/package.json +9 -14
- package/dist/node_modules/minipass-fetch/lib/body.js +25 -15
- package/dist/node_modules/minipass-fetch/package.json +7 -7
- package/dist/node_modules/minipass-sized/dist/commonjs/index.js +69 -0
- package/dist/node_modules/minipass-sized/dist/esm/index.js +64 -0
- package/dist/node_modules/minipass-sized/package.json +39 -9
- package/dist/node_modules/node-gyp/.release-please-manifest.json +1 -1
- package/dist/node_modules/node-gyp/bin/node-gyp.js +7 -0
- package/dist/node_modules/node-gyp/gyp/.release-please-manifest.json +1 -1
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py +3 -3
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +26 -1
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py +1 -1
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +3 -4
- package/dist/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py +1 -1
- package/dist/node_modules/node-gyp/gyp/pyproject.toml +1 -1
- package/dist/node_modules/node-gyp/lib/build.js +2 -2
- package/dist/node_modules/node-gyp/lib/find-python.js +2 -8
- package/dist/node_modules/node-gyp/lib/find-visualstudio.js +11 -5
- package/dist/node_modules/node-gyp/lib/install.js +1 -1
- package/dist/node_modules/node-gyp/lib/process-release.js +3 -3
- package/dist/node_modules/node-gyp/package.json +13 -13
- package/dist/node_modules/nopt/package.json +5 -5
- package/dist/node_modules/path-scurry/package.json +8 -24
- package/dist/node_modules/proc-log/lib/index.js +10 -5
- package/dist/node_modules/proc-log/package.json +5 -5
- package/dist/node_modules/retry/lib/retry.js +2 -2
- package/dist/node_modules/retry/lib/retry_operation.js +10 -6
- package/dist/node_modules/retry/package.json +6 -2
- package/dist/node_modules/ssri/lib/index.js +33 -63
- package/dist/node_modules/ssri/package.json +17 -17
- package/dist/node_modules/tar/dist/commonjs/index.min.js +2 -2
- package/dist/node_modules/tar/dist/commonjs/unpack.js +4 -4
- package/dist/node_modules/tar/dist/esm/index.min.js +2 -2
- package/dist/node_modules/tar/dist/esm/unpack.js +4 -4
- package/dist/node_modules/tar/package.json +6 -6
- package/dist/node_modules/unique-filename/package.json +5 -5
- package/dist/node_modules/unique-slug/package.json +4 -4
- package/dist/node_modules/which/package.json +29 -20
- package/dist/pnpm.mjs +225713 -208017
- package/dist/worker.js +4838 -5926
- package/package.json +10 -10
- package/setup.js +12 -14
- package/dist/node_modules/@isaacs/cliui/dist/commonjs/ansi-regex/index.js +0 -16
- package/dist/node_modules/@isaacs/cliui/dist/commonjs/ansi-styles/index.js +0 -170
- package/dist/node_modules/@isaacs/cliui/dist/commonjs/eastasianwidth/index.js +0 -307
- package/dist/node_modules/@isaacs/cliui/dist/commonjs/emoji-regex/index.js +0 -7
- package/dist/node_modules/@isaacs/cliui/dist/commonjs/index.js +0 -322
- package/dist/node_modules/@isaacs/cliui/dist/commonjs/index.min.js +0 -12
- package/dist/node_modules/@isaacs/cliui/dist/commonjs/string-width/index.js +0 -49
- package/dist/node_modules/@isaacs/cliui/dist/commonjs/strip-ansi/index.js +0 -8
- package/dist/node_modules/@isaacs/cliui/dist/commonjs/wrap-ansi/index.js +0 -176
- package/dist/node_modules/@isaacs/cliui/dist/esm/ansi-regex/index.js +0 -12
- package/dist/node_modules/@isaacs/cliui/dist/esm/ansi-styles/index.js +0 -167
- package/dist/node_modules/@isaacs/cliui/dist/esm/eastasianwidth/index.js +0 -299
- package/dist/node_modules/@isaacs/cliui/dist/esm/emoji-regex/index.js +0 -3
- package/dist/node_modules/@isaacs/cliui/dist/esm/index.js +0 -317
- package/dist/node_modules/@isaacs/cliui/dist/esm/index.min.js +0 -12
- package/dist/node_modules/@isaacs/cliui/dist/esm/string-width/index.js +0 -46
- package/dist/node_modules/@isaacs/cliui/dist/esm/strip-ansi/index.js +0 -4
- package/dist/node_modules/@isaacs/cliui/dist/esm/wrap-ansi/index.js +0 -172
- package/dist/node_modules/@isaacs/cliui/package.json +0 -163
- package/dist/node_modules/cross-spawn/LICENSE +0 -21
- package/dist/node_modules/cross-spawn/index.js +0 -39
- package/dist/node_modules/cross-spawn/lib/enoent.js +0 -59
- package/dist/node_modules/cross-spawn/lib/parse.js +0 -91
- package/dist/node_modules/cross-spawn/lib/util/escape.js +0 -47
- package/dist/node_modules/cross-spawn/lib/util/readShebang.js +0 -23
- package/dist/node_modules/cross-spawn/lib/util/resolveCommand.js +0 -52
- package/dist/node_modules/cross-spawn/package.json +0 -73
- package/dist/node_modules/encoding/.prettierrc.js +0 -8
- package/dist/node_modules/encoding/LICENSE +0 -16
- package/dist/node_modules/encoding/lib/encoding.js +0 -83
- package/dist/node_modules/encoding/package.json +0 -18
- package/dist/node_modules/err-code/.eslintrc.json +0 -7
- package/dist/node_modules/err-code/bower.json +0 -30
- package/dist/node_modules/err-code/index.js +0 -47
- package/dist/node_modules/err-code/index.umd.js +0 -51
- package/dist/node_modules/err-code/package.json +0 -34
- package/dist/node_modules/foreground-child/LICENSE +0 -15
- package/dist/node_modules/foreground-child/dist/commonjs/all-signals.js +0 -58
- package/dist/node_modules/foreground-child/dist/commonjs/index.js +0 -123
- package/dist/node_modules/foreground-child/dist/commonjs/proxy-signals.js +0 -38
- package/dist/node_modules/foreground-child/dist/commonjs/watchdog.js +0 -50
- package/dist/node_modules/foreground-child/dist/esm/all-signals.js +0 -52
- package/dist/node_modules/foreground-child/dist/esm/index.js +0 -115
- package/dist/node_modules/foreground-child/dist/esm/proxy-signals.js +0 -34
- package/dist/node_modules/foreground-child/dist/esm/watchdog.js +0 -46
- package/dist/node_modules/foreground-child/package.json +0 -106
- package/dist/node_modules/glob/dist/esm/bin.d.mts +0 -3
- package/dist/node_modules/glob/dist/esm/bin.mjs +0 -346
- package/dist/node_modules/iconv-lite/.github/dependabot.yml +0 -11
- package/dist/node_modules/iconv-lite/.idea/codeStyles/Project.xml +0 -47
- package/dist/node_modules/iconv-lite/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/dist/node_modules/iconv-lite/.idea/iconv-lite.iml +0 -12
- package/dist/node_modules/iconv-lite/.idea/inspectionProfiles/Project_Default.xml +0 -6
- package/dist/node_modules/iconv-lite/.idea/modules.xml +0 -8
- package/dist/node_modules/iconv-lite/.idea/vcs.xml +0 -6
- package/dist/node_modules/isexe/LICENSE +0 -15
- package/dist/node_modules/isexe/index.js +0 -57
- package/dist/node_modules/isexe/mode.js +0 -41
- package/dist/node_modules/isexe/windows.js +0 -42
- package/dist/node_modules/jackspeak/dist/commonjs/index.js +0 -944
- package/dist/node_modules/jackspeak/dist/commonjs/index.min.js +0 -33
- package/dist/node_modules/jackspeak/dist/commonjs/package.json +0 -3
- package/dist/node_modules/jackspeak/dist/esm/index.js +0 -936
- package/dist/node_modules/jackspeak/dist/esm/index.min.js +0 -33
- package/dist/node_modules/jackspeak/dist/esm/package.json +0 -3
- package/dist/node_modules/jackspeak/package.json +0 -115
- package/dist/node_modules/lru-cache/LICENSE +0 -15
- package/dist/node_modules/minipass/LICENSE +0 -15
- package/dist/node_modules/minipass-sized/index.js +0 -67
- package/dist/node_modules/minipass-sized/node_modules/minipass/LICENSE +0 -15
- package/dist/node_modules/minipass-sized/node_modules/minipass/index.js +0 -649
- package/dist/node_modules/minipass-sized/node_modules/minipass/package.json +0 -56
- package/dist/node_modules/minipass-sized/package-lock.json +0 -3464
- package/dist/node_modules/node-gyp/node_modules/isexe/dist/commonjs/package.json +0 -3
- package/dist/node_modules/node-gyp/node_modules/isexe/dist/esm/package.json +0 -3
- package/dist/node_modules/node-gyp/node_modules/isexe/package.json +0 -78
- package/dist/node_modules/node-gyp/node_modules/which/LICENSE +0 -15
- package/dist/node_modules/node-gyp/node_modules/which/package.json +0 -52
- package/dist/node_modules/package-json-from-dist/dist/commonjs/index.js +0 -134
- package/dist/node_modules/package-json-from-dist/dist/commonjs/package.json +0 -3
- package/dist/node_modules/package-json-from-dist/dist/esm/index.js +0 -129
- package/dist/node_modules/package-json-from-dist/dist/esm/package.json +0 -3
- package/dist/node_modules/package-json-from-dist/package.json +0 -68
- package/dist/node_modules/path-key/index.js +0 -16
- package/dist/node_modules/path-key/license +0 -9
- package/dist/node_modules/path-key/package.json +0 -39
- package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.js +0 -1589
- package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.min.js +0 -2
- package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/package.json +0 -3
- package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.js +0 -1585
- package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.min.js +0 -2
- package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/esm/package.json +0 -3
- package/dist/node_modules/path-scurry/node_modules/lru-cache/package.json +0 -101
- package/dist/node_modules/promise-retry/index.js +0 -52
- package/dist/node_modules/promise-retry/package.json +0 -37
- package/dist/node_modules/retry/equation.gif +0 -0
- package/dist/node_modules/shebang-command/index.js +0 -19
- package/dist/node_modules/shebang-command/license +0 -9
- package/dist/node_modules/shebang-command/package.json +0 -34
- package/dist/node_modules/shebang-regex/index.js +0 -2
- package/dist/node_modules/shebang-regex/license +0 -9
- package/dist/node_modules/shebang-regex/package.json +0 -35
- package/dist/node_modules/signal-exit/LICENSE.txt +0 -16
- package/dist/node_modules/signal-exit/dist/cjs/browser.js +0 -10
- package/dist/node_modules/signal-exit/dist/cjs/index.js +0 -279
- package/dist/node_modules/signal-exit/dist/cjs/package.json +0 -3
- package/dist/node_modules/signal-exit/dist/cjs/signals.js +0 -42
- package/dist/node_modules/signal-exit/dist/mjs/browser.js +0 -4
- package/dist/node_modules/signal-exit/dist/mjs/index.js +0 -275
- package/dist/node_modules/signal-exit/dist/mjs/package.json +0 -3
- package/dist/node_modules/signal-exit/dist/mjs/signals.js +0 -39
- package/dist/node_modules/signal-exit/package.json +0 -106
- package/dist/node_modules/which/bin/node-which +0 -52
- package/dist/node_modules/which/which.js +0 -125
- /package/dist/node_modules/{promise-retry → @gar/promise-retry}/LICENSE +0 -0
- /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/commonjs/index.js +0 -0
- /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/commonjs/index.min.js +0 -0
- /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/commonjs/options.js +0 -0
- /package/dist/node_modules/{@isaacs/cliui → isexe}/dist/commonjs/package.json +0 -0
- /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/commonjs/posix.js +0 -0
- /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/commonjs/win32.js +0 -0
- /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/esm/index.js +0 -0
- /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/esm/index.min.js +0 -0
- /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/esm/options.js +0 -0
- /package/dist/node_modules/{@isaacs/cliui → isexe}/dist/esm/package.json +0 -0
- /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/esm/posix.js +0 -0
- /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/esm/win32.js +0 -0
- /package/dist/node_modules/{foreground-child → minipass-sized}/dist/commonjs/package.json +0 -0
- /package/dist/node_modules/{foreground-child → minipass-sized}/dist/esm/package.json +0 -0
- /package/dist/node_modules/{node-gyp/node_modules/which → which}/bin/which.js +0 -0
- /package/dist/node_modules/{node-gyp/node_modules/which → which}/lib/index.js +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var G=(l,t,e)=>{if(!t.has(l))throw TypeError("Cannot "+e)};var I=(l,t,e)=>(G(l,t,"read from private field"),e?e.call(l):t.get(l)),j=(l,t,e)=>{if(t.has(l))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(l):t.set(l,e)},x=(l,t,e,i)=>(G(l,t,"write to private field"),i?i.call(l,e):t.set(l,e),e);var T=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,P=new Set,M=typeof process=="object"&&process?process:{},H=(l,t,e,i)=>{typeof M.emitWarning=="function"?M.emitWarning(l,t,e,i):console.error(`[${e}] ${t}: ${l}`)},W=globalThis.AbortController,N=globalThis.AbortSignal;if(typeof W>"u"){N=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(i,s){this._onabort.push(s)}},W=class{constructor(){t()}signal=new N;abort(i){if(!this.signal.aborted){this.signal.reason=i,this.signal.aborted=!0;for(let s of this.signal._onabort)s(i);this.signal.onabort?.(i)}}};let l=M.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",t=()=>{l&&(l=!1,H("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",t))}}var V=l=>!P.has(l),Y=Symbol("type"),A=l=>l&&l===Math.floor(l)&&l>0&&isFinite(l),k=l=>A(l)?l<=Math.pow(2,8)?Uint8Array:l<=Math.pow(2,16)?Uint16Array:l<=Math.pow(2,32)?Uint32Array:l<=Number.MAX_SAFE_INTEGER?O:null:null,O=class extends Array{constructor(t){super(t),this.fill(0)}},z,E=class{heap;length;static create(t){let e=k(t);if(!e)return[];x(E,z,!0);let i=new E(t,e);return x(E,z,!1),i}constructor(t,e){if(!I(E,z))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new e(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},R=E;z=new WeakMap,j(R,z,!1);var D=class{#g;#f;#p;#w;#R;#W;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#n;#S;#s;#i;#t;#l;#c;#o;#h;#_;#r;#m;#b;#u;#y;#O;#a;static unsafeExposeInternals(t){return{starts:t.#b,ttls:t.#u,sizes:t.#m,keyMap:t.#s,keyList:t.#i,valList:t.#t,next:t.#l,prev:t.#c,get head(){return t.#o},get tail(){return t.#h},free:t.#_,isBackgroundFetch:e=>t.#e(e),backgroundFetch:(e,i,s,n)=>t.#x(e,i,s,n),moveToTail:e=>t.#C(e),indexes:e=>t.#A(e),rindexes:e=>t.#F(e),isStale:e=>t.#d(e)}}get max(){return this.#g}get maxSize(){return this.#f}get calculatedSize(){return this.#S}get size(){return this.#n}get fetchMethod(){return this.#R}get memoMethod(){return this.#W}get dispose(){return this.#p}get disposeAfter(){return this.#w}constructor(t){let{max:e=0,ttl:i,ttlResolution:s=1,ttlAutopurge:n,updateAgeOnGet:h,updateAgeOnHas:o,allowStale:r,dispose:g,disposeAfter:m,noDisposeOnSet:f,noUpdateTTL:u,maxSize:c=0,maxEntrySize:F=0,sizeCalculation:d,fetchMethod:S,memoMethod:a,noDeleteOnFetchRejection:w,noDeleteOnStaleGet:b,allowStaleOnFetchRejection:p,allowStaleOnFetchAbort:_,ignoreFetchAbort:v}=t;if(e!==0&&!A(e))throw new TypeError("max option must be a nonnegative integer");let y=e?k(e):Array;if(!y)throw new Error("invalid max value: "+e);if(this.#g=e,this.#f=c,this.maxEntrySize=F||this.#f,this.sizeCalculation=d,this.sizeCalculation){if(!this.#f&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(a!==void 0&&typeof a!="function")throw new TypeError("memoMethod must be a function if defined");if(this.#W=a,S!==void 0&&typeof S!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#R=S,this.#O=!!S,this.#s=new Map,this.#i=new Array(e).fill(void 0),this.#t=new Array(e).fill(void 0),this.#l=new y(e),this.#c=new y(e),this.#o=0,this.#h=0,this.#_=R.create(e),this.#n=0,this.#S=0,typeof g=="function"&&(this.#p=g),typeof m=="function"?(this.#w=m,this.#r=[]):(this.#w=void 0,this.#r=void 0),this.#y=!!this.#p,this.#a=!!this.#w,this.noDisposeOnSet=!!f,this.noUpdateTTL=!!u,this.noDeleteOnFetchRejection=!!w,this.allowStaleOnFetchRejection=!!p,this.allowStaleOnFetchAbort=!!_,this.ignoreFetchAbort=!!v,this.maxEntrySize!==0){if(this.#f!==0&&!A(this.#f))throw new TypeError("maxSize must be a positive integer if specified");if(!A(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#P()}if(this.allowStale=!!r,this.noDeleteOnStaleGet=!!b,this.updateAgeOnGet=!!h,this.updateAgeOnHas=!!o,this.ttlResolution=A(s)||s===0?s:1,this.ttlAutopurge=!!n,this.ttl=i||0,this.ttl){if(!A(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#M()}if(this.#g===0&&this.ttl===0&&this.#f===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#g&&!this.#f){let C="LRU_CACHE_UNBOUNDED";V(C)&&(P.add(C),H("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",C,D))}}getRemainingTTL(t){return this.#s.has(t)?1/0:0}#M(){let t=new O(this.#g),e=new O(this.#g);this.#u=t,this.#b=e,this.#U=(n,h,o=T.now())=>{if(e[n]=h!==0?o:0,t[n]=h,h!==0&&this.ttlAutopurge){let r=setTimeout(()=>{this.#d(n)&&this.#T(this.#i[n],"expire")},h+1);r.unref&&r.unref()}},this.#z=n=>{e[n]=t[n]!==0?T.now():0},this.#E=(n,h)=>{if(t[h]){let o=t[h],r=e[h];if(!o||!r)return;n.ttl=o,n.start=r,n.now=i||s();let g=n.now-r;n.remainingTTL=o-g}};let i=0,s=()=>{let n=T.now();if(this.ttlResolution>0){i=n;let h=setTimeout(()=>i=0,this.ttlResolution);h.unref&&h.unref()}return n};this.getRemainingTTL=n=>{let h=this.#s.get(n);if(h===void 0)return 0;let o=t[h],r=e[h];if(!o||!r)return 1/0;let g=(i||s())-r;return o-g},this.#d=n=>{let h=e[n],o=t[n];return!!o&&!!h&&(i||s())-h>o}}#z=()=>{};#E=()=>{};#U=()=>{};#d=()=>!1;#P(){let t=new O(this.#g);this.#S=0,this.#m=t,this.#v=e=>{this.#S-=t[e],t[e]=0},this.#G=(e,i,s,n)=>{if(this.#e(i))return 0;if(!A(s))if(n){if(typeof n!="function")throw new TypeError("sizeCalculation must be a function");if(s=n(i,e),!A(s))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return s},this.#D=(e,i,s)=>{if(t[e]=i,this.#f){let n=this.#f-t[e];for(;this.#S>n;)this.#L(!0)}this.#S+=t[e],s&&(s.entrySize=i,s.totalCalculatedSize=this.#S)}}#v=t=>{};#D=(t,e,i)=>{};#G=(t,e,i,s)=>{if(i||s)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#A({allowStale:t=this.allowStale}={}){if(this.#n)for(let e=this.#h;!(!this.#I(e)||((t||!this.#d(e))&&(yield e),e===this.#o));)e=this.#c[e]}*#F({allowStale:t=this.allowStale}={}){if(this.#n)for(let e=this.#o;!(!this.#I(e)||((t||!this.#d(e))&&(yield e),e===this.#h));)e=this.#l[e]}#I(t){return t!==void 0&&this.#s.get(this.#i[t])===t}*entries(){for(let t of this.#A())this.#t[t]!==void 0&&this.#i[t]!==void 0&&!this.#e(this.#t[t])&&(yield[this.#i[t],this.#t[t]])}*rentries(){for(let t of this.#F())this.#t[t]!==void 0&&this.#i[t]!==void 0&&!this.#e(this.#t[t])&&(yield[this.#i[t],this.#t[t]])}*keys(){for(let t of this.#A()){let e=this.#i[t];e!==void 0&&!this.#e(this.#t[t])&&(yield e)}}*rkeys(){for(let t of this.#F()){let e=this.#i[t];e!==void 0&&!this.#e(this.#t[t])&&(yield e)}}*values(){for(let t of this.#A())this.#t[t]!==void 0&&!this.#e(this.#t[t])&&(yield this.#t[t])}*rvalues(){for(let t of this.#F())this.#t[t]!==void 0&&!this.#e(this.#t[t])&&(yield this.#t[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,e={}){for(let i of this.#A()){let s=this.#t[i],n=this.#e(s)?s.__staleWhileFetching:s;if(n!==void 0&&t(n,this.#i[i],this))return this.get(this.#i[i],e)}}forEach(t,e=this){for(let i of this.#A()){let s=this.#t[i],n=this.#e(s)?s.__staleWhileFetching:s;n!==void 0&&t.call(e,n,this.#i[i],this)}}rforEach(t,e=this){for(let i of this.#F()){let s=this.#t[i],n=this.#e(s)?s.__staleWhileFetching:s;n!==void 0&&t.call(e,n,this.#i[i],this)}}purgeStale(){let t=!1;for(let e of this.#F({allowStale:!0}))this.#d(e)&&(this.#T(this.#i[e],"expire"),t=!0);return t}info(t){let e=this.#s.get(t);if(e===void 0)return;let i=this.#t[e],s=this.#e(i)?i.__staleWhileFetching:i;if(s===void 0)return;let n={value:s};if(this.#u&&this.#b){let h=this.#u[e],o=this.#b[e];if(h&&o){let r=h-(T.now()-o);n.ttl=r,n.start=Date.now()}}return this.#m&&(n.size=this.#m[e]),n}dump(){let t=[];for(let e of this.#A({allowStale:!0})){let i=this.#i[e],s=this.#t[e],n=this.#e(s)?s.__staleWhileFetching:s;if(n===void 0||i===void 0)continue;let h={value:n};if(this.#u&&this.#b){h.ttl=this.#u[e];let o=T.now()-this.#b[e];h.start=Math.floor(Date.now()-o)}this.#m&&(h.size=this.#m[e]),t.unshift([i,h])}return t}load(t){this.clear();for(let[e,i]of t){if(i.start){let s=Date.now()-i.start;i.start=T.now()-s}this.set(e,i.value,i)}}set(t,e,i={}){if(e===void 0)return this.delete(t),this;let{ttl:s=this.ttl,start:n,noDisposeOnSet:h=this.noDisposeOnSet,sizeCalculation:o=this.sizeCalculation,status:r}=i,{noUpdateTTL:g=this.noUpdateTTL}=i,m=this.#G(t,e,i.size||0,o);if(this.maxEntrySize&&m>this.maxEntrySize)return r&&(r.set="miss",r.maxEntrySizeExceeded=!0),this.#T(t,"set"),this;let f=this.#n===0?void 0:this.#s.get(t);if(f===void 0)f=this.#n===0?this.#h:this.#_.length!==0?this.#_.pop():this.#n===this.#g?this.#L(!1):this.#n,this.#i[f]=t,this.#t[f]=e,this.#s.set(t,f),this.#l[this.#h]=f,this.#c[f]=this.#h,this.#h=f,this.#n++,this.#D(f,m,r),r&&(r.set="add"),g=!1;else{this.#C(f);let u=this.#t[f];if(e!==u){if(this.#O&&this.#e(u)){u.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:c}=u;c!==void 0&&!h&&(this.#y&&this.#p?.(c,t,"set"),this.#a&&this.#r?.push([c,t,"set"]))}else h||(this.#y&&this.#p?.(u,t,"set"),this.#a&&this.#r?.push([u,t,"set"]));if(this.#v(f),this.#D(f,m,r),this.#t[f]=e,r){r.set="replace";let c=u&&this.#e(u)?u.__staleWhileFetching:u;c!==void 0&&(r.oldValue=c)}}else r&&(r.set="update")}if(s!==0&&!this.#u&&this.#M(),this.#u&&(g||this.#U(f,s,n),r&&this.#E(r,f)),!h&&this.#a&&this.#r){let u=this.#r,c;for(;c=u?.shift();)this.#w?.(...c)}return this}pop(){try{for(;this.#n;){let t=this.#t[this.#o];if(this.#L(!0),this.#e(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#a&&this.#r){let t=this.#r,e;for(;e=t?.shift();)this.#w?.(...e)}}}#L(t){let e=this.#o,i=this.#i[e],s=this.#t[e];return this.#O&&this.#e(s)?s.__abortController.abort(new Error("evicted")):(this.#y||this.#a)&&(this.#y&&this.#p?.(s,i,"evict"),this.#a&&this.#r?.push([s,i,"evict"])),this.#v(e),t&&(this.#i[e]=void 0,this.#t[e]=void 0,this.#_.push(e)),this.#n===1?(this.#o=this.#h=0,this.#_.length=0):this.#o=this.#l[e],this.#s.delete(i),this.#n--,e}has(t,e={}){let{updateAgeOnHas:i=this.updateAgeOnHas,status:s}=e,n=this.#s.get(t);if(n!==void 0){let h=this.#t[n];if(this.#e(h)&&h.__staleWhileFetching===void 0)return!1;if(this.#d(n))s&&(s.has="stale",this.#E(s,n));else return i&&this.#z(n),s&&(s.has="hit",this.#E(s,n)),!0}else s&&(s.has="miss");return!1}peek(t,e={}){let{allowStale:i=this.allowStale}=e,s=this.#s.get(t);if(s===void 0||!i&&this.#d(s))return;let n=this.#t[s];return this.#e(n)?n.__staleWhileFetching:n}#x(t,e,i,s){let n=e===void 0?void 0:this.#t[e];if(this.#e(n))return n;let h=new W,{signal:o}=i;o?.addEventListener("abort",()=>h.abort(o.reason),{signal:h.signal});let r={signal:h.signal,options:i,context:s},g=(d,S=!1)=>{let{aborted:a}=h.signal,w=i.ignoreFetchAbort&&d!==void 0;if(i.status&&(a&&!S?(i.status.fetchAborted=!0,i.status.fetchError=h.signal.reason,w&&(i.status.fetchAbortIgnored=!0)):i.status.fetchResolved=!0),a&&!w&&!S)return f(h.signal.reason);let b=c;return this.#t[e]===c&&(d===void 0?b.__staleWhileFetching?this.#t[e]=b.__staleWhileFetching:this.#T(t,"fetch"):(i.status&&(i.status.fetchUpdated=!0),this.set(t,d,r.options))),d},m=d=>(i.status&&(i.status.fetchRejected=!0,i.status.fetchError=d),f(d)),f=d=>{let{aborted:S}=h.signal,a=S&&i.allowStaleOnFetchAbort,w=a||i.allowStaleOnFetchRejection,b=w||i.noDeleteOnFetchRejection,p=c;if(this.#t[e]===c&&(!b||p.__staleWhileFetching===void 0?this.#T(t,"fetch"):a||(this.#t[e]=p.__staleWhileFetching)),w)return i.status&&p.__staleWhileFetching!==void 0&&(i.status.returnedStale=!0),p.__staleWhileFetching;if(p.__returned===p)throw d},u=(d,S)=>{let a=this.#R?.(t,n,r);a&&a instanceof Promise&&a.then(w=>d(w===void 0?void 0:w),S),h.signal.addEventListener("abort",()=>{(!i.ignoreFetchAbort||i.allowStaleOnFetchAbort)&&(d(void 0),i.allowStaleOnFetchAbort&&(d=w=>g(w,!0)))})};i.status&&(i.status.fetchDispatched=!0);let c=new Promise(u).then(g,m),F=Object.assign(c,{__abortController:h,__staleWhileFetching:n,__returned:void 0});return e===void 0?(this.set(t,F,{...r.options,status:void 0}),e=this.#s.get(t)):this.#t[e]=F,F}#e(t){if(!this.#O)return!1;let e=t;return!!e&&e instanceof Promise&&e.hasOwnProperty("__staleWhileFetching")&&e.__abortController instanceof W}async fetch(t,e={}){let{allowStale:i=this.allowStale,updateAgeOnGet:s=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,ttl:h=this.ttl,noDisposeOnSet:o=this.noDisposeOnSet,size:r=0,sizeCalculation:g=this.sizeCalculation,noUpdateTTL:m=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:u=this.allowStaleOnFetchRejection,ignoreFetchAbort:c=this.ignoreFetchAbort,allowStaleOnFetchAbort:F=this.allowStaleOnFetchAbort,context:d,forceRefresh:S=!1,status:a,signal:w}=e;if(!this.#O)return a&&(a.fetch="get"),this.get(t,{allowStale:i,updateAgeOnGet:s,noDeleteOnStaleGet:n,status:a});let b={allowStale:i,updateAgeOnGet:s,noDeleteOnStaleGet:n,ttl:h,noDisposeOnSet:o,size:r,sizeCalculation:g,noUpdateTTL:m,noDeleteOnFetchRejection:f,allowStaleOnFetchRejection:u,allowStaleOnFetchAbort:F,ignoreFetchAbort:c,status:a,signal:w},p=this.#s.get(t);if(p===void 0){a&&(a.fetch="miss");let _=this.#x(t,p,b,d);return _.__returned=_}else{let _=this.#t[p];if(this.#e(_)){let U=i&&_.__staleWhileFetching!==void 0;return a&&(a.fetch="inflight",U&&(a.returnedStale=!0)),U?_.__staleWhileFetching:_.__returned=_}let v=this.#d(p);if(!S&&!v)return a&&(a.fetch="hit"),this.#C(p),s&&this.#z(p),a&&this.#E(a,p),_;let y=this.#x(t,p,b,d),L=y.__staleWhileFetching!==void 0&&i;return a&&(a.fetch=v?"stale":"refresh",L&&v&&(a.returnedStale=!0)),L?y.__staleWhileFetching:y.__returned=y}}async forceFetch(t,e={}){let i=await this.fetch(t,e);if(i===void 0)throw new Error("fetch() returned undefined");return i}memo(t,e={}){let i=this.#W;if(!i)throw new Error("no memoMethod provided to constructor");let{context:s,forceRefresh:n,...h}=e,o=this.get(t,h);if(!n&&o!==void 0)return o;let r=i(t,o,{options:h,context:s});return this.set(t,r,h),r}get(t,e={}){let{allowStale:i=this.allowStale,updateAgeOnGet:s=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,status:h}=e,o=this.#s.get(t);if(o!==void 0){let r=this.#t[o],g=this.#e(r);return h&&this.#E(h,o),this.#d(o)?(h&&(h.get="stale"),g?(h&&i&&r.__staleWhileFetching!==void 0&&(h.returnedStale=!0),i?r.__staleWhileFetching:void 0):(n||this.#T(t,"expire"),h&&i&&(h.returnedStale=!0),i?r:void 0)):(h&&(h.get="hit"),g?r.__staleWhileFetching:(this.#C(o),s&&this.#z(o),r))}else h&&(h.get="miss")}#j(t,e){this.#c[e]=t,this.#l[t]=e}#C(t){t!==this.#h&&(t===this.#o?this.#o=this.#l[t]:this.#j(this.#c[t],this.#l[t]),this.#j(this.#h,t),this.#h=t)}delete(t){return this.#T(t,"delete")}#T(t,e){let i=!1;if(this.#n!==0){let s=this.#s.get(t);if(s!==void 0)if(i=!0,this.#n===1)this.#N(e);else{this.#v(s);let n=this.#t[s];if(this.#e(n)?n.__abortController.abort(new Error("deleted")):(this.#y||this.#a)&&(this.#y&&this.#p?.(n,t,e),this.#a&&this.#r?.push([n,t,e])),this.#s.delete(t),this.#i[s]=void 0,this.#t[s]=void 0,s===this.#h)this.#h=this.#c[s];else if(s===this.#o)this.#o=this.#l[s];else{let h=this.#c[s];this.#l[h]=this.#l[s];let o=this.#l[s];this.#c[o]=this.#c[s]}this.#n--,this.#_.push(s)}}if(this.#a&&this.#r?.length){let s=this.#r,n;for(;n=s?.shift();)this.#w?.(...n)}return i}clear(){return this.#N("delete")}#N(t){for(let e of this.#F({allowStale:!0})){let i=this.#t[e];if(this.#e(i))i.__abortController.abort(new Error("deleted"));else{let s=this.#i[e];this.#y&&this.#p?.(i,s,t),this.#a&&this.#r?.push([i,s,t])}}if(this.#s.clear(),this.#t.fill(void 0),this.#i.fill(void 0),this.#u&&this.#b&&(this.#u.fill(0),this.#b.fill(0)),this.#m&&this.#m.fill(0),this.#o=0,this.#h=0,this.#_.length=0,this.#S=0,this.#n=0,this.#a&&this.#r){let e=this.#r,i;for(;i=e?.shift();)this.#w?.(...i)}}};export{D as LRUCache};
|
|
1
|
+
var x=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,I=new Set,R=typeof process=="object"&&process?process:{},U=(c,t,e,i)=>{typeof R.emitWarning=="function"?R.emitWarning(c,t,e,i):console.error(`[${e}] ${t}: ${c}`)},C=globalThis.AbortController,D=globalThis.AbortSignal;if(typeof C>"u"){D=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(i,s){this._onabort.push(s)}},C=class{constructor(){t()}signal=new D;abort(i){if(!this.signal.aborted){this.signal.reason=i,this.signal.aborted=!0;for(let s of this.signal._onabort)s(i);this.signal.onabort?.(i)}}};let c=R.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",t=()=>{c&&(c=!1,U("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",t))}}var G=c=>!I.has(c),H=Symbol("type"),y=c=>c&&c===Math.floor(c)&&c>0&&isFinite(c),M=c=>y(c)?c<=Math.pow(2,8)?Uint8Array:c<=Math.pow(2,16)?Uint16Array:c<=Math.pow(2,32)?Uint32Array:c<=Number.MAX_SAFE_INTEGER?z:null:null,z=class extends Array{constructor(t){super(t),this.fill(0)}},W=class c{heap;length;static#o=!1;static create(t){let e=M(t);if(!e)return[];c.#o=!0;let i=new c(t,e);return c.#o=!1,i}constructor(t,e){if(!c.#o)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new e(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},L=class c{#o;#c;#w;#C;#S;#L;#I;#m;get perf(){return this.#m}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#n;#_;#s;#i;#t;#a;#u;#l;#h;#b;#r;#y;#A;#d;#g;#T;#v;#f;#U;static unsafeExposeInternals(t){return{starts:t.#A,ttls:t.#d,autopurgeTimers:t.#g,sizes:t.#y,keyMap:t.#s,keyList:t.#i,valList:t.#t,next:t.#a,prev:t.#u,get head(){return t.#l},get tail(){return t.#h},free:t.#b,isBackgroundFetch:e=>t.#e(e),backgroundFetch:(e,i,s,n)=>t.#G(e,i,s,n),moveToTail:e=>t.#D(e),indexes:e=>t.#F(e),rindexes:e=>t.#O(e),isStale:e=>t.#p(e)}}get max(){return this.#o}get maxSize(){return this.#c}get calculatedSize(){return this.#_}get size(){return this.#n}get fetchMethod(){return this.#L}get memoMethod(){return this.#I}get dispose(){return this.#w}get onInsert(){return this.#C}get disposeAfter(){return this.#S}constructor(t){let{max:e=0,ttl:i,ttlResolution:s=1,ttlAutopurge:n,updateAgeOnGet:o,updateAgeOnHas:h,allowStale:r,dispose:a,onInsert:w,disposeAfter:f,noDisposeOnSet:d,noUpdateTTL:g,maxSize:A=0,maxEntrySize:p=0,sizeCalculation:_,fetchMethod:l,memoMethod:S,noDeleteOnFetchRejection:b,noDeleteOnStaleGet:m,allowStaleOnFetchRejection:u,allowStaleOnFetchAbort:T,ignoreFetchAbort:F,perf:v}=t;if(v!==void 0&&typeof v?.now!="function")throw new TypeError("perf option must have a now() method if specified");if(this.#m=v??x,e!==0&&!y(e))throw new TypeError("max option must be a nonnegative integer");let O=e?M(e):Array;if(!O)throw new Error("invalid max value: "+e);if(this.#o=e,this.#c=A,this.maxEntrySize=p||this.#c,this.sizeCalculation=_,this.sizeCalculation){if(!this.#c&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(S!==void 0&&typeof S!="function")throw new TypeError("memoMethod must be a function if defined");if(this.#I=S,l!==void 0&&typeof l!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#L=l,this.#v=!!l,this.#s=new Map,this.#i=new Array(e).fill(void 0),this.#t=new Array(e).fill(void 0),this.#a=new O(e),this.#u=new O(e),this.#l=0,this.#h=0,this.#b=W.create(e),this.#n=0,this.#_=0,typeof a=="function"&&(this.#w=a),typeof w=="function"&&(this.#C=w),typeof f=="function"?(this.#S=f,this.#r=[]):(this.#S=void 0,this.#r=void 0),this.#T=!!this.#w,this.#U=!!this.#C,this.#f=!!this.#S,this.noDisposeOnSet=!!d,this.noUpdateTTL=!!g,this.noDeleteOnFetchRejection=!!b,this.allowStaleOnFetchRejection=!!u,this.allowStaleOnFetchAbort=!!T,this.ignoreFetchAbort=!!F,this.maxEntrySize!==0){if(this.#c!==0&&!y(this.#c))throw new TypeError("maxSize must be a positive integer if specified");if(!y(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#B()}if(this.allowStale=!!r,this.noDeleteOnStaleGet=!!m,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!h,this.ttlResolution=y(s)||s===0?s:1,this.ttlAutopurge=!!n,this.ttl=i||0,this.ttl){if(!y(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#j()}if(this.#o===0&&this.ttl===0&&this.#c===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#o&&!this.#c){let E="LRU_CACHE_UNBOUNDED";G(E)&&(I.add(E),U("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",E,c))}}getRemainingTTL(t){return this.#s.has(t)?1/0:0}#j(){let t=new z(this.#o),e=new z(this.#o);this.#d=t,this.#A=e;let i=this.ttlAutopurge?new Array(this.#o):void 0;this.#g=i,this.#N=(h,r,a=this.#m.now())=>{e[h]=r!==0?a:0,t[h]=r,s(h,r)},this.#R=h=>{e[h]=t[h]!==0?this.#m.now():0,s(h,t[h])};let s=this.ttlAutopurge?(h,r)=>{if(i?.[h]&&(clearTimeout(i[h]),i[h]=void 0),r&&r!==0&&i){let a=setTimeout(()=>{this.#p(h)&&this.#E(this.#i[h],"expire")},r+1);a.unref&&a.unref(),i[h]=a}}:()=>{};this.#z=(h,r)=>{if(t[r]){let a=t[r],w=e[r];if(!a||!w)return;h.ttl=a,h.start=w,h.now=n||o();let f=h.now-w;h.remainingTTL=a-f}};let n=0,o=()=>{let h=this.#m.now();if(this.ttlResolution>0){n=h;let r=setTimeout(()=>n=0,this.ttlResolution);r.unref&&r.unref()}return h};this.getRemainingTTL=h=>{let r=this.#s.get(h);if(r===void 0)return 0;let a=t[r],w=e[r];if(!a||!w)return 1/0;let f=(n||o())-w;return a-f},this.#p=h=>{let r=e[h],a=t[h];return!!a&&!!r&&(n||o())-r>a}}#R=()=>{};#z=()=>{};#N=()=>{};#p=()=>!1;#B(){let t=new z(this.#o);this.#_=0,this.#y=t,this.#W=e=>{this.#_-=t[e],t[e]=0},this.#P=(e,i,s,n)=>{if(this.#e(i))return 0;if(!y(s))if(n){if(typeof n!="function")throw new TypeError("sizeCalculation must be a function");if(s=n(i,e),!y(s))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return s},this.#M=(e,i,s)=>{if(t[e]=i,this.#c){let n=this.#c-t[e];for(;this.#_>n;)this.#x(!0)}this.#_+=t[e],s&&(s.entrySize=i,s.totalCalculatedSize=this.#_)}}#W=t=>{};#M=(t,e,i)=>{};#P=(t,e,i,s)=>{if(i||s)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#F({allowStale:t=this.allowStale}={}){if(this.#n)for(let e=this.#h;!(!this.#H(e)||((t||!this.#p(e))&&(yield e),e===this.#l));)e=this.#u[e]}*#O({allowStale:t=this.allowStale}={}){if(this.#n)for(let e=this.#l;!(!this.#H(e)||((t||!this.#p(e))&&(yield e),e===this.#h));)e=this.#a[e]}#H(t){return t!==void 0&&this.#s.get(this.#i[t])===t}*entries(){for(let t of this.#F())this.#t[t]!==void 0&&this.#i[t]!==void 0&&!this.#e(this.#t[t])&&(yield[this.#i[t],this.#t[t]])}*rentries(){for(let t of this.#O())this.#t[t]!==void 0&&this.#i[t]!==void 0&&!this.#e(this.#t[t])&&(yield[this.#i[t],this.#t[t]])}*keys(){for(let t of this.#F()){let e=this.#i[t];e!==void 0&&!this.#e(this.#t[t])&&(yield e)}}*rkeys(){for(let t of this.#O()){let e=this.#i[t];e!==void 0&&!this.#e(this.#t[t])&&(yield e)}}*values(){for(let t of this.#F())this.#t[t]!==void 0&&!this.#e(this.#t[t])&&(yield this.#t[t])}*rvalues(){for(let t of this.#O())this.#t[t]!==void 0&&!this.#e(this.#t[t])&&(yield this.#t[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,e={}){for(let i of this.#F()){let s=this.#t[i],n=this.#e(s)?s.__staleWhileFetching:s;if(n!==void 0&&t(n,this.#i[i],this))return this.get(this.#i[i],e)}}forEach(t,e=this){for(let i of this.#F()){let s=this.#t[i],n=this.#e(s)?s.__staleWhileFetching:s;n!==void 0&&t.call(e,n,this.#i[i],this)}}rforEach(t,e=this){for(let i of this.#O()){let s=this.#t[i],n=this.#e(s)?s.__staleWhileFetching:s;n!==void 0&&t.call(e,n,this.#i[i],this)}}purgeStale(){let t=!1;for(let e of this.#O({allowStale:!0}))this.#p(e)&&(this.#E(this.#i[e],"expire"),t=!0);return t}info(t){let e=this.#s.get(t);if(e===void 0)return;let i=this.#t[e],s=this.#e(i)?i.__staleWhileFetching:i;if(s===void 0)return;let n={value:s};if(this.#d&&this.#A){let o=this.#d[e],h=this.#A[e];if(o&&h){let r=o-(this.#m.now()-h);n.ttl=r,n.start=Date.now()}}return this.#y&&(n.size=this.#y[e]),n}dump(){let t=[];for(let e of this.#F({allowStale:!0})){let i=this.#i[e],s=this.#t[e],n=this.#e(s)?s.__staleWhileFetching:s;if(n===void 0||i===void 0)continue;let o={value:n};if(this.#d&&this.#A){o.ttl=this.#d[e];let h=this.#m.now()-this.#A[e];o.start=Math.floor(Date.now()-h)}this.#y&&(o.size=this.#y[e]),t.unshift([i,o])}return t}load(t){this.clear();for(let[e,i]of t){if(i.start){let s=Date.now()-i.start;i.start=this.#m.now()-s}this.set(e,i.value,i)}}set(t,e,i={}){if(e===void 0)return this.delete(t),this;let{ttl:s=this.ttl,start:n,noDisposeOnSet:o=this.noDisposeOnSet,sizeCalculation:h=this.sizeCalculation,status:r}=i,{noUpdateTTL:a=this.noUpdateTTL}=i,w=this.#P(t,e,i.size||0,h);if(this.maxEntrySize&&w>this.maxEntrySize)return r&&(r.set="miss",r.maxEntrySizeExceeded=!0),this.#E(t,"set"),this;let f=this.#n===0?void 0:this.#s.get(t);if(f===void 0)f=this.#n===0?this.#h:this.#b.length!==0?this.#b.pop():this.#n===this.#o?this.#x(!1):this.#n,this.#i[f]=t,this.#t[f]=e,this.#s.set(t,f),this.#a[this.#h]=f,this.#u[f]=this.#h,this.#h=f,this.#n++,this.#M(f,w,r),r&&(r.set="add"),a=!1,this.#U&&this.#C?.(e,t,"add");else{this.#D(f);let d=this.#t[f];if(e!==d){if(this.#v&&this.#e(d)){d.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:g}=d;g!==void 0&&!o&&(this.#T&&this.#w?.(g,t,"set"),this.#f&&this.#r?.push([g,t,"set"]))}else o||(this.#T&&this.#w?.(d,t,"set"),this.#f&&this.#r?.push([d,t,"set"]));if(this.#W(f),this.#M(f,w,r),this.#t[f]=e,r){r.set="replace";let g=d&&this.#e(d)?d.__staleWhileFetching:d;g!==void 0&&(r.oldValue=g)}}else r&&(r.set="update");this.#U&&this.onInsert?.(e,t,e===d?"update":"replace")}if(s!==0&&!this.#d&&this.#j(),this.#d&&(a||this.#N(f,s,n),r&&this.#z(r,f)),!o&&this.#f&&this.#r){let d=this.#r,g;for(;g=d?.shift();)this.#S?.(...g)}return this}pop(){try{for(;this.#n;){let t=this.#t[this.#l];if(this.#x(!0),this.#e(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#f&&this.#r){let t=this.#r,e;for(;e=t?.shift();)this.#S?.(...e)}}}#x(t){let e=this.#l,i=this.#i[e],s=this.#t[e];return this.#v&&this.#e(s)?s.__abortController.abort(new Error("evicted")):(this.#T||this.#f)&&(this.#T&&this.#w?.(s,i,"evict"),this.#f&&this.#r?.push([s,i,"evict"])),this.#W(e),this.#g?.[e]&&(clearTimeout(this.#g[e]),this.#g[e]=void 0),t&&(this.#i[e]=void 0,this.#t[e]=void 0,this.#b.push(e)),this.#n===1?(this.#l=this.#h=0,this.#b.length=0):this.#l=this.#a[e],this.#s.delete(i),this.#n--,e}has(t,e={}){let{updateAgeOnHas:i=this.updateAgeOnHas,status:s}=e,n=this.#s.get(t);if(n!==void 0){let o=this.#t[n];if(this.#e(o)&&o.__staleWhileFetching===void 0)return!1;if(this.#p(n))s&&(s.has="stale",this.#z(s,n));else return i&&this.#R(n),s&&(s.has="hit",this.#z(s,n)),!0}else s&&(s.has="miss");return!1}peek(t,e={}){let{allowStale:i=this.allowStale}=e,s=this.#s.get(t);if(s===void 0||!i&&this.#p(s))return;let n=this.#t[s];return this.#e(n)?n.__staleWhileFetching:n}#G(t,e,i,s){let n=e===void 0?void 0:this.#t[e];if(this.#e(n))return n;let o=new C,{signal:h}=i;h?.addEventListener("abort",()=>o.abort(h.reason),{signal:o.signal});let r={signal:o.signal,options:i,context:s},a=(p,_=!1)=>{let{aborted:l}=o.signal,S=i.ignoreFetchAbort&&p!==void 0,b=i.ignoreFetchAbort||!!(i.allowStaleOnFetchAbort&&p!==void 0);if(i.status&&(l&&!_?(i.status.fetchAborted=!0,i.status.fetchError=o.signal.reason,S&&(i.status.fetchAbortIgnored=!0)):i.status.fetchResolved=!0),l&&!S&&!_)return f(o.signal.reason,b);let m=g,u=this.#t[e];return(u===g||S&&_&&u===void 0)&&(p===void 0?m.__staleWhileFetching!==void 0?this.#t[e]=m.__staleWhileFetching:this.#E(t,"fetch"):(i.status&&(i.status.fetchUpdated=!0),this.set(t,p,r.options))),p},w=p=>(i.status&&(i.status.fetchRejected=!0,i.status.fetchError=p),f(p,!1)),f=(p,_)=>{let{aborted:l}=o.signal,S=l&&i.allowStaleOnFetchAbort,b=S||i.allowStaleOnFetchRejection,m=b||i.noDeleteOnFetchRejection,u=g;if(this.#t[e]===g&&(!m||!_&&u.__staleWhileFetching===void 0?this.#E(t,"fetch"):S||(this.#t[e]=u.__staleWhileFetching)),b)return i.status&&u.__staleWhileFetching!==void 0&&(i.status.returnedStale=!0),u.__staleWhileFetching;if(u.__returned===u)throw p},d=(p,_)=>{let l=this.#L?.(t,n,r);l&&l instanceof Promise&&l.then(S=>p(S===void 0?void 0:S),_),o.signal.addEventListener("abort",()=>{(!i.ignoreFetchAbort||i.allowStaleOnFetchAbort)&&(p(void 0),i.allowStaleOnFetchAbort&&(p=S=>a(S,!0)))})};i.status&&(i.status.fetchDispatched=!0);let g=new Promise(d).then(a,w),A=Object.assign(g,{__abortController:o,__staleWhileFetching:n,__returned:void 0});return e===void 0?(this.set(t,A,{...r.options,status:void 0}),e=this.#s.get(t)):this.#t[e]=A,A}#e(t){if(!this.#v)return!1;let e=t;return!!e&&e instanceof Promise&&e.hasOwnProperty("__staleWhileFetching")&&e.__abortController instanceof C}async fetch(t,e={}){let{allowStale:i=this.allowStale,updateAgeOnGet:s=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:h=this.noDisposeOnSet,size:r=0,sizeCalculation:a=this.sizeCalculation,noUpdateTTL:w=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:d=this.allowStaleOnFetchRejection,ignoreFetchAbort:g=this.ignoreFetchAbort,allowStaleOnFetchAbort:A=this.allowStaleOnFetchAbort,context:p,forceRefresh:_=!1,status:l,signal:S}=e;if(!this.#v)return l&&(l.fetch="get"),this.get(t,{allowStale:i,updateAgeOnGet:s,noDeleteOnStaleGet:n,status:l});let b={allowStale:i,updateAgeOnGet:s,noDeleteOnStaleGet:n,ttl:o,noDisposeOnSet:h,size:r,sizeCalculation:a,noUpdateTTL:w,noDeleteOnFetchRejection:f,allowStaleOnFetchRejection:d,allowStaleOnFetchAbort:A,ignoreFetchAbort:g,status:l,signal:S},m=this.#s.get(t);if(m===void 0){l&&(l.fetch="miss");let u=this.#G(t,m,b,p);return u.__returned=u}else{let u=this.#t[m];if(this.#e(u)){let E=i&&u.__staleWhileFetching!==void 0;return l&&(l.fetch="inflight",E&&(l.returnedStale=!0)),E?u.__staleWhileFetching:u.__returned=u}let T=this.#p(m);if(!_&&!T)return l&&(l.fetch="hit"),this.#D(m),s&&this.#R(m),l&&this.#z(l,m),u;let F=this.#G(t,m,b,p),O=F.__staleWhileFetching!==void 0&&i;return l&&(l.fetch=T?"stale":"refresh",O&&T&&(l.returnedStale=!0)),O?F.__staleWhileFetching:F.__returned=F}}async forceFetch(t,e={}){let i=await this.fetch(t,e);if(i===void 0)throw new Error("fetch() returned undefined");return i}memo(t,e={}){let i=this.#I;if(!i)throw new Error("no memoMethod provided to constructor");let{context:s,forceRefresh:n,...o}=e,h=this.get(t,o);if(!n&&h!==void 0)return h;let r=i(t,h,{options:o,context:s});return this.set(t,r,o),r}get(t,e={}){let{allowStale:i=this.allowStale,updateAgeOnGet:s=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,status:o}=e,h=this.#s.get(t);if(h!==void 0){let r=this.#t[h],a=this.#e(r);return o&&this.#z(o,h),this.#p(h)?(o&&(o.get="stale"),a?(o&&i&&r.__staleWhileFetching!==void 0&&(o.returnedStale=!0),i?r.__staleWhileFetching:void 0):(n||this.#E(t,"expire"),o&&i&&(o.returnedStale=!0),i?r:void 0)):(o&&(o.get="hit"),a?r.__staleWhileFetching:(this.#D(h),s&&this.#R(h),r))}else o&&(o.get="miss")}#k(t,e){this.#u[e]=t,this.#a[t]=e}#D(t){t!==this.#h&&(t===this.#l?this.#l=this.#a[t]:this.#k(this.#u[t],this.#a[t]),this.#k(this.#h,t),this.#h=t)}delete(t){return this.#E(t,"delete")}#E(t,e){let i=!1;if(this.#n!==0){let s=this.#s.get(t);if(s!==void 0)if(this.#g?.[s]&&(clearTimeout(this.#g?.[s]),this.#g[s]=void 0),i=!0,this.#n===1)this.#V(e);else{this.#W(s);let n=this.#t[s];if(this.#e(n)?n.__abortController.abort(new Error("deleted")):(this.#T||this.#f)&&(this.#T&&this.#w?.(n,t,e),this.#f&&this.#r?.push([n,t,e])),this.#s.delete(t),this.#i[s]=void 0,this.#t[s]=void 0,s===this.#h)this.#h=this.#u[s];else if(s===this.#l)this.#l=this.#a[s];else{let o=this.#u[s];this.#a[o]=this.#a[s];let h=this.#a[s];this.#u[h]=this.#u[s]}this.#n--,this.#b.push(s)}}if(this.#f&&this.#r?.length){let s=this.#r,n;for(;n=s?.shift();)this.#S?.(...n)}return i}clear(){return this.#V("delete")}#V(t){for(let e of this.#O({allowStale:!0})){let i=this.#t[e];if(this.#e(i))i.__abortController.abort(new Error("deleted"));else{let s=this.#i[e];this.#T&&this.#w?.(i,s,t),this.#f&&this.#r?.push([i,s,t])}}if(this.#s.clear(),this.#t.fill(void 0),this.#i.fill(void 0),this.#d&&this.#A){this.#d.fill(0),this.#A.fill(0);for(let e of this.#g??[])e!==void 0&&clearTimeout(e);this.#g?.fill(void 0)}if(this.#y&&this.#y.fill(0),this.#l=0,this.#h=0,this.#b.length=0,this.#_=0,this.#n=0,this.#f&&this.#r){let e=this.#r,i;for(;i=e?.shift();)this.#S?.(...i)}}};export{L as LRUCache};
|
|
2
2
|
//# sourceMappingURL=index.min.js.map
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lru-cache",
|
|
3
|
-
"publishConfig": {
|
|
4
|
-
"tag": "legacy-v10"
|
|
5
|
-
},
|
|
6
3
|
"description": "A cache object that deletes the least-recently-used items.",
|
|
7
|
-
"version": "
|
|
4
|
+
"version": "11.2.7",
|
|
8
5
|
"author": "Isaac Z. Schlueter <i@izs.me>",
|
|
9
6
|
"keywords": [
|
|
10
7
|
"mru",
|
|
@@ -30,12 +27,12 @@
|
|
|
30
27
|
"preprofile": "npm run prepare",
|
|
31
28
|
"profile": "make -C benchmark profile"
|
|
32
29
|
},
|
|
33
|
-
"main": "./dist/commonjs/index.js",
|
|
30
|
+
"main": "./dist/commonjs/index.min.js",
|
|
34
31
|
"types": "./dist/commonjs/index.d.ts",
|
|
35
32
|
"tshy": {
|
|
36
33
|
"exports": {
|
|
37
|
-
"
|
|
38
|
-
"
|
|
34
|
+
"./raw": "./src/index.ts",
|
|
35
|
+
".": {
|
|
39
36
|
"import": {
|
|
40
37
|
"types": "./dist/esm/index.d.ts",
|
|
41
38
|
"default": "./dist/esm/index.min.js"
|
|
@@ -49,48 +46,28 @@
|
|
|
49
46
|
},
|
|
50
47
|
"repository": {
|
|
51
48
|
"type": "git",
|
|
52
|
-
"url": "git://github.com/isaacs/node-lru-cache.git"
|
|
49
|
+
"url": "git+ssh://git@github.com/isaacs/node-lru-cache.git"
|
|
53
50
|
},
|
|
54
51
|
"devDependencies": {
|
|
55
|
-
"@types/node": "^
|
|
56
|
-
"@types/tap": "^15.0.6",
|
|
52
|
+
"@types/node": "^24.3.0",
|
|
57
53
|
"benchmark": "^2.1.4",
|
|
58
|
-
"esbuild": "^0.
|
|
59
|
-
"eslint-config-prettier": "^8.5.0",
|
|
54
|
+
"esbuild": "^0.25.9",
|
|
60
55
|
"marked": "^4.2.12",
|
|
61
|
-
"mkdirp": "^
|
|
62
|
-
"prettier": "^
|
|
63
|
-
"tap": "^
|
|
64
|
-
"tshy": "^
|
|
65
|
-
"
|
|
66
|
-
"typedoc": "^0.25.3",
|
|
67
|
-
"typescript": "^5.2.2"
|
|
56
|
+
"mkdirp": "^3.0.1",
|
|
57
|
+
"prettier": "^3.6.2",
|
|
58
|
+
"tap": "^21.1.0",
|
|
59
|
+
"tshy": "^3.0.2",
|
|
60
|
+
"typedoc": "^0.28.12"
|
|
68
61
|
},
|
|
69
|
-
"license": "
|
|
62
|
+
"license": "BlueOak-1.0.0",
|
|
70
63
|
"files": [
|
|
71
64
|
"dist"
|
|
72
65
|
],
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"printWidth": 70,
|
|
76
|
-
"tabWidth": 2,
|
|
77
|
-
"useTabs": false,
|
|
78
|
-
"singleQuote": true,
|
|
79
|
-
"jsxSingleQuote": false,
|
|
80
|
-
"bracketSameLine": true,
|
|
81
|
-
"arrowParens": "avoid",
|
|
82
|
-
"endOfLine": "lf"
|
|
83
|
-
},
|
|
84
|
-
"tap": {
|
|
85
|
-
"node-arg": [
|
|
86
|
-
"--expose-gc"
|
|
87
|
-
],
|
|
88
|
-
"plugin": [
|
|
89
|
-
"@tapjs/clock"
|
|
90
|
-
]
|
|
66
|
+
"engines": {
|
|
67
|
+
"node": "20 || >=22"
|
|
91
68
|
},
|
|
92
69
|
"exports": {
|
|
93
|
-
"
|
|
70
|
+
"./raw": {
|
|
94
71
|
"import": {
|
|
95
72
|
"types": "./dist/esm/index.d.ts",
|
|
96
73
|
"default": "./dist/esm/index.js"
|
|
@@ -100,7 +77,7 @@
|
|
|
100
77
|
"default": "./dist/commonjs/index.js"
|
|
101
78
|
}
|
|
102
79
|
},
|
|
103
|
-
"
|
|
80
|
+
".": {
|
|
104
81
|
"import": {
|
|
105
82
|
"types": "./dist/esm/index.d.ts",
|
|
106
83
|
"default": "./dist/esm/index.min.js"
|
|
@@ -112,5 +89,5 @@
|
|
|
112
89
|
}
|
|
113
90
|
},
|
|
114
91
|
"type": "module",
|
|
115
|
-
"module": "./dist/esm/index.js"
|
|
92
|
+
"module": "./dist/esm/index.min.js"
|
|
116
93
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "make-fetch-happen",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "15.0.4",
|
|
4
4
|
"description": "Opinionated, caching, retrying fetch client",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"files": [
|
|
@@ -33,28 +33,28 @@
|
|
|
33
33
|
"author": "GitHub Inc.",
|
|
34
34
|
"license": "ISC",
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@
|
|
37
|
-
"
|
|
36
|
+
"@gar/promise-retry": "^1.0.0",
|
|
37
|
+
"@npmcli/agent": "^4.0.0",
|
|
38
|
+
"cacache": "^20.0.1",
|
|
38
39
|
"http-cache-semantics": "^4.1.1",
|
|
39
40
|
"minipass": "^7.0.2",
|
|
40
|
-
"minipass-fetch": "^
|
|
41
|
+
"minipass-fetch": "^5.0.0",
|
|
41
42
|
"minipass-flush": "^1.0.5",
|
|
42
43
|
"minipass-pipeline": "^1.2.4",
|
|
43
44
|
"negotiator": "^1.0.0",
|
|
44
|
-
"proc-log": "^
|
|
45
|
-
"
|
|
46
|
-
"ssri": "^12.0.0"
|
|
45
|
+
"proc-log": "^6.0.0",
|
|
46
|
+
"ssri": "^13.0.0"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@npmcli/eslint-config": "^5.0.0",
|
|
50
|
-
"@npmcli/template-oss": "4.
|
|
50
|
+
"@npmcli/template-oss": "4.25.0",
|
|
51
51
|
"nock": "^13.2.4",
|
|
52
52
|
"safe-buffer": "^5.2.1",
|
|
53
53
|
"standard-version": "^9.3.2",
|
|
54
54
|
"tap": "^16.0.0"
|
|
55
55
|
},
|
|
56
56
|
"engines": {
|
|
57
|
-
"node": "^
|
|
57
|
+
"node": "^20.17.0 || >=22.9.0"
|
|
58
58
|
},
|
|
59
59
|
"tap": {
|
|
60
60
|
"color": 1,
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
},
|
|
69
69
|
"templateOSS": {
|
|
70
70
|
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
|
|
71
|
-
"version": "4.
|
|
71
|
+
"version": "4.25.0",
|
|
72
72
|
"publish": "true"
|
|
73
73
|
}
|
|
74
74
|
}
|
|
@@ -1,11 +1,113 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// parse a single path portion
|
|
3
|
+
var _a;
|
|
3
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
5
|
exports.AST = void 0;
|
|
5
6
|
const brace_expressions_js_1 = require("./brace-expressions.js");
|
|
6
7
|
const unescape_js_1 = require("./unescape.js");
|
|
7
8
|
const types = new Set(['!', '?', '+', '*', '@']);
|
|
8
9
|
const isExtglobType = (c) => types.has(c);
|
|
10
|
+
const isExtglobAST = (c) => isExtglobType(c.type);
|
|
11
|
+
// Map of which extglob types can adopt the children of a nested extglob
|
|
12
|
+
//
|
|
13
|
+
// anything but ! can adopt a matching type:
|
|
14
|
+
// +(a|+(b|c)|d) => +(a|b|c|d)
|
|
15
|
+
// *(a|*(b|c)|d) => *(a|b|c|d)
|
|
16
|
+
// @(a|@(b|c)|d) => @(a|b|c|d)
|
|
17
|
+
// ?(a|?(b|c)|d) => ?(a|b|c|d)
|
|
18
|
+
//
|
|
19
|
+
// * can adopt anything, because 0 or repetition is allowed
|
|
20
|
+
// *(a|?(b|c)|d) => *(a|b|c|d)
|
|
21
|
+
// *(a|+(b|c)|d) => *(a|b|c|d)
|
|
22
|
+
// *(a|@(b|c)|d) => *(a|b|c|d)
|
|
23
|
+
//
|
|
24
|
+
// + can adopt @, because 1 or repetition is allowed
|
|
25
|
+
// +(a|@(b|c)|d) => +(a|b|c|d)
|
|
26
|
+
//
|
|
27
|
+
// + and @ CANNOT adopt *, because 0 would be allowed
|
|
28
|
+
// +(a|*(b|c)|d) => would match "", on *(b|c)
|
|
29
|
+
// @(a|*(b|c)|d) => would match "", on *(b|c)
|
|
30
|
+
//
|
|
31
|
+
// + and @ CANNOT adopt ?, because 0 would be allowed
|
|
32
|
+
// +(a|?(b|c)|d) => would match "", on ?(b|c)
|
|
33
|
+
// @(a|?(b|c)|d) => would match "", on ?(b|c)
|
|
34
|
+
//
|
|
35
|
+
// ? can adopt @, because 0 or 1 is allowed
|
|
36
|
+
// ?(a|@(b|c)|d) => ?(a|b|c|d)
|
|
37
|
+
//
|
|
38
|
+
// ? and @ CANNOT adopt * or +, because >1 would be allowed
|
|
39
|
+
// ?(a|*(b|c)|d) => would match bbb on *(b|c)
|
|
40
|
+
// @(a|*(b|c)|d) => would match bbb on *(b|c)
|
|
41
|
+
// ?(a|+(b|c)|d) => would match bbb on +(b|c)
|
|
42
|
+
// @(a|+(b|c)|d) => would match bbb on +(b|c)
|
|
43
|
+
//
|
|
44
|
+
// ! CANNOT adopt ! (nothing else can either)
|
|
45
|
+
// !(a|!(b|c)|d) => !(a|b|c|d) would fail to match on b (not not b|c)
|
|
46
|
+
//
|
|
47
|
+
// ! can adopt @
|
|
48
|
+
// !(a|@(b|c)|d) => !(a|b|c|d)
|
|
49
|
+
//
|
|
50
|
+
// ! CANNOT adopt *
|
|
51
|
+
// !(a|*(b|c)|d) => !(a|b|c|d) would match on bbb, not allowed
|
|
52
|
+
//
|
|
53
|
+
// ! CANNOT adopt +
|
|
54
|
+
// !(a|+(b|c)|d) => !(a|b|c|d) would match on bbb, not allowed
|
|
55
|
+
//
|
|
56
|
+
// ! CANNOT adopt ?
|
|
57
|
+
// x!(a|?(b|c)|d) => x!(a|b|c|d) would fail to match "x"
|
|
58
|
+
const adoptionMap = new Map([
|
|
59
|
+
['!', ['@']],
|
|
60
|
+
['?', ['?', '@']],
|
|
61
|
+
['@', ['@']],
|
|
62
|
+
['*', ['*', '+', '?', '@']],
|
|
63
|
+
['+', ['+', '@']],
|
|
64
|
+
]);
|
|
65
|
+
// nested extglobs that can be adopted in, but with the addition of
|
|
66
|
+
// a blank '' element.
|
|
67
|
+
const adoptionWithSpaceMap = new Map([
|
|
68
|
+
['!', ['?']],
|
|
69
|
+
['@', ['?']],
|
|
70
|
+
['+', ['?', '*']],
|
|
71
|
+
]);
|
|
72
|
+
// union of the previous two maps
|
|
73
|
+
const adoptionAnyMap = new Map([
|
|
74
|
+
['!', ['?', '@']],
|
|
75
|
+
['?', ['?', '@']],
|
|
76
|
+
['@', ['?', '@']],
|
|
77
|
+
['*', ['*', '+', '?', '@']],
|
|
78
|
+
['+', ['+', '@', '?', '*']],
|
|
79
|
+
]);
|
|
80
|
+
// Extglobs that can take over their parent if they are the only child
|
|
81
|
+
// the key is parent, value maps child to resulting extglob parent type
|
|
82
|
+
// '@' is omitted because it's a special case. An `@` extglob with a single
|
|
83
|
+
// member can always be usurped by that subpattern.
|
|
84
|
+
const usurpMap = new Map([
|
|
85
|
+
['!', new Map([['!', '@']])],
|
|
86
|
+
[
|
|
87
|
+
'?',
|
|
88
|
+
new Map([
|
|
89
|
+
['*', '*'],
|
|
90
|
+
['+', '*'],
|
|
91
|
+
]),
|
|
92
|
+
],
|
|
93
|
+
[
|
|
94
|
+
'@',
|
|
95
|
+
new Map([
|
|
96
|
+
['!', '!'],
|
|
97
|
+
['?', '?'],
|
|
98
|
+
['@', '@'],
|
|
99
|
+
['*', '*'],
|
|
100
|
+
['+', '+'],
|
|
101
|
+
]),
|
|
102
|
+
],
|
|
103
|
+
[
|
|
104
|
+
'+',
|
|
105
|
+
new Map([
|
|
106
|
+
['?', '*'],
|
|
107
|
+
['*', '*'],
|
|
108
|
+
]),
|
|
109
|
+
],
|
|
110
|
+
]);
|
|
9
111
|
// Patterns that get prepended to bind to the start of either the
|
|
10
112
|
// entire string, or just a single path portion, to prevent dots
|
|
11
113
|
// and/or traversal patterns, when needed.
|
|
@@ -29,6 +131,7 @@ const star = qmark + '*?';
|
|
|
29
131
|
const starNoEmpty = qmark + '+?';
|
|
30
132
|
// remove the \ chars that we added if we end up doing a nonmagic compare
|
|
31
133
|
// const deslash = (s: string) => s.replace(/\\(.)/g, '$1')
|
|
134
|
+
let ID = 0;
|
|
32
135
|
class AST {
|
|
33
136
|
type;
|
|
34
137
|
#root;
|
|
@@ -44,6 +147,22 @@ class AST {
|
|
|
44
147
|
// set to true if it's an extglob with no children
|
|
45
148
|
// (which really means one child of '')
|
|
46
149
|
#emptyExt = false;
|
|
150
|
+
id = ++ID;
|
|
151
|
+
get depth() {
|
|
152
|
+
return (this.#parent?.depth ?? -1) + 1;
|
|
153
|
+
}
|
|
154
|
+
[Symbol.for('nodejs.util.inspect.custom')]() {
|
|
155
|
+
return {
|
|
156
|
+
'@@type': 'AST',
|
|
157
|
+
id: this.id,
|
|
158
|
+
type: this.type,
|
|
159
|
+
root: this.#root.id,
|
|
160
|
+
parent: this.#parent?.id,
|
|
161
|
+
depth: this.depth,
|
|
162
|
+
partsLength: this.#parts.length,
|
|
163
|
+
parts: this.#parts,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
47
166
|
constructor(type, parent, options = {}) {
|
|
48
167
|
this.type = type;
|
|
49
168
|
// extglobs are inherently magical
|
|
@@ -123,7 +242,7 @@ class AST {
|
|
|
123
242
|
continue;
|
|
124
243
|
/* c8 ignore start */
|
|
125
244
|
if (typeof p !== 'string' &&
|
|
126
|
-
!(p instanceof
|
|
245
|
+
!(p instanceof _a && p.#parent === this)) {
|
|
127
246
|
throw new Error('invalid part: ' + p);
|
|
128
247
|
}
|
|
129
248
|
/* c8 ignore stop */
|
|
@@ -157,7 +276,7 @@ class AST {
|
|
|
157
276
|
const p = this.#parent;
|
|
158
277
|
for (let i = 0; i < this.#parentIndex; i++) {
|
|
159
278
|
const pp = p.#parts[i];
|
|
160
|
-
if (!(pp instanceof
|
|
279
|
+
if (!(pp instanceof _a && pp.type === '!')) {
|
|
161
280
|
return false;
|
|
162
281
|
}
|
|
163
282
|
}
|
|
@@ -185,13 +304,14 @@ class AST {
|
|
|
185
304
|
this.push(part.clone(this));
|
|
186
305
|
}
|
|
187
306
|
clone(parent) {
|
|
188
|
-
const c = new
|
|
307
|
+
const c = new _a(this.type, parent);
|
|
189
308
|
for (const p of this.#parts) {
|
|
190
309
|
c.copyIn(p);
|
|
191
310
|
}
|
|
192
311
|
return c;
|
|
193
312
|
}
|
|
194
|
-
static #parseAST(str, ast, pos, opt) {
|
|
313
|
+
static #parseAST(str, ast, pos, opt, extDepth) {
|
|
314
|
+
const maxDepth = opt.maxExtglobRecursion ?? 2;
|
|
195
315
|
let escaping = false;
|
|
196
316
|
let inBrace = false;
|
|
197
317
|
let braceStart = -1;
|
|
@@ -228,11 +348,17 @@ class AST {
|
|
|
228
348
|
acc += c;
|
|
229
349
|
continue;
|
|
230
350
|
}
|
|
231
|
-
|
|
351
|
+
// we don't have to check for adoption here, because that's
|
|
352
|
+
// done at the other recursion point.
|
|
353
|
+
const doRecurse = !opt.noext &&
|
|
354
|
+
isExtglobType(c) &&
|
|
355
|
+
str.charAt(i) === '(' &&
|
|
356
|
+
extDepth <= maxDepth;
|
|
357
|
+
if (doRecurse) {
|
|
232
358
|
ast.push(acc);
|
|
233
359
|
acc = '';
|
|
234
|
-
const ext = new
|
|
235
|
-
i =
|
|
360
|
+
const ext = new _a(c, ast);
|
|
361
|
+
i = _a.#parseAST(str, ext, i, opt, extDepth + 1);
|
|
236
362
|
ast.push(ext);
|
|
237
363
|
continue;
|
|
238
364
|
}
|
|
@@ -244,7 +370,7 @@ class AST {
|
|
|
244
370
|
// some kind of extglob, pos is at the (
|
|
245
371
|
// find the next | or )
|
|
246
372
|
let i = pos + 1;
|
|
247
|
-
let part = new
|
|
373
|
+
let part = new _a(null, ast);
|
|
248
374
|
const parts = [];
|
|
249
375
|
let acc = '';
|
|
250
376
|
while (i < str.length) {
|
|
@@ -275,19 +401,26 @@ class AST {
|
|
|
275
401
|
acc += c;
|
|
276
402
|
continue;
|
|
277
403
|
}
|
|
278
|
-
|
|
404
|
+
const doRecurse = !opt.noext &&
|
|
405
|
+
isExtglobType(c) &&
|
|
406
|
+
str.charAt(i) === '(' &&
|
|
407
|
+
/* c8 ignore start - the maxDepth is sufficient here */
|
|
408
|
+
(extDepth <= maxDepth || (ast && ast.#canAdoptType(c)));
|
|
409
|
+
/* c8 ignore stop */
|
|
410
|
+
if (doRecurse) {
|
|
411
|
+
const depthAdd = ast && ast.#canAdoptType(c) ? 0 : 1;
|
|
279
412
|
part.push(acc);
|
|
280
413
|
acc = '';
|
|
281
|
-
const ext = new
|
|
414
|
+
const ext = new _a(c, part);
|
|
282
415
|
part.push(ext);
|
|
283
|
-
i =
|
|
416
|
+
i = _a.#parseAST(str, ext, i, opt, extDepth + depthAdd);
|
|
284
417
|
continue;
|
|
285
418
|
}
|
|
286
419
|
if (c === '|') {
|
|
287
420
|
part.push(acc);
|
|
288
421
|
acc = '';
|
|
289
422
|
parts.push(part);
|
|
290
|
-
part = new
|
|
423
|
+
part = new _a(null, ast);
|
|
291
424
|
continue;
|
|
292
425
|
}
|
|
293
426
|
if (c === ')') {
|
|
@@ -309,9 +442,82 @@ class AST {
|
|
|
309
442
|
ast.#parts = [str.substring(pos - 1)];
|
|
310
443
|
return i;
|
|
311
444
|
}
|
|
445
|
+
#canAdoptWithSpace(child) {
|
|
446
|
+
return this.#canAdopt(child, adoptionWithSpaceMap);
|
|
447
|
+
}
|
|
448
|
+
#canAdopt(child, map = adoptionMap) {
|
|
449
|
+
if (!child ||
|
|
450
|
+
typeof child !== 'object' ||
|
|
451
|
+
child.type !== null ||
|
|
452
|
+
child.#parts.length !== 1 ||
|
|
453
|
+
this.type === null) {
|
|
454
|
+
return false;
|
|
455
|
+
}
|
|
456
|
+
const gc = child.#parts[0];
|
|
457
|
+
if (!gc || typeof gc !== 'object' || gc.type === null) {
|
|
458
|
+
return false;
|
|
459
|
+
}
|
|
460
|
+
return this.#canAdoptType(gc.type, map);
|
|
461
|
+
}
|
|
462
|
+
#canAdoptType(c, map = adoptionAnyMap) {
|
|
463
|
+
return !!map.get(this.type)?.includes(c);
|
|
464
|
+
}
|
|
465
|
+
#adoptWithSpace(child, index) {
|
|
466
|
+
const gc = child.#parts[0];
|
|
467
|
+
const blank = new _a(null, gc, this.options);
|
|
468
|
+
blank.#parts.push('');
|
|
469
|
+
gc.push(blank);
|
|
470
|
+
this.#adopt(child, index);
|
|
471
|
+
}
|
|
472
|
+
#adopt(child, index) {
|
|
473
|
+
const gc = child.#parts[0];
|
|
474
|
+
this.#parts.splice(index, 1, ...gc.#parts);
|
|
475
|
+
for (const p of gc.#parts) {
|
|
476
|
+
if (typeof p === 'object')
|
|
477
|
+
p.#parent = this;
|
|
478
|
+
}
|
|
479
|
+
this.#toString = undefined;
|
|
480
|
+
}
|
|
481
|
+
#canUsurpType(c) {
|
|
482
|
+
const m = usurpMap.get(this.type);
|
|
483
|
+
return !!(m?.has(c));
|
|
484
|
+
}
|
|
485
|
+
#canUsurp(child) {
|
|
486
|
+
if (!child ||
|
|
487
|
+
typeof child !== 'object' ||
|
|
488
|
+
child.type !== null ||
|
|
489
|
+
child.#parts.length !== 1 ||
|
|
490
|
+
this.type === null ||
|
|
491
|
+
this.#parts.length !== 1) {
|
|
492
|
+
return false;
|
|
493
|
+
}
|
|
494
|
+
const gc = child.#parts[0];
|
|
495
|
+
if (!gc || typeof gc !== 'object' || gc.type === null) {
|
|
496
|
+
return false;
|
|
497
|
+
}
|
|
498
|
+
return this.#canUsurpType(gc.type);
|
|
499
|
+
}
|
|
500
|
+
#usurp(child) {
|
|
501
|
+
const m = usurpMap.get(this.type);
|
|
502
|
+
const gc = child.#parts[0];
|
|
503
|
+
const nt = m?.get(gc.type);
|
|
504
|
+
/* c8 ignore start - impossible */
|
|
505
|
+
if (!nt)
|
|
506
|
+
return false;
|
|
507
|
+
/* c8 ignore stop */
|
|
508
|
+
this.#parts = gc.#parts;
|
|
509
|
+
for (const p of this.#parts) {
|
|
510
|
+
if (typeof p === 'object') {
|
|
511
|
+
p.#parent = this;
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
this.type = nt;
|
|
515
|
+
this.#toString = undefined;
|
|
516
|
+
this.#emptyExt = false;
|
|
517
|
+
}
|
|
312
518
|
static fromGlob(pattern, options = {}) {
|
|
313
|
-
const ast = new
|
|
314
|
-
|
|
519
|
+
const ast = new _a(null, undefined, options);
|
|
520
|
+
_a.#parseAST(pattern, ast, 0, options, 0);
|
|
315
521
|
return ast;
|
|
316
522
|
}
|
|
317
523
|
// returns the regular expression if there's magic, or the unescaped
|
|
@@ -415,16 +621,18 @@ class AST {
|
|
|
415
621
|
// or start or whatever) and prepend ^ or / at the Regexp construction.
|
|
416
622
|
toRegExpSource(allowDot) {
|
|
417
623
|
const dot = allowDot ?? !!this.#options.dot;
|
|
418
|
-
if (this.#root === this)
|
|
624
|
+
if (this.#root === this) {
|
|
625
|
+
this.#flatten();
|
|
419
626
|
this.#fillNegs();
|
|
420
|
-
|
|
627
|
+
}
|
|
628
|
+
if (!isExtglobAST(this)) {
|
|
421
629
|
const noEmpty = this.isStart() &&
|
|
422
630
|
this.isEnd() &&
|
|
423
631
|
!this.#parts.some(s => typeof s !== 'string');
|
|
424
632
|
const src = this.#parts
|
|
425
633
|
.map(p => {
|
|
426
634
|
const [re, _, hasMagic, uflag] = typeof p === 'string' ?
|
|
427
|
-
|
|
635
|
+
_a.#parseGlob(p, this.#hasMagic, noEmpty)
|
|
428
636
|
: p.toRegExpSource(allowDot);
|
|
429
637
|
this.#hasMagic = this.#hasMagic || hasMagic;
|
|
430
638
|
this.#uflag = this.#uflag || uflag;
|
|
@@ -486,12 +694,12 @@ class AST {
|
|
|
486
694
|
// invalid extglob, has to at least be *something* present, if it's
|
|
487
695
|
// the entire path portion.
|
|
488
696
|
const s = this.toString();
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
697
|
+
const me = this;
|
|
698
|
+
me.#parts = [s];
|
|
699
|
+
me.type = null;
|
|
700
|
+
me.#hasMagic = undefined;
|
|
492
701
|
return [s, (0, unescape_js_1.unescape)(this.toString()), false, false];
|
|
493
702
|
}
|
|
494
|
-
// XXX abstract out this map method
|
|
495
703
|
let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ?
|
|
496
704
|
''
|
|
497
705
|
: this.#partsToRegExp(true);
|
|
@@ -527,6 +735,42 @@ class AST {
|
|
|
527
735
|
this.#uflag,
|
|
528
736
|
];
|
|
529
737
|
}
|
|
738
|
+
#flatten() {
|
|
739
|
+
if (!isExtglobAST(this)) {
|
|
740
|
+
for (const p of this.#parts) {
|
|
741
|
+
if (typeof p === 'object') {
|
|
742
|
+
p.#flatten();
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
else {
|
|
747
|
+
// do up to 10 passes to flatten as much as possible
|
|
748
|
+
let iterations = 0;
|
|
749
|
+
let done = false;
|
|
750
|
+
do {
|
|
751
|
+
done = true;
|
|
752
|
+
for (let i = 0; i < this.#parts.length; i++) {
|
|
753
|
+
const c = this.#parts[i];
|
|
754
|
+
if (typeof c === 'object') {
|
|
755
|
+
c.#flatten();
|
|
756
|
+
if (this.#canAdopt(c)) {
|
|
757
|
+
done = false;
|
|
758
|
+
this.#adopt(c, i);
|
|
759
|
+
}
|
|
760
|
+
else if (this.#canAdoptWithSpace(c)) {
|
|
761
|
+
done = false;
|
|
762
|
+
this.#adoptWithSpace(c, i);
|
|
763
|
+
}
|
|
764
|
+
else if (this.#canUsurp(c)) {
|
|
765
|
+
done = false;
|
|
766
|
+
this.#usurp(c);
|
|
767
|
+
}
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
} while (!done && ++iterations < 10);
|
|
771
|
+
}
|
|
772
|
+
this.#toString = undefined;
|
|
773
|
+
}
|
|
530
774
|
#partsToRegExp(dot) {
|
|
531
775
|
return this.#parts
|
|
532
776
|
.map(p => {
|
|
@@ -598,4 +842,5 @@ class AST {
|
|
|
598
842
|
}
|
|
599
843
|
}
|
|
600
844
|
exports.AST = AST;
|
|
845
|
+
_a = AST;
|
|
601
846
|
//# sourceMappingURL=ast.js.map
|