{"version":3,"file":"skeletonLoader.mjs","sources":["../../src/assets/skeletonLoader.ts"],"sourcesContent":["/** ****************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\n\nimport {\n    type AssetExtension,\n    checkExtension,\n    DOMAdapter,\n    extensions,\n    ExtensionType,\n    LoaderParserPriority,\n    ResolvedAsset\n} from 'pixi.js';\n\ntype SkeletonJsonAsset = any;\ntype SkeletonBinaryAsset = Uint8Array;\n\nfunction isJson(resource: any): resource is SkeletonJsonAsset\n{\n    return Object.prototype.hasOwnProperty.call(resource, 'bones');\n}\n\nfunction isBuffer(resource: any): resource is SkeletonBinaryAsset\n{\n    return resource instanceof Uint8Array;\n}\n\nconst spineLoaderExtension: AssetExtension<SkeletonJsonAsset | SkeletonBinaryAsset> = {\n    extension: ExtensionType.Asset,\n\n    loader: {\n        extension: {\n            type: ExtensionType.LoadParser,\n            priority: LoaderParserPriority.Normal,\n            name: 'spineSkeletonLoader',\n        },\n\n        test(url)\n        {\n            return checkExtension(url, '.skel');\n        },\n\n        async load(url: string): Promise<SkeletonBinaryAsset>\n        {\n            const response = await DOMAdapter.get().fetch(url);\n\n            const buffer = new Uint8Array(await response.arrayBuffer());\n\n            return buffer;\n        },\n        testParse(asset: unknown, options: ResolvedAsset): Promise<boolean>\n        {\n            const isJsonSpineModel = checkExtension(options.src, '.json') && isJson(asset);\n            const isBinarySpineModel = checkExtension(options.src, '.skel') && isBuffer(asset);\n\n            return Promise.resolve(isJsonSpineModel || isBinarySpineModel);\n        },\n    },\n} as AssetExtension<SkeletonJsonAsset | SkeletonBinaryAsset>;\n\nextensions.add(spineLoaderExtension);\n"],"names":[],"mappings":";;AA0CA,SAAS,OAAO,QAChB,EAAA;AACI,EAAA,OAAO,MAAO,CAAA,SAAA,CAAU,cAAe,CAAA,IAAA,CAAK,UAAU,OAAO,CAAA,CAAA;AACjE,CAAA;AAEA,SAAS,SAAS,QAClB,EAAA;AACI,EAAA,OAAO,QAAoB,YAAA,UAAA,CAAA;AAC/B,CAAA;AAEA,MAAM,oBAAgF,GAAA;AAAA,EAClF,WAAW,aAAc,CAAA,KAAA;AAAA,EAEzB,MAAQ,EAAA;AAAA,IACJ,SAAW,EAAA;AAAA,MACP,MAAM,aAAc,CAAA,UAAA;AAAA,MACpB,UAAU,oBAAqB,CAAA,MAAA;AAAA,MAC/B,IAAM,EAAA,qBAAA;AAAA,KACV;AAAA,IAEA,KAAK,GACL,EAAA;AACI,MAAO,OAAA,cAAA,CAAe,KAAK,OAAO,CAAA,CAAA;AAAA,KACtC;AAAA,IAEA,MAAM,KAAK,GACX,EAAA;AACI,MAAA,MAAM,WAAW,MAAM,UAAA,CAAW,GAAI,EAAA,CAAE,MAAM,GAAG,CAAA,CAAA;AAEjD,MAAA,MAAM,SAAS,IAAI,UAAA,CAAW,MAAM,QAAA,CAAS,aAAa,CAAA,CAAA;AAE1D,MAAO,OAAA,MAAA,CAAA;AAAA,KACX;AAAA,IACA,SAAA,CAAU,OAAgB,OAC1B,EAAA;AACI,MAAA,MAAM,mBAAmB,cAAe,CAAA,OAAA,CAAQ,KAAK,OAAO,CAAA,IAAK,OAAO,KAAK,CAAA,CAAA;AAC7E,MAAA,MAAM,qBAAqB,cAAe,CAAA,OAAA,CAAQ,KAAK,OAAO,CAAA,IAAK,SAAS,KAAK,CAAA,CAAA;AAEjF,MAAO,OAAA,OAAA,CAAQ,OAAQ,CAAA,gBAAA,IAAoB,kBAAkB,CAAA,CAAA;AAAA,KACjE;AAAA,GACJ;AACJ,CAAA,CAAA;AAEA,UAAA,CAAW,IAAI,oBAAoB,CAAA"}