"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; function _fsExtra() { const data = _interopRequireDefault(require("fs-extra")); _fsExtra = function () { return data; }; return data; } function _uuid() { const data = _interopRequireDefault(require("uuid")); _uuid = function () { return data; }; return data; } function _jsonFile() { const data = _interopRequireDefault(require("@expo/json-file")); _jsonFile = function () { return data; }; return data; } function _path() { const data = _interopRequireDefault(require("path")); _path = function () { return data; }; return data; } function Env() { const data = _interopRequireWildcard(require("./Env")); Env = function () { return data; }; return data; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const SETTINGS_FILE_NAME = 'state.json'; function userSettingsFile() { let dir = dotExpoHomeDirectory(); let file = _path().default.join(dir, SETTINGS_FILE_NAME); try { // move exponent.json to state.json let oldFile = _path().default.join(dir, 'exponent.json'); if (_fsExtra().default.statSync(oldFile).isFile()) { _fsExtra().default.renameSync(oldFile, file); } } catch (e) {// no old directory, continue } return file; } function userSettingsJsonFile() { return new (_jsonFile().default)(userSettingsFile(), { jsonParseErrorDefault: {}, cantReadFileDefault: {} }); } function recentExpsJsonFile() { // TODO(ville): Add array support to JsonFile. // @ts-ignore JsonFile doesn't officially support arrays, only objects return new (_jsonFile().default)(_path().default.join(dotExpoHomeDirectory(), 'xde-recent-exps.json'), { jsonParseErrorDefault: [], cantReadFileDefault: [] }); } var mkdirped = false; function dotExpoHomeDirectory() { let dirPath; if (process.env.__UNSAFE_EXPO_HOME_DIRECTORY) { dirPath = process.env.__UNSAFE_EXPO_HOME_DIRECTORY; } else { const home = Env().home(); if (!home) { throw new Error("Can't determine your home directory; make sure your $HOME environment variable is set."); } if (process.env.EXPO_STAGING) { dirPath = _path().default.join(home, '.expo-staging'); } else if (process.env.EXPO_LOCAL) { dirPath = _path().default.join(home, '.expo-local'); } else { dirPath = _path().default.join(home, '.expo'); } try { // move .exponent to .expo let oldDirPath = _path().default.join(home, '.exponent'); if (_fsExtra().default.statSync(oldDirPath).isDirectory()) { _fsExtra().default.renameSync(oldDirPath, dirPath); } } catch (e) {// no old directory, continue } } if (!mkdirped) { _fsExtra().default.mkdirpSync(dirPath); mkdirped = true; } return dirPath; } // returns an anonymous, unique identifier for a user on the current computer async function anonymousIdentifier() { const settings = await userSettingsJsonFile(); let id = await settings.getAsync('uuid', null); if (!id) { id = _uuid().default.v4(); await settings.setAsync('uuid', id); } return id; } const UserSettings = Object.assign(userSettingsJsonFile(), { dotExpoHomeDirectory, recentExpsJsonFile, userSettingsFile, userSettingsJsonFile, anonymousIdentifier, SETTINGS_FILE_NAME }); var _default = UserSettings; exports.default = _default; //# sourceMappingURL=__sourcemaps__/UserSettings.js.map