{"dependencies":[{"name":"./errors","data":{"asyncType":null,"isESMImport":true,"locs":[{"start":{"line":7,"column":0,"index":173},"end":{"line":7,"column":44,"index":217}}],"key":"rEld05quROH+iA6QLT6kkvqJ/qc=","exportNames":["*"],"imports":1}},{"name":"./fetchAsync","data":{"asyncType":null,"isESMImport":true,"locs":[{"start":{"line":8,"column":0,"index":218},"end":{"line":8,"column":42,"index":260}}],"key":"GJrX1EMy+DxI7FSLX0wJbybQg2o=","exportNames":["*"],"imports":1}}],"output":[{"data":{"code":"__d(function (global, require, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) {\n \"use strict\";\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n exports.fetchThenEvalAsync = fetchThenEvalAsync;\n var _errors = require(_dependencyMap[0], \"./errors\");\n var _fetchAsync = require(_dependencyMap[1], \"./fetchAsync\");\n /**\n * Copyright © 2022 650 Industries.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n /**\n * Load a bundle for a URL using fetch + eval on native and script tag injection on web.\n *\n * @param url Given a statement like `import('./Bacon')` `bundlePath` would be `Bacon`.\n */\n function fetchThenEvalAsync(url) {\n return (0, _fetchAsync.fetchAsync)(url).then(({\n body,\n status,\n headers\n }) => {\n if (headers?.has?.('Content-Type') != null && headers.get('Content-Type').includes('application/json')) {\n // Errors are returned as JSON.\n throw new Error(JSON.parse(body).message || `Unknown error fetching '${url}'`);\n }\n if (status === 200) {\n // eslint-disable-next-line no-eval\n return eval(body);\n } else {\n // Format Metro errors if possible.\n if (\"development\" === 'development') {\n // body can be an error from Metro if a module is missing.\n // {\"originModulePath\":\"/Users/evanbacon/Documents/GitHub/expo/.\",\"targetModuleName\":\"./http://localhost:8081/node_modules/react-native/index.js\",\"message\":\"...\"}\n const error = jsonParseOptional(body);\n if (error) {\n // TODO: This is essentially like the Metro native red box errors. We should do a better job formatting them so\n // the user experience doesn't feel bad. This can be tested by loading a split bundle that results in a missing module error from Metro.\n throw new _errors.MetroServerError(error, url);\n }\n }\n throw new Error(`Failed to load split bundle from URL: ${url}\\n${body}`);\n }\n });\n }\n function jsonParseOptional(json) {\n try {\n return JSON.parse(json);\n } catch {\n return null;\n }\n }\n});","lineCount":58,"map":[[7,2,14,0,"exports"],[7,9,14,0],[7,10,14,0,"fetchThenEvalAsync"],[7,28,14,0],[7,31,14,0,"fetchThenEvalAsync"],[7,49,14,0],[8,2,7,0],[8,6,7,0,"_errors"],[8,13,7,0],[8,16,7,0,"require"],[8,23,7,0],[8,24,7,0,"_dependencyMap"],[8,38,7,0],[9,2,8,0],[9,6,8,0,"_fetchAsync"],[9,17,8,0],[9,20,8,0,"require"],[9,27,8,0],[9,28,8,0,"_dependencyMap"],[9,42,8,0],[10,2,1,0],[11,0,2,0],[12,0,3,0],[13,0,4,0],[14,0,5,0],[15,0,6,0],[17,2,9,0],[18,0,10,0],[19,0,11,0],[20,0,12,0],[21,0,13,0],[22,2,14,7],[22,11,14,16,"fetchThenEvalAsync"],[22,29,14,34,"fetchThenEvalAsync"],[22,30,14,35,"url"],[22,33,14,46],[22,35,14,63],[23,4,15,2],[23,11,15,9],[23,15,15,9,"fetchAsync"],[23,26,15,19],[23,27,15,19,"fetchAsync"],[23,37,15,19],[23,39,15,20,"url"],[23,42,15,23],[23,43,15,24],[23,44,15,25,"then"],[23,48,15,29],[23,49,15,30],[23,50,15,31],[24,6,15,33,"body"],[24,10,15,37],[25,6,15,39,"status"],[25,12,15,45],[26,6,15,47,"headers"],[27,4,15,55],[27,5,15,56],[27,10,15,61],[28,6,16,4],[28,10,17,6,"headers"],[28,17,17,13],[28,19,17,15,"has"],[28,22,17,18],[28,25,17,21],[28,39,17,35],[28,40,17,36],[28,44,17,40],[28,48,17,44],[28,52,18,6,"headers"],[28,59,18,13],[28,60,18,14,"get"],[28,63,18,17],[28,64,18,18],[28,78,18,32],[28,79,18,33],[28,80,18,35,"includes"],[28,88,18,43],[28,89,18,44],[28,107,18,62],[28,108,18,63],[28,110,19,6],[29,8,20,6],[30,8,21,6],[30,14,21,12],[30,18,21,16,"Error"],[30,23,21,21],[30,24,21,22,"JSON"],[30,28,21,26],[30,29,21,27,"parse"],[30,34,21,32],[30,35,21,33,"body"],[30,39,21,37],[30,40,21,38],[30,41,21,39,"message"],[30,48,21,46],[30,52,21,50],[30,79,21,77,"url"],[30,82,21,80],[30,85,21,83],[30,86,21,84],[31,6,22,4],[32,6,24,4],[32,10,24,8,"status"],[32,16,24,14],[32,21,24,19],[32,24,24,22],[32,26,24,24],[33,8,25,6],[34,8,26,6],[34,15,26,13,"eval"],[34,19,26,17],[34,20,26,18,"body"],[34,24,26,22],[34,25,26,23],[35,6,27,4],[35,7,27,5],[35,13,27,11],[36,8,28,6],[37,8,29,6],[37,12,29,10],[37,30,29,35],[37,43,29,48],[37,45,29,50],[38,10,30,8],[39,10,31,8],[40,10,32,8],[40,16,32,14,"error"],[40,21,32,19],[40,24,32,22,"jsonParseOptional"],[40,41,32,39],[40,42,32,40,"body"],[40,46,32,44],[40,47,32,45],[41,10,33,8],[41,14,33,12,"error"],[41,19,33,17],[41,21,33,19],[42,12,34,10],[43,12,35,10],[44,12,36,10],[44,18,36,16],[44,22,36,20,"MetroServerError"],[44,29,36,36],[44,30,36,36,"MetroServerError"],[44,46,36,36],[44,47,36,37,"error"],[44,52,36,42],[44,54,36,44,"url"],[44,57,36,47],[44,58,36,48],[45,10,37,8],[46,8,38,6],[47,8,40,6],[47,14,40,12],[47,18,40,16,"Error"],[47,23,40,21],[47,24,40,22],[47,65,40,63,"url"],[47,68,40,66],[47,73,40,71,"body"],[47,77,40,75],[47,79,40,77],[47,80,40,78],[48,6,41,4],[49,4,42,2],[49,5,42,3],[49,6,42,4],[50,2,43,0],[51,2,45,0],[51,11,45,9,"jsonParseOptional"],[51,28,45,26,"jsonParseOptional"],[51,29,45,27,"json"],[51,33,45,39],[51,35,45,46],[52,4,46,2],[52,8,46,6],[53,6,47,4],[53,13,47,11,"JSON"],[53,17,47,15],[53,18,47,16,"parse"],[53,23,47,21],[53,24,47,22,"json"],[53,28,47,26],[53,29,47,27],[54,4,48,2],[54,5,48,3],[54,6,48,4],[54,12,48,10],[55,6,49,4],[55,13,49,11],[55,17,49,15],[56,4,50,2],[57,2,51,0],[58,0,51,1],[58,3]],"functionMap":{"names":["","fetchThenEvalAsync","fetchAsync.then$argument_0","jsonParseOptional"],"mappings":"AAA;OCa;8BCC;GD2B;CDC;AGE;CHM"},"hasCjsExports":false},"type":"js/module"}]}