UNPKG

@mui/x-telemetry

Version:
49 lines (47 loc) 2.45 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _fs = _interopRequireDefault(require("fs")); var _path = _interopRequireDefault(require("path")); var _crypto = require("crypto"); var _url = require("url"); var _getEnvironmentInfo = _interopRequireDefault(require("./get-environment-info")); var _getProjectId = _interopRequireDefault(require("./get-project-id")); var _getMachineId = _interopRequireDefault(require("./get-machine-id")); var _storage = require("./storage"); const dirname = typeof __dirname === 'string' ? __dirname // cjs build in root dir : (() => { const filename = (0, _url.fileURLToPath)(import.meta.url); // esm build in `esm` directory, so we need to go up two levels return _path.default.dirname(_path.default.dirname(filename)); })(); (async () => { // If Node.js support permissions, we need to check if the current user has // the necessary permissions to write to the file system. if (typeof process.permission !== 'undefined' && !(process.permission.has('fs.read') && process.permission.has('fs.write'))) { return; } const storage = await _storage.TelemetryStorage.init({ distDir: process.cwd() }); const [environmentInfo, projectId, machineId] = await Promise.all([(0, _getEnvironmentInfo.default)(), (0, _getProjectId.default)(), (0, _getMachineId.default)()]); const contextData = { config: { isInitialized: true }, traits: (0, _extends2.default)({}, environmentInfo, { machineId, projectId, sessionId: (0, _crypto.randomBytes)(32).toString('hex'), anonymousId: storage.anonymousId }) }; const writeContextData = (filePath, format) => { const targetPath = _path.default.resolve(dirname, '..', filePath, 'context.js'); _fs.default.writeFileSync(targetPath, format(JSON.stringify(contextData, null, 2))); }; writeContextData('esm', content => `export default ${content};`); writeContextData('', content => [`"use strict";`, `Object.defineProperty(exports, "__esModule", { value: true });`, `exports.default = void 0;`, `var _default = exports.default = ${content};`].join('\n')); })().catch(error => { console.error('[telemetry] Failed to make initialization. Please, report error to MUI X team:\n' + 'https://mui.com/r/x-telemetry-postinstall-troubleshoot\n', error); });