{"version":3,"file":"index.mjs","sources":["../../src/bun/index.ts"],"sourcesContent":["/** @ts-ignore */\nimport { dlopen, FFIType, ptr, JSCallback, toArrayBuffer } from 'bun:ffi';\nimport path from 'path';\nimport { FontSplitProps } from '../interface.js';\nimport { getBinName, matchPlatform } from '../load.js';\nimport { isMusl } from '../node/isMusl.js';\nimport { createAPI } from '../createAPI.js';\nexport * from '../interface.js';\nexport * from '../createAPI.js';\n\nlet binPath = process.env.CN_FONT_SPLIT_BIN;\nif (!binPath) {\n    binPath = path.resolve(\n        __dirname,\n        '../' +\n            getBinName(matchPlatform(process.platform, process.arch, isMusl)),\n    );\n    // console.log(binPath);\n    // throw new Error('CN_FONT_SPLIT_BIN is undefined!');\n}\nconst {\n    symbols: { font_split },\n    close,\n} = dlopen(binPath, {\n    font_split: {\n        args: [FFIType.ptr, FFIType.usize, FFIType.callback],\n        returns: FFIType.void,\n    },\n});\nconst createCallback = (cb: (data: Uint8Array) => void) =>\n    new JSCallback(\n        (ptr: any, length: BigInt) => {\n            const data = new Uint8Array(\n                toArrayBuffer(ptr, 0, Number(length)).slice(),\n                0,\n                Number(length),\n            );\n            cb(data);\n        },\n        {\n            returns: FFIType.void,\n            args: [FFIType.ptr, FFIType.usize],\n        },\n    ).ptr;\nexport const fontSplit = createAPI((buffer, length, cb) => {\n    return font_split(ptr(buffer), length, cb);\n}, createCallback);\n"],"names":["binPath","path","getBinName","matchPlatform","isMusl","font_split","close","dlopen","FFIType","createCallback","cb","JSCallback","ptr","length","data","toArrayBuffer","fontSplit","createAPI","buffer"],"mappings":";;;;;;;AAUA,IAAIA,IAAU,QAAQ,IAAI;AACrBA,MACDA,IAAUC,EAAK;AAAA,EACX;AAAA,EACA,QACIC,EAAWC,EAAc,QAAQ,UAAU,QAAQ,MAAMC,CAAM,CAAC;AACxE;AAIJ,MAAM;AAAA,EACF,SAAS,EAAE,YAAAC,EAAW;AAAA,EACtB,OAAAC;AACJ,IAAIC,EAAOP,GAAS;AAAA,EAChB,YAAY;AAAA,IACR,MAAM,CAACQ,EAAQ,KAAKA,EAAQ,OAAOA,EAAQ,QAAQ;AAAA,IACnD,SAASA,EAAQ;AAAA,EAAA;AAEzB,CAAC,GACKC,IAAiB,CAACC,MACpB,IAAIC;AAAA,EACA,CAACC,GAAUC,MAAmB;AAC1B,UAAMC,IAAO,IAAI;AAAA,MACbC,EAAcH,GAAK,GAAG,OAAOC,CAAM,CAAC,EAAE,MAAM;AAAA,MAC5C;AAAA,MACA,OAAOA,CAAM;AAAA,IACjB;AACA,IAAAH,EAAGI,CAAI;AAAA,EACX;AAAA,EACA;AAAA,IACI,SAASN,EAAQ;AAAA,IACjB,MAAM,CAACA,EAAQ,KAAKA,EAAQ,KAAK;AAAA,EAAA;AAEzC,EAAE,KACOQ,IAAYC,EAAU,CAACC,GAAQL,GAAQH,MACzCL,EAAWO,EAAIM,CAAM,GAAGL,GAAQH,CAAE,GAC1CD,CAAc;"}