{"version":3,"sources":["jsdelivr-header.js","/npm/multisplice@1.0.0/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,IAAI,OAAS,QAAQ,UA6CrB,SAAS,QAAS,EAAG,GACnB,OAAO,EAAE,MAAQ,EAAE,KACrB,CA7CA,OAAO,QAAU,SAAsB,GACrC,OAAO,aAAa,EAAK,SAAU,qCAEnC,IAAI,EAAU,GACV,EAAO,CAAE,OAGb,SAAiB,EAAO,EAAK,GAQ3B,OAPA,OAAO,aAAa,EAAO,SAAU,8CACrC,OAAO,aAAa,EAAK,SAAU,4CACnC,OAAO,aAAa,EAAO,SAAU,0DACrC,OAAO,GAAS,EAAG,gDACnB,OAAO,GAAO,EAAO,kEAErB,EAAQ,KAAK,CAAE,MAAO,EAAO,IAAK,EAAK,MAAO,IACvC,CACT,EAZ6B,MAAO,EAAO,SAkC3C,WACE,OAAO,EAAM,EACf,GAnCA,OAAO,EAaP,SAAS,EAAO,EAAO,GACrB,OAAO,aAAa,EAAO,SAAU,6CAC1B,MAAP,GAAa,OAAO,aAAa,EAAK,SAAU,2CAEpD,EAAQ,KAAK,SAIb,IAFA,IAAI,EAAS,GACT,EAAO,EACF,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,CACvC,IAAI,EAAK,EAAQ,GACjB,KAAI,EAAG,MAAQ,GAAf,CACA,GAAW,MAAP,GACE,EAAG,OAAS,EAAK,OAAO,EAAS,EAAI,MAAM,EAAM,GAEvD,GAAU,EAAI,MAAM,EAAM,EAAG,OAAS,EAAG,MACzC,EAAO,EAAG,GALW,CAMvB,CACA,OAAO,EAAS,EAAI,MAAM,EAAM,EAClC,CAKF","file":"/npm/multisplice@1.0.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/multisplice@1.0.0/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","var assert = require('assert')\n\nmodule.exports = function multisplice (str) {\n  assert.equal(typeof str, 'string', 'multisplice: str must be a string')\n\n  var splices = []\n  var self = { splice: splice, slice: slice, toString: toString }\n  return self\n\n  function splice (start, end, value) {\n    assert.equal(typeof start, 'number', 'multisplice.splice: start must be a number')\n    assert.equal(typeof end, 'number', 'multisplice.splice: end must be a number')\n    assert.equal(typeof value, 'string', 'multisplice.splice: replacement value must be a string')\n    assert(start >= 0, 'multisplice.splice: start must be at least 0')\n    assert(end >= start, 'multisplice.splice: end must be equal to or greater than start')\n\n    splices.push({ start: start, end: end, value: value })\n    return self\n  }\n\n  function slice (start, end) {\n    assert.equal(typeof start, 'number', 'multisplice.slice: start must be a number')\n    if (end != null) assert.equal(typeof end, 'number', 'multisplice.slice: end must be a number')\n\n    splices.sort(byStart)\n\n    var result = ''\n    var last = start\n    for (var i = 0; i < splices.length; i++) {\n      var sp = splices[i]\n      if (sp.start < last) continue // ignore splices that are entirely contained in an earlier spliced range\n      if (end != null) {\n        if (sp.start >= end) return result + str.slice(last, end)\n      }\n      result += str.slice(last, sp.start) + sp.value\n      last = sp.end\n    }\n    return result + str.slice(last, end)\n  }\n\n  function toString () {\n    return slice(0)\n  }\n}\n\nfunction byStart (a, b) {\n  return a.start - b.start\n}\n"]}