{"version":3,"sources":["../src/vite-listener/plugins.ts"],"names":["isViteDevelopmentMode","setupPixivnViteData","characters","RegisteredCharacters","labels","RegisteredLabels","assetMap","PIXI","bundles","manifest","bundleName","assets","res","asset","existing","options","canvas"],"mappings":"uOAUA,SAASA,CAAAA,EAAiC,CACtC,GAAI,CAGA,OAAO,IAAI,QAAA,CACP,6GACJ,CAAA,EACJ,CAAA,KAAQ,CACJ,OAAO,MACX,CACJ,CAOO,SAASC,CAAAA,EAAsB,CAElC,GAAKD,CAAAA,EAAsB,CAI3B,CAAA,GAAI,CACA,IAAME,CAAAA,CAAaC,oBAAAA,CAAqB,MAAA,EAAO,CAC/C,KAAA,CAAM,sBAAuB,CACzB,MAAA,CAAQ,MAAA,CACR,OAAA,CAAS,CAAE,cAAA,CAAgB,kBAAmB,CAAA,CAC9C,IAAA,CAAM,KAAK,SAAA,CAAUD,CAAU,CACnC,CAAC,EACL,CAAA,KAAY,CAAC,CACb,GAAI,CACA,IAAME,CAAAA,CAASC,gBAAAA,CAAiB,IAAA,EAAK,CACrC,KAAA,CAAM,kBAAmB,CACrB,MAAA,CAAQ,MAAA,CACR,OAAA,CAAS,CAAE,cAAA,CAAgB,kBAAmB,CAAA,CAC9C,IAAA,CAAM,IAAA,CAAK,SAAA,CAAUD,CAAM,CAC/B,CAAC,EACL,CAAA,KAAY,CAAC,CACb,GAAI,CACA,IAAME,CAAAA,CAAWC,CAAAA,CAAK,MAAA,CAAO,QAAA,CAAS,SAAA,CAChCC,CAAAA,CAAuCD,EAAK,MAAA,CAAO,QAAA,CAAS,QAAA,CAC5DE,CAAAA,CAA2B,CAC7B,OAAA,CAAS,EACb,CAAA,CACA,OAAO,OAAA,CAAQD,CAAO,EAAE,OAAA,CAAQ,CAAC,CAACE,CAAAA,CAAYC,CAAM,CAAA,GAAM,CACtD,IAAIC,CAAAA,CAAyB,EAAC,CAC9BD,CAAAA,CAAO,OAAA,CAASE,GAAU,CACtB,GAAIP,CAAAA,CAASO,CAAK,CAAA,CAAG,CACjB,IAAMC,CAAAA,CAAWR,CAAAA,CAASO,CAAK,CAAA,CAC/BD,CAAAA,CAAM,CAAC,GAAGA,CAAAA,CAAK,GAAGE,CAAQ,EAC9B,CACJ,CAAC,EACDL,CAAAA,CAAS,OAAA,CAAQ,IAAA,CAAK,CAClB,IAAA,CAAMC,CAAAA,CACN,OAAQE,CACZ,CAAC,EACL,CAAC,CAAA,CACD,KAAA,CAAM,2BAA4B,CAC9B,MAAA,CAAQ,MAAA,CACR,OAAA,CAAS,CAAE,cAAA,CAAgB,kBAAmB,CAAA,CAC9C,IAAA,CAAM,IAAA,CAAK,SAAA,CAAUH,CAAQ,CACjC,CAAC,EACL,CAAA,KAAY,CAAC,CACb,GAAI,CACA,IAAMM,CAAAA,CAAuC,CACzC,MAAA,CAAQC,MAAAA,CAAO,GAAA,CAAI,MAAA,CAAO,OAC1B,KAAA,CAAOA,MAAAA,CAAO,GAAA,CAAI,MAAA,CAAO,KAC7B,CAAA,CACA,MAAM,yBAAA,CAA2B,CAC7B,MAAA,CAAQ,MAAA,CACR,OAAA,CAAS,CAAE,eAAgB,kBAAmB,CAAA,CAC9C,IAAA,CAAM,IAAA,CAAK,SAAA,CAAUD,CAAO,CAChC,CAAC,EACL,CAAA,KAAY,CAAC,CAAA,CACjB","file":"vite-listener.mjs","sourcesContent":["import { canvas } from \"@drincs/pixi-vn/canvas\";\nimport { RegisteredCharacters } from \"@drincs/pixi-vn/characters\";\nimport { RegisteredLabels } from \"@drincs/pixi-vn/narration\";\nimport type { ApplicationOptions, AssetsManifest, UnresolvedAsset } from \"@drincs/pixi-vn/pixi.js\";\nimport { default as PIXI } from \"@drincs/pixi-vn/pixi.js\";\n\n/**\n * Checks if the code is running in Vite development mode.\n * Uses indirect access to avoid TypeScript compilation issues with import.meta in commonjs modules.\n */\nfunction isViteDevelopmentMode(): boolean {\n    try {\n        // Use Function constructor to indirectly access import.meta at runtime\n        // This avoids direct eval while still bypassing TypeScript's static analysis\n        return new Function(\n            'return typeof import !== \"undefined\" && typeof import.meta !== \"undefined\" && import.meta.env?.DEV === true',\n        )();\n    } catch {\n        return false;\n    }\n}\n\n/**\n * Function that setup the pixivn vite data.\n * This function should be called in the client side, after the RegisteredCharacters and RegisteredLabels are populated.\n * **Note:** This function only runs in development mode and does nothing in production.\n */\nexport function setupPixivnViteData() {\n    // Only run in development mode\n    if (!isViteDevelopmentMode()) {\n        return;\n    }\n\n    try {\n        const characters = RegisteredCharacters.values();\n        fetch(\"/pixi-vn/characters\", {\n            method: \"POST\",\n            headers: { \"Content-Type\": \"application/json\" },\n            body: JSON.stringify(characters),\n        });\n    } catch (e) {}\n    try {\n        const labels = RegisteredLabels.keys();\n        fetch(\"/pixi-vn/labels\", {\n            method: \"POST\",\n            headers: { \"Content-Type\": \"application/json\" },\n            body: JSON.stringify(labels),\n        });\n    } catch (e) {}\n    try {\n        const assetMap = PIXI.Assets.resolver[\"_assetMap\"];\n        const bundles: { [key: string]: string[] } = PIXI.Assets.resolver[\"_bundles\"];\n        const manifest: AssetsManifest = {\n            bundles: [],\n        };\n        Object.entries(bundles).forEach(([bundleName, assets]) => {\n            let res: UnresolvedAsset[] = [];\n            assets.forEach((asset) => {\n                if (assetMap[asset]) {\n                    const existing = assetMap[asset];\n                    res = [...res, ...existing];\n                }\n            });\n            manifest.bundles.push({\n                name: bundleName,\n                assets: res,\n            });\n        });\n        fetch(\"/pixi-vn/assets/manifest\", {\n            method: \"POST\",\n            headers: { \"Content-Type\": \"application/json\" },\n            body: JSON.stringify(manifest),\n        });\n    } catch (e) {}\n    try {\n        const options: Partial<ApplicationOptions> = {\n            height: canvas.app.screen.height,\n            width: canvas.app.screen.width,\n        };\n        fetch(\"/pixi-vn/canvas/options\", {\n            method: \"POST\",\n            headers: { \"Content-Type\": \"application/json\" },\n            body: JSON.stringify(options),\n        });\n    } catch (e) {}\n}\n"]}