UNPKG

next

Version:

The React Framework

1 lines • 18.7 kB
(()=>{var t={78:t=>{const e=typeof performance==="object"&&performance&&typeof performance.now==="function"?performance:Date;const i=typeof AbortController==="function";const s=i?AbortController:class AbortController{constructor(){this.signal=new r}abort(t=new Error("This operation was aborted")){this.signal.reason=this.signal.reason||t;this.signal.aborted=true;this.signal.dispatchEvent({type:"abort",target:this.signal})}};const n=typeof AbortSignal==="function";const h=typeof s.AbortSignal==="function";const r=n?AbortSignal:h?s.AbortController:class AbortSignal{constructor(){this.reason=undefined;this.aborted=false;this._listeners=[]}dispatchEvent(t){if(t.type==="abort"){this.aborted=true;this.onabort(t);this._listeners.forEach((e=>e(t)),this)}}onabort(){}addEventListener(t,e){if(t==="abort"){this._listeners.push(e)}}removeEventListener(t,e){if(t==="abort"){this._listeners=this._listeners.filter((t=>t!==e))}}};const o=new Set;const deprecatedOption=(t,e)=>{const i=`LRU_CACHE_OPTION_${t}`;if(shouldWarn(i)){warn(i,`${t} option`,`options.${e}`,LRUCache)}};const deprecatedMethod=(t,e)=>{const i=`LRU_CACHE_METHOD_${t}`;if(shouldWarn(i)){const{prototype:s}=LRUCache;const{get:n}=Object.getOwnPropertyDescriptor(s,t);warn(i,`${t} method`,`cache.${e}()`,n)}};const deprecatedProperty=(t,e)=>{const i=`LRU_CACHE_PROPERTY_${t}`;if(shouldWarn(i)){const{prototype:s}=LRUCache;const{get:n}=Object.getOwnPropertyDescriptor(s,t);warn(i,`${t} property`,`cache.${e}`,n)}};const emitWarning=(...t)=>{typeof process==="object"&&process&&typeof process.emitWarning==="function"?process.emitWarning(...t):console.error(...t)};const shouldWarn=t=>!o.has(t);const warn=(t,e,i,s)=>{o.add(t);const n=`The ${e} is deprecated. Please use ${i} instead.`;emitWarning(n,"DeprecationWarning",t,s)};const isPosInt=t=>t&&t===Math.floor(t)&&t>0&&isFinite(t);const getUintArray=t=>!isPosInt(t)?null:t<=Math.pow(2,8)?Uint8Array:t<=Math.pow(2,16)?Uint16Array:t<=Math.pow(2,32)?Uint32Array:t<=Number.MAX_SAFE_INTEGER?ZeroArray:null;class ZeroArray extends Array{constructor(t){super(t);this.fill(0)}}class Stack{constructor(t){if(t===0){return[]}const e=getUintArray(t);this.heap=new e(t);this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}}class LRUCache{constructor(t={}){const{max:e=0,ttl:i,ttlResolution:s=1,ttlAutopurge:n,updateAgeOnGet:h,updateAgeOnHas:r,allowStale:a,dispose:l,disposeAfter:c,noDisposeOnSet:f,noUpdateTTL:u,maxSize:d=0,maxEntrySize:p=0,sizeCalculation:g,fetchMethod:S,fetchContext:y,noDeleteOnFetchRejection:w,noDeleteOnStaleGet:_,allowStaleOnFetchRejection:m,allowStaleOnFetchAbort:z,ignoreFetchAbort:L}=t;const{length:v,maxAge:x,stale:b}=t instanceof LRUCache?{}:t;if(e!==0&&!isPosInt(e)){throw new TypeError("max option must be a nonnegative integer")}const A=e?getUintArray(e):Array;if(!A){throw new Error("invalid max value: "+e)}this.max=e;this.maxSize=d;this.maxEntrySize=p||this.maxSize;this.sizeCalculation=g||v;if(this.sizeCalculation){if(!this.maxSize&&!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")}}this.fetchMethod=S||null;if(this.fetchMethod&&typeof this.fetchMethod!=="function"){throw new TypeError("fetchMethod must be a function if specified")}this.fetchContext=y;if(!this.fetchMethod&&y!==undefined){throw new TypeError("cannot set fetchContext without fetchMethod")}this.keyMap=new Map;this.keyList=new Array(e).fill(null);this.valList=new Array(e).fill(null);this.next=new A(e);this.prev=new A(e);this.head=0;this.tail=0;this.free=new Stack(e);this.initialFill=1;this.size=0;if(typeof l==="function"){this.dispose=l}if(typeof c==="function"){this.disposeAfter=c;this.disposed=[]}else{this.disposeAfter=null;this.disposed=null}this.noDisposeOnSet=!!f;this.noUpdateTTL=!!u;this.noDeleteOnFetchRejection=!!w;this.allowStaleOnFetchRejection=!!m;this.allowStaleOnFetchAbort=!!z;this.ignoreFetchAbort=!!L;if(this.maxEntrySize!==0){if(this.maxSize!==0){if(!isPosInt(this.maxSize)){throw new TypeError("maxSize must be a positive integer if specified")}}if(!isPosInt(this.maxEntrySize)){throw new TypeError("maxEntrySize must be a positive integer if specified")}this.initializeSizeTracking()}this.allowStale=!!a||!!b;this.noDeleteOnStaleGet=!!_;this.updateAgeOnGet=!!h;this.updateAgeOnHas=!!r;this.ttlResolution=isPosInt(s)||s===0?s:1;this.ttlAutopurge=!!n;this.ttl=i||x||0;if(this.ttl){if(!isPosInt(this.ttl)){throw new TypeError("ttl must be a positive integer if specified")}this.initializeTTLTracking()}if(this.max===0&&this.ttl===0&&this.maxSize===0){throw new TypeError("At least one of max, maxSize, or ttl is required")}if(!this.ttlAutopurge&&!this.max&&!this.maxSize){const t="LRU_CACHE_UNBOUNDED";if(shouldWarn(t)){o.add(t);const e="TTL caching without ttlAutopurge, max, or maxSize can "+"result in unbounded memory consumption.";emitWarning(e,"UnboundedCacheWarning",t,LRUCache)}}if(b){deprecatedOption("stale","allowStale")}if(x){deprecatedOption("maxAge","ttl")}if(v){deprecatedOption("length","sizeCalculation")}}getRemainingTTL(t){return this.has(t,{updateAgeOnHas:false})?Infinity:0}initializeTTLTracking(){this.ttls=new ZeroArray(this.max);this.starts=new ZeroArray(this.max);this.setItemTTL=(t,i,s=e.now())=>{this.starts[t]=i!==0?s:0;this.ttls[t]=i;if(i!==0&&this.ttlAutopurge){const e=setTimeout((()=>{if(this.isStale(t)){this.delete(this.keyList[t])}}),i+1);if(e.unref){e.unref()}}};this.updateItemAge=t=>{this.starts[t]=this.ttls[t]!==0?e.now():0};this.statusTTL=(e,i)=>{if(e){e.ttl=this.ttls[i];e.start=this.starts[i];e.now=t||getNow();e.remainingTTL=e.now+e.ttl-e.start}};let t=0;const getNow=()=>{const i=e.now();if(this.ttlResolution>0){t=i;const e=setTimeout((()=>t=0),this.ttlResolution);if(e.unref){e.unref()}}return i};this.getRemainingTTL=e=>{const i=this.keyMap.get(e);if(i===undefined){return 0}return this.ttls[i]===0||this.starts[i]===0?Infinity:this.starts[i]+this.ttls[i]-(t||getNow())};this.isStale=e=>this.ttls[e]!==0&&this.starts[e]!==0&&(t||getNow())-this.starts[e]>this.ttls[e]}updateItemAge(t){}statusTTL(t,e){}setItemTTL(t,e,i){}isStale(t){return false}initializeSizeTracking(){this.calculatedSize=0;this.sizes=new ZeroArray(this.max);this.removeItemSize=t=>{this.calculatedSize-=this.sizes[t];this.sizes[t]=0};this.requireSize=(t,e,i,s)=>{if(this.isBackgroundFetch(e)){return 0}if(!isPosInt(i)){if(s){if(typeof s!=="function"){throw new TypeError("sizeCalculation must be a function")}i=s(e,t);if(!isPosInt(i)){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 i};this.addItemSize=(t,e,i)=>{this.sizes[t]=e;if(this.maxSize){const e=this.maxSize-this.sizes[t];while(this.calculatedSize>e){this.evict(true)}}this.calculatedSize+=this.sizes[t];if(i){i.entrySize=e;i.totalCalculatedSize=this.calculatedSize}}}removeItemSize(t){}addItemSize(t,e){}requireSize(t,e,i,s){if(i||s){throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}}*indexes({allowStale:t=this.allowStale}={}){if(this.size){for(let e=this.tail;true;){if(!this.isValidIndex(e)){break}if(t||!this.isStale(e)){yield e}if(e===this.head){break}else{e=this.prev[e]}}}}*rindexes({allowStale:t=this.allowStale}={}){if(this.size){for(let e=this.head;true;){if(!this.isValidIndex(e)){break}if(t||!this.isStale(e)){yield e}if(e===this.tail){break}else{e=this.next[e]}}}}isValidIndex(t){return t!==undefined&&this.keyMap.get(this.keyList[t])===t}*entries(){for(const t of this.indexes()){if(this.valList[t]!==undefined&&this.keyList[t]!==undefined&&!this.isBackgroundFetch(this.valList[t])){yield[this.keyList[t],this.valList[t]]}}}*rentries(){for(const t of this.rindexes()){if(this.valList[t]!==undefined&&this.keyList[t]!==undefined&&!this.isBackgroundFetch(this.valList[t])){yield[this.keyList[t],this.valList[t]]}}}*keys(){for(const t of this.indexes()){if(this.keyList[t]!==undefined&&!this.isBackgroundFetch(this.valList[t])){yield this.keyList[t]}}}*rkeys(){for(const t of this.rindexes()){if(this.keyList[t]!==undefined&&!this.isBackgroundFetch(this.valList[t])){yield this.keyList[t]}}}*values(){for(const t of this.indexes()){if(this.valList[t]!==undefined&&!this.isBackgroundFetch(this.valList[t])){yield this.valList[t]}}}*rvalues(){for(const t of this.rindexes()){if(this.valList[t]!==undefined&&!this.isBackgroundFetch(this.valList[t])){yield this.valList[t]}}}[Symbol.iterator](){return this.entries()}find(t,e){for(const i of this.indexes()){const s=this.valList[i];const n=this.isBackgroundFetch(s)?s.__staleWhileFetching:s;if(n===undefined)continue;if(t(n,this.keyList[i],this)){return this.get(this.keyList[i],e)}}}forEach(t,e=this){for(const i of this.indexes()){const s=this.valList[i];const n=this.isBackgroundFetch(s)?s.__staleWhileFetching:s;if(n===undefined)continue;t.call(e,n,this.keyList[i],this)}}rforEach(t,e=this){for(const i of this.rindexes()){const s=this.valList[i];const n=this.isBackgroundFetch(s)?s.__staleWhileFetching:s;if(n===undefined)continue;t.call(e,n,this.keyList[i],this)}}get prune(){deprecatedMethod("prune","purgeStale");return this.purgeStale}purgeStale(){let t=false;for(const e of this.rindexes({allowStale:true})){if(this.isStale(e)){this.delete(this.keyList[e]);t=true}}return t}dump(){const t=[];for(const i of this.indexes({allowStale:true})){const s=this.keyList[i];const n=this.valList[i];const h=this.isBackgroundFetch(n)?n.__staleWhileFetching:n;if(h===undefined)continue;const r={value:h};if(this.ttls){r.ttl=this.ttls[i];const t=e.now()-this.starts[i];r.start=Math.floor(Date.now()-t)}if(this.sizes){r.size=this.sizes[i]}t.unshift([s,r])}return t}load(t){this.clear();for(const[i,s]of t){if(s.start){const t=Date.now()-s.start;s.start=e.now()-t}this.set(i,s.value,s)}}dispose(t,e,i){}set(t,e,{ttl:i=this.ttl,start:s,noDisposeOnSet:n=this.noDisposeOnSet,size:h=0,sizeCalculation:r=this.sizeCalculation,noUpdateTTL:o=this.noUpdateTTL,status:a}={}){h=this.requireSize(t,e,h,r);if(this.maxEntrySize&&h>this.maxEntrySize){if(a){a.set="miss";a.maxEntrySizeExceeded=true}this.delete(t);return this}let l=this.size===0?undefined:this.keyMap.get(t);if(l===undefined){l=this.newIndex();this.keyList[l]=t;this.valList[l]=e;this.keyMap.set(t,l);this.next[this.tail]=l;this.prev[l]=this.tail;this.tail=l;this.size++;this.addItemSize(l,h,a);if(a){a.set="add"}o=false}else{this.moveToTail(l);const i=this.valList[l];if(e!==i){if(this.isBackgroundFetch(i)){i.__abortController.abort(new Error("replaced"))}else{if(!n){this.dispose(i,t,"set");if(this.disposeAfter){this.disposed.push([i,t,"set"])}}}this.removeItemSize(l);this.valList[l]=e;this.addItemSize(l,h,a);if(a){a.set="replace";const t=i&&this.isBackgroundFetch(i)?i.__staleWhileFetching:i;if(t!==undefined)a.oldValue=t}}else if(a){a.set="update"}}if(i!==0&&this.ttl===0&&!this.ttls){this.initializeTTLTracking()}if(!o){this.setItemTTL(l,i,s)}this.statusTTL(a,l);if(this.disposeAfter){while(this.disposed.length){this.disposeAfter(...this.disposed.shift())}}return this}newIndex(){if(this.size===0){return this.tail}if(this.size===this.max&&this.max!==0){return this.evict(false)}if(this.free.length!==0){return this.free.pop()}return this.initialFill++}pop(){if(this.size){const t=this.valList[this.head];this.evict(true);return t}}evict(t){const e=this.head;const i=this.keyList[e];const s=this.valList[e];if(this.isBackgroundFetch(s)){s.__abortController.abort(new Error("evicted"))}else{this.dispose(s,i,"evict");if(this.disposeAfter){this.disposed.push([s,i,"evict"])}}this.removeItemSize(e);if(t){this.keyList[e]=null;this.valList[e]=null;this.free.push(e)}this.head=this.next[e];this.keyMap.delete(i);this.size--;return e}has(t,{updateAgeOnHas:e=this.updateAgeOnHas,status:i}={}){const s=this.keyMap.get(t);if(s!==undefined){if(!this.isStale(s)){if(e){this.updateItemAge(s)}if(i)i.has="hit";this.statusTTL(i,s);return true}else if(i){i.has="stale";this.statusTTL(i,s)}}else if(i){i.has="miss"}return false}peek(t,{allowStale:e=this.allowStale}={}){const i=this.keyMap.get(t);if(i!==undefined&&(e||!this.isStale(i))){const t=this.valList[i];return this.isBackgroundFetch(t)?t.__staleWhileFetching:t}}backgroundFetch(t,e,i,n){const h=e===undefined?undefined:this.valList[e];if(this.isBackgroundFetch(h)){return h}const r=new s;if(i.signal){i.signal.addEventListener("abort",(()=>r.abort(i.signal.reason)))}const o={signal:r.signal,options:i,context:n};const cb=(s,n=false)=>{const{aborted:h}=r.signal;const l=i.ignoreFetchAbort&&s!==undefined;if(i.status){if(h&&!n){i.status.fetchAborted=true;i.status.fetchError=r.signal.reason;if(l)i.status.fetchAbortIgnored=true}else{i.status.fetchResolved=true}}if(h&&!l&&!n){return fetchFail(r.signal.reason)}if(this.valList[e]===a){if(s===undefined){if(a.__staleWhileFetching){this.valList[e]=a.__staleWhileFetching}else{this.delete(t)}}else{if(i.status)i.status.fetchUpdated=true;this.set(t,s,o.options)}}return s};const eb=t=>{if(i.status){i.status.fetchRejected=true;i.status.fetchError=t}return fetchFail(t)};const fetchFail=s=>{const{aborted:n}=r.signal;const h=n&&i.allowStaleOnFetchAbort;const o=h||i.allowStaleOnFetchRejection;const l=o||i.noDeleteOnFetchRejection;if(this.valList[e]===a){const i=!l||a.__staleWhileFetching===undefined;if(i){this.delete(t)}else if(!h){this.valList[e]=a.__staleWhileFetching}}if(o){if(i.status&&a.__staleWhileFetching!==undefined){i.status.returnedStale=true}return a.__staleWhileFetching}else if(a.__returned===a){throw s}};const pcall=(e,s)=>{this.fetchMethod(t,h,o).then((t=>e(t)),s);r.signal.addEventListener("abort",(()=>{if(!i.ignoreFetchAbort||i.allowStaleOnFetchAbort){e();if(i.allowStaleOnFetchAbort){e=t=>cb(t,true)}}}))};if(i.status)i.status.fetchDispatched=true;const a=new Promise(pcall).then(cb,eb);a.__abortController=r;a.__staleWhileFetching=h;a.__returned=null;if(e===undefined){this.set(t,a,{...o.options,status:undefined});e=this.keyMap.get(t)}else{this.valList[e]=a}return a}isBackgroundFetch(t){return t&&typeof t==="object"&&typeof t.then==="function"&&Object.prototype.hasOwnProperty.call(t,"__staleWhileFetching")&&Object.prototype.hasOwnProperty.call(t,"__returned")&&(t.__returned===t||t.__returned===null)}async fetch(t,{allowStale:e=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:s=this.noDeleteOnStaleGet,ttl:n=this.ttl,noDisposeOnSet:h=this.noDisposeOnSet,size:r=0,sizeCalculation:o=this.sizeCalculation,noUpdateTTL:a=this.noUpdateTTL,noDeleteOnFetchRejection:l=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:c=this.allowStaleOnFetchRejection,ignoreFetchAbort:f=this.ignoreFetchAbort,allowStaleOnFetchAbort:u=this.allowStaleOnFetchAbort,fetchContext:d=this.fetchContext,forceRefresh:p=false,status:g,signal:S}={}){if(!this.fetchMethod){if(g)g.fetch="get";return this.get(t,{allowStale:e,updateAgeOnGet:i,noDeleteOnStaleGet:s,status:g})}const y={allowStale:e,updateAgeOnGet:i,noDeleteOnStaleGet:s,ttl:n,noDisposeOnSet:h,size:r,sizeCalculation:o,noUpdateTTL:a,noDeleteOnFetchRejection:l,allowStaleOnFetchRejection:c,allowStaleOnFetchAbort:u,ignoreFetchAbort:f,status:g,signal:S};let w=this.keyMap.get(t);if(w===undefined){if(g)g.fetch="miss";const e=this.backgroundFetch(t,w,y,d);return e.__returned=e}else{const s=this.valList[w];if(this.isBackgroundFetch(s)){const t=e&&s.__staleWhileFetching!==undefined;if(g){g.fetch="inflight";if(t)g.returnedStale=true}return t?s.__staleWhileFetching:s.__returned=s}const n=this.isStale(w);if(!p&&!n){if(g)g.fetch="hit";this.moveToTail(w);if(i){this.updateItemAge(w)}this.statusTTL(g,w);return s}const h=this.backgroundFetch(t,w,y,d);const r=h.__staleWhileFetching!==undefined;const o=r&&e;if(g){g.fetch=r&&n?"stale":"refresh";if(o&&n)g.returnedStale=true}return o?h.__staleWhileFetching:h.__returned=h}}get(t,{allowStale:e=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:s=this.noDeleteOnStaleGet,status:n}={}){const h=this.keyMap.get(t);if(h!==undefined){const r=this.valList[h];const o=this.isBackgroundFetch(r);this.statusTTL(n,h);if(this.isStale(h)){if(n)n.get="stale";if(!o){if(!s){this.delete(t)}if(n)n.returnedStale=e;return e?r:undefined}else{if(n){n.returnedStale=e&&r.__staleWhileFetching!==undefined}return e?r.__staleWhileFetching:undefined}}else{if(n)n.get="hit";if(o){return r.__staleWhileFetching}this.moveToTail(h);if(i){this.updateItemAge(h)}return r}}else if(n){n.get="miss"}}connect(t,e){this.prev[e]=t;this.next[t]=e}moveToTail(t){if(t!==this.tail){if(t===this.head){this.head=this.next[t]}else{this.connect(this.prev[t],this.next[t])}this.connect(this.tail,t);this.tail=t}}get del(){deprecatedMethod("del","delete");return this.delete}delete(t){let e=false;if(this.size!==0){const i=this.keyMap.get(t);if(i!==undefined){e=true;if(this.size===1){this.clear()}else{this.removeItemSize(i);const e=this.valList[i];if(this.isBackgroundFetch(e)){e.__abortController.abort(new Error("deleted"))}else{this.dispose(e,t,"delete");if(this.disposeAfter){this.disposed.push([e,t,"delete"])}}this.keyMap.delete(t);this.keyList[i]=null;this.valList[i]=null;if(i===this.tail){this.tail=this.prev[i]}else if(i===this.head){this.head=this.next[i]}else{this.next[this.prev[i]]=this.next[i];this.prev[this.next[i]]=this.prev[i]}this.size--;this.free.push(i)}}}if(this.disposed){while(this.disposed.length){this.disposeAfter(...this.disposed.shift())}}return e}clear(){for(const t of this.rindexes({allowStale:true})){const e=this.valList[t];if(this.isBackgroundFetch(e)){e.__abortController.abort(new Error("deleted"))}else{const i=this.keyList[t];this.dispose(e,i,"delete");if(this.disposeAfter){this.disposed.push([e,i,"delete"])}}}this.keyMap.clear();this.valList.fill(null);this.keyList.fill(null);if(this.ttls){this.ttls.fill(0);this.starts.fill(0)}if(this.sizes){this.sizes.fill(0)}this.head=0;this.tail=0;this.initialFill=1;this.free.length=0;this.calculatedSize=0;this.size=0;if(this.disposed){while(this.disposed.length){this.disposeAfter(...this.disposed.shift())}}}get reset(){deprecatedMethod("reset","clear");return this.clear}get length(){deprecatedProperty("length","size");return this.size}static get AbortController(){return s}static get AbortSignal(){return r}}t.exports=LRUCache}};var e={};function __nccwpck_require__(i){var s=e[i];if(s!==undefined){return s.exports}var n=e[i]={exports:{}};var h=true;try{t[i](n,n.exports,__nccwpck_require__);h=false}finally{if(h)delete e[i]}return n.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var i=__nccwpck_require__(78);module.exports=i})();