{"version":3,"sources":["jsdelivr-header.js","/npm/on-exit-leak-free@2.1.2/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,MAAM,KAAO,CACX,KAAM,GACN,WAAY,IAER,UAAY,CAChB,KAAM,OACN,WAAY,cAGd,IAAI,SAEJ,SAAS,sBACU,IAAb,WACF,SAAW,IAAI,qBAAqB,OAExC,CAEA,SAAS,QAAS,GACZ,KAAK,GAAO,OAAS,GAIzB,QAAQ,GAAG,EAAO,UAAU,GAC9B,CAEA,SAAS,UAAW,GACd,KAAK,GAAO,OAAS,IAGzB,QAAQ,eAAe,EAAO,UAAU,IACf,IAArB,KAAK,KAAK,QAA2C,IAA3B,KAAK,WAAW,SAC5C,cAAW,GAEf,CAEA,SAAS,SACP,SAAS,OACX,CAEA,SAAS,eACP,SAAS,aACX,CAEA,SAAS,SAAU,GACjB,IAAK,MAAM,KAAO,KAAK,GAAQ,CAC7B,MAAM,EAAM,EAAI,QACV,EAAK,EAAI,QAKH,IAAR,GACF,EAAG,EAAK,EAEZ,CACA,KAAK,GAAS,EAChB,CAEA,SAAS,MAAO,GACd,IAAK,MAAM,IAAS,CAAC,OAAQ,cAAe,CAC1C,MAAM,EAAQ,KAAK,GAAO,QAAQ,GAClC,KAAK,GAAO,OAAO,EAAO,EAAQ,GAClC,UAAU,EACZ,CACF,CAEA,SAAS,UAAW,EAAO,EAAK,GAC9B,QAAY,IAAR,EACF,MAAM,IAAI,MAAM,iCAElB,QAAQ,GACR,MAAM,EAAM,IAAI,QAAQ,GACxB,EAAI,GAAK,EAET,iBACA,SAAS,SAAS,EAAK,GACvB,KAAK,GAAO,KAAK,EACnB,CAEA,SAAS,SAAU,EAAK,GACtB,UAAU,OAAQ,EAAK,EACzB,CAEA,SAAS,mBAAoB,EAAK,GAChC,UAAU,aAAc,EAAK,EAC/B,CAEA,SAAS,WAAY,GACnB,QAAiB,IAAb,SAAJ,CAGA,SAAS,WAAW,GACpB,IAAK,MAAM,IAAS,CAAC,OAAQ,cAC3B,KAAK,GAAS,KAAK,GAAO,QAAQ,IAChC,MAAM,EAAO,EAAI,QACjB,OAAO,GAAQ,IAAS,KAE1B,UAAU,EAPZ,CASF,CAEA,OAAO,QAAU,CACf,kBACA,sCACA","file":"/npm/on-exit-leak-free@2.1.2/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/on-exit-leak-free@2.1.2/index.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\nconst refs = {\n  exit: [],\n  beforeExit: []\n}\nconst functions = {\n  exit: onExit,\n  beforeExit: onBeforeExit\n}\n\nlet registry\n\nfunction ensureRegistry () {\n  if (registry === undefined) {\n    registry = new FinalizationRegistry(clear)\n  }\n}\n\nfunction install (event) {\n  if (refs[event].length > 0) {\n    return\n  }\n\n  process.on(event, functions[event])\n}\n\nfunction uninstall (event) {\n  if (refs[event].length > 0) {\n    return\n  }\n  process.removeListener(event, functions[event])\n  if (refs.exit.length === 0 && refs.beforeExit.length === 0) {\n    registry = undefined\n  }\n}\n\nfunction onExit () {\n  callRefs('exit')\n}\n\nfunction onBeforeExit () {\n  callRefs('beforeExit')\n}\n\nfunction callRefs (event) {\n  for (const ref of refs[event]) {\n    const obj = ref.deref()\n    const fn = ref.fn\n\n    // This should always happen, however GC is\n    // undeterministic so it might not happen.\n    /* istanbul ignore else */\n    if (obj !== undefined) {\n      fn(obj, event)\n    }\n  }\n  refs[event] = []\n}\n\nfunction clear (ref) {\n  for (const event of ['exit', 'beforeExit']) {\n    const index = refs[event].indexOf(ref)\n    refs[event].splice(index, index + 1)\n    uninstall(event)\n  }\n}\n\nfunction _register (event, obj, fn) {\n  if (obj === undefined) {\n    throw new Error('the object can\\'t be undefined')\n  }\n  install(event)\n  const ref = new WeakRef(obj)\n  ref.fn = fn\n\n  ensureRegistry()\n  registry.register(obj, ref)\n  refs[event].push(ref)\n}\n\nfunction register (obj, fn) {\n  _register('exit', obj, fn)\n}\n\nfunction registerBeforeExit (obj, fn) {\n  _register('beforeExit', obj, fn)\n}\n\nfunction unregister (obj) {\n  if (registry === undefined) {\n    return\n  }\n  registry.unregister(obj)\n  for (const event of ['exit', 'beforeExit']) {\n    refs[event] = refs[event].filter((ref) => {\n      const _obj = ref.deref()\n      return _obj && _obj !== obj\n    })\n    uninstall(event)\n  }\n}\n\nmodule.exports = {\n  register,\n  registerBeforeExit,\n  unregister\n}\n"]}