{"version":3,"sources":["node_modules/@arcgis/core/core/MemCache.js"],"sourcesContent":["/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.28/esri/copyright.txt for details.\n*/\nimport t from \"./PooledArray.js\";\nconst e = -3;\nvar s;\n!function (t) {\n t[t.ALL = 0] = \"ALL\", t[t.SOME = 1] = \"SOME\";\n}(s || (s = {}));\nclass i {\n constructor(t, e, s) {\n this.name = t, this._storage = e, this.id = h++ + \":\", this.size = 0, this.maxSize = 0, this._removeFunc = !1, this._hit = 0, this._miss = 0, this._storage.register(this), s && (this._storage.registerRemoveFunc(this.id, s), this._removeFunc = !0);\n }\n destroy() {\n this._storage.clear(this), this._removeFunc && this._storage.deregisterRemoveFunc(this.id), this._storage.deregister(this), this._storage = null;\n }\n get hitRate() {\n return this._hit / (this._hit + this._miss);\n }\n get sizeAll() {\n return this._storage.size;\n }\n resetHitRate() {\n this._hit = this._miss = 0;\n }\n put(t, e, s, i = 0) {\n this._storage.put(this, t, e, s, i);\n }\n get(t) {\n const e = this._storage.get(this, t);\n return void 0 === e ? ++this._miss : ++this._hit, e;\n }\n peek(t) {\n return this._storage.peek(this, t);\n }\n pop(t) {\n const e = this._storage.pop(this, t);\n return void 0 === e ? ++this._miss : ++this._hit, e;\n }\n updateSize(t, e, s) {\n this._storage.updateSize(this, t, e, s);\n }\n clear() {\n this._storage.clear(this);\n }\n clearAll() {\n this._storage.clearAll();\n }\n get performanceInfo() {\n return this._storage.performanceInfo;\n }\n resetStats() {\n this._storage.resetStats();\n }\n}\nclass r {\n get size() {\n return this._size;\n }\n constructor(e = 10485760) {\n this._maxSize = e, this._db = new Map(), this._size = 0, this._hit = 0, this._miss = 0, this._removeFuncs = new t(), this._users = new t();\n }\n destroy() {\n this.clearAll(), this._removeFuncs.clear(), this._users.clear(), this._db = null;\n }\n register(t) {\n this._users.push(t);\n }\n deregister(t) {\n this._users.removeUnordered(t);\n }\n registerRemoveFunc(t, e) {\n this._removeFuncs.push([t, e]);\n }\n deregisterRemoveFunc(t) {\n this._removeFuncs.filterInPlace(e => e[0] !== t);\n }\n get maxSize() {\n return this._maxSize;\n }\n set maxSize(t) {\n this._maxSize = Math.max(t, 0), this._checkSizeLimits();\n }\n put(t, i, r, h, o) {\n i = t.id + i;\n const n = this._db.get(i);\n if (n && (this._size -= n.size, t.size -= n.size, this._db.delete(i), n.entry !== r && this._notifyRemove(i, n.entry, s.ALL)), h > this._maxSize) return void this._notifyRemove(i, r, s.ALL);\n if (void 0 === r) return void console.warn(\"Refusing to cache undefined entry \");\n if (!h || h < 0) return console.warn(`Refusing to cache entry with size ${h} for key ${i}`), void this._notifyRemove(i, r, s.ALL);\n const _ = 1 + Math.max(o, e) - e;\n this._db.set(i, {\n entry: r,\n size: h,\n lifetime: _,\n lives: _\n }), this._size += h, t.size += h, this._checkSizeLimits();\n }\n updateSize(t, e, i, r) {\n e = t.id + e;\n const h = this._db.get(e);\n if (h && h.entry === i) {\n for (this._size -= h.size, t.size -= h.size; r > this._maxSize;) {\n const t = this._notifyRemove(e, i, s.SOME);\n if (!(null != t && t > 0)) return void this._db.delete(e);\n r = t;\n }\n h.size = r, this._size += r, t.size += r, this._checkSizeLimits();\n }\n }\n pop(t, e) {\n e = t.id + e;\n const s = this._db.get(e);\n if (s) return this._size -= s.size, t.size -= s.size, this._db.delete(e), ++this._hit, s.entry;\n ++this._miss;\n }\n get(t, e) {\n e = t.id + e;\n const s = this._db.get(e);\n if (void 0 !== s) return this._db.delete(e), s.lives = s.lifetime, this._db.set(e, s), ++this._hit, s.entry;\n ++this._miss;\n }\n peek(t, e) {\n const s = this._db.get(t.id + e);\n return s ? ++this._hit : ++this._miss, s?.entry;\n }\n get performanceInfo() {\n const t = {\n Size: Math.round(this._size / 1048576) + \"/\" + Math.round(this._maxSize / 1048576) + \"MB\",\n \"Hit rate\": Math.round(100 * this._getHitRate()) + \"%\",\n Entries: this._db.size.toString()\n },\n s = {},\n i = new Array();\n this._db.forEach((t, e) => {\n const r = t.lifetime;\n i[r] = (i[r] || 0) + t.size, this._users.forAll(i => {\n const {\n id: r,\n name: h\n } = i;\n if (e.startsWith(r)) {\n const e = s[h] || 0;\n s[h] = e + t.size;\n }\n });\n });\n const r = {};\n this._users.forAll(t => {\n const e = t.name;\n if (\"hitRate\" in t && \"number\" == typeof t.hitRate && !isNaN(t.hitRate) && t.hitRate > 0) {\n const i = s[e] || 0;\n s[e] = i, r[e] = Math.round(100 * t.hitRate) + \"%\";\n } else r[e] = \"0%\";\n });\n const h = Object.keys(s);\n h.sort((t, e) => s[e] - s[t]), h.forEach(e => t[e] = Math.round(s[e] / 2 ** 20) + \"MB / \" + r[e]);\n for (let o = i.length - 1; o >= 0; --o) {\n const s = i[o];\n s && (t[\"Priority \" + (o + e - 1)] = Math.round(s / this._size * 100) + \"%\");\n }\n return t;\n }\n resetStats() {\n this._hit = this._miss = 0, this._users.forAll(t => t.resetHitRate());\n }\n clear(t) {\n const e = t.id;\n this._db.forEach((t, i) => {\n i.startsWith(e) && (this._size -= t.size, this._db.delete(i), this._notifyRemove(i, t.entry, s.ALL));\n }), t.size = 0;\n }\n clearAll() {\n this._db.forEach((t, e) => this._notifyRemove(e, t.entry, s.ALL)), this._users.forEach(t => t.size = 0), this._size = 0, this._db.clear();\n }\n _getHitRate() {\n return this._hit / (this._hit + this._miss);\n }\n _notifyRemove(t, e, s) {\n let i;\n return this._removeFuncs.some(r => {\n if (t.startsWith(r[0])) {\n const t = r[1](e, s);\n return \"number\" == typeof t && (i = t), !0;\n }\n return !1;\n }), i;\n }\n _checkSizeLimits() {\n if (this._size > this._maxSize) for (const [t, e] of this._db) if (this._purgeItem(t, e), this._size <= .9 * this.maxSize) return;\n this._users.forEach(t => {\n if (t.maxSize > 0 && t.size > t.maxSize) for (const [e, s] of this._db) if (e.startsWith(t.id) && (this._purgeItem(e, s, t), t.size <= .9 * t.maxSize)) return;\n });\n }\n _purgeItem(t, e, i = this._users.find(e => t.startsWith(e.id))) {\n if (this._db.delete(t), e.lives <= 1) {\n this._size -= e.size, i && (i.size -= e.size);\n const r = this._notifyRemove(t, e.entry, s.SOME);\n null != r && r > 0 && (this._size += r, i && (i.size += r), e.lives = e.lifetime, e.size = r, this._db.set(t, e));\n } else --e.lives, this._db.set(t, e);\n }\n}\nlet h = 0;\nexport { i as MemCache, r as MemCacheStorage, s as RemoveMode, e as minPriority };"],"mappings":"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","names":["e","s","i","r","h","t"],"x_google_ignoreList":[0]}