{"version":3,"sources":["jsdelivr-header.js","/npm/@parcel/reporter-tracer@2.16.4/lib/TracerReporter.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAMA,SAAS,UACP,MAAM,EAAO,uBAAuB,QAAQ,WAI5C,OAHA,QAAU,WACR,OAAO,CACT,EACO,CACT,CACA,SAAS,cACP,MAAM,EAAO,uBAAuB,QAAQ,eAI5C,OAHA,YAAc,WACZ,OAAO,CACT,EACO,CACT,CACA,SAAS,QACP,MAAM,EAAO,uBAAuB,QAAQ,SAI5C,OAHA,MAAQ,WACN,OAAO,CACT,EACO,CACT,CACA,SAAS,UACP,MAAM,EAAO,QAAQ,kBAIrB,OAHA,QAAU,WACR,OAAO,CACT,EACO,CACT,CACA,SAAS,oBACP,MAAM,EAAO,QAAQ,sBAIrB,OAHA,kBAAoB,WAClB,OAAO,CACT,EACO,CACT,CACA,SAAS,uBAAuB,GAAK,OAAO,GAAK,EAAE,WAAa,EAAI,CAAE,QAAS,EAAK,CAGpF,IAAI,OA1CJ,OAAO,eAAe,QAAS,aAAc,CAC3C,OAAO,IAET,QAAQ,aAAU,EAwClB,IAAI,YAAc,KAClB,SAAS,2BAA2B,GAClC,OAAO,KAAK,MAAqB,IAAf,EACpB,CAGA,SAAS,YACP,IAAI,EAAM,IAAI,KACd,OAAO,OAAO,EAAI,eAAiB,OAAO,EAAI,WAAa,GAAG,SAAS,EAAG,KAAO,OAAO,EAAI,WAAW,SAAS,EAAG,KAAO,IAAM,OAAO,EAAI,YAAY,SAAS,EAAG,KAAO,OAAO,EAAI,cAAc,SAAS,EAAG,KAAO,OAAO,EAAI,cAAc,SAAS,EAAG,IAC7P,CACA,IAAI,SAAW,QAAQ,QAAU,IAAK,UAAkB,UAAE,CACxD,MAAA,EAAO,MACL,EAAK,QACL,EAAO,OACP,IAEA,IAAI,EACA,EACJ,OAAQ,EAAM,MACZ,IAAK,cACH,EAAI,UAAU,SAAmB,MAAV,OAAgB,kCACvC,OAAS,IAAK,oBAA0B,QACxC,EAAW,gBAAgB,mBAC3B,EAAW,QAAQ,QAAQ,KAAK,EAAQ,YAAa,IACrD,EAAI,UAAU,SAAwB,MAAf,YAAqB,8CAC5C,EAAO,KAAK,CACV,QAAS,oBAAoB,kHAE/B,YAAc,EAAQ,SAAS,kBAAkB,IACjD,EAAI,cAAc,SAAS,QAAQ,MAAK,EAAI,cAAc,SAAS,cACnE,MACF,IAAK,QAGH,GAAe,OAAX,OAAiB,OACrB,OAAO,cAAc,CACnB,KAAM,EAAM,KACZ,IAAK,EAAM,WACX,KAAM,EAAM,KACZ,GAAI,2BAA2B,EAAM,IACrC,IAAK,2BAA2B,EAAM,UACtC,IAAK,EAAM,IACX,IAAK,EAAM,MAEb,MACF,IAAK,eACL,IAAK,eAOH,OANA,EAAI,cAAc,SAAS,QAAQ,QACnC,OAAS,KAKF,IAAI,SAAQ,CAAC,EAAS,MAC3B,EAAI,cAAc,SAAS,aAAa,KAAK,SAAS,IACpD,YAAc,KACV,EACF,EAAO,GAEP,GACF,KAEF,EAAI,cAAc,SAAS,aAAa,KAAK,IAGrD","file":"/npm/@parcel/reporter-tracer@2.16.4/lib/TracerReporter.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@parcel/reporter-tracer@2.16.4/lib/TracerReporter.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nfunction _assert() {\n  const data = _interopRequireDefault(require(\"assert\"));\n  _assert = function () {\n    return data;\n  };\n  return data;\n}\nfunction _nullthrows() {\n  const data = _interopRequireDefault(require(\"nullthrows\"));\n  _nullthrows = function () {\n    return data;\n  };\n  return data;\n}\nfunction _path() {\n  const data = _interopRequireDefault(require(\"path\"));\n  _path = function () {\n    return data;\n  };\n  return data;\n}\nfunction _plugin() {\n  const data = require(\"@parcel/plugin\");\n  _plugin = function () {\n    return data;\n  };\n  return data;\n}\nfunction _chromeTraceEvent() {\n  const data = require(\"chrome-trace-event\");\n  _chromeTraceEvent = function () {\n    return data;\n  };\n  return data;\n}\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\n// We need to maintain some state here to ensure we write to the same output, there should only be one\n// instance of this reporter (this gets asserted below)\nlet tracer;\nlet writeStream = null;\nfunction millisecondsToMicroseconds(milliseconds) {\n  return Math.floor(milliseconds * 1000);\n}\n\n// TODO: extract this to utils as it's also used in packages/core/workers/src/WorkerFarm.js\nfunction getTimeId() {\n  let now = new Date();\n  return String(now.getFullYear()) + String(now.getMonth() + 1).padStart(2, '0') + String(now.getDate()).padStart(2, '0') + '-' + String(now.getHours()).padStart(2, '0') + String(now.getMinutes()).padStart(2, '0') + String(now.getSeconds()).padStart(2, '0');\n}\nvar _default = exports.default = new (_plugin().Reporter)({\n  report({\n    event,\n    options,\n    logger\n  }) {\n    let filename;\n    let filePath;\n    switch (event.type) {\n      case 'buildStart':\n        (0, _assert().default)(tracer == null, 'Tracer multiple initialisation');\n        tracer = new (_chromeTraceEvent().Tracer)();\n        filename = `parcel-trace-${getTimeId()}.json`;\n        filePath = _path().default.join(options.projectRoot, filename);\n        (0, _assert().default)(writeStream == null, 'Trace write stream multiple initialisation');\n        logger.info({\n          message: `Writing trace to ${filename}. See https://parceljs.org/features/profiling/#analysing-traces for more information on working with traces.`\n        });\n        writeStream = options.outputFS.createWriteStream(filePath);\n        (0, _nullthrows().default)(tracer).pipe((0, _nullthrows().default)(writeStream));\n        break;\n      case 'trace':\n        // Due to potential race conditions at the end of the build, we ignore any trace events that occur\n        // after we've closed the write stream.\n        if (tracer === null) return;\n        tracer.completeEvent({\n          name: event.name,\n          cat: event.categories,\n          args: event.args,\n          ts: millisecondsToMicroseconds(event.ts),\n          dur: millisecondsToMicroseconds(event.duration),\n          tid: event.tid,\n          pid: event.pid\n        });\n        break;\n      case 'buildSuccess':\n      case 'buildFailure':\n        (0, _nullthrows().default)(tracer).flush();\n        tracer = null;\n        // We explicitly trigger `end` on the writeStream for the trace, then we need to wait for\n        // the `close` event before resolving the promise this report function returns to ensure\n        // that the file has been properly closed and moved from it's temp location before Parcel\n        // shuts down.\n        return new Promise((resolve, reject) => {\n          (0, _nullthrows().default)(writeStream).once('close', err => {\n            writeStream = null;\n            if (err) {\n              reject(err);\n            } else {\n              resolve();\n            }\n          });\n          (0, _nullthrows().default)(writeStream).end();\n        });\n    }\n  }\n});"]}