"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ensurePNGIsNotTransparent = ensurePNGIsNotTransparent; function _fsExtra() { const data = _interopRequireDefault(require("fs-extra")); _fsExtra = function () { return data; }; return data; } function _pngjs() { const data = require("pngjs"); _pngjs = function () { return data; }; return data; } function _pick() { const data = _interopRequireDefault(require("lodash/pick")); _pick = function () { return data; }; return data; } function _xdl() { const data = require("@expo/xdl"); _xdl = function () { return data; }; return data; } function _request() { const data = _interopRequireDefault(require("request")); _request = function () { return data; }; return data; } function _validator() { const data = _interopRequireDefault(require("validator")); _validator = function () { return data; }; return data; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } async function ensurePNGIsNotTransparent(imagePathOrURL) { let hasAlreadyResolved = false; const stream = _validator().default.isURL(imagePathOrURL, { protocols: ['http', 'https'], require_protocol: true }) ? (0, _request().default)(imagePathOrURL) : _fsExtra().default.createReadStream(imagePathOrURL); return new Promise((res, rej) => { stream.pipe(new (_pngjs().PNG)({ filterType: 4 })).on('metadata', ({ alpha }) => { if (!alpha) { hasAlreadyResolved = true; stream.close(); res(); } }).on('parsed', function () { if (hasAlreadyResolved) { return; } try { validateAlphaChannelIsEmpty(this.data, (0, _pick().default)(this, ['width', 'height'])); res(); } catch (err) { rej(err); } }).on('error', err => rej(err)); }); } function validateAlphaChannelIsEmpty(data, { width, height }) { for (let y = 0; y < height; y++) { for (let x = 0; x < width; x++) { let idx = (width * y + x) * 4; if (data[idx + 3] !== 255) { throw new (_xdl().XDLError)('INVALID_ASSETS', `Your application icon can't have transparency if you wish to upload your app to Apple Store.`); } } } } //# sourceMappingURL=../../../../__sourcemaps__/commands/build/ios/utils/image.js.map