{"version":3,"file":"adapter.mjs","sources":["../../src/adapter/adapter.ts"],"sourcesContent":["import canvasModule from 'canvas';\nimport { fetch, Request, Response } from 'cross-fetch';\nimport fs from 'fs';\nimport { WebGLRenderingContext } from 'gl';\nimport { settings, utils } from 'pixijs/core';\nimport { NodeCanvasElement } from './NodeCanvasElement';\nimport { DOMParser } from '@xmldom/xmldom';\n\nimport type { IAdapter } from 'pixijs/core';\n\nexport const NodeAdapter = {\n    /**\n     * Creates a canvas element of the given size.\n     * This canvas is created using the node-canvas package and uses the gl package to create a webgl context.\n     * @param width - width of the canvas\n     * @param height - height of the canvas\n     */\n    createCanvas: (width?: number, height?: number) => new NodeCanvasElement(width, height),\n    getCanvasRenderingContext2D: () => canvasModule.CanvasRenderingContext2D,\n    /** Returns a WebGL rendering context using the gl package. */\n    getWebGLRenderingContext: () => WebGLRenderingContext,\n    /** Returns the fake user agent string of `node` */\n    getNavigator: () => ({ userAgent: 'node' }),\n    /** Returns the path from which the process is being run */\n    getBaseUrl: () => process.cwd(),\n    getFontFaceSet: () => null,\n    fetch: (url: RequestInfo, options?: RequestInit) =>\n    {\n        const request = new Request(url, options);\n\n        // Check if urls starts with http(s) as only these are supported by node-fetch\n        if (utils.path.isUrl(request.url))\n        {\n            return fetch(url, request);\n        }\n\n        return new Promise((resolve, reject) =>\n        {\n            // Request transforms paths and encodeURIs, but for filesystem requests,\n            // it's better to use the raw string (path).\n            // If url is a request instead, decode the URI before trying to access the file\n            const rawPath = typeof url === 'string' ? url : decodeURI(request.url);\n\n            // Normalize the path\n            const filePath = utils.path.normalize(rawPath);\n\n            if (!fs.existsSync(filePath))\n            {\n                reject(`File not found: ${filePath}`);\n            }\n            const readStream = fs.createReadStream(filePath);\n\n            readStream.on('open', () =>\n            {\n                resolve(new Response(readStream as unknown as ReadableStream, {\n                    url: request.url,\n                    status: 200,\n                    statusText: 'OK',\n                    size: fs.statSync(filePath).size,\n                    timeout: (request as any).timeout,\n                } as ResponseInit));\n            });\n        });\n    },\n    parseXML: (xml: string) =>\n    {\n        const parser = new DOMParser();\n\n        return parser.parseFromString(xml, 'text/xml');\n    },\n} as IAdapter;\n\nsettings.ADAPTER = NodeAdapter;\n\nexport { settings };\n"],"names":[],"mappings":";;;;;;;;;AAUO,MAAM,WAAc,GAAA;AAAA,EAOvB,cAAc,CAAC,KAAA,EAAgB,WAAoB,IAAI,iBAAA,CAAkB,OAAO,MAAM,CAAA;AAAA,EACtF,2BAAA,EAA6B,MAAM,YAAa,CAAA,wBAAA;AAAA,EAEhD,0BAA0B,MAAM,qBAAA;AAAA,EAEhC,YAAc,EAAA,OAAS,EAAA,SAAA,EAAW,MAAO,EAAA,CAAA;AAAA,EAEzC,UAAA,EAAY,MAAM,OAAA,CAAQ,GAAI,EAAA;AAAA,EAC9B,gBAAgB,MAAM,IAAA;AAAA,EACtB,KAAA,EAAO,CAAC,GAAA,EAAkB,OAC1B,KAAA;AACI,IAAA,MAAM,OAAU,GAAA,IAAI,OAAQ,CAAA,GAAA,EAAK,OAAO,CAAA,CAAA;AAGxC,IAAA,IAAI,KAAM,CAAA,IAAA,CAAK,KAAM,CAAA,OAAA,CAAQ,GAAG,CAChC,EAAA;AACI,MAAO,OAAA,KAAA,CAAM,KAAK,OAAO,CAAA,CAAA;AAAA,KAC7B;AAEA,IAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAC7B,KAAA;AAII,MAAA,MAAM,UAAU,OAAO,GAAA,KAAQ,WAAW,GAAM,GAAA,SAAA,CAAU,QAAQ,GAAG,CAAA,CAAA;AAGrE,MAAA,MAAM,QAAW,GAAA,KAAA,CAAM,IAAK,CAAA,SAAA,CAAU,OAAO,CAAA,CAAA;AAE7C,MAAA,IAAI,CAAC,EAAA,CAAG,UAAW,CAAA,QAAQ,CAC3B,EAAA;AACI,QAAA,MAAA,CAAO,mBAAmB,QAAU,CAAA,CAAA,CAAA,CAAA;AAAA,OACxC;AACA,MAAM,MAAA,UAAA,GAAa,EAAG,CAAA,gBAAA,CAAiB,QAAQ,CAAA,CAAA;AAE/C,MAAW,UAAA,CAAA,EAAA,CAAG,QAAQ,MACtB;AACI,QAAQ,OAAA,CAAA,IAAI,SAAS,UAAyC,EAAA;AAAA,UAC1D,KAAK,OAAQ,CAAA,GAAA;AAAA,UACb,MAAQ,EAAA,GAAA;AAAA,UACR,UAAY,EAAA,IAAA;AAAA,UACZ,IAAM,EAAA,EAAA,CAAG,QAAS,CAAA,QAAQ,CAAE,CAAA,IAAA;AAAA,UAC5B,SAAU,OAAgB,CAAA,OAAA;AAAA,SACb,CAAC,CAAA,CAAA;AAAA,OACrB,CAAA,CAAA;AAAA,KACJ,CAAA,CAAA;AAAA,GACL;AAAA,EACA,QAAA,EAAU,CAAC,GACX,KAAA;AACI,IAAM,MAAA,MAAA,GAAS,IAAI,SAAU,EAAA,CAAA;AAE7B,IAAO,OAAA,MAAA,CAAO,eAAgB,CAAA,GAAA,EAAK,UAAU,CAAA,CAAA;AAAA,GACjD;AACJ,EAAA;AAEA,QAAA,CAAS,OAAU,GAAA,WAAA;;;;"}