@drincs/pixi-vn 1.6.0 → 1.6.2
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/canvas.cjs +2 -3
- package/dist/canvas.mjs +2 -3
- package/dist/characters.cjs +1 -2
- package/dist/characters.mjs +1 -2
- package/dist/{chunk-FIGGUFAM.mjs → chunk-D45QSSXG.mjs} +1 -2
- package/dist/{chunk-TKYEUKV4.mjs → chunk-HACUDOYJ.mjs} +1 -2
- package/dist/{chunk-UIXKMF72.mjs → chunk-IWAXXFXE.mjs} +1 -2
- package/dist/{chunk-2ZJFDDPE.mjs → chunk-L4IHQ3VT.mjs} +1 -2
- package/dist/{chunk-JJFD2BVW.mjs → chunk-TTRUPDAB.mjs} +1 -2
- package/dist/chunk-XSN6P5JL.mjs +0 -0
- package/dist/{chunk-EC6URLQW.mjs → chunk-ZW3MIPMS.mjs} +1 -2
- package/dist/history.cjs +1 -2
- package/dist/history.mjs +1 -2
- package/dist/index.cjs +2 -3
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.mjs +2 -3
- package/dist/motion.cjs +1 -2
- package/dist/motion.mjs +1 -2
- package/dist/narration.cjs +1 -2
- package/dist/narration.mjs +2 -3
- package/dist/sound.cjs +1 -2
- package/dist/sound.d.cts +1 -1
- package/dist/sound.d.ts +1 -1
- package/dist/sound.mjs +1 -2
- package/dist/storage.cjs +1 -2
- package/dist/storage.mjs +1 -2
- package/dist/vite-listener.cjs +1 -2
- package/dist/vite-listener.mjs +1 -2
- package/dist/vite.cjs +1 -2
- package/dist/vite.mjs +1 -2
- package/package.json +1 -1
- package/dist/canvas.cjs.map +0 -1
- package/dist/canvas.mjs.map +0 -1
- package/dist/characters.cjs.map +0 -1
- package/dist/characters.mjs.map +0 -1
- package/dist/chunk-2ZJFDDPE.mjs.map +0 -1
- package/dist/chunk-52EK6LYW.mjs +0 -2
- package/dist/chunk-52EK6LYW.mjs.map +0 -1
- package/dist/chunk-EC6URLQW.mjs.map +0 -1
- package/dist/chunk-FIGGUFAM.mjs.map +0 -1
- package/dist/chunk-JJFD2BVW.mjs.map +0 -1
- package/dist/chunk-TKYEUKV4.mjs.map +0 -1
- package/dist/chunk-UIXKMF72.mjs.map +0 -1
- package/dist/history.cjs.map +0 -1
- package/dist/history.mjs.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/motion.cjs.map +0 -1
- package/dist/motion.mjs.map +0 -1
- package/dist/narration.cjs.map +0 -1
- package/dist/narration.mjs.map +0 -1
- package/dist/sound.cjs.map +0 -1
- package/dist/sound.mjs.map +0 -1
- package/dist/storage.cjs.map +0 -1
- package/dist/storage.mjs.map +0 -1
- package/dist/vite-listener.cjs.map +0 -1
- package/dist/vite-listener.mjs.map +0 -1
- package/dist/vite.cjs.map +0 -1
- package/dist/vite.mjs.map +0 -1
package/dist/canvas.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../node_modules/crypto-js/core.js","../node_modules/crypto-js/sha1.js","../node_modules/mime-db/db.json","../node_modules/mime-db/index.js","../src/constants.ts","../src/utils/log-utility.ts","../src/utils/export-utility.ts","../src/canvas/CanvasManagerStatic.ts","../src/utils/time-utility.ts","../src/canvas/pixi-devtools/additionalPositionsProperties.ts","../node_modules/lru-cache/src/index.ts","../src/classes/CachedMap.ts","../src/canvas/decorators/event-decorator.ts","../src/canvas/components/ListenerExtension.ts","../src/canvas/decorators/canvas-element-decorator.ts","../src/canvas/functions/canvas-import-utility.ts","../src/canvas/functions/canvas-memory-utility.ts","../src/canvas/tickers/decorators/RegisteredTickers.ts","../src/canvas/tickers/types/AliasToRemoveAfterType.ts","../src/canvas/CanvasManager.ts","../src/canvas/CanvasUtilitiesStatic.ts","../src/canvas/functions/texture-utility.ts","../src/canvas/functions/canvas-property-utility.ts","../src/canvas/components/AdditionalPositionsExtension.ts","../src/canvas/components/Sprite.ts","../src/canvas/components/ImageSprite.ts","../src/canvas/components/VideoSprite.ts","../src/canvas/functions/canvas-utility.ts","../src/canvas/components/Container.ts","../src/canvas/components/ImageContainer.ts","../src/canvas/classes/CanvasBaseItem.ts","../src/canvas/components/Text.ts","../src/canvas/functions/canvas-effect.ts","../src/canvas/functions/image-container-utility.ts","../src/canvas/functions/image-utility.ts","../src/canvas/functions/video-utility.ts","../src/canvas/functions/canvas-transition.ts","../src/canvas/components/ErrorContainer.ts","../src/canvas/functions/error-handler.ts","../src/canvas/functions/text-utility.ts","../src/canvas/tickers/classes/TickerBase.ts","../src/canvas/index.ts"],"names":["require_core","__commonJSMin","exports","module","root","factory","CryptoJS","Math","undefined","crypto","__require","cryptoSecureRandomInt","create","F","obj","subtype","C","C_lib","Base","overrides","instance","properties","propertyName","WordArray","words","sigBytes","encoder","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","i","thatByte","j","clone","nBytes","C_enc","hexChars","bite","hexStr","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","Utf8","utf8Str","BufferedBlockAlgorithm","data","doFlush","processedWords","dataWords","dataSigBytes","blockSize","blockSizeBytes","nBlocksReady","nWordsReady","nBytesReady","offset","cfg","messageUpdate","hash","hasher","message","key","C_algo","require_sha1","Hasher","W","SHA1","M","H","a","b","c","d","e","n","t","nBitsTotal","nBitsLeft","require_db","require_mime_db","Repeat","CANVAS_APP_GAME_LAYER_ALIAS","CANVAS_CONTAINER_ID","CANVAS_IMAGE_CONTAINER_ID","CANVAS_IMAGE_ID","CANVAS_SPRITE_ID","CANVAS_TEXT_ID","CANVAS_VIDEO_ID","logger","optionalParams","createExportableElement","element","elementString","PixiError","import_sha1","throttle","func","limit","lastCall","args","now","additionalPositionsProperties","container","prop","value","additionalPositionsProperties_default","_CanvasManagerStatic","layer","PIXI","options","devtoolsOptions","id","width","height","resolution","autoDensity","resizeMode","rest","app","extensions","devtoolsOptionsRest","initDevtools","throttledResize","style","div","res","canvasWidth","canvasHeight","containerWidth","containerHeight","rect","scale","screenWidth","screenHeight","horizontalMargin","verticalMargin","promises","child","item","_","info","sha1","aliases","ticker","timeout","canBeDeletedBeforeEnd","alias","checkCanBeDeletedBeforeEnd","tickerTimeout","aliasesWithoutAliasToRemove","__publicField","CanvasManagerStatic","defaultPerf","warned","PROCESS","emitWarning","msg","type","code","fn","AC","AS","warnACPolyfill","reason","printACPolyfillWarning","shouldWarn","isPosInt","getUintArray","max","ZeroArray","size","_a","_o","Stack","HeapCls","_Stack","#constructing","s","__privateAdd","_b","_c","_w","_C","_S","_L","_I","_m","_n","__","_s","_i","_t","_u","_l","_h","_r","_y","_A","_d","_g","_T","_v","_f","_U","_c_instances","j_fn","_R","_z","_N","_p","B_fn","_W","_M","_P","F_fn","O_fn","H_fn","x_fn","G_fn","e_fn","k_fn","D_fn","E_fn","V_fn","LRUCache","#max","#maxSize","#dispose","#onInsert","#disposeAfter","#fetchMethod","#memoMethod","#perf","#size","#calculatedSize","#keyMap","#keyList","#valList","#next","#prev","#head","#tail","#free","#disposed","#sizes","#starts","#ttls","#autopurgeTimers","#hasDispose","#hasFetchMethod","#hasDisposeAfter","#hasOnInsert","#updateItemAge","#statusTTL","#setItemTTL","#isStale","#removeItemSize","#addItemSize","_st","#requireSize","_k","sizeCalculation","ttl","ttlResolution","ttlAutopurge","updateAgeOnGet","updateAgeOnHas","allowStale","dispose","onInsert","disposeAfter","noDisposeOnSet","noUpdateTTL","maxSize","maxEntrySize","fetchMethod","memoMethod","noDeleteOnFetchRejection","noDeleteOnStaleGet","allowStaleOnFetchRejection","allowStaleOnFetchAbort","ignoreFetchAbort","perf","__privateSet","UintArray","__privateGet","__privateMethod","#initializeSizeTracking","#initializeTTLTracking","_LRUCache","p","#isBackgroundFetch","k","index","context","#backgroundFetch","#moveToTail","#indexes","#rindexes","getOptions","v","thisp","deleted","#delete","entry","start","remain","arr","age","setOptions","status","#evict","__privateWrapper","oldVal","oldValue","dt","task","val","hasOptions","peekOptions","fetchOptions","forceRefresh","signal","stale","isStale","staleVal","memoOptions","vv","fetching","#clear","ttls","starts","purgeTimers","setPurgetTimer","cachedNow","getNow","sizes","#isValidIndex","free","head","ac","fetchOpts","cb","updateCache","aborted","ignoreAbort","proceed","fetchFail","bf","vl","eb","er","allowStaleAborted","noDelete","pcall","rej","fmp","#connect","pi","ni","CachedMap","L","cachedValue","SERIALIZABLE_EVENT","registeredEvents","eventDecorator","name","target","propertyKey","descriptor","RegisteredEvents","add","get","eventType","values","has","keys","event_decorator_default","setListenerMemory","memory","event","getListenerMemory","addListenerHandler","handlerId","registeredCanvasComponent","registeredCanvasInstanceGetters","registeredCanvasComponentCopyProperties","canvasComponentDecorator","RegisteredCanvasComponents","setMemoryContainer","ignoreScale","end","getInstance","canvasClass","copyProperty","component","canvasId","source","canvas_element_decorator_default","importCanvasElement","exportCanvasElement","canvasComponent","getMemoryText","getMemorySprite","getMemoryContainer","extractCommonMemoryProperties","parent","getTextureMemory","texture","pixivnId","getPixivnId","elements","baseMemory","textureData","getTextStyle","defaultId","gradientToOptions","getFill","convertColor","color","getStroke","registeredTickers","tickerDecorator","RegisteredTickers","tickerId","tickerType","RegisteredTickers_default","aliasToRemoveAfter","CanvasManager","oldAlias","newAlias","defaultPropertiesWhichCanBeIgnored","ignoreProperties","defaultProperties","propertiesToIgnore","clonedOldAlias","property","oldCanvasElement","ignoreOldStyle","zIndex","ignoreTickers","pixiElement","canvasElementAlias","tickerName","tickerHistory","steps","currentStepNumber","step","tickerTimeoutInfo","stopTicker","tickerAliasToResume","tickerIdToResume","ignoreTickerSteps","filters","ids","canvasAlias","tickerIdsExcluded","mode","tickers","components","keyframes","priority","GameUnifier","label","currentElements","elementAliasesOrder","oldId","tickersSteps","tickersToCompleteOnStepEnd","tikersIds","stepAlias","_CanvasUtilitiesStatic","CanvasUtilitiesStatic","getTexture","textureAlias","CanvasPropertyUtility","calculatePositionByAlign","align","pivot","negativeScale","anchor","calculateAlignByPosition","position","calculatePositionByPercentagePosition","percentage","calculatePercentagePositionByPosition","getSuperPoint","point","angle","angleRad","cos","sin","x","y","getPointBySuperPoint","superPoint","getSuperWidth","canvasElement","getSuperHeight","analizePositionsExtensionProps","props","Sprite","_Sprite","percentagePosition","setMemorySprite","skipCache","sprite","mySprite","superPivot","superScale","_value","ignoreTexture","textureUrl","half","ImageSprite","_ImageSprite","setMemoryImageSprite","VideoSprite","_VideoSprite","loop","paused","currentTime","setMemoryVideoSprite","duration","import_mime_db","checkIfVideo","cachedTexture","isVideoPath","path","ext","mime","db","Container","PixiContainer","ImageContainer","textureAliases","setMemoryImageContainer","CanvasBaseItem","_options","Text","setMemoryText","shakeEffect","elemet","canvas","shakeType","maxShockSize","shocksNumberTemp","shocksNumber","upshocksNumber","downshocksNumber","array","shockSize","lastItemIsLeft","addImageCointainer","imageUrls","oldMemory","showImageContainer","addImage","imageUrl","showImage","addVideo","videoUrl","showVideo","mapDestination","destination","addComponent","showWithDissolve","forceCompleteBeforeNext","completeOnContinue","oldComponentAlias","oldComponent","removeWithDissolve","idShow","showWithFade","idHide","removeWithFade","moveIn","direction","removeOldComponentWithMoveOut","moveOut","zoomIn","zoomOut","pushIn","pushOut","ErrorContainer","_memory","drawCanvasErrorHandler","error","placeholder","text","ppparent","showText","TickerBase","canvasElementAliases","fnValue","Assets","Color","Rectangle","TextStyle","Texture","UPDATE_PRIORITY","tikers","stepAliases","p1","p2"],"mappings":"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","file":"canvas.cjs","sourcesContent":[";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));","{\n \"application/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"application/3gpdash-qoe-report+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/3gpp-ims+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphalforms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/a2l\": {\n \"source\": \"iana\"\n },\n \"application/ace+cbor\": {\n \"source\": \"iana\"\n },\n \"application/ace+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ace-groupcomm+cbor\": {\n \"source\": \"iana\"\n },\n \"application/ace-trl+cbor\": {\n \"source\": \"iana\"\n },\n \"application/activemessage\": {\n \"source\": \"iana\"\n },\n \"application/activity+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/aif+cbor\": {\n \"source\": \"iana\"\n },\n \"application/aif+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-cdni+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-cdnifilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-directory+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcost+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcostparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointprop+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointpropparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-error+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-propmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-propmapparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-tips+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-tipsparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamcontrol+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/aml\": {\n \"source\": \"iana\"\n },\n \"application/andrew-inset\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez\"]\n },\n \"application/appinstaller\": {\n \"compressible\": false,\n \"extensions\": [\"appinstaller\"]\n },\n \"application/applefile\": {\n \"source\": \"iana\"\n },\n \"application/applixware\": {\n \"source\": \"apache\",\n \"extensions\": [\"aw\"]\n },\n \"application/appx\": {\n \"compressible\": false,\n \"extensions\": [\"appx\"]\n },\n \"application/appxbundle\": {\n \"compressible\": false,\n \"extensions\": [\"appxbundle\"]\n },\n \"application/at+jwt\": {\n \"source\": \"iana\"\n },\n \"application/atf\": {\n \"source\": \"iana\"\n },\n \"application/atfx\": {\n \"source\": \"iana\"\n },\n \"application/atom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atom\"]\n },\n \"application/atomcat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomcat\"]\n },\n \"application/atomdeleted+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomdeleted\"]\n },\n \"application/atomicmail\": {\n \"source\": \"iana\"\n },\n \"application/atomsvc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomsvc\"]\n },\n \"application/atsc-dwd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dwd\"]\n },\n \"application/atsc-dynamic-event-message\": {\n \"source\": \"iana\"\n },\n \"application/atsc-held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"held\"]\n },\n \"application/atsc-rdt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/atsc-rsat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsat\"]\n },\n \"application/atxml\": {\n \"source\": \"iana\"\n },\n \"application/auth-policy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/automationml-aml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"aml\"]\n },\n \"application/automationml-amlx+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"amlx\"]\n },\n \"application/bacnet-xdd+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/batch-smtp\": {\n \"source\": \"iana\"\n },\n \"application/bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/beep+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/bufr\": {\n \"source\": \"iana\"\n },\n \"application/c2pa\": {\n \"source\": \"iana\"\n },\n \"application/calendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/calendar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xcs\"]\n },\n \"application/call-completion\": {\n \"source\": \"iana\"\n },\n \"application/cals-1840\": {\n \"source\": \"iana\"\n },\n \"application/captive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cbor\": {\n \"source\": \"iana\"\n },\n \"application/cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/cccex\": {\n \"source\": \"iana\"\n },\n \"application/ccmp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ccxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ccxml\"]\n },\n \"application/cda+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/cdfx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdfx\"]\n },\n \"application/cdmi-capability\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmia\"]\n },\n \"application/cdmi-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmic\"]\n },\n \"application/cdmi-domain\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmid\"]\n },\n \"application/cdmi-object\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmio\"]\n },\n \"application/cdmi-queue\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmiq\"]\n },\n \"application/cdni\": {\n \"source\": \"iana\"\n },\n \"application/ce+cbor\": {\n \"source\": \"iana\"\n },\n \"application/cea\": {\n \"source\": \"iana\"\n },\n \"application/cea-2018+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cellml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cfw\": {\n \"source\": \"iana\"\n },\n \"application/cid-edhoc+cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/city+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/city+json-seq\": {\n \"source\": \"iana\"\n },\n \"application/clr\": {\n \"source\": \"iana\"\n },\n \"application/clue+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/clue_info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cms\": {\n \"source\": \"iana\"\n },\n \"application/cnrp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-eap\": {\n \"source\": \"iana\"\n },\n \"application/coap-group+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-payload\": {\n \"source\": \"iana\"\n },\n \"application/commonground\": {\n \"source\": \"iana\"\n },\n \"application/concise-problem-details+cbor\": {\n \"source\": \"iana\"\n },\n \"application/conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cose\": {\n \"source\": \"iana\"\n },\n \"application/cose-key\": {\n \"source\": \"iana\"\n },\n \"application/cose-key-set\": {\n \"source\": \"iana\"\n },\n \"application/cose-x509\": {\n \"source\": \"iana\"\n },\n \"application/cpl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cpl\"]\n },\n \"application/csrattrs\": {\n \"source\": \"iana\"\n },\n \"application/csta+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cstadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/csvm+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cu-seeme\": {\n \"source\": \"apache\",\n \"extensions\": [\"cu\"]\n },\n \"application/cwl\": {\n \"source\": \"iana\",\n \"extensions\": [\"cwl\"]\n },\n \"application/cwl+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cwl+yaml\": {\n \"source\": \"iana\"\n },\n \"application/cwt\": {\n \"source\": \"iana\"\n },\n \"application/cybercash\": {\n \"source\": \"iana\"\n },\n \"application/dart\": {\n \"compressible\": true\n },\n \"application/dash+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpd\"]\n },\n \"application/dash-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpp\"]\n },\n \"application/dashdelta\": {\n \"source\": \"iana\"\n },\n \"application/davmount+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"davmount\"]\n },\n \"application/dca-rft\": {\n \"source\": \"iana\"\n },\n \"application/dcd\": {\n \"source\": \"iana\"\n },\n \"application/dec-dx\": {\n \"source\": \"iana\"\n },\n \"application/dialog-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom\": {\n \"source\": \"iana\",\n \"extensions\": [\"dcm\"]\n },\n \"application/dicom+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dii\": {\n \"source\": \"iana\"\n },\n \"application/dit\": {\n \"source\": \"iana\"\n },\n \"application/dns\": {\n \"source\": \"iana\"\n },\n \"application/dns+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dns-message\": {\n \"source\": \"iana\"\n },\n \"application/docbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dbk\"]\n },\n \"application/dots+cbor\": {\n \"source\": \"iana\"\n },\n \"application/dpop+jwt\": {\n \"source\": \"iana\"\n },\n \"application/dskpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dssc+der\": {\n \"source\": \"iana\",\n \"extensions\": [\"dssc\"]\n },\n \"application/dssc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdssc\"]\n },\n \"application/dvcs\": {\n \"source\": \"iana\"\n },\n \"application/eat+cwt\": {\n \"source\": \"iana\"\n },\n \"application/eat+jwt\": {\n \"source\": \"iana\"\n },\n \"application/eat-bun+cbor\": {\n \"source\": \"iana\"\n },\n \"application/eat-bun+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/eat-ucs+cbor\": {\n \"source\": \"iana\"\n },\n \"application/eat-ucs+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ecmascript\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ecma\"]\n },\n \"application/edhoc+cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/edi-consent\": {\n \"source\": \"iana\"\n },\n \"application/edi-x12\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/edifact\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/efi\": {\n \"source\": \"iana\"\n },\n \"application/elm+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/elm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.cap+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/emergencycalldata.comment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.deviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.ecall.msd\": {\n \"source\": \"iana\"\n },\n \"application/emergencycalldata.legacyesn+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.providerinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.serviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.subscriberinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.veds+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emma+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emma\"]\n },\n \"application/emotionml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emotionml\"]\n },\n \"application/encaprtp\": {\n \"source\": \"iana\"\n },\n \"application/entity-statement+jwt\": {\n \"source\": \"iana\"\n },\n \"application/epp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/epub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"epub\"]\n },\n \"application/eshop\": {\n \"source\": \"iana\"\n },\n \"application/exi\": {\n \"source\": \"iana\",\n \"extensions\": [\"exi\"]\n },\n \"application/expect-ct-report+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/express\": {\n \"source\": \"iana\",\n \"extensions\": [\"exp\"]\n },\n \"application/fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/fastsoap\": {\n \"source\": \"iana\"\n },\n \"application/fdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"fdf\"]\n },\n \"application/fdt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fdt\"]\n },\n \"application/fhir+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fhir+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fido.trusted-apps+json\": {\n \"compressible\": true\n },\n \"application/fits\": {\n \"source\": \"iana\"\n },\n \"application/flexfec\": {\n \"source\": \"iana\"\n },\n \"application/font-sfnt\": {\n \"source\": \"iana\"\n },\n \"application/font-tdpfr\": {\n \"source\": \"iana\",\n \"extensions\": [\"pfr\"]\n },\n \"application/font-woff\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/framework-attributes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/geo+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"geojson\"]\n },\n \"application/geo+json-seq\": {\n \"source\": \"iana\"\n },\n \"application/geopackage+sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/geopose+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/geoxacml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/geoxacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/gltf-buffer\": {\n \"source\": \"iana\"\n },\n \"application/gml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gml\"]\n },\n \"application/gnap-binding-jws\": {\n \"source\": \"iana\"\n },\n \"application/gnap-binding-jwsd\": {\n \"source\": \"iana\"\n },\n \"application/gnap-binding-rotation-jws\": {\n \"source\": \"iana\"\n },\n \"application/gnap-binding-rotation-jwsd\": {\n \"source\": \"iana\"\n },\n \"application/gpx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"gpx\"]\n },\n \"application/grib\": {\n \"source\": \"iana\"\n },\n \"application/gxf\": {\n \"source\": \"apache\",\n \"extensions\": [\"gxf\"]\n },\n \"application/gzip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gz\"]\n },\n \"application/h224\": {\n \"source\": \"iana\"\n },\n \"application/held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/hjson\": {\n \"extensions\": [\"hjson\"]\n },\n \"application/hl7v2+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/http\": {\n \"source\": \"iana\"\n },\n \"application/hyperstudio\": {\n \"source\": \"iana\",\n \"extensions\": [\"stk\"]\n },\n \"application/ibe-key-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pkg-reply+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pp-data\": {\n \"source\": \"iana\"\n },\n \"application/iges\": {\n \"source\": \"iana\"\n },\n \"application/im-iscomposing+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/index\": {\n \"source\": \"iana\"\n },\n \"application/index.cmd\": {\n \"source\": \"iana\"\n },\n \"application/index.obj\": {\n \"source\": \"iana\"\n },\n \"application/index.response\": {\n \"source\": \"iana\"\n },\n \"application/index.vnd\": {\n \"source\": \"iana\"\n },\n \"application/inkml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ink\",\"inkml\"]\n },\n \"application/iotp\": {\n \"source\": \"iana\"\n },\n \"application/ipfix\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipfix\"]\n },\n \"application/ipp\": {\n \"source\": \"iana\"\n },\n \"application/isup\": {\n \"source\": \"iana\"\n },\n \"application/its+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"its\"]\n },\n \"application/java-archive\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jar\",\"war\",\"ear\"]\n },\n \"application/java-serialized-object\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"ser\"]\n },\n \"application/java-vm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"class\"]\n },\n \"application/javascript\": {\n \"source\": \"apache\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"js\"]\n },\n \"application/jf2feed+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jose\": {\n \"source\": \"iana\"\n },\n \"application/jose+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jrd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jscalendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jscontact+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"json\",\"map\"]\n },\n \"application/json-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json-seq\": {\n \"source\": \"iana\"\n },\n \"application/json5\": {\n \"extensions\": [\"json5\"]\n },\n \"application/jsonml+json\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"jsonml\"]\n },\n \"application/jsonpath\": {\n \"source\": \"iana\"\n },\n \"application/jwk+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwk-set+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwk-set+jwt\": {\n \"source\": \"iana\"\n },\n \"application/jwt\": {\n \"source\": \"iana\"\n },\n \"application/kpml-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/kpml-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ld+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"jsonld\"]\n },\n \"application/lgr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lgr\"]\n },\n \"application/link-format\": {\n \"source\": \"iana\"\n },\n \"application/linkset\": {\n \"source\": \"iana\"\n },\n \"application/linkset+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/load-control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/logout+jwt\": {\n \"source\": \"iana\"\n },\n \"application/lost+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lostxml\"]\n },\n \"application/lostsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/lpf+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/lxf\": {\n \"source\": \"iana\"\n },\n \"application/mac-binhex40\": {\n \"source\": \"iana\",\n \"extensions\": [\"hqx\"]\n },\n \"application/mac-compactpro\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpt\"]\n },\n \"application/macwriteii\": {\n \"source\": \"iana\"\n },\n \"application/mads+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mads\"]\n },\n \"application/manifest+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"webmanifest\"]\n },\n \"application/marc\": {\n \"source\": \"iana\",\n \"extensions\": [\"mrc\"]\n },\n \"application/marcxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mrcx\"]\n },\n \"application/mathematica\": {\n \"source\": \"iana\",\n \"extensions\": [\"ma\",\"nb\",\"mb\"]\n },\n \"application/mathml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mathml\"]\n },\n \"application/mathml-content+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mathml-presentation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-associated-procedure-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-deregister+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-envelope+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-protection-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-reception-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-schedule+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-user-service-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbox\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbox\"]\n },\n \"application/media-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpf\"]\n },\n \"application/media_control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mediaservercontrol+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mscml\"]\n },\n \"application/merge-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/metalink+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"metalink\"]\n },\n \"application/metalink4+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"meta4\"]\n },\n \"application/mets+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mets\"]\n },\n \"application/mf4\": {\n \"source\": \"iana\"\n },\n \"application/mikey\": {\n \"source\": \"iana\"\n },\n \"application/mipc\": {\n \"source\": \"iana\"\n },\n \"application/missing-blocks+cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/mmt-aei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"maei\"]\n },\n \"application/mmt-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musd\"]\n },\n \"application/mods+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mods\"]\n },\n \"application/moss-keys\": {\n \"source\": \"iana\"\n },\n \"application/moss-signature\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-data\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-request\": {\n \"source\": \"iana\"\n },\n \"application/mp21\": {\n \"source\": \"iana\",\n \"extensions\": [\"m21\",\"mp21\"]\n },\n \"application/mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"mp4\",\"mpg4\",\"mp4s\",\"m4p\"]\n },\n \"application/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod-xmt\": {\n \"source\": \"iana\"\n },\n \"application/mrb-consumer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mrb-publish+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/msc-ivr+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msc-mixer+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msix\": {\n \"compressible\": false,\n \"extensions\": [\"msix\"]\n },\n \"application/msixbundle\": {\n \"compressible\": false,\n \"extensions\": [\"msixbundle\"]\n },\n \"application/msword\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"doc\",\"dot\"]\n },\n \"application/mud+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/multipart-core\": {\n \"source\": \"iana\"\n },\n \"application/mxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxf\"]\n },\n \"application/n-quads\": {\n \"source\": \"iana\",\n \"extensions\": [\"nq\"]\n },\n \"application/n-triples\": {\n \"source\": \"iana\",\n \"extensions\": [\"nt\"]\n },\n \"application/nasdata\": {\n \"source\": \"iana\"\n },\n \"application/news-checkgroups\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-groupinfo\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-transmission\": {\n \"source\": \"iana\"\n },\n \"application/nlsml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/node\": {\n \"source\": \"iana\",\n \"extensions\": [\"cjs\"]\n },\n \"application/nss\": {\n \"source\": \"iana\"\n },\n \"application/oauth-authz-req+jwt\": {\n \"source\": \"iana\"\n },\n \"application/oblivious-dns-message\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-request\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-response\": {\n \"source\": \"iana\"\n },\n \"application/octet-stream\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"]\n },\n \"application/oda\": {\n \"source\": \"iana\",\n \"extensions\": [\"oda\"]\n },\n \"application/odm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/odx\": {\n \"source\": \"iana\"\n },\n \"application/oebps-package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"opf\"]\n },\n \"application/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogx\"]\n },\n \"application/ohttp-keys\": {\n \"source\": \"iana\"\n },\n \"application/omdoc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"omdoc\"]\n },\n \"application/onenote\": {\n \"source\": \"apache\",\n \"extensions\": [\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\",\"one\",\"onea\"]\n },\n \"application/opc-nodeset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/oscore\": {\n \"source\": \"iana\"\n },\n \"application/oxps\": {\n \"source\": \"iana\",\n \"extensions\": [\"oxps\"]\n },\n \"application/p21\": {\n \"source\": \"iana\"\n },\n \"application/p21+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/p2p-overlay+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"relo\"]\n },\n \"application/parityfec\": {\n \"source\": \"iana\"\n },\n \"application/passport\": {\n \"source\": \"iana\"\n },\n \"application/patch-ops-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xer\"]\n },\n \"application/pdf\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pdf\"]\n },\n \"application/pdx\": {\n \"source\": \"iana\"\n },\n \"application/pem-certificate-chain\": {\n \"source\": \"iana\"\n },\n \"application/pgp-encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pgp\"]\n },\n \"application/pgp-keys\": {\n \"source\": \"iana\",\n \"extensions\": [\"asc\"]\n },\n \"application/pgp-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"sig\",\"asc\"]\n },\n \"application/pics-rules\": {\n \"source\": \"apache\",\n \"extensions\": [\"prf\"]\n },\n \"application/pidf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pidf-diff+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pkcs10\": {\n \"source\": \"iana\",\n \"extensions\": [\"p10\"]\n },\n \"application/pkcs12\": {\n \"source\": \"iana\"\n },\n \"application/pkcs7-mime\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7m\",\"p7c\"]\n },\n \"application/pkcs7-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7s\"]\n },\n \"application/pkcs8\": {\n \"source\": \"iana\",\n \"extensions\": [\"p8\"]\n },\n \"application/pkcs8-encrypted\": {\n \"source\": \"iana\"\n },\n \"application/pkix-attr-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"ac\"]\n },\n \"application/pkix-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"cer\"]\n },\n \"application/pkix-crl\": {\n \"source\": \"iana\",\n \"extensions\": [\"crl\"]\n },\n \"application/pkix-pkipath\": {\n \"source\": \"iana\",\n \"extensions\": [\"pkipath\"]\n },\n \"application/pkixcmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"pki\"]\n },\n \"application/pls+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pls\"]\n },\n \"application/poc-settings+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/postscript\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ai\",\"eps\",\"ps\"]\n },\n \"application/ppsp-tracker+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/private-token-issuer-directory\": {\n \"source\": \"iana\"\n },\n \"application/private-token-request\": {\n \"source\": \"iana\"\n },\n \"application/private-token-response\": {\n \"source\": \"iana\"\n },\n \"application/problem+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/problem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/provenance+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"provx\"]\n },\n \"application/provided-claims+jwt\": {\n \"source\": \"iana\"\n },\n \"application/prs.alvestrand.titrax-sheet\": {\n \"source\": \"iana\"\n },\n \"application/prs.cww\": {\n \"source\": \"iana\",\n \"extensions\": [\"cww\"]\n },\n \"application/prs.cyn\": {\n \"source\": \"iana\",\n \"charset\": \"7-BIT\"\n },\n \"application/prs.hpub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/prs.implied-document+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/prs.implied-executable\": {\n \"source\": \"iana\"\n },\n \"application/prs.implied-object+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/prs.implied-object+json-seq\": {\n \"source\": \"iana\"\n },\n \"application/prs.implied-object+yaml\": {\n \"source\": \"iana\"\n },\n \"application/prs.implied-structure\": {\n \"source\": \"iana\"\n },\n \"application/prs.mayfile\": {\n \"source\": \"iana\"\n },\n \"application/prs.nprend\": {\n \"source\": \"iana\"\n },\n \"application/prs.plucker\": {\n \"source\": \"iana\"\n },\n \"application/prs.rdf-xml-crypt\": {\n \"source\": \"iana\"\n },\n \"application/prs.vcfbzip2\": {\n \"source\": \"iana\"\n },\n \"application/prs.xsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xsf\"]\n },\n \"application/pskc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pskcxml\"]\n },\n \"application/pvd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/qsig\": {\n \"source\": \"iana\"\n },\n \"application/raml+yaml\": {\n \"compressible\": true,\n \"extensions\": [\"raml\"]\n },\n \"application/raptorfec\": {\n \"source\": \"iana\"\n },\n \"application/rdap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rdf\",\"owl\"]\n },\n \"application/reginfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rif\"]\n },\n \"application/relax-ng-compact-syntax\": {\n \"source\": \"iana\",\n \"extensions\": [\"rnc\"]\n },\n \"application/remote-printing\": {\n \"source\": \"apache\"\n },\n \"application/reputon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/resolve-response+jwt\": {\n \"source\": \"iana\"\n },\n \"application/resource-lists+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rl\"]\n },\n \"application/resource-lists-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rld\"]\n },\n \"application/rfc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/riscos\": {\n \"source\": \"iana\"\n },\n \"application/rlmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rls-services+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rs\"]\n },\n \"application/route-apd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rapd\"]\n },\n \"application/route-s-tsid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sls\"]\n },\n \"application/route-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rusd\"]\n },\n \"application/rpki-checklist\": {\n \"source\": \"iana\"\n },\n \"application/rpki-ghostbusters\": {\n \"source\": \"iana\",\n \"extensions\": [\"gbr\"]\n },\n \"application/rpki-manifest\": {\n \"source\": \"iana\",\n \"extensions\": [\"mft\"]\n },\n \"application/rpki-publication\": {\n \"source\": \"iana\"\n },\n \"application/rpki-roa\": {\n \"source\": \"iana\",\n \"extensions\": [\"roa\"]\n },\n \"application/rpki-signed-tal\": {\n \"source\": \"iana\"\n },\n \"application/rpki-updown\": {\n \"source\": \"iana\"\n },\n \"application/rsd+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rsd\"]\n },\n \"application/rss+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rss\"]\n },\n \"application/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"application/rtploopback\": {\n \"source\": \"iana\"\n },\n \"application/rtx\": {\n \"source\": \"iana\"\n },\n \"application/samlassertion+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/samlmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif-external-properties+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sbe\": {\n \"source\": \"iana\"\n },\n \"application/sbml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sbml\"]\n },\n \"application/scaip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scim+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scvp-cv-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"scq\"]\n },\n \"application/scvp-cv-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"scs\"]\n },\n \"application/scvp-vp-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"spq\"]\n },\n \"application/scvp-vp-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"spp\"]\n },\n \"application/sdp\": {\n \"source\": \"iana\",\n \"extensions\": [\"sdp\"]\n },\n \"application/secevent+jwt\": {\n \"source\": \"iana\"\n },\n \"application/senml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"senmlx\"]\n },\n \"application/senml-etch+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml-etch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sensml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/sensml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sensml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sensmlx\"]\n },\n \"application/sensml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sep+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sep-exi\": {\n \"source\": \"iana\"\n },\n \"application/session-info\": {\n \"source\": \"iana\"\n },\n \"application/set-payment\": {\n \"source\": \"iana\"\n },\n \"application/set-payment-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setpay\"]\n },\n \"application/set-registration\": {\n \"source\": \"iana\"\n },\n \"application/set-registration-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setreg\"]\n },\n \"application/sgml\": {\n \"source\": \"iana\"\n },\n \"application/sgml-open-catalog\": {\n \"source\": \"iana\"\n },\n \"application/shf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"shf\"]\n },\n \"application/sieve\": {\n \"source\": \"iana\",\n \"extensions\": [\"siv\",\"sieve\"]\n },\n \"application/simple-filter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/simple-message-summary\": {\n \"source\": \"iana\"\n },\n \"application/simplesymbolcontainer\": {\n \"source\": \"iana\"\n },\n \"application/sipc\": {\n \"source\": \"iana\"\n },\n \"application/slate\": {\n \"source\": \"iana\"\n },\n \"application/smil\": {\n \"source\": \"apache\"\n },\n \"application/smil+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"smi\",\"smil\"]\n },\n \"application/smpte336m\": {\n \"source\": \"iana\"\n },\n \"application/soap+fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/soap+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sparql-query\": {\n \"source\": \"iana\",\n \"extensions\": [\"rq\"]\n },\n \"application/sparql-results+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"srx\"]\n },\n \"application/spdx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/spirits-event+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sql\": {\n \"source\": \"iana\",\n \"extensions\": [\"sql\"]\n },\n \"application/srgs\": {\n \"source\": \"iana\",\n \"extensions\": [\"gram\"]\n },\n \"application/srgs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"grxml\"]\n },\n \"application/sru+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sru\"]\n },\n \"application/ssdl+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ssdl\"]\n },\n \"application/sslkeylogfile\": {\n \"source\": \"iana\"\n },\n \"application/ssml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ssml\"]\n },\n \"application/st2110-41\": {\n \"source\": \"iana\"\n },\n \"application/stix+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/stratum\": {\n \"source\": \"iana\"\n },\n \"application/swid+cbor\": {\n \"source\": \"iana\"\n },\n \"application/swid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"swidtag\"]\n },\n \"application/tamp-apex-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-apex-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-error\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-query\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-response\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tar\": {\n \"compressible\": true\n },\n \"application/taxii+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/td+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tei\",\"teicorpus\"]\n },\n \"application/tetra_isi\": {\n \"source\": \"iana\"\n },\n \"application/thraud+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tfi\"]\n },\n \"application/timestamp-query\": {\n \"source\": \"iana\"\n },\n \"application/timestamp-reply\": {\n \"source\": \"iana\"\n },\n \"application/timestamped-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"tsd\"]\n },\n \"application/tlsrpt+gzip\": {\n \"source\": \"iana\"\n },\n \"application/tlsrpt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tm+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tnauthlist\": {\n \"source\": \"iana\"\n },\n \"application/toc+cbor\": {\n \"source\": \"iana\"\n },\n \"application/token-introspection+jwt\": {\n \"source\": \"iana\"\n },\n \"application/toml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"toml\"]\n },\n \"application/trickle-ice-sdpfrag\": {\n \"source\": \"iana\"\n },\n \"application/trig\": {\n \"source\": \"iana\",\n \"extensions\": [\"trig\"]\n },\n \"application/trust-chain+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/trust-mark+jwt\": {\n \"source\": \"iana\"\n },\n \"application/trust-mark-delegation+jwt\": {\n \"source\": \"iana\"\n },\n \"application/ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttml\"]\n },\n \"application/tve-trigger\": {\n \"source\": \"iana\"\n },\n \"application/tzif\": {\n \"source\": \"iana\"\n },\n \"application/tzif-leap\": {\n \"source\": \"iana\"\n },\n \"application/ubjson\": {\n \"compressible\": false,\n \"extensions\": [\"ubj\"]\n },\n \"application/uccs+cbor\": {\n \"source\": \"iana\"\n },\n \"application/ujcs+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ulpfec\": {\n \"source\": \"iana\"\n },\n \"application/urc-grpsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/urc-ressheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsheet\"]\n },\n \"application/urc-targetdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"td\"]\n },\n \"application/urc-uisocketdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vc\": {\n \"source\": \"iana\"\n },\n \"application/vc+cose\": {\n \"source\": \"iana\"\n },\n \"application/vc+jwt\": {\n \"source\": \"iana\"\n },\n \"application/vcard+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vcard+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vemmi\": {\n \"source\": \"iana\"\n },\n \"application/vividence.scriptfile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.1000minds.decision-model+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"1km\"]\n },\n \"application/vnd.1ob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp-prose+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-prose-pc3a+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-prose-pc3ach+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-prose-pc3ch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-prose-pc8+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-v2x-local-service-information\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.5gnas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.5gsa2x\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.5gsa2x-local-service-information\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.5gsv2x\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.5gsv2x-local-service-information\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.access-transfer-events+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.bsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.crs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.current-location-discovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gmop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gtpc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.interworking-data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.lpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mc-signalling-ear\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-payload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-regroup+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-signalling\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-floor-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-regroup+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-signed+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-init-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-regroup+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-transmission-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mid-call+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ngap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pfcp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pic-bw-large\": {\n \"source\": \"iana\",\n \"extensions\": [\"plb\"]\n },\n \"application/vnd.3gpp.pic-bw-small\": {\n \"source\": \"iana\",\n \"extensions\": [\"psb\"]\n },\n \"application/vnd.3gpp.pic-bw-var\": {\n \"source\": \"iana\",\n \"extensions\": [\"pvb\"]\n },\n \"application/vnd.3gpp.pinapp-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.s1ap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.seal-group-doc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.seal-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.seal-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.seal-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.seal-network-qos-management-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.seal-ue-config-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.seal-unicast-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.seal-user-profile-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.sms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-ext+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.state-and-event-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ussd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.v2x\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.vae-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.bcmcsinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp2.tcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tcap\"]\n },\n \"application/vnd.3lightssoftware.imagescal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3m.post-it-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"pwn\"]\n },\n \"application/vnd.accpac.simply.aso\": {\n \"source\": \"iana\",\n \"extensions\": [\"aso\"]\n },\n \"application/vnd.accpac.simply.imp\": {\n \"source\": \"iana\",\n \"extensions\": [\"imp\"]\n },\n \"application/vnd.acm.addressxfer+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.acm.chatbot+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.acucobol\": {\n \"source\": \"iana\",\n \"extensions\": [\"acu\"]\n },\n \"application/vnd.acucorp\": {\n \"source\": \"iana\",\n \"extensions\": [\"atc\",\"acutc\"]\n },\n \"application/vnd.adobe.air-application-installer-package+zip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"air\"]\n },\n \"application/vnd.adobe.flash.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.formscentral.fcdt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcdt\"]\n },\n \"application/vnd.adobe.fxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fxp\",\"fxpl\"]\n },\n \"application/vnd.adobe.partial-upload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.xdp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdp\"]\n },\n \"application/vnd.adobe.xfdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"xfdf\"]\n },\n \"application/vnd.aether.imp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata-pagedef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.cmoca-cmresource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-charset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codedfont\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codepage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-cmtable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-formdef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-mediummap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-objectcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-overlay\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-pagesegment\": {\n \"source\": \"iana\"\n },\n \"application/vnd.age\": {\n \"source\": \"iana\",\n \"extensions\": [\"age\"]\n },\n \"application/vnd.ah-barcode\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ahead.space\": {\n \"source\": \"iana\",\n \"extensions\": [\"ahead\"]\n },\n \"application/vnd.airzip.filesecure.azf\": {\n \"source\": \"iana\",\n \"extensions\": [\"azf\"]\n },\n \"application/vnd.airzip.filesecure.azs\": {\n \"source\": \"iana\",\n \"extensions\": [\"azs\"]\n },\n \"application/vnd.amadeus+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.amazon.ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"azw\"]\n },\n \"application/vnd.amazon.mobi8-ebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.americandynamics.acc\": {\n \"source\": \"iana\",\n \"extensions\": [\"acc\"]\n },\n \"application/vnd.amiga.ami\": {\n \"source\": \"iana\",\n \"extensions\": [\"ami\"]\n },\n \"application/vnd.amundsen.maze+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.android.ota\": {\n \"source\": \"iana\"\n },\n \"application/vnd.android.package-archive\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"apk\"]\n },\n \"application/vnd.anki\": {\n \"source\": \"iana\"\n },\n \"application/vnd.anser-web-certificate-issue-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"cii\"]\n },\n \"application/vnd.anser-web-funds-transfer-initiation\": {\n \"source\": \"apache\",\n \"extensions\": [\"fti\"]\n },\n \"application/vnd.antix.game-component\": {\n \"source\": \"iana\",\n \"extensions\": [\"atx\"]\n },\n \"application/vnd.apache.arrow.file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.arrow.stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.parquet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.compact\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.json\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apexlang\": {\n \"source\": \"iana\"\n },\n \"application/vnd.api+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.aplextor.warrp+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apothekende.reservation+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apple.installer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpkg\"]\n },\n \"application/vnd.apple.keynote\": {\n \"source\": \"iana\",\n \"extensions\": [\"key\"]\n },\n \"application/vnd.apple.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"m3u8\"]\n },\n \"application/vnd.apple.numbers\": {\n \"source\": \"iana\",\n \"extensions\": [\"numbers\"]\n },\n \"application/vnd.apple.pages\": {\n \"source\": \"iana\",\n \"extensions\": [\"pages\"]\n },\n \"application/vnd.apple.pkpass\": {\n \"compressible\": false,\n \"extensions\": [\"pkpass\"]\n },\n \"application/vnd.arastra.swi\": {\n \"source\": \"apache\"\n },\n \"application/vnd.aristanetworks.swi\": {\n \"source\": \"iana\",\n \"extensions\": [\"swi\"]\n },\n \"application/vnd.artisan+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.artsquare\": {\n \"source\": \"iana\"\n },\n \"application/vnd.astraea-software.iota\": {\n \"source\": \"iana\",\n \"extensions\": [\"iota\"]\n },\n \"application/vnd.audiograph\": {\n \"source\": \"iana\",\n \"extensions\": [\"aep\"]\n },\n \"application/vnd.autodesk.fbx\": {\n \"extensions\": [\"fbx\"]\n },\n \"application/vnd.autopackage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.avalon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.avistar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.balsamiq.bmml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmml\"]\n },\n \"application/vnd.balsamiq.bmpr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.banana-accounting\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.error\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bekitzur-stech+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.belightsoft.lhzd+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.belightsoft.lhzl+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.bint.med-content\": {\n \"source\": \"iana\"\n },\n \"application/vnd.biopax.rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.blink-idb-value-wrapper\": {\n \"source\": \"iana\"\n },\n \"application/vnd.blueice.multipass\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpm\"]\n },\n \"application/vnd.bluetooth.ep.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bluetooth.le.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bmi\": {\n \"source\": \"iana\",\n \"extensions\": [\"bmi\"]\n },\n \"application/vnd.bpf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bpf3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.businessobjects\": {\n \"source\": \"iana\",\n \"extensions\": [\"rep\"]\n },\n \"application/vnd.byu.uapi+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bzip3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.c3voc.schedule+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cab-jscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-cpdl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-lips\": {\n \"source\": \"iana\"\n },\n \"application/vnd.capasystems-pg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cendio.thinlinc.clientconf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.century-systems.tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chemdraw+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdxml\"]\n },\n \"application/vnd.chess-pgn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chipnuts.karaoke-mmd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmd\"]\n },\n \"application/vnd.ciedi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cinderella\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdy\"]\n },\n \"application/vnd.cirpack.isdn-ext\": {\n \"source\": \"iana\"\n },\n \"application/vnd.citationstyles.style+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csl\"]\n },\n \"application/vnd.claymore\": {\n \"source\": \"iana\",\n \"extensions\": [\"cla\"]\n },\n \"application/vnd.cloanto.rp9\": {\n \"source\": \"iana\",\n \"extensions\": [\"rp9\"]\n },\n \"application/vnd.clonk.c4group\": {\n \"source\": \"iana\",\n \"extensions\": [\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"]\n },\n \"application/vnd.cluetrust.cartomobile-config\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amc\"]\n },\n \"application/vnd.cluetrust.cartomobile-config-pkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amz\"]\n },\n \"application/vnd.cncf.helm.chart.content.v1.tar+gzip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cncf.helm.chart.provenance.v1.prov\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cncf.helm.config.v1+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.coffeescript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collection+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.doc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.next+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.comicbook+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.comicbook-rar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commerce-battelle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commonspace\": {\n \"source\": \"iana\",\n \"extensions\": [\"csp\"]\n },\n \"application/vnd.contact.cmsg\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdbcmsg\"]\n },\n \"application/vnd.coreos.ignition+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cosmocaller\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmc\"]\n },\n \"application/vnd.crick.clicker\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkx\"]\n },\n \"application/vnd.crick.clicker.keyboard\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkk\"]\n },\n \"application/vnd.crick.clicker.palette\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkp\"]\n },\n \"application/vnd.crick.clicker.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkt\"]\n },\n \"application/vnd.crick.clicker.wordbank\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkw\"]\n },\n \"application/vnd.criticaltools.wbs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wbs\"]\n },\n \"application/vnd.cryptii.pipe+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.crypto-shade-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.vault\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ctc-posml\": {\n \"source\": \"iana\",\n \"extensions\": [\"pml\"]\n },\n \"application/vnd.ctct.ws+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cups-pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-postscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-ppd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppd\"]\n },\n \"application/vnd.cups-raster\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-raw\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl.car\": {\n \"source\": \"apache\",\n \"extensions\": [\"car\"]\n },\n \"application/vnd.curl.pcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcurl\"]\n },\n \"application/vnd.cyan.dean.root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cybank\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cyclonedx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cyclonedx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.d2l.coursepackage1p0+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.d3m-dataset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.d3m-problem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dart\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dart\"]\n },\n \"application/vnd.data-vision.rdz\": {\n \"source\": \"iana\",\n \"extensions\": [\"rdz\"]\n },\n \"application/vnd.datalog\": {\n \"source\": \"iana\"\n },\n \"application/vnd.datapackage+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dataresource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dbf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dbf\"]\n },\n \"application/vnd.dcmp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dcmp\"]\n },\n \"application/vnd.debian.binary-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dece.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"]\n },\n \"application/vnd.dece.ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uvt\",\"uvvt\"]\n },\n \"application/vnd.dece.unspecified\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvx\",\"uvvx\"]\n },\n \"application/vnd.dece.zip\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvz\",\"uvvz\"]\n },\n \"application/vnd.denovo.fcselayout-link\": {\n \"source\": \"iana\",\n \"extensions\": [\"fe_launch\"]\n },\n \"application/vnd.desmume.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dir-bi.plate-dl-nosuffix\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dm.delegation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dna\": {\n \"source\": \"iana\",\n \"extensions\": [\"dna\"]\n },\n \"application/vnd.document+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dolby.mlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"mlp\"]\n },\n \"application/vnd.dolby.mobile.1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dolby.mobile.2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.doremir.scorecloud-binary-document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dpgraph\": {\n \"source\": \"iana\",\n \"extensions\": [\"dpg\"]\n },\n \"application/vnd.dreamfactory\": {\n \"source\": \"iana\",\n \"extensions\": [\"dfac\"]\n },\n \"application/vnd.drive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ds-keypoint\": {\n \"source\": \"apache\",\n \"extensions\": [\"kpxx\"]\n },\n \"application/vnd.dtg.local\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.flash\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ait\": {\n \"source\": \"iana\",\n \"extensions\": [\"ait\"]\n },\n \"application/vnd.dvb.dvbisl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.dvbj\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.esgcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcdftnotifaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgpdd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcroaming\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-base\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-enhancement\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.notif-aggregate-root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-container+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-generic+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-msglist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-init+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.pfr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.service\": {\n \"source\": \"iana\",\n \"extensions\": [\"svc\"]\n },\n \"application/vnd.dxr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dynageo\": {\n \"source\": \"iana\",\n \"extensions\": [\"geo\"]\n },\n \"application/vnd.dzr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.easykaraoke.cdgdownload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecdis-update\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecip.rlp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eclipse.ditto+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ecowin.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"mag\"]\n },\n \"application/vnd.ecowin.filerequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.fileupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.series\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesrequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.img\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.iso\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eln+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.emclient.accessrequest+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.enliven\": {\n \"source\": \"iana\",\n \"extensions\": [\"nml\"]\n },\n \"application/vnd.enphase.envoy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eprints.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.epson.esf\": {\n \"source\": \"iana\",\n \"extensions\": [\"esf\"]\n },\n \"application/vnd.epson.msf\": {\n \"source\": \"iana\",\n \"extensions\": [\"msf\"]\n },\n \"application/vnd.epson.quickanime\": {\n \"source\": \"iana\",\n \"extensions\": [\"qam\"]\n },\n \"application/vnd.epson.salt\": {\n \"source\": \"iana\",\n \"extensions\": [\"slt\"]\n },\n \"application/vnd.epson.ssf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ssf\"]\n },\n \"application/vnd.ericsson.quickcall\": {\n \"source\": \"iana\"\n },\n \"application/vnd.erofs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.espass-espass+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.eszigno3+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"es3\",\"et3\"]\n },\n \"application/vnd.etsi.aoc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.asic-e+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.asic-s+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.cug+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvcommand+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-bc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-cod+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-npvr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvservice+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mcid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mheg5\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.overload-control-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.pstn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.sci+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.simservs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.timestamp-token\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.tsl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.tsl.der\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eu.kasparian.car+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.eudora.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.profile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.settings\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.theme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.exstream-empower+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.exstream-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ezpix-album\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez2\"]\n },\n \"application/vnd.ezpix-package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez3\"]\n },\n \"application/vnd.f-secure.mobile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.familysearch.gedcom+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.fastcopy-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"fdf\"]\n },\n \"application/vnd.fdsn.mseed\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseed\"]\n },\n \"application/vnd.fdsn.seed\": {\n \"source\": \"iana\",\n \"extensions\": [\"seed\",\"dataless\"]\n },\n \"application/vnd.fdsn.stationxml+xml\": {\n \"source\": \"iana\",\n \"charset\": \"XML-BASED\",\n \"compressible\": true\n },\n \"application/vnd.ffsns\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ficlab.flb+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.filmit.zfc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fints\": {\n \"source\": \"iana\"\n },\n \"application/vnd.firemonkeys.cloudcell\": {\n \"source\": \"iana\"\n },\n \"application/vnd.flographit\": {\n \"source\": \"iana\",\n \"extensions\": [\"gph\"]\n },\n \"application/vnd.fluxtime.clip\": {\n \"source\": \"iana\",\n \"extensions\": [\"ftc\"]\n },\n \"application/vnd.font-fontforge-sfd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.framemaker\": {\n \"source\": \"iana\",\n \"extensions\": [\"fm\",\"frame\",\"maker\",\"book\"]\n },\n \"application/vnd.freelog.comic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.frogans.fnc\": {\n \"source\": \"apache\",\n \"extensions\": [\"fnc\"]\n },\n \"application/vnd.frogans.ltf\": {\n \"source\": \"apache\",\n \"extensions\": [\"ltf\"]\n },\n \"application/vnd.fsc.weblaunch\": {\n \"source\": \"iana\",\n \"extensions\": [\"fsc\"]\n },\n \"application/vnd.fujifilm.fb.docuworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.binder\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.jfi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fujitsu.oasys\": {\n \"source\": \"iana\",\n \"extensions\": [\"oas\"]\n },\n \"application/vnd.fujitsu.oasys2\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa2\"]\n },\n \"application/vnd.fujitsu.oasys3\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa3\"]\n },\n \"application/vnd.fujitsu.oasysgp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fg5\"]\n },\n \"application/vnd.fujitsu.oasysprs\": {\n \"source\": \"iana\",\n \"extensions\": [\"bh2\"]\n },\n \"application/vnd.fujixerox.art-ex\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.art4\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.ddd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ddd\"]\n },\n \"application/vnd.fujixerox.docuworks\": {\n \"source\": \"iana\",\n \"extensions\": [\"xdw\"]\n },\n \"application/vnd.fujixerox.docuworks.binder\": {\n \"source\": \"iana\",\n \"extensions\": [\"xbd\"]\n },\n \"application/vnd.fujixerox.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.hbpl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fut-misnet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fuzzysheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fzs\"]\n },\n \"application/vnd.ga4gh.passport+jwt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.genomatix.tuxedo\": {\n \"source\": \"iana\",\n \"extensions\": [\"txd\"]\n },\n \"application/vnd.genozip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.gentics.grd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.gentoo.catmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.gentoo.ebuild\": {\n \"source\": \"iana\"\n },\n \"application/vnd.gentoo.eclass\": {\n \"source\": \"iana\"\n },\n \"application/vnd.gentoo.gpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.gentoo.manifest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.gentoo.pkgmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.gentoo.xpak\": {\n \"source\": \"iana\"\n },\n \"application/vnd.geo+json\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.geocube+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.geogebra.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggb\"]\n },\n \"application/vnd.geogebra.pinboard\": {\n \"source\": \"iana\"\n },\n \"application/vnd.geogebra.slides\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggs\"]\n },\n \"application/vnd.geogebra.tool\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggt\"]\n },\n \"application/vnd.geometry-explorer\": {\n \"source\": \"iana\",\n \"extensions\": [\"gex\",\"gre\"]\n },\n \"application/vnd.geonext\": {\n \"source\": \"iana\",\n \"extensions\": [\"gxt\"]\n },\n \"application/vnd.geoplan\": {\n \"source\": \"iana\",\n \"extensions\": [\"g2w\"]\n },\n \"application/vnd.geospace\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3w\"]\n },\n \"application/vnd.gerber\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.gmx\": {\n \"source\": \"iana\",\n \"extensions\": [\"gmx\"]\n },\n \"application/vnd.gnu.taler.exchange+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.gnu.taler.merchant+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.google-apps.audio\": {},\n \"application/vnd.google-apps.document\": {\n \"compressible\": false,\n \"extensions\": [\"gdoc\"]\n },\n \"application/vnd.google-apps.drawing\": {\n \"compressible\": false,\n \"extensions\": [\"gdraw\"]\n },\n \"application/vnd.google-apps.drive-sdk\": {\n \"compressible\": false\n },\n \"application/vnd.google-apps.file\": {},\n \"application/vnd.google-apps.folder\": {\n \"compressible\": false\n },\n \"application/vnd.google-apps.form\": {\n \"compressible\": false,\n \"extensions\": [\"gform\"]\n },\n \"application/vnd.google-apps.fusiontable\": {},\n \"application/vnd.google-apps.jam\": {\n \"compressible\": false,\n \"extensions\": [\"gjam\"]\n },\n \"application/vnd.google-apps.mail-layout\": {},\n \"application/vnd.google-apps.map\": {\n \"compressible\": false,\n \"extensions\": [\"gmap\"]\n },\n \"application/vnd.google-apps.photo\": {},\n \"application/vnd.google-apps.presentation\": {\n \"compressible\": false,\n \"extensions\": [\"gslides\"]\n },\n \"application/vnd.google-apps.script\": {\n \"compressible\": false,\n \"extensions\": [\"gscript\"]\n },\n \"application/vnd.google-apps.shortcut\": {},\n \"application/vnd.google-apps.site\": {\n \"compressible\": false,\n \"extensions\": [\"gsite\"]\n },\n \"application/vnd.google-apps.spreadsheet\": {\n \"compressible\": false,\n \"extensions\": [\"gsheet\"]\n },\n \"application/vnd.google-apps.unknown\": {},\n \"application/vnd.google-apps.video\": {},\n \"application/vnd.google-earth.kml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"kml\"]\n },\n \"application/vnd.google-earth.kmz\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"kmz\"]\n },\n \"application/vnd.gov.sk.e-form+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.gov.sk.e-form+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.gov.sk.xmldatacontainer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdcf\"]\n },\n \"application/vnd.gpxsee.map+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.grafeq\": {\n \"source\": \"iana\",\n \"extensions\": [\"gqf\",\"gqs\"]\n },\n \"application/vnd.gridmp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.groove-account\": {\n \"source\": \"iana\",\n \"extensions\": [\"gac\"]\n },\n \"application/vnd.groove-help\": {\n \"source\": \"iana\",\n \"extensions\": [\"ghf\"]\n },\n \"application/vnd.groove-identity-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gim\"]\n },\n \"application/vnd.groove-injector\": {\n \"source\": \"iana\",\n \"extensions\": [\"grv\"]\n },\n \"application/vnd.groove-tool-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtm\"]\n },\n \"application/vnd.groove-tool-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpl\"]\n },\n \"application/vnd.groove-vcard\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcg\"]\n },\n \"application/vnd.hal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"hal\"]\n },\n \"application/vnd.handheld-entertainment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zmm\"]\n },\n \"application/vnd.hbci\": {\n \"source\": \"iana\",\n \"extensions\": [\"hbci\"]\n },\n \"application/vnd.hc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hcl-bireports\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hdt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.heroku+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hhe.lesson-player\": {\n \"source\": \"iana\",\n \"extensions\": [\"les\"]\n },\n \"application/vnd.hp-hpgl\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpgl\"]\n },\n \"application/vnd.hp-hpid\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpid\"]\n },\n \"application/vnd.hp-hps\": {\n \"source\": \"iana\",\n \"extensions\": [\"hps\"]\n },\n \"application/vnd.hp-jlyt\": {\n \"source\": \"iana\",\n \"extensions\": [\"jlt\"]\n },\n \"application/vnd.hp-pcl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcl\"]\n },\n \"application/vnd.hp-pclxl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pclxl\"]\n },\n \"application/vnd.hsl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.httphone\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hydrostatix.sof-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfd-hdstx\"]\n },\n \"application/vnd.hyper+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyper-item+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyperdrive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hzn-3d-crossword\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.afplinedata\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ibm.electronic-media\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.minipay\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpy\"]\n },\n \"application/vnd.ibm.modcap\": {\n \"source\": \"apache\",\n \"extensions\": [\"afp\",\"listafp\",\"list3820\"]\n },\n \"application/vnd.ibm.rights-management\": {\n \"source\": \"iana\",\n \"extensions\": [\"irm\"]\n },\n \"application/vnd.ibm.secure-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"sc\"]\n },\n \"application/vnd.iccprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"icc\",\"icm\"]\n },\n \"application/vnd.ieee.1905\": {\n \"source\": \"iana\"\n },\n \"application/vnd.igloader\": {\n \"source\": \"iana\",\n \"extensions\": [\"igl\"]\n },\n \"application/vnd.imagemeter.folder+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.imagemeter.image+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.immervision-ivp\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivp\"]\n },\n \"application/vnd.immervision-ivu\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivu\"]\n },\n \"application/vnd.ims.imsccv1p1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.lis.v2.result+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolconsumerprofile+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy.id+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings.simple+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informedcontrol.rms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informix-visionary\": {\n \"source\": \"apache\"\n },\n \"application/vnd.infotech.project\": {\n \"source\": \"iana\"\n },\n \"application/vnd.infotech.project+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.innopath.wamp.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.insors.igm\": {\n \"source\": \"iana\",\n \"extensions\": [\"igm\"]\n },\n \"application/vnd.intercon.formnet\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpw\",\"xpx\"]\n },\n \"application/vnd.intergeo\": {\n \"source\": \"iana\",\n \"extensions\": [\"i2g\"]\n },\n \"application/vnd.intertrust.digibox\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intertrust.nncp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intu.qbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"qbo\"]\n },\n \"application/vnd.intu.qfx\": {\n \"source\": \"iana\",\n \"extensions\": [\"qfx\"]\n },\n \"application/vnd.ipfs.ipns-record\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ipld.car\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ipld.dag-cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ipld.dag-json\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ipld.raw\": {\n \"source\": \"iana\"\n },\n \"application/vnd.iptc.g2.catalogitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.conceptitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.knowledgeitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.packageitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.planningitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ipunplugged.rcprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"rcprofile\"]\n },\n \"application/vnd.irepository.package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"irp\"]\n },\n \"application/vnd.is-xpr\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpr\"]\n },\n \"application/vnd.isac.fcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcs\"]\n },\n \"application/vnd.iso11783-10+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.jam\": {\n \"source\": \"iana\",\n \"extensions\": [\"jam\"]\n },\n \"application/vnd.japannet-directory-service\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-jpnstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-payment-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-setstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.jcp.javame.midlet-rms\": {\n \"source\": \"iana\",\n \"extensions\": [\"rms\"]\n },\n \"application/vnd.jisp\": {\n \"source\": \"iana\",\n \"extensions\": [\"jisp\"]\n },\n \"application/vnd.joost.joda-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"joda\"]\n },\n \"application/vnd.jsk.isdn-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.kahootz\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktz\",\"ktr\"]\n },\n \"application/vnd.kde.karbon\": {\n \"source\": \"iana\",\n \"extensions\": [\"karbon\"]\n },\n \"application/vnd.kde.kchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"chrt\"]\n },\n \"application/vnd.kde.kformula\": {\n \"source\": \"iana\",\n \"extensions\": [\"kfo\"]\n },\n \"application/vnd.kde.kivio\": {\n \"source\": \"iana\",\n \"extensions\": [\"flw\"]\n },\n \"application/vnd.kde.kontour\": {\n \"source\": \"iana\",\n \"extensions\": [\"kon\"]\n },\n \"application/vnd.kde.kpresenter\": {\n \"source\": \"iana\",\n \"extensions\": [\"kpr\",\"kpt\"]\n },\n \"application/vnd.kde.kspread\": {\n \"source\": \"iana\",\n \"extensions\": [\"ksp\"]\n },\n \"application/vnd.kde.kword\": {\n \"source\": \"iana\",\n \"extensions\": [\"kwd\",\"kwt\"]\n },\n \"application/vnd.kdl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.kenameaapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"htke\"]\n },\n \"application/vnd.keyman.kmp+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.keyman.kmx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.kidspiration\": {\n \"source\": \"iana\",\n \"extensions\": [\"kia\"]\n },\n \"application/vnd.kinar\": {\n \"source\": \"iana\",\n \"extensions\": [\"kne\",\"knp\"]\n },\n \"application/vnd.koan\": {\n \"source\": \"iana\",\n \"extensions\": [\"skp\",\"skd\",\"skt\",\"skm\"]\n },\n \"application/vnd.kodak-descriptor\": {\n \"source\": \"iana\",\n \"extensions\": [\"sse\"]\n },\n \"application/vnd.las\": {\n \"source\": \"iana\"\n },\n \"application/vnd.las.las+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.las.las+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lasxml\"]\n },\n \"application/vnd.laszip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ldev.productlicensing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.leap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.liberty-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.llamagraphics.life-balance.desktop\": {\n \"source\": \"iana\",\n \"extensions\": [\"lbd\"]\n },\n \"application/vnd.llamagraphics.life-balance.exchange+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lbe\"]\n },\n \"application/vnd.logipipe.circuit+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.loom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.lotus-1-2-3\": {\n \"source\": \"iana\",\n \"extensions\": [\"123\"]\n },\n \"application/vnd.lotus-approach\": {\n \"source\": \"iana\",\n \"extensions\": [\"apr\"]\n },\n \"application/vnd.lotus-freelance\": {\n \"source\": \"iana\",\n \"extensions\": [\"pre\"]\n },\n \"application/vnd.lotus-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"nsf\"]\n },\n \"application/vnd.lotus-organizer\": {\n \"source\": \"iana\",\n \"extensions\": [\"org\"]\n },\n \"application/vnd.lotus-screencam\": {\n \"source\": \"iana\",\n \"extensions\": [\"scm\"]\n },\n \"application/vnd.lotus-wordpro\": {\n \"source\": \"iana\",\n \"extensions\": [\"lwp\"]\n },\n \"application/vnd.macports.portpkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"portpkg\"]\n },\n \"application/vnd.mapbox-vector-tile\": {\n \"source\": \"iana\",\n \"extensions\": [\"mvt\"]\n },\n \"application/vnd.marlin.drm.actiontoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.conftoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.license+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.mdcf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mason+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.maxar.archive.3tz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.maxmind.maxmind-db\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mcd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mcd\"]\n },\n \"application/vnd.mdl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mdl-mbsdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.medcalcdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"mc1\"]\n },\n \"application/vnd.mediastation.cdkey\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdkey\"]\n },\n \"application/vnd.medicalholodeck.recordxr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.meridian-slingshot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mermaid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mfer\": {\n \"source\": \"iana\",\n \"extensions\": [\"mwf\"]\n },\n \"application/vnd.mfmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"mfm\"]\n },\n \"application/vnd.micro+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.micrografx.flo\": {\n \"source\": \"iana\",\n \"extensions\": [\"flo\"]\n },\n \"application/vnd.micrografx.igx\": {\n \"source\": \"iana\",\n \"extensions\": [\"igx\"]\n },\n \"application/vnd.microsoft.portable-executable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.microsoft.windows.thumbnail-cache\": {\n \"source\": \"iana\"\n },\n \"application/vnd.miele+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.mif\": {\n \"source\": \"iana\",\n \"extensions\": [\"mif\"]\n },\n \"application/vnd.minisoft-hp3000-save\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mitsubishi.misty-guard.trustweb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mobius.daf\": {\n \"source\": \"iana\",\n \"extensions\": [\"daf\"]\n },\n \"application/vnd.mobius.dis\": {\n \"source\": \"iana\",\n \"extensions\": [\"dis\"]\n },\n \"application/vnd.mobius.mbk\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbk\"]\n },\n \"application/vnd.mobius.mqy\": {\n \"source\": \"iana\",\n \"extensions\": [\"mqy\"]\n },\n \"application/vnd.mobius.msl\": {\n \"source\": \"iana\",\n \"extensions\": [\"msl\"]\n },\n \"application/vnd.mobius.plc\": {\n \"source\": \"iana\",\n \"extensions\": [\"plc\"]\n },\n \"application/vnd.mobius.txf\": {\n \"source\": \"iana\",\n \"extensions\": [\"txf\"]\n },\n \"application/vnd.modl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mophun.application\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpn\"]\n },\n \"application/vnd.mophun.certificate\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpc\"]\n },\n \"application/vnd.motorola.flexsuite\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.adsi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.fis\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.gotap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.kmr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.ttc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.wem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.iprm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mozilla.xul+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xul\"]\n },\n \"application/vnd.ms-3mfdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-artgalry\": {\n \"source\": \"iana\",\n \"extensions\": [\"cil\"]\n },\n \"application/vnd.ms-asf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-cab-compressed\": {\n \"source\": \"iana\",\n \"extensions\": [\"cab\"]\n },\n \"application/vnd.ms-color.iccprofile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-excel\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"]\n },\n \"application/vnd.ms-excel.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlam\"]\n },\n \"application/vnd.ms-excel.sheet.binary.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsb\"]\n },\n \"application/vnd.ms-excel.sheet.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsm\"]\n },\n \"application/vnd.ms-excel.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltm\"]\n },\n \"application/vnd.ms-fontobject\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eot\"]\n },\n \"application/vnd.ms-htmlhelp\": {\n \"source\": \"iana\",\n \"extensions\": [\"chm\"]\n },\n \"application/vnd.ms-ims\": {\n \"source\": \"iana\",\n \"extensions\": [\"ims\"]\n },\n \"application/vnd.ms-lrm\": {\n \"source\": \"iana\",\n \"extensions\": [\"lrm\"]\n },\n \"application/vnd.ms-office.activex+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-officetheme\": {\n \"source\": \"iana\",\n \"extensions\": [\"thmx\"]\n },\n \"application/vnd.ms-opentype\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-outlook\": {\n \"compressible\": false,\n \"extensions\": [\"msg\"]\n },\n \"application/vnd.ms-package.obfuscated-opentype\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-pki.seccat\": {\n \"source\": \"apache\",\n \"extensions\": [\"cat\"]\n },\n \"application/vnd.ms-pki.stl\": {\n \"source\": \"apache\",\n \"extensions\": [\"stl\"]\n },\n \"application/vnd.ms-playready.initiator+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-powerpoint\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ppt\",\"pps\",\"pot\"]\n },\n \"application/vnd.ms-powerpoint.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppam\"]\n },\n \"application/vnd.ms-powerpoint.presentation.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"pptm\"]\n },\n \"application/vnd.ms-powerpoint.slide.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldm\"]\n },\n \"application/vnd.ms-powerpoint.slideshow.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsm\"]\n },\n \"application/vnd.ms-powerpoint.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"potm\"]\n },\n \"application/vnd.ms-printdevicecapabilities+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-printing.printticket+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-printschematicket+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-project\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpp\",\"mpt\"]\n },\n \"application/vnd.ms-tnef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-visio.viewer\": {\n \"extensions\": [\"vdx\"]\n },\n \"application/vnd.ms-windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.nwprinting.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.printerpairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.wsd.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-word.document.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"docm\"]\n },\n \"application/vnd.ms-word.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotm\"]\n },\n \"application/vnd.ms-works\": {\n \"source\": \"iana\",\n \"extensions\": [\"wps\",\"wks\",\"wcm\",\"wdb\"]\n },\n \"application/vnd.ms-wpl\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpl\"]\n },\n \"application/vnd.ms-xpsdocument\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xps\"]\n },\n \"application/vnd.msa-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mseq\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseq\"]\n },\n \"application/vnd.msgpack\": {\n \"source\": \"iana\"\n },\n \"application/vnd.msign\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator.cif\": {\n \"source\": \"iana\"\n },\n \"application/vnd.music-niff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.musician\": {\n \"source\": \"iana\",\n \"extensions\": [\"mus\"]\n },\n \"application/vnd.muvee.style\": {\n \"source\": \"iana\",\n \"extensions\": [\"msty\"]\n },\n \"application/vnd.mynfc\": {\n \"source\": \"iana\",\n \"extensions\": [\"taglet\"]\n },\n \"application/vnd.nacamar.ybrid+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nato.bindingdataobject+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nato.bindingdataobject+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nato.bindingdataobject+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bdo\"]\n },\n \"application/vnd.nato.openxmlformats-package.iepd+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.ncd.control\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ncd.reference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nearst.inv+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nebumind.line\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nervana\": {\n \"source\": \"iana\"\n },\n \"application/vnd.netfpx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.neurolanguage.nlu\": {\n \"source\": \"iana\",\n \"extensions\": [\"nlu\"]\n },\n \"application/vnd.nimn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.nitro.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.snes.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nitf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ntf\",\"nitf\"]\n },\n \"application/vnd.noblenet-directory\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnd\"]\n },\n \"application/vnd.noblenet-sealer\": {\n \"source\": \"iana\",\n \"extensions\": [\"nns\"]\n },\n \"application/vnd.noblenet-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnw\"]\n },\n \"application/vnd.nokia.catalogs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.iptv.config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.isds-radio-presets\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.landmarkcollection+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.n-gage.ac+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ac\"]\n },\n \"application/vnd.nokia.n-gage.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"ngdat\"]\n },\n \"application/vnd.nokia.n-gage.symbian.install\": {\n \"source\": \"apache\",\n \"extensions\": [\"n-gage\"]\n },\n \"application/vnd.nokia.ncd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.radio-preset\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpst\"]\n },\n \"application/vnd.nokia.radio-presets\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpss\"]\n },\n \"application/vnd.novadigm.edm\": {\n \"source\": \"iana\",\n \"extensions\": [\"edm\"]\n },\n \"application/vnd.novadigm.edx\": {\n \"source\": \"iana\",\n \"extensions\": [\"edx\"]\n },\n \"application/vnd.novadigm.ext\": {\n \"source\": \"iana\",\n \"extensions\": [\"ext\"]\n },\n \"application/vnd.ntt-local.content-share\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.file-transfer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.ogw_remote-access\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_remote\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oai.workflows\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oai.workflows+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oai.workflows+yaml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oasis.opendocument.base\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oasis.opendocument.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"odc\"]\n },\n \"application/vnd.oasis.opendocument.chart-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otc\"]\n },\n \"application/vnd.oasis.opendocument.database\": {\n \"source\": \"apache\",\n \"extensions\": [\"odb\"]\n },\n \"application/vnd.oasis.opendocument.formula\": {\n \"source\": \"iana\",\n \"extensions\": [\"odf\"]\n },\n \"application/vnd.oasis.opendocument.formula-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"odft\"]\n },\n \"application/vnd.oasis.opendocument.graphics\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odg\"]\n },\n \"application/vnd.oasis.opendocument.graphics-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otg\"]\n },\n \"application/vnd.oasis.opendocument.image\": {\n \"source\": \"iana\",\n \"extensions\": [\"odi\"]\n },\n \"application/vnd.oasis.opendocument.image-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"oti\"]\n },\n \"application/vnd.oasis.opendocument.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odp\"]\n },\n \"application/vnd.oasis.opendocument.presentation-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otp\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ods\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ots\"]\n },\n \"application/vnd.oasis.opendocument.text\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odt\"]\n },\n \"application/vnd.oasis.opendocument.text-master\": {\n \"source\": \"iana\",\n \"extensions\": [\"odm\"]\n },\n \"application/vnd.oasis.opendocument.text-master-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oasis.opendocument.text-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ott\"]\n },\n \"application/vnd.oasis.opendocument.text-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"oth\"]\n },\n \"application/vnd.obn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ocf+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oci.image.manifest.v1+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oftn.l10n+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessdownload+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessstreaming+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.cspg-hexbinary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.dae.svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.dae.xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.mippvcontrolmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.pae.gem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.spdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.spdlist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.ueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.userprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.olpc-sugar\": {\n \"source\": \"iana\",\n \"extensions\": [\"xo\"]\n },\n \"application/vnd.oma-scws-config\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-request\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.associated-procedure-parameter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.drm-trigger+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.imd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.ltkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.notification+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.provisioningtrigger\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgboot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgdd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sgdu\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.simple-symbol-container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.smartcard-trigger+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sprov+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.stkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.cab-address-book+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-feature-handler+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-pcc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-subs-invite+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-user-prefs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.dcd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dcdc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dd2+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dd2\"]\n },\n \"application/vnd.oma.drm.risd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.group-usage-list+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.lwm2m+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+tlv\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.pal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.detailed-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.final-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.groups+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.invocation-descriptor+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.optimized-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.push\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.scidm.messages+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.xcap-directory+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.omads-email+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-file+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-folder+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omaloc-supl-init\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepager\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertat\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onvif.metadata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openblox.game+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"obgx\"]\n },\n \"application/vnd.openblox.game-binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openeye.oeb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openofficeorg.extension\": {\n \"source\": \"apache\",\n \"extensions\": [\"oxt\"]\n },\n \"application/vnd.openstreetmap.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osm\"]\n },\n \"application/vnd.opentimestamps.ots\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openvpi.dspx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.custom-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.customxmlproperties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawing+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.extended-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pptx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tags+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"potx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xlsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.theme+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.themeoverride+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.vmldrawing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"docx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.core-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.relationships+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oracle.resource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.orange.indata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osa.netdeploy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgeo.mapguide.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgp\"]\n },\n \"application/vnd.osgi.bundle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgi.dp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dp\"]\n },\n \"application/vnd.osgi.subsystem\": {\n \"source\": \"iana\",\n \"extensions\": [\"esa\"]\n },\n \"application/vnd.otps.ct-kip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oxli.countgraph\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pagerduty+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.palm\": {\n \"source\": \"iana\",\n \"extensions\": [\"pdb\",\"pqa\",\"oprc\"]\n },\n \"application/vnd.panoply\": {\n \"source\": \"iana\"\n },\n \"application/vnd.paos.xml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patentdive\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patientecommsdoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pawaafile\": {\n \"source\": \"iana\",\n \"extensions\": [\"paw\"]\n },\n \"application/vnd.pcos\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pg.format\": {\n \"source\": \"iana\",\n \"extensions\": [\"str\"]\n },\n \"application/vnd.pg.osasli\": {\n \"source\": \"iana\",\n \"extensions\": [\"ei6\"]\n },\n \"application/vnd.piaccess.application-licence\": {\n \"source\": \"iana\"\n },\n \"application/vnd.picsel\": {\n \"source\": \"iana\",\n \"extensions\": [\"efif\"]\n },\n \"application/vnd.pmi.widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wg\"]\n },\n \"application/vnd.poc.group-advertisement+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.pocketlearn\": {\n \"source\": \"iana\",\n \"extensions\": [\"plf\"]\n },\n \"application/vnd.powerbuilder6\": {\n \"source\": \"iana\",\n \"extensions\": [\"pbd\"]\n },\n \"application/vnd.powerbuilder6-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.preminet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.previewsystems.box\": {\n \"source\": \"iana\",\n \"extensions\": [\"box\"]\n },\n \"application/vnd.procrate.brushset\": {\n \"extensions\": [\"brushset\"]\n },\n \"application/vnd.procreate.brush\": {\n \"extensions\": [\"brush\"]\n },\n \"application/vnd.procreate.dream\": {\n \"extensions\": [\"drm\"]\n },\n \"application/vnd.proteus.magazine\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgz\"]\n },\n \"application/vnd.psfs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pt.mundusmundi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.publishare-delta-tree\": {\n \"source\": \"iana\",\n \"extensions\": [\"qps\"]\n },\n \"application/vnd.pvi.ptid1\": {\n \"source\": \"iana\",\n \"extensions\": [\"ptid\"]\n },\n \"application/vnd.pwg-multiplexed\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pwg-xhtml-print+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xhtm\"]\n },\n \"application/vnd.qualcomm.brew-app-res\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quarantainenet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quark.quarkxpress\": {\n \"source\": \"iana\",\n \"extensions\": [\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"]\n },\n \"application/vnd.quobject-quoxdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.radisys.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-stream+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-base+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-detect+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-sendrecv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-group+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-speech+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-transform+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rainstor.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rapid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rar\": {\n \"source\": \"iana\",\n \"extensions\": [\"rar\"]\n },\n \"application/vnd.realvnc.bed\": {\n \"source\": \"iana\",\n \"extensions\": [\"bed\"]\n },\n \"application/vnd.recordare.musicxml\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxl\"]\n },\n \"application/vnd.recordare.musicxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musicxml\"]\n },\n \"application/vnd.relpipe\": {\n \"source\": \"iana\"\n },\n \"application/vnd.renlearn.rlprint\": {\n \"source\": \"iana\"\n },\n \"application/vnd.resilient.logic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.restful+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rig.cryptonote\": {\n \"source\": \"iana\",\n \"extensions\": [\"cryptonote\"]\n },\n \"application/vnd.rim.cod\": {\n \"source\": \"apache\",\n \"extensions\": [\"cod\"]\n },\n \"application/vnd.rn-realmedia\": {\n \"source\": \"apache\",\n \"extensions\": [\"rm\"]\n },\n \"application/vnd.rn-realmedia-vbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmvb\"]\n },\n \"application/vnd.route66.link66+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"link66\"]\n },\n \"application/vnd.rs-274x\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ruckus.download\": {\n \"source\": \"iana\"\n },\n \"application/vnd.s3sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sailingtracker.track\": {\n \"source\": \"iana\",\n \"extensions\": [\"st\"]\n },\n \"application/vnd.sar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.cid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.mid2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.scribus\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.3df\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.csf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.doc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.eml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.mht\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.net\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.ppt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.tiff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.xls\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.seemail\": {\n \"source\": \"iana\",\n \"extensions\": [\"see\"]\n },\n \"application/vnd.seis+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.sema\": {\n \"source\": \"iana\",\n \"extensions\": [\"sema\"]\n },\n \"application/vnd.semd\": {\n \"source\": \"iana\",\n \"extensions\": [\"semd\"]\n },\n \"application/vnd.semf\": {\n \"source\": \"iana\",\n \"extensions\": [\"semf\"]\n },\n \"application/vnd.shade-save-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shana.informed.formdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"ifm\"]\n },\n \"application/vnd.shana.informed.formtemplate\": {\n \"source\": \"iana\",\n \"extensions\": [\"itp\"]\n },\n \"application/vnd.shana.informed.interchange\": {\n \"source\": \"iana\",\n \"extensions\": [\"iif\"]\n },\n \"application/vnd.shana.informed.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipk\"]\n },\n \"application/vnd.shootproof+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shopkick+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sigrok.session\": {\n \"source\": \"iana\"\n },\n \"application/vnd.simtech-mindmapper\": {\n \"source\": \"iana\",\n \"extensions\": [\"twd\",\"twds\"]\n },\n \"application/vnd.siren+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.sketchometry\": {\n \"source\": \"iana\"\n },\n \"application/vnd.smaf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmf\"]\n },\n \"application/vnd.smart.notebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.smart.teacher\": {\n \"source\": \"iana\",\n \"extensions\": [\"teacher\"]\n },\n \"application/vnd.smintio.portals.archive\": {\n \"source\": \"iana\"\n },\n \"application/vnd.snesdev-page-table\": {\n \"source\": \"iana\"\n },\n \"application/vnd.software602.filler.form+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fo\"]\n },\n \"application/vnd.software602.filler.form-xml-zip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.solent.sdkm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sdkm\",\"sdkd\"]\n },\n \"application/vnd.spotfire.dxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxp\"]\n },\n \"application/vnd.spotfire.sfs\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfs\"]\n },\n \"application/vnd.sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-cod\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-dtf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-ntf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.stardivision.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdc\"]\n },\n \"application/vnd.stardivision.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sda\"]\n },\n \"application/vnd.stardivision.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdd\"]\n },\n \"application/vnd.stardivision.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"smf\"]\n },\n \"application/vnd.stardivision.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdw\",\"vor\"]\n },\n \"application/vnd.stardivision.writer-global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgl\"]\n },\n \"application/vnd.stepmania.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"smzip\"]\n },\n \"application/vnd.stepmania.stepchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"sm\"]\n },\n \"application/vnd.street-stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sun.wadl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wadl\"]\n },\n \"application/vnd.sun.xml.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxc\"]\n },\n \"application/vnd.sun.xml.calc.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stc\"]\n },\n \"application/vnd.sun.xml.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxd\"]\n },\n \"application/vnd.sun.xml.draw.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"std\"]\n },\n \"application/vnd.sun.xml.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxi\"]\n },\n \"application/vnd.sun.xml.impress.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"sti\"]\n },\n \"application/vnd.sun.xml.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxm\"]\n },\n \"application/vnd.sun.xml.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxw\"]\n },\n \"application/vnd.sun.xml.writer.global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxg\"]\n },\n \"application/vnd.sun.xml.writer.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stw\"]\n },\n \"application/vnd.sus-calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"sus\",\"susp\"]\n },\n \"application/vnd.svd\": {\n \"source\": \"iana\",\n \"extensions\": [\"svd\"]\n },\n \"application/vnd.swiftview-ics\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sybyl.mol2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sycle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.syft+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.symbian.install\": {\n \"source\": \"apache\",\n \"extensions\": [\"sis\",\"sisx\"]\n },\n \"application/vnd.syncml+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xsm\"]\n },\n \"application/vnd.syncml.dm+wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"bdm\"]\n },\n \"application/vnd.syncml.dm+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xdm\"]\n },\n \"application/vnd.syncml.dm.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"ddf\"]\n },\n \"application/vnd.syncml.dmtnds+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmtnds+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.syncml.ds.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tableschema+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tao.intent-module-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"tao\"]\n },\n \"application/vnd.tcpdump.pcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcap\",\"cap\",\"dmp\"]\n },\n \"application/vnd.think-cell.ppttc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tmd.mediaflex.api+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tmobile-livetv\": {\n \"source\": \"iana\",\n \"extensions\": [\"tmo\"]\n },\n \"application/vnd.tri.onesource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.trid.tpt\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpt\"]\n },\n \"application/vnd.triscape.mxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxs\"]\n },\n \"application/vnd.trueapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"tra\"]\n },\n \"application/vnd.truedoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ubisoft.webplayer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ufdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"ufd\",\"ufdl\"]\n },\n \"application/vnd.uic.osdm+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.uiq.theme\": {\n \"source\": \"iana\",\n \"extensions\": [\"utz\"]\n },\n \"application/vnd.umajin\": {\n \"source\": \"iana\",\n \"extensions\": [\"umj\"]\n },\n \"application/vnd.unity\": {\n \"source\": \"iana\",\n \"extensions\": [\"unityweb\"]\n },\n \"application/vnd.uoml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uoml\",\"uo\"]\n },\n \"application/vnd.uplanet.alert\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.alert-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.signal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uri-map\": {\n \"source\": \"iana\"\n },\n \"application/vnd.valve.source.material\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcx\"]\n },\n \"application/vnd.vd-study\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vectorworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vel+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.veraison.tsm-report+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.veraison.tsm-report+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.verimatrix.vcas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.veritone.aion+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.veryant.thin\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ves.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vidsoft.vidconference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.visio\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsd\",\"vst\",\"vss\",\"vsw\",\"vsdx\",\"vtx\"]\n },\n \"application/vnd.visionary\": {\n \"source\": \"iana\",\n \"extensions\": [\"vis\"]\n },\n \"application/vnd.vividence.scriptfile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vocalshaper.vsp4\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vsf\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsf\"]\n },\n \"application/vnd.wap.sic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.slc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"wbxml\"]\n },\n \"application/vnd.wap.wmlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlc\"]\n },\n \"application/vnd.wap.wmlscriptc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlsc\"]\n },\n \"application/vnd.wasmflow.wafl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.webturbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"wtb\"]\n },\n \"application/vnd.wfa.dpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.p2p\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.wsc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmf.bootstrap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica.package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.player\": {\n \"source\": \"iana\",\n \"extensions\": [\"nbp\"]\n },\n \"application/vnd.wordlift\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wordperfect\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpd\"]\n },\n \"application/vnd.wqd\": {\n \"source\": \"iana\",\n \"extensions\": [\"wqd\"]\n },\n \"application/vnd.wrq-hp3000-labelled\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wt.stf\": {\n \"source\": \"iana\",\n \"extensions\": [\"stf\"]\n },\n \"application/vnd.wv.csp+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wv.csp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.wv.ssp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xacml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xara\": {\n \"source\": \"iana\",\n \"extensions\": [\"xar\"]\n },\n \"application/vnd.xarin.cpj\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xecrets-encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xfdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdl\"]\n },\n \"application/vnd.xfdl.webform\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xmpie.cpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.dpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.plan\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.ppkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.xlim\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.hv-dic\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvd\"]\n },\n \"application/vnd.yamaha.hv-script\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvs\"]\n },\n \"application/vnd.yamaha.hv-voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvp\"]\n },\n \"application/vnd.yamaha.openscoreformat\": {\n \"source\": \"iana\",\n \"extensions\": [\"osf\"]\n },\n \"application/vnd.yamaha.openscoreformat.osfpvg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osfpvg\"]\n },\n \"application/vnd.yamaha.remote-setup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.smaf-audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"saf\"]\n },\n \"application/vnd.yamaha.smaf-phrase\": {\n \"source\": \"iana\",\n \"extensions\": [\"spf\"]\n },\n \"application/vnd.yamaha.through-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.tunnel-udpencap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yaoweme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yellowriver-custom-menu\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmp\"]\n },\n \"application/vnd.zul\": {\n \"source\": \"iana\",\n \"extensions\": [\"zir\",\"zirz\"]\n },\n \"application/vnd.zzazz.deck+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zaz\"]\n },\n \"application/voicexml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vxml\"]\n },\n \"application/voucher-cms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/voucher-jws+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vp\": {\n \"source\": \"iana\"\n },\n \"application/vp+cose\": {\n \"source\": \"iana\"\n },\n \"application/vp+jwt\": {\n \"source\": \"iana\"\n },\n \"application/vq-rtcpxr\": {\n \"source\": \"iana\"\n },\n \"application/wasm\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wasm\"]\n },\n \"application/watcherinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wif\"]\n },\n \"application/webpush-options+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/whoispp-query\": {\n \"source\": \"iana\"\n },\n \"application/whoispp-response\": {\n \"source\": \"iana\"\n },\n \"application/widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wgt\"]\n },\n \"application/winhlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"hlp\"]\n },\n \"application/wita\": {\n \"source\": \"iana\"\n },\n \"application/wordperfect5.1\": {\n \"source\": \"iana\"\n },\n \"application/wsdl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wsdl\"]\n },\n \"application/wspolicy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wspolicy\"]\n },\n \"application/x-7z-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"7z\"]\n },\n \"application/x-abiword\": {\n \"source\": \"apache\",\n \"extensions\": [\"abw\"]\n },\n \"application/x-ace-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"ace\"]\n },\n \"application/x-amf\": {\n \"source\": \"apache\"\n },\n \"application/x-apple-diskimage\": {\n \"source\": \"apache\",\n \"extensions\": [\"dmg\"]\n },\n \"application/x-arj\": {\n \"compressible\": false,\n \"extensions\": [\"arj\"]\n },\n \"application/x-authorware-bin\": {\n \"source\": \"apache\",\n \"extensions\": [\"aab\",\"x32\",\"u32\",\"vox\"]\n },\n \"application/x-authorware-map\": {\n \"source\": \"apache\",\n \"extensions\": [\"aam\"]\n },\n \"application/x-authorware-seg\": {\n \"source\": \"apache\",\n \"extensions\": [\"aas\"]\n },\n \"application/x-bcpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"bcpio\"]\n },\n \"application/x-bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/x-bittorrent\": {\n \"source\": \"apache\",\n \"extensions\": [\"torrent\"]\n },\n \"application/x-blender\": {\n \"extensions\": [\"blend\"]\n },\n \"application/x-blorb\": {\n \"source\": \"apache\",\n \"extensions\": [\"blb\",\"blorb\"]\n },\n \"application/x-bzip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz\"]\n },\n \"application/x-bzip2\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz2\",\"boz\"]\n },\n \"application/x-cbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"]\n },\n \"application/x-cdlink\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcd\"]\n },\n \"application/x-cfs-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"cfs\"]\n },\n \"application/x-chat\": {\n \"source\": \"apache\",\n \"extensions\": [\"chat\"]\n },\n \"application/x-chess-pgn\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgn\"]\n },\n \"application/x-chrome-extension\": {\n \"extensions\": [\"crx\"]\n },\n \"application/x-cocoa\": {\n \"source\": \"nginx\",\n \"extensions\": [\"cco\"]\n },\n \"application/x-compress\": {\n \"source\": \"apache\"\n },\n \"application/x-compressed\": {\n \"extensions\": [\"rar\"]\n },\n \"application/x-conference\": {\n \"source\": \"apache\",\n \"extensions\": [\"nsc\"]\n },\n \"application/x-cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpio\"]\n },\n \"application/x-csh\": {\n \"source\": \"apache\",\n \"extensions\": [\"csh\"]\n },\n \"application/x-deb\": {\n \"compressible\": false\n },\n \"application/x-debian-package\": {\n \"source\": \"apache\",\n \"extensions\": [\"deb\",\"udeb\"]\n },\n \"application/x-dgc-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"dgc\"]\n },\n \"application/x-director\": {\n \"source\": \"apache\",\n \"extensions\": [\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"]\n },\n \"application/x-doom\": {\n \"source\": \"apache\",\n \"extensions\": [\"wad\"]\n },\n \"application/x-dtbncx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ncx\"]\n },\n \"application/x-dtbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dtb\"]\n },\n \"application/x-dtbresource+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"res\"]\n },\n \"application/x-dvi\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"dvi\"]\n },\n \"application/x-envoy\": {\n \"source\": \"apache\",\n \"extensions\": [\"evy\"]\n },\n \"application/x-eva\": {\n \"source\": \"apache\",\n \"extensions\": [\"eva\"]\n },\n \"application/x-font-bdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"bdf\"]\n },\n \"application/x-font-dos\": {\n \"source\": \"apache\"\n },\n \"application/x-font-framemaker\": {\n \"source\": \"apache\"\n },\n \"application/x-font-ghostscript\": {\n \"source\": \"apache\",\n \"extensions\": [\"gsf\"]\n },\n \"application/x-font-libgrx\": {\n \"source\": \"apache\"\n },\n \"application/x-font-linux-psf\": {\n \"source\": \"apache\",\n \"extensions\": [\"psf\"]\n },\n \"application/x-font-pcf\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcf\"]\n },\n \"application/x-font-snf\": {\n \"source\": \"apache\",\n \"extensions\": [\"snf\"]\n },\n \"application/x-font-speedo\": {\n \"source\": \"apache\"\n },\n \"application/x-font-sunos-news\": {\n \"source\": \"apache\"\n },\n \"application/x-font-type1\": {\n \"source\": \"apache\",\n \"extensions\": [\"pfa\",\"pfb\",\"pfm\",\"afm\"]\n },\n \"application/x-font-vfont\": {\n \"source\": \"apache\"\n },\n \"application/x-freearc\": {\n \"source\": \"apache\",\n \"extensions\": [\"arc\"]\n },\n \"application/x-futuresplash\": {\n \"source\": \"apache\",\n \"extensions\": [\"spl\"]\n },\n \"application/x-gca-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"gca\"]\n },\n \"application/x-glulx\": {\n \"source\": \"apache\",\n \"extensions\": [\"ulx\"]\n },\n \"application/x-gnumeric\": {\n \"source\": \"apache\",\n \"extensions\": [\"gnumeric\"]\n },\n \"application/x-gramps-xml\": {\n \"source\": \"apache\",\n \"extensions\": [\"gramps\"]\n },\n \"application/x-gtar\": {\n \"source\": \"apache\",\n \"extensions\": [\"gtar\"]\n },\n \"application/x-gzip\": {\n \"source\": \"apache\"\n },\n \"application/x-hdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"hdf\"]\n },\n \"application/x-httpd-php\": {\n \"compressible\": true,\n \"extensions\": [\"php\"]\n },\n \"application/x-install-instructions\": {\n \"source\": \"apache\",\n \"extensions\": [\"install\"]\n },\n \"application/x-ipynb+json\": {\n \"compressible\": true,\n \"extensions\": [\"ipynb\"]\n },\n \"application/x-iso9660-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"iso\"]\n },\n \"application/x-iwork-keynote-sffkey\": {\n \"extensions\": [\"key\"]\n },\n \"application/x-iwork-numbers-sffnumbers\": {\n \"extensions\": [\"numbers\"]\n },\n \"application/x-iwork-pages-sffpages\": {\n \"extensions\": [\"pages\"]\n },\n \"application/x-java-archive-diff\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jardiff\"]\n },\n \"application/x-java-jnlp-file\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"jnlp\"]\n },\n \"application/x-javascript\": {\n \"compressible\": true\n },\n \"application/x-keepass2\": {\n \"extensions\": [\"kdbx\"]\n },\n \"application/x-latex\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"latex\"]\n },\n \"application/x-lua-bytecode\": {\n \"extensions\": [\"luac\"]\n },\n \"application/x-lzh-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"lzh\",\"lha\"]\n },\n \"application/x-makeself\": {\n \"source\": \"nginx\",\n \"extensions\": [\"run\"]\n },\n \"application/x-mie\": {\n \"source\": \"apache\",\n \"extensions\": [\"mie\"]\n },\n \"application/x-mobipocket-ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"prc\",\"mobi\"]\n },\n \"application/x-mpegurl\": {\n \"compressible\": false\n },\n \"application/x-ms-application\": {\n \"source\": \"apache\",\n \"extensions\": [\"application\"]\n },\n \"application/x-ms-shortcut\": {\n \"source\": \"apache\",\n \"extensions\": [\"lnk\"]\n },\n \"application/x-ms-wmd\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmd\"]\n },\n \"application/x-ms-wmz\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmz\"]\n },\n \"application/x-ms-xbap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbap\"]\n },\n \"application/x-msaccess\": {\n \"source\": \"apache\",\n \"extensions\": [\"mdb\"]\n },\n \"application/x-msbinder\": {\n \"source\": \"apache\",\n \"extensions\": [\"obd\"]\n },\n \"application/x-mscardfile\": {\n \"source\": \"apache\",\n \"extensions\": [\"crd\"]\n },\n \"application/x-msclip\": {\n \"source\": \"apache\",\n \"extensions\": [\"clp\"]\n },\n \"application/x-msdos-program\": {\n \"extensions\": [\"exe\"]\n },\n \"application/x-msdownload\": {\n \"source\": \"apache\",\n \"extensions\": [\"exe\",\"dll\",\"com\",\"bat\",\"msi\"]\n },\n \"application/x-msmediaview\": {\n \"source\": \"apache\",\n \"extensions\": [\"mvb\",\"m13\",\"m14\"]\n },\n \"application/x-msmetafile\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmf\",\"wmz\",\"emf\",\"emz\"]\n },\n \"application/x-msmoney\": {\n \"source\": \"apache\",\n \"extensions\": [\"mny\"]\n },\n \"application/x-mspublisher\": {\n \"source\": \"apache\",\n \"extensions\": [\"pub\"]\n },\n \"application/x-msschedule\": {\n \"source\": \"apache\",\n \"extensions\": [\"scd\"]\n },\n \"application/x-msterminal\": {\n \"source\": \"apache\",\n \"extensions\": [\"trm\"]\n },\n \"application/x-mswrite\": {\n \"source\": \"apache\",\n \"extensions\": [\"wri\"]\n },\n \"application/x-netcdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"nc\",\"cdf\"]\n },\n \"application/x-ns-proxy-autoconfig\": {\n \"compressible\": true,\n \"extensions\": [\"pac\"]\n },\n \"application/x-nzb\": {\n \"source\": \"apache\",\n \"extensions\": [\"nzb\"]\n },\n \"application/x-perl\": {\n \"source\": \"nginx\",\n \"extensions\": [\"pl\",\"pm\"]\n },\n \"application/x-pilot\": {\n \"source\": \"nginx\",\n \"extensions\": [\"prc\",\"pdb\"]\n },\n \"application/x-pkcs12\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"p12\",\"pfx\"]\n },\n \"application/x-pkcs7-certificates\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7b\",\"spc\"]\n },\n \"application/x-pkcs7-certreqresp\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7r\"]\n },\n \"application/x-pki-message\": {\n \"source\": \"iana\"\n },\n \"application/x-rar-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"rar\"]\n },\n \"application/x-redhat-package-manager\": {\n \"source\": \"nginx\",\n \"extensions\": [\"rpm\"]\n },\n \"application/x-research-info-systems\": {\n \"source\": \"apache\",\n \"extensions\": [\"ris\"]\n },\n \"application/x-sea\": {\n \"source\": \"nginx\",\n \"extensions\": [\"sea\"]\n },\n \"application/x-sh\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"sh\"]\n },\n \"application/x-shar\": {\n \"source\": \"apache\",\n \"extensions\": [\"shar\"]\n },\n \"application/x-shockwave-flash\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"swf\"]\n },\n \"application/x-silverlight-app\": {\n \"source\": \"apache\",\n \"extensions\": [\"xap\"]\n },\n \"application/x-sql\": {\n \"source\": \"apache\",\n \"extensions\": [\"sql\"]\n },\n \"application/x-stuffit\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"sit\"]\n },\n \"application/x-stuffitx\": {\n \"source\": \"apache\",\n \"extensions\": [\"sitx\"]\n },\n \"application/x-subrip\": {\n \"source\": \"apache\",\n \"extensions\": [\"srt\"]\n },\n \"application/x-sv4cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4cpio\"]\n },\n \"application/x-sv4crc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4crc\"]\n },\n \"application/x-t3vm-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"t3\"]\n },\n \"application/x-tads\": {\n \"source\": \"apache\",\n \"extensions\": [\"gam\"]\n },\n \"application/x-tar\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"tar\"]\n },\n \"application/x-tcl\": {\n \"source\": \"apache\",\n \"extensions\": [\"tcl\",\"tk\"]\n },\n \"application/x-tex\": {\n \"source\": \"apache\",\n \"extensions\": [\"tex\"]\n },\n \"application/x-tex-tfm\": {\n \"source\": \"apache\",\n \"extensions\": [\"tfm\"]\n },\n \"application/x-texinfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"texinfo\",\"texi\"]\n },\n \"application/x-tgif\": {\n \"source\": \"apache\",\n \"extensions\": [\"obj\"]\n },\n \"application/x-ustar\": {\n \"source\": \"apache\",\n \"extensions\": [\"ustar\"]\n },\n \"application/x-virtualbox-hdd\": {\n \"compressible\": true,\n \"extensions\": [\"hdd\"]\n },\n \"application/x-virtualbox-ova\": {\n \"compressible\": true,\n \"extensions\": [\"ova\"]\n },\n \"application/x-virtualbox-ovf\": {\n \"compressible\": true,\n \"extensions\": [\"ovf\"]\n },\n \"application/x-virtualbox-vbox\": {\n \"compressible\": true,\n \"extensions\": [\"vbox\"]\n },\n \"application/x-virtualbox-vbox-extpack\": {\n \"compressible\": false,\n \"extensions\": [\"vbox-extpack\"]\n },\n \"application/x-virtualbox-vdi\": {\n \"compressible\": true,\n \"extensions\": [\"vdi\"]\n },\n \"application/x-virtualbox-vhd\": {\n \"compressible\": true,\n \"extensions\": [\"vhd\"]\n },\n \"application/x-virtualbox-vmdk\": {\n \"compressible\": true,\n \"extensions\": [\"vmdk\"]\n },\n \"application/x-wais-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"src\"]\n },\n \"application/x-web-app-manifest+json\": {\n \"compressible\": true,\n \"extensions\": [\"webapp\"]\n },\n \"application/x-www-form-urlencoded\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/x-x509-ca-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"der\",\"crt\",\"pem\"]\n },\n \"application/x-x509-ca-ra-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-x509-next-ca-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-xfig\": {\n \"source\": \"apache\",\n \"extensions\": [\"fig\"]\n },\n \"application/x-xliff+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/x-xpinstall\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"xpi\"]\n },\n \"application/x-xz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xz\"]\n },\n \"application/x-zip-compressed\": {\n \"extensions\": [\"zip\"]\n },\n \"application/x-zmachine\": {\n \"source\": \"apache\",\n \"extensions\": [\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"]\n },\n \"application/x400-bp\": {\n \"source\": \"iana\"\n },\n \"application/xacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xaml+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xaml\"]\n },\n \"application/xcap-att+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xav\"]\n },\n \"application/xcap-caps+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xca\"]\n },\n \"application/xcap-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdf\"]\n },\n \"application/xcap-el+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xel\"]\n },\n \"application/xcap-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcap-ns+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xns\"]\n },\n \"application/xcon-conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcon-conference-info-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xenc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xenc\"]\n },\n \"application/xfdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdf\"]\n },\n \"application/xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xhtml\",\"xht\"]\n },\n \"application/xhtml-voice+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/xliff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\",\"xsl\",\"xsd\",\"rng\"]\n },\n \"application/xml-dtd\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dtd\"]\n },\n \"application/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"application/xml-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xmpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xop\"]\n },\n \"application/xproc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xpl\"]\n },\n \"application/xslt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xsl\",\"xslt\"]\n },\n \"application/xspf+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xspf\"]\n },\n \"application/xv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mxml\",\"xhvml\",\"xvml\",\"xvm\"]\n },\n \"application/yaml\": {\n \"source\": \"iana\"\n },\n \"application/yang\": {\n \"source\": \"iana\",\n \"extensions\": [\"yang\"]\n },\n \"application/yang-data+cbor\": {\n \"source\": \"iana\"\n },\n \"application/yang-data+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-sid+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yin+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"yin\"]\n },\n \"application/zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"zip\"]\n },\n \"application/zip+dotlottie\": {\n \"extensions\": [\"lottie\"]\n },\n \"application/zlib\": {\n \"source\": \"iana\"\n },\n \"application/zstd\": {\n \"source\": \"iana\"\n },\n \"audio/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/3gpp\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"3gpp\"]\n },\n \"audio/3gpp2\": {\n \"source\": \"iana\"\n },\n \"audio/aac\": {\n \"source\": \"iana\",\n \"extensions\": [\"adts\",\"aac\"]\n },\n \"audio/ac3\": {\n \"source\": \"iana\"\n },\n \"audio/adpcm\": {\n \"source\": \"apache\",\n \"extensions\": [\"adp\"]\n },\n \"audio/amr\": {\n \"source\": \"iana\",\n \"extensions\": [\"amr\"]\n },\n \"audio/amr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/amr-wb+\": {\n \"source\": \"iana\"\n },\n \"audio/aptx\": {\n \"source\": \"iana\"\n },\n \"audio/asc\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-advanced-lossless\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-x\": {\n \"source\": \"iana\"\n },\n \"audio/atrac3\": {\n \"source\": \"iana\"\n },\n \"audio/basic\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"au\",\"snd\"]\n },\n \"audio/bv16\": {\n \"source\": \"iana\"\n },\n \"audio/bv32\": {\n \"source\": \"iana\"\n },\n \"audio/clearmode\": {\n \"source\": \"iana\"\n },\n \"audio/cn\": {\n \"source\": \"iana\"\n },\n \"audio/dat12\": {\n \"source\": \"iana\"\n },\n \"audio/dls\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es201108\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202050\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202211\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202212\": {\n \"source\": \"iana\"\n },\n \"audio/dv\": {\n \"source\": \"iana\"\n },\n \"audio/dvi4\": {\n \"source\": \"iana\"\n },\n \"audio/eac3\": {\n \"source\": \"iana\"\n },\n \"audio/encaprtp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc\": {\n \"source\": \"iana\"\n },\n \"audio/evrc-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc0\": {\n \"source\": \"iana\"\n },\n \"audio/evrc1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb1\": {\n \"source\": \"iana\"\n },\n \"audio/evs\": {\n \"source\": \"iana\"\n },\n \"audio/flac\": {\n \"source\": \"iana\"\n },\n \"audio/flexfec\": {\n \"source\": \"iana\"\n },\n \"audio/fwdred\": {\n \"source\": \"iana\"\n },\n \"audio/g711-0\": {\n \"source\": \"iana\"\n },\n \"audio/g719\": {\n \"source\": \"iana\"\n },\n \"audio/g722\": {\n \"source\": \"iana\"\n },\n \"audio/g7221\": {\n \"source\": \"iana\"\n },\n \"audio/g723\": {\n \"source\": \"iana\"\n },\n \"audio/g726-16\": {\n \"source\": \"iana\"\n },\n \"audio/g726-24\": {\n \"source\": \"iana\"\n },\n \"audio/g726-32\": {\n \"source\": \"iana\"\n },\n \"audio/g726-40\": {\n \"source\": \"iana\"\n },\n \"audio/g728\": {\n \"source\": \"iana\"\n },\n \"audio/g729\": {\n \"source\": \"iana\"\n },\n \"audio/g7291\": {\n \"source\": \"iana\"\n },\n \"audio/g729d\": {\n \"source\": \"iana\"\n },\n \"audio/g729e\": {\n \"source\": \"iana\"\n },\n \"audio/gsm\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-efr\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-hr-08\": {\n \"source\": \"iana\"\n },\n \"audio/ilbc\": {\n \"source\": \"iana\"\n },\n \"audio/ip-mr_v2.5\": {\n \"source\": \"iana\"\n },\n \"audio/isac\": {\n \"source\": \"apache\"\n },\n \"audio/l16\": {\n \"source\": \"iana\"\n },\n \"audio/l20\": {\n \"source\": \"iana\"\n },\n \"audio/l24\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/l8\": {\n \"source\": \"iana\"\n },\n \"audio/lpc\": {\n \"source\": \"iana\"\n },\n \"audio/matroska\": {\n \"source\": \"iana\"\n },\n \"audio/melp\": {\n \"source\": \"iana\"\n },\n \"audio/melp1200\": {\n \"source\": \"iana\"\n },\n \"audio/melp2400\": {\n \"source\": \"iana\"\n },\n \"audio/melp600\": {\n \"source\": \"iana\"\n },\n \"audio/mhas\": {\n \"source\": \"iana\"\n },\n \"audio/midi\": {\n \"source\": \"apache\",\n \"extensions\": [\"mid\",\"midi\",\"kar\",\"rmi\"]\n },\n \"audio/midi-clip\": {\n \"source\": \"iana\"\n },\n \"audio/mobile-xmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxmf\"]\n },\n \"audio/mp3\": {\n \"compressible\": false,\n \"extensions\": [\"mp3\"]\n },\n \"audio/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"m4a\",\"mp4a\",\"m4b\"]\n },\n \"audio/mp4a-latm\": {\n \"source\": \"iana\"\n },\n \"audio/mpa\": {\n \"source\": \"iana\"\n },\n \"audio/mpa-robust\": {\n \"source\": \"iana\"\n },\n \"audio/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"]\n },\n \"audio/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"audio/musepack\": {\n \"source\": \"apache\"\n },\n \"audio/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"oga\",\"ogg\",\"spx\",\"opus\"]\n },\n \"audio/opus\": {\n \"source\": \"iana\"\n },\n \"audio/parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/pcma\": {\n \"source\": \"iana\"\n },\n \"audio/pcma-wb\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu-wb\": {\n \"source\": \"iana\"\n },\n \"audio/prs.sid\": {\n \"source\": \"iana\"\n },\n \"audio/qcelp\": {\n \"source\": \"iana\"\n },\n \"audio/raptorfec\": {\n \"source\": \"iana\"\n },\n \"audio/red\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/rtploopback\": {\n \"source\": \"iana\"\n },\n \"audio/rtx\": {\n \"source\": \"iana\"\n },\n \"audio/s3m\": {\n \"source\": \"apache\",\n \"extensions\": [\"s3m\"]\n },\n \"audio/scip\": {\n \"source\": \"iana\"\n },\n \"audio/silk\": {\n \"source\": \"apache\",\n \"extensions\": [\"sil\"]\n },\n \"audio/smv\": {\n \"source\": \"iana\"\n },\n \"audio/smv-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/smv0\": {\n \"source\": \"iana\"\n },\n \"audio/sofa\": {\n \"source\": \"iana\"\n },\n \"audio/sp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/speex\": {\n \"source\": \"iana\"\n },\n \"audio/t140c\": {\n \"source\": \"iana\"\n },\n \"audio/t38\": {\n \"source\": \"iana\"\n },\n \"audio/telephone-event\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp_bb\": {\n \"source\": \"iana\"\n },\n \"audio/tone\": {\n \"source\": \"iana\"\n },\n \"audio/tsvcis\": {\n \"source\": \"iana\"\n },\n \"audio/uemclip\": {\n \"source\": \"iana\"\n },\n \"audio/ulpfec\": {\n \"source\": \"iana\"\n },\n \"audio/usac\": {\n \"source\": \"iana\"\n },\n \"audio/vdvi\": {\n \"source\": \"iana\"\n },\n \"audio/vmr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.3gpp.iufp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.4sb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.audiokoz\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.celp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cisco.nse\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cmles.radio-events\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.anp1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.inf1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dece.audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"uva\",\"uvva\"]\n },\n \"audio/vnd.digital-winds\": {\n \"source\": \"iana\",\n \"extensions\": [\"eol\"]\n },\n \"audio/vnd.dlna.adts\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mlp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mps\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2x\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2z\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pulse.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dra\": {\n \"source\": \"iana\",\n \"extensions\": [\"dra\"]\n },\n \"audio/vnd.dts\": {\n \"source\": \"iana\",\n \"extensions\": [\"dts\"]\n },\n \"audio/vnd.dts.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"dtshd\"]\n },\n \"audio/vnd.dts.uhd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dvb.file\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.everad.plj\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.hns.audio\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.lucent.voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"lvp\"]\n },\n \"audio/vnd.ms-playready.media.pya\": {\n \"source\": \"iana\",\n \"extensions\": [\"pya\"]\n },\n \"audio/vnd.nokia.mobile-xmf\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nortel.vbk\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nuera.ecelp4800\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp4800\"]\n },\n \"audio/vnd.nuera.ecelp7470\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp7470\"]\n },\n \"audio/vnd.nuera.ecelp9600\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp9600\"]\n },\n \"audio/vnd.octel.sbc\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.presonus.multitrack\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.qcelp\": {\n \"source\": \"apache\"\n },\n \"audio/vnd.rhetorex.32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.rip\": {\n \"source\": \"iana\",\n \"extensions\": [\"rip\"]\n },\n \"audio/vnd.rn-realaudio\": {\n \"compressible\": false\n },\n \"audio/vnd.sealedmedia.softseal.mpeg\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.vmx.cvsd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.wave\": {\n \"compressible\": false\n },\n \"audio/vorbis\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/vorbis-config\": {\n \"source\": \"iana\"\n },\n \"audio/wav\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/wave\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"weba\"]\n },\n \"audio/x-aac\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"aac\"]\n },\n \"audio/x-aiff\": {\n \"source\": \"apache\",\n \"extensions\": [\"aif\",\"aiff\",\"aifc\"]\n },\n \"audio/x-caf\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"caf\"]\n },\n \"audio/x-flac\": {\n \"source\": \"apache\",\n \"extensions\": [\"flac\"]\n },\n \"audio/x-m4a\": {\n \"source\": \"nginx\",\n \"extensions\": [\"m4a\"]\n },\n \"audio/x-matroska\": {\n \"source\": \"apache\",\n \"extensions\": [\"mka\"]\n },\n \"audio/x-mpegurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"m3u\"]\n },\n \"audio/x-ms-wax\": {\n \"source\": \"apache\",\n \"extensions\": [\"wax\"]\n },\n \"audio/x-ms-wma\": {\n \"source\": \"apache\",\n \"extensions\": [\"wma\"]\n },\n \"audio/x-pn-realaudio\": {\n \"source\": \"apache\",\n \"extensions\": [\"ram\",\"ra\"]\n },\n \"audio/x-pn-realaudio-plugin\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmp\"]\n },\n \"audio/x-realaudio\": {\n \"source\": \"nginx\",\n \"extensions\": [\"ra\"]\n },\n \"audio/x-tta\": {\n \"source\": \"apache\"\n },\n \"audio/x-wav\": {\n \"source\": \"apache\",\n \"extensions\": [\"wav\"]\n },\n \"audio/xm\": {\n \"source\": \"apache\",\n \"extensions\": [\"xm\"]\n },\n \"chemical/x-cdx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cdx\"]\n },\n \"chemical/x-cif\": {\n \"source\": \"apache\",\n \"extensions\": [\"cif\"]\n },\n \"chemical/x-cmdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmdf\"]\n },\n \"chemical/x-cml\": {\n \"source\": \"apache\",\n \"extensions\": [\"cml\"]\n },\n \"chemical/x-csml\": {\n \"source\": \"apache\",\n \"extensions\": [\"csml\"]\n },\n \"chemical/x-pdb\": {\n \"source\": \"apache\"\n },\n \"chemical/x-xyz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xyz\"]\n },\n \"font/collection\": {\n \"source\": \"iana\",\n \"extensions\": [\"ttc\"]\n },\n \"font/otf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"otf\"]\n },\n \"font/sfnt\": {\n \"source\": \"iana\"\n },\n \"font/ttf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttf\"]\n },\n \"font/woff\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff\"]\n },\n \"font/woff2\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff2\"]\n },\n \"image/aces\": {\n \"source\": \"iana\",\n \"extensions\": [\"exr\"]\n },\n \"image/apng\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"apng\"]\n },\n \"image/avci\": {\n \"source\": \"iana\",\n \"extensions\": [\"avci\"]\n },\n \"image/avcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"avcs\"]\n },\n \"image/avif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"avif\"]\n },\n \"image/bmp\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmp\",\"dib\"]\n },\n \"image/cgm\": {\n \"source\": \"iana\",\n \"extensions\": [\"cgm\"]\n },\n \"image/dicom-rle\": {\n \"source\": \"iana\",\n \"extensions\": [\"drle\"]\n },\n \"image/dpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"dpx\"]\n },\n \"image/emf\": {\n \"source\": \"iana\",\n \"extensions\": [\"emf\"]\n },\n \"image/fits\": {\n \"source\": \"iana\",\n \"extensions\": [\"fits\"]\n },\n \"image/g3fax\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3\"]\n },\n \"image/gif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gif\"]\n },\n \"image/heic\": {\n \"source\": \"iana\",\n \"extensions\": [\"heic\"]\n },\n \"image/heic-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heics\"]\n },\n \"image/heif\": {\n \"source\": \"iana\",\n \"extensions\": [\"heif\"]\n },\n \"image/heif-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heifs\"]\n },\n \"image/hej2k\": {\n \"source\": \"iana\",\n \"extensions\": [\"hej2\"]\n },\n \"image/ief\": {\n \"source\": \"iana\",\n \"extensions\": [\"ief\"]\n },\n \"image/j2c\": {\n \"source\": \"iana\"\n },\n \"image/jaii\": {\n \"source\": \"iana\",\n \"extensions\": [\"jaii\"]\n },\n \"image/jais\": {\n \"source\": \"iana\",\n \"extensions\": [\"jais\"]\n },\n \"image/jls\": {\n \"source\": \"iana\",\n \"extensions\": [\"jls\"]\n },\n \"image/jp2\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jp2\",\"jpg2\"]\n },\n \"image/jpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpg\",\"jpeg\",\"jpe\"]\n },\n \"image/jph\": {\n \"source\": \"iana\",\n \"extensions\": [\"jph\"]\n },\n \"image/jphc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jhc\"]\n },\n \"image/jpm\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpm\",\"jpgm\"]\n },\n \"image/jpx\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpx\",\"jpf\"]\n },\n \"image/jxl\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxl\"]\n },\n \"image/jxr\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxr\"]\n },\n \"image/jxra\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxra\"]\n },\n \"image/jxrs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxrs\"]\n },\n \"image/jxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxs\"]\n },\n \"image/jxsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsc\"]\n },\n \"image/jxsi\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsi\"]\n },\n \"image/jxss\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxss\"]\n },\n \"image/ktx\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx\"]\n },\n \"image/ktx2\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx2\"]\n },\n \"image/naplps\": {\n \"source\": \"iana\"\n },\n \"image/pjpeg\": {\n \"compressible\": false,\n \"extensions\": [\"jfif\"]\n },\n \"image/png\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"png\"]\n },\n \"image/prs.btif\": {\n \"source\": \"iana\",\n \"extensions\": [\"btif\",\"btf\"]\n },\n \"image/prs.pti\": {\n \"source\": \"iana\",\n \"extensions\": [\"pti\"]\n },\n \"image/pwg-raster\": {\n \"source\": \"iana\"\n },\n \"image/sgi\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgi\"]\n },\n \"image/svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"svg\",\"svgz\"]\n },\n \"image/t38\": {\n \"source\": \"iana\",\n \"extensions\": [\"t38\"]\n },\n \"image/tiff\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"tif\",\"tiff\"]\n },\n \"image/tiff-fx\": {\n \"source\": \"iana\",\n \"extensions\": [\"tfx\"]\n },\n \"image/vnd.adobe.photoshop\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"psd\"]\n },\n \"image/vnd.airzip.accelerator.azv\": {\n \"source\": \"iana\",\n \"extensions\": [\"azv\"]\n },\n \"image/vnd.clip\": {\n \"source\": \"iana\"\n },\n \"image/vnd.cns.inf2\": {\n \"source\": \"iana\"\n },\n \"image/vnd.dece.graphic\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"]\n },\n \"image/vnd.djvu\": {\n \"source\": \"iana\",\n \"extensions\": [\"djvu\",\"djv\"]\n },\n \"image/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"image/vnd.dwg\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwg\"]\n },\n \"image/vnd.dxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxf\"]\n },\n \"image/vnd.fastbidsheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fbs\"]\n },\n \"image/vnd.fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"fpx\"]\n },\n \"image/vnd.fst\": {\n \"source\": \"iana\",\n \"extensions\": [\"fst\"]\n },\n \"image/vnd.fujixerox.edmics-mmr\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmr\"]\n },\n \"image/vnd.fujixerox.edmics-rlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"rlc\"]\n },\n \"image/vnd.globalgraphics.pgb\": {\n \"source\": \"iana\"\n },\n \"image/vnd.microsoft.icon\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/vnd.mix\": {\n \"source\": \"iana\"\n },\n \"image/vnd.mozilla.apng\": {\n \"source\": \"iana\"\n },\n \"image/vnd.ms-dds\": {\n \"compressible\": true,\n \"extensions\": [\"dds\"]\n },\n \"image/vnd.ms-modi\": {\n \"source\": \"iana\",\n \"extensions\": [\"mdi\"]\n },\n \"image/vnd.ms-photo\": {\n \"source\": \"apache\",\n \"extensions\": [\"wdp\"]\n },\n \"image/vnd.net-fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"npx\"]\n },\n \"image/vnd.pco.b16\": {\n \"source\": \"iana\",\n \"extensions\": [\"b16\"]\n },\n \"image/vnd.radiance\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealed.png\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.gif\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.jpg\": {\n \"source\": \"iana\"\n },\n \"image/vnd.svf\": {\n \"source\": \"iana\"\n },\n \"image/vnd.tencent.tap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tap\"]\n },\n \"image/vnd.valve.source.texture\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtf\"]\n },\n \"image/vnd.wap.wbmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"wbmp\"]\n },\n \"image/vnd.xiff\": {\n \"source\": \"iana\",\n \"extensions\": [\"xif\"]\n },\n \"image/vnd.zbrush.pcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcx\"]\n },\n \"image/webp\": {\n \"source\": \"iana\",\n \"extensions\": [\"webp\"]\n },\n \"image/wmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmf\"]\n },\n \"image/x-3ds\": {\n \"source\": \"apache\",\n \"extensions\": [\"3ds\"]\n },\n \"image/x-adobe-dng\": {\n \"extensions\": [\"dng\"]\n },\n \"image/x-cmu-raster\": {\n \"source\": \"apache\",\n \"extensions\": [\"ras\"]\n },\n \"image/x-cmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmx\"]\n },\n \"image/x-emf\": {\n \"source\": \"iana\"\n },\n \"image/x-freehand\": {\n \"source\": \"apache\",\n \"extensions\": [\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"]\n },\n \"image/x-icon\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/x-jng\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jng\"]\n },\n \"image/x-mrsid-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"sid\"]\n },\n \"image/x-ms-bmp\": {\n \"source\": \"nginx\",\n \"compressible\": true,\n \"extensions\": [\"bmp\"]\n },\n \"image/x-pcx\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcx\"]\n },\n \"image/x-pict\": {\n \"source\": \"apache\",\n \"extensions\": [\"pic\",\"pct\"]\n },\n \"image/x-portable-anymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pnm\"]\n },\n \"image/x-portable-bitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pbm\"]\n },\n \"image/x-portable-graymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgm\"]\n },\n \"image/x-portable-pixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"ppm\"]\n },\n \"image/x-rgb\": {\n \"source\": \"apache\",\n \"extensions\": [\"rgb\"]\n },\n \"image/x-tga\": {\n \"source\": \"apache\",\n \"extensions\": [\"tga\"]\n },\n \"image/x-wmf\": {\n \"source\": \"iana\"\n },\n \"image/x-xbitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbm\"]\n },\n \"image/x-xcf\": {\n \"compressible\": false\n },\n \"image/x-xpixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xpm\"]\n },\n \"image/x-xwindowdump\": {\n \"source\": \"apache\",\n \"extensions\": [\"xwd\"]\n },\n \"message/bhttp\": {\n \"source\": \"iana\"\n },\n \"message/cpim\": {\n \"source\": \"iana\"\n },\n \"message/delivery-status\": {\n \"source\": \"iana\"\n },\n \"message/disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\n \"disposition-notification\"\n ]\n },\n \"message/external-body\": {\n \"source\": \"iana\"\n },\n \"message/feedback-report\": {\n \"source\": \"iana\"\n },\n \"message/global\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8msg\"]\n },\n \"message/global-delivery-status\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8dsn\"]\n },\n \"message/global-disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8mdn\"]\n },\n \"message/global-headers\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8hdr\"]\n },\n \"message/http\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/imdn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"message/mls\": {\n \"source\": \"iana\"\n },\n \"message/news\": {\n \"source\": \"apache\"\n },\n \"message/ohttp-req\": {\n \"source\": \"iana\"\n },\n \"message/ohttp-res\": {\n \"source\": \"iana\"\n },\n \"message/partial\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/rfc822\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eml\",\"mime\",\"mht\",\"mhtml\"]\n },\n \"message/s-http\": {\n \"source\": \"apache\"\n },\n \"message/sip\": {\n \"source\": \"iana\"\n },\n \"message/sipfrag\": {\n \"source\": \"iana\"\n },\n \"message/tracking-status\": {\n \"source\": \"iana\"\n },\n \"message/vnd.si.simp\": {\n \"source\": \"apache\"\n },\n \"message/vnd.wfa.wsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wsc\"]\n },\n \"model/3mf\": {\n \"source\": \"iana\",\n \"extensions\": [\"3mf\"]\n },\n \"model/e57\": {\n \"source\": \"iana\"\n },\n \"model/gltf+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gltf\"]\n },\n \"model/gltf-binary\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"glb\"]\n },\n \"model/iges\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"igs\",\"iges\"]\n },\n \"model/jt\": {\n \"source\": \"iana\",\n \"extensions\": [\"jt\"]\n },\n \"model/mesh\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"msh\",\"mesh\",\"silo\"]\n },\n \"model/mtl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mtl\"]\n },\n \"model/obj\": {\n \"source\": \"iana\",\n \"extensions\": [\"obj\"]\n },\n \"model/prc\": {\n \"source\": \"iana\",\n \"extensions\": [\"prc\"]\n },\n \"model/step\": {\n \"source\": \"iana\",\n \"extensions\": [\"step\",\"stp\",\"stpnc\",\"p21\",\"210\"]\n },\n \"model/step+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"stpx\"]\n },\n \"model/step+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpz\"]\n },\n \"model/step-xml+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpxz\"]\n },\n \"model/stl\": {\n \"source\": \"iana\",\n \"extensions\": [\"stl\"]\n },\n \"model/u3d\": {\n \"source\": \"iana\",\n \"extensions\": [\"u3d\"]\n },\n \"model/vnd.bary\": {\n \"source\": \"iana\",\n \"extensions\": [\"bary\"]\n },\n \"model/vnd.cld\": {\n \"source\": \"iana\",\n \"extensions\": [\"cld\"]\n },\n \"model/vnd.collada+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dae\"]\n },\n \"model/vnd.dwf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwf\"]\n },\n \"model/vnd.flatland.3dml\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"gdl\"]\n },\n \"model/vnd.gs-gdl\": {\n \"source\": \"apache\"\n },\n \"model/vnd.gs.gdl\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gtw\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtw\"]\n },\n \"model/vnd.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"model/vnd.mts\": {\n \"source\": \"iana\",\n \"extensions\": [\"mts\"]\n },\n \"model/vnd.opengex\": {\n \"source\": \"iana\",\n \"extensions\": [\"ogex\"]\n },\n \"model/vnd.parasolid.transmit.binary\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_b\"]\n },\n \"model/vnd.parasolid.transmit.text\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_t\"]\n },\n \"model/vnd.pytha.pyox\": {\n \"source\": \"iana\",\n \"extensions\": [\"pyo\",\"pyox\"]\n },\n \"model/vnd.rosette.annotated-data-model\": {\n \"source\": \"iana\"\n },\n \"model/vnd.sap.vds\": {\n \"source\": \"iana\",\n \"extensions\": [\"vds\"]\n },\n \"model/vnd.usda\": {\n \"source\": \"iana\",\n \"extensions\": [\"usda\"]\n },\n \"model/vnd.usdz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"usdz\"]\n },\n \"model/vnd.valve.source.compiled-map\": {\n \"source\": \"iana\",\n \"extensions\": [\"bsp\"]\n },\n \"model/vnd.vtu\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtu\"]\n },\n \"model/vrml\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"wrl\",\"vrml\"]\n },\n \"model/x3d+binary\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3db\",\"x3dbz\"]\n },\n \"model/x3d+fastinfoset\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3db\"]\n },\n \"model/x3d+vrml\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3dv\",\"x3dvz\"]\n },\n \"model/x3d+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"x3d\",\"x3dz\"]\n },\n \"model/x3d-vrml\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3dv\"]\n },\n \"multipart/alternative\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/appledouble\": {\n \"source\": \"iana\"\n },\n \"multipart/byteranges\": {\n \"source\": \"iana\"\n },\n \"multipart/digest\": {\n \"source\": \"iana\"\n },\n \"multipart/encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/form-data\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/header-set\": {\n \"source\": \"iana\"\n },\n \"multipart/mixed\": {\n \"source\": \"iana\"\n },\n \"multipart/multilingual\": {\n \"source\": \"iana\"\n },\n \"multipart/parallel\": {\n \"source\": \"iana\"\n },\n \"multipart/related\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/report\": {\n \"source\": \"iana\"\n },\n \"multipart/signed\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/vnd.bint.med-plus\": {\n \"source\": \"iana\"\n },\n \"multipart/voice-message\": {\n \"source\": \"iana\"\n },\n \"multipart/x-mixed-replace\": {\n \"source\": \"iana\"\n },\n \"text/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"text/cache-manifest\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"appcache\",\"manifest\"]\n },\n \"text/calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"ics\",\"ifb\"]\n },\n \"text/calender\": {\n \"compressible\": true\n },\n \"text/cmd\": {\n \"compressible\": true\n },\n \"text/coffeescript\": {\n \"extensions\": [\"coffee\",\"litcoffee\"]\n },\n \"text/cql\": {\n \"source\": \"iana\"\n },\n \"text/cql-expression\": {\n \"source\": \"iana\"\n },\n \"text/cql-identifier\": {\n \"source\": \"iana\"\n },\n \"text/css\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"css\"]\n },\n \"text/csv\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csv\"]\n },\n \"text/csv-schema\": {\n \"source\": \"iana\"\n },\n \"text/directory\": {\n \"source\": \"iana\"\n },\n \"text/dns\": {\n \"source\": \"iana\"\n },\n \"text/ecmascript\": {\n \"source\": \"apache\"\n },\n \"text/encaprtp\": {\n \"source\": \"iana\"\n },\n \"text/enriched\": {\n \"source\": \"iana\"\n },\n \"text/fhirpath\": {\n \"source\": \"iana\"\n },\n \"text/flexfec\": {\n \"source\": \"iana\"\n },\n \"text/fwdred\": {\n \"source\": \"iana\"\n },\n \"text/gff3\": {\n \"source\": \"iana\"\n },\n \"text/grammar-ref-list\": {\n \"source\": \"iana\"\n },\n \"text/hl7v2\": {\n \"source\": \"iana\"\n },\n \"text/html\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"html\",\"htm\",\"shtml\"]\n },\n \"text/jade\": {\n \"extensions\": [\"jade\"]\n },\n \"text/javascript\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"js\",\"mjs\"]\n },\n \"text/jcr-cnd\": {\n \"source\": \"iana\"\n },\n \"text/jsx\": {\n \"compressible\": true,\n \"extensions\": [\"jsx\"]\n },\n \"text/less\": {\n \"compressible\": true,\n \"extensions\": [\"less\"]\n },\n \"text/markdown\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"md\",\"markdown\"]\n },\n \"text/mathml\": {\n \"source\": \"nginx\",\n \"extensions\": [\"mml\"]\n },\n \"text/mdx\": {\n \"compressible\": true,\n \"extensions\": [\"mdx\"]\n },\n \"text/mizar\": {\n \"source\": \"iana\"\n },\n \"text/n3\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"n3\"]\n },\n \"text/parameters\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/parityfec\": {\n \"source\": \"iana\"\n },\n \"text/plain\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"]\n },\n \"text/provenance-notation\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/prs.fallenstein.rst\": {\n \"source\": \"iana\"\n },\n \"text/prs.lines.tag\": {\n \"source\": \"iana\",\n \"extensions\": [\"dsc\"]\n },\n \"text/prs.prop.logic\": {\n \"source\": \"iana\"\n },\n \"text/prs.texi\": {\n \"source\": \"iana\"\n },\n \"text/raptorfec\": {\n \"source\": \"iana\"\n },\n \"text/red\": {\n \"source\": \"iana\"\n },\n \"text/rfc822-headers\": {\n \"source\": \"iana\"\n },\n \"text/richtext\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtx\"]\n },\n \"text/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"text/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"text/rtploopback\": {\n \"source\": \"iana\"\n },\n \"text/rtx\": {\n \"source\": \"iana\"\n },\n \"text/sgml\": {\n \"source\": \"iana\",\n \"extensions\": [\"sgml\",\"sgm\"]\n },\n \"text/shaclc\": {\n \"source\": \"iana\"\n },\n \"text/shex\": {\n \"source\": \"iana\",\n \"extensions\": [\"shex\"]\n },\n \"text/slim\": {\n \"extensions\": [\"slim\",\"slm\"]\n },\n \"text/spdx\": {\n \"source\": \"iana\",\n \"extensions\": [\"spdx\"]\n },\n \"text/strings\": {\n \"source\": \"iana\"\n },\n \"text/stylus\": {\n \"extensions\": [\"stylus\",\"styl\"]\n },\n \"text/t140\": {\n \"source\": \"iana\"\n },\n \"text/tab-separated-values\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tsv\"]\n },\n \"text/troff\": {\n \"source\": \"iana\",\n \"extensions\": [\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"]\n },\n \"text/turtle\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"ttl\"]\n },\n \"text/ulpfec\": {\n \"source\": \"iana\"\n },\n \"text/uri-list\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uri\",\"uris\",\"urls\"]\n },\n \"text/vcard\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vcard\"]\n },\n \"text/vnd.a\": {\n \"source\": \"iana\"\n },\n \"text/vnd.abc\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ascii-art\": {\n \"source\": \"iana\"\n },\n \"text/vnd.curl\": {\n \"source\": \"iana\",\n \"extensions\": [\"curl\"]\n },\n \"text/vnd.curl.dcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"dcurl\"]\n },\n \"text/vnd.curl.mcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"mcurl\"]\n },\n \"text/vnd.curl.scurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"scurl\"]\n },\n \"text/vnd.debian.copyright\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.dmclientscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"text/vnd.esmertec.theme-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.exchangeable\": {\n \"source\": \"iana\"\n },\n \"text/vnd.familysearch.gedcom\": {\n \"source\": \"iana\",\n \"extensions\": [\"ged\"]\n },\n \"text/vnd.ficlab.flt\": {\n \"source\": \"iana\"\n },\n \"text/vnd.fly\": {\n \"source\": \"iana\",\n \"extensions\": [\"fly\"]\n },\n \"text/vnd.fmi.flexstor\": {\n \"source\": \"iana\",\n \"extensions\": [\"flx\"]\n },\n \"text/vnd.gml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.graphviz\": {\n \"source\": \"iana\",\n \"extensions\": [\"gv\"]\n },\n \"text/vnd.hans\": {\n \"source\": \"iana\"\n },\n \"text/vnd.hgl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.in3d.3dml\": {\n \"source\": \"iana\",\n \"extensions\": [\"3dml\"]\n },\n \"text/vnd.in3d.spot\": {\n \"source\": \"iana\",\n \"extensions\": [\"spot\"]\n },\n \"text/vnd.iptc.newsml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.iptc.nitf\": {\n \"source\": \"iana\"\n },\n \"text/vnd.latex-z\": {\n \"source\": \"iana\"\n },\n \"text/vnd.motorola.reflex\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ms-mediapackage\": {\n \"source\": \"iana\"\n },\n \"text/vnd.net2phone.commcenter.command\": {\n \"source\": \"iana\"\n },\n \"text/vnd.radisys.msml-basic-layout\": {\n \"source\": \"iana\"\n },\n \"text/vnd.senx.warpscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.si.uricatalogue\": {\n \"source\": \"apache\"\n },\n \"text/vnd.sosi\": {\n \"source\": \"iana\"\n },\n \"text/vnd.sun.j2me.app-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"jad\"]\n },\n \"text/vnd.trolltech.linguist\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.vcf\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.si\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.sl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.wml\": {\n \"source\": \"iana\",\n \"extensions\": [\"wml\"]\n },\n \"text/vnd.wap.wmlscript\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmls\"]\n },\n \"text/vnd.zoo.kcl\": {\n \"source\": \"iana\"\n },\n \"text/vtt\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"vtt\"]\n },\n \"text/wgsl\": {\n \"source\": \"iana\",\n \"extensions\": [\"wgsl\"]\n },\n \"text/x-asm\": {\n \"source\": \"apache\",\n \"extensions\": [\"s\",\"asm\"]\n },\n \"text/x-c\": {\n \"source\": \"apache\",\n \"extensions\": [\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"]\n },\n \"text/x-component\": {\n \"source\": \"nginx\",\n \"extensions\": [\"htc\"]\n },\n \"text/x-fortran\": {\n \"source\": \"apache\",\n \"extensions\": [\"f\",\"for\",\"f77\",\"f90\"]\n },\n \"text/x-gwt-rpc\": {\n \"compressible\": true\n },\n \"text/x-handlebars-template\": {\n \"extensions\": [\"hbs\"]\n },\n \"text/x-java-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"java\"]\n },\n \"text/x-jquery-tmpl\": {\n \"compressible\": true\n },\n \"text/x-lua\": {\n \"extensions\": [\"lua\"]\n },\n \"text/x-markdown\": {\n \"compressible\": true,\n \"extensions\": [\"mkd\"]\n },\n \"text/x-nfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"nfo\"]\n },\n \"text/x-opml\": {\n \"source\": \"apache\",\n \"extensions\": [\"opml\"]\n },\n \"text/x-org\": {\n \"compressible\": true,\n \"extensions\": [\"org\"]\n },\n \"text/x-pascal\": {\n \"source\": \"apache\",\n \"extensions\": [\"p\",\"pas\"]\n },\n \"text/x-processing\": {\n \"compressible\": true,\n \"extensions\": [\"pde\"]\n },\n \"text/x-sass\": {\n \"extensions\": [\"sass\"]\n },\n \"text/x-scss\": {\n \"extensions\": [\"scss\"]\n },\n \"text/x-setext\": {\n \"source\": \"apache\",\n \"extensions\": [\"etx\"]\n },\n \"text/x-sfv\": {\n \"source\": \"apache\",\n \"extensions\": [\"sfv\"]\n },\n \"text/x-suse-ymp\": {\n \"compressible\": true,\n \"extensions\": [\"ymp\"]\n },\n \"text/x-uuencode\": {\n \"source\": \"apache\",\n \"extensions\": [\"uu\"]\n },\n \"text/x-vcalendar\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcs\"]\n },\n \"text/x-vcard\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcf\"]\n },\n \"text/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\"]\n },\n \"text/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"text/yaml\": {\n \"compressible\": true,\n \"extensions\": [\"yaml\",\"yml\"]\n },\n \"video/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"video/3gpp\": {\n \"source\": \"iana\",\n \"extensions\": [\"3gp\",\"3gpp\"]\n },\n \"video/3gpp-tt\": {\n \"source\": \"iana\"\n },\n \"video/3gpp2\": {\n \"source\": \"iana\",\n \"extensions\": [\"3g2\"]\n },\n \"video/av1\": {\n \"source\": \"iana\"\n },\n \"video/bmpeg\": {\n \"source\": \"iana\"\n },\n \"video/bt656\": {\n \"source\": \"iana\"\n },\n \"video/celb\": {\n \"source\": \"iana\"\n },\n \"video/dv\": {\n \"source\": \"iana\"\n },\n \"video/encaprtp\": {\n \"source\": \"iana\"\n },\n \"video/evc\": {\n \"source\": \"iana\"\n },\n \"video/ffv1\": {\n \"source\": \"iana\"\n },\n \"video/flexfec\": {\n \"source\": \"iana\"\n },\n \"video/h261\": {\n \"source\": \"iana\",\n \"extensions\": [\"h261\"]\n },\n \"video/h263\": {\n \"source\": \"iana\",\n \"extensions\": [\"h263\"]\n },\n \"video/h263-1998\": {\n \"source\": \"iana\"\n },\n \"video/h263-2000\": {\n \"source\": \"iana\"\n },\n \"video/h264\": {\n \"source\": \"iana\",\n \"extensions\": [\"h264\"]\n },\n \"video/h264-rcdo\": {\n \"source\": \"iana\"\n },\n \"video/h264-svc\": {\n \"source\": \"iana\"\n },\n \"video/h265\": {\n \"source\": \"iana\"\n },\n \"video/h266\": {\n \"source\": \"iana\"\n },\n \"video/iso.segment\": {\n \"source\": \"iana\",\n \"extensions\": [\"m4s\"]\n },\n \"video/jpeg\": {\n \"source\": \"iana\",\n \"extensions\": [\"jpgv\"]\n },\n \"video/jpeg2000\": {\n \"source\": \"iana\"\n },\n \"video/jpm\": {\n \"source\": \"apache\",\n \"extensions\": [\"jpm\",\"jpgm\"]\n },\n \"video/jxsv\": {\n \"source\": \"iana\"\n },\n \"video/lottie+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"video/matroska\": {\n \"source\": \"iana\"\n },\n \"video/matroska-3d\": {\n \"source\": \"iana\"\n },\n \"video/mj2\": {\n \"source\": \"iana\",\n \"extensions\": [\"mj2\",\"mjp2\"]\n },\n \"video/mp1s\": {\n \"source\": \"iana\"\n },\n \"video/mp2p\": {\n \"source\": \"iana\"\n },\n \"video/mp2t\": {\n \"source\": \"iana\",\n \"extensions\": [\"ts\",\"m2t\",\"m2ts\",\"mts\"]\n },\n \"video/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mp4\",\"mp4v\",\"mpg4\"]\n },\n \"video/mp4v-es\": {\n \"source\": \"iana\"\n },\n \"video/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"]\n },\n \"video/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"video/mpv\": {\n \"source\": \"iana\"\n },\n \"video/nv\": {\n \"source\": \"iana\"\n },\n \"video/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogv\"]\n },\n \"video/parityfec\": {\n \"source\": \"iana\"\n },\n \"video/pointer\": {\n \"source\": \"iana\"\n },\n \"video/quicktime\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"qt\",\"mov\"]\n },\n \"video/raptorfec\": {\n \"source\": \"iana\"\n },\n \"video/raw\": {\n \"source\": \"iana\"\n },\n \"video/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"video/rtploopback\": {\n \"source\": \"iana\"\n },\n \"video/rtx\": {\n \"source\": \"iana\"\n },\n \"video/scip\": {\n \"source\": \"iana\"\n },\n \"video/smpte291\": {\n \"source\": \"iana\"\n },\n \"video/smpte292m\": {\n \"source\": \"iana\"\n },\n \"video/ulpfec\": {\n \"source\": \"iana\"\n },\n \"video/vc1\": {\n \"source\": \"iana\"\n },\n \"video/vc2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.cctv\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvh\",\"uvvh\"]\n },\n \"video/vnd.dece.mobile\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvm\",\"uvvm\"]\n },\n \"video/vnd.dece.mp4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.pd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvp\",\"uvvp\"]\n },\n \"video/vnd.dece.sd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvs\",\"uvvs\"]\n },\n \"video/vnd.dece.video\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvv\",\"uvvv\"]\n },\n \"video/vnd.directv.mpeg\": {\n \"source\": \"iana\"\n },\n \"video/vnd.directv.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dlna.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dvb.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"dvb\"]\n },\n \"video/vnd.fvt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fvt\"]\n },\n \"video/vnd.hns.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsavc\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsmpeg2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.videop\": {\n \"source\": \"iana\"\n },\n \"video/vnd.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxu\",\"m4u\"]\n },\n \"video/vnd.ms-playready.media.pyv\": {\n \"source\": \"iana\",\n \"extensions\": [\"pyv\"]\n },\n \"video/vnd.nokia.interleaved-multimedia\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.mp4vr\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.videovoip\": {\n \"source\": \"iana\"\n },\n \"video/vnd.objectvideo\": {\n \"source\": \"iana\"\n },\n \"video/vnd.planar\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.bink\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.smacker\": {\n \"source\": \"apache\"\n },\n \"video/vnd.sealed.mpeg1\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.mpeg4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.swf\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealedmedia.softseal.mov\": {\n \"source\": \"iana\"\n },\n \"video/vnd.uvvu.mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvu\",\"uvvu\"]\n },\n \"video/vnd.vivo\": {\n \"source\": \"iana\",\n \"extensions\": [\"viv\"]\n },\n \"video/vnd.youtube.yt\": {\n \"source\": \"iana\"\n },\n \"video/vp8\": {\n \"source\": \"iana\"\n },\n \"video/vp9\": {\n \"source\": \"iana\"\n },\n \"video/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"webm\"]\n },\n \"video/x-f4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"f4v\"]\n },\n \"video/x-fli\": {\n \"source\": \"apache\",\n \"extensions\": [\"fli\"]\n },\n \"video/x-flv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"flv\"]\n },\n \"video/x-m4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"m4v\"]\n },\n \"video/x-matroska\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"mkv\",\"mk3d\",\"mks\"]\n },\n \"video/x-mng\": {\n \"source\": \"apache\",\n \"extensions\": [\"mng\"]\n },\n \"video/x-ms-asf\": {\n \"source\": \"apache\",\n \"extensions\": [\"asf\",\"asx\"]\n },\n \"video/x-ms-vob\": {\n \"source\": \"apache\",\n \"extensions\": [\"vob\"]\n },\n \"video/x-ms-wm\": {\n \"source\": \"apache\",\n \"extensions\": [\"wm\"]\n },\n \"video/x-ms-wmv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"wmv\"]\n },\n \"video/x-ms-wmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmx\"]\n },\n \"video/x-ms-wvx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wvx\"]\n },\n \"video/x-msvideo\": {\n \"source\": \"apache\",\n \"extensions\": [\"avi\"]\n },\n \"video/x-sgi-movie\": {\n \"source\": \"apache\",\n \"extensions\": [\"movie\"]\n },\n \"video/x-smv\": {\n \"source\": \"apache\",\n \"extensions\": [\"smv\"]\n },\n \"x-conference/x-cooltalk\": {\n \"source\": \"apache\",\n \"extensions\": [\"ice\"]\n },\n \"x-shader/x-fragment\": {\n \"compressible\": true\n },\n \"x-shader/x-vertex\": {\n \"compressible\": true\n }\n}\n","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n","import type { PauseType, RepeatType } from \"./canvas\";\n\nexport { version as PIXIVN_VERSION } from \"../package.json\";\n/**\n * @deprecated\n */\nexport const Repeat: RepeatType = \"repeat\";\n/**\n * Pause the tickers for a duration.\n * @param duration Duration in seconds\n * @returns The pause object\n * @deprecated\n */\nexport function Pause(duration: number): PauseType {\n return {\n type: \"pause\",\n duration: duration,\n };\n}\n\n/**\n * Is a special alias to indicate the game layer.\n */\nexport const CANVAS_APP_GAME_LAYER_ALIAS = \"__game_layer__\";\n\nexport const CANVAS_CONTAINER_ID = \"Container\";\nexport const CANVAS_IMAGE_CONTAINER_ID = \"ImageContainer\";\nexport const CANVAS_IMAGE_ID = \"Image\";\nexport const CANVAS_SPRITE_ID = \"Sprite\";\nexport const CANVAS_TEXT_ID = \"Text\";\nexport const CANVAS_VIDEO_ID = \"Video\";\n\n/**\n * The default audio channel for sounds that don't specify one.\n */\nexport const GENERAL_CHANNEL = \"general\";\nexport const MAIN_STORAGE_KEY = \"storage\";\nexport const TEMP_STORAGE_KEY = \"temp\";\nexport const NARRATION_STORAGE_KEY = \"narration\";\nexport const FLAGS_KEY = \"flags\";\n\nexport const SYSTEM_RESERVED_STORAGE_KEYS = {\n /**\n * The key of the current dialogue memory\n */\n CURRENT_DIALOGUE_MEMORY_KEY: \"dialogue\",\n /**\n * The key of step counter of the current dialogue memory\n */\n LAST_DIALOGUE_ADDED_IN_STEP_MEMORY_KEY: \"dialogue:step_counter\",\n /**\n * The key of the current menu options memory\n */\n CURRENT_MENU_OPTIONS_MEMORY_KEY: \"choice:options\",\n /**\n * The key of the last menu options added in the step memory\n */\n LAST_MENU_OPTIONS_ADDED_IN_STEP_MEMORY_KEY: \"choice:step_counter\",\n /**\n * The key of the input memory. This value can be read by pixi-vn json importer\n */\n CURRENT_INPUT_VALUE_MEMORY_KEY: \"input:value\",\n /**\n * The key of the last input added in the step memory\n */\n LAST_INPUT_ADDED_IN_STEP_MEMORY_KEY: \"input:step_counter\",\n /**\n * The key of the current input info\n */\n CURRENT_INPUT_INFO_MEMORY_KEY: \"input:info\",\n /**\n * The key of the characters memory\n */\n CHARACTER_CATEGORY_KEY: \"character\",\n /**\n * This variable is used to add the next dialog text into the current dialog memory.\n * This value was added to introduce Ink Glue functionality https://github.com/inkle/ink/blob/master/Documentation/WritingWithInk.md#glue\n */\n ADD_NEXT_DIALOG_TEXT_INTO_THE_CURRENT_DIALOG_FLAG_KEY: \"___glue___\",\n /**\n * The key of a list of all labels that have been opened during the progression of the steps.\n */\n OPENED_LABELS_COUNTER_KEY: \"label:opened\",\n /**\n * The key of a list of all choices that have been made during the progression of the steps.\n */\n ALL_CHOICES_MADE_KEY: \"choices:made\",\n /**\n * The key of the current step times counter.\n * This value was added to introduce Ink Sequences, cycles and other alternatives https://github.com/inkle/ink/blob/master/Documentation/WritingWithInk.md#sequences-cycles-and-other-alternatives\n */\n CURRENT_STEP_TIMES_COUNTER_KEY: \"label:history\",\n /**\n * The key of the last dialogue step glued in the step memory\n */\n LAST_STEP_GLUED: \"glue:last_step\",\n};\n","export namespace logger {\n export const log = (message?: any, ...optionalParams: any[]) =>\n console.log(`[Pixi’VN] ${message}`, ...optionalParams);\n export const warn = (message?: any, ...optionalParams: any[]) =>\n console.warn(`[Pixi’VN] ${message}`, ...optionalParams);\n export const error = (message?: any, ...optionalParams: any[]) =>\n console.error(`[Pixi’VN] ${message}`, ...optionalParams);\n export const info = (message?: any, ...optionalParams: any[]) =>\n console.info(`[Pixi’VN] ${message}`, ...optionalParams);\n}\n","import { PixiError } from \"@drincs/pixi-vn/core\";\nimport { logger } from \"./log-utility\";\n\n/**\n * This function is used to create a deep copy of the element\n * @param element The element to be copied\n * @returns The copied element\n * @throws {PixiError} when the element is not JSON serializable (e.g. contains functions or class instances).\n */\nexport function createExportableElement<T>(element: T): T {\n try {\n if (typeof element === \"undefined\") {\n return element;\n }\n let elementString = JSON.stringify(element);\n return JSON.parse(elementString);\n } catch (e) {\n logger.error(\"Error creating exportable element\", element, e);\n throw new PixiError(\"not_json_serializable\", \"Error creating exportable element\");\n }\n}\n","import { PixiError } from \"@drincs/pixi-vn/core\";\nimport type { Application, ApplicationOptions } from \"@drincs/pixi-vn/pixi.js\";\nimport { default as PIXI } from \"@drincs/pixi-vn/pixi.js\";\nimport { Devtools, initDevtools } from \"@pixi/devtools\";\nimport sha1 from \"crypto-js/sha1\";\nimport { CANVAS_APP_GAME_LAYER_ALIAS } from \"../constants\";\nimport { logger } from \"../utils/log-utility\";\nimport { throttle } from \"../utils/time-utility\";\nimport additionalPositionsProperties from \"./pixi-devtools/additionalPositionsProperties\";\nimport { TickerHistory, TickerInfo, TickersSequence, TickerTimeoutHistory } from \"./tickers\";\n\n/**\n * This class is responsible for managing the canvas, the tickers, the events, and the window size and the children of the window.\n */\nexport default class CanvasManagerStatic {\n private constructor() {}\n\n private static _app: Application | undefined = undefined;\n /**\n * The Pixi.js application instance.\n * @throws {PixiError} when the canvas has not been initialized yet (i.e. before calling `Game.init()`).\n */\n static get app() {\n if (!CanvasManagerStatic._app) {\n logger.error(\"The canvas is not initialized\");\n throw new PixiError(\"invalid_usage\", \"CanvasManagerStatic.app is undefined\");\n }\n return CanvasManagerStatic._app;\n }\n static get gameLayer() {\n let layer = this.app.stage.getChildByLabel(CANVAS_APP_GAME_LAYER_ALIAS);\n if (!layer) {\n layer = new PIXI.Container();\n layer.label = CANVAS_APP_GAME_LAYER_ALIAS;\n this.app.stage.addChild(layer);\n }\n return layer;\n }\n /**\n * This is the div that have same size of the canvas.\n * This is useful to put interface elements.\n * You can use React or other framework to put elements in this div.\n */\n static htmlLayers: HTMLElement[] = [];\n static canvasWidth: number = 300;\n static canvasHeight: number = 300;\n static _isInitialized: boolean = false;\n\n static async init(\n element: HTMLElement,\n options?: Partial<ApplicationOptions> & {\n /**\n * The id of the canvas element.\n * @default \"pixi-vn-canvas\"\n */\n id?: string;\n /**\n * The resize mode of the canvas.\n * @default \"contain\"\n */\n resizeMode?: \"contain\" | \"none\";\n },\n devtoolsOptions?: Devtools,\n ): Promise<void> {\n const {\n id = \"pixi-vn-canvas\",\n width = 800,\n height = 600,\n resolution = 1,\n autoDensity = true,\n resizeMode = \"contain\",\n ...rest\n } = options || {};\n CanvasManagerStatic.canvasWidth = width;\n CanvasManagerStatic.canvasHeight = height;\n CanvasManagerStatic._app = new PIXI.Application();\n return CanvasManagerStatic.app\n .init({\n width,\n height,\n resolution,\n autoDensity,\n ...rest,\n })\n .then(() => {\n const {\n app = CanvasManagerStatic.app,\n extensions = [],\n ...devtoolsOptionsRest\n } = devtoolsOptions || {};\n initDevtools({\n app: app,\n extensions: [additionalPositionsProperties, ...extensions],\n ...devtoolsOptionsRest,\n });\n\n CanvasManagerStatic._isInitialized = true;\n // Manager.app.ticker.add(Manager.update)\n CanvasManagerStatic.addCanvasIntoHTMLElement(element, id);\n // listen for the browser telling us that the screen size changed\n switch (resizeMode) {\n case \"contain\":\n const throttledResize = throttle(() => CanvasManagerStatic.resize(), 10);\n new ResizeObserver(throttledResize).observe(element);\n // call it manually once so we are sure we are the correct size after starting\n CanvasManagerStatic.resize();\n break;\n case \"none\":\n default:\n break;\n }\n // add the game layer\n CanvasManagerStatic.gameLayer;\n });\n }\n /**\n * Add the canvas into a html element.\n * @param element it is the html element where I will put the canvas. Example: document.body\n * @param id it is the id of the canvas element.\n */\n private static addCanvasIntoHTMLElement(element: HTMLElement, id: string) {\n if (CanvasManagerStatic._isInitialized) {\n element.appendChild(CanvasManagerStatic.app.canvas as HTMLCanvasElement);\n CanvasManagerStatic.app.canvas.id = id;\n } else {\n logger.error(\"GameWindowManager is not initialized\");\n }\n }\n static addHtmlLayer(\n id: string,\n element: HTMLElement,\n style: Pick<CSSStyleDeclaration, \"position\" | \"pointerEvents\"> = {\n position: \"absolute\",\n pointerEvents: \"none\",\n },\n ) {\n let div = document.createElement(\"div\");\n div.setAttribute(\"id\", id);\n div.style.position = style.position;\n div.style.pointerEvents = style.pointerEvents;\n let res = element.appendChild(div);\n CanvasManagerStatic.htmlLayers.push(div);\n CanvasManagerStatic.resize();\n return res;\n }\n static removeHtmlLayer(id: string) {\n let div = CanvasManagerStatic.htmlLayers.find((layer) => layer.id === id);\n if (div) {\n div.remove();\n CanvasManagerStatic.htmlLayers = CanvasManagerStatic.htmlLayers.filter((layer) => layer.id !== id);\n }\n }\n static getHtmlLayer(id: string): HTMLElement | undefined {\n return CanvasManagerStatic.htmlLayers.find((layer) => layer.id === id);\n }\n\n /* Resize Metods */\n\n /**\n * This method is called when the screen is resized.\n */\n private static async resize(): Promise<void> {\n const canvasWidth = CanvasManagerStatic.canvasWidth;\n const canvasHeight = CanvasManagerStatic.canvasHeight;\n let container = CanvasManagerStatic.app.resizeTo;\n let style = CanvasManagerStatic.app.canvas.style;\n if (!(container instanceof HTMLElement)) {\n container = document.documentElement;\n }\n let containerWidth: number;\n let containerHeight: number;\n // If the container is the document body or the documentElement,\n // use the viewport size (documentElement or window) because\n // body.clientHeight can be affected by CSS/content and not\n // reflect the visible viewport height.\n if (container === document.body || container === document.documentElement) {\n containerWidth = document.documentElement.clientWidth || window.innerWidth;\n containerHeight = document.documentElement.clientHeight || window.innerHeight;\n } else {\n const rect = container.getBoundingClientRect();\n containerWidth = rect.width || container.clientWidth;\n containerHeight = rect.height || container.clientHeight;\n }\n const scale = Math.min(containerWidth / canvasWidth, containerHeight / canvasHeight);\n const screenWidth = Math.floor(scale * canvasWidth);\n const screenHeight = Math.floor(scale * canvasHeight);\n style.width = `${screenWidth}px`;\n style.height = `${screenHeight}px`;\n const horizontalMargin = (containerWidth - screenWidth) / 2;\n const verticalMargin = (containerHeight - screenHeight) / 2;\n (style as any).marginLeft = `${horizontalMargin}px`;\n (style as any).marginRight = `${horizontalMargin}px`;\n (style as any).marginTop = `${verticalMargin}px`;\n (style as any).marginBottom = `${verticalMargin}px`;\n\n const promises = CanvasManagerStatic.htmlLayers.map((layer) => {\n layer.style.width = `${screenWidth}px`;\n layer.style.height = `${screenHeight}px`;\n layer.style.marginLeft = `${horizontalMargin}px`;\n layer.style.marginRight = `${horizontalMargin}px`;\n layer.style.marginTop = `${verticalMargin}px`;\n layer.style.marginBottom = `${verticalMargin}px`;\n });\n await Promise.all(promises);\n }\n\n /* Edit Canvas Elements Methods */\n\n /**\n * The order of the elements in the canvas, is determined by the zIndex.\n */\n static get childrenAliasesOrder(): string[] {\n return CanvasManagerStatic.gameLayer.children\n .filter((child) => child.label)\n .sort(\n (a, b) =>\n CanvasManagerStatic.gameLayer.getChildIndex(a) - CanvasManagerStatic.gameLayer.getChildIndex(b),\n )\n .map((item) => item.label);\n }\n\n /** Edit Tickers Methods */\n\n static get currentTickersWithoutCreatedBySteps(): {\n [k: string]: TickerHistory<any>;\n } {\n return Object.fromEntries(\n Object.entries(CanvasManagerStatic._currentTickers)\n .filter(([_, info]) => !info.createdByTicketSteps)\n .map(([id, info]) => [\n id,\n {\n id: info.ticker.alias,\n args: info.ticker.args,\n canvasElementAliases: info.ticker.canvasElementAliases,\n priority: info.ticker.priority,\n duration: info.ticker.duration,\n paused: info.ticker.paused,\n },\n ]),\n );\n }\n static _currentTickers: { [id: string]: TickerInfo<any> } = {};\n static _currentTickersSequence: { [alias: string]: { [tickerId: string]: TickersSequence } } = {};\n static _currentTickersTimeouts: { [timeout: string]: TickerTimeoutHistory } = {};\n static _tickersToCompleteOnStepEnd: {\n tikersIds: { id: string }[];\n stepAlias: { id: string; alias: string }[];\n } = { tikersIds: [], stepAlias: [] };\n static generateTickerId(...args: any[]): string {\n try {\n return sha1(JSON.stringify(args)).toString() + \"_\" + Math.random().toString(36).substring(7);\n } catch (e) {\n throw new PixiError(\"not_json_serializable\", `Error to generate ticker id: ${e}`);\n }\n }\n static addTickerTimeoutInfo(\n aliases: string | string[],\n ticker: string,\n timeout: string,\n canBeDeletedBeforeEnd: boolean,\n ) {\n if (typeof aliases === \"string\") {\n aliases = [aliases];\n }\n CanvasManagerStatic._currentTickersTimeouts[timeout] = {\n aliases: aliases,\n ticker: ticker,\n canBeDeletedBeforeEnd: canBeDeletedBeforeEnd,\n };\n }\n static removeTickerTimeoutInfo(timeout: NodeJS.Timeout | string) {\n if (typeof timeout !== \"string\") {\n timeout = timeout.toString();\n }\n if (CanvasManagerStatic._currentTickersTimeouts[timeout]) {\n delete CanvasManagerStatic._currentTickersTimeouts[timeout];\n }\n }\n static removeTickerTimeout(timeout: NodeJS.Timeout | string) {\n if (typeof timeout !== \"string\") {\n timeout = timeout.toString();\n }\n clearTimeout(Number(timeout));\n CanvasManagerStatic.removeTickerTimeoutInfo(timeout);\n }\n static removeTickerTimeoutsByAlias(alias: string, checkCanBeDeletedBeforeEnd: boolean) {\n // todo\n Object.entries(CanvasManagerStatic._currentTickersTimeouts).forEach(([timeout, tickerTimeout]) => {\n let aliasesWithoutAliasToRemove = tickerTimeout.aliases.filter((t) => t !== alias);\n if (aliasesWithoutAliasToRemove.length === 0) {\n let canBeDeletedBeforeEnd = tickerTimeout.canBeDeletedBeforeEnd;\n if (!checkCanBeDeletedBeforeEnd || canBeDeletedBeforeEnd) {\n CanvasManagerStatic.removeTickerTimeout(timeout);\n }\n } else {\n CanvasManagerStatic._currentTickersTimeouts[timeout].aliases = aliasesWithoutAliasToRemove;\n }\n });\n }\n}\n","export const debounce = <F extends (...args: any[]) => void>(fn: F, wait = 100) => {\n let t: ReturnType<typeof setTimeout> | null = null;\n return (...args: Parameters<F>) => {\n if (t) clearTimeout(t);\n t = setTimeout(() => fn(...args), wait);\n };\n};\n\nexport function throttle(func: (...args: any[]) => Promise<void>, limit: number) {\n let lastCall = 0;\n return async (...args: any[]) => {\n const now = Date.now();\n if (now - lastCall >= limit) {\n lastCall = now;\n return await func(...args);\n }\n };\n}\n","import { PropertiesExtension } from \"@pixi/devtools\";\nimport { AdditionalPositionsExtension, Container } from \"..\";\n\nconst additionalPositionsProperties: PropertiesExtension = {\n extension: {\n type: \"sceneProperties\",\n name: \"additional-positions\",\n },\n testNode(container) {\n return (\n \"xAlign\" in container ||\n \"yAlign\" in container ||\n \"percentageX\" in container ||\n \"percentageY\" in container ||\n \"positionType\" in container\n );\n },\n testProp(prop) {\n switch (prop) {\n case \"xAlign\":\n case \"yAlign\":\n case \"percentageX\":\n case \"percentageY\":\n case \"positionType\":\n return true;\n default:\n return false;\n }\n },\n setProperty(container, prop, value) {\n switch (prop) {\n case \"xAlign\":\n if (\"xAlign\" in container) container.xAlign = value / 100;\n break;\n case \"yAlign\":\n if (\"yAlign\" in container) container.yAlign = value / 100;\n break;\n case \"percentageX\":\n if (\"percentageX\" in container) container.percentageX = value / 100;\n break;\n case \"percentageY\":\n if (\"percentageY\" in container) container.percentageY = value / 100;\n break;\n }\n },\n getProperties(container: Container & AdditionalPositionsExtension) {\n return [\n {\n value: container.positionType,\n prop: \"positionType\",\n entry: {\n section: \"Transform\",\n type: \"text\",\n label: \"Position Type\",\n },\n },\n {\n value: container.xAlign * 100,\n prop: \"xAlign\",\n entry: {\n section: \"Transform\",\n type: \"range\",\n label: \"X Align\",\n tooltip: \"0% is left, 100% is right\",\n options: {\n min: 0,\n max: 100,\n },\n },\n },\n {\n value: container.yAlign * 100,\n prop: \"yAlign\",\n entry: {\n section: \"Transform\",\n type: \"range\",\n label: \"Y Align\",\n tooltip: \"0% is top, 100% is bottom\",\n options: {\n min: 0,\n max: 100,\n },\n },\n },\n {\n value: container.percentageX * 100,\n prop: \"percentageX\",\n entry: {\n section: \"Transform\",\n type: \"range\",\n label: \"X Percentage Position\",\n tooltip: \"0% is left, 100% is right\",\n options: {\n min: 0,\n max: 100,\n },\n },\n },\n {\n value: container.percentageY * 100,\n prop: \"percentageY\",\n entry: {\n section: \"Transform\",\n type: \"range\",\n label: \"Y Percentage Position\",\n tooltip: \"0% is top, 100% is bottom\",\n options: {\n min: 0,\n max: 100,\n },\n },\n },\n ];\n },\n};\nexport default additionalPositionsProperties;\n","/**\n * @module LRUCache\n */\n\n// module-private names and types\n// this provides the default Perf object source.\n// it can be passed in via configuration to override it\n// for a single LRU object.\nexport type Perf = { now: () => number }\nconst defaultPerf: Perf =\n (\n typeof performance === 'object' &&\n performance &&\n typeof performance.now === 'function'\n ) ?\n performance\n : Date\n\nconst warned = new Set<string>()\n\n// either a function or a class\ntype ForC = ((...a: any[]) => any) | { new (...a: any[]): any }\n\n/* c8 ignore start */\nconst PROCESS = (\n typeof process === 'object' && !!process ?\n process\n : {}) as { [k: string]: any }\n/* c8 ignore start */\n\nconst emitWarning = (\n msg: string,\n type: string,\n code: string,\n fn: ForC,\n) => {\n typeof PROCESS.emitWarning === 'function' ?\n PROCESS.emitWarning(msg, type, code, fn)\n : console.error(`[${code}] ${type}: ${msg}`)\n}\n\nlet AC = globalThis.AbortController\nlet AS = globalThis.AbortSignal\n\n/* c8 ignore start */\nif (typeof AC === 'undefined') {\n //@ts-ignore\n AS = class AbortSignal {\n onabort?: (...a: any[]) => any\n _onabort: ((...a: any[]) => any)[] = []\n reason?: any\n aborted: boolean = false\n addEventListener(_: string, fn: (...a: any[]) => any) {\n this._onabort.push(fn)\n }\n }\n //@ts-ignore\n AC = class AbortController {\n constructor() {\n warnACPolyfill()\n }\n signal = new AS()\n abort(reason: any) {\n if (this.signal.aborted) return\n //@ts-ignore\n this.signal.reason = reason\n //@ts-ignore\n this.signal.aborted = true\n //@ts-ignore\n for (const fn of this.signal._onabort) {\n fn(reason)\n }\n this.signal.onabort?.(reason)\n }\n }\n let printACPolyfillWarning =\n PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== '1'\n const warnACPolyfill = () => {\n if (!printACPolyfillWarning) return\n printACPolyfillWarning = false\n emitWarning(\n 'AbortController is not defined. If using lru-cache in ' +\n 'node 14, load an AbortController polyfill from the ' +\n '`node-abort-controller` package. A minimal polyfill is ' +\n 'provided for use by LRUCache.fetch(), but it should not be ' +\n 'relied upon in other contexts (eg, passing it to other APIs that ' +\n 'use AbortController/AbortSignal might have undesirable effects). ' +\n 'You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.',\n 'NO_ABORT_CONTROLLER',\n 'ENOTSUP',\n warnACPolyfill,\n )\n }\n}\n/* c8 ignore stop */\n\nconst shouldWarn = (code: string) => !warned.has(code)\n\nconst TYPE = Symbol('type')\nexport type PosInt = number & { [TYPE]: 'Positive Integer' }\nexport type Index = number & { [TYPE]: 'LRUCache Index' }\n\nconst isPosInt = (n: any): n is PosInt =>\n n && n === Math.floor(n) && n > 0 && isFinite(n)\n\nexport type UintArray = Uint8Array | Uint16Array | Uint32Array\nexport type NumberArray = UintArray | number[]\n\n/* c8 ignore start */\n// This is a little bit ridiculous, tbh.\n// The maximum array length is 2^32-1 or thereabouts on most JS impls.\n// And well before that point, you're caching the entire world, I mean,\n// that's ~32GB of just integers for the next/prev links, plus whatever\n// else to hold that many keys and values. Just filling the memory with\n// zeroes at init time is brutal when you get that big.\n// But why not be complete?\n// Maybe in the future, these limits will have expanded.\nconst getUintArray = (max: number) =>\n !isPosInt(max) ? null\n : max <= Math.pow(2, 8) ? Uint8Array\n : max <= Math.pow(2, 16) ? Uint16Array\n : max <= Math.pow(2, 32) ? Uint32Array\n : max <= Number.MAX_SAFE_INTEGER ? ZeroArray\n : null\n/* c8 ignore stop */\n\nclass ZeroArray extends Array<number> {\n constructor(size: number) {\n super(size)\n this.fill(0)\n }\n}\nexport type { ZeroArray }\nexport type { Stack }\n\nexport type StackLike = Stack | Index[]\nclass Stack {\n heap: NumberArray\n length: number\n // private constructor\n static #constructing: boolean = false\n static create(max: number): StackLike {\n const HeapCls = getUintArray(max)\n if (!HeapCls) return []\n Stack.#constructing = true\n const s = new Stack(max, HeapCls)\n Stack.#constructing = false\n return s\n }\n constructor(max: number, HeapCls: { new (n: number): NumberArray }) {\n /* c8 ignore start */\n if (!Stack.#constructing) {\n throw new TypeError('instantiate Stack using Stack.create(n)')\n }\n /* c8 ignore stop */\n this.heap = new HeapCls(max)\n this.length = 0\n }\n push(n: Index) {\n this.heap[this.length++] = n\n }\n pop(): Index {\n return this.heap[--this.length] as Index\n }\n}\n\n/**\n * Promise representing an in-progress {@link LRUCache#fetch} call\n */\nexport type BackgroundFetch<V> = Promise<V | undefined> & {\n __returned: BackgroundFetch<V> | undefined\n __abortController: AbortController\n __staleWhileFetching: V | undefined\n}\n\nexport type DisposeTask<K, V> = [\n value: V,\n key: K,\n reason: LRUCache.DisposeReason,\n]\n\nexport namespace LRUCache {\n /**\n * An integer greater than 0, reflecting the calculated size of items\n */\n export type Size = number\n\n /**\n * Integer greater than 0, representing some number of milliseconds, or the\n * time at which a TTL started counting from.\n */\n export type Milliseconds = number\n\n /**\n * An integer greater than 0, reflecting a number of items\n */\n export type Count = number\n\n /**\n * The reason why an item was removed from the cache, passed\n * to the {@link Disposer} methods.\n *\n * - `evict`: The item was evicted because it is the least recently used,\n * and the cache is full.\n * - `set`: A new value was set, overwriting the old value being disposed.\n * - `delete`: The item was explicitly deleted, either by calling\n * {@link LRUCache#delete}, {@link LRUCache#clear}, or\n * {@link LRUCache#set} with an undefined value.\n * - `expire`: The item was removed due to exceeding its TTL.\n * - `fetch`: A {@link OptionsBase#fetchMethod} operation returned\n * `undefined` or was aborted, causing the item to be deleted.\n */\n export type DisposeReason =\n | 'evict'\n | 'set'\n | 'delete'\n | 'expire'\n | 'fetch'\n /**\n * A method called upon item removal, passed as the\n * {@link OptionsBase.dispose} and/or\n * {@link OptionsBase.disposeAfter} options.\n */\n export type Disposer<K, V> = (\n value: V,\n key: K,\n reason: DisposeReason,\n ) => void\n\n /**\n * The reason why an item was added to the cache, passed\n * to the {@link Inserter} methods.\n *\n * - `add`: the item was not found in the cache, and was added\n * - `update`: the item was in the cache, with the same value provided\n * - `replace`: the item was in the cache, and replaced\n */\n export type InsertReason = 'add' | 'update' | 'replace'\n\n /**\n * A method called upon item insertion, passed as the\n * {@link OptionsBase.insert}\n */\n export type Inserter<K, V> = (\n value: V,\n key: K,\n reason: InsertReason,\n ) => void\n\n /**\n * A function that returns the effective calculated size\n * of an entry in the cache.\n */\n export type SizeCalculator<K, V> = (value: V, key: K) => Size\n\n /**\n * Options provided to the\n * {@link OptionsBase.fetchMethod} function.\n */\n export interface FetcherOptions<K, V, FC = unknown> {\n signal: AbortSignal\n options: FetcherFetchOptions<K, V, FC>\n /**\n * Object provided in the {@link FetchOptions.context} option to\n * {@link LRUCache#fetch}\n */\n context: FC\n }\n\n /**\n * Occasionally, it may be useful to track the internal behavior of the\n * cache, particularly for logging, debugging, or for behavior within the\n * `fetchMethod`. To do this, you can pass a `status` object to the\n * {@link LRUCache#fetch}, {@link LRUCache#get}, {@link LRUCache#set},\n * {@link LRUCache#memo}, and {@link LRUCache#has} methods.\n *\n * The `status` option should be a plain JavaScript object. The following\n * fields will be set on it appropriately, depending on the situation.\n */\n export interface Status<V> {\n /**\n * The status of a set() operation.\n *\n * - add: the item was not found in the cache, and was added\n * - update: the item was in the cache, with the same value provided\n * - replace: the item was in the cache, and replaced\n * - miss: the item was not added to the cache for some reason\n */\n set?: 'add' | 'update' | 'replace' | 'miss'\n\n /**\n * the ttl stored for the item, or undefined if ttls are not used.\n */\n ttl?: Milliseconds\n\n /**\n * the start time for the item, or undefined if ttls are not used.\n */\n start?: Milliseconds\n\n /**\n * The timestamp used for TTL calculation\n */\n now?: Milliseconds\n\n /**\n * the remaining ttl for the item, or undefined if ttls are not used.\n */\n remainingTTL?: Milliseconds\n\n /**\n * The calculated size for the item, if sizes are used.\n */\n entrySize?: Size\n\n /**\n * The total calculated size of the cache, if sizes are used.\n */\n totalCalculatedSize?: Size\n\n /**\n * A flag indicating that the item was not stored, due to exceeding the\n * {@link OptionsBase.maxEntrySize}\n */\n maxEntrySizeExceeded?: true\n\n /**\n * The old value, specified in the case of `set:'update'` or\n * `set:'replace'`\n */\n oldValue?: V\n\n /**\n * The results of a {@link LRUCache#has} operation\n *\n * - hit: the item was found in the cache\n * - stale: the item was found in the cache, but is stale\n * - miss: the item was not found in the cache\n */\n has?: 'hit' | 'stale' | 'miss'\n\n /**\n * The status of a {@link LRUCache#fetch} operation.\n * Note that this can change as the underlying fetch() moves through\n * various states.\n *\n * - inflight: there is another fetch() for this key which is in process\n * - get: there is no {@link OptionsBase.fetchMethod}, so\n * {@link LRUCache#get} was called.\n * - miss: the item is not in cache, and will be fetched.\n * - hit: the item is in the cache, and was resolved immediately.\n * - stale: the item is in the cache, but stale.\n * - refresh: the item is in the cache, and not stale, but\n * {@link FetchOptions.forceRefresh} was specified.\n */\n fetch?: 'get' | 'inflight' | 'miss' | 'hit' | 'stale' | 'refresh'\n\n /**\n * The {@link OptionsBase.fetchMethod} was called\n */\n fetchDispatched?: true\n\n /**\n * The cached value was updated after a successful call to\n * {@link OptionsBase.fetchMethod}\n */\n fetchUpdated?: true\n\n /**\n * The reason for a fetch() rejection. Either the error raised by the\n * {@link OptionsBase.fetchMethod}, or the reason for an\n * AbortSignal.\n */\n fetchError?: Error\n\n /**\n * The fetch received an abort signal\n */\n fetchAborted?: true\n\n /**\n * The abort signal received was ignored, and the fetch was allowed to\n * continue.\n */\n fetchAbortIgnored?: true\n\n /**\n * The fetchMethod promise resolved successfully\n */\n fetchResolved?: true\n\n /**\n * The fetchMethod promise was rejected\n */\n fetchRejected?: true\n\n /**\n * The status of a {@link LRUCache#get} operation.\n *\n * - fetching: The item is currently being fetched. If a previous value\n * is present and allowed, that will be returned.\n * - stale: The item is in the cache, and is stale.\n * - hit: the item is in the cache\n * - miss: the item is not in the cache\n */\n get?: 'stale' | 'hit' | 'miss'\n\n /**\n * A fetch or get operation returned a stale value.\n */\n returnedStale?: true\n }\n\n /**\n * options which override the options set in the LRUCache constructor\n * when calling {@link LRUCache#fetch}.\n *\n * This is the union of {@link GetOptions} and {@link SetOptions}, plus\n * {@link OptionsBase.noDeleteOnFetchRejection},\n * {@link OptionsBase.allowStaleOnFetchRejection},\n * {@link FetchOptions.forceRefresh}, and\n * {@link FetcherOptions.context}\n *\n * Any of these may be modified in the {@link OptionsBase.fetchMethod}\n * function, but the {@link GetOptions} fields will of course have no\n * effect, as the {@link LRUCache#get} call already happened by the time\n * the fetchMethod is called.\n */\n export interface FetcherFetchOptions<K, V, FC = unknown>\n extends Pick<\n OptionsBase<K, V, FC>,\n | 'allowStale'\n | 'updateAgeOnGet'\n | 'noDeleteOnStaleGet'\n | 'sizeCalculation'\n | 'ttl'\n | 'noDisposeOnSet'\n | 'noUpdateTTL'\n | 'noDeleteOnFetchRejection'\n | 'allowStaleOnFetchRejection'\n | 'ignoreFetchAbort'\n | 'allowStaleOnFetchAbort'\n > {\n status?: Status<V>\n size?: Size\n }\n\n /**\n * Options that may be passed to the {@link LRUCache#fetch} method.\n */\n export interface FetchOptions<K, V, FC>\n extends FetcherFetchOptions<K, V, FC> {\n /**\n * Set to true to force a re-load of the existing data, even if it\n * is not yet stale.\n */\n forceRefresh?: boolean\n /**\n * Context provided to the {@link OptionsBase.fetchMethod} as\n * the {@link FetcherOptions.context} param.\n *\n * If the FC type is specified as unknown (the default),\n * undefined or void, then this is optional. Otherwise, it will\n * be required.\n */\n context?: FC\n signal?: AbortSignal\n status?: Status<V>\n }\n /**\n * Options provided to {@link LRUCache#fetch} when the FC type is something\n * other than `unknown`, `undefined`, or `void`\n */\n export interface FetchOptionsWithContext<K, V, FC>\n extends FetchOptions<K, V, FC> {\n context: FC\n }\n /**\n * Options provided to {@link LRUCache#fetch} when the FC type is\n * `undefined` or `void`\n */\n export interface FetchOptionsNoContext<K, V>\n extends FetchOptions<K, V, undefined> {\n context?: undefined\n }\n\n export interface MemoOptions<K, V, FC = unknown>\n extends Pick<\n OptionsBase<K, V, FC>,\n | 'allowStale'\n | 'updateAgeOnGet'\n | 'noDeleteOnStaleGet'\n | 'sizeCalculation'\n | 'ttl'\n | 'noDisposeOnSet'\n | 'noUpdateTTL'\n | 'noDeleteOnFetchRejection'\n | 'allowStaleOnFetchRejection'\n | 'ignoreFetchAbort'\n | 'allowStaleOnFetchAbort'\n > {\n /**\n * Set to true to force a re-load of the existing data, even if it\n * is not yet stale.\n */\n forceRefresh?: boolean\n /**\n * Context provided to the {@link OptionsBase.memoMethod} as\n * the {@link MemoizerOptions.context} param.\n *\n * If the FC type is specified as unknown (the default),\n * undefined or void, then this is optional. Otherwise, it will\n * be required.\n */\n context?: FC\n status?: Status<V>\n }\n /**\n * Options provided to {@link LRUCache#memo} when the FC type is something\n * other than `unknown`, `undefined`, or `void`\n */\n export interface MemoOptionsWithContext<K, V, FC>\n extends MemoOptions<K, V, FC> {\n context: FC\n }\n /**\n * Options provided to {@link LRUCache#memo} when the FC type is\n * `undefined` or `void`\n */\n export interface MemoOptionsNoContext<K, V>\n extends MemoOptions<K, V, undefined> {\n context?: undefined\n }\n\n /**\n * Options provided to the\n * {@link OptionsBase.memoMethod} function.\n */\n export interface MemoizerOptions<K, V, FC = unknown> {\n options: MemoizerMemoOptions<K, V, FC>\n /**\n * Object provided in the {@link MemoOptions.context} option to\n * {@link LRUCache#memo}\n */\n context: FC\n }\n\n /**\n * options which override the options set in the LRUCache constructor\n * when calling {@link LRUCache#memo}.\n *\n * This is the union of {@link GetOptions} and {@link SetOptions}, plus\n * {@link MemoOptions.forceRefresh}, and\n * {@link MemoOptions.context}\n *\n * Any of these may be modified in the {@link OptionsBase.memoMethod}\n * function, but the {@link GetOptions} fields will of course have no\n * effect, as the {@link LRUCache#get} call already happened by the time\n * the memoMethod is called.\n */\n export interface MemoizerMemoOptions<K, V, FC = unknown>\n extends Pick<\n OptionsBase<K, V, FC>,\n | 'allowStale'\n | 'updateAgeOnGet'\n | 'noDeleteOnStaleGet'\n | 'sizeCalculation'\n | 'ttl'\n | 'noDisposeOnSet'\n | 'noUpdateTTL'\n > {\n status?: Status<V>\n size?: Size\n start?: Milliseconds\n }\n\n /**\n * Options that may be passed to the {@link LRUCache#has} method.\n */\n export interface HasOptions<K, V, FC>\n extends Pick<OptionsBase<K, V, FC>, 'updateAgeOnHas'> {\n status?: Status<V>\n }\n\n /**\n * Options that may be passed to the {@link LRUCache#get} method.\n */\n export interface GetOptions<K, V, FC>\n extends Pick<\n OptionsBase<K, V, FC>,\n 'allowStale' | 'updateAgeOnGet' | 'noDeleteOnStaleGet'\n > {\n status?: Status<V>\n }\n\n /**\n * Options that may be passed to the {@link LRUCache#peek} method.\n */\n export interface PeekOptions<K, V, FC>\n extends Pick<OptionsBase<K, V, FC>, 'allowStale'> {}\n\n /**\n * Options that may be passed to the {@link LRUCache#set} method.\n */\n export interface SetOptions<K, V, FC>\n extends Pick<\n OptionsBase<K, V, FC>,\n 'sizeCalculation' | 'ttl' | 'noDisposeOnSet' | 'noUpdateTTL'\n > {\n /**\n * If size tracking is enabled, then setting an explicit size\n * in the {@link LRUCache#set} call will prevent calling the\n * {@link OptionsBase.sizeCalculation} function.\n */\n size?: Size\n /**\n * If TTL tracking is enabled, then setting an explicit start\n * time in the {@link LRUCache#set} call will override the\n * default time from `performance.now()` or `Date.now()`.\n *\n * Note that it must be a valid value for whichever time-tracking\n * method is in use.\n */\n start?: Milliseconds\n status?: Status<V>\n }\n\n /**\n * The type signature for the {@link OptionsBase.fetchMethod} option.\n */\n export type Fetcher<K, V, FC = unknown> = (\n key: K,\n staleValue: V | undefined,\n options: FetcherOptions<K, V, FC>,\n ) => Promise<V | undefined | void> | V | undefined | void\n\n /**\n * the type signature for the {@link OptionsBase.memoMethod} option.\n */\n export type Memoizer<K, V, FC = unknown> = (\n key: K,\n staleValue: V | undefined,\n options: MemoizerOptions<K, V, FC>,\n ) => V\n\n /**\n * Options which may be passed to the {@link LRUCache} constructor.\n *\n * Most of these may be overridden in the various options that use\n * them.\n *\n * Despite all being technically optional, the constructor requires that\n * a cache is at minimum limited by one or more of {@link OptionsBase.max},\n * {@link OptionsBase.ttl}, or {@link OptionsBase.maxSize}.\n *\n * If {@link OptionsBase.ttl} is used alone, then it is strongly advised\n * (and in fact required by the type definitions here) that the cache\n * also set {@link OptionsBase.ttlAutopurge}, to prevent potentially\n * unbounded storage.\n *\n * All options are also available on the {@link LRUCache} instance, making\n * it safe to pass an LRUCache instance as the options argumemnt to\n * make another empty cache of the same type.\n *\n * Some options are marked as read-only, because changing them after\n * instantiation is not safe. Changing any of the other options will of\n * course only have an effect on subsequent method calls.\n */\n export interface OptionsBase<K, V, FC> {\n /**\n * The maximum number of items to store in the cache before evicting\n * old entries. This is read-only on the {@link LRUCache} instance,\n * and may not be overridden.\n *\n * If set, then storage space will be pre-allocated at construction\n * time, and the cache will perform significantly faster.\n *\n * Note that significantly fewer items may be stored, if\n * {@link OptionsBase.maxSize} and/or {@link OptionsBase.ttl} are also\n * set.\n *\n * **It is strongly recommended to set a `max` to prevent unbounded growth\n * of the cache.**\n */\n max?: Count\n\n /**\n * Max time in milliseconds for items to live in cache before they are\n * considered stale. Note that stale items are NOT preemptively removed by\n * default, and MAY live in the cache, contributing to its LRU max, long\n * after they have expired, unless {@link OptionsBase.ttlAutopurge} is\n * set.\n *\n * If set to `0` (the default value), then that means \"do not track\n * TTL\", not \"expire immediately\".\n *\n * Also, as this cache is optimized for LRU/MRU operations, some of\n * the staleness/TTL checks will reduce performance, as they will incur\n * overhead by deleting items.\n *\n * This is not primarily a TTL cache, and does not make strong TTL\n * guarantees. There is no pre-emptive pruning of expired items, but you\n * _may_ set a TTL on the cache, and it will treat expired items as missing\n * when they are fetched, and delete them.\n *\n * Optional, but must be a non-negative integer in ms if specified.\n *\n * This may be overridden by passing an options object to `cache.set()`.\n *\n * At least one of `max`, `maxSize`, or `TTL` is required. This must be a\n * positive integer if set.\n *\n * Even if ttl tracking is enabled, **it is strongly recommended to set a\n * `max` to prevent unbounded growth of the cache.**\n *\n * If ttl tracking is enabled, and `max` and `maxSize` are not set,\n * and `ttlAutopurge` is not set, then a warning will be emitted\n * cautioning about the potential for unbounded memory consumption.\n * (The TypeScript definitions will also discourage this.)\n */\n ttl?: Milliseconds\n\n /**\n * Minimum amount of time in ms in which to check for staleness.\n * Defaults to 1, which means that the current time is checked\n * at most once per millisecond.\n *\n * Set to 0 to check the current time every time staleness is tested.\n * (This reduces performance, and is theoretically unnecessary.)\n *\n * Setting this to a higher value will improve performance somewhat\n * while using ttl tracking, albeit at the expense of keeping stale\n * items around a bit longer than their TTLs would indicate.\n *\n * @default 1\n */\n ttlResolution?: Milliseconds\n\n /**\n * Preemptively remove stale items from the cache.\n *\n * Note that this may *significantly* degrade performance, especially if\n * the cache is storing a large number of items. It is almost always best\n * to just leave the stale items in the cache, and let them fall out as new\n * items are added.\n *\n * Note that this means that {@link OptionsBase.allowStale} is a bit\n * pointless, as stale items will be deleted almost as soon as they\n * expire.\n *\n * Use with caution!\n */\n ttlAutopurge?: boolean\n\n /**\n * When using time-expiring entries with `ttl`, setting this to `true` will\n * make each item's age reset to 0 whenever it is retrieved from cache with\n * {@link LRUCache#get}, causing it to not expire. (It can still fall out\n * of cache based on recency of use, of course.)\n *\n * Has no effect if {@link OptionsBase.ttl} is not set.\n *\n * This may be overridden by passing an options object to `cache.get()`.\n */\n updateAgeOnGet?: boolean\n\n /**\n * When using time-expiring entries with `ttl`, setting this to `true` will\n * make each item's age reset to 0 whenever its presence in the cache is\n * checked with {@link LRUCache#has}, causing it to not expire. (It can\n * still fall out of cache based on recency of use, of course.)\n *\n * Has no effect if {@link OptionsBase.ttl} is not set.\n */\n updateAgeOnHas?: boolean\n\n /**\n * Allow {@link LRUCache#get} and {@link LRUCache#fetch} calls to return\n * stale data, if available.\n *\n * By default, if you set `ttl`, stale items will only be deleted from the\n * cache when you `get(key)`. That is, it's not preemptively pruning items,\n * unless {@link OptionsBase.ttlAutopurge} is set.\n *\n * If you set `allowStale:true`, it'll return the stale value *as well as*\n * deleting it. If you don't set this, then it'll return `undefined` when\n * you try to get a stale entry.\n *\n * Note that when a stale entry is fetched, _even if it is returned due to\n * `allowStale` being set_, it is removed from the cache immediately. You\n * can suppress this behavior by setting\n * {@link OptionsBase.noDeleteOnStaleGet}, either in the constructor, or in\n * the options provided to {@link LRUCache#get}.\n *\n * This may be overridden by passing an options object to `cache.get()`.\n * The `cache.has()` method will always return `false` for stale items.\n *\n * Only relevant if a ttl is set.\n */\n allowStale?: boolean\n\n /**\n * Function that is called on items when they are dropped from the\n * cache, as `dispose(value, key, reason)`.\n *\n * This can be handy if you want to close file descriptors or do\n * other cleanup tasks when items are no longer stored in the cache.\n *\n * **NOTE**: It is called _before_ the item has been fully removed\n * from the cache, so if you want to put it right back in, you need\n * to wait until the next tick. If you try to add it back in during\n * the `dispose()` function call, it will break things in subtle and\n * weird ways.\n *\n * Unlike several other options, this may _not_ be overridden by\n * passing an option to `set()`, for performance reasons.\n *\n * The `reason` will be one of the following strings, corresponding\n * to the reason for the item's deletion:\n *\n * - `evict` Item was evicted to make space for a new addition\n * - `set` Item was overwritten by a new value\n * - `expire` Item expired its TTL\n * - `fetch` Item was deleted due to a failed or aborted fetch, or a\n * fetchMethod returning `undefined.\n * - `delete` Item was removed by explicit `cache.delete(key)`,\n * `cache.clear()`, or `cache.set(key, undefined)`.\n */\n dispose?: Disposer<K, V>\n\n /**\n * Function that is called when new items are inserted into the cache,\n * as `onInsert(value, key, reason)`.\n *\n * This can be useful if you need to perform actions when an item is\n * added, such as logging or tracking insertions.\n *\n * Unlike some other options, this may _not_ be overridden by passing\n * an option to `set()`, for performance and consistency reasons.\n */\n onInsert?: Inserter<K, V>\n\n /**\n * The same as {@link OptionsBase.dispose}, but called *after* the entry\n * is completely removed and the cache is once again in a clean state.\n *\n * It is safe to add an item right back into the cache at this point.\n * However, note that it is *very* easy to inadvertently create infinite\n * recursion this way.\n */\n disposeAfter?: Disposer<K, V>\n\n /**\n * Set to true to suppress calling the\n * {@link OptionsBase.dispose} function if the entry key is\n * still accessible within the cache.\n *\n * This may be overridden by passing an options object to\n * {@link LRUCache#set}.\n *\n * Only relevant if `dispose` or `disposeAfter` are set.\n */\n noDisposeOnSet?: boolean\n\n /**\n * Boolean flag to tell the cache to not update the TTL when setting a new\n * value for an existing key (ie, when updating a value rather than\n * inserting a new value). Note that the TTL value is _always_ set (if\n * provided) when adding a new entry into the cache.\n *\n * Has no effect if a {@link OptionsBase.ttl} is not set.\n *\n * May be passed as an option to {@link LRUCache#set}.\n */\n noUpdateTTL?: boolean\n\n /**\n * Set to a positive integer to track the sizes of items added to the\n * cache, and automatically evict items in order to stay below this size.\n * Note that this may result in fewer than `max` items being stored.\n *\n * Attempting to add an item to the cache whose calculated size is greater\n * that this amount will be a no-op. The item will not be cached, and no\n * other items will be evicted.\n *\n * Optional, must be a positive integer if provided.\n *\n * Sets `maxEntrySize` to the same value, unless a different value is\n * provided for `maxEntrySize`.\n *\n * At least one of `max`, `maxSize`, or `TTL` is required. This must be a\n * positive integer if set.\n *\n * Even if size tracking is enabled, **it is strongly recommended to set a\n * `max` to prevent unbounded growth of the cache.**\n *\n * Note also that size tracking can negatively impact performance,\n * though for most cases, only minimally.\n */\n maxSize?: Size\n\n /**\n * The maximum allowed size for any single item in the cache.\n *\n * If a larger item is passed to {@link LRUCache#set} or returned by a\n * {@link OptionsBase.fetchMethod} or {@link OptionsBase.memoMethod}, then\n * it will not be stored in the cache.\n *\n * Attempting to add an item whose calculated size is greater than\n * this amount will not cache the item or evict any old items, but\n * WILL delete an existing value if one is already present.\n *\n * Optional, must be a positive integer if provided. Defaults to\n * the value of `maxSize` if provided.\n */\n maxEntrySize?: Size\n\n /**\n * A function that returns a number indicating the item's size.\n *\n * Requires {@link OptionsBase.maxSize} to be set.\n *\n * If not provided, and {@link OptionsBase.maxSize} or\n * {@link OptionsBase.maxEntrySize} are set, then all\n * {@link LRUCache#set} calls **must** provide an explicit\n * {@link SetOptions.size} or sizeCalculation param.\n */\n sizeCalculation?: SizeCalculator<K, V>\n\n /**\n * Method that provides the implementation for {@link LRUCache#fetch}\n *\n * ```ts\n * fetchMethod(key, staleValue, { signal, options, context })\n * ```\n *\n * If `fetchMethod` is not provided, then `cache.fetch(key)` is equivalent\n * to `Promise.resolve(cache.get(key))`.\n *\n * If at any time, `signal.aborted` is set to `true`, or if the\n * `signal.onabort` method is called, or if it emits an `'abort'` event\n * which you can listen to with `addEventListener`, then that means that\n * the fetch should be abandoned. This may be passed along to async\n * functions aware of AbortController/AbortSignal behavior.\n *\n * The `fetchMethod` should **only** return `undefined` or a Promise\n * resolving to `undefined` if the AbortController signaled an `abort`\n * event. In all other cases, it should return or resolve to a value\n * suitable for adding to the cache.\n *\n * The `options` object is a union of the options that may be provided to\n * `set()` and `get()`. If they are modified, then that will result in\n * modifying the settings to `cache.set()` when the value is resolved, and\n * in the case of\n * {@link OptionsBase.noDeleteOnFetchRejection} and\n * {@link OptionsBase.allowStaleOnFetchRejection}, the handling of\n * `fetchMethod` failures.\n *\n * For example, a DNS cache may update the TTL based on the value returned\n * from a remote DNS server by changing `options.ttl` in the `fetchMethod`.\n */\n fetchMethod?: Fetcher<K, V, FC>\n\n /**\n * Method that provides the implementation for {@link LRUCache#memo}\n */\n memoMethod?: Memoizer<K, V, FC>\n\n /**\n * Set to true to suppress the deletion of stale data when a\n * {@link OptionsBase.fetchMethod} returns a rejected promise.\n */\n noDeleteOnFetchRejection?: boolean\n\n /**\n * Do not delete stale items when they are retrieved with\n * {@link LRUCache#get}.\n *\n * Note that the `get` return value will still be `undefined`\n * unless {@link OptionsBase.allowStale} is true.\n *\n * When using time-expiring entries with `ttl`, by default stale\n * items will be removed from the cache when the key is accessed\n * with `cache.get()`.\n *\n * Setting this option will cause stale items to remain in the cache, until\n * they are explicitly deleted with `cache.delete(key)`, or retrieved with\n * `noDeleteOnStaleGet` set to `false`.\n *\n * This may be overridden by passing an options object to `cache.get()`.\n *\n * Only relevant if a ttl is used.\n */\n noDeleteOnStaleGet?: boolean\n\n /**\n * Set to true to allow returning stale data when a\n * {@link OptionsBase.fetchMethod} throws an error or returns a rejected\n * promise.\n *\n * This differs from using {@link OptionsBase.allowStale} in that stale\n * data will ONLY be returned in the case that the {@link LRUCache#fetch}\n * fails, not any other times.\n *\n * If a `fetchMethod` fails, and there is no stale value available, the\n * `fetch()` will resolve to `undefined`. Ie, all `fetchMethod` errors are\n * suppressed.\n *\n * Implies `noDeleteOnFetchRejection`.\n *\n * This may be set in calls to `fetch()`, or defaulted on the constructor,\n * or overridden by modifying the options object in the `fetchMethod`.\n */\n allowStaleOnFetchRejection?: boolean\n\n /**\n * Set to true to return a stale value from the cache when the\n * `AbortSignal` passed to the {@link OptionsBase.fetchMethod} dispatches\n * an `'abort'` event, whether user-triggered, or due to internal cache\n * behavior.\n *\n * Unless {@link OptionsBase.ignoreFetchAbort} is also set, the underlying\n * {@link OptionsBase.fetchMethod} will still be considered canceled, and\n * any value it returns will be ignored and not cached.\n *\n * Caveat: since fetches are aborted when a new value is explicitly\n * set in the cache, this can lead to fetch returning a stale value,\n * since that was the fallback value _at the moment the `fetch()` was\n * initiated_, even though the new updated value is now present in\n * the cache.\n *\n * For example:\n *\n * ```ts\n * const cache = new LRUCache<string, any>({\n * ttl: 100,\n * fetchMethod: async (url, oldValue, { signal }) => {\n * const res = await fetch(url, { signal })\n * return await res.json()\n * }\n * })\n * cache.set('https://example.com/', { some: 'data' })\n * // 100ms go by...\n * const result = cache.fetch('https://example.com/')\n * cache.set('https://example.com/', { other: 'thing' })\n * console.log(await result) // { some: 'data' }\n * console.log(cache.get('https://example.com/')) // { other: 'thing' }\n * ```\n */\n allowStaleOnFetchAbort?: boolean\n\n /**\n * Set to true to ignore the `abort` event emitted by the `AbortSignal`\n * object passed to {@link OptionsBase.fetchMethod}, and still cache the\n * resulting resolution value, as long as it is not `undefined`.\n *\n * When used on its own, this means aborted {@link LRUCache#fetch} calls\n * are not immediately resolved or rejected when they are aborted, and\n * instead take the full time to await.\n *\n * When used with {@link OptionsBase.allowStaleOnFetchAbort}, aborted\n * {@link LRUCache#fetch} calls will resolve immediately to their stale\n * cached value or `undefined`, and will continue to process and eventually\n * update the cache when they resolve, as long as the resulting value is\n * not `undefined`, thus supporting a \"return stale on timeout while\n * refreshing\" mechanism by passing `AbortSignal.timeout(n)` as the signal.\n *\n * For example:\n *\n * ```ts\n * const c = new LRUCache({\n * ttl: 100,\n * ignoreFetchAbort: true,\n * allowStaleOnFetchAbort: true,\n * fetchMethod: async (key, oldValue, { signal }) => {\n * // note: do NOT pass the signal to fetch()!\n * // let's say this fetch can take a long time.\n * const res = await fetch(`https://slow-backend-server/${key}`)\n * return await res.json()\n * },\n * })\n *\n * // this will return the stale value after 100ms, while still\n * // updating in the background for next time.\n * const val = await c.fetch('key', { signal: AbortSignal.timeout(100) })\n * ```\n *\n * **Note**: regardless of this setting, an `abort` event _is still\n * emitted on the `AbortSignal` object_, so may result in invalid results\n * when passed to other underlying APIs that use AbortSignals.\n *\n * This may be overridden in the {@link OptionsBase.fetchMethod} or the\n * call to {@link LRUCache#fetch}.\n */\n ignoreFetchAbort?: boolean\n\n /**\n * In some cases, you may want to swap out the performance/Date object\n * used for TTL tracking. This should almost certainly NOT be done in\n * production environments!\n *\n * This value defaults to `global.performance` if it has a `now()` method,\n * or the `global.Date` object otherwise.\n */\n perf?: Perf\n }\n\n export interface OptionsMaxLimit<K, V, FC>\n extends OptionsBase<K, V, FC> {\n max: Count\n }\n export interface OptionsTTLLimit<K, V, FC>\n extends OptionsBase<K, V, FC> {\n ttl: Milliseconds\n ttlAutopurge: boolean\n }\n export interface OptionsSizeLimit<K, V, FC>\n extends OptionsBase<K, V, FC> {\n maxSize: Size\n }\n\n /**\n * The valid safe options for the {@link LRUCache} constructor\n */\n export type Options<K, V, FC> =\n | OptionsMaxLimit<K, V, FC>\n | OptionsSizeLimit<K, V, FC>\n | OptionsTTLLimit<K, V, FC>\n\n /**\n * Entry objects used by {@link LRUCache#load} and {@link LRUCache#dump},\n * and returned by {@link LRUCache#info}.\n */\n export interface Entry<V> {\n value: V\n ttl?: Milliseconds\n size?: Size\n start?: Milliseconds\n }\n}\n\n/**\n * Default export, the thing you're using this module to get.\n *\n * The `K` and `V` types define the key and value types, respectively. The\n * optional `FC` type defines the type of the `context` object passed to\n * `cache.fetch()` and `cache.memo()`.\n *\n * Keys and values **must not** be `null` or `undefined`.\n *\n * All properties from the options object (with the exception of `max`,\n * `maxSize`, `fetchMethod`, `memoMethod`, `dispose` and `disposeAfter`) are\n * added as normal public members. (The listed options are read-only getters.)\n *\n * Changing any of these will alter the defaults for subsequent method calls.\n */\nexport class LRUCache<K extends {}, V extends {}, FC = unknown> {\n // options that cannot be changed without disaster\n readonly #max: LRUCache.Count\n readonly #maxSize: LRUCache.Size\n readonly #dispose?: LRUCache.Disposer<K, V>\n readonly #onInsert?: LRUCache.Inserter<K, V>\n readonly #disposeAfter?: LRUCache.Disposer<K, V>\n readonly #fetchMethod?: LRUCache.Fetcher<K, V, FC>\n readonly #memoMethod?: LRUCache.Memoizer<K, V, FC>\n readonly #perf: Perf\n\n /**\n * {@link LRUCache.OptionsBase.perf}\n */\n get perf() {\n return this.#perf\n }\n\n /**\n * {@link LRUCache.OptionsBase.ttl}\n */\n ttl: LRUCache.Milliseconds\n\n /**\n * {@link LRUCache.OptionsBase.ttlResolution}\n */\n ttlResolution: LRUCache.Milliseconds\n /**\n * {@link LRUCache.OptionsBase.ttlAutopurge}\n */\n ttlAutopurge: boolean\n /**\n * {@link LRUCache.OptionsBase.updateAgeOnGet}\n */\n updateAgeOnGet: boolean\n /**\n * {@link LRUCache.OptionsBase.updateAgeOnHas}\n */\n updateAgeOnHas: boolean\n /**\n * {@link LRUCache.OptionsBase.allowStale}\n */\n allowStale: boolean\n\n /**\n * {@link LRUCache.OptionsBase.noDisposeOnSet}\n */\n noDisposeOnSet: boolean\n /**\n * {@link LRUCache.OptionsBase.noUpdateTTL}\n */\n noUpdateTTL: boolean\n /**\n * {@link LRUCache.OptionsBase.maxEntrySize}\n */\n maxEntrySize: LRUCache.Size\n /**\n * {@link LRUCache.OptionsBase.sizeCalculation}\n */\n sizeCalculation?: LRUCache.SizeCalculator<K, V>\n /**\n * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}\n */\n noDeleteOnFetchRejection: boolean\n /**\n * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}\n */\n noDeleteOnStaleGet: boolean\n /**\n * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}\n */\n allowStaleOnFetchAbort: boolean\n /**\n * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}\n */\n allowStaleOnFetchRejection: boolean\n /**\n * {@link LRUCache.OptionsBase.ignoreFetchAbort}\n */\n ignoreFetchAbort: boolean\n\n // computed properties\n #size: LRUCache.Count\n #calculatedSize: LRUCache.Size\n #keyMap: Map<K, Index>\n #keyList: (K | undefined)[]\n #valList: (V | BackgroundFetch<V> | undefined)[]\n #next: NumberArray\n #prev: NumberArray\n #head: Index\n #tail: Index\n #free: StackLike\n #disposed?: DisposeTask<K, V>[]\n #sizes?: ZeroArray\n #starts?: ZeroArray\n #ttls?: ZeroArray\n #autopurgeTimers?: (undefined | ReturnType<typeof setTimeout>)[]\n\n #hasDispose: boolean\n #hasFetchMethod: boolean\n #hasDisposeAfter: boolean\n #hasOnInsert: boolean\n\n /**\n * Do not call this method unless you need to inspect the\n * inner workings of the cache. If anything returned by this\n * object is modified in any way, strange breakage may occur.\n *\n * These fields are private for a reason!\n *\n * @internal\n */\n static unsafeExposeInternals<\n K extends {},\n V extends {},\n FC extends unknown = unknown,\n >(c: LRUCache<K, V, FC>) {\n return {\n // properties\n starts: c.#starts,\n ttls: c.#ttls,\n autopurgeTimers: c.#autopurgeTimers,\n sizes: c.#sizes,\n keyMap: c.#keyMap as Map<K, number>,\n keyList: c.#keyList,\n valList: c.#valList,\n next: c.#next,\n prev: c.#prev,\n get head() {\n return c.#head\n },\n get tail() {\n return c.#tail\n },\n free: c.#free,\n // methods\n isBackgroundFetch: (p: any) => c.#isBackgroundFetch(p),\n backgroundFetch: (\n k: K,\n index: number | undefined,\n options: LRUCache.FetchOptions<K, V, FC>,\n context: any,\n ): BackgroundFetch<V> =>\n c.#backgroundFetch(\n k,\n index as Index | undefined,\n options,\n context,\n ),\n moveToTail: (index: number): void => c.#moveToTail(index as Index),\n indexes: (options?: { allowStale: boolean }) => c.#indexes(options),\n rindexes: (options?: { allowStale: boolean }) =>\n c.#rindexes(options),\n isStale: (index: number | undefined) => c.#isStale(index as Index),\n }\n }\n\n // Protected read-only members\n\n /**\n * {@link LRUCache.OptionsBase.max} (read-only)\n */\n get max(): LRUCache.Count {\n return this.#max\n }\n /**\n * {@link LRUCache.OptionsBase.maxSize} (read-only)\n */\n get maxSize(): LRUCache.Count {\n return this.#maxSize\n }\n /**\n * The total computed size of items in the cache (read-only)\n */\n get calculatedSize(): LRUCache.Size {\n return this.#calculatedSize\n }\n /**\n * The number of items stored in the cache (read-only)\n */\n get size(): LRUCache.Count {\n return this.#size\n }\n /**\n * {@link LRUCache.OptionsBase.fetchMethod} (read-only)\n */\n get fetchMethod(): LRUCache.Fetcher<K, V, FC> | undefined {\n return this.#fetchMethod\n }\n get memoMethod(): LRUCache.Memoizer<K, V, FC> | undefined {\n return this.#memoMethod\n }\n /**\n * {@link LRUCache.OptionsBase.dispose} (read-only)\n */\n get dispose() {\n return this.#dispose\n }\n /**\n * {@link LRUCache.OptionsBase.onInsert} (read-only)\n */\n get onInsert() {\n return this.#onInsert\n }\n /**\n * {@link LRUCache.OptionsBase.disposeAfter} (read-only)\n */\n get disposeAfter() {\n return this.#disposeAfter\n }\n\n constructor(options: LRUCache.Options<K, V, FC> | LRUCache<K, V, FC>) {\n const {\n max = 0,\n ttl,\n ttlResolution = 1,\n ttlAutopurge,\n updateAgeOnGet,\n updateAgeOnHas,\n allowStale,\n dispose,\n onInsert,\n disposeAfter,\n noDisposeOnSet,\n noUpdateTTL,\n maxSize = 0,\n maxEntrySize = 0,\n sizeCalculation,\n fetchMethod,\n memoMethod,\n noDeleteOnFetchRejection,\n noDeleteOnStaleGet,\n allowStaleOnFetchRejection,\n allowStaleOnFetchAbort,\n ignoreFetchAbort,\n perf,\n } = options\n\n if (perf !== undefined) {\n if (typeof perf?.now !== 'function') {\n throw new TypeError(\n 'perf option must have a now() method if specified',\n )\n }\n }\n\n this.#perf = perf ?? defaultPerf\n\n if (max !== 0 && !isPosInt(max)) {\n throw new TypeError('max option must be a nonnegative integer')\n }\n\n const UintArray = max ? getUintArray(max) : Array\n if (!UintArray) {\n throw new Error('invalid max value: ' + max)\n }\n\n this.#max = max\n this.#maxSize = maxSize\n this.maxEntrySize = maxEntrySize || this.#maxSize\n this.sizeCalculation = sizeCalculation\n if (this.sizeCalculation) {\n if (!this.#maxSize && !this.maxEntrySize) {\n throw new TypeError(\n 'cannot set sizeCalculation without setting maxSize or maxEntrySize',\n )\n }\n if (typeof this.sizeCalculation !== 'function') {\n throw new TypeError('sizeCalculation set to non-function')\n }\n }\n\n if (memoMethod !== undefined && typeof memoMethod !== 'function') {\n throw new TypeError('memoMethod must be a function if defined')\n }\n this.#memoMethod = memoMethod\n\n if (fetchMethod !== undefined && typeof fetchMethod !== 'function') {\n throw new TypeError('fetchMethod must be a function if specified')\n }\n this.#fetchMethod = fetchMethod\n this.#hasFetchMethod = !!fetchMethod\n\n this.#keyMap = new Map()\n this.#keyList = new Array(max).fill(undefined)\n this.#valList = new Array(max).fill(undefined)\n this.#next = new UintArray(max)\n this.#prev = new UintArray(max)\n this.#head = 0 as Index\n this.#tail = 0 as Index\n this.#free = Stack.create(max)\n this.#size = 0\n this.#calculatedSize = 0\n\n if (typeof dispose === 'function') {\n this.#dispose = dispose\n }\n if (typeof onInsert === 'function') {\n this.#onInsert = onInsert\n }\n if (typeof disposeAfter === 'function') {\n this.#disposeAfter = disposeAfter\n this.#disposed = []\n } else {\n this.#disposeAfter = undefined\n this.#disposed = undefined\n }\n this.#hasDispose = !!this.#dispose\n this.#hasOnInsert = !!this.#onInsert\n this.#hasDisposeAfter = !!this.#disposeAfter\n\n this.noDisposeOnSet = !!noDisposeOnSet\n this.noUpdateTTL = !!noUpdateTTL\n this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection\n this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection\n this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort\n this.ignoreFetchAbort = !!ignoreFetchAbort\n\n // NB: maxEntrySize is set to maxSize if it's set\n if (this.maxEntrySize !== 0) {\n if (this.#maxSize !== 0) {\n if (!isPosInt(this.#maxSize)) {\n throw new TypeError(\n 'maxSize must be a positive integer if specified',\n )\n }\n }\n if (!isPosInt(this.maxEntrySize)) {\n throw new TypeError(\n 'maxEntrySize must be a positive integer if specified',\n )\n }\n this.#initializeSizeTracking()\n }\n\n this.allowStale = !!allowStale\n this.noDeleteOnStaleGet = !!noDeleteOnStaleGet\n this.updateAgeOnGet = !!updateAgeOnGet\n this.updateAgeOnHas = !!updateAgeOnHas\n this.ttlResolution =\n isPosInt(ttlResolution) || ttlResolution === 0 ? ttlResolution : 1\n this.ttlAutopurge = !!ttlAutopurge\n this.ttl = ttl || 0\n if (this.ttl) {\n if (!isPosInt(this.ttl)) {\n throw new TypeError('ttl must be a positive integer if specified')\n }\n this.#initializeTTLTracking()\n }\n\n // do not allow completely unbounded caches\n if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {\n throw new TypeError(\n 'At least one of max, maxSize, or ttl is required',\n )\n }\n if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {\n const code = 'LRU_CACHE_UNBOUNDED'\n if (shouldWarn(code)) {\n warned.add(code)\n const msg =\n 'TTL caching without ttlAutopurge, max, or maxSize can ' +\n 'result in unbounded memory consumption.'\n emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache)\n }\n }\n }\n\n /**\n * Return the number of ms left in the item's TTL. If item is not in cache,\n * returns `0`. Returns `Infinity` if item is in cache without a defined TTL.\n */\n getRemainingTTL(key: K) {\n return this.#keyMap.has(key) ? Infinity : 0\n }\n\n #initializeTTLTracking() {\n const ttls = new ZeroArray(this.#max)\n const starts = new ZeroArray(this.#max)\n this.#ttls = ttls\n this.#starts = starts\n const purgeTimers =\n this.ttlAutopurge ?\n new Array<undefined | ReturnType<typeof setTimeout>>(this.#max)\n : undefined\n this.#autopurgeTimers = purgeTimers\n\n this.#setItemTTL = (index, ttl, start = this.#perf.now()) => {\n starts[index] = ttl !== 0 ? start : 0\n ttls[index] = ttl\n setPurgetTimer(index, ttl)\n }\n\n this.#updateItemAge = index => {\n starts[index] = ttls[index] !== 0 ? this.#perf.now() : 0\n setPurgetTimer(index, ttls[index])\n }\n\n // clear out the purge timer if we're setting TTL to 0, and\n // previously had a ttl purge timer running, so it doesn't\n // fire unnecessarily. Don't need to do this if we're not doing\n // autopurge.\n const setPurgetTimer =\n !this.ttlAutopurge ?\n () => {}\n : (index: Index, ttl?: number) => {\n if (purgeTimers?.[index]) {\n clearTimeout(purgeTimers[index])\n purgeTimers[index] = undefined\n }\n if (ttl && ttl !== 0 && purgeTimers) {\n const t = setTimeout(() => {\n if (this.#isStale(index)) {\n this.#delete(this.#keyList[index] as K, 'expire')\n }\n }, ttl + 1)\n // unref() not supported on all platforms\n /* c8 ignore start */\n if (t.unref) {\n t.unref()\n }\n /* c8 ignore stop */\n purgeTimers[index] = t\n }\n }\n\n this.#statusTTL = (status, index) => {\n if (ttls[index]) {\n const ttl = ttls[index]\n const start = starts[index]\n /* c8 ignore next */\n if (!ttl || !start) return\n status.ttl = ttl\n status.start = start\n status.now = cachedNow || getNow()\n const age = status.now - start\n status.remainingTTL = ttl - age\n }\n }\n\n // debounce calls to perf.now() to 1s so we're not hitting\n // that costly call repeatedly.\n let cachedNow = 0\n const getNow = () => {\n const n = this.#perf.now()\n if (this.ttlResolution > 0) {\n cachedNow = n\n const t = setTimeout(() => (cachedNow = 0), this.ttlResolution)\n // not available on all platforms\n /* c8 ignore start */\n if (t.unref) {\n t.unref()\n }\n /* c8 ignore stop */\n }\n return n\n }\n\n this.getRemainingTTL = key => {\n const index = this.#keyMap.get(key)\n if (index === undefined) {\n return 0\n }\n const ttl = ttls[index]\n const start = starts[index]\n if (!ttl || !start) {\n return Infinity\n }\n const age = (cachedNow || getNow()) - start\n return ttl - age\n }\n\n this.#isStale = index => {\n const s = starts[index]\n const t = ttls[index]\n return !!t && !!s && (cachedNow || getNow()) - s > t\n }\n }\n\n // conditionally set private methods related to TTL\n #updateItemAge: (index: Index) => void = () => {}\n #statusTTL: (status: LRUCache.Status<V>, index: Index) => void = () => {}\n #setItemTTL: (\n index: Index,\n ttl: LRUCache.Milliseconds,\n start?: LRUCache.Milliseconds,\n // ignore because we never call this if we're not already in TTL mode\n /* c8 ignore start */\n ) => void = () => {}\n /* c8 ignore stop */\n\n #isStale: (index: Index) => boolean = () => false\n\n #initializeSizeTracking() {\n const sizes = new ZeroArray(this.#max)\n this.#calculatedSize = 0\n this.#sizes = sizes\n this.#removeItemSize = index => {\n this.#calculatedSize -= sizes[index] as number\n sizes[index] = 0\n }\n this.#requireSize = (k, v, size, sizeCalculation) => {\n // provisionally accept background fetches.\n // actual value size will be checked when they return.\n if (this.#isBackgroundFetch(v)) {\n return 0\n }\n if (!isPosInt(size)) {\n if (sizeCalculation) {\n if (typeof sizeCalculation !== 'function') {\n throw new TypeError('sizeCalculation must be a function')\n }\n size = sizeCalculation(v, k)\n if (!isPosInt(size)) {\n throw new TypeError(\n 'sizeCalculation return invalid (expect positive integer)',\n )\n }\n } else {\n throw new TypeError(\n 'invalid size value (must be positive integer). ' +\n 'When maxSize or maxEntrySize is used, sizeCalculation ' +\n 'or size must be set.',\n )\n }\n }\n return size\n }\n this.#addItemSize = (\n index: Index,\n size: LRUCache.Size,\n status?: LRUCache.Status<V>,\n ) => {\n sizes[index] = size\n if (this.#maxSize) {\n const maxSize = this.#maxSize - (sizes[index] as number)\n while (this.#calculatedSize > maxSize) {\n this.#evict(true)\n }\n }\n this.#calculatedSize += sizes[index] as number\n if (status) {\n status.entrySize = size\n status.totalCalculatedSize = this.#calculatedSize\n }\n }\n }\n\n #removeItemSize: (index: Index) => void = _i => {}\n #addItemSize: (\n index: Index,\n size: LRUCache.Size,\n status?: LRUCache.Status<V>,\n ) => void = (_i, _s, _st) => {}\n #requireSize: (\n k: K,\n v: V | BackgroundFetch<V>,\n size?: LRUCache.Size,\n sizeCalculation?: LRUCache.SizeCalculator<K, V>,\n ) => LRUCache.Size = (\n _k: K,\n _v: V | BackgroundFetch<V>,\n size?: LRUCache.Size,\n sizeCalculation?: LRUCache.SizeCalculator<K, V>,\n ) => {\n if (size || sizeCalculation) {\n throw new TypeError(\n 'cannot set size without setting maxSize or maxEntrySize on cache',\n )\n }\n return 0\n };\n\n *#indexes({ allowStale = this.allowStale } = {}) {\n if (this.#size) {\n for (let i = this.#tail; true; ) {\n if (!this.#isValidIndex(i)) {\n break\n }\n if (allowStale || !this.#isStale(i)) {\n yield i\n }\n if (i === this.#head) {\n break\n } else {\n i = this.#prev[i] as Index\n }\n }\n }\n }\n\n *#rindexes({ allowStale = this.allowStale } = {}) {\n if (this.#size) {\n for (let i = this.#head; true; ) {\n if (!this.#isValidIndex(i)) {\n break\n }\n if (allowStale || !this.#isStale(i)) {\n yield i\n }\n if (i === this.#tail) {\n break\n } else {\n i = this.#next[i] as Index\n }\n }\n }\n }\n\n #isValidIndex(index: Index) {\n return (\n index !== undefined &&\n this.#keyMap.get(this.#keyList[index] as K) === index\n )\n }\n\n /**\n * Return a generator yielding `[key, value]` pairs,\n * in order from most recently used to least recently used.\n */\n *entries() {\n for (const i of this.#indexes()) {\n if (\n this.#valList[i] !== undefined &&\n this.#keyList[i] !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])\n ) {\n yield [this.#keyList[i], this.#valList[i]] as [K, V]\n }\n }\n }\n\n /**\n * Inverse order version of {@link LRUCache.entries}\n *\n * Return a generator yielding `[key, value]` pairs,\n * in order from least recently used to most recently used.\n */\n *rentries() {\n for (const i of this.#rindexes()) {\n if (\n this.#valList[i] !== undefined &&\n this.#keyList[i] !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])\n ) {\n yield [this.#keyList[i], this.#valList[i]]\n }\n }\n }\n\n /**\n * Return a generator yielding the keys in the cache,\n * in order from most recently used to least recently used.\n */\n *keys() {\n for (const i of this.#indexes()) {\n const k = this.#keyList[i]\n if (k !== undefined && !this.#isBackgroundFetch(this.#valList[i])) {\n yield k\n }\n }\n }\n\n /**\n * Inverse order version of {@link LRUCache.keys}\n *\n * Return a generator yielding the keys in the cache,\n * in order from least recently used to most recently used.\n */\n *rkeys() {\n for (const i of this.#rindexes()) {\n const k = this.#keyList[i]\n if (k !== undefined && !this.#isBackgroundFetch(this.#valList[i])) {\n yield k\n }\n }\n }\n\n /**\n * Return a generator yielding the values in the cache,\n * in order from most recently used to least recently used.\n */\n *values() {\n for (const i of this.#indexes()) {\n const v = this.#valList[i]\n if (v !== undefined && !this.#isBackgroundFetch(this.#valList[i])) {\n yield this.#valList[i] as V\n }\n }\n }\n\n /**\n * Inverse order version of {@link LRUCache.values}\n *\n * Return a generator yielding the values in the cache,\n * in order from least recently used to most recently used.\n */\n *rvalues() {\n for (const i of this.#rindexes()) {\n const v = this.#valList[i]\n if (v !== undefined && !this.#isBackgroundFetch(this.#valList[i])) {\n yield this.#valList[i]\n }\n }\n }\n\n /**\n * Iterating over the cache itself yields the same results as\n * {@link LRUCache.entries}\n */\n [Symbol.iterator]() {\n return this.entries()\n }\n\n /**\n * A String value that is used in the creation of the default string\n * description of an object. Called by the built-in method\n * `Object.prototype.toString`.\n */\n [Symbol.toStringTag] = 'LRUCache'\n\n /**\n * Find a value for which the supplied fn method returns a truthy value,\n * similar to `Array.find()`. fn is called as `fn(value, key, cache)`.\n */\n find(\n fn: (v: V, k: K, self: LRUCache<K, V, FC>) => boolean,\n getOptions: LRUCache.GetOptions<K, V, FC> = {},\n ) {\n for (const i of this.#indexes()) {\n const v = this.#valList[i]\n const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v\n if (value === undefined) continue\n if (fn(value, this.#keyList[i] as K, this)) {\n return this.get(this.#keyList[i] as K, getOptions)\n }\n }\n }\n\n /**\n * Call the supplied function on each item in the cache, in order from most\n * recently used to least recently used.\n *\n * `fn` is called as `fn(value, key, cache)`.\n *\n * If `thisp` is provided, function will be called in the `this`-context of\n * the provided object, or the cache if no `thisp` object is provided.\n *\n * Does not update age or recenty of use, or iterate over stale values.\n */\n forEach(\n fn: (v: V, k: K, self: LRUCache<K, V, FC>) => any,\n thisp: any = this,\n ) {\n for (const i of this.#indexes()) {\n const v = this.#valList[i]\n const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v\n if (value === undefined) continue\n fn.call(thisp, value, this.#keyList[i] as K, this)\n }\n }\n\n /**\n * The same as {@link LRUCache.forEach} but items are iterated over in\n * reverse order. (ie, less recently used items are iterated over first.)\n */\n rforEach(\n fn: (v: V, k: K, self: LRUCache<K, V, FC>) => any,\n thisp: any = this,\n ) {\n for (const i of this.#rindexes()) {\n const v = this.#valList[i]\n const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v\n if (value === undefined) continue\n fn.call(thisp, value, this.#keyList[i] as K, this)\n }\n }\n\n /**\n * Delete any stale entries. Returns true if anything was removed,\n * false otherwise.\n */\n purgeStale() {\n let deleted = false\n for (const i of this.#rindexes({ allowStale: true })) {\n if (this.#isStale(i)) {\n this.#delete(this.#keyList[i] as K, 'expire')\n deleted = true\n }\n }\n return deleted\n }\n\n /**\n * Get the extended info about a given entry, to get its value, size, and\n * TTL info simultaneously. Returns `undefined` if the key is not present.\n *\n * Unlike {@link LRUCache#dump}, which is designed to be portable and survive\n * serialization, the `start` value is always the current timestamp, and the\n * `ttl` is a calculated remaining time to live (negative if expired).\n *\n * Always returns stale values, if their info is found in the cache, so be\n * sure to check for expirations (ie, a negative {@link LRUCache.Entry#ttl})\n * if relevant.\n */\n info(key: K): LRUCache.Entry<V> | undefined {\n const i = this.#keyMap.get(key)\n if (i === undefined) return undefined\n const v = this.#valList[i]\n /* c8 ignore start - this isn't tested for the info function,\n * but it's the same logic as found in other places. */\n const value: V | undefined =\n this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v\n if (value === undefined) return undefined\n /* c8 ignore end */\n const entry: LRUCache.Entry<V> = { value }\n if (this.#ttls && this.#starts) {\n const ttl = this.#ttls[i]\n const start = this.#starts[i]\n if (ttl && start) {\n const remain = ttl - (this.#perf.now() - start)\n entry.ttl = remain\n entry.start = Date.now()\n }\n }\n if (this.#sizes) {\n entry.size = this.#sizes[i]\n }\n return entry\n }\n\n /**\n * Return an array of [key, {@link LRUCache.Entry}] tuples which can be\n * passed to {@link LRUCache#load}.\n *\n * The `start` fields are calculated relative to a portable `Date.now()`\n * timestamp, even if `performance.now()` is available.\n *\n * Stale entries are always included in the `dump`, even if\n * {@link LRUCache.OptionsBase.allowStale} is false.\n *\n * Note: this returns an actual array, not a generator, so it can be more\n * easily passed around.\n */\n dump() {\n const arr: [K, LRUCache.Entry<V>][] = []\n for (const i of this.#indexes({ allowStale: true })) {\n const key = this.#keyList[i]\n const v = this.#valList[i]\n const value: V | undefined =\n this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v\n if (value === undefined || key === undefined) continue\n const entry: LRUCache.Entry<V> = { value }\n if (this.#ttls && this.#starts) {\n entry.ttl = this.#ttls[i]\n // always dump the start relative to a portable timestamp\n // it's ok for this to be a bit slow, it's a rare operation.\n const age = this.#perf.now() - (this.#starts[i] as number)\n entry.start = Math.floor(Date.now() - age)\n }\n if (this.#sizes) {\n entry.size = this.#sizes[i]\n }\n arr.unshift([key, entry])\n }\n return arr\n }\n\n /**\n * Reset the cache and load in the items in entries in the order listed.\n *\n * The shape of the resulting cache may be different if the same options are\n * not used in both caches.\n *\n * The `start` fields are assumed to be calculated relative to a portable\n * `Date.now()` timestamp, even if `performance.now()` is available.\n */\n load(arr: [K, LRUCache.Entry<V>][]) {\n this.clear()\n for (const [key, entry] of arr) {\n if (entry.start) {\n // entry.start is a portable timestamp, but we may be using\n // node's performance.now(), so calculate the offset, so that\n // we get the intended remaining TTL, no matter how long it's\n // been on ice.\n //\n // it's ok for this to be a bit slow, it's a rare operation.\n const age = Date.now() - entry.start\n entry.start = this.#perf.now() - age\n }\n this.set(key, entry.value, entry)\n }\n }\n\n /**\n * Add a value to the cache.\n *\n * Note: if `undefined` is specified as a value, this is an alias for\n * {@link LRUCache#delete}\n *\n * Fields on the {@link LRUCache.SetOptions} options param will override\n * their corresponding values in the constructor options for the scope\n * of this single `set()` operation.\n *\n * If `start` is provided, then that will set the effective start\n * time for the TTL calculation. Note that this must be a previous\n * value of `performance.now()` if supported, or a previous value of\n * `Date.now()` if not.\n *\n * Options object may also include `size`, which will prevent\n * calling the `sizeCalculation` function and just use the specified\n * number if it is a positive integer, and `noDisposeOnSet` which\n * will prevent calling a `dispose` function in the case of\n * overwrites.\n *\n * If the `size` (or return value of `sizeCalculation`) for a given\n * entry is greater than `maxEntrySize`, then the item will not be\n * added to the cache.\n *\n * Will update the recency of the entry.\n *\n * If the value is `undefined`, then this is an alias for\n * `cache.delete(key)`. `undefined` is never stored in the cache.\n */\n set(\n k: K,\n v: V | BackgroundFetch<V> | undefined,\n setOptions: LRUCache.SetOptions<K, V, FC> = {},\n ) {\n if (v === undefined) {\n this.delete(k)\n return this\n }\n const {\n ttl = this.ttl,\n start,\n noDisposeOnSet = this.noDisposeOnSet,\n sizeCalculation = this.sizeCalculation,\n status,\n } = setOptions\n let { noUpdateTTL = this.noUpdateTTL } = setOptions\n\n const size = this.#requireSize(\n k,\n v,\n setOptions.size || 0,\n sizeCalculation,\n )\n // if the item doesn't fit, don't do anything\n // NB: maxEntrySize set to maxSize by default\n if (this.maxEntrySize && size > this.maxEntrySize) {\n if (status) {\n status.set = 'miss'\n status.maxEntrySizeExceeded = true\n }\n // have to delete, in case something is there already.\n this.#delete(k, 'set')\n return this\n }\n let index = this.#size === 0 ? undefined : this.#keyMap.get(k)\n if (index === undefined) {\n // addition\n index = (\n this.#size === 0 ? this.#tail\n : this.#free.length !== 0 ? this.#free.pop()\n : this.#size === this.#max ? this.#evict(false)\n : this.#size) as Index\n this.#keyList[index] = k\n this.#valList[index] = v\n this.#keyMap.set(k, index)\n this.#next[this.#tail] = index\n this.#prev[index] = this.#tail\n this.#tail = index\n this.#size++\n this.#addItemSize(index, size, status)\n if (status) status.set = 'add'\n noUpdateTTL = false\n if (this.#hasOnInsert) {\n this.#onInsert?.(v as V, k, 'add')\n }\n } else {\n // update\n this.#moveToTail(index)\n const oldVal = this.#valList[index] as V | BackgroundFetch<V>\n if (v !== oldVal) {\n if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {\n oldVal.__abortController.abort(new Error('replaced'))\n const { __staleWhileFetching: s } = oldVal\n if (s !== undefined && !noDisposeOnSet) {\n if (this.#hasDispose) {\n this.#dispose?.(s as V, k, 'set')\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([s as V, k, 'set'])\n }\n }\n } else if (!noDisposeOnSet) {\n if (this.#hasDispose) {\n this.#dispose?.(oldVal as V, k, 'set')\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([oldVal as V, k, 'set'])\n }\n }\n this.#removeItemSize(index)\n this.#addItemSize(index, size, status)\n this.#valList[index] = v\n if (status) {\n status.set = 'replace'\n const oldValue =\n oldVal && this.#isBackgroundFetch(oldVal) ?\n oldVal.__staleWhileFetching\n : oldVal\n if (oldValue !== undefined) status.oldValue = oldValue\n }\n } else if (status) {\n status.set = 'update'\n }\n\n if (this.#hasOnInsert) {\n this.onInsert?.(v as V, k, v === oldVal ? 'update' : 'replace')\n }\n }\n if (ttl !== 0 && !this.#ttls) {\n this.#initializeTTLTracking()\n }\n if (this.#ttls) {\n if (!noUpdateTTL) {\n this.#setItemTTL(index, ttl, start)\n }\n if (status) this.#statusTTL(status, index)\n }\n if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed\n let task: DisposeTask<K, V> | undefined\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task)\n }\n }\n return this\n }\n\n /**\n * Evict the least recently used item, returning its value or\n * `undefined` if cache is empty.\n */\n pop(): V | undefined {\n try {\n while (this.#size) {\n const val = this.#valList[this.#head]\n this.#evict(true)\n if (this.#isBackgroundFetch(val)) {\n if (val.__staleWhileFetching) {\n return val.__staleWhileFetching\n }\n } else if (val !== undefined) {\n return val\n }\n }\n } finally {\n if (this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed\n let task: DisposeTask<K, V> | undefined\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task)\n }\n }\n }\n }\n\n #evict(free: boolean) {\n const head = this.#head\n const k = this.#keyList[head] as K\n const v = this.#valList[head] as V\n if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('evicted'))\n } else if (this.#hasDispose || this.#hasDisposeAfter) {\n if (this.#hasDispose) {\n this.#dispose?.(v, k, 'evict')\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v, k, 'evict'])\n }\n }\n this.#removeItemSize(head)\n if (this.#autopurgeTimers?.[head]) {\n clearTimeout(this.#autopurgeTimers[head])\n this.#autopurgeTimers[head] = undefined\n }\n // if we aren't about to use the index, then null these out\n if (free) {\n this.#keyList[head] = undefined\n this.#valList[head] = undefined\n this.#free.push(head)\n }\n if (this.#size === 1) {\n this.#head = this.#tail = 0 as Index\n this.#free.length = 0\n } else {\n this.#head = this.#next[head] as Index\n }\n this.#keyMap.delete(k)\n this.#size--\n return head\n }\n\n /**\n * Check if a key is in the cache, without updating the recency of use.\n * Will return false if the item is stale, even though it is technically\n * in the cache.\n *\n * Check if a key is in the cache, without updating the recency of\n * use. Age is updated if {@link LRUCache.OptionsBase.updateAgeOnHas} is set\n * to `true` in either the options or the constructor.\n *\n * Will return `false` if the item is stale, even though it is technically in\n * the cache. The difference can be determined (if it matters) by using a\n * `status` argument, and inspecting the `has` field.\n *\n * Will not update item age unless\n * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.\n */\n has(k: K, hasOptions: LRUCache.HasOptions<K, V, FC> = {}) {\n const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions\n const index = this.#keyMap.get(k)\n if (index !== undefined) {\n const v = this.#valList[index]\n if (\n this.#isBackgroundFetch(v) &&\n v.__staleWhileFetching === undefined\n ) {\n return false\n }\n if (!this.#isStale(index)) {\n if (updateAgeOnHas) {\n this.#updateItemAge(index)\n }\n if (status) {\n status.has = 'hit'\n this.#statusTTL(status, index)\n }\n return true\n } else if (status) {\n status.has = 'stale'\n this.#statusTTL(status, index)\n }\n } else if (status) {\n status.has = 'miss'\n }\n return false\n }\n\n /**\n * Like {@link LRUCache#get} but doesn't update recency or delete stale\n * items.\n *\n * Returns `undefined` if the item is stale, unless\n * {@link LRUCache.OptionsBase.allowStale} is set.\n */\n peek(k: K, peekOptions: LRUCache.PeekOptions<K, V, FC> = {}) {\n const { allowStale = this.allowStale } = peekOptions\n const index = this.#keyMap.get(k)\n if (index === undefined || (!allowStale && this.#isStale(index))) {\n return\n }\n const v = this.#valList[index]\n // either stale and allowed, or forcing a refresh of non-stale value\n return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v\n }\n\n #backgroundFetch(\n k: K,\n index: Index | undefined,\n options: LRUCache.FetchOptions<K, V, FC>,\n context: any,\n ): BackgroundFetch<V> {\n const v = index === undefined ? undefined : this.#valList[index]\n if (this.#isBackgroundFetch(v)) {\n return v\n }\n\n const ac = new AC()\n const { signal } = options\n // when/if our AC signals, then stop listening to theirs.\n signal?.addEventListener('abort', () => ac.abort(signal.reason), {\n signal: ac.signal,\n })\n\n const fetchOpts = {\n signal: ac.signal,\n options,\n context,\n }\n\n const cb = (v: V | undefined, updateCache = false): V | undefined => {\n const { aborted } = ac.signal\n const ignoreAbort = options.ignoreFetchAbort && v !== undefined\n const proceed =\n options.ignoreFetchAbort ||\n !!(options.allowStaleOnFetchAbort && v !== undefined)\n if (options.status) {\n if (aborted && !updateCache) {\n options.status.fetchAborted = true\n options.status.fetchError = ac.signal.reason\n if (ignoreAbort) options.status.fetchAbortIgnored = true\n } else {\n options.status.fetchResolved = true\n }\n }\n if (aborted && !ignoreAbort && !updateCache) {\n return fetchFail(ac.signal.reason, proceed)\n }\n // either we didn't abort, and are still here, or we did, and ignored\n const bf = p as BackgroundFetch<V>\n // if nothing else has been written there but we're set to update the\n // cache and ignore the abort, or if it's still pending on this specific\n // background request, then write it to the cache.\n const vl = this.#valList[index as Index]\n if (vl === p || (ignoreAbort && updateCache && vl === undefined)) {\n if (v === undefined) {\n if (bf.__staleWhileFetching !== undefined) {\n this.#valList[index as Index] = bf.__staleWhileFetching\n } else {\n this.#delete(k, 'fetch')\n }\n } else {\n if (options.status) options.status.fetchUpdated = true\n this.set(k, v, fetchOpts.options)\n }\n }\n return v\n }\n\n const eb = (er: any) => {\n if (options.status) {\n options.status.fetchRejected = true\n options.status.fetchError = er\n }\n // do not pass go, do not collect $200\n return fetchFail(er, false)\n }\n\n const fetchFail = (er: any, proceed: boolean): V | undefined => {\n const { aborted } = ac.signal\n const allowStaleAborted = aborted && options.allowStaleOnFetchAbort\n const allowStale =\n allowStaleAborted || options.allowStaleOnFetchRejection\n const noDelete = allowStale || options.noDeleteOnFetchRejection\n const bf = p as BackgroundFetch<V>\n if (this.#valList[index as Index] === p) {\n // if we allow stale on fetch rejections, then we need to ensure that\n // the stale value is not removed from the cache when the fetch fails.\n const del =\n !noDelete || (!proceed && bf.__staleWhileFetching === undefined)\n if (del) {\n this.#delete(k, 'fetch')\n } else if (!allowStaleAborted) {\n // still replace the *promise* with the stale value,\n // since we are done with the promise at this point.\n // leave it untouched if we're still waiting for an\n // aborted background fetch that hasn't yet returned.\n this.#valList[index as Index] = bf.__staleWhileFetching\n }\n }\n if (allowStale) {\n if (options.status && bf.__staleWhileFetching !== undefined) {\n options.status.returnedStale = true\n }\n return bf.__staleWhileFetching\n } else if (bf.__returned === bf) {\n throw er\n }\n }\n\n const pcall = (\n res: (v: V | undefined) => void,\n rej: (e: any) => void,\n ) => {\n const fmp = this.#fetchMethod?.(k, v, fetchOpts)\n if (fmp && fmp instanceof Promise) {\n fmp.then(v => res(v === undefined ? undefined : v), rej)\n }\n // ignored, we go until we finish, regardless.\n // defer check until we are actually aborting,\n // so fetchMethod can override.\n ac.signal.addEventListener('abort', () => {\n if (!options.ignoreFetchAbort || options.allowStaleOnFetchAbort) {\n res(undefined)\n // when it eventually resolves, update the cache.\n if (options.allowStaleOnFetchAbort) {\n res = v => cb(v, true)\n }\n }\n })\n }\n\n if (options.status) options.status.fetchDispatched = true\n const p = new Promise(pcall).then(cb, eb)\n const bf: BackgroundFetch<V> = Object.assign(p, {\n __abortController: ac,\n __staleWhileFetching: v,\n __returned: undefined,\n })\n\n if (index === undefined) {\n // internal, don't expose status.\n this.set(k, bf, { ...fetchOpts.options, status: undefined })\n index = this.#keyMap.get(k)\n } else {\n this.#valList[index] = bf\n }\n return bf\n }\n\n #isBackgroundFetch(p: any): p is BackgroundFetch<V> {\n if (!this.#hasFetchMethod) return false\n const b = p as BackgroundFetch<V>\n return (\n !!b &&\n b instanceof Promise &&\n b.hasOwnProperty('__staleWhileFetching') &&\n b.__abortController instanceof AC\n )\n }\n\n /**\n * Make an asynchronous cached fetch using the\n * {@link LRUCache.OptionsBase.fetchMethod} function.\n *\n * If the value is in the cache and not stale, then the returned\n * Promise resolves to the value.\n *\n * If not in the cache, or beyond its TTL staleness, then\n * `fetchMethod(key, staleValue, { options, signal, context })` is\n * called, and the value returned will be added to the cache once\n * resolved.\n *\n * If called with `allowStale`, and an asynchronous fetch is\n * currently in progress to reload a stale value, then the former\n * stale value will be returned.\n *\n * If called with `forceRefresh`, then the cached item will be\n * re-fetched, even if it is not stale. However, if `allowStale` is also\n * set, then the old value will still be returned. This is useful\n * in cases where you want to force a reload of a cached value. If\n * a background fetch is already in progress, then `forceRefresh`\n * has no effect.\n *\n * If multiple fetches for the same key are issued, then they will all be\n * coalesced into a single call to fetchMethod.\n *\n * Note that this means that handling options such as\n * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort},\n * {@link LRUCache.FetchOptions.signal},\n * and {@link LRUCache.OptionsBase.allowStaleOnFetchRejection} will be\n * determined by the FIRST fetch() call for a given key.\n *\n * This is a known (fixable) shortcoming which will be addresed on when\n * someone complains about it, as the fix would involve added complexity and\n * may not be worth the costs for this edge case.\n *\n * If {@link LRUCache.OptionsBase.fetchMethod} is not specified, then this is\n * effectively an alias for `Promise.resolve(cache.get(key))`.\n *\n * When the fetch method resolves to a value, if the fetch has not\n * been aborted due to deletion, eviction, or being overwritten,\n * then it is added to the cache using the options provided.\n *\n * If the key is evicted or deleted before the `fetchMethod`\n * resolves, then the AbortSignal passed to the `fetchMethod` will\n * receive an `abort` event, and the promise returned by `fetch()`\n * will reject with the reason for the abort.\n *\n * If a `signal` is passed to the `fetch()` call, then aborting the\n * signal will abort the fetch and cause the `fetch()` promise to\n * reject with the reason provided.\n *\n * **Setting `context`**\n *\n * If an `FC` type is set to a type other than `unknown`, `void`, or\n * `undefined` in the {@link LRUCache} constructor, then all\n * calls to `cache.fetch()` _must_ provide a `context` option. If\n * set to `undefined` or `void`, then calls to fetch _must not_\n * provide a `context` option.\n *\n * The `context` param allows you to provide arbitrary data that\n * might be relevant in the course of fetching the data. It is only\n * relevant for the course of a single `fetch()` operation, and\n * discarded afterwards.\n *\n * **Note: `fetch()` calls are inflight-unique**\n *\n * If you call `fetch()` multiple times with the same key value,\n * then every call after the first will resolve on the same\n * promise<sup>1</sup>,\n * _even if they have different settings that would otherwise change\n * the behavior of the fetch_, such as `noDeleteOnFetchRejection`\n * or `ignoreFetchAbort`.\n *\n * In most cases, this is not a problem (in fact, only fetching\n * something once is what you probably want, if you're caching in\n * the first place). If you are changing the fetch() options\n * dramatically between runs, there's a good chance that you might\n * be trying to fit divergent semantics into a single object, and\n * would be better off with multiple cache instances.\n *\n * **1**: Ie, they're not the \"same Promise\", but they resolve at\n * the same time, because they're both waiting on the same\n * underlying fetchMethod response.\n */\n\n fetch(\n k: K,\n fetchOptions: unknown extends FC ? LRUCache.FetchOptions<K, V, FC>\n : FC extends undefined | void ? LRUCache.FetchOptionsNoContext<K, V>\n : LRUCache.FetchOptionsWithContext<K, V, FC>,\n ): Promise<undefined | V>\n\n // this overload not allowed if context is required\n fetch(\n k: unknown extends FC ? K\n : FC extends undefined | void ? K\n : never,\n fetchOptions?: unknown extends FC ? LRUCache.FetchOptions<K, V, FC>\n : FC extends undefined | void ? LRUCache.FetchOptionsNoContext<K, V>\n : never,\n ): Promise<undefined | V>\n\n async fetch(\n k: K,\n fetchOptions: LRUCache.FetchOptions<K, V, FC> = {},\n ): Promise<undefined | V> {\n const {\n // get options\n allowStale = this.allowStale,\n updateAgeOnGet = this.updateAgeOnGet,\n noDeleteOnStaleGet = this.noDeleteOnStaleGet,\n // set options\n ttl = this.ttl,\n noDisposeOnSet = this.noDisposeOnSet,\n size = 0,\n sizeCalculation = this.sizeCalculation,\n noUpdateTTL = this.noUpdateTTL,\n // fetch exclusive options\n noDeleteOnFetchRejection = this.noDeleteOnFetchRejection,\n allowStaleOnFetchRejection = this.allowStaleOnFetchRejection,\n ignoreFetchAbort = this.ignoreFetchAbort,\n allowStaleOnFetchAbort = this.allowStaleOnFetchAbort,\n context,\n forceRefresh = false,\n status,\n signal,\n } = fetchOptions\n\n if (!this.#hasFetchMethod) {\n if (status) status.fetch = 'get'\n return this.get(k, {\n allowStale,\n updateAgeOnGet,\n noDeleteOnStaleGet,\n status,\n })\n }\n\n const options = {\n allowStale,\n updateAgeOnGet,\n noDeleteOnStaleGet,\n ttl,\n noDisposeOnSet,\n size,\n sizeCalculation,\n noUpdateTTL,\n noDeleteOnFetchRejection,\n allowStaleOnFetchRejection,\n allowStaleOnFetchAbort,\n ignoreFetchAbort,\n status,\n signal,\n }\n\n let index = this.#keyMap.get(k)\n if (index === undefined) {\n if (status) status.fetch = 'miss'\n const p = this.#backgroundFetch(k, index, options, context)\n return (p.__returned = p)\n } else {\n // in cache, maybe already fetching\n const v = this.#valList[index]\n if (this.#isBackgroundFetch(v)) {\n const stale = allowStale && v.__staleWhileFetching !== undefined\n if (status) {\n status.fetch = 'inflight'\n if (stale) status.returnedStale = true\n }\n return stale ? v.__staleWhileFetching : (v.__returned = v)\n }\n\n // if we force a refresh, that means do NOT serve the cached value,\n // unless we are already in the process of refreshing the cache.\n const isStale = this.#isStale(index)\n if (!forceRefresh && !isStale) {\n if (status) status.fetch = 'hit'\n this.#moveToTail(index)\n if (updateAgeOnGet) {\n this.#updateItemAge(index)\n }\n if (status) this.#statusTTL(status, index)\n return v\n }\n\n // ok, it is stale or a forced refresh, and not already fetching.\n // refresh the cache.\n const p = this.#backgroundFetch(k, index, options, context)\n const hasStale = p.__staleWhileFetching !== undefined\n const staleVal = hasStale && allowStale\n if (status) {\n status.fetch = isStale ? 'stale' : 'refresh'\n if (staleVal && isStale) status.returnedStale = true\n }\n return staleVal ? p.__staleWhileFetching : (p.__returned = p)\n }\n }\n\n /**\n * In some cases, `cache.fetch()` may resolve to `undefined`, either because\n * a {@link LRUCache.OptionsBase#fetchMethod} was not provided (turning\n * `cache.fetch(k)` into just an async wrapper around `cache.get(k)`) or\n * because `ignoreFetchAbort` was specified (either to the constructor or\n * in the {@link LRUCache.FetchOptions}). Also, the\n * {@link LRUCache.OptionsBase.fetchMethod} may return `undefined` or `void`, making\n * the test even more complicated.\n *\n * Because inferring the cases where `undefined` might be returned are so\n * cumbersome, but testing for `undefined` can also be annoying, this method\n * can be used, which will reject if `this.fetch()` resolves to undefined.\n */\n forceFetch(\n k: K,\n fetchOptions: unknown extends FC ? LRUCache.FetchOptions<K, V, FC>\n : FC extends undefined | void ? LRUCache.FetchOptionsNoContext<K, V>\n : LRUCache.FetchOptionsWithContext<K, V, FC>,\n ): Promise<V>\n // this overload not allowed if context is required\n forceFetch(\n k: unknown extends FC ? K\n : FC extends undefined | void ? K\n : never,\n fetchOptions?: unknown extends FC ? LRUCache.FetchOptions<K, V, FC>\n : FC extends undefined | void ? LRUCache.FetchOptionsNoContext<K, V>\n : never,\n ): Promise<V>\n async forceFetch(\n k: K,\n fetchOptions: LRUCache.FetchOptions<K, V, FC> = {},\n ): Promise<V> {\n const v = await this.fetch(\n k,\n fetchOptions as unknown extends FC ? LRUCache.FetchOptions<K, V, FC>\n : FC extends undefined | void ? LRUCache.FetchOptionsNoContext<K, V>\n : LRUCache.FetchOptionsWithContext<K, V, FC>,\n )\n if (v === undefined) throw new Error('fetch() returned undefined')\n return v\n }\n\n /**\n * If the key is found in the cache, then this is equivalent to\n * {@link LRUCache#get}. If not, in the cache, then calculate the value using\n * the {@link LRUCache.OptionsBase.memoMethod}, and add it to the cache.\n *\n * If an `FC` type is set to a type other than `unknown`, `void`, or\n * `undefined` in the LRUCache constructor, then all calls to `cache.memo()`\n * _must_ provide a `context` option. If set to `undefined` or `void`, then\n * calls to memo _must not_ provide a `context` option.\n *\n * The `context` param allows you to provide arbitrary data that might be\n * relevant in the course of fetching the data. It is only relevant for the\n * course of a single `memo()` operation, and discarded afterwards.\n */\n memo(\n k: K,\n memoOptions: unknown extends FC ? LRUCache.MemoOptions<K, V, FC>\n : FC extends undefined | void ? LRUCache.MemoOptionsNoContext<K, V>\n : LRUCache.MemoOptionsWithContext<K, V, FC>,\n ): V\n // this overload not allowed if context is required\n memo(\n k: unknown extends FC ? K\n : FC extends undefined | void ? K\n : never,\n memoOptions?: unknown extends FC ? LRUCache.MemoOptions<K, V, FC>\n : FC extends undefined | void ? LRUCache.MemoOptionsNoContext<K, V>\n : never,\n ): V\n memo(k: K, memoOptions: LRUCache.MemoOptions<K, V, FC> = {}) {\n const memoMethod = this.#memoMethod\n if (!memoMethod) {\n throw new Error('no memoMethod provided to constructor')\n }\n const { context, forceRefresh, ...options } = memoOptions\n const v = this.get(k, options)\n if (!forceRefresh && v !== undefined) return v\n const vv = memoMethod(k, v, {\n options,\n context,\n } as LRUCache.MemoizerOptions<K, V, FC>)\n this.set(k, vv, options)\n return vv\n }\n\n /**\n * Return a value from the cache. Will update the recency of the cache\n * entry found.\n *\n * If the key is not found, get() will return `undefined`.\n */\n get(k: K, getOptions: LRUCache.GetOptions<K, V, FC> = {}) {\n const {\n allowStale = this.allowStale,\n updateAgeOnGet = this.updateAgeOnGet,\n noDeleteOnStaleGet = this.noDeleteOnStaleGet,\n status,\n } = getOptions\n const index = this.#keyMap.get(k)\n if (index !== undefined) {\n const value = this.#valList[index]\n const fetching = this.#isBackgroundFetch(value)\n if (status) this.#statusTTL(status, index)\n if (this.#isStale(index)) {\n if (status) status.get = 'stale'\n // delete only if not an in-flight background fetch\n if (!fetching) {\n if (!noDeleteOnStaleGet) {\n this.#delete(k, 'expire')\n }\n if (status && allowStale) status.returnedStale = true\n return allowStale ? value : undefined\n } else {\n if (\n status &&\n allowStale &&\n value.__staleWhileFetching !== undefined\n ) {\n status.returnedStale = true\n }\n return allowStale ? value.__staleWhileFetching : undefined\n }\n } else {\n if (status) status.get = 'hit'\n // if we're currently fetching it, we don't actually have it yet\n // it's not stale, which means this isn't a staleWhileRefetching.\n // If it's not stale, and fetching, AND has a __staleWhileFetching\n // value, then that means the user fetched with {forceRefresh:true},\n // so it's safe to return that value.\n if (fetching) {\n return value.__staleWhileFetching\n }\n this.#moveToTail(index)\n if (updateAgeOnGet) {\n this.#updateItemAge(index)\n }\n return value\n }\n } else if (status) {\n status.get = 'miss'\n }\n }\n\n #connect(p: Index, n: Index) {\n this.#prev[n] = p\n this.#next[p] = n\n }\n\n #moveToTail(index: Index): void {\n // if tail already, nothing to do\n // if head, move head to next[index]\n // else\n // move next[prev[index]] to next[index] (head has no prev)\n // move prev[next[index]] to prev[index]\n // prev[index] = tail\n // next[tail] = index\n // tail = index\n if (index !== this.#tail) {\n if (index === this.#head) {\n this.#head = this.#next[index] as Index\n } else {\n this.#connect(\n this.#prev[index] as Index,\n this.#next[index] as Index,\n )\n }\n this.#connect(this.#tail, index)\n this.#tail = index\n }\n }\n\n /**\n * Deletes a key out of the cache.\n *\n * Returns true if the key was deleted, false otherwise.\n */\n delete(k: K) {\n return this.#delete(k, 'delete')\n }\n\n #delete(k: K, reason: LRUCache.DisposeReason) {\n let deleted = false\n if (this.#size !== 0) {\n const index = this.#keyMap.get(k)\n if (index !== undefined) {\n if (this.#autopurgeTimers?.[index]) {\n clearTimeout(this.#autopurgeTimers?.[index])\n this.#autopurgeTimers[index] = undefined\n }\n deleted = true\n if (this.#size === 1) {\n this.#clear(reason)\n } else {\n this.#removeItemSize(index)\n const v = this.#valList[index]\n if (this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('deleted'))\n } else if (this.#hasDispose || this.#hasDisposeAfter) {\n if (this.#hasDispose) {\n this.#dispose?.(v as V, k, reason)\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v as V, k, reason])\n }\n }\n this.#keyMap.delete(k)\n this.#keyList[index] = undefined\n this.#valList[index] = undefined\n if (index === this.#tail) {\n this.#tail = this.#prev[index] as Index\n } else if (index === this.#head) {\n this.#head = this.#next[index] as Index\n } else {\n const pi = this.#prev[index] as number\n this.#next[pi] = this.#next[index] as number\n const ni = this.#next[index] as number\n this.#prev[ni] = this.#prev[index] as number\n }\n this.#size--\n this.#free.push(index)\n }\n }\n }\n if (this.#hasDisposeAfter && this.#disposed?.length) {\n const dt = this.#disposed\n let task: DisposeTask<K, V> | undefined\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task)\n }\n }\n return deleted\n }\n\n /**\n * Clear the cache entirely, throwing away all values.\n */\n clear() {\n return this.#clear('delete')\n }\n #clear(reason: LRUCache.DisposeReason) {\n for (const index of this.#rindexes({ allowStale: true })) {\n const v = this.#valList[index]\n if (this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('deleted'))\n } else {\n const k = this.#keyList[index]\n if (this.#hasDispose) {\n this.#dispose?.(v as V, k as K, reason)\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v as V, k as K, reason])\n }\n }\n }\n\n this.#keyMap.clear()\n this.#valList.fill(undefined)\n this.#keyList.fill(undefined)\n if (this.#ttls && this.#starts) {\n this.#ttls.fill(0)\n this.#starts.fill(0)\n for (const t of this.#autopurgeTimers ?? []) {\n if (t !== undefined) clearTimeout(t)\n }\n this.#autopurgeTimers?.fill(undefined)\n }\n if (this.#sizes) {\n this.#sizes.fill(0)\n }\n this.#head = 0 as Index\n this.#tail = 0 as Index\n this.#free.length = 0\n this.#calculatedSize = 0\n this.#size = 0\n if (this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed\n let task: DisposeTask<K, V> | undefined\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task)\n }\n }\n }\n}\n","import { LRUCache } from \"lru-cache\";\n\nexport default class CachedMap<K extends {}, V extends {}> implements Map<K, V> {\n readonly cache: LRUCache<K, V>;\n readonly map: Map<K, V> = new Map();\n constructor(options: { cacheSize: number }) {\n this.cache = new LRUCache<K, V>({\n max: options.cacheSize,\n });\n this.map = new Map();\n }\n get [Symbol.iterator]() {\n return this.map[Symbol.iterator];\n }\n get [Symbol.toStringTag]() {\n return this.map[Symbol.toStringTag];\n }\n clear(): void {\n this.cache.clear();\n return this.map.clear();\n }\n delete(key: K): boolean {\n const deleted = this.map.delete(key);\n if (deleted) {\n this.cache.delete(key);\n }\n return deleted;\n }\n get forEach() {\n return this.map.forEach;\n }\n get(key: K): V | undefined {\n const cachedValue = this.cache.get(key);\n if (cachedValue) {\n return cachedValue;\n }\n return this.map.get(key);\n }\n has(key: K): boolean {\n return this.map.has(key);\n }\n set(key: K, value: V): this {\n this.map.set(key, value);\n this.cache.set(key, value);\n return this;\n }\n get size() {\n return this.map.size;\n }\n entries() {\n return this.map.entries();\n }\n keys() {\n return this.map.keys();\n }\n values() {\n return this.map.values();\n }\n}\n","import { CachedMap } from \"../../classes\";\nimport { logger } from \"../../utils/log-utility\";\n\nexport const SERIALIZABLE_EVENT = Symbol(\"SerializableEvent\");\n\n/**\n * Canvas Event Register\n */\nconst registeredEvents = new CachedMap<string, Function>({ cacheSize: 5 });\n/**\n * Is a decorator that register a event in the game.\n * Is a required decorator for use the event in the game.\n * Thanks to this decoration the game has the possibility of updating the events to the latest modification and saving the game.\n * @example\n * ```ts\n * export class Events {\n * \\@eventDecorator()\n * static eventExample(event: FederatedEvent, component: Sprite) {\n * // event code here\n * }\n * }\n *\n * sprite.on(\"pointerdown\", Events.eventExample);\n * ```\n * @param name is th identifier of the event, by default is the name of the class\n * @returns\n */\nexport function eventDecorator(name?: string) {\n return function (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) {\n const fn = descriptor.value;\n\n RegisteredEvents.add(fn, name || `${propertyKey as string}`);\n };\n}\n\nnamespace RegisteredEvents {\n /**\n * Register a event in the game.\n * @param fn The class of the event.\n * @param name Name of the event, by default it will use the class name. If the name is already registered, it will show a warning\n */\n export function add(fn: Function, name: string) {\n (fn as any)[SERIALIZABLE_EVENT] = name;\n if (registeredEvents.get(name)) {\n logger.info(`Event \"${name}\" already exists, it will be overwritten`);\n }\n registeredEvents.set(name, fn);\n }\n\n /**\n * Get a event by the id.\n * @param canvasId The id of the event.\n * @returns The event type.\n */\n export function get(name: string): Function | undefined {\n try {\n let eventType = registeredEvents.get(name);\n if (!eventType) {\n logger.error(`Event \"${name}\" not found, did you forget to register it with the eventDecorator?`);\n return;\n }\n return eventType;\n } catch (e) {\n logger.error(`Error while getting Event \"${name}\"`, e);\n return;\n }\n }\n\n /**\n * Get a list of all events registered.\n * @returns An array of events.\n */\n export function values(): Function[] {\n return Array.from(registeredEvents.values());\n }\n\n /**\n * Check if a event is registered.\n * @param id The id of the event.\n * @returns True if the event is registered, false otherwise\n */\n export function has(id: string): boolean {\n return registeredEvents.has(id);\n }\n\n /**\n * Get a list of all event ids registered.\n * @returns An array of label ids.\n */\n export function keys(): string[] {\n return Array.from(registeredEvents.keys());\n }\n}\nexport default RegisteredEvents;\n","import type { Container } from \"@drincs/pixi-vn/pixi.js\";\nimport { logger } from \"../../utils/log-utility\";\nimport RegisteredEvents, { SERIALIZABLE_EVENT } from \"../decorators/event-decorator\";\n\nexport interface ListenerExtensionMemory {\n onEvents?: OnEventsHandlers;\n}\n\nexport interface OnEventsHandlers {\n [name: string]: string;\n}\n\nexport default interface ListenerExtension {\n /**\n * Add a listener for a given event.\n * @example\n * ```ts\n * export class Events {\n * \\@eventDecorator()\n * static eventExample(event: FederatedEvent, component: Sprite) {\n * // event code here\n * }\n * }\n *\n * sprite.on(\"pointerdown\", Events.eventExample);\n * ```\n */\n on: Container[\"on\"];\n readonly onEventsHandlers: OnEventsHandlers;\n}\n\nexport async function setListenerMemory(\n element: (ListenerExtension | {}) & Container,\n memory: ListenerExtensionMemory | {},\n) {\n if (\"onEvents\" in memory) {\n for (let event in memory.onEvents) {\n let id = memory.onEvents[event];\n let instance = RegisteredEvents.get(id);\n if (instance) {\n element.on(event, instance as (event: any, component: typeof element) => void);\n }\n }\n }\n}\n\nexport function getListenerMemory<T extends ListenerExtension>(element: T | {}): Record<string, any> {\n return \"onEventsHandlers\" in element ? element.onEventsHandlers : {};\n}\n\nexport function addListenerHandler<T extends ListenerExtension>(\n event: symbol | string,\n element: T,\n fn: Function,\n): boolean {\n const handlerId = (fn as any)[SERIALIZABLE_EVENT] as string;\n\n if (handlerId && typeof handlerId === \"string\") {\n element.onEventsHandlers[event as string] = handlerId;\n return true;\n } else {\n logger.warn(\n `The event handler for event \"${event as string}\" is not registered with the eventDecorator, it will not be saved in the memory and it will not work after loading the game. Please register the event handler with the eventDecorator to avoid this warning. Read more about it here: https://pixi-vn.web.app/start/canvas-functions#add-a-listener-to-an-event`,\n );\n return false;\n }\n}\n","import { ContainerOptions, Container as PixiContainer, PointData } from \"@drincs/pixi-vn/pixi.js\";\nimport { canvas } from \"..\";\nimport { CachedMap } from \"../../classes\";\nimport { logger } from \"../../utils/log-utility\";\nimport CanvasBaseItem from \"../classes/CanvasBaseItem\";\nimport { setListenerMemory } from \"../components/ListenerExtension\";\nimport CanvasBaseItemMemory from \"../interfaces/memory/CanvasBaseItemMemory\";\nimport { CanvasElementAliasType } from \"../types/CanvasElementAliasType\";\n\nconst registeredCanvasComponent = new CachedMap<CanvasElementAliasType, typeof CanvasBaseItem<any>>({ cacheSize: 5 });\nconst registeredCanvasInstanceGetters = new CachedMap<\n CanvasElementAliasType,\n (\n canvasClass: typeof CanvasBaseItem<CanvasBaseItemMemory>,\n memory: CanvasBaseItemMemory,\n ) => CanvasBaseItem<CanvasBaseItemMemory> | Promise<CanvasBaseItem<CanvasBaseItemMemory>>\n>({ cacheSize: 2 });\nconst registeredCanvasComponentCopyProperties = new CachedMap<\n CanvasElementAliasType,\n (component: CanvasBaseItem<CanvasBaseItemMemory>, source: CanvasBaseItemMemory) => void | Promise<void>\n>({ cacheSize: 2 });\n/**\n * Is a decorator that register a canvas component in the game.\n * @param options Options for the canvas component.\n * @returns\n */\nexport function canvasComponentDecorator<M extends CanvasBaseItemMemory, T extends typeof CanvasBaseItem<M>>(\n options: {\n /**\n * Name of the canvas component. If the name is already registered, it will show a warning\n * @default target.name\n */\n name?: CanvasElementAliasType;\n /**\n * Function to get the instance of the canvas component. If not set, it will use the default constructor of the class.\n * This function is used into {@link canvas.restore} to restore the canvas.\n * @param canvasClass The class of the canvas component.\n * @param memory Memory of the canvas component.\n * @returns The instance of the canvas component.\n */\n getInstance?: (canvasClass: T, memory: M) => CanvasBaseItem<M> | Promise<CanvasBaseItem<M>>;\n /**\n * Function to copy the properties of the canvas component. This function is used when to copy the properties of the canvas component into another instance of the same canvas component.\n * This function is used into {@link canvas.copyCanvasElementProperty} to copy the properties of the canvas component.\n * @param component The instance of the canvas component to copy the properties.\n * @param memory The memory of the canvas component to copy the properties.\n * @returns\n */\n copyProperty?: (component: CanvasBaseItem<M>, memory: M) => void | Promise<void>;\n } = {},\n) {\n return function (target: T) {\n RegisteredCanvasComponents.add(target, options);\n };\n}\n\nexport async function setMemoryContainer<T extends PixiContainer>(\n element: T | PixiContainer,\n memory: ContainerOptions | {},\n options?: {\n ignoreScale?: boolean;\n end?: () => Promise<void> | void;\n },\n) {\n let ignoreScale = options?.ignoreScale || false;\n let end = options?.end;\n \"isRenderGroup\" in memory && memory.isRenderGroup !== undefined && (element.isRenderGroup = memory.isRenderGroup);\n \"blendMode\" in memory && memory.blendMode !== undefined && (element.blendMode = memory.blendMode);\n \"tint\" in memory && memory.tint !== undefined && (element.tint = memory.tint);\n \"alpha\" in memory && memory.alpha !== undefined && (element.alpha = memory.alpha);\n \"angle\" in memory && memory.angle !== undefined && (element.angle = memory.angle);\n \"renderable\" in memory && memory.renderable !== undefined && (element.renderable = memory.renderable);\n \"rotation\" in memory && memory.rotation !== undefined && (element.rotation = memory.rotation);\n if (!ignoreScale && \"scale\" in memory && memory.scale !== undefined) {\n if (typeof memory.scale === \"number\") {\n element.scale.set(memory.scale, memory.scale);\n } else {\n element.scale.set(memory.scale.x, memory.scale.y);\n }\n }\n if (\"pivot\" in memory && memory.pivot !== undefined) {\n if (typeof memory.pivot === \"number\") {\n element.pivot.set(memory.pivot, memory.pivot);\n } else {\n element.pivot.set(memory.pivot.x, memory.pivot.y);\n }\n }\n \"position\" in memory && memory.position !== undefined && element.position.set(memory.position.x, memory.position.y);\n \"skew\" in memory && memory.skew !== undefined && element.skew.set(memory.skew.x, memory.skew.y);\n \"visible\" in memory && memory.visible !== undefined && (element.visible = memory.visible);\n \"x\" in memory && memory.x !== undefined && (element.x = memory.x);\n \"y\" in memory && memory.y !== undefined && (element.y = memory.y);\n \"boundsArea\" in memory && memory.boundsArea !== undefined && (element.boundsArea = memory.boundsArea);\n\n \"cursor\" in memory && memory.cursor !== undefined && (element.cursor = memory.cursor);\n \"eventMode\" in memory && memory.eventMode !== undefined && (element.eventMode = memory.eventMode);\n \"interactive\" in memory && memory.interactive !== undefined && (element.interactive = memory.interactive);\n \"interactiveChildren\" in memory &&\n memory.interactiveChildren !== undefined &&\n (element.interactiveChildren = memory.interactiveChildren);\n \"hitArea\" in memory && memory.hitArea !== undefined && (element.hitArea = memory.hitArea);\n setListenerMemory(element, memory);\n\n // \"anchor\" in memory && memory.anchor !== undefined && (element.anchor = memory.anchor as number | PointData);\n \"align\" in memory &&\n memory.align !== undefined &&\n \"align\" in element &&\n (element.align = memory.align as Partial<PointData>);\n \"percentagePosition\" in memory &&\n memory.percentagePosition !== undefined &&\n \"percentagePosition\" in element &&\n (element.percentagePosition = memory.percentagePosition as Partial<PointData>);\n\n // end\n if (end) {\n await end();\n }\n // width and height must be set after the scale\n if (!ignoreScale) {\n \"width\" in memory && memory.width !== undefined && (element.width = memory.width);\n \"height\" in memory && memory.height !== undefined && (element.height = memory.height);\n }\n}\n\nnamespace RegisteredCanvasComponents {\n /**\n * Register a canvas component in the game.\n * @param target The class of the canvas component.\n * @param options Options for the canvas component.\n */\n export function add<M extends CanvasBaseItemMemory, T extends typeof CanvasBaseItem<M>>(\n target: T,\n options: {\n /**\n * Name of the canvas component. If the name is already registered, it will show a warning\n * @default target.name\n */\n name?: CanvasElementAliasType;\n /**\n * Function to get the instance of the canvas component. If not set, it will use the default constructor of the class.\n * This function is used into {@link canvas.restore} to restore the canvas.\n * @param canvasClass The class of the canvas component.\n * @param memory Memory of the canvas component.\n * @returns The instance of the canvas component.\n */\n getInstance?: (canvasClass: T, memory: M) => CanvasBaseItem<M> | Promise<CanvasBaseItem<M>>;\n /**\n * Function to copy the properties of the canvas component. This function is used when to copy the properties of the canvas component into another instance of the same canvas component.\n * This function is used into {@link canvas.copyCanvasElementProperty} to copy the properties of the canvas component.\n * @param component The instance of the canvas component to copy the properties.\n * @param memory The memory of the canvas component to copy the properties.\n * @returns\n */\n copyProperty?: (component: CanvasBaseItem<M>, memory: M) => void | Promise<void>;\n } = {},\n ) {\n const {\n name = target.name,\n getInstance = async (canvasClass: T, memory: M) => {\n const instance = new canvasClass();\n await instance.setMemory(memory);\n return instance;\n },\n copyProperty = async (component: CanvasBaseItem<M>, memory: M) => {\n await component.setMemory(memory);\n },\n } = options;\n if (registeredCanvasComponent.get(name)) {\n logger.warn(`CanvasElement \"${name}\" already registered`);\n }\n target.prototype.pixivnId = name;\n registeredCanvasComponent.set(name, target);\n registeredCanvasInstanceGetters.set(name, getInstance as any);\n registeredCanvasComponentCopyProperties.set(name, copyProperty as any);\n }\n\n /**\n * Get a canvas component by the id.\n * @param canvasId The id of the canvas component.\n * @returns The canvas component type.\n */\n export function get<T extends typeof CanvasBaseItem<any>>(canvasId: CanvasElementAliasType): T | undefined {\n let eventType = registeredCanvasComponent.get(canvasId);\n if (!eventType) {\n logger.error(\n `CanvasElement \"${canvasId}\" not found, did you forget to register it with the canvasComponentDecorator?`,\n );\n return;\n }\n return eventType as T;\n }\n\n export async function getInstance<M extends CanvasBaseItemMemory, T extends CanvasBaseItem<M>>(\n canvasId: CanvasElementAliasType,\n memory: M,\n ): Promise<T | undefined> {\n const eventType = get(canvasId);\n const getInstance = registeredCanvasInstanceGetters.get(canvasId);\n if (!eventType || !getInstance) {\n logger.error(\n `CanvasElement \"${canvasId}\" not found, did you forget to register it with the canvasComponentDecorator?`,\n );\n return;\n }\n try {\n let canvasElement = await getInstance(eventType, memory);\n return canvasElement as T;\n } catch (e) {\n logger.error(`Error while getting CanvasElement instance \"${canvasId}\"`, e);\n }\n }\n\n export async function copyProperty<M extends CanvasBaseItemMemory>(\n canvasId: CanvasElementAliasType,\n component: CanvasBaseItem<M>,\n source: CanvasBaseItemMemory,\n ) {\n const copyProperty = registeredCanvasComponentCopyProperties.get(canvasId);\n if (!copyProperty) {\n logger.error(\n `CanvasElement \"${canvasId}\" not found, did you forget to register it with the canvasComponentDecorator?`,\n );\n return;\n }\n try {\n await copyProperty(component, source);\n } catch (e) {\n logger.error(`Error while copying properties of CanvasElement \"${canvasId}\"`, e);\n }\n return;\n }\n\n /**\n * Get a list of all canvas components registered.\n * @returns An array of canvas components.\n */\n export function values(): (typeof CanvasBaseItem<any>)[] {\n return Array.from(registeredCanvasComponent.values());\n }\n\n /**\n * Check if a canvas component is registered.\n * @param id The id of the canvas component.\n * @returns True if the canvas component is registered, false otherwise.\n */\n export function has(id: string): boolean {\n return registeredCanvasComponent.has(id);\n }\n\n /**\n * Get a list of all canvas component ids registered.\n * @returns An array of label ids.\n */\n export function keys(): string[] {\n return Array.from(registeredCanvasComponent.keys());\n }\n}\nexport default RegisteredCanvasComponents;\n","import { PixiError } from \"@drincs/pixi-vn/core\";\nimport CanvasBaseItem from \"../classes/CanvasBaseItem\";\nimport { default as RegisteredCanvasComponents } from \"../decorators/canvas-element-decorator\";\nimport CanvasBaseItemMemory from \"../interfaces/memory/CanvasBaseItemMemory\";\n\n/**\n * Import a Canvas element from a memory object\n * @param memory Memory object of the canvas\n * @returns Canvas element\n * @throws {PixiError} when the canvas element identified by `memory.pixivnId` is not registered.\n */\nexport async function importCanvasElement<M extends CanvasBaseItemMemory, T extends CanvasBaseItem<M>>(\n memory: M,\n): Promise<T> {\n let element = await RegisteredCanvasComponents.getInstance<M, T>(memory.pixivnId, memory);\n if (!element) {\n throw new PixiError(\n \"unregistered_element\",\n `The element ${memory.pixivnId} could not be created`,\n \"canvas\",\n memory,\n );\n }\n\n return element;\n}\n","import type {\n ColorSource,\n FillGradient,\n FillInput,\n GradientOptions,\n Container as PixiContainer,\n Sprite as PixiSprite,\n Text as PixiText,\n StrokeInput,\n StrokeStyle,\n TextStyle,\n TextStyleOptions,\n Texture,\n} from \"@drincs/pixi-vn/pixi.js\";\nimport { default as PIXI } from \"@drincs/pixi-vn/pixi.js\";\nimport { CANVAS_CONTAINER_ID, CANVAS_SPRITE_ID, CANVAS_TEXT_ID } from \"../../constants\";\nimport { logger } from \"../../utils/log-utility\";\nimport { getListenerMemory } from \"../components/ListenerExtension\";\nimport AssetMemory from \"../interfaces/AssetMemory\";\nimport { CanvasBaseInterface } from \"../interfaces/CanvasBaseInterface\";\nimport CanvasBaseItemMemory from \"../interfaces/memory/CanvasBaseItemMemory\";\nimport ContainerMemory from \"../interfaces/memory/ContainerMemory\";\nimport SpriteMemory from \"../interfaces/memory/SpriteMemory\";\nimport TextMemory from \"../interfaces/memory/TextMemory\";\n\n/**\n * Export a Canvas element to a memory object\n * @param canvasComponent Canvas element\n * @returns Memory object of the canvas\n */\nexport function exportCanvasElement<T extends PixiContainer>(canvasComponent: T): CanvasBaseItemMemory {\n if (\"memory\" in canvasComponent) {\n return canvasComponent.memory as CanvasBaseItemMemory;\n } else if (canvasComponent instanceof PIXI.Text) {\n return getMemoryText(canvasComponent);\n } else if (canvasComponent instanceof PIXI.Sprite) {\n return getMemorySprite(canvasComponent);\n } else {\n return getMemoryContainer(canvasComponent);\n }\n}\n\n/**\n * Extract common properties for memory objects\n */\nfunction extractCommonMemoryProperties<T extends PixiContainer>(element: T): Partial<ContainerMemory> {\n const parent = element.parent;\n return {\n width: element.width,\n height: element.height,\n isRenderGroup: element.isRenderGroup,\n blendMode: element.blendMode,\n tint: element.tint,\n alpha: element.alpha,\n angle: element.angle,\n renderable: element.renderable,\n rotation: element.rotation,\n scale: { x: element.scale.x, y: element.scale.y },\n pivot: { x: element.pivot.x, y: element.pivot.y },\n position: { x: element.position.x, y: element.position.y },\n skew: { x: element.skew.x, y: element.skew.y },\n visible: element.visible,\n x: element.x,\n y: element.y,\n boundsArea: element.boundsArea,\n cursor: element.cursor,\n eventMode: element.eventMode,\n interactive: element.interactive,\n interactiveChildren: element.interactiveChildren,\n hitArea: element.hitArea,\n index: parent?.getChildIndex(element),\n parentLabel: parent?.label,\n label: element.label,\n };\n}\n\n/**\n * Get the memory object of the PixiJS texture\n * @param texture PixiJS Texture object\n * @param alias Optional alias for the texture\n * @returns Memory object of the texture\n */\nfunction getTextureMemory(texture: Texture, alias?: string): AssetMemory {\n return {\n url: texture.source.label,\n alias: alias === texture.source.label ? undefined : alias,\n };\n}\n\n/**\n * Get the memory object of a container\n * @param element PixiJS container element\n * @param options Optional export options\n * @returns Memory object of the container\n */\nexport function getMemoryContainer<T extends PixiContainer>(\n element: T,\n options?: { childrenExport?: boolean },\n): ContainerMemory {\n const pixivnId = getPixivnId(element, CANVAS_CONTAINER_ID);\n const childrenExport = options?.childrenExport || false;\n\n const elements: CanvasBaseItemMemory[] = childrenExport\n ? element.children\n .sort((a, b) => element.getChildIndex(a) - element.getChildIndex(b))\n .map((child) => exportCanvasElement(child as CanvasBaseInterface<any>))\n : [];\n\n return {\n pixivnId,\n elements,\n onEvents: getListenerMemory(element),\n ...extractCommonMemoryProperties(element),\n };\n}\n\n/**\n * Get the memory object of a sprite\n * @param element PixiJS sprite element\n * @returns Memory object of the sprite\n */\nexport function getMemorySprite<T extends PixiSprite>(element: T | PixiSprite): SpriteMemory {\n const baseMemory = getMemoryContainer(element);\n const pixivnId = baseMemory.pixivnId ?? CANVAS_SPRITE_ID;\n const textureData =\n \"assetsAliases\" in element && Array.isArray(element.assetsAliases)\n ? getTextureMemory(element.texture, element.assetsAliases[0] as string)\n : \"textureAlias\" in element\n ? getTextureMemory(element.texture, element.textureAlias as string)\n : getTextureMemory(element.texture);\n\n return {\n ...baseMemory,\n pixivnId,\n textureData,\n anchor: { x: element.anchor.x, y: element.anchor.y },\n roundPixels: element.roundPixels,\n };\n}\n\n/**\n * Get the memory object of a text element\n * @param element PixiJS text element\n * @returns Memory object of the text\n */\nexport function getMemoryText<T extends PixiText>(element: T | PixiText): TextMemory {\n const baseMemory = getMemoryContainer(element);\n const pixivnId = baseMemory.pixivnId ?? CANVAS_TEXT_ID;\n\n return {\n ...baseMemory,\n pixivnId,\n anchor: { x: element.anchor.x, y: element.anchor.y },\n text: element.text,\n resolution: element.resolution,\n style: getTextStyle(element.style),\n roundPixels: element.roundPixels,\n };\n}\n\n/**\n * Get the Pixivn ID of an element\n * @param element PixiJS element\n * @param defaultId Default ID to use if none is found\n * @returns Pixivn ID\n */\nfunction getPixivnId(element: any, defaultId: string): string {\n return Object.prototype.hasOwnProperty.call(element, \"pixivnId\") ? element.pixivnId : defaultId;\n}\n\nfunction gradientToOptions(prop: FillGradient): GradientOptions {\n switch (prop.type) {\n case \"linear\":\n return {\n type: \"linear\",\n colorStops: prop.colorStops,\n end: { x: prop.end.x, y: prop.end.y },\n start: { x: prop.start.x, y: prop.start.y },\n textureSpace: prop.textureSpace,\n wrapMode: prop.texture.source.wrapMode,\n textureSize: prop.texture.source.width / prop.texture.source.height,\n };\n case \"radial\":\n return {\n type: \"radial\",\n colorStops: prop.colorStops,\n textureSpace: prop.textureSpace,\n center: { x: prop.center.x, y: prop.center.y },\n innerRadius: prop.innerRadius,\n outerCenter: { x: prop.outerCenter.x, y: prop.outerCenter.y },\n outerRadius: prop.outerRadius,\n rotation: prop.rotation,\n scale: prop.scale,\n wrapMode: prop.texture.source.wrapMode,\n textureSize: prop.texture.source.width / prop.texture.source.height,\n };\n }\n}\n\n/**\n * Handle fill gradient or fill pattern\n * @param prop Fill property\n * @returns Processed fill property\n */\nfunction getFill(prop: FillInput | undefined | null): GradientOptions | undefined | string | number[] | number {\n if (prop === undefined || prop === null) {\n return undefined;\n } else if (typeof prop === \"number\") {\n return prop;\n } else if (typeof prop === \"string\" || Array.isArray(prop)) {\n return prop;\n } else if (prop instanceof PIXI.FillGradient) {\n return gradientToOptions(prop);\n } else if (typeof prop === \"object\" && \"fill\" in prop && typeof prop.fill !== \"function\") {\n if (!prop.fill) {\n } else if (prop.fill instanceof PIXI.FillPattern) {\n } else {\n return gradientToOptions(prop.fill);\n }\n }\n logger.warn(`Unsupported property type for Text.style.fill.`, prop);\n return undefined;\n}\n\nfunction convertColor(color?: ColorSource): string | number | number[] | undefined {\n if (typeof color === \"number\") {\n return color;\n } else if (typeof color === \"string\") {\n return color;\n } else if (Array.isArray(color)) {\n return color;\n } else if (color instanceof PIXI.Color) {\n return color.toNumber();\n }\n logger.warn(`Unsupported color type.`, color);\n}\n\n/**\n * Handle stroke\n * @param prop Stroke property\n * @returns Processed stroke property\n */\nfunction getStroke(prop: StrokeInput | undefined | null): GradientOptions | undefined | string | number[] | number {\n if (prop === undefined || prop === null) {\n return undefined;\n } else if (typeof prop === \"number\") {\n return prop;\n } else if (typeof prop === \"string\" || Array.isArray(prop)) {\n return prop;\n } else if (prop instanceof PIXI.FillGradient) {\n return gradientToOptions(prop);\n } else if (typeof prop === \"object\" && \"alignment\" in prop) {\n const strokeProp: StrokeStyle = {\n alignment: prop.alignment,\n alpha: prop.alpha,\n color: convertColor(prop.color),\n join: prop.join,\n miterLimit: prop.miterLimit,\n width: prop.width,\n cap: prop.cap,\n // texture: prop.texture,\n // fill: getFill(prop.fill),\n // matrix: prop.matrix,\n pixelLine: prop.pixelLine,\n textureSpace: prop.textureSpace,\n };\n return strokeProp;\n } else if (typeof prop === \"object\" && \"fill\" in prop && typeof prop.fill !== \"function\") {\n if (!prop.fill) {\n } else if (prop.fill instanceof PIXI.FillPattern) {\n } else {\n return gradientToOptions(prop.fill);\n }\n }\n logger.warn(`Unsupported property type for Text.style.stroke.`, prop);\n return undefined;\n}\n\n/**\n * Get the text style options\n * @param style PixiJS text style\n * @returns Text style options\n */\nfunction getTextStyle(style: TextStyle): TextStyleOptions {\n return {\n align: style.align,\n breakWords: style.breakWords,\n dropShadow: style.dropShadow,\n fill: getFill(style.fill),\n fontFamily: style.fontFamily,\n fontSize: style.fontSize,\n fontStyle: style.fontStyle,\n fontVariant: style.fontVariant,\n fontWeight: style.fontWeight,\n leading: style.leading,\n letterSpacing: style.letterSpacing,\n lineHeight: style.lineHeight,\n padding: style.padding,\n stroke: getStroke(style.stroke),\n textBaseline: style.textBaseline,\n trim: style.trim,\n whiteSpace: style.whiteSpace,\n wordWrap: style.wordWrap,\n wordWrapWidth: style.wordWrapWidth,\n };\n}\n","import type { UPDATE_PRIORITY } from \"@drincs/pixi-vn/pixi.js\";\nimport { CachedMap } from \"../../../classes\";\nimport { logger } from \"../../../utils/log-utility\";\nimport Ticker from \"../interfaces/Ticker\";\nimport TickerArgs from \"../interfaces/TickerArgs\";\n\n/**\n * A dictionary that contains all tickers registered and avvailable to be used.\n */\nconst registeredTickers = new CachedMap<\n string,\n {\n new (\n args: any,\n options?: {\n duration?: number;\n priority?: UPDATE_PRIORITY;\n id?: string;\n canvasElementAliases?: string[];\n },\n ): Ticker<any>;\n }\n>({ cacheSize: 5 });\n\n/**\n * Is a decorator that register a ticker in the game.\n * Is a required decorator for use the ticker in the game.\n * Thanks to this decoration the game has the possibility of updating the tickers to the latest modification and saving the game.\n * @param name is th identifier of the label, by default is the name of the class\n * @returns\n */\nexport function tickerDecorator(name?: string) {\n return function (target: {\n new (\n args: any,\n options?: {\n duration?: number;\n priority?: UPDATE_PRIORITY;\n id?: string;\n canvasElementAliases?: string[];\n },\n ): Ticker<any>;\n }) {\n RegisteredTickers.add(target, name);\n };\n}\n\nnamespace RegisteredTickers {\n /**\n * Register a ticker in the game.\n * @param target The class of the ticker.\n * @param name Name of the ticker, by default it will use the class name. If the name is already registered, it will show a warning\n */\n export function add(\n target: {\n new (\n args: any,\n options?: {\n duration?: number;\n priority?: UPDATE_PRIORITY;\n id?: string;\n canvasElementAliases?: string[];\n },\n ): Ticker<any>;\n },\n name?: string,\n ) {\n if (!name) {\n name = target.name;\n }\n if (registeredTickers.get(name)) {\n logger.info(`Ticker \"${name}\" already exists, it will be overwritten`);\n }\n target.prototype.id = name;\n registeredTickers.set(name, target);\n }\n\n /**\n * Get a ticker by the id.\n * @param canvasId The id of the ticker.\n * @returns The ticker type.\n */\n export function get<T = Ticker<any>>(tickerId: string): T | undefined {\n try {\n let tickerType = registeredTickers.get(tickerId);\n if (!tickerType) {\n logger.error(`Event \"${tickerId}\" not found, did you forget to register it with the tickerDecorator?`);\n return;\n }\n return tickerType as T;\n } catch (e) {\n logger.error(`Error while getting Event \"${tickerId}\"`, e);\n return;\n }\n }\n\n /**\n * Get a ticker instance by the id.\n * @param tickerId The id of the ticker.\n * @param args The arguments that you want to pass to the ticker.\n * @param duration The duration of the ticker. If is undefined, the ticker will be called every frame.\n * @param priority The priority of the ticker. If is undefined, the priority will be UPDATE_PRIORITY.NORMAL.\n * @returns The instance of the ticker\n */\n export function getInstance<TArgs extends TickerArgs>(\n tickerId: string,\n args: TArgs,\n options?: {\n duration?: number;\n priority?: UPDATE_PRIORITY;\n id?: string;\n canvasElementAliases?: string[];\n },\n ): Ticker<TArgs> | undefined {\n try {\n let ticker = registeredTickers.get(tickerId);\n if (!ticker) {\n logger.error(`Ticker \"${tickerId}\" not found, did you forget to register it with the tickerDecorator?`);\n return;\n }\n return new ticker(args, options);\n } catch (e) {\n logger.error(`Error while getting Ticker \"${tickerId}\"`, e);\n return;\n }\n }\n\n /**\n * Get a list of all tickers registered.\n * @returns An array of tickers.\n */\n export function values(): {\n new (\n args: any,\n options?: {\n duration?: number;\n priority?: UPDATE_PRIORITY;\n id?: string;\n canvasElementAliases?: string[];\n },\n ): Ticker<any>;\n }[] {\n return Array.from(registeredTickers.values());\n }\n\n /**\n * Check if a ticker is registered.\n * @param id The id of the ticker.\n * @returns True if the ticker is registered, false otherwise.\n */\n export function has(id: string): boolean {\n return registeredTickers.has(id);\n }\n\n /**\n * Get a list of all ticker ids registered.\n * @returns An array of label ids.\n */\n export function keys(): string[] {\n return Array.from(registeredTickers.keys());\n }\n}\nexport default RegisteredTickers;\n","export const aliasToRemoveAfter = \"aliasToRemoveAfter\";\nexport type aliasToRemoveAfterType = \"aliasToRemoveAfter\";\n","import { GameUnifier } from \"@drincs/pixi-vn/core\";\nimport type {\n AnimationOptions,\n KeyframesType,\n ObjectSegment,\n ObjectSegmentWithTransition,\n SequenceOptions,\n} from \"@drincs/pixi-vn/motion\";\nimport type { ApplicationOptions, Container as PixiContainer, UPDATE_PRIORITY } from \"@drincs/pixi-vn/pixi.js\";\nimport { default as PIXI } from \"@drincs/pixi-vn/pixi.js\";\nimport { Devtools } from \"@pixi/devtools\";\nimport { CANVAS_APP_GAME_LAYER_ALIAS, Repeat } from \"../constants\";\nimport { createExportableElement } from \"../utils/export-utility\";\nimport { logger } from \"../utils/log-utility\";\nimport CanvasManagerStatic from \"./CanvasManagerStatic\";\nimport RegisteredCanvasComponents, { setMemoryContainer } from \"./decorators/canvas-element-decorator\";\nimport { importCanvasElement } from \"./functions/canvas-import-utility\";\nimport { exportCanvasElement, getMemoryContainer } from \"./functions/canvas-memory-utility\";\nimport { CanvasBaseInterface } from \"./interfaces/CanvasBaseInterface\";\nimport CanvasGameState from \"./interfaces/CanvasGameState\";\nimport CanvasManagerInterface from \"./interfaces/CanvasManagerInterface\";\nimport CanvasBaseItemMemory from \"./interfaces/memory/CanvasBaseItemMemory\";\nimport { Ticker, TickerArgs, TickerInfo } from \"./tickers\";\nimport RegisteredTickers from \"./tickers/decorators/RegisteredTickers\";\nimport TickersSequence, { TickersStep } from \"./tickers/interfaces/TickersSequence\";\nimport { aliasToRemoveAfter } from \"./tickers/types/AliasToRemoveAfterType\";\nimport { PauseType } from \"./types/PauseType\";\nimport { RepeatType } from \"./types/RepeatType\";\n\n/**\n * This class is responsible for managing the canvas, the tickers, the events, and the window size and the children of the window.\n */\nexport default class CanvasManager implements CanvasManagerInterface {\n get app() {\n return CanvasManagerStatic.app;\n }\n get gameLayer() {\n return CanvasManagerStatic.gameLayer;\n }\n get isInitialized() {\n return CanvasManagerStatic._isInitialized;\n }\n get width() {\n return CanvasManagerStatic.canvasWidth;\n }\n get height() {\n return CanvasManagerStatic.canvasHeight;\n }\n set width(value: number) {\n CanvasManagerStatic.canvasWidth = value;\n }\n set height(value: number) {\n CanvasManagerStatic.canvasHeight = value;\n }\n get screen() {\n return this.app.screen;\n }\n\n public async init(\n element: HTMLElement,\n options: Partial<ApplicationOptions> & {\n /**\n * The id of the canvas element.\n * @default \"pixi-vn-canvas\"\n */\n id?: string;\n /**\n * The resize mode of the canvas.\n * @default \"contain\"\n */\n resizeMode?: \"contain\" | \"none\";\n },\n devtoolsOptions?: Devtools,\n ): Promise<void> {\n return await CanvasManagerStatic.init(element, options, devtoolsOptions);\n }\n\n /* Edit Canvas Elements Methods */\n\n get children() {\n return CanvasManagerStatic.gameLayer.children;\n }\n async copyCanvasElementProperty<T extends CanvasBaseItemMemory>(\n oldAlias: T | CanvasBaseInterface<T> | string,\n newAlias: CanvasBaseInterface<T> | string,\n options: {\n ignoreProperties?: (defaultProperties: string[]) => string[];\n } = {},\n ) {\n const defaultPropertiesWhichCanBeIgnored = [\n \"isRenderGroup\",\n \"scale\",\n \"visible\",\n \"boundsArea\",\n \"text\",\n \"resolution\",\n \"style\",\n \"height\",\n \"width\",\n ];\n const { ignoreProperties = (defaultProperties) => defaultProperties } = options;\n if (typeof newAlias === \"string\") {\n let element = this.find(newAlias);\n if (element) {\n newAlias = element;\n } else {\n logger.error(`Canvas element ${newAlias} not found`);\n return;\n }\n }\n if (typeof oldAlias === \"string\") {\n let element = this.find(oldAlias);\n if (element) {\n oldAlias = element;\n } else {\n logger.error(`Canvas element ${oldAlias} not found`);\n return;\n }\n }\n if (oldAlias instanceof PIXI.Container) {\n oldAlias = oldAlias.memory;\n }\n const propertiesToIgnore = ignoreProperties(defaultPropertiesWhichCanBeIgnored);\n const clonedOldAlias = { ...(oldAlias as T) };\n propertiesToIgnore.forEach((property) => {\n if (property in clonedOldAlias) {\n delete clonedOldAlias[property as keyof T];\n }\n });\n await RegisteredCanvasComponents.copyProperty(newAlias.pixivnId, newAlias, clonedOldAlias);\n }\n public add(\n alias: string,\n canvasComponent: CanvasBaseInterface<any>,\n options: {\n /**\n * If there is a canvas element with the same alias, the \"style\" of the old canvas element will be imported to the new canvas element.\n * @default false\n */\n ignoreOldStyle?: boolean;\n /**\n * The zIndex of the canvas element.\n * @default undefined\n */\n zIndex?: number;\n } = {},\n ) {\n if (alias === CANVAS_APP_GAME_LAYER_ALIAS) {\n logger.error(`The alias ${CANVAS_APP_GAME_LAYER_ALIAS} is reserved`);\n return;\n }\n\n let oldCanvasElement = this.find(alias);\n\n let ignoreOldStyle = options?.ignoreOldStyle;\n if (oldCanvasElement && !ignoreOldStyle) {\n this.copyCanvasElementProperty(oldCanvasElement, canvasComponent);\n }\n\n const { zIndex = oldCanvasElement?.parent?.getChildIndex(oldCanvasElement) } = options;\n if (oldCanvasElement && !this.canvasElementIsOnCanvas(oldCanvasElement)) {\n logger.error(\n `The canvas element ${alias} exist in the memory but it is not on the canvas, so the zIndex is not set`,\n );\n } else if (oldCanvasElement) {\n this.remove(alias, { ignoreTickers: true });\n }\n\n if (zIndex !== undefined) {\n canvasComponent.label = alias;\n this.gameLayer.addChildAt(canvasComponent, zIndex);\n } else {\n canvasComponent.label = alias;\n this.gameLayer.addChild(canvasComponent);\n }\n }\n public remove(\n alias: string | string[],\n options: {\n /**\n * If true, the tickers that are connected to the canvas element will not be removed.\n * @default false\n */\n ignoreTickers?: boolean;\n } = {},\n ) {\n if (alias === CANVAS_APP_GAME_LAYER_ALIAS) {\n logger.error(`The alias ${CANVAS_APP_GAME_LAYER_ALIAS} is reserved`);\n return;\n }\n let ignoreTickers = options.ignoreTickers;\n if (typeof alias === \"string\") {\n alias = [alias];\n }\n alias.forEach((alias) => {\n this.gameLayer.getChildrenByLabel(alias).forEach((canvasComponent) => {\n this.gameLayer.removeChild(canvasComponent);\n !ignoreTickers && this.unlinkComponentFromTicker(alias);\n });\n });\n }\n public find<T extends CanvasBaseInterface<any>>(alias: string): T | undefined {\n if (alias === CANVAS_APP_GAME_LAYER_ALIAS) {\n return this.gameLayer as T;\n }\n let canvasComponent = this.gameLayer.getChildByLabel(alias);\n if (canvasComponent) {\n return canvasComponent as T;\n }\n return undefined;\n }\n public canvasElementIsOnCanvas<T extends PixiContainer>(pixiElement: T) {\n return this.gameLayer.children.includes(pixiElement);\n }\n public removeAll() {\n this.gameLayer.removeChildren();\n }\n public editAlias(\n oldAlias: string,\n newAlias: string,\n options: {\n /**\n * If true, the tickers that are connected to the canvas element will not be transferred.\n * @default false\n */\n ignoreTickers?: boolean;\n } = {},\n ) {\n let canvasComponent = this.find(oldAlias);\n if (canvasComponent) {\n canvasComponent.label = newAlias;\n }\n !options.ignoreTickers && this.transferTickers(oldAlias, newAlias, \"move\");\n }\n\n /** Edit Tickers Methods */\n\n public get currentTickers() {\n return CanvasManagerStatic._currentTickers;\n }\n public get currentTickersSteps() {\n return CanvasManagerStatic._currentTickersSequence;\n }\n findTicker<TArgs extends TickerArgs>(tickerId: string): Ticker<TArgs> | undefined {\n let ticker = CanvasManagerStatic._currentTickers[tickerId];\n if (ticker) {\n return ticker.ticker as Ticker<TArgs>;\n }\n return undefined;\n }\n addTicker<TArgs extends TickerArgs>(canvasElementAlias: string | string[], ticker: Ticker<TArgs>) {\n const id = ticker.id;\n const tickerName: string = ticker.alias;\n if (typeof canvasElementAlias === \"string\") {\n canvasElementAlias = [canvasElementAlias];\n }\n ticker.canvasElementAliases = canvasElementAlias;\n if (!RegisteredTickers.has(tickerName)) {\n logger.error(`Ticker ${tickerName} not found`);\n return;\n }\n let tickerHistory: TickerInfo<TArgs> = {\n ticker: ticker,\n };\n CanvasManagerStatic._currentTickers[id] = tickerHistory;\n tickerHistory.ticker.start();\n if (ticker.duration) {\n let timeout = setTimeout(() => {\n CanvasManagerStatic.removeTickerTimeoutInfo(timeout);\n let tickerTimeoutInfo = CanvasManagerStatic._currentTickersTimeouts[timeout.toString()];\n if (tickerTimeoutInfo) {\n tickerHistory.ticker.complete({ ignoreTickerSteps: true });\n }\n }, ticker.duration * 1000);\n CanvasManagerStatic.addTickerTimeoutInfo(canvasElementAlias, tickerName, timeout.toString(), true);\n }\n return id;\n }\n addTickersSequence(alias: string, steps: (Ticker<any> | RepeatType | PauseType)[], currentStepNumber = 0) {\n if (steps.length == 0) {\n logger.warn(\"The steps of the tickers is empty\");\n return;\n }\n if (!(alias in CanvasManagerStatic._currentTickersSequence)) {\n CanvasManagerStatic._currentTickersSequence[alias] = {};\n }\n let step: TickersSequence = {\n currentStepNumber: currentStepNumber,\n steps: steps.map((step) => {\n if (step === Repeat) {\n return step;\n }\n if (step.hasOwnProperty(\"type\") && (step as PauseType).type === \"pause\") {\n return step as PauseType;\n }\n let tickerId = (step as Ticker<any>).alias;\n return {\n ticker: tickerId,\n args: createExportableElement((step as Ticker<any>).args),\n duration: step.duration,\n };\n }),\n };\n let key = CanvasManagerStatic.generateTickerId(step);\n CanvasManagerStatic._currentTickersSequence[alias][key] = step;\n this.runTickersSequence(alias, key);\n return key;\n }\n private runTickersSequence<TArgs extends TickerArgs>(alias: string, key: string) {\n if (\n !CanvasManagerStatic._currentTickersSequence[alias] ||\n !CanvasManagerStatic._currentTickersSequence[alias][key]\n ) {\n return;\n }\n let step =\n CanvasManagerStatic._currentTickersSequence[alias][key].steps[\n CanvasManagerStatic._currentTickersSequence[alias][key].currentStepNumber\n ];\n if (step === Repeat) {\n step = CanvasManagerStatic._currentTickersSequence[alias][key].steps[0];\n CanvasManagerStatic._currentTickersSequence[alias][key].currentStepNumber = 0;\n if (step === Repeat) {\n logger.error(\"TikersSteps has a RepeatType in the first step\");\n return;\n }\n }\n if (step.hasOwnProperty(\"type\") && (step as PauseType).type === \"pause\") {\n let timeout = setTimeout(\n () => {\n let tickerTimeoutInfo = CanvasManagerStatic._currentTickersTimeouts[timeout.toString()];\n if (tickerTimeoutInfo) {\n tickerTimeoutInfo.aliases.forEach((alias) => {\n this.nextTickerStep(alias, key);\n });\n }\n CanvasManagerStatic.removeTickerTimeoutInfo(timeout);\n },\n (step as PauseType).duration * 1000,\n );\n CanvasManagerStatic.addTickerTimeoutInfo(alias, \"steps\", timeout.toString(), false);\n return;\n }\n let ticker = RegisteredTickers.getInstance<TArgs>(\n (step as TickersStep<TArgs>).ticker,\n (step as TickersStep<TArgs>).args,\n {\n canvasElementAliases: [alias],\n duration: (step as TickersStep<TArgs>).duration,\n priority: (step as TickersStep<TArgs>).priority,\n },\n );\n if (!ticker) {\n logger.error(`Ticker ${(step as TickersStep<TArgs>).ticker} not found`);\n return;\n }\n const tickerName: string = ticker.alias;\n const id = ticker.id;\n ticker.canvasElementAliases = [alias];\n let tickerHistory: TickerInfo<TArgs> = {\n createdByTicketSteps: {\n canvasElementAlias: alias,\n id: key,\n },\n ticker: ticker,\n };\n CanvasManagerStatic._currentTickers[id] = tickerHistory;\n tickerHistory.ticker.start();\n if (ticker.duration) {\n let timeout = setTimeout(() => {\n let tickerTimeoutInfo = CanvasManagerStatic._currentTickersTimeouts[timeout.toString()];\n if (tickerTimeoutInfo) {\n tickerHistory.ticker.complete({ ignoreTickerSteps: true });\n tickerTimeoutInfo.aliases.forEach((alias) => {\n this.nextTickerStep(alias, key);\n });\n }\n CanvasManagerStatic.removeTickerTimeoutInfo(timeout);\n }, ticker.duration * 1000);\n CanvasManagerStatic.addTickerTimeoutInfo(alias, tickerName, timeout.toString(), false);\n }\n }\n private nextTickerStep(alias: string, key: string) {\n if (\n CanvasManagerStatic._currentTickersSequence[alias] &&\n CanvasManagerStatic._currentTickersSequence[alias][key]\n ) {\n let steps = CanvasManagerStatic._currentTickersSequence[alias][key];\n if (steps.currentStepNumber + 1 < steps.steps.length) {\n steps.currentStepNumber++;\n CanvasManagerStatic._currentTickersSequence[alias][key] = steps;\n this.runTickersSequence(alias, key);\n } else {\n if (\n key &&\n CanvasManagerStatic._currentTickersSequence[alias] &&\n CanvasManagerStatic._currentTickersSequence[alias][key]\n ) {\n delete CanvasManagerStatic._currentTickersSequence[alias][key];\n Object.entries(CanvasManagerStatic._currentTickers).forEach(([id, ticker]) => {\n if (ticker.createdByTicketSteps?.canvasElementAlias === alias) {\n if (ticker.createdByTicketSteps.id === key) {\n this.removeTicker(id);\n }\n }\n });\n }\n }\n }\n }\n public onTickerComplete(\n tickerId: string,\n options: {\n aliasToRemoveAfter: string[];\n tickerAliasToResume: string[];\n tickerIdToResume: string[];\n ignoreTickerSteps?: boolean;\n stopTicker?: boolean;\n },\n ) {\n const { stopTicker = true, aliasToRemoveAfter, tickerAliasToResume, tickerIdToResume } = options;\n let info = CanvasManagerStatic._currentTickers[tickerId];\n let ignoreTickerSteps = options.ignoreTickerSteps || false;\n this.remove(aliasToRemoveAfter);\n tickerAliasToResume.forEach((alias) => this.resumeTicker({ canvasAlias: alias }));\n this.resumeTicker({ id: tickerIdToResume });\n if (info) {\n this.removeTicker(tickerId, {\n stopTicker: stopTicker,\n });\n if (!ignoreTickerSteps && info.ticker.duration == undefined && info.createdByTicketSteps) {\n this.nextTickerStep(info.createdByTicketSteps.canvasElementAlias, info.createdByTicketSteps.id);\n }\n }\n }\n public unlinkComponentFromTicker(\n alias: string | string[],\n ticker?: { new (args: any, duration?: number, priority?: UPDATE_PRIORITY): Ticker<any> } | string,\n ) {\n if (typeof alias === \"string\") {\n alias = [alias];\n }\n\n if (!ticker) {\n alias.forEach((alias) => {\n Object.entries(CanvasManagerStatic._currentTickers).forEach(([id, info]) => {\n if (info.ticker.canvasElementAliases.includes(alias)) {\n if (info.ticker.canvasElementAliases.length === 1) {\n this.removeTicker(id);\n } else {\n info.ticker.canvasElementAliases = info.ticker.canvasElementAliases.filter(\n (t) => t !== alias,\n );\n }\n }\n });\n if (CanvasManagerStatic._currentTickersSequence[alias]) {\n delete CanvasManagerStatic._currentTickersSequence[alias];\n }\n CanvasManagerStatic.removeTickerTimeoutsByAlias(alias, false);\n });\n return;\n }\n\n let tickerId: string;\n if (typeof ticker === \"string\") {\n tickerId = ticker;\n } else {\n tickerId = ticker.prototype.id;\n }\n alias.forEach((alias) => {\n if (CanvasManagerStatic._currentTickersSequence[alias]) {\n Object.entries(CanvasManagerStatic._currentTickersSequence[alias]).forEach(([id, ticker]) => {\n if (ticker.steps.find((t) => typeof t === \"object\" && \"ticker\" in t && t.ticker === tickerId)) {\n delete CanvasManagerStatic._currentTickersSequence[alias][id];\n }\n });\n }\n });\n Object.entries(CanvasManagerStatic._currentTickers).forEach(([id, info]) => {\n if (info.ticker.alias === tickerId) {\n CanvasManagerStatic._currentTickers[id].ticker.canvasElementAliases =\n info.ticker.canvasElementAliases.filter((e) => !alias.includes(e));\n }\n });\n Object.entries(CanvasManagerStatic._currentTickersTimeouts).forEach(([timeout, tickerTimeout]) => {\n if (tickerTimeout.ticker === tickerId && tickerTimeout.canBeDeletedBeforeEnd) {\n CanvasManagerStatic._currentTickersTimeouts[timeout].aliases = tickerTimeout.aliases.filter(\n (t) => !alias.includes(t),\n );\n }\n });\n this.removeTickersWithoutAssociatedCanvasElement();\n }\n /**\n * Remove all tickers that are not connected to any existing canvas element.\n */\n private removeTickersWithoutAssociatedCanvasElement() {\n Object.entries(CanvasManagerStatic._currentTickers).forEach(([id, info]) => {\n info.ticker.canvasElementAliases = info.ticker.canvasElementAliases.filter((e) => this.find(e));\n if (info.ticker.canvasElementAliases.length === 0) {\n info.ticker.complete({ ignoreTickerSteps: true });\n }\n });\n Object.entries(CanvasManagerStatic._currentTickersSequence).forEach(([alias, ticker]) => {\n if (ticker === undefined) {\n delete CanvasManagerStatic._currentTickersSequence[alias];\n }\n });\n Object.entries(CanvasManagerStatic._currentTickersTimeouts).forEach(([timeout, { aliases: aliases }]) => {\n if (aliases.length === 0) {\n CanvasManagerStatic.removeTickerTimeout(timeout);\n }\n });\n }\n public removeAllTickers() {\n CanvasManagerStatic._currentTickersSequence = {};\n Object.keys(CanvasManagerStatic._currentTickers).forEach((id) => {\n this.removeTicker(id);\n });\n CanvasManagerStatic._currentTickers = {};\n for (let timeout in CanvasManagerStatic._currentTickersTimeouts) {\n CanvasManagerStatic.removeTickerTimeout(timeout);\n }\n CanvasManagerStatic._tickersToCompleteOnStepEnd = { tikersIds: [], stepAlias: [] };\n }\n removeTicker(\n tickerId: string | string[],\n options: {\n stopTicker?: boolean;\n } = { stopTicker: true },\n ) {\n if (typeof tickerId === \"string\") {\n tickerId = [tickerId];\n }\n tickerId.forEach((tickerId) => {\n let info = CanvasManagerStatic._currentTickers[tickerId];\n if (info) {\n options.stopTicker && info.ticker.stop();\n delete CanvasManagerStatic._currentTickers[tickerId];\n }\n });\n }\n\n pauseTicker(\n filters:\n | {\n canvasAlias: string;\n tickerIdsExcluded?: string[];\n }\n | {\n id: string | string[];\n },\n ) {\n let ids: string[] = [];\n if (\"canvasAlias\" in filters) {\n const { canvasAlias, tickerIdsExcluded = [] } = filters;\n Object.entries(CanvasManagerStatic._currentTickers).forEach(([id, info]) => {\n if (\n info.ticker.canvasElementAliases.includes(canvasAlias) &&\n !tickerIdsExcluded.includes(info.ticker.alias) &&\n info.ticker.paused === false\n ) {\n info.ticker.pause();\n ids.push(id);\n }\n });\n } else if (\"id\" in filters) {\n let { id } = filters;\n if (typeof id === \"string\") {\n id = [id];\n }\n [...new Set(id)].forEach((id) => {\n let info = CanvasManagerStatic._currentTickers[id];\n if (info) {\n if (info.ticker.paused === false) {\n info.ticker.pause();\n ids.push(id);\n }\n } else {\n logger.error(`Ticker with id ${id} not found`);\n }\n });\n }\n return ids;\n }\n resumeTicker(\n filters:\n | {\n canvasAlias: string;\n }\n | {\n id: string | string[];\n },\n ) {\n if (\"canvasAlias\" in filters) {\n const { canvasAlias } = filters;\n Object.values(CanvasManagerStatic._currentTickers).forEach((info) => {\n if (info.ticker.canvasElementAliases.includes(canvasAlias)) {\n info.ticker.play();\n }\n });\n } else if (\"id\" in filters) {\n let { id } = filters;\n if (typeof id === \"string\") {\n id = [id];\n }\n [...new Set(id)].forEach((id) => {\n let info = CanvasManagerStatic._currentTickers[id];\n if (info) {\n info.ticker.play();\n } else {\n logger.error(`Ticker with id ${id} not found`);\n }\n });\n }\n }\n isTickerPaused(alias: string, tickerId?: string): boolean {\n return false;\n }\n transferTickers(oldAlias: string, newAlias: string, mode: \"move\" | \"duplicate\" = \"move\") {\n if (CanvasManagerStatic._currentTickersSequence[oldAlias]) {\n if (mode === \"move\") {\n CanvasManagerStatic._currentTickersSequence[newAlias] = createExportableElement(\n CanvasManagerStatic._currentTickersSequence[oldAlias],\n );\n } else if (mode === \"duplicate\") {\n CanvasManagerStatic._currentTickersSequence[newAlias] = createExportableElement(\n CanvasManagerStatic._currentTickersSequence[oldAlias],\n );\n }\n }\n Object.entries(CanvasManagerStatic._currentTickers).forEach(([id, info]) => {\n if (info.createdByTicketSteps?.canvasElementAlias === oldAlias) {\n this.removeTicker(id);\n }\n if (info.ticker.canvasElementAliases.includes(oldAlias)) {\n let ticker = RegisteredTickers.getInstance(\n info.ticker.alias,\n createExportableElement(info.ticker.args),\n {\n duration: info.ticker.duration,\n priority: info.ticker.priority,\n canvasElementAliases: [newAlias],\n },\n );\n if (ticker) {\n this.addTicker(newAlias, ticker);\n if (info.ticker.paused) {\n ticker.pause();\n }\n } else {\n logger.error(`Ticker ${info.ticker.alias} not found`);\n }\n\n if (mode === \"move\") {\n info.ticker.canvasElementAliases = info.ticker.canvasElementAliases.filter(\n (alias) => alias !== oldAlias,\n );\n }\n\n if (info.ticker.args.hasOwnProperty(aliasToRemoveAfter)) {\n let aliasToRemoveAfter: string | string[] = info.ticker.args.aliasToRemoveAfter;\n if (typeof aliasToRemoveAfter === \"string\") {\n aliasToRemoveAfter = [aliasToRemoveAfter];\n }\n if (Array.isArray(aliasToRemoveAfter)) {\n if (mode === \"move\") {\n info.ticker.args.aliasToRemoveAfter = aliasToRemoveAfter.map((t) =>\n t === oldAlias ? newAlias : t,\n );\n } else if (mode === \"duplicate\") {\n if (aliasToRemoveAfter.find((t) => t === oldAlias)) {\n info.ticker.args.aliasToRemoveAfter = [...aliasToRemoveAfter, newAlias];\n }\n }\n }\n }\n }\n });\n Object.values(CanvasManagerStatic._currentTickersTimeouts).forEach((tickerTimeout) => {\n if (tickerTimeout.aliases.includes(oldAlias)) {\n if (mode === \"move\") {\n tickerTimeout.aliases = tickerTimeout.aliases.map((t) => (t === oldAlias ? newAlias : t));\n } else if (mode === \"duplicate\") {\n if (tickerTimeout.aliases.find((t) => t === oldAlias)) {\n tickerTimeout.aliases.push(newAlias);\n }\n }\n }\n });\n if (CanvasManagerStatic._currentTickersSequence[newAlias]) {\n Object.keys(CanvasManagerStatic._currentTickersSequence[newAlias]).forEach((key) => {\n this.runTickersSequence(newAlias, key);\n });\n }\n if (mode === \"duplicate\" && CanvasManagerStatic._currentTickersSequence[oldAlias]) {\n Object.keys(CanvasManagerStatic._currentTickersSequence[oldAlias]).forEach((key) => {\n this.runTickersSequence(oldAlias, key);\n });\n }\n }\n completeTickerOnStepEnd(step: {\n /**\n * The id of the step.\n */\n id: string;\n /**\n * If is a sequence of tickers, the alias of the sequence of tickers.\n */\n alias?: string;\n }) {\n if (step.alias) {\n CanvasManagerStatic._tickersToCompleteOnStepEnd.stepAlias.push({ id: step.id, alias: step.alias });\n } else {\n CanvasManagerStatic._tickersToCompleteOnStepEnd.tikersIds.push({ id: step.id });\n }\n }\n\n async forceCompletionOfTicker(id: string, alias?: string) {\n if (!alias) {\n let info = CanvasManagerStatic._currentTickers[id];\n if (info) {\n await info.ticker.complete();\n }\n } else {\n let tickers = CanvasManagerStatic._currentTickersSequence[alias];\n if (tickers && tickers[id]) {\n if (tickers[id].steps.includes(Repeat)) {\n logger.error(\n `The ticker alias: ${alias} id: ${id} contains a RepeatType, so it can't be forced to complete`,\n tickers[id],\n );\n } else {\n const promises = tickers[id].steps.map((step) => {\n if (typeof step === \"object\" && \"ticker\" in step) {\n let ticker = RegisteredTickers.getInstance<any>(\n (step as TickersStep<any>).ticker,\n (step as TickersStep<any>).args,\n {\n duration: (step as TickersStep<any>).duration,\n canvasElementAliases: [alias],\n priority: (step as TickersStep<any>).priority,\n },\n );\n if (ticker) {\n return ticker.complete();\n }\n }\n });\n await Promise.all(promises);\n }\n }\n }\n }\n\n animate<T extends CanvasBaseInterface<any>>(\n components: T | string | (string | T)[],\n keyframes: KeyframesType<T>,\n options?: AnimationOptions,\n priority?: UPDATE_PRIORITY,\n ): string | undefined;\n animate<T extends CanvasBaseInterface<any>>(\n components: T | string,\n sequence: (ObjectSegment<T> | ObjectSegmentWithTransition<T>)[],\n options?: SequenceOptions,\n priority?: UPDATE_PRIORITY,\n ): string | undefined;\n animate<T extends CanvasBaseInterface<any>>(\n components: T | string | (string | T)[],\n keyframes: KeyframesType<T> | (ObjectSegment<T> | ObjectSegmentWithTransition<T>)[],\n options?: AnimationOptions | SequenceOptions,\n priority?: UPDATE_PRIORITY,\n ): string | undefined {\n return GameUnifier.animate(components, keyframes, options, priority);\n }\n\n /* Layers Methods */\n\n addLayer(label: string, layer: PixiContainer) {\n if (label === CANVAS_APP_GAME_LAYER_ALIAS) {\n logger.error(`The alias ${CANVAS_APP_GAME_LAYER_ALIAS} is reserved`);\n return;\n }\n layer.label = label;\n return CanvasManagerStatic.app.stage.addChild(layer);\n }\n\n getLayer(label: string) {\n return CanvasManagerStatic.app.stage.getChildByLabel(label);\n }\n\n removeLayer(label: string) {\n let child = CanvasManagerStatic.app.stage.getChildByLabel(label);\n if (child) {\n CanvasManagerStatic.app.stage.removeChild(child);\n }\n }\n\n addHtmlLayer(id: string, element: HTMLElement, style?: Pick<CSSStyleDeclaration, \"position\" | \"pointerEvents\">) {\n return CanvasManagerStatic.addHtmlLayer(id, element, style);\n }\n removeHtmlLayer(id: string) {\n return CanvasManagerStatic.removeHtmlLayer(id);\n }\n getHtmlLayer(id: string): HTMLElement | undefined {\n return CanvasManagerStatic.getHtmlLayer(id);\n }\n\n /* Other Methods */\n\n async extractImage() {\n const image = await this.app.renderer.extract.image(this.app.stage);\n return image.src;\n }\n\n clear() {\n this.removeAllTickers();\n this.removeAll();\n }\n\n /* Export and Import Methods */\n\n public export(): CanvasGameState {\n let currentElements: { [alias: string]: CanvasBaseItemMemory } = {};\n this.children.forEach((child) => {\n if (child.label) {\n currentElements[child.label] = exportCanvasElement(child);\n }\n });\n return {\n tickers: createExportableElement(CanvasManagerStatic.currentTickersWithoutCreatedBySteps),\n tickersSteps: createExportableElement(CanvasManagerStatic._currentTickersSequence),\n elements: createExportableElement(currentElements),\n stage: createExportableElement(getMemoryContainer(this.gameLayer)),\n elementAliasesOrder: createExportableElement(CanvasManagerStatic.childrenAliasesOrder),\n tickersToCompleteOnStepEnd: createExportableElement(CanvasManagerStatic._tickersToCompleteOnStepEnd),\n };\n }\n public async restore(data: object) {\n this.clear();\n try {\n if (data.hasOwnProperty(\"elements\") && data.hasOwnProperty(\"elementAliasesOrder\")) {\n let elementAliasesOrder = (data as CanvasGameState)[\"elementAliasesOrder\"];\n let elements: {\n [alias: string]: CanvasBaseInterface<any>;\n } = {};\n const promises = Object.entries((data as CanvasGameState)[\"elements\"]).map(async ([alias, element]) => {\n elements[alias] = await importCanvasElement(element);\n });\n await Promise.all(promises);\n elementAliasesOrder.forEach((alias) => {\n let element = elements[alias];\n element && this.add(alias, element);\n });\n } else {\n logger.error(\"The data does not have the properties elementAliasesOrder and elements\");\n return;\n }\n if (data.hasOwnProperty(\"stage\") && data.hasOwnProperty(\"stage\")) {\n setMemoryContainer(this.gameLayer, (data as CanvasGameState)[\"stage\"], { ignoreScale: true });\n } else {\n logger.error(\"The data does not have the properties stage\");\n }\n if (data.hasOwnProperty(\"tickers\")) {\n let tickers = (data as CanvasGameState)[\"tickers\"];\n Object.entries(tickers).forEach(([oldId, t]) => {\n let aliases: string[] = t.canvasElementAliases;\n if (aliases.length !== 0) {\n let ticker = RegisteredTickers.getInstance(t.id, t.args, {\n duration: t.duration,\n priority: t.priority,\n id: oldId,\n canvasElementAliases: aliases,\n });\n if (ticker) {\n ticker.canvasElementAliases = aliases;\n this.addTicker(aliases, ticker);\n // TODO: it should be paused even before starting\n // TODO: All tickets should be started at the same time and not wait for the previous one to initialize.\n if (t.paused) {\n ticker.pause();\n }\n } else {\n logger.error(`Ticker ${t.id} not found`);\n }\n }\n });\n }\n if (data.hasOwnProperty(\"tickersSteps\")) {\n let tickersSteps = (data as CanvasGameState)[\"tickersSteps\"];\n Object.entries(tickersSteps).forEach(([alias, steps]) => {\n CanvasManagerStatic._currentTickersSequence[alias] = steps;\n Object.keys(steps).forEach((key) => {\n this.runTickersSequence(alias, key);\n });\n });\n }\n if (data.hasOwnProperty(\"tickersToCompleteOnStepEnd\")) {\n let tickersToCompleteOnStepEnd = (data as CanvasGameState)[\"tickersToCompleteOnStepEnd\"];\n let tikersIds = tickersToCompleteOnStepEnd.tikersIds;\n let stepAlias = tickersToCompleteOnStepEnd.stepAlias.map((t) => ({ id: t.id, alias: t.alias }));\n CanvasManagerStatic._tickersToCompleteOnStepEnd = { tikersIds, stepAlias };\n }\n } catch (e) {\n logger.error(\"Error importing data\", e);\n }\n }\n}\n","import type { Rectangle } from \"@drincs/pixi-vn/pixi.js\";\n\nexport default class CanvasUtilitiesStatic {\n static init(options: { getScreen: () => Rectangle }) {\n CanvasUtilitiesStatic._getScreen = options.getScreen;\n }\n private static _getScreen: () => Rectangle;\n static get screen() {\n return CanvasUtilitiesStatic._getScreen();\n }\n}\n","import { PixiError } from \"@drincs/pixi-vn/core\";\nimport type { Texture } from \"@drincs/pixi-vn/pixi.js\";\nimport { default as PIXI } from \"@drincs/pixi-vn/pixi.js\";\nimport { logger } from \"../../utils/log-utility\";\n\n/**\n * Get a texture from a url.\n * @param textureAlias is the url of the file.\n * @returns the texture of the image or video, or `undefined` when `textureAlias` is the `\"EMPTY\"` sentinel value.\n * @throws {PixiError} when the alias is missing, the asset is not found in the cache/network, or the loaded resource is not a `Texture`.\n */\nexport async function getTexture(textureAlias?: string): Promise<Texture | undefined> {\n if (textureAlias === \"EMPTY\") {\n return;\n }\n if (!textureAlias) {\n logger.error(\"Texture not found\", textureAlias);\n throw new PixiError(\"unregistered_asset\", \"Texture not found\");\n }\n if (PIXI.Assets.cache.has(textureAlias)) {\n let texture = PIXI.Assets.get(textureAlias);\n if (texture) {\n return texture;\n }\n }\n return PIXI.Assets.load(textureAlias)\n .then((texture) => {\n if (!texture) {\n logger.error(\"Texture not found\", textureAlias);\n throw new PixiError(\"unregistered_asset\", \"Texture not found\");\n }\n // if texture is not a Texture, then it is a TextureResource\n if (!(texture instanceof PIXI.Texture)) {\n logger.error(\"File is not a Texture\", textureAlias);\n throw new PixiError(\"unregistered_asset\", \"File is not a Texture\");\n }\n\n return texture;\n })\n .catch((e) => {\n logger.error(\"Error loading file\", e);\n throw new PixiError(\"unknown_element\", \"Error loading file\");\n });\n}\n","import type { Container as PixiContainer } from \"@drincs/pixi-vn/pixi.js\";\nimport CanvasUtilitiesStatic from \"../CanvasUtilitiesStatic\";\n\nexport namespace CanvasPropertyUtility {\n export function calculatePositionByAlign(\n type: \"width\" | \"height\",\n align: number,\n value: number,\n pivot: number,\n negativeScale: boolean,\n anchor: number = 0,\n ): number {\n if (negativeScale) {\n if (type === \"width\") {\n return align * (CanvasUtilitiesStatic.screen.width - value) + value - pivot - anchor * value;\n } else {\n return align * (CanvasUtilitiesStatic.screen.height - value) + value - pivot - anchor * value;\n }\n } else {\n if (type === \"width\") {\n return align * (CanvasUtilitiesStatic.screen.width - value) + pivot + anchor * value;\n } else {\n return align * (CanvasUtilitiesStatic.screen.height - value) + pivot + anchor * value;\n }\n }\n }\n\n export function calculateAlignByPosition(\n type: \"width\" | \"height\",\n position: number,\n value: number,\n pivot: number,\n negativeScale: boolean,\n anchor: number = 0,\n ): number {\n if (negativeScale) {\n if (type === \"width\") {\n return (position - value + pivot + anchor * value) / (CanvasUtilitiesStatic.screen.width - value);\n } else {\n return (position - value + pivot + anchor * value) / (CanvasUtilitiesStatic.screen.height - value);\n }\n } else {\n if (type === \"width\") {\n return (position - pivot - anchor * value) / (CanvasUtilitiesStatic.screen.width - value);\n } else {\n return (position - pivot - anchor * value) / (CanvasUtilitiesStatic.screen.height - value);\n }\n }\n }\n\n export function calculatePositionByPercentagePosition(type: \"width\" | \"height\", percentage: number) {\n if (type === \"width\") {\n return percentage * CanvasUtilitiesStatic.screen.width;\n } else {\n return percentage * CanvasUtilitiesStatic.screen.height;\n }\n }\n\n export function calculatePercentagePositionByPosition(type: \"width\" | \"height\", position: number) {\n if (type === \"width\") {\n return position / CanvasUtilitiesStatic.screen.width;\n } else {\n return position / CanvasUtilitiesStatic.screen.height;\n }\n }\n\n export function getSuperPoint(point: { x: number; y: number }, angle: number): { x: number; y: number } {\n angle = angle % 360;\n if (angle < 0) {\n angle += 360;\n }\n if (angle === 0) {\n return { x: point.x, y: point.y };\n } else if (angle === 90) {\n return { x: -point.y, y: point.x };\n } else if (angle === 180) {\n return { x: -point.x, y: -point.y };\n } else if (angle === 270) {\n return { x: point.y, y: -point.x };\n } else if (angle > 0 && angle < 90) {\n let angleRad = (angle * Math.PI) / 180;\n let cos = Math.cos(angleRad);\n let sin = Math.sin(angleRad);\n let x = point.x * cos - point.y * sin;\n let y = point.x * sin + point.y * cos;\n // Ensure the sign of x matches point.x, and the sign of y matches point.y\n if (point.x !== 0 && Math.sign(x) !== Math.sign(point.x)) {\n x = -x;\n }\n if (point.y !== 0 && Math.sign(y) !== Math.sign(point.y)) {\n y = -y;\n }\n return { x, y };\n } else if (angle > 90 && angle < 180) {\n let angleRad = ((angle - 90) * Math.PI) / 180;\n let cos = Math.cos(angleRad);\n let sin = Math.sin(angleRad);\n let x = -point.y * sin - point.x * cos;\n let y = point.y * cos - point.x * sin;\n // Ensure the sign of x matches point.x, and the sign of y matches point.y\n if (point.x !== 0 && Math.sign(x) !== Math.sign(point.x)) {\n x = -x;\n }\n if (point.y !== 0 && Math.sign(y) !== Math.sign(point.y)) {\n y = -y;\n }\n return { x, y };\n } else if (angle > 180 && angle < 270) {\n let angleRad = ((angle - 180) * Math.PI) / 180;\n let cos = Math.cos(angleRad);\n let sin = Math.sin(angleRad);\n let x = -point.x * cos + point.y * sin;\n let y = -point.x * sin - point.y * cos;\n // Ensure the sign of x matches point.x, and the sign of y matches point.y\n if (point.x !== 0 && Math.sign(x) !== Math.sign(point.x)) {\n x = -x;\n }\n if (point.y !== 0 && Math.sign(y) !== Math.sign(point.y)) {\n y = -y;\n }\n return { x, y };\n } else if (angle > 270 && angle < 360) {\n let angleRad = ((angle - 270) * Math.PI) / 180;\n let cos = Math.cos(angleRad);\n let sin = Math.sin(angleRad);\n let x = point.y * sin - point.x * cos;\n let y = -point.y * cos - point.x * sin;\n // Ensure the sign of x matches point.x, and the sign of y matches point.y\n if (point.x !== 0 && Math.sign(x) !== Math.sign(point.x)) {\n x = -x;\n }\n if (point.y !== 0 && Math.sign(y) !== Math.sign(point.y)) {\n y = -y;\n }\n return { x, y };\n }\n return { x: 0, y: 0 };\n }\n\n export function getPointBySuperPoint(\n superPoint: { x: number; y: number },\n angle: number,\n ): { x: number; y: number } {\n angle = angle % 360;\n if (angle < 0) {\n angle += 360;\n }\n if (angle === 0) {\n return { x: superPoint.x, y: superPoint.y };\n } else if (angle === 90) {\n return { x: superPoint.y, y: -superPoint.x };\n } else if (angle === 180) {\n return { x: -superPoint.x, y: -superPoint.y };\n } else if (angle === 270) {\n return { x: -superPoint.y, y: superPoint.x };\n } else if (angle > 0 && angle < 90) {\n let angleRad = (angle * Math.PI) / 180;\n let cos = Math.cos(angleRad);\n let sin = Math.sin(angleRad);\n return {\n x: superPoint.x * cos + superPoint.y * sin,\n y: -superPoint.x * sin + superPoint.y * cos,\n };\n } else if (angle > 90 && angle < 180) {\n let angleRad = ((angle - 90) * Math.PI) / 180;\n let cos = Math.cos(angleRad);\n let sin = Math.sin(angleRad);\n return {\n x: superPoint.y * cos - superPoint.x * sin,\n y: -superPoint.y * sin - superPoint.x * cos,\n };\n } else if (angle > 180 && angle < 270) {\n let angleRad = ((angle - 180) * Math.PI) / 180;\n let cos = Math.cos(angleRad);\n let sin = Math.sin(angleRad);\n return {\n x: -superPoint.x * cos - superPoint.y * sin,\n y: superPoint.x * sin - superPoint.y * cos,\n };\n } else if (angle > 270 && angle < 360) {\n let angleRad = ((angle - 270) * Math.PI) / 180;\n let cos = Math.cos(angleRad);\n let sin = Math.sin(angleRad);\n return {\n x: -superPoint.y * cos + superPoint.x * sin,\n y: superPoint.y * sin + superPoint.x * cos,\n };\n }\n return { x: 0, y: 0 };\n }\n\n export function getSuperWidth(canvasElement: PixiContainer): number {\n let width = canvasElement.width;\n let height = canvasElement.height;\n let angle = canvasElement.angle % 360;\n if (angle < 0) {\n angle += 360;\n }\n if (angle === 0 || angle === 180) {\n return width;\n } else if (angle === 90 || angle === 270) {\n return height;\n } else {\n return (\n Math.abs(width * Math.cos((angle * Math.PI) / 180)) +\n Math.abs(height * Math.sin((angle * Math.PI) / 180))\n );\n }\n }\n\n export function getSuperHeight(canvasElement: PixiContainer): number {\n let width = canvasElement.width;\n let height = canvasElement.height;\n let angle = canvasElement.angle % 360;\n if (angle < 0) {\n angle += 360;\n }\n if (angle === 0 || angle === 180) {\n return height;\n } else if (angle === 90 || angle === 270) {\n return width;\n } else {\n return (\n Math.abs(height * Math.cos((angle * Math.PI) / 180)) +\n Math.abs(width * Math.sin((angle * Math.PI) / 180))\n );\n }\n }\n}\n","import type { Container as PixiContainer, PointData } from \"@drincs/pixi-vn/pixi.js\";\n\nexport interface AdditionalPositionsExtensionProps {\n /**\n * is a way to set the position of the element in the canvas. compared to position, align, it is a percentage used to determine the proximity from the edges of the canvas.\n * For example:\n * - if you set align to 0.5, the element will be in the center of the canvas.\n * - if you set align to 0, the left end and a top end of the element will be in the left end and top end of the canvas.\n * - if you set align to 1, the right end and a bottom end of the element will be in the right end and bottom end of the canvas.\n *\n * **Important:** The {@link PixiContainer.pivot} field does not affect the alignment.\n */\n align?: Partial<PointData> | number;\n /**\n * is a way to set the position of the element in the canvas. compared to position, align, it is a percentage used to determine the proximity from the edges of the canvas.\n * For example:\n * - if you set align to 0.5, the element will be in the center of the canvas.\n * - if you set align to 0, the left end and a top end of the element will be in the left end and top end of the canvas.\n * - if you set align to 1, the right end and a bottom end of the element will be in the right end and bottom end of the canvas.\n *\n * **Important:** The {@link PixiContainer.pivot} field does not affect the alignment.\n */\n xAlign?: number;\n /**\n * is a way to set the position of the element in the canvas. compared to position, align, it is a percentage used to determine the proximity from the edges of the canvas.\n * For example:\n * - if you set align to 0.5, the element will be in the center of the canvas.\n * - if you set align to 0, the left end and a top end of the element will be in the left end and top end of the canvas.\n * - if you set align to 1, the right end and a bottom end of the element will be in the right end and bottom end of the canvas.\n *\n * **Important:** The {@link PixiContainer.pivot} field does not affect the alignment.\n */\n yAlign?: number;\n /**\n * is a way to set the position of the element in the canvas calculated in percentage.\n * For example, if you set the {@link PixiContainer.pivot} to 0.5, and:\n * - if you set percentagePosition to 0.5, the element will be in the center of the canvas.\n * - If you set percentagePosition to 0, the center of the element will be in the left end and top end of the canvas.\n * - If you set percentagePosition to 1, the center of the element will be in the right end and bottom end of the canvas.\n *\n * **Important:** The {@link PixiContainer.pivot} field does affect the percentagePosition.\n */\n percentagePosition?: Partial<PointData> | number;\n /**\n * is a way to set the position of the element in the canvas calculated in percentage.\n * For example, if you set the {@link PixiContainer.pivot} to 0.5, and:\n * - if you set percentagePosition to 0.5, the element will be in the center of the canvas.\n * - If you set percentagePosition to 0, the center of the element will be in the left end and top end of the canvas.\n * - If you set percentagePosition to 1, the center of the element will be in the right end and bottom end of the canvas.\n *\n * **Important:** The {@link PixiContainer.pivot} field does affect the percentagePosition.\n */\n percentageX?: number;\n /**\n * is a way to set the position of the element in the canvas calculated in percentage.\n * For example, if you set the {@link PixiContainer.pivot} to 0.5, and:\n * - if you set percentagePosition to 0.5, the element will be in the center of the canvas.\n * - If you set percentagePosition to 0, the center of the element will be in the left end and top end of the canvas.\n * - If you set percentagePosition to 1, the center of the element will be in the right end and bottom end of the canvas.\n *\n * **Important:** The {@link PixiContainer.pivot} field does affect the percentagePosition.\n */\n percentageY?: number;\n}\n\nexport default interface AdditionalPositionsExtension {\n /**\n * is a way to set the position of the element in the canvas. compared to position, align, it is a percentage used to determine the proximity from the edges of the canvas.\n * For example:\n * - if you set align to 0.5, the element will be in the center of the canvas.\n * - if you set align to 0, the left end and a top end of the element will be in the left end and top end of the canvas.\n * - if you set align to 1, the right end and a bottom end of the element will be in the right end and bottom end of the canvas.\n *\n * **Important:** The {@link PixiContainer.pivot} field does not affect the alignment.\n */\n align: Partial<PointData> | number;\n /**\n * is a way to set the position of the element in the canvas. compared to position, align, it is a percentage used to determine the proximity from the edges of the canvas.\n * For example:\n * - if you set align to 0.5, the element will be in the center of the canvas.\n * - if you set align to 0, the left end and a top end of the element will be in the left end and top end of the canvas.\n * - if you set align to 1, the right end and a bottom end of the element will be in the right end and bottom end of the canvas.\n *\n * **Important:** The {@link PixiContainer.pivot} field does not affect the alignment.\n */\n xAlign: number;\n /**\n * is a way to set the position of the element in the canvas. compared to position, align, it is a percentage used to determine the proximity from the edges of the canvas.\n * For example:\n * - if you set align to 0.5, the element will be in the center of the canvas.\n * - if you set align to 0, the left end and a top end of the element will be in the left end and top end of the canvas.\n * - if you set align to 1, the right end and a bottom end of the element will be in the right end and bottom end of the canvas.\n *\n * **Important:** The {@link PixiContainer.pivot} field does not affect the alignment.\n */\n yAlign: number;\n /**\n * is a way to set the position of the element in the canvas calculated in percentage.\n * For example, if you set the {@link PixiContainer.pivot} to 0.5, and:\n * - if you set percentagePosition to 0.5, the element will be in the center of the canvas.\n * - If you set percentagePosition to 0, the center of the element will be in the left end and top end of the canvas.\n * - If you set percentagePosition to 1, the center of the element will be in the right end and bottom end of the canvas.\n *\n * **Important:** The {@link PixiContainer.pivot} field does affect the percentagePosition.\n */\n percentagePosition: Partial<PointData> | number;\n /**\n * is a way to set the position of the element in the canvas calculated in percentage.\n * For example, if you set the {@link PixiContainer.pivot} to 0.5, and:\n * - if you set percentagePosition to 0.5, the element will be in the center of the canvas.\n * - If you set percentagePosition to 0, the center of the element will be in the left end and top end of the canvas.\n * - If you set percentagePosition to 1, the center of the element will be in the right end and bottom end of the canvas.\n *\n * **Important:** The {@link PixiContainer.pivot} field does affect the percentagePosition.\n */\n percentageX: number;\n /**\n * is a way to set the position of the element in the canvas calculated in percentage.\n * For example, if you set the {@link PixiContainer.pivot} to 0.5, and:\n * - if you set percentagePosition to 0.5, the element will be in the center of the canvas.\n * - If you set percentagePosition to 0, the center of the element will be in the left end and top end of the canvas.\n * - If you set percentagePosition to 1, the center of the element will be in the right end and bottom end of the canvas.\n *\n * **Important:** The {@link PixiContainer.pivot} field does affect the percentagePosition.\n */\n percentageY: number;\n readonly positionType: \"pixel\" | \"percentage\" | \"align\";\n readonly positionInfo: { x: number; y: number; type: \"pixel\" | \"percentage\" | \"align\" };\n}\n\nexport function analizePositionsExtensionProps<T extends AdditionalPositionsExtensionProps>(props?: T): T | undefined {\n if (!props) {\n return props;\n }\n if (typeof props.align !== \"number\") {\n if (props.xAlign != undefined) {\n if (props.align === undefined) {\n props.align = { x: props.xAlign };\n delete props.xAlign;\n } else {\n props.align.x = props.xAlign;\n delete props.xAlign;\n }\n }\n if (props.yAlign != undefined) {\n if (props.align === undefined) {\n props.align = { y: props.yAlign };\n delete props.yAlign;\n } else {\n props.align.y = props.yAlign;\n delete props.yAlign;\n }\n }\n }\n if (typeof props.percentagePosition !== \"number\") {\n if (props.percentageX != undefined) {\n if (props.percentagePosition === undefined) {\n props.percentagePosition = { x: props.percentageX };\n delete props.percentageX;\n } else {\n props.percentagePosition.x = props.percentageX;\n delete props.percentageX;\n }\n }\n if (props.percentageY != undefined) {\n if (props.percentagePosition === undefined) {\n props.percentagePosition = { y: props.percentageY };\n delete props.percentageY;\n } else {\n props.percentagePosition.y = props.percentageY;\n delete props.percentageY;\n }\n }\n }\n return props;\n}\n","import { GameUnifier, PixiError } from \"@drincs/pixi-vn/core\";\nimport type {\n ContainerChild,\n ContainerEvents,\n EventEmitter,\n ObservablePoint,\n SpriteOptions as PixiSpriteOptions,\n PointData,\n Texture,\n TextureSourceLike,\n} from \"@drincs/pixi-vn/pixi.js\";\nimport { default as PIXI } from \"@drincs/pixi-vn/pixi.js\";\nimport { CANVAS_SPRITE_ID } from \"../../constants\";\nimport { logger } from \"../../utils/log-utility\";\nimport CanvasBaseItem from \"../classes/CanvasBaseItem\";\nimport { default as RegisteredCanvasComponents, setMemoryContainer } from \"../decorators/canvas-element-decorator\";\nimport { getMemorySprite } from \"../functions/canvas-memory-utility\";\nimport { CanvasPropertyUtility as PropsUtils } from \"../functions/canvas-property-utility\";\nimport { getTexture } from \"../functions/texture-utility\";\nimport AssetMemory from \"../interfaces/AssetMemory\";\nimport { SpriteOptions } from \"../interfaces/canvas-options\";\nimport CanvasBaseItemMemory from \"../interfaces/memory/CanvasBaseItemMemory\";\nimport SpriteMemory, { SpriteBaseMemory } from \"../interfaces/memory/SpriteMemory\";\nimport AdditionalPositionsExtension, { analizePositionsExtensionProps } from \"./AdditionalPositionsExtension\";\nimport ListenerExtension, { addListenerHandler, OnEventsHandlers } from \"./ListenerExtension\";\n\n/**\n * This class is a extension of the [PIXI.Sprite class](https://pixijs.com/8.x/examples/sprite/basic), it has the same properties and methods,\n * but it has the ability to be saved and loaded by the Pixi’VN library.\n * @example\n * ```typescript\n * const texture = await Assets.load('https://pixijs.com/assets/bunny.png');\n * const sprite = Sprite.from(texture);\n *\n * sprite.anchor.set(0.5);\n * sprite.x = canvas.screen.width / 2;\n * sprite.y = canvas.screen.height / 2;\n *\n * sprite.eventMode = 'static';\n * sprite.cursor = 'pointer';\n * sprite.onEvent('pointerdown', EventTest);\n *\n * canvas.add(\"bunny\", sprite);\n * ```\n */\nexport default class Sprite<Memory extends PixiSpriteOptions & CanvasBaseItemMemory = SpriteMemory>\n extends PIXI.Sprite\n implements CanvasBaseItem<Memory | SpriteMemory>, ListenerExtension, AdditionalPositionsExtension\n{\n constructor(options?: SpriteOptions | Omit<Texture, \"on\">) {\n options = analizePositionsExtensionProps(options as any);\n let align = undefined;\n let percentagePosition = undefined;\n if (options && \"align\" in options && options?.align !== undefined) {\n align = options.align;\n delete options.align;\n }\n if (options && \"percentagePosition\" in options && options?.percentagePosition !== undefined) {\n percentagePosition = options.percentagePosition;\n delete options.percentagePosition;\n }\n super(options);\n this.pixivnId = this.constructor.prototype.pixivnId || CANVAS_SPRITE_ID;\n if (align) {\n this.align = align;\n }\n if (percentagePosition) {\n this.percentagePosition = percentagePosition;\n }\n }\n readonly pixivnId: string = CANVAS_SPRITE_ID;\n get memory(): Memory | SpriteMemory {\n return {\n ...getMemorySprite(this),\n pixivnId: this.pixivnId,\n align: this._align,\n percentagePosition: this._percentagePosition,\n };\n }\n async setMemory(value: Memory | SpriteMemory): Promise<void> {\n return await setMemorySprite(this, value);\n }\n static override from(source: Texture | TextureSourceLike, skipCache?: boolean): Sprite<any> {\n let sprite = PIXI.Sprite.from(source, skipCache);\n let mySprite = new Sprite();\n mySprite.texture = sprite.texture;\n return mySprite;\n }\n\n /** ListenerExtension */\n\n readonly onEventsHandlers: OnEventsHandlers = {};\n override on<T extends keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any; [K: {} & string]: any }>(\n event: T,\n fn: (\n ...args: [\n ...EventEmitter.ArgumentMap<\n ContainerEvents<ContainerChild> & { [K: symbol]: any; [K: {} & string]: any }\n >[Extract<\n T,\n keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any; [K: {} & string]: any }\n >],\n typeof this,\n ]\n ) => void,\n context?: any,\n ): this {\n addListenerHandler(event, this, fn);\n\n return super.on<T>(event, (...e) => fn(...e, this), context);\n }\n\n /** AdditionalPositionsExtension */\n\n private _align: Partial<PointData> | undefined = undefined;\n set align(value: Partial<PointData> | number) {\n this._percentagePosition = undefined;\n this._align === undefined && (this._align = {});\n if (typeof value === \"number\") {\n this._align.x = value;\n this._align.y = value;\n } else {\n value.x !== undefined && (this._align.x = value.x);\n value.y !== undefined && (this._align.y = value.y);\n }\n this.reloadPosition();\n }\n get align() {\n let superPivot = PropsUtils.getSuperPoint(this.pivot, this.angle);\n let superScale = PropsUtils.getSuperPoint(this.scale, this.angle);\n return {\n x: PropsUtils.calculateAlignByPosition(\n \"width\",\n this.x,\n PropsUtils.getSuperWidth(this),\n superPivot.x,\n superScale.x < 0,\n this.anchor.x,\n ),\n y: PropsUtils.calculateAlignByPosition(\n \"height\",\n this.y,\n PropsUtils.getSuperHeight(this),\n superPivot.y,\n superScale.y < 0,\n this.anchor.y,\n ),\n };\n }\n set xAlign(value: number) {\n this._percentagePosition = undefined;\n this._align === undefined && (this._align = {});\n this._align.x = value;\n this.reloadPosition();\n }\n get xAlign() {\n let superPivot = PropsUtils.getSuperPoint(this.pivot, this.angle);\n let superScale = PropsUtils.getSuperPoint(this.scale, this.angle);\n return PropsUtils.calculateAlignByPosition(\n \"width\",\n this.x,\n PropsUtils.getSuperWidth(this),\n superPivot.x,\n superScale.x < 0,\n this.anchor.x,\n );\n }\n set yAlign(value: number) {\n this._percentagePosition = undefined;\n this._align === undefined && (this._align = {});\n this._align.y = value;\n this.reloadPosition();\n }\n get yAlign() {\n let superPivot = PropsUtils.getSuperPoint(this.pivot, this.angle);\n let superScale = PropsUtils.getSuperPoint(this.scale, this.angle);\n return PropsUtils.calculateAlignByPosition(\n \"height\",\n this.y,\n PropsUtils.getSuperHeight(this),\n superPivot.y,\n superScale.y < 0,\n this.anchor.y,\n );\n }\n private _percentagePosition: Partial<PointData> | undefined = undefined;\n set percentagePosition(value: Partial<PointData> | number) {\n this._align = undefined;\n this._percentagePosition === undefined && (this._percentagePosition = {});\n if (typeof value === \"number\") {\n this._percentagePosition.x = value;\n this._percentagePosition.y = value;\n } else {\n value.x !== undefined && (this._percentagePosition.x = value.x);\n value.y !== undefined && (this._percentagePosition.y = value.y);\n }\n this.reloadPosition();\n }\n get percentagePosition() {\n return {\n x: PropsUtils.calculatePercentagePositionByPosition(\"width\", this.x),\n y: PropsUtils.calculatePercentagePositionByPosition(\"height\", this.y),\n };\n }\n get percentageX() {\n return PropsUtils.calculatePercentagePositionByPosition(\"width\", this.x);\n }\n set percentageX(_value: number) {\n this._align = undefined;\n this._percentagePosition === undefined && (this._percentagePosition = {});\n this._percentagePosition.x = _value;\n this.reloadPosition();\n }\n get percentageY() {\n return PropsUtils.calculatePercentagePositionByPosition(\"height\", this.y);\n }\n set percentageY(_value: number) {\n this._align = undefined;\n this._percentagePosition === undefined && (this._percentagePosition = {});\n this._percentagePosition.y = _value;\n this.reloadPosition();\n }\n get positionType(): \"pixel\" | \"percentage\" | \"align\" {\n if (this._align) {\n return \"align\";\n } else if (this._percentagePosition) {\n return \"percentage\";\n }\n return \"pixel\";\n }\n get positionInfo(): { x: number; y: number; type: \"pixel\" | \"percentage\" | \"align\" } {\n switch (this.positionType) {\n case \"align\":\n return { x: this.xAlign, y: this.yAlign, type: \"align\" };\n case \"percentage\":\n return { x: this.percentageX, y: this.percentageY, type: \"percentage\" };\n default:\n return { x: this.x, y: this.y, type: \"pixel\" };\n }\n }\n set positionInfo(value: { x: number; y: number; type?: \"pixel\" | \"percentage\" | \"align\" }) {\n if (value.type === \"align\") {\n this.align = { x: value.x, y: value.y };\n } else if (value.type === \"percentage\") {\n this.percentagePosition = { x: value.x, y: value.y };\n } else {\n this.position.set(value.x, value.y);\n }\n }\n protected reloadPosition() {\n if (this._align) {\n let superPivot = PropsUtils.getSuperPoint(this.pivot, this.angle);\n let superScale = PropsUtils.getSuperPoint(this.scale, this.angle);\n if (this._align.x !== undefined) {\n super.x = PropsUtils.calculatePositionByAlign(\n \"width\",\n this._align.x,\n PropsUtils.getSuperWidth(this),\n superPivot.x,\n superScale.x < 0,\n this.anchor.x,\n );\n }\n if (this._align.y !== undefined) {\n super.y = PropsUtils.calculatePositionByAlign(\n \"height\",\n this._align.y,\n PropsUtils.getSuperHeight(this),\n superPivot.y,\n superScale.y < 0,\n this.anchor.y,\n );\n }\n } else if (this._percentagePosition) {\n if (this._percentagePosition.x !== undefined) {\n super.x = PropsUtils.calculatePositionByPercentagePosition(\"width\", this._percentagePosition.x);\n }\n if (this._percentagePosition.y !== undefined) {\n super.y = PropsUtils.calculatePositionByPercentagePosition(\"height\", this._percentagePosition.y);\n }\n }\n }\n get position(): ObservablePoint {\n return super.position;\n }\n set position(value: ObservablePoint) {\n this._align = undefined;\n this._percentagePosition = undefined;\n super.position = value;\n }\n get x(): number {\n return super.x;\n }\n set x(value: number) {\n this._align = undefined;\n this._percentagePosition = undefined;\n super.x = value;\n }\n override get y(): number {\n return super.y;\n }\n override set y(value: number) {\n this._align = undefined;\n this._percentagePosition = undefined;\n super.y = value;\n }\n}\nRegisteredCanvasComponents.add<SpriteMemory, typeof Sprite<SpriteMemory>>(Sprite, {\n name: CANVAS_SPRITE_ID,\n copyProperty: async (component, source) => {\n await setMemorySprite(component as Sprite, source, { ignoreTexture: true });\n },\n});\n\nexport async function setMemorySprite<Memory extends SpriteBaseMemory>(\n element: Sprite<any>,\n memory: Memory | {},\n options?: {\n half?: () => Promise<void>;\n ignoreTexture?: boolean;\n },\n) {\n memory = analizePositionsExtensionProps(memory)!;\n let ignoreTexture = options?.ignoreTexture || false;\n await setMemoryContainer(element, memory);\n if (!ignoreTexture) {\n let textureData: AssetMemory | undefined = undefined;\n if (\"textureData\" in memory && memory.textureData) {\n textureData = memory.textureData;\n }\n if (textureData) {\n if (textureData.url !== \"EMPTY\") {\n let textureUrl: string = textureData.url;\n if (textureData.alias && PIXI.Assets.resolver.hasKey(textureData.alias)) {\n textureUrl = textureData.alias;\n }\n try {\n let texture = await getTexture(textureUrl);\n if (texture) {\n element.texture = texture;\n }\n } catch (e) {\n logger.error(\"Error in Sprite.setMemorySprite() while loading texture\");\n e = new PixiError(\n \"unregistered_asset\",\n `Error loading image ${textureUrl}`,\n \"canvas\",\n memory as any,\n );\n GameUnifier.runOnError(e, {});\n }\n }\n }\n }\n let half = options?.half;\n if (half) {\n await half();\n }\n if (\"anchor\" in memory && memory.anchor !== undefined) {\n if (typeof memory.anchor === \"number\") {\n element.anchor.set(memory.anchor, memory.anchor);\n } else {\n element.anchor.set(memory.anchor.x, memory.anchor.y);\n }\n }\n \"align\" in memory && memory.align !== undefined && (element.align = memory.align);\n \"percentagePosition\" in memory &&\n memory.percentagePosition !== undefined &&\n (element.percentagePosition = memory.percentagePosition);\n \"roundPixels\" in memory && memory.roundPixels !== undefined && (element.roundPixels = memory.roundPixels);\n}\n","import { GameUnifier, PixiError } from \"@drincs/pixi-vn/core\";\nimport type { Texture, TextureSource, TextureSourceLike } from \"@drincs/pixi-vn/pixi.js\";\nimport { default as PIXI } from \"@drincs/pixi-vn/pixi.js\";\nimport { SpriteMemory } from \"..\";\nimport { CANVAS_IMAGE_ID } from \"../../constants\";\nimport { logger } from \"../../utils/log-utility\";\nimport { default as RegisteredCanvasComponents } from \"../decorators/canvas-element-decorator\";\nimport { showWithDissolve } from \"../functions/canvas-transition\";\nimport { addImage } from \"../functions/image-utility\";\nimport { getTexture } from \"../functions/texture-utility\";\nimport AssetMemory from \"../interfaces/AssetMemory\";\nimport { ImageSpriteOptions } from \"../interfaces/canvas-options\";\nimport ImageSpriteMemory from \"../interfaces/memory/ImageSpriteMemory\";\nimport Sprite, { setMemorySprite } from \"./Sprite\";\n\n/**\n * This class is a extension of the {@link Sprite} class, it has the same properties and methods,\n * but it has some features that make texture management easier.\n * You need to use {@link load} to show the image in the canvas.\n * This class is used for functions like {@link addImage} and {@link showWithDissolve}.\n * @example\n * ```typescript\n * let alien = new ImageSprite({\n * anchor: { x: 0.5, y: 0.5 },\n * x: 100,\n * y: 100,\n * }, 'https://pixijs.com/assets/eggHead.png')\n * await alien.load()\n * canvas.add(\"alien\", alien)\n * ```\n * @example\n * ```typescript\n * let alien = addImage(\"alien\", 'https://pixijs.com/assets/eggHead.png')\n * alien.anchor.set(0.5);\n * alien.x = 100\n * alien.y = 100\n * await alien.load()\n * ```\n */\nexport default class ImageSprite<Memory extends ImageSpriteMemory = ImageSpriteMemory> extends Sprite<Memory> {\n private _textureAlias?: string;\n protected get textureAlias() {\n if (this._textureAlias) {\n return this._textureAlias;\n }\n return this.texture.source.label;\n }\n readonly pixivnId: string = CANVAS_IMAGE_ID;\n constructor(options?: ImageSpriteOptions | Omit<Texture, \"on\"> | undefined, textureAlias?: string) {\n super(options);\n if (textureAlias) {\n this._textureAlias = textureAlias;\n }\n }\n override get memory(): ImageSpriteMemory {\n return {\n ...super.memory,\n pixivnId: this.pixivnId,\n loadIsStarted: this._loadIsStarted,\n };\n }\n override async setMemory(memory: Memory | SpriteMemory): Promise<void> {\n let textureData: AssetMemory | undefined = undefined;\n if (\"textureData\" in memory && memory.textureData) {\n textureData = memory.textureData;\n }\n if (\"assetsData\" in memory) {\n if (Array.isArray(memory.assetsData) && memory.assetsData.length > 0) {\n textureData = memory.assetsData[0];\n }\n }\n if (textureData) {\n if (textureData.alias) {\n this._textureAlias = textureData.alias;\n }\n }\n await setMemoryImageSprite(this, memory);\n this.reloadPosition();\n }\n static override from(source: Texture | TextureSourceLike, skipCache?: boolean) {\n let sprite = PIXI.Sprite.from(source, skipCache);\n let mySprite = new ImageSprite();\n mySprite.texture = sprite.texture;\n return mySprite;\n }\n private _loadIsStarted: boolean = false;\n get loadIsStarted() {\n return this._loadIsStarted;\n }\n /**\n * Load the image from the link and set the texture of the sprite.\n * @returns A promise that resolves when the image is loaded.\n */\n async load() {\n this._loadIsStarted = true;\n return getTexture(this.textureAlias)\n .then((texture) => {\n this._loadIsStarted = false;\n if (texture) {\n this.texture = texture;\n }\n })\n .catch((e) => {\n this._loadIsStarted = false;\n logger.error(\"Error into ImageSprite.load()\");\n e = new PixiError(\n \"unregistered_asset\",\n `Error loading image ${this.textureAlias}`,\n \"canvas\",\n { ...this.memory, label: this.textureAlias },\n this,\n );\n GameUnifier.runOnError(e, {});\n });\n }\n\n override set texture(value: Texture<TextureSource<any>>) {\n super.texture = value;\n this.reloadPosition();\n }\n override get texture(): Texture<TextureSource<any>> {\n return super.texture;\n }\n\n /**\n * Check if the texture is empty.\n * @returns A boolean that is true if the texture is empty.\n */\n get haveEmptyTexture() {\n return this.texture._source.label === \"EMPTY\";\n }\n}\nRegisteredCanvasComponents.add<ImageSpriteMemory, typeof ImageSprite>(ImageSprite, {\n name: CANVAS_IMAGE_ID,\n copyProperty: async (component, source) => {\n await setMemoryImageSprite(component as ImageSprite, source, { ignoreTexture: true });\n },\n});\n\nexport async function setMemoryImageSprite(\n element: ImageSprite,\n memory: ImageSpriteMemory | {},\n options?: {\n ignoreTexture?: boolean;\n },\n) {\n return await setMemorySprite(element, memory, {\n half: async () => {\n if (\"loadIsStarted\" in memory && memory.loadIsStarted) {\n await element.load();\n }\n },\n ignoreTexture: options?.ignoreTexture,\n });\n}\n","import type { Texture, TextureSourceLike } from \"@drincs/pixi-vn/pixi.js\";\nimport { default as PIXI } from \"@drincs/pixi-vn/pixi.js\";\nimport { CANVAS_VIDEO_ID } from \"../../constants\";\nimport { default as RegisteredCanvasComponents } from \"../decorators/canvas-element-decorator\";\nimport { showWithDissolve } from \"../functions/canvas-transition\";\nimport { addVideo } from \"../functions/video-utility\";\nimport AssetMemory from \"../interfaces/AssetMemory\";\nimport { VideoSpriteOptions } from \"../interfaces/canvas-options\";\nimport VideoSpriteMemory from \"../interfaces/memory/VideoSpriteMemory\";\nimport ImageSprite, { setMemoryImageSprite } from \"./ImageSprite\";\n\n/**\n * This class is a extension of the {@link ImageSprite} class, it has the same properties and methods,\n * but it has some features that make video management easier.\n * You need to use {@link load} to show the video in the canvas.\n * This class is used for functions like {@link addVideo} and {@link showWithDissolve}.\n * @example\n * ```typescript\n * let film = new VideoSprite({\n * x: 100,\n * y: 100,\n * }, 'https://pixijs.com/assets/video.mp4')\n * await film.load()\n * canvas.add(\"film\", film)\n * ```\n * @example\n * ```typescript\n * let film = addVideo(\"film\", 'https://pixijs.com/assets/video.mp4')\n * film.currentTime = 2\n * await film.load()\n * ```\n */\nexport default class VideoSprite extends ImageSprite<VideoSpriteMemory> {\n constructor(options?: VideoSpriteOptions | Texture | undefined, textureAlias?: string) {\n let loop = undefined;\n let paused = undefined;\n let currentTime = undefined;\n if (options && \"loop\" in options && options?.loop !== undefined) {\n loop = options.loop;\n delete options.loop;\n }\n if (options && \"paused\" in options && options?.paused !== undefined) {\n paused = options.paused;\n delete options.paused;\n }\n if (options && \"currentTime\" in options && options?.currentTime !== undefined) {\n currentTime = options.currentTime;\n delete options.currentTime;\n }\n super(options, textureAlias);\n if (loop) {\n this.loop = loop;\n }\n if (paused) {\n this.paused = paused;\n }\n if (currentTime) {\n this.currentTime = currentTime;\n }\n }\n readonly pixivnId: string = CANVAS_VIDEO_ID;\n override get memory(): VideoSpriteMemory {\n return {\n ...super.memory,\n pixivnId: this.pixivnId,\n loop: this.loop,\n paused: this._paused,\n currentTime: this.currentTime,\n };\n }\n override async setMemory(value: VideoSpriteMemory) {\n await setMemoryVideoSprite(this, value);\n this.reloadPosition();\n }\n static override from(source: Texture | TextureSourceLike, skipCache?: boolean) {\n let sprite = PIXI.Sprite.from(source, skipCache);\n let mySprite = new VideoSprite();\n mySprite.texture = sprite.texture;\n return mySprite;\n }\n\n override async load() {\n await super.load();\n this.loop = this._looop;\n this.currentTime = this._currentTime;\n this.paused = this._paused;\n }\n\n private _looop: boolean = false;\n /**\n * Set to true if you want the video to loop.\n */\n get loop() {\n return this.texture?.source?.resource?.loop || false;\n }\n set loop(value: boolean) {\n this._looop = value;\n if (this.texture?.source?.resource) {\n this.texture.source.resource.loop = value;\n }\n }\n\n private _paused: boolean = false;\n /**\n * Set to true if you want the video to be paused.\n */\n get paused() {\n return this.texture?.source?.resource?.paused || false;\n }\n set paused(value: boolean) {\n if (value) {\n this.pause();\n } else {\n this.play();\n }\n }\n /**\n * Pause the video.\n */\n pause() {\n this._paused = true;\n if (this.texture?.source?.resource) {\n this.texture.source.resource.pause();\n }\n }\n /**\n * Play the video.\n */\n play() {\n this._paused = false;\n if (this.texture?.source?.resource?.play && typeof this.texture.source.resource.play === \"function\") {\n this.texture.source.resource.play();\n }\n }\n\n private _currentTime: number = 0;\n /**\n * The current time of the video.\n */\n get currentTime(): number {\n return this.texture?.source?.resource?.currentTime || 0;\n }\n set currentTime(value: number) {\n let duration = this.duration;\n if (duration && value >= duration) {\n value = 0;\n }\n this._currentTime = value;\n if (this.texture?.source?.resource) {\n this.texture.source.resource.currentTime = value;\n }\n }\n\n /**\n * Restart the video.\n */\n restart() {\n this.currentTime = 0;\n }\n\n /**\n * The duration of the video.\n */\n get duration(): number | undefined {\n if (this.texture?.source?.resource) {\n return this.texture.source.resource.duration || 0;\n }\n }\n}\nRegisteredCanvasComponents.add<VideoSpriteMemory, typeof VideoSprite>(VideoSprite, {\n name: CANVAS_VIDEO_ID,\n getInstance: async (type, memory) => {\n let textureData: AssetMemory | undefined = undefined;\n if (\"textureData\" in memory && memory.textureData) {\n textureData = memory.textureData;\n }\n const instance = new type(undefined, textureData?.alias);\n await instance.setMemory(memory);\n return instance;\n },\n copyProperty: async (component, source) => {\n await setMemoryVideoSprite(component as VideoSprite, source, { ignoreTexture: true });\n },\n});\n\nexport async function setMemoryVideoSprite(\n element: VideoSprite,\n memory: VideoSpriteMemory | {},\n options?: {\n ignoreTexture?: boolean;\n },\n) {\n await setMemoryImageSprite(element, memory, { ignoreTexture: options?.ignoreTexture });\n \"loop\" in memory && memory.loop !== undefined && (element.loop = memory.loop);\n \"currentTime\" in memory && memory.currentTime !== undefined && (element.currentTime = memory.currentTime);\n \"paused\" in memory && memory.paused !== undefined && (element.paused = memory.paused);\n}\n","import { default as PIXI } from \"@drincs/pixi-vn/pixi.js\";\nimport db from \"mime-db\";\n\nexport function checkIfVideo(textureAlias: string): boolean {\n const cachedTexture = PIXI.Assets.cache.has(textureAlias) ? PIXI.Assets.get(textureAlias) : null;\n\n if (cachedTexture instanceof PIXI.Texture) {\n textureAlias = cachedTexture.source?.label || textureAlias;\n }\n\n return isVideoPath(textureAlias);\n}\n\nfunction isVideoPath(path: string): boolean {\n const ext = path.split(\".\").pop()?.toLowerCase();\n if (!ext) return false;\n\n for (const [mime, data] of Object.entries(db)) {\n if (data.extensions?.includes(ext) && mime.startsWith(\"video/\")) {\n return true;\n }\n }\n return false;\n}\n","import type { ObservablePoint, PointData } from \"@drincs/pixi-vn/pixi.js\";\nimport { ContainerEvents, EventEmitter, Container as PixiContainer } from \"@drincs/pixi-vn/pixi.js\";\nimport { CANVAS_CONTAINER_ID } from \"../../constants\";\nimport CanvasBaseItem from \"../classes/CanvasBaseItem\";\nimport { default as RegisteredCanvasComponents, setMemoryContainer } from \"../decorators/canvas-element-decorator\";\nimport { importCanvasElement } from \"../functions/canvas-import-utility\";\nimport { getMemoryContainer } from \"../functions/canvas-memory-utility\";\nimport { CanvasPropertyUtility as PropsUtils } from \"../functions/canvas-property-utility\";\nimport { ContainerOptions } from \"../interfaces/canvas-options\";\nimport ContainerMemory from \"../interfaces/memory/ContainerMemory\";\nimport ContainerChild from \"../types/ContainerChild\";\nimport AdditionalPositionsExtension, { analizePositionsExtensionProps } from \"./AdditionalPositionsExtension\";\nimport AnchorExtension from \"./AnchorExtension\";\nimport ListenerExtension, { addListenerHandler, OnEventsHandlers } from \"./ListenerExtension\";\n\n/**\n * This class is a extension of the [PIXI.Container class](https://pixijs.com/8.x/examples/basic/container), it has the same properties and methods,\n * but it has the ability to be saved and loaded by the Pixi’VN library.\n * @example\n * ```typescript\n * const container = new Container();\n * canvas.add(container);\n * const texture = await Assets.load('https://pixijs.com/assets/bunny.png');\n * for (let i = 0; i < 25; i++)\n * {\n * const bunny = new Sprite(texture);\n * bunny.x = (i % 5) * 40;\n * bunny.y = Math.floor(i / 5) * 40;\n * container.addChild(bunny);\n * }\n * ```\n */\nexport default class Container<\n C extends ContainerChild = ContainerChild,\n Memory extends ContainerMemory = ContainerMemory,\n>\n extends PixiContainer<C>\n implements CanvasBaseItem<Memory>, ListenerExtension, AnchorExtension, AdditionalPositionsExtension\n{\n constructor(options?: ContainerOptions<C>) {\n options = analizePositionsExtensionProps(options as any);\n let align = undefined;\n let percentagePosition = undefined;\n let anchor = undefined;\n if (options && \"anchor\" in options && options?.anchor !== undefined) {\n anchor = options.anchor;\n delete options.anchor;\n }\n if (options && \"align\" in options && options?.align !== undefined) {\n align = options.align;\n delete options.align;\n }\n if (options && \"percentagePosition\" in options && options?.percentagePosition !== undefined) {\n percentagePosition = options.percentagePosition;\n delete options.percentagePosition;\n }\n super(options);\n this.pixivnId = this.constructor.prototype.pixivnId || CANVAS_CONTAINER_ID;\n if (anchor) {\n this.anchor = anchor;\n }\n if (align) {\n this.align = align;\n }\n if (percentagePosition) {\n this.percentagePosition = percentagePosition;\n }\n }\n readonly pixivnId: string = CANVAS_CONTAINER_ID;\n get memory(): Memory {\n return {\n ...(getMemoryContainer(this, { childrenExport: true }) as Memory),\n anchor: this._anchor ? this.anchor : undefined,\n align: this._align,\n percentagePosition: this._percentagePosition,\n };\n }\n async setMemory(value: Memory): Promise<void> {\n await this.importChildren(value);\n await setMemoryContainer(this, value);\n this.reloadAnchor();\n this.reloadPosition();\n }\n protected async importChildren(value: Memory) {\n for (let i = 0; i < value.elements.length; i++) {\n let child = value.elements[i];\n let element = await importCanvasElement<any, C>(child);\n this.addChild(element);\n }\n }\n\n /** ListenerExtension */\n\n readonly onEventsHandlers: OnEventsHandlers = {};\n override on<T extends keyof ContainerEvents<C> | keyof { [K: symbol]: any; [K: {} & string]: any }>(\n event: T,\n fn: (\n ...args: [\n ...EventEmitter.ArgumentMap<ContainerEvents<C> & { [K: symbol]: any; [K: {} & string]: any }>[Extract<\n T,\n keyof ContainerEvents<C> | keyof { [K: symbol]: any; [K: {} & string]: any }\n >],\n typeof this,\n ]\n ) => void,\n context?: any,\n ): this {\n addListenerHandler(event, this, fn);\n\n return super.on<T>(event, (...e) => fn(...e, this), context);\n }\n\n /** Anchor */\n\n private _anchor?: PointData;\n get anchor(): PointData {\n let x = super.pivot.x / this.width;\n let y = super.pivot.y / this.height;\n return { x, y };\n }\n set anchor(value: PointData | number) {\n if (typeof value === \"number\") {\n this._anchor = { x: value, y: value };\n } else {\n this._anchor = value;\n }\n this.reloadAnchor();\n }\n protected reloadAnchor() {\n if (this._anchor) {\n super.pivot.set(this._anchor.x * this.width, this._anchor.y * this.height);\n }\n }\n override get pivot() {\n return super.pivot;\n }\n override set pivot(value: ObservablePoint) {\n this._anchor = undefined;\n super.pivot = value;\n }\n\n /** AdditionalPositions */\n\n private _align: Partial<PointData> | undefined = undefined;\n set align(value: Partial<PointData> | number) {\n this._percentagePosition = undefined;\n this._align === undefined && (this._align = {});\n if (typeof value === \"number\") {\n this._align.x = value;\n this._align.y = value;\n } else {\n value.x !== undefined && (this._align.x = value.x);\n value.y !== undefined && (this._align.y = value.y);\n }\n this.reloadPosition();\n }\n get align() {\n let superPivot = PropsUtils.getSuperPoint(this.pivot, this.angle);\n let superScale = PropsUtils.getSuperPoint(this.scale, this.angle);\n return {\n x: PropsUtils.calculateAlignByPosition(\n \"width\",\n this.x,\n PropsUtils.getSuperWidth(this),\n superPivot.x,\n superScale.x < 0,\n ),\n y: PropsUtils.calculateAlignByPosition(\n \"height\",\n this.y,\n PropsUtils.getSuperHeight(this),\n superPivot.y,\n superScale.y < 0,\n ),\n };\n }\n set xAlign(value: number) {\n if (this._percentagePosition) {\n this._percentagePosition = undefined;\n }\n this._align === undefined && (this._align = {});\n this._align.x = value;\n this.reloadPosition();\n }\n get xAlign() {\n let superPivot = PropsUtils.getSuperPoint(this.pivot, this.angle);\n let superScale = PropsUtils.getSuperPoint(this.scale, this.angle);\n return PropsUtils.calculateAlignByPosition(\n \"width\",\n this.x,\n PropsUtils.getSuperWidth(this),\n superPivot.x,\n superScale.x < 0,\n );\n }\n set yAlign(value: number) {\n if (this._percentagePosition) {\n this._percentagePosition = undefined;\n }\n this._align === undefined && (this._align = {});\n this._align.y = value;\n this.reloadPosition();\n }\n get yAlign() {\n let superPivot = PropsUtils.getSuperPoint(this.pivot, this.angle);\n let superScale = PropsUtils.getSuperPoint(this.scale, this.angle);\n return PropsUtils.calculateAlignByPosition(\n \"height\",\n this.y,\n PropsUtils.getSuperHeight(this),\n superPivot.y,\n superScale.y < 0,\n );\n }\n private _percentagePosition: Partial<PointData> | undefined = undefined;\n set percentagePosition(value: Partial<PointData> | number) {\n this._align = undefined;\n this._percentagePosition === undefined && (this._percentagePosition = {});\n if (typeof value === \"number\") {\n this._percentagePosition.x = value;\n this._percentagePosition.y = value;\n } else {\n value.x !== undefined && (this._percentagePosition.x = value.x);\n value.y !== undefined && (this._percentagePosition.y = value.y);\n }\n this.reloadPosition();\n }\n get percentagePosition() {\n return {\n x: PropsUtils.calculatePercentagePositionByPosition(\"width\", this.x),\n y: PropsUtils.calculatePercentagePositionByPosition(\"height\", this.y),\n };\n }\n set percentageX(_value: number) {\n if (this._align) {\n this._align = undefined;\n }\n this._percentagePosition === undefined && (this._percentagePosition = {});\n this._percentagePosition.x = _value;\n this.reloadPosition();\n }\n get percentageX() {\n return PropsUtils.calculatePercentagePositionByPosition(\"width\", this.x);\n }\n set percentageY(_value: number) {\n if (this._align) {\n this._align = undefined;\n }\n this._percentagePosition === undefined && (this._percentagePosition = {});\n this._percentagePosition.y = _value;\n this.reloadPosition();\n }\n get percentageY() {\n return PropsUtils.calculatePercentagePositionByPosition(\"height\", this.y);\n }\n get positionType(): \"pixel\" | \"percentage\" | \"align\" {\n if (this._align) {\n return \"align\";\n } else if (this._percentagePosition) {\n return \"percentage\";\n }\n return \"pixel\";\n }\n get positionInfo(): { x: number; y: number; type: \"pixel\" | \"percentage\" | \"align\" } {\n switch (this.positionType) {\n case \"align\":\n return { x: this.xAlign, y: this.yAlign, type: \"align\" };\n case \"percentage\":\n return { x: this.percentageX, y: this.percentageY, type: \"percentage\" };\n default:\n return { x: this.x, y: this.y, type: \"pixel\" };\n }\n }\n set positionInfo(value: { x: number; y: number; type?: \"pixel\" | \"percentage\" | \"align\" }) {\n if (value.type === \"align\") {\n this.align = { x: value.x, y: value.y };\n } else if (value.type === \"percentage\") {\n this.percentagePosition = { x: value.x, y: value.y };\n } else {\n this.position.set(value.x, value.y);\n }\n }\n protected reloadPosition() {\n if (this._align) {\n let superPivot = PropsUtils.getSuperPoint(this.pivot, this.angle);\n let superScale = PropsUtils.getSuperPoint(this.scale, this.angle);\n if (this._align.x !== undefined) {\n super.x = PropsUtils.calculatePositionByAlign(\n \"width\",\n this._align.x,\n PropsUtils.getSuperWidth(this),\n superPivot.x,\n superScale.x < 0,\n );\n }\n if (this._align.y !== undefined) {\n super.y = PropsUtils.calculatePositionByAlign(\n \"height\",\n this._align.y,\n PropsUtils.getSuperHeight(this),\n superPivot.y,\n superScale.y < 0,\n );\n }\n } else if (this._percentagePosition) {\n if (this._percentagePosition.x !== undefined) {\n super.x = PropsUtils.calculatePositionByPercentagePosition(\"width\", this._percentagePosition.x);\n }\n if (this._percentagePosition.y !== undefined) {\n super.y = PropsUtils.calculatePositionByPercentagePosition(\"height\", this._percentagePosition.y);\n }\n }\n }\n get position(): ObservablePoint {\n return super.position;\n }\n set position(value: ObservablePoint) {\n this._align = undefined;\n this._percentagePosition = undefined;\n super.position = value;\n }\n get x(): number {\n return super.x;\n }\n set x(value: number) {\n this._align = undefined;\n this._percentagePosition = undefined;\n super.x = value;\n }\n override get y(): number {\n return super.y;\n }\n override set y(value: number) {\n this._align = undefined;\n this._percentagePosition = undefined;\n super.y = value;\n }\n}\nRegisteredCanvasComponents.add<ContainerMemory, typeof Container>(Container, {\n name: CANVAS_CONTAINER_ID,\n copyProperty: async (component, memory) => {\n return await setMemoryContainer(component as Container, memory);\n },\n});\n","import type { Texture } from \"@drincs/pixi-vn/pixi.js\";\nimport { default as PIXI } from \"@drincs/pixi-vn/pixi.js\";\nimport { CANVAS_IMAGE_CONTAINER_ID } from \"../../constants\";\nimport { logger } from \"../../utils/log-utility\";\nimport { default as RegisteredCanvasComponents, setMemoryContainer } from \"../decorators/canvas-element-decorator\";\nimport { checkIfVideo } from \"../functions/canvas-utility\";\nimport { ImageContainerOptions } from \"../interfaces/canvas-options\";\nimport ImageContainerMemory from \"../interfaces/memory/ImageContainerMemory\";\nimport { analizePositionsExtensionProps } from \"./AdditionalPositionsExtension\";\nimport Container from \"./Container\";\nimport ImageSprite from \"./ImageSprite\";\nimport VideoSprite from \"./VideoSprite\";\n\n/**\n * This class is a extension of the {@link Container}, it has the same properties and methods,\n * but this container is composed only of {@link ImageSprite} and introduces the {@link load} functionality\n * @example\n * ```typescript\n * const liamBodyImageUrl = 'https://example.com/assets/liam/body.png';\n * const liamHeadImageUrl = 'https://example.com/assets/liam/head.png';\n * const container = new ImageContainer(undefined, [liamBodyImageUrl, liamHeadImageUrl]);\n * await container.load()\n * canvas.add(container);\n * ```\n */\nexport default class ImageContainer extends Container<ImageSprite, ImageContainerMemory> {\n constructor(options?: ImageContainerOptions<ImageSprite>, textureAliases: string[] = []) {\n options = analizePositionsExtensionProps(options as any);\n let align = undefined;\n let percentagePosition = undefined;\n let anchor = undefined;\n if (options && \"anchor\" in options && options?.anchor !== undefined) {\n anchor = options.anchor;\n delete options.anchor;\n }\n if (options && \"align\" in options && options?.align !== undefined) {\n align = options.align;\n delete options.align;\n }\n if (options && \"percentagePosition\" in options && options?.percentagePosition !== undefined) {\n percentagePosition = options.percentagePosition;\n delete options.percentagePosition;\n }\n super(options);\n options = analizePositionsExtensionProps(options);\n if (textureAliases) {\n textureAliases.forEach((textureAlias) => {\n let component;\n if (checkIfVideo(textureAlias)) {\n component = new VideoSprite(undefined, textureAlias);\n } else {\n component = new ImageSprite(undefined, textureAlias);\n }\n this.addChild(component);\n });\n }\n if (anchor) {\n this.anchor = anchor;\n }\n if (align) {\n this.align = align;\n }\n if (percentagePosition) {\n this.percentagePosition = percentagePosition;\n }\n }\n override get memory(): ImageContainerMemory {\n return {\n ...super.memory,\n pixivnId: CANVAS_IMAGE_CONTAINER_ID,\n loadIsStarted: this._loadIsStarted,\n };\n }\n override async setMemory(value: ImageContainerMemory): Promise<void> {\n await this.importChildren(value);\n await setMemoryImageContainer(this, value);\n this.reloadAnchor();\n this.reloadPosition();\n }\n readonly pixivnId: string = CANVAS_IMAGE_CONTAINER_ID;\n private _loadIsStarted: boolean = false;\n get loadIsStarted() {\n return this._loadIsStarted;\n }\n /**\n * Load the children images.\n * @returns A promise that resolves when the images are loaded.\n */\n async load() {\n this._loadIsStarted = true;\n let promises: Promise<void>[] = Array<Promise<void>>(this.children.length);\n for (let i = 0; i < this.children.length; i++) {\n promises[i] = this.children[i].load();\n }\n // wait for all promises\n return Promise.all(promises)\n .then(() => {\n this._loadIsStarted = false;\n this.reloadAnchor();\n this.reloadPosition();\n })\n .catch((e) => {\n this._loadIsStarted = false;\n logger.error(\"Error into ImageContainer.load()\");\n });\n }\n\n /**\n * The texture of the first child.\n * If there is no child, it returns a new {@link Texture}.\n */\n get texture() {\n if (this.children.length > 0) {\n return this.children[0].texture;\n }\n return new PIXI.Texture();\n }\n\n /**\n * Check if there is a child with the empty texture.\n * @returns A boolean that is true if there is a child with the empty texture.\n */\n get haveEmptyTexture() {\n return this.children.some((child) => child.texture._source.label === \"EMPTY\");\n }\n}\nRegisteredCanvasComponents.add<ImageContainerMemory, typeof ImageContainer>(ImageContainer, {\n name: CANVAS_IMAGE_CONTAINER_ID,\n copyProperty: async (component, memory) => {\n return await setMemoryImageContainer(component as ImageContainer, memory);\n },\n});\n\nexport async function setMemoryImageContainer(element: ImageContainer, memory: ImageContainerOptions | {}) {\n memory = analizePositionsExtensionProps(memory)!;\n setMemoryContainer(element, memory, {\n end: async () => {\n if (\"loadIsStarted\" in memory && memory.loadIsStarted) {\n await element.load();\n }\n },\n });\n}\n","import { PixiError } from \"@drincs/pixi-vn/core\";\nimport { canvas, CanvasBaseItemMemory } from \"..\";\nimport canvasComponentDecorator from \"../decorators/canvas-element-decorator\";\n\n/**\n * This class is used to create a canvas element to add into a Pixi Application.\n * You can use {@link canvas.add()} to add this element into the application.\n * This class should be implemented and the memory method should be overridden.\n * You must use the {@link canvasComponentDecorator} to register the canvas in the game.\n * In Ren'Py is a displayable.\n * @example\n * ```typescript\n * const CANVAS_EXAMPLE_ID = \"CanvasExample\";\n *\n * \\@canvasComponentDecorator({\n * name: CANVAS_EXAMPLE_ID,\n * })\n * export class CanvasExample extends Container implements CanvasBaseItem<Memory> {\n * get memory(): Memory {\n * return {\n * pixivnId: CANVAS_EXAMPLE_ID,\n * // ... other properties\n * }\n * }\n * async setMemory(value: Memory) {\n * // ... set other properties\n * }\n * }\n * ```\n */\nexport default class CanvasBaseItem<T2 extends CanvasBaseItemMemory> {\n constructor(..._options: any) {}\n /**\n * This method return the memory of the canvas element.\n * @throws {PixiError} when the method is not overridden in the subclass.\n */\n get memory(): T2 {\n throw new PixiError(\"not_implemented\", \"The method CanvasBaseItem.memory must be overridden\");\n }\n /**\n * This method set the memory of the canvas element.\n * @throws {PixiError} when the method is not overridden in the subclass.\n */\n setMemory(_value: T2): Promise<void> | void {\n throw new PixiError(\"not_implemented\", \"The method CanvasBaseItem.setMemory must be overridden\");\n }\n /**\n * Get the id of the canvas element. This variable is used in the system to get the canvas element by id\n */\n pixivnId: string = \"canvas_element_id_not_set\";\n}\n","import type {\n ContainerChild,\n ContainerEvents,\n EventEmitter,\n ObservablePoint,\n PointData,\n} from \"@drincs/pixi-vn/pixi.js\";\nimport { default as PIXI } from \"@drincs/pixi-vn/pixi.js\";\nimport { CANVAS_TEXT_ID } from \"../../constants\";\nimport CanvasBaseItem from \"../classes/CanvasBaseItem\";\nimport { default as RegisteredCanvasComponents, setMemoryContainer } from \"../decorators/canvas-element-decorator\";\nimport { getMemoryText } from \"../functions/canvas-memory-utility\";\nimport { CanvasPropertyUtility as PropsUtils } from \"../functions/canvas-property-utility\";\nimport { TextOptions } from \"../interfaces/canvas-options\";\nimport TextMemory from \"../interfaces/memory/TextMemory\";\nimport AdditionalPositionsExtension, { analizePositionsExtensionProps } from \"./AdditionalPositionsExtension\";\nimport ListenerExtension, { addListenerHandler, OnEventsHandlers } from \"./ListenerExtension\";\n\n/**\n * This class is a extension of the [PIXI.Text class](https://pixijs.com/8.x/examples/text/pixi-text), it has the same properties and methods,\n * but it has the ability to be saved and loaded by the Pixi’VN library.\n * @example\n * ```typescript\n * const text = new Text();\n * text.text = \"Hello World\"\n * canvas.add(\"text\", text);\n * ```\n */\nexport default class Text\n extends PIXI.Text\n implements CanvasBaseItem<TextMemory>, AdditionalPositionsExtension, ListenerExtension\n{\n constructor(options?: TextOptions) {\n options = analizePositionsExtensionProps(options as any);\n let align = undefined;\n let percentagePosition = undefined;\n if (options && \"align\" in options && options?.align !== undefined) {\n align = options.align;\n delete options.align;\n }\n if (options && \"percentagePosition\" in options && options?.percentagePosition !== undefined) {\n percentagePosition = options.percentagePosition;\n delete options.percentagePosition;\n }\n super(options);\n this.pixivnId = this.constructor.prototype.pixivnId || CANVAS_TEXT_ID;\n if (align) {\n this.align = align;\n }\n if (percentagePosition) {\n this.percentagePosition = percentagePosition;\n }\n }\n readonly pixivnId: string = CANVAS_TEXT_ID;\n get memory(): TextMemory {\n return {\n ...getMemoryText(this),\n pixivnId: this.pixivnId,\n align: this._align,\n percentagePosition: this._percentagePosition,\n };\n }\n async setMemory(value: TextMemory): Promise<void> {\n await setMemoryText(this, value);\n this.reloadPosition();\n }\n readonly onEventsHandlers: OnEventsHandlers = {};\n override on<T extends keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any; [K: {} & string]: any }>(\n event: T,\n fn: (\n ...args: [\n ...EventEmitter.ArgumentMap<\n ContainerEvents<ContainerChild> & { [K: symbol]: any; [K: {} & string]: any }\n >[Extract<\n T,\n keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any; [K: {} & string]: any }\n >],\n typeof this,\n ]\n ) => void,\n context?: any,\n ): this {\n addListenerHandler(event, this, fn);\n\n return super.on<T>(event, (...e) => fn(...e, this), context);\n }\n\n /** AdditionalPositions */\n private _align: Partial<PointData> | undefined = undefined;\n set align(value: Partial<PointData> | number) {\n this._percentagePosition = undefined;\n this._align === undefined && (this._align = {});\n if (typeof value === \"number\") {\n this._align.x = value;\n this._align.y = value;\n } else {\n value.x !== undefined && (this._align.x = value.x);\n value.y !== undefined && (this._align.y = value.y);\n }\n this.reloadPosition();\n }\n get align() {\n let superPivot = PropsUtils.getSuperPoint(this.pivot, this.angle);\n let superScale = PropsUtils.getSuperPoint(this.scale, this.angle);\n return {\n x: PropsUtils.calculateAlignByPosition(\n \"width\",\n this.x,\n PropsUtils.getSuperWidth(this),\n superPivot.x,\n superScale.x < 0,\n this.anchor.x,\n ),\n y: PropsUtils.calculateAlignByPosition(\n \"height\",\n this.y,\n PropsUtils.getSuperHeight(this),\n superPivot.y,\n superScale.y < 0,\n this.anchor.y,\n ),\n };\n }\n set xAlign(value: number) {\n this._percentagePosition = undefined;\n this._align === undefined && (this._align = {});\n this._align.x = value;\n this.reloadPosition();\n }\n get xAlign() {\n let superPivot = PropsUtils.getSuperPoint(this.pivot, this.angle);\n let superScale = PropsUtils.getSuperPoint(this.scale, this.angle);\n return PropsUtils.calculateAlignByPosition(\n \"width\",\n this.x,\n PropsUtils.getSuperWidth(this),\n superPivot.x,\n superScale.x < 0,\n this.anchor.x,\n );\n }\n set yAlign(value: number) {\n this._percentagePosition = undefined;\n this._align === undefined && (this._align = {});\n this._align.y = value;\n this.reloadPosition();\n }\n get yAlign() {\n let superPivot = PropsUtils.getSuperPoint(this.pivot, this.angle);\n let superScale = PropsUtils.getSuperPoint(this.scale, this.angle);\n return PropsUtils.calculateAlignByPosition(\n \"height\",\n this.y,\n PropsUtils.getSuperHeight(this),\n superPivot.y,\n superScale.y < 0,\n this.anchor.y,\n );\n }\n private _percentagePosition: Partial<PointData> | undefined = undefined;\n set percentagePosition(value: Partial<PointData> | number) {\n this._align = undefined;\n this._percentagePosition === undefined && (this._percentagePosition = {});\n if (typeof value === \"number\") {\n this._percentagePosition.x = value;\n this._percentagePosition.y = value;\n } else {\n value.x !== undefined && (this._percentagePosition.x = value.x);\n value.y !== undefined && (this._percentagePosition.y = value.y);\n }\n this.reloadPosition();\n }\n get percentagePosition() {\n return {\n x: PropsUtils.calculatePercentagePositionByPosition(\"width\", this.x),\n y: PropsUtils.calculatePercentagePositionByPosition(\"height\", this.y),\n };\n }\n get percentageX() {\n return PropsUtils.calculatePercentagePositionByPosition(\"width\", this.x);\n }\n set percentageX(_value: number) {\n this._align = undefined;\n this._percentagePosition === undefined && (this._percentagePosition = {});\n this._percentagePosition.x = _value;\n this.reloadPosition();\n }\n get percentageY() {\n return PropsUtils.calculatePercentagePositionByPosition(\"height\", this.y);\n }\n set percentageY(_value: number) {\n this._align = undefined;\n this._percentagePosition === undefined && (this._percentagePosition = {});\n this._percentagePosition.y = _value;\n this.reloadPosition();\n }\n get positionType(): \"pixel\" | \"percentage\" | \"align\" {\n if (this._align) {\n return \"align\";\n } else if (this._percentagePosition) {\n return \"percentage\";\n }\n return \"pixel\";\n }\n get positionInfo(): { x: number; y: number; type: \"pixel\" | \"percentage\" | \"align\" } {\n switch (this.positionType) {\n case \"align\":\n return { x: this.xAlign, y: this.yAlign, type: \"align\" };\n case \"percentage\":\n return { x: this.percentageX, y: this.percentageY, type: \"percentage\" };\n default:\n return { x: this.x, y: this.y, type: \"pixel\" };\n }\n }\n set positionInfo(value: { x: number; y: number; type?: \"pixel\" | \"percentage\" | \"align\" }) {\n if (value.type === \"align\") {\n this.align = { x: value.x, y: value.y };\n } else if (value.type === \"percentage\") {\n this.percentagePosition = { x: value.x, y: value.y };\n } else {\n this.position.set(value.x, value.y);\n }\n }\n protected reloadPosition() {\n if (this._align) {\n let superPivot = PropsUtils.getSuperPoint(this.pivot, this.angle);\n let superScale = PropsUtils.getSuperPoint(this.scale, this.angle);\n if (this._align.x !== undefined) {\n super.x = PropsUtils.calculatePositionByAlign(\n \"width\",\n this._align.x,\n PropsUtils.getSuperWidth(this),\n superPivot.x,\n superScale.x < 0,\n this.anchor.x,\n );\n }\n if (this._align.y !== undefined) {\n super.y = PropsUtils.calculatePositionByAlign(\n \"height\",\n this._align.y,\n PropsUtils.getSuperHeight(this),\n superPivot.y,\n superScale.y < 0,\n this.anchor.y,\n );\n }\n } else if (this._percentagePosition) {\n if (this._percentagePosition.x !== undefined) {\n super.x = PropsUtils.calculatePositionByPercentagePosition(\"width\", this._percentagePosition.x);\n }\n if (this._percentagePosition.y !== undefined) {\n super.y = PropsUtils.calculatePositionByPercentagePosition(\"height\", this._percentagePosition.y);\n }\n }\n }\n get position(): ObservablePoint {\n return super.position;\n }\n set position(value: ObservablePoint) {\n this._align = undefined;\n this._percentagePosition = undefined;\n super.position = value;\n }\n get x(): number {\n return super.x;\n }\n set x(value: number) {\n this._align = undefined;\n this._percentagePosition = undefined;\n super.x = value;\n }\n override get y(): number {\n return super.y;\n }\n override set y(value: number) {\n this._align = undefined;\n this._percentagePosition = undefined;\n super.y = value;\n }\n}\nRegisteredCanvasComponents.add<TextMemory, typeof Text>(Text, {\n name: CANVAS_TEXT_ID,\n});\n\nexport async function setMemoryText(element: Text, memory: TextMemory | {}) {\n \"text\" in memory && memory.text !== undefined && (element.text = memory.text);\n await setMemoryContainer(element, memory, {\n end: () => {\n \"style\" in memory && memory.style !== undefined && (element.style = memory.style);\n },\n });\n if (\"anchor\" in memory && memory.anchor !== undefined) {\n if (typeof memory.anchor === \"number\") {\n element.anchor.set(memory.anchor, memory.anchor);\n } else {\n element.anchor.set(memory.anchor.x, memory.anchor.y);\n }\n }\n \"resolution\" in memory && memory.resolution !== undefined && (element.resolution = memory.resolution);\n if (\"anchor\" in memory && memory.anchor !== undefined) {\n if (typeof memory.anchor === \"number\") {\n element.anchor.set(memory.anchor, memory.anchor);\n } else {\n element.anchor.set(memory.anchor.x, memory.anchor.y);\n }\n }\n \"align\" in memory && memory.align !== undefined && (element.align = memory.align);\n \"percentagePosition\" in memory &&\n memory.percentagePosition !== undefined &&\n (element.percentagePosition = memory.percentagePosition);\n \"roundPixels\" in memory && memory.roundPixels !== undefined && (element.roundPixels = memory.roundPixels);\n}\n","import type { UPDATE_PRIORITY } from \"@drincs/pixi-vn/pixi.js\";\nimport { canvas, ShakeEffectProps } from \"..\";\nimport { logger } from \"../../utils/log-utility\";\n\n/**\n * Shake the canvas element.\n * If there is a/more ticker(s) with the same alias, then the ticker(s) is/are paused.\n * @param alias\n * @param options\n * @param priority\n * @returns\n */\nexport async function shakeEffect(\n alias: string,\n options: ShakeEffectProps = {},\n priority?: UPDATE_PRIORITY,\n): Promise<string[] | undefined> {\n let elemet = canvas.find(alias);\n if (!elemet) {\n logger.error(`The element with the alias ${alias} does not exist. So the shake effect can't be applied.`);\n return;\n }\n let position = { x: elemet.position.x, y: elemet.position.y };\n const { shakeType = \"horizontal\", maxShockSize = 10, shocksNumber: shocksNumberTemp = 10, ...rest } = options;\n let shocksNumber = shocksNumberTemp - 1;\n if (shocksNumber < 2) {\n logger.error(\"The number of shocks must be at least 3.\");\n return;\n }\n let upshocksNumber = Math.floor(shocksNumber / 2);\n let downshocksNumber = Math.ceil(shocksNumber / 2);\n\n let array: number[] = [];\n for (let i = 0; i < upshocksNumber; i++) {\n let shockSize = (maxShockSize * (i + 1)) / upshocksNumber;\n if (shakeType === \"horizontal\") {\n if (i % 2 !== 0) {\n array.push(position.x + shockSize);\n } else {\n array.push(position.x - shockSize);\n }\n } else {\n if (i % 2 !== 0) {\n array.push(position.y + shockSize);\n } else {\n array.push(position.y - shockSize);\n }\n }\n }\n let lastItemIsLeft = upshocksNumber % 2 === 0;\n for (let i = downshocksNumber; i > 0; i--) {\n let shockSize = (maxShockSize * (i + 1)) / (downshocksNumber - 1);\n if (shakeType === \"horizontal\") {\n if ((i % 2 === 0 && !lastItemIsLeft) || (i % 2 !== 0 && lastItemIsLeft)) {\n array.push(position.x - shockSize);\n } else {\n array.push(position.x + shockSize);\n }\n } else {\n if ((i % 2 === 0 && !lastItemIsLeft) || (i % 2 !== 0 && lastItemIsLeft)) {\n array.push(position.y - shockSize);\n } else {\n array.push(position.y + shockSize);\n }\n }\n }\n\n let id: string | undefined;\n if (shakeType === \"horizontal\") {\n array.push(position.x);\n id = canvas.animate(alias, { x: array }, rest, priority);\n } else {\n array.push(position.y);\n id = canvas.animate(alias, { y: array }, rest, priority);\n }\n if (id) {\n return [id];\n }\n}\n","import { canvas, ImageContainerOptions } from \"..\";\nimport ImageContainer from \"../components/ImageContainer\";\nimport ImageSprite from \"../components/ImageSprite\";\n\n/**\n * Add a list of images in the container, after that, the images are added to the canvas.\n * Is the same that {@link showImageContainer}, but the image is not shown.\n * If you want to show the image, then you need to use the function {@link ImageSprite.load()}.\n * @param alias is the unique alias of the image. You can use this alias to refer to this image\n * @param imageUrls is the url of the image. If you don't provide the url, then the alias is used as the url.\n * @param options The options of the image.\n * @returns the container of the image.\n * @example\n * ```typescript\n * let bunny = addImageContainer(\"bunny\", [\"https://pixijs.com/assets/bunny-body.png\", \"https://pixijs.com/assets/bunny-eyes.png\"])\n * await bunny.load()\n * ```\n */\nexport function addImageCointainer(\n alias: string,\n imageUrls: string[],\n options?: ImageContainerOptions<ImageSprite>,\n): ImageContainer {\n let oldMemory = { ...canvas.find(alias)?.memory, ...options };\n let component = new ImageContainer(options, imageUrls);\n if (oldMemory) {\n canvas.copyCanvasElementProperty(oldMemory, component);\n }\n canvas.add(alias, component, { ignoreOldStyle: true, zIndex: options?.zIndex });\n return component;\n}\n\n/**\n * Add a list of images in the container, after that, the images are added and shown in the canvas.\n * @param alias The unique alias of the image. You can use this alias to refer to this image\n * @param imageUrls The url of the image.\n * @param options The options of the image.\n * @returns A promise that is resolved when the image is loaded.\n * @example\n * ```typescript\n * let bunny = showImageContainer(\"bunny\", [\"https://pixijs.com/assets/bunny-body.png\", \"https://pixijs.com/assets/bunny-eyes.png\"])\n * ```\n */\nexport async function showImageContainer(\n alias: string,\n imageUrls: string[],\n options?: ImageContainerOptions<ImageSprite>,\n): Promise<ImageContainer> {\n let oldMemory = { ...canvas.find(alias)?.memory, ...options };\n let component = new ImageContainer(options, imageUrls);\n component.label = alias;\n await component.load();\n if (oldMemory) {\n canvas.copyCanvasElementProperty(oldMemory, component);\n }\n canvas.add(alias, component, { ignoreOldStyle: true, zIndex: options?.zIndex });\n return component;\n}\n","import { PixiError } from \"@drincs/pixi-vn/core\";\nimport { default as PIXI } from \"@drincs/pixi-vn/pixi.js\";\nimport { canvas, ImageSpriteOptions } from \"..\";\nimport { CANVAS_IMAGE_ID } from \"../../constants\";\nimport ImageSprite from \"../components/ImageSprite\";\n\n/**\n * Add a image in the canvas.\n * Is the same that {@link showImage}, but the image is not shown.\n * If you want to show the image, then you need to use the function {@link ImageSprite.load}.\n * @param alias is the unique alias of the image. You can use this alias to refer to this image\n * @param imageUrl is the url of the image. If you don't provide the url, then the alias is used as the url.\n * @param options The options of the image.\n * @returns the container of the image.\n * @throws {PixiError} when `imageUrl` is not provided and `alias` is not registered in the asset cache.\n * @example\n * ```typescript\n * let bunny1 = addImage(\"bunny1\", \"https://pixijs.com/assets/bunny1.png\")\n * await bunny1.load()\n * Assets.add({ alias: \"bunny2\", src: \"https://pixijs.com/assets/bunny2.png\" })\n * let bunny2 = addImage(\"bunny2\")\n * await bunny2.load()\n * ```\n */\nexport function addImage(alias: string, imageUrl?: string, options?: ImageSpriteOptions): ImageSprite {\n if (!imageUrl) {\n if (PIXI.Assets.resolver.hasKey(alias)) {\n imageUrl = alias;\n } else {\n throw new PixiError(\"unregistered_asset\", `The image ${alias} does not exist in the cache.`, \"canvas\", {\n pixivnId: CANVAS_IMAGE_ID,\n ...options,\n label: alias,\n });\n }\n }\n let oldMemory = { ...canvas.find(alias)?.memory, ...options };\n let component = new ImageSprite(options, imageUrl);\n if (oldMemory) {\n canvas.copyCanvasElementProperty(oldMemory, component);\n }\n canvas.add(alias, component, { ignoreOldStyle: true, zIndex: options?.zIndex });\n return component;\n}\n\n/**\n * Add and show a image in the canvas. This function is a combination of {@link addImage}.\n * @param alias The unique alias of the image. You can use this alias to refer to this image\n * @param imageUrl The url of the image.\n * @param options The options of the image.\n * @returns A promise that is resolved when the image is loaded.\n * @throws {PixiError} when `imageUrl` is not provided and `alias` is not registered in the asset cache.\n * @example\n * ```typescript\n * let bunny1 = showImage(\"bunny1\", \"https://pixijs.com/assets/bunny1.png\")\n * Assets.add({ alias: \"bunny2\", src: \"https://pixijs.com/assets/bunny2.png\" })\n * let bunny2 = showImage(\"bunny2\")\n * ```\n */\nexport async function showImage(alias: string, imageUrl?: string, options?: ImageSpriteOptions): Promise<ImageSprite> {\n if (!imageUrl) {\n if (PIXI.Assets.resolver.hasKey(alias)) {\n imageUrl = alias;\n } else {\n throw new PixiError(\"unregistered_asset\", `The image ${alias} does not exist in the cache.`, \"canvas\", {\n pixivnId: CANVAS_IMAGE_ID,\n ...options,\n label: alias,\n });\n }\n }\n let oldMemory = { ...canvas.find(alias)?.memory, ...options };\n let component = new ImageSprite(options, imageUrl);\n component.label = alias;\n await component.load();\n if (oldMemory) {\n canvas.copyCanvasElementProperty(oldMemory, component);\n }\n canvas.add(alias, component, { ignoreOldStyle: true, zIndex: options?.zIndex });\n return component;\n}\n","import { PixiError } from \"@drincs/pixi-vn/core\";\nimport { default as PIXI } from \"@drincs/pixi-vn/pixi.js\";\nimport { canvas, VideoSpriteOptions } from \"..\";\nimport { CANVAS_VIDEO_ID } from \"../../constants\";\nimport VideoSprite from \"../components/VideoSprite\";\n\n/**\n * Add a video in the canvas.\n * Is the same that {@link showVideo}, but the video is not shown.\n * If you want to show the video, then you need to use the function {@link VideoSprite.load()}.\n * @param alias is the unique alias of the video. You can use this alias to refer to this video\n * @param videoUrl is the url of the video. If you don't provide the url, then the alias is used as the url.\n * @param options The options of the video.\n * @returns the container of the video.\n * @throws {PixiError} when `videoUrl` is not provided and `alias` is not registered in the asset cache.\n * @example\n * ```typescript\n * let video1 = addVideo(\"video1\", \"https://pixijs.com/assets/video1.mp4\")\n * await video1.load()\n * Assets.add({ alias: \"video2\", src: \"https://pixijs.com/assets/video2.png\" })\n * let video2 = addVideo(\"video2\")\n * await video2.load()\n * ```\n */\nexport function addVideo(alias: string, videoUrl?: string, options?: VideoSpriteOptions): VideoSprite {\n if (!videoUrl) {\n if (PIXI.Assets.resolver.hasKey(alias)) {\n videoUrl = alias;\n } else {\n throw new PixiError(\"unregistered_asset\", `The video ${alias} does not exist in the cache.`, \"canvas\", {\n pixivnId: CANVAS_VIDEO_ID,\n ...options,\n label: alias,\n });\n }\n }\n let oldMemory = { ...canvas.find(alias)?.memory, ...options };\n let component = new VideoSprite(options, videoUrl);\n if (oldMemory) {\n canvas.copyCanvasElementProperty(oldMemory, component);\n }\n canvas.add(alias, component, { ignoreOldStyle: true, zIndex: options?.zIndex });\n return component;\n}\n\n/**\n * Add and show a video in the canvas. This function is a combination of {@link addVideo}.\n * @param alias The unique alias of the video. You can use this alias to refer to this video\n * @param videoUrl The url of the video.\n * @param options The options of the video.\n * @returns A promise that is resolved when the video is loaded.\n * @throws {PixiError} when `videoUrl` is not provided and `alias` is not registered in the asset cache.\n * @example\n * ```typescript\n * let video1 = showVideo(\"video1\", \"https://pixijs.com/assets/video1.mp4\")\n * Assets.add({ alias: \"video2\", src: \"https://pixijs.com/assets/video2.png\" })\n * let video2 = showVideo(\"video2\")\n * ```\n */\nexport async function showVideo(alias: string, videoUrl?: string, options?: VideoSpriteOptions): Promise<VideoSprite> {\n if (!videoUrl) {\n if (PIXI.Assets.resolver.hasKey(alias)) {\n videoUrl = alias;\n } else {\n throw new PixiError(\"unregistered_asset\", `The video ${alias} does not exist in the cache.`, \"canvas\", {\n pixivnId: CANVAS_VIDEO_ID,\n ...options,\n label: alias,\n });\n }\n }\n let oldMemory = { ...canvas.find(alias)?.memory, ...options };\n let component = new VideoSprite(options, videoUrl);\n component.label = alias;\n await component.load();\n if (oldMemory) {\n canvas.copyCanvasElementProperty(oldMemory, component);\n }\n canvas.add(alias, component, { ignoreOldStyle: true, zIndex: options?.zIndex });\n return component;\n}\n","import type { UPDATE_PRIORITY } from \"@drincs/pixi-vn/pixi.js\";\nimport { canvas, CanvasBaseInterface, ImageContainerOptions, ImageSpriteOptions } from \"..\";\nimport { logger } from \"../../utils/log-utility\";\nimport ImageContainer from \"../components/ImageContainer\";\nimport ImageSprite from \"../components/ImageSprite\";\nimport VideoSprite from \"../components/VideoSprite\";\nimport { CanvasPropertyUtility as PropsUtils } from \"../functions/canvas-property-utility\";\nimport {\n MoveInOutProps,\n PushInOutProps,\n ShowWithDissolveTransitionProps,\n ShowWithFadeTransitionProps,\n ZoomInOutProps,\n} from \"../interfaces/transition-props\";\nimport { checkIfVideo } from \"./canvas-utility\";\nimport { addImageCointainer } from \"./image-container-utility\";\nimport { addImage } from \"./image-utility\";\nimport { addVideo } from \"./video-utility\";\n\nfunction mapDestination(destination: {\n type?: \"pixel\" | \"percentage\" | \"align\";\n y: number;\n x: number;\n}): Partial<ImageSpriteOptions> {\n switch (destination.type) {\n case \"align\":\n return {\n xAlign: destination.x,\n yAlign: destination.y,\n };\n case \"percentage\":\n return {\n percentageX: destination.x,\n percentageY: destination.y,\n };\n case \"pixel\":\n default:\n return {\n x: destination.x,\n y: destination.y,\n };\n }\n}\n\ntype TComponent =\n | CanvasBaseInterface<any>\n | string\n | string[]\n | {\n value: string;\n options: ImageSpriteOptions;\n }\n | {\n value: string[];\n options: ImageContainerOptions;\n };\nfunction addComponent(\n alias: string,\n canvasElement: TComponent,\n options: {\n zIndex?: number;\n },\n): CanvasBaseInterface<any> {\n if (typeof canvasElement === \"string\") {\n if (checkIfVideo(canvasElement)) {\n return addVideo(alias, canvasElement, options);\n } else {\n return addImage(alias, canvasElement, options);\n }\n } else if (Array.isArray(canvasElement)) {\n return addImageCointainer(alias, canvasElement, options);\n } else if (typeof canvasElement === \"object\" && \"value\" in canvasElement && \"options\" in canvasElement) {\n if (typeof canvasElement.value === \"string\") {\n if (checkIfVideo(canvasElement.value)) {\n return addVideo(alias, canvasElement.value, {\n ...canvasElement.options,\n zIndex: options.zIndex,\n });\n } else {\n return addImage(alias, canvasElement.value, {\n ...canvasElement.options,\n zIndex: options.zIndex,\n });\n }\n } else if (Array.isArray(canvasElement.value)) {\n return addImageCointainer(alias, canvasElement.value, {\n ...canvasElement.options,\n zIndex: options.zIndex,\n } as any);\n }\n }\n canvas.add(alias, canvasElement as CanvasBaseInterface<any>, options);\n return canvasElement as CanvasBaseInterface<any>;\n}\n\n/**\n * Show a image in the canvas with a disolve effect.\n * Disolve effect is a effect that the image is shown with a fade in.\n * If exist a image with the same alias, then the image is replaced and the first image is removed after the effect is done.\n * @param alias The unique alias of the image. You can use this alias to refer to this image\n * @param component The imageUrl, array of imageUrl or the canvas component. If imageUrl is a video, then the {@link VideoSprite} is added to the canvas.\n * If imageUrl is an array, then the {@link ImageContainer} is added to the canvas.\n * If you don't provide the component, then the alias is used as the url.\n * @param props The properties of the effect\n * @param priority The priority of the effect\n * @returns A promise that contains the ids of the tickers that are used in the effect. The promise is resolved when the image is loaded.\n */\nexport async function showWithDissolve(\n alias: string,\n component?: TComponent,\n props: ShowWithDissolveTransitionProps = {},\n priority?: UPDATE_PRIORITY,\n): Promise<string[] | undefined> {\n let { forceCompleteBeforeNext = true } = props;\n let { completeOnContinue = forceCompleteBeforeNext, tickerIdToResume = [], ...options } = props;\n let res: string[] = [];\n if (!component) {\n component = alias;\n }\n if (typeof tickerIdToResume === \"string\") {\n tickerIdToResume = [tickerIdToResume];\n }\n // check if the alias is already exist\n let oldComponentAlias: string | undefined = undefined;\n let oldComponent = canvas.find(alias);\n if (oldComponent) {\n oldComponentAlias = alias + \"_temp_disolve\";\n canvas.editAlias(alias, oldComponentAlias);\n }\n // add the new component and transfer the properties of the old component to the new component\n component = addComponent(alias, component, {\n zIndex: oldComponent ? oldComponent.parent?.getChildIndex(oldComponent) : undefined,\n });\n oldComponent?.parent?.setChildIndex(oldComponent, oldComponent.parent.getChildIndex(oldComponent) - 0.1);\n oldComponentAlias && canvas.copyCanvasElementProperty(oldComponentAlias, alias);\n oldComponentAlias && canvas.transferTickers(oldComponentAlias, alias, \"duplicate\");\n // edit the properties of the new component\n component.alpha = 0;\n // remove the old component\n if (oldComponentAlias) {\n let ids = removeWithDissolve(oldComponentAlias, { ...props, autoplay: false, completeOnContinue }, priority);\n if (ids) {\n res.push(...ids);\n tickerIdToResume.push(...ids);\n }\n }\n // create the ticker and play it\n let idShow = canvas.animate(\n alias,\n {\n alpha: 1,\n },\n {\n ...options,\n tickerIdToResume,\n completeOnContinue,\n },\n priority,\n );\n idShow && res.push(idShow);\n // load the image if the image is not loaded\n if ((component instanceof ImageSprite || component instanceof ImageContainer) && component.haveEmptyTexture) {\n await component.load();\n }\n // return the ids of the tickers\n if (res.length > 0) {\n return res;\n }\n}\n\n/**\n * Remove a image from the canvas with a disolve effect.\n * Disolve effect is a effect that the image is removed with a fade out.\n * This function is equivalent to {@link removeWithFade}.\n * @param alias The unique alias of the image. You can use this alias to refer to this image\n * @param props The properties of the effect\n * @param priority The priority of the effect\n * @returns The ids of the tickers that are used in the effect.\n */\nexport function removeWithDissolve(\n alias: string,\n props: ShowWithDissolveTransitionProps = {},\n priority?: UPDATE_PRIORITY,\n): string[] | undefined {\n let { forceCompleteBeforeNext = true } = props;\n let { completeOnContinue = forceCompleteBeforeNext, aliasToRemoveAfter = [], ...options } = props;\n if (typeof aliasToRemoveAfter === \"string\") {\n aliasToRemoveAfter = [aliasToRemoveAfter];\n }\n aliasToRemoveAfter.push(alias);\n // create the ticker and play it\n let id = canvas.animate(\n alias,\n {\n alpha: 0,\n },\n {\n ...options,\n aliasToRemoveAfter,\n completeOnContinue,\n },\n priority,\n );\n if (id) {\n return [id];\n }\n}\n\n/**\n * Show a image in the canvas with a fade effect.\n * Fade effect is a effect that the image is shown with a fade in.\n * If exist a image with the same alias, the existing image is removed with a fade transition, and after the effect is done, the new image is shown with a fade transition.\n * @param alias The unique alias of the image. You can use this alias to refer to this image\n * @param component The imageUrl, array of imageUrl or the canvas component. If imageUrl is a video, then the {@link VideoSprite} is added to the canvas.\n * If imageUrl is an array, then the {@link ImageContainer} is added to the canvas.\n * If you don't provide the component, then the alias is used as the url.\n * @param props The properties of the effect\n * @param priority The priority of the effect\n * @returns A promise that contains the ids of the tickers that are used in the effect. The promise is resolved when the image is loaded.\n */\nexport async function showWithFade(\n alias: string,\n component?: TComponent,\n props: ShowWithFadeTransitionProps = {},\n priority?: UPDATE_PRIORITY,\n): Promise<string[] | undefined> {\n let { forceCompleteBeforeNext = true } = props;\n let { completeOnContinue = forceCompleteBeforeNext, aliasToRemoveAfter = [], ...options } = props;\n let res: string[] = [];\n if (!component) {\n component = alias;\n }\n if (typeof aliasToRemoveAfter === \"string\") {\n aliasToRemoveAfter = [aliasToRemoveAfter];\n }\n // check if the alias is already exist\n let oldComponent = canvas.find(alias);\n if (!oldComponent) {\n return showWithDissolve(alias, component, props, priority);\n }\n let oldComponentAlias = alias + \"_temp_fade\";\n canvas.editAlias(alias, oldComponentAlias);\n aliasToRemoveAfter.push(oldComponentAlias);\n // add the new component and transfer the properties of the old component to the new component\n component = addComponent(alias, component, {\n zIndex: oldComponent ? oldComponent.parent?.getChildIndex(oldComponent) : undefined,\n });\n oldComponent?.parent?.setChildIndex(oldComponent, oldComponent.parent.getChildIndex(oldComponent) - 0.1);\n oldComponentAlias && canvas.copyCanvasElementProperty(oldComponentAlias, alias);\n oldComponentAlias && canvas.transferTickers(oldComponentAlias, alias, \"duplicate\");\n // edit the properties of the new component\n component.alpha = 0;\n // create the ticker and play it\n let idShow = canvas.animate(\n alias,\n {\n alpha: 1,\n },\n {\n ...options,\n aliasToRemoveAfter,\n completeOnContinue,\n },\n priority,\n );\n if (idShow) {\n // remove the old component\n let idHide = removeWithDissolve(\n oldComponentAlias,\n {\n ...props,\n tickerIdToResume: idShow,\n completeOnContinue,\n },\n priority,\n );\n if (idHide) {\n res.push(...idHide);\n }\n\n res.push(idShow);\n // pause the ticker\n canvas.pauseTicker({ id: idShow });\n }\n // load the image if the image is not loaded\n if ((component instanceof ImageSprite || component instanceof ImageContainer) && component.haveEmptyTexture) {\n await component.load();\n }\n // return the ids of the tickers\n if (res.length > 0) {\n return res;\n }\n}\n\n/**\n * Remove a image from the canvas with a fade effect.\n * Fade effect is a effect that the image is removed with a fade out.\n * This function is equivalent to {@link removeWithDissolve}.\n * @param alias The unique alias of the image. You can use this alias to refer to this image\n * @param props The properties of the effect\n * @param priority The priority of the effect\n * @returns The ids of the tickers that are used in the effect.\n */\nexport function removeWithFade(\n alias: string,\n props: ShowWithFadeTransitionProps = {},\n priority?: UPDATE_PRIORITY,\n): string[] | undefined {\n return removeWithDissolve(alias, props, priority);\n}\n\n/**\n * Show a image in the canvas with a move effect. The image is moved from outside the canvas to the x and y position of the image.\n * If there is a/more ticker(s) with the same alias, then the ticker(s) is/are paused.\n * @param alias The unique alias of the image. You can use this alias to refer to this image\n * @param component The imageUrl, array of imageUrl or the canvas component. If imageUrl is a video, then the {@link VideoSprite} is added to the canvas.\n * If imageUrl is an array, then the {@link ImageContainer} is added to the canvas.\n * If you don't provide the component, then the alias is used as the url.\n * @param props The properties of the effect\n * @param priority The priority of the effect\n * @returns A promise that contains the ids of the tickers that are used in the effect. The promise is resolved when the image is loaded.\n */\nexport async function moveIn(\n alias: string,\n component?: TComponent,\n props: MoveInOutProps & {\n /**\n * If true, then the old component is removed with a move out, after the new image is moved in.\n * @default false\n */\n removeOldComponentWithMoveOut?: boolean;\n } = {},\n priority?: UPDATE_PRIORITY,\n): Promise<string[] | undefined> {\n let { forceCompleteBeforeNext = true } = props;\n let {\n direction = \"right\",\n completeOnContinue = forceCompleteBeforeNext,\n tickerIdToResume = [],\n aliasToRemoveAfter = [],\n removeOldComponentWithMoveOut,\n ...options\n } = props;\n let res: string[] = [];\n let destination: undefined | { x: number; y: number; type: \"pixel\" | \"percentage\" | \"align\" } = undefined;\n if (!component) {\n component = alias;\n }\n if (typeof tickerIdToResume === \"string\") {\n tickerIdToResume = [tickerIdToResume];\n }\n if (typeof aliasToRemoveAfter === \"string\") {\n aliasToRemoveAfter = [aliasToRemoveAfter];\n }\n // check if the alias is already exist\n let oldComponentAlias: string | undefined = undefined;\n let oldComponent = canvas.find(alias);\n if (oldComponent) {\n oldComponentAlias = alias + \"_temp_movein\";\n canvas.editAlias(alias, oldComponentAlias);\n if (oldComponent instanceof ImageSprite || oldComponent instanceof ImageContainer) {\n destination = oldComponent.positionInfo;\n } else {\n destination = { x: oldComponent.x, y: oldComponent.y, type: \"pixel\" };\n }\n }\n // add the new component and transfer the properties of the old component to the new component\n component = addComponent(alias, component, {\n zIndex: oldComponent ? oldComponent.parent?.getChildIndex(oldComponent) : undefined,\n });\n oldComponent?.parent?.setChildIndex(oldComponent, oldComponent.parent.getChildIndex(oldComponent) - 0.1);\n oldComponentAlias && canvas.copyCanvasElementProperty(oldComponentAlias, alias);\n oldComponentAlias && canvas.transferTickers(oldComponentAlias, alias, \"move\");\n // edit the properties of the new component\n if (!destination) {\n if (component instanceof ImageSprite || component instanceof ImageContainer) {\n destination = component.positionInfo;\n } else {\n destination = { x: component.x, y: component.y, type: \"pixel\" };\n }\n }\n // remove the old component\n if (oldComponentAlias) {\n if (removeOldComponentWithMoveOut) {\n let ids = moveOut(oldComponentAlias, { ...props, autoplay: false, completeOnContinue }, priority);\n if (ids) {\n res.push(...ids);\n tickerIdToResume.push(...ids);\n }\n } else {\n aliasToRemoveAfter.push(oldComponentAlias);\n }\n }\n // load the image if the image is not loaded\n if ((component instanceof ImageSprite || component instanceof ImageContainer) && component.haveEmptyTexture) {\n await component.load();\n }\n // edit the properties of the new component\n switch (direction) {\n case \"up\":\n component.y = canvas.height + component.height;\n break;\n case \"down\":\n component.y = -component.height;\n break;\n case \"left\":\n component.x = canvas.width + component.width;\n break;\n case \"right\":\n component.x = -component.width;\n break;\n }\n let ids = canvas.pauseTicker({ canvasAlias: alias });\n tickerIdToResume.push(...ids);\n // create the ticker and play it\n let idShow = canvas.animate(\n alias,\n mapDestination(destination) as any,\n {\n ...options,\n tickerIdToResume,\n aliasToRemoveAfter,\n completeOnContinue,\n },\n priority,\n );\n idShow && res.push(idShow);\n // return the ids of the tickers\n if (res.length > 0) {\n return res;\n }\n}\n\n/**\n * Remove a image from the canvas with a move effect. The image is moved from the x and y position of the image to outside the canvas.\n * If there is a/more ticker(s) with the same alias, then the ticker(s) is/are paused.\n * @param alias The unique alias of the image. You can use this alias to refer to this image\n * @param props The properties of the effect\n * @param priority The priority of the effect\n * @returns The ids of the tickers that are used in the effect.\n */\nexport function moveOut(alias: string, props: MoveInOutProps = {}, priority?: UPDATE_PRIORITY): string[] | undefined {\n let { forceCompleteBeforeNext = true } = props;\n let {\n direction = \"right\",\n completeOnContinue = forceCompleteBeforeNext,\n aliasToRemoveAfter = [],\n ...options\n } = props;\n if (typeof aliasToRemoveAfter === \"string\") {\n aliasToRemoveAfter = [aliasToRemoveAfter];\n }\n aliasToRemoveAfter.push(alias);\n // get the destination\n let component = canvas.find(alias);\n if (!component) {\n logger.warn(`The canvas component \"${alias}\" is not found.`);\n return;\n }\n let destination = { x: component.x, y: component.y };\n switch (direction) {\n case \"up\":\n destination.y = -component.height;\n break;\n case \"down\":\n destination.y = canvas.height + component.height;\n break;\n case \"left\":\n destination.x = -component.width;\n break;\n case \"right\":\n destination.x = canvas.width + component.width;\n break;\n }\n // create the ticker and play it\n canvas.pauseTicker({ canvasAlias: alias });\n let id = canvas.animate(\n alias,\n destination,\n {\n ...options,\n aliasToRemoveAfter,\n completeOnContinue,\n },\n priority,\n );\n if (id) {\n return [id];\n }\n}\n\n/**\n * Show a image in the canvas with a zoom effect. The image is zoomed in from the center of the canvas.\n * If there is a/more ticker(s) with the same alias, then the ticker(s) is/are paused.\n * @param alias The unique alias of the image. You can use this alias to refer to this image\n * @param component The imageUrl, array of imageUrl or the canvas component. If imageUrl is a video, then the {@link VideoSprite} is added to the canvas.\n * If imageUrl is an array, then the {@link ImageContainer} is added to the canvas.\n * If you don't provide the component, then the alias is used as the url.\n * @param props The properties of the effect\n * @param priority The priority of the effect\n * @returns A promise that contains the ids of the tickers that are used in the effect. The promise is resolved when the image is loaded.\n */\nexport async function zoomIn(\n alias: string,\n component?: TComponent,\n props: ZoomInOutProps & {\n /**\n * If true, then the old component is removed with a zoom out, after the new image is zoomed in.\n * @default false\n */\n removeOldComponentWithZoomOut?: boolean;\n } = {},\n priority?: UPDATE_PRIORITY,\n): Promise<string[] | undefined> {\n let { forceCompleteBeforeNext = true } = props;\n let {\n direction = \"right\",\n completeOnContinue = forceCompleteBeforeNext,\n tickerIdToResume = [],\n aliasToRemoveAfter = [],\n ...options\n } = props;\n let res: string[] = [];\n let destination: undefined | { x: number; y: number; type: \"pixel\" | \"percentage\" | \"align\" } = undefined;\n if (!component) {\n component = alias;\n }\n if (typeof tickerIdToResume === \"string\") {\n tickerIdToResume = [tickerIdToResume];\n }\n if (typeof aliasToRemoveAfter === \"string\") {\n aliasToRemoveAfter = [aliasToRemoveAfter];\n }\n // check if the alias is already exist\n let oldComponentAlias: string | undefined = undefined;\n let oldComponent = canvas.find(alias);\n if (oldComponent) {\n oldComponentAlias = alias + \"_temp_zoom\";\n canvas.editAlias(alias, oldComponentAlias);\n if (oldComponent instanceof ImageSprite || oldComponent instanceof ImageContainer) {\n destination = oldComponent.positionInfo;\n } else {\n destination = { x: oldComponent.x, y: oldComponent.y, type: \"pixel\" };\n }\n }\n // add the new component and transfer the properties of the old component to the new component\n component = addComponent(alias, component, {\n zIndex: oldComponent ? oldComponent.parent?.getChildIndex(oldComponent) : undefined,\n });\n oldComponent?.parent?.setChildIndex(oldComponent, oldComponent.parent.getChildIndex(oldComponent) - 0.1);\n oldComponentAlias && canvas.copyCanvasElementProperty(oldComponentAlias, alias);\n oldComponentAlias && canvas.transferTickers(oldComponentAlias, alias, \"move\");\n // edit the properties of the new component\n if (!destination) {\n if (component instanceof ImageSprite || component instanceof ImageContainer) {\n destination = component.positionInfo;\n } else {\n destination = { x: component.x, y: component.y, type: \"pixel\" };\n }\n }\n const pivot: { x: number; y: number } = {\n x: component.pivot.x,\n y: component.pivot.y,\n };\n const scale: { x: number; y: number } = {\n x: component.scale.x,\n y: component.scale.y,\n };\n // remove the old component\n if (oldComponentAlias) {\n if (props.removeOldComponentWithZoomOut) {\n let ids = zoomOut(oldComponentAlias, { ...props, autoplay: false, completeOnContinue }, priority);\n if (ids) {\n res.push(...ids);\n tickerIdToResume.push(...ids);\n }\n } else {\n aliasToRemoveAfter.push(oldComponentAlias);\n }\n }\n // load the image if the image is not loaded\n if ((component instanceof ImageSprite || component instanceof ImageContainer) && component.haveEmptyTexture) {\n await component.load();\n }\n // edit the properties of the new component\n if (direction == \"up\") {\n component.pivot.y = canvas.height - component.y;\n component.pivot.x = canvas.width / 2 - component.x;\n component.y = canvas.height;\n component.x = canvas.width / 2;\n } else if (direction == \"down\") {\n component.pivot.y = 0 - component.y;\n component.pivot.x = canvas.width / 2 - component.x;\n component.y = 0;\n component.x = canvas.width / 2;\n } else if (direction == \"left\") {\n component.pivot.x = canvas.width - component.x;\n component.pivot.y = canvas.height / 2 - component.y;\n component.x = canvas.width;\n component.y = canvas.height / 2;\n } else if (direction == \"right\") {\n component.pivot.x = 0 - component.x;\n component.pivot.y = canvas.height / 2 - component.y;\n component.x = 0;\n component.y = canvas.height / 2;\n }\n component.pivot = PropsUtils.getPointBySuperPoint(component.pivot, component.angle);\n component.scale.set(0);\n // pause the ticker\n let ids = canvas.pauseTicker({ canvasAlias: alias });\n tickerIdToResume.push(...ids);\n // create the ticker and play it\n let idShow = canvas.animate(\n alias,\n {\n ...(mapDestination(destination) as any),\n pivotX: pivot.x,\n pivotY: pivot.y,\n scaleX: scale.x,\n scaleY: scale.y,\n },\n {\n ...options,\n tickerIdToResume,\n aliasToRemoveAfter,\n completeOnContinue,\n },\n priority,\n );\n idShow && res.push(idShow);\n // return the ids of the tickers\n if (res.length > 0) {\n return res;\n }\n}\n\n/**\n * Remove a image from the canvas with a zoom effect. The image is zoomed out to the center of the canvas.\n * If there is a/more ticker(s) with the same alias, then the ticker(s) is/are paused.\n * @param alias The unique alias of the image. You can use this alias to refer to this image\n * @param props The properties of the effect\n * @param priority The priority of the effect\n * @returns The ids of the tickers that are used in the effect.\n */\nexport function zoomOut(alias: string, props: ZoomInOutProps = {}, priority?: UPDATE_PRIORITY): string[] | undefined {\n let { forceCompleteBeforeNext = true } = props;\n let {\n direction = \"right\",\n completeOnContinue = forceCompleteBeforeNext,\n aliasToRemoveAfter = [],\n ...options\n } = props;\n if (typeof aliasToRemoveAfter === \"string\") {\n aliasToRemoveAfter = [aliasToRemoveAfter];\n }\n aliasToRemoveAfter.push(alias);\n // get the destination\n let component = canvas.find(alias);\n if (!component) {\n logger.warn(`The canvas component \"${alias}\" is not found.`);\n return;\n }\n let destination = { x: component.x, y: component.y };\n let pivot: { x: number; y: number } = {\n x: component.pivot.x,\n y: component.pivot.y,\n };\n if (direction == \"down\") {\n destination.y = canvas.height;\n destination.x = canvas.width / 2;\n pivot.y = canvas.height - destination.y;\n pivot.x = canvas.width / 2 - destination.x;\n } else if (direction == \"up\") {\n destination.y = 0;\n destination.x = canvas.width / 2;\n pivot.y = 0 - destination.y;\n pivot.x = canvas.width / 2 - destination.x;\n } else if (direction == \"right\") {\n destination.x = canvas.width;\n destination.y = canvas.height / 2;\n pivot.x = canvas.width - destination.x;\n pivot.y = canvas.height / 2 - destination.y;\n } else if (direction == \"left\") {\n destination.x = 0;\n destination.y = canvas.height / 2;\n pivot.x = 0 - destination.x;\n pivot.y = canvas.height / 2 - destination.y;\n }\n pivot = PropsUtils.getPointBySuperPoint(pivot, component.angle);\n // create the ticker and play it\n canvas.pauseTicker({ canvasAlias: alias });\n let id = canvas.animate(\n alias,\n {\n ...destination,\n pivotX: pivot.x,\n pivotY: pivot.y,\n scaleX: 0,\n scaleY: 0,\n },\n {\n ...options,\n aliasToRemoveAfter,\n completeOnContinue,\n },\n priority,\n );\n if (id) {\n return [id];\n }\n}\n\n/**\n * Show a image in the canvas with a push effect. The new image is pushed in from the inside of the canvas and the old image is pushed out to the outside of the canvas.\n * If there is a/more ticker(s) with the same alias, then the ticker(s) is/are paused.\n * @param alias The unique alias of the image. You can use this alias to refer to this image\n * @param component The imageUrl, array of imageUrl or the canvas component. If imageUrl is a video, then the {@link VideoSprite} is added to the canvas.\n * If imageUrl is an array, then the {@link ImageContainer} is added to the canvas.\n * If you don't provide the component, then the alias is used as the url.\n * @param props The properties of the effect\n * @param priority The priority of the effect\n * @returns A promise that contains the ids of the tickers that are used in the effect. The promise is resolved when the image is loaded.\n */\nexport async function pushIn(\n alias: string,\n component?: TComponent,\n props: PushInOutProps = {},\n priority?: UPDATE_PRIORITY,\n): Promise<string[] | undefined> {\n let { forceCompleteBeforeNext = true } = props;\n let {\n direction = \"right\",\n completeOnContinue = forceCompleteBeforeNext,\n tickerIdToResume = [],\n ...options\n } = props;\n let res: string[] = [];\n let destination: undefined | { x: number; y: number; type: \"pixel\" | \"percentage\" | \"align\" } = undefined;\n if (!component) {\n component = alias;\n }\n if (typeof tickerIdToResume === \"string\") {\n tickerIdToResume = [tickerIdToResume];\n }\n // check if the alias is already exist\n let oldComponentAlias: string | undefined = undefined;\n let oldComponent = canvas.find(alias);\n if (oldComponent) {\n oldComponentAlias = alias + \"_temp_push\";\n canvas.editAlias(alias, oldComponentAlias);\n if (oldComponent instanceof ImageSprite || oldComponent instanceof ImageContainer) {\n destination = oldComponent.positionInfo;\n } else {\n destination = { x: oldComponent.x, y: oldComponent.y, type: \"pixel\" };\n }\n }\n // add the new component and transfer the properties of the old component to the new component\n component = addComponent(alias, component, {\n zIndex: oldComponent ? oldComponent.parent?.getChildIndex(oldComponent) : undefined,\n });\n oldComponent?.parent?.setChildIndex(oldComponent, oldComponent.parent.getChildIndex(oldComponent) - 0.1);\n oldComponentAlias && canvas.copyCanvasElementProperty(oldComponentAlias, alias);\n oldComponentAlias && canvas.transferTickers(oldComponentAlias, alias, \"move\");\n // edit the properties of the new component\n if (!destination) {\n if ((component instanceof ImageSprite || component instanceof ImageContainer) && component.haveEmptyTexture) {\n destination = component.positionInfo;\n } else {\n destination = { x: component.x, y: component.y, type: \"pixel\" };\n }\n }\n // load the image if the image is not loaded\n if ((component instanceof ImageSprite || component instanceof ImageContainer) && component.haveEmptyTexture) {\n await component.load();\n }\n // edit the properties of the new component\n switch (direction) {\n case \"up\":\n component.y = canvas.height + component.height;\n break;\n case \"down\":\n component.y = -component.height;\n break;\n case \"left\":\n component.x = canvas.width + component.width;\n break;\n case \"right\":\n component.x = -component.width;\n break;\n }\n let ids = canvas.pauseTicker({ canvasAlias: alias });\n tickerIdToResume.push(...ids);\n // remove the old component\n if (oldComponentAlias) {\n let ids = pushOut(oldComponentAlias, {\n ...props,\n direction: direction, //== \"up\" ? \"down\" : direction == \"down\" ? \"up\" : direction == \"left\" ? \"right\" : \"left\",\n completeOnContinue,\n });\n if (ids) {\n res.push(...ids);\n }\n }\n // create the ticker and play it\n let idShow = canvas.animate(\n alias,\n mapDestination(destination) as any,\n {\n ...options,\n tickerIdToResume,\n completeOnContinue,\n },\n priority,\n );\n idShow && res.push(idShow);\n // return the ids of the tickers\n if (res.length > 0) {\n return res;\n }\n}\n\n/**\n * Remove a image from the canvas with a push effect. The image is pushed out to the outside of the canvas.\n * If there is a/more ticker(s) with the same alias, then the ticker(s) is/are paused.\n * @param alias The unique alias of the image. You can use this alias to refer to this image\n * @param props The properties of the effect\n * @param priority The priority of the effect\n * @returns The ids of the tickers that are used in the effect.\n */\nexport function pushOut(\n alias: string,\n props: PushInOutProps = { direction: \"right\" },\n priority?: UPDATE_PRIORITY,\n): string[] | undefined {\n return moveOut(alias, props, priority);\n}\n","import type { ContainerOptions } from \"@drincs/pixi-vn/pixi.js\";\nimport { Container } from \"..\";\nimport type CanvasBaseItemMemory from \"../interfaces/memory/CanvasBaseItemMemory\";\n\nexport default class ErrorContainer<Memory extends CanvasBaseItemMemory> extends Container<any> {\n constructor(private readonly _memory: Memory | (Memory & ContainerOptions)) {\n super(_memory);\n this.pixivnId = _memory.pixivnId;\n }\n override pixivnId: string;\n override get memory(): any {\n return {\n ...this._memory,\n ...super.memory,\n elements: [],\n pixivnId: this.pixivnId,\n };\n }\n}\n","import type { OnErrorHandler } from \"@drincs/pixi-vn/core\";\nimport { PixiError } from \"@drincs/pixi-vn/core\";\nimport { default as PIXI } from \"@drincs/pixi-vn/pixi.js\";\nimport { canvas } from \"..\";\nimport ErrorContainer from \"../components/ErrorContainer\";\n\n/**\n * Canvas error handler: when a `PixiError` contains `canvasElementInfo`,\n * draw a simple `ErrorGraphics` placeholder on the canvas so the scene\n * remains visible and debuggable.\n */\nexport function drawCanvasErrorHandler(): OnErrorHandler {\n const errorHandler: OnErrorHandler = async (error, props) => {\n try {\n const info = (error as PixiError).canvasElementInfo;\n if (info) {\n const container = new ErrorContainer(info);\n // try to reuse zIndex if provided\n const zIndex = (info as any).zIndex;\n container.groupColor = 0xff0000;\n const placeholder = new PIXI.Graphics();\n placeholder.rect(0, 0, 300, 100).fill({ color: 0xff0000, alpha: 0.5 });\n container.addChild(placeholder);\n const text = new PIXI.Text({ text: `Error: ${info.label}`, x: 10, y: 10 });\n container.addChild(text);\n const ppparent = (error as PixiError).parent;\n if (ppparent && \"addChild\" in ppparent) {\n if (zIndex !== undefined) {\n (ppparent as any).addChildAt(container, zIndex);\n } else {\n (ppparent as any).addChild(container);\n }\n } else {\n const parent = info.parentLabel ? canvas.find(info.parentLabel) : undefined;\n if (parent) {\n if (zIndex !== undefined) {\n parent.addChildAt(container, zIndex);\n } else {\n parent.addChild(container);\n }\n } else {\n const alias = info.label ?? info.pixivnId;\n canvas.add(alias, container, { zIndex });\n }\n }\n }\n } catch (e) {}\n };\n return errorHandler;\n}\n","import { canvas, Text, TextOptions } from \"..\";\n\n/**\n * Add and show a text in the canvas.\n * @param alias The unique alias of the text. You can use this alias to refer to this text.\n * @param text\n * @param options The options of the text.\n * @returns A promise that is resolved when the text is loaded.\n * @example\n * ```typescript\n * let text = showText(\"text\", \"Hello World\", { fontSize: 24, fill: \"white\" })\n * ```\n */\nexport function showText(alias: string, text: string, options?: Omit<TextOptions, \"text\">): Text {\n let oldMemory = { ...canvas.find(alias)?.memory, ...options };\n let component = new Text({\n text,\n ...options,\n });\n if (oldMemory) {\n canvas.copyCanvasElementProperty(oldMemory, component);\n }\n canvas.add(alias, component, { ignoreOldStyle: true, zIndex: options?.zIndex });\n return component;\n}\n","import { PixiError } from \"@drincs/pixi-vn/core\";\nimport type { UPDATE_PRIORITY } from \"@drincs/pixi-vn/pixi.js\";\nimport { default as PIXI } from \"@drincs/pixi-vn/pixi.js\";\nimport sha1 from \"crypto-js/sha1\";\nimport { canvas, Ticker } from \"../..\";\nimport { logger } from \"../../../utils/log-utility\";\nimport { tickerDecorator } from \"../decorators/RegisteredTickers\";\nimport TickerArgs from \"../interfaces/TickerArgs\";\nimport TickerValue from \"./TickerValue\";\n\n/**\n * A class is used to create a ticker element to add into a Pixi Application.\n * You can use {@link canvas.addTicker()} to add this element into the application.\n * This class should be extended and the fn method should be overridden.\n * You must use the {@link tickerDecorator} to register the ticker in the game.\n * In Ren'Py is a transform.\n * @template TArgs The type of the arguments that you want to pass to the ticker.\n * @example\n * ```typescript\n * \\@tickerDecorator() // this is equivalent to tickerDecorator(\"RotateTicker\")\n * export class RotateTicker extends TickerBase<{ speed?: number }> {\n * override fn(\n * t: TickerValue, // the ticker that is calling this method\n * args: { // the arguments that you passed when you added the ticker\n * speed?: number,\n * },\n * aliases: string[], // the aliases of the canvas elements that are connected to this ticker\n * tickerId: string, // the id of the ticker. You can use this to get the ticker from the canvas.currentTickers\n * ): void {\n * let speed = args.speed === undefined ? 0.1 : args.speed\n * aliases.forEach((alias) => {\n * let element = canvas.find(alias)\n * if (element && element instanceof Container) {\n * if (clockwise)\n * element.rotation += speed * t.deltaTime\n * else\n * element.rotation -= speed * t.deltaTime\n * }\n * })\n * }\n * }\n * ```\n */\nexport default abstract class TickerBase<TArgs extends TickerArgs> implements Ticker<TArgs> {\n /**\n * @param args The arguments that you want to pass to the ticker.\n * @param options The options of the ticker.\n */\n constructor(\n args: TArgs,\n options?: {\n /**\n * The duration of the ticker in seconds. If is undefined, the step will end only when the animation is finished (if the animation doesn't have a goal to reach then it won't finish). @default undefined\n */\n duration?: number;\n /**\n * The priority of the ticker. @default UPDATE_PRIORITY.NORMAL\n */\n priority?: UPDATE_PRIORITY;\n /**\n * The id of the ticker. This param is used by the system when will ber restoring the tickers from a save. If not provided, a random id will be generated. @default undefined\n */\n id?: string;\n /**\n * The aliases of the canvas elements that are connected to this ticker. This is used by the system to know which canvas elements are connected to this ticker, and to pass them to the fn method. @default []\n */\n canvasElementAliases?: string[];\n },\n ) {\n this.alias = this.constructor.prototype.id;\n const {\n duration,\n priority,\n id = this.generateTickerId(this.alias, options),\n canvasElementAliases = [],\n } = options || {};\n this.args = args;\n this.duration = duration;\n this.priority = priority;\n this.id = id;\n this.canvasElementAliases = canvasElementAliases;\n }\n readonly alias: string;\n readonly id: string;\n args: TArgs;\n duration?: number;\n priority?: UPDATE_PRIORITY;\n protected ticker = new PIXI.Ticker();\n canvasElementAliases: string[] = [];\n private generateTickerId(...args: any[]): string {\n try {\n return sha1(JSON.stringify(args)).toString() + \"_\" + Math.random().toString(36).substring(7);\n } catch (e) {\n throw new PixiError(\"not_json_serializable\", `Error to generate ticker id: ${e}`);\n }\n }\n /**\n * The method that will be called every frame.\n * This method should be overridden and you can use {@link canvas.add()} to get the canvas element of the canvas, and edit them.\n * @param _ticker The ticker that is calling this method\n * @param _args The arguments that you passed when you added the ticker\n * @param _alias The alias of the canvas elements that are connected to this ticker\n * @param _tickerId The id of the ticker. You can use this to get the ticker from the {@link canvas.currentTickers}\n */\n abstract fn(_ticker: TickerValue, _args: TArgs, _alias: string | string[], _tickerId: string): void;\n protected fnValue?: () => void;\n complete(_options?: { ignoreTickerSteps?: boolean }) {\n this.stop();\n }\n stop() {\n const fnValue = this.fnValue;\n if (!fnValue) {\n logger.warn(\"TickerBase.stop() called without fnValue set. This may cause issues.\");\n return;\n }\n this.ticker.remove(fnValue, null);\n }\n start() {\n const id = this.id;\n const fnValue = () => this.fn(this.ticker, this.args, this.canvasElementAliases, id);\n this.fnValue = fnValue;\n this.ticker.add(fnValue, null, this.priority);\n this.ticker.start();\n }\n pause() {\n this.ticker.stop();\n }\n play() {\n this.ticker.start();\n }\n get paused(): boolean {\n return !this.ticker.started;\n }\n}\n","import { GameUnifier } from \"@drincs/pixi-vn/core\";\nimport { default as PIXI } from \"@drincs/pixi-vn/pixi.js\";\nimport CanvasManager from \"./CanvasManager\";\nimport { default as CanvasManagerStatic } from \"./CanvasManagerStatic\";\nimport CanvasUtilitiesStatic from \"./CanvasUtilitiesStatic\";\nimport CanvasManagerInterface from \"./interfaces/CanvasManagerInterface\";\n\nexport const { Assets, Color, Rectangle, TextStyle, Texture, UPDATE_PRIORITY } = PIXI;\nexport type { TextureSourceLike, Ticker as TickerValue } from \"@drincs/pixi-vn/pixi.js\";\n\n// * This import must be imported before the ImageSprite import.\nexport { default as VideoSprite } from \"./components/VideoSprite\";\n\nexport type { AnimationOptions as MotionAnimationOptions } from \"motion\";\nexport { default as ImageContainer } from \"../canvas/components/ImageContainer\";\nexport { default as CanvasManagerStatic } from \"./CanvasManagerStatic\";\nexport { default as CanvasBaseItem } from \"./classes/CanvasBaseItem\";\nexport { analizePositionsExtensionProps } from \"./components/AdditionalPositionsExtension\";\nexport type {\n default as AdditionalPositionsExtension,\n AdditionalPositionsExtensionProps,\n} from \"./components/AdditionalPositionsExtension\";\nexport type { default as AnchorExtension, AnchorExtensionProps } from \"./components/AnchorExtension\";\nexport { default as Container } from \"./components/Container\";\nexport { default as ImageSprite } from \"./components/ImageSprite\";\nexport type { default as Layer } from \"./components/Layer\";\nexport { addListenerHandler } from \"./components/ListenerExtension\";\nexport type {\n default as ListenerExtension,\n ListenerExtensionMemory,\n OnEventsHandlers,\n} from \"./components/ListenerExtension\";\nexport { default as Sprite } from \"./components/Sprite\";\nexport { default as Text } from \"./components/Text\";\nexport {\n canvasComponentDecorator,\n default as RegisteredCanvasComponents,\n setMemoryContainer,\n} from \"./decorators/canvas-element-decorator\";\nexport { eventDecorator, default as RegisteredEvents } from \"./decorators/event-decorator\";\nexport { shakeEffect } from \"./functions/canvas-effect\";\nexport { CanvasPropertyUtility } from \"./functions/canvas-property-utility\";\nexport {\n moveIn,\n moveOut,\n pushIn,\n pushOut,\n removeWithDissolve,\n removeWithFade,\n showWithDissolve,\n showWithFade,\n zoomIn,\n zoomOut,\n} from \"./functions/canvas-transition\";\nexport { drawCanvasErrorHandler } from \"./functions/error-handler\";\nexport { addImageCointainer, showImageContainer } from \"./functions/image-container-utility\";\nexport { addImage, showImage } from \"./functions/image-utility\";\nexport { showText } from \"./functions/text-utility\";\nexport { getTexture } from \"./functions/texture-utility\";\nexport { addVideo, showVideo } from \"./functions/video-utility\";\nexport type { default as AssetMemory } from \"./interfaces/AssetMemory\";\nexport type {\n ContainerOptions,\n ImageContainerOptions,\n ImageSpriteOptions,\n SpriteOptions,\n TextOptions,\n VideoSpriteOptions,\n} from \"./interfaces/canvas-options\";\nexport { type CanvasBaseInterface } from \"./interfaces/CanvasBaseInterface\";\nexport type { default as CanvasGameState } from \"./interfaces/CanvasGameState\";\nexport type { default as CanvasManagerInterface } from \"./interfaces/CanvasManagerInterface\";\nexport type { ShakeEffectProps } from \"./interfaces/effect-props\";\nexport type { default as CanvasBaseItemMemory } from \"./interfaces/memory/CanvasBaseItemMemory\";\nexport type { default as ContainerMemory } from \"./interfaces/memory/ContainerMemory\";\nexport type { default as ImageContainerMemory } from \"./interfaces/memory/ImageContainerMemory\";\nexport type { default as ImageSpriteMemory } from \"./interfaces/memory/ImageSpriteMemory\";\nexport type { SpriteBaseMemory, default as SpriteMemory } from \"./interfaces/memory/SpriteMemory\";\nexport type { default as TextMemory } from \"./interfaces/memory/TextMemory\";\nexport type { default as VideoSpriteMemory } from \"./interfaces/memory/VideoSpriteMemory\";\nexport type {\n MoveInOutProps,\n PushInOutProps,\n ShowWithDissolveTransitionProps,\n ShowWithFadeTransitionProps,\n ZoomInOutProps,\n} from \"./interfaces/transition-props\";\nexport * from \"./tickers\";\nexport type { default as ContainerChild } from \"./types/ContainerChild\";\nexport type { PauseType } from \"./types/PauseType\";\nexport type { RepeatType } from \"./types/RepeatType\";\n\nconst canvas: CanvasManagerInterface = new CanvasManager();\nCanvasUtilitiesStatic.init({\n getScreen: () => {\n return canvas.screen;\n },\n});\n\nGameUnifier.addOnPreContinue(async () => {\n try {\n // `reverse()` was previously used to ensure the most recently added\n // tickers are completed first (LIFO). Keep that semantic: process\n // newest tickers before older ones. Using `pop()` is more\n // performant and avoids creating/ mutating a reversed array.\n const tikers = CanvasManagerStatic._tickersToCompleteOnStepEnd.tikersIds;\n const stepAliases = CanvasManagerStatic._tickersToCompleteOnStepEnd.stepAlias;\n\n // Process `tikersIds` and `stepAlias` in parallel (separate async flows)\n // and wait for both to finish before clearing `_tickersToCompleteOnStepEnd`.\n const p1 = (async () => {\n while (tikers.length) {\n const { id } = tikers.pop() || {};\n id && (await canvas.forceCompletionOfTicker(id));\n }\n })();\n\n const p2 = (async () => {\n while (stepAliases.length) {\n const { alias, id } = stepAliases.pop() || {};\n alias && id && (await canvas.forceCompletionOfTicker(id, alias));\n }\n })();\n\n await Promise.all([p1, p2]);\n\n CanvasManagerStatic._tickersToCompleteOnStepEnd = { tikersIds: [], stepAlias: [] };\n } catch (e) {}\n});\n\nexport { canvas };\n"]}
|