{"version":3,"sources":["jsdelivr-header.js","/npm/@masknet/stego-js@0.15.1/esm/dom.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,OCNS,cAAiB,2BACjB,iBAAoB,2BACpB,oBAAuB,0BACvB,iBAAoB,0BACpB,KAAK,yBACL,KAAK,uBACP,MAAM,OAAE,OAAM,OAAE,QAAW,UAAU,CACxC,YAAY,GACD,IAAI,SAAS,IAChB,MAAM,EAAO,IAAI,WAAW,GACtB,EAAO,aAAa,GAE1B,EAAQ,aADK,IAAI,KAAK,CAAC,GAAO,CAAE,UACL,IAGnC,WAAM,CAAM,EAAS,EAAS,EAAQ,OAAQ,EAAQ,EAAQ,OAC1D,MAAM,EAAS,aAAa,EAAO,GAGnC,OAFgB,EAAO,WAAW,MAC1B,aAAa,EAAS,EAAG,EAAG,EAAG,EAAG,EAAO,GAC7C,kBAAkB,GACX,EAAO,cAAc,CAAE,KAAM,cAAe,KAAK,cAGjD,IAAI,SAAQ,CAAC,EAAS,KACzB,EAAO,QAAQ,IACP,EACA,EAAQ,aAAa,IAErB,EAAO,IAAI,MAAM,0BAA0B,GAChD,YAAY,GAG3B,EACA,gBAAgB,GACL,gBAAgB,GAAM,CAAC,EAAG,IAAM,aAAa,EAAG,GAAG,WAAW,OAAO,gBAAgB,EAAG,IAAM,OAEzG,oBAAoB,GACT,OAAO,gBAAgB,KAGtC,eAAe,aAAa,GACxB,MAAM,QAAe,EAAK,cAC1B,OAAO,IAAI,WAAW,EAC1B,CACA,SAAS,aAAa,EAAO,GACzB,IAAI,EASJ,MAR+B,mBAApB,gBACP,EAAS,IAAI,gBAAgB,EAAO,IAGpC,EAAS,SAAS,cAAc,UAChC,EAAO,MAAQ,EACf,EAAO,OAAS,GAEb,CACX,CACA,eAAe,aAAa,GACxB,IAAI,EAAO,EACP,EACJ,GAAiC,mBAAtB,kBACP,QAAc,kBAAkB,GAChC,EAAQ,EAAM,MACd,EAAS,EAAM,WAEd,CACD,MAAM,EAAM,IAAI,gBAAgB,GAChC,QAAc,IAAI,SAAQ,CAAC,EAAS,KAChC,MAAM,EAAU,IAAI,MACpB,EAAQ,iBAAiB,QAAQ,KAC7B,EAAQ,EAAQ,MAChB,EAAS,EAAQ,OACjB,EAAQ,EAAQ,IAEpB,EAAQ,iBAAiB,QAAS,GAClC,EAAQ,IAAM,CAAG,IAClB,SAAQ,IAAM,IAAI,gBAAgB,IACzC,CACA,MACM,EADS,aAAa,EAAO,GAChB,WAAW,MAE9B,OADA,EAAI,UAAU,EAAO,EAAG,GACjB,EAAI,aAAa,EAAG,EAAG,EAAO,EACzC,CACA,SAAS,kBAAkB,GACvB,MAAkC,mBAApB,iBAAkC,aAAiB,eACrE","file":"/npm/@masknet/stego-js@0.15.1/esm/dom.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@masknet/stego-js@0.15.1/esm/dom.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { createAPI } from './utils/expose.js';\nimport { getImageType } from './utils/helper.js';\nimport { preprocessImage } from './utils/image.js';\nexport { getImageType } from './utils/helper.js';\nexport * from './utils/types.js';\nexport * from './constant.js';\nexport const { encode, decode } = createAPI({\n    toImageData(_data) {\n        return new Promise((resolve) => {\n            const data = new Uint8Array(_data);\n            const type = getImageType(data);\n            const blob = new Blob([data], { type });\n            resolve(getImageData(blob));\n        });\n    },\n    async toPNG(imgData, height = imgData.height, width = imgData.width) {\n        const canvas = createCanvas(width, height);\n        const context = canvas.getContext('2d');\n        context.putImageData(imgData, 0, 0, 0, 0, width, height);\n        if (isOffscreenCanvas(canvas)) {\n            return canvas.convertToBlob({ type: 'image/png' }).then(toUint8Array);\n        }\n        else {\n            return new Promise((resolve, reject) => {\n                canvas.toBlob((blob) => {\n                    if (blob)\n                        resolve(toUint8Array(blob));\n                    else\n                        reject(new Error('fail to convert to png'));\n                }, 'image/png');\n            });\n        }\n    },\n    preprocessImage(data) {\n        return preprocessImage(data, (w, h) => createCanvas(w, h).getContext('2d')?.createImageData(w, h) ?? null);\n    },\n    defaultRandomSource(buffer) {\n        return crypto.getRandomValues(buffer);\n    },\n});\nasync function toUint8Array(blob) {\n    const buffer = await blob.arrayBuffer();\n    return new Uint8Array(buffer);\n}\nfunction createCanvas(width, height) {\n    let canvas;\n    if (typeof OffscreenCanvas === 'function') {\n        canvas = new OffscreenCanvas(width, height);\n    }\n    else {\n        canvas = document.createElement('canvas');\n        canvas.width = width;\n        canvas.height = height;\n    }\n    return canvas;\n}\nasync function getImageData(imageBlob) {\n    let width, height;\n    let image;\n    if (typeof createImageBitmap === 'function') {\n        image = await createImageBitmap(imageBlob);\n        width = image.width;\n        height = image.height;\n    }\n    else {\n        const url = URL.createObjectURL(imageBlob);\n        image = await new Promise((resolve, reject) => {\n            const element = new Image();\n            element.addEventListener('load', () => {\n                width = element.width;\n                height = element.height;\n                resolve(element);\n            });\n            element.addEventListener('error', reject);\n            element.src = url;\n        }).finally(() => URL.revokeObjectURL(url));\n    }\n    const canvas = createCanvas(width, height);\n    const ctx = canvas.getContext('2d');\n    ctx.drawImage(image, 0, 0);\n    return ctx.getImageData(0, 0, width, height);\n}\nfunction isOffscreenCanvas(value) {\n    return typeof OffscreenCanvas === 'function' && value instanceof OffscreenCanvas;\n}\n"]}