{"version":3,"file":"load.mjs","sources":["../src/load.ts"],"sourcesContent":["export const matchPlatform = (\n    platform: string,\n    arch: string,\n    isMusl: () => boolean,\n): string => {\n    const platformArchMap: { [key: string]: { [key: string]: string | null } } =\n        {\n            android: {\n                arm64: null,\n                arm: null,\n            },\n            win32: {\n                x64: 'x86_64-pc-windows-msvc',\n                arm64: 'aarch64-pc-windows-msvc',\n            },\n            darwin: {\n                x64: 'x86_64-apple-darwin',\n                arm64: 'aarch64-apple-darwin',\n            },\n            freebsd: {\n                x64: 'x86_64-unknown-freebsd',\n            },\n            linux: {\n                x64: isMusl() ? null : 'x86_64-unknown-linux-gnu',\n                arm64: isMusl() ? null : 'aarch64-unknown-linux-gnu',\n                arm: null,\n                riscv64: isMusl() ? null : 'riscv64gc-unknown-linux-gnu',\n                s390x: 's390x-unknown-linux-gnu',\n            },\n        };\n    return platformArchMap?.[platform]?.[arch] ?? 'wasm32-wasip1';\n};\n\nexport const getBinaryFile = async (\n    platform: string,\n    version: string,\n    proxy = 'https://github.com',\n) => {\n    const fileName = getBinName(platform);\n    console.log(`using gh proxy ${proxy}`);\n    const binary = await fetch(\n        proxy +\n            `/KonghaYao/cn-font-split/releases/download/${version}/${fileName}`,\n    ).then((res) => {\n        if (res.ok) return res.arrayBuffer();\n        throw new Error('download error');\n    });\n    return binary;\n};\n\ninterface Release {\n    id: number;\n    tag: string;\n    author: string;\n    name: string;\n    draft: boolean;\n    prerelease: boolean;\n    createdAt: string;\n    publishedAt: string;\n    markdown: string;\n    html: string;\n}\n\n/** 直接拿最后一个版本的信息 */\nexport const getLatestVersion = async () => {\n    const data: {\n        release: Release;\n    } = await fetch(\n        `https://ungh.cc/repos/KonghaYao/cn-font-split/releases/latest`,\n    ).then((res) => res.json());\n    return data.release;\n};\nexport const getVersionBinary = async (\n    v = 'latest',\n): Promise<Release | undefined> => {\n    if (v === 'latest') return getLatestVersion();\n    const versions = await getAllVersions();\n    return versions.find((i: any) => i.tag === v);\n};\nexport const getAllVersions = async (): Promise<Release[]> => {\n    const { releases } = await fetch(\n        'https://ungh.cc/repos/KonghaYao/cn-font-split/releases',\n    ).then((res) => res.json());\n    return releases;\n};\n\nexport function getBinName(platform: string) {\n    const ext = platform.includes('windows')\n        ? 'dll'\n        : platform.includes('darwin')\n        ? 'dylib'\n        : platform.includes('wasm')\n        ? 'wasm'\n        : 'so';\n    const fileName = `libffi-${platform}.${ext}`;\n    return fileName;\n}\n"],"names":["matchPlatform","platform","arch","isMusl","getBinName","ext"],"mappings":"AAAO,MAAMA,IAAgB,CACzBC,GACAC,GACAC,OAGI;AAAA,EACI,SAAS;AAAA,IACL,OAAO;AAAA,IACP,KAAK;AAAA,EACT;AAAA,EACA,OAAO;AAAA,IACH,KAAK;AAAA,IACL,OAAO;AAAA,EACX;AAAA,EACA,QAAQ;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,EACX;AAAA,EACA,SAAS;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA,OAAO;AAAA,IACH,KAAKA,MAAW,OAAO;AAAA,IACvB,OAAOA,MAAW,OAAO;AAAA,IACzB,KAAK;AAAA,IACL,SAASA,MAAW,OAAO;AAAA,IAC3B,OAAO;AAAA,EAAA;AAEf,KACqBF,CAAQ,IAAIC,CAAI,KAAK;AAwD3C,SAASE,EAAWH,GAAkB;AACzC,QAAMI,IAAMJ,EAAS,SAAS,SAAS,IACjC,QACAA,EAAS,SAAS,QAAQ,IAC1B,UACAA,EAAS,SAAS,MAAM,IACxB,SACA;AAEC,SADU,UAAUA,CAAQ,IAAII,CAAG;AAE9C;"}