{"version":3,"sources":["jsdelivr-header.js","/npm/scramble@0.0.4/lib/scramble.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,cAEA,WAEE,SAAS,EAAQ,EAAG,EAAK,GACvB,OAAO,GAAK,GAAO,GAAK,CAC1B,CAEA,SAAS,EAAS,EAAO,GACvB,IAEI,EADA,GAAS,EAQb,GALkB,mBAJD,OAAO,UAAU,SAAS,KAAK,KAK9C,GAAS,EACT,EAAQ,EAAM,MAAM,KAGlB,GAAQ,EAAK,SAAU,CACzB,IAAI,EAAQ,EAAK,SAAS,GACtB,EAAM,EAAK,SAAS,GAExB,KAAI,EAAQ,EAAO,EAAG,EAAM,OAAS,IACnC,EAAQ,EAAK,EAAG,EAAM,OAAS,IAC/B,EAAM,GAWN,MAAM,IAAI,MAAM,wCAThB,IAAI,EAAS,EAAM,MAAM,EAAO,EAAM,IAGtC,EAAS,EAFI,EAAM,MAAM,EAAG,GACzB,OAAO,EAAM,MAAM,EAAM,EAAG,EAAM,WAK9B,OAAO,MAAM,EAAQ,CAAC,EAAO,GAAG,OAAO,GAIlD,MACE,EAUJ,SAAc,GACZ,IAAK,IAAU,EAAM,OACnB,MAAO,GAET,IAAI,EAAQ,EAAM,OAAS,EAE3B,KAAO,GAAO,CAEZ,IAAI,EAAO,KAAK,OAAO,EAAQ,GAAK,KAAK,UAGrC,EAAO,EAAM,GACjB,EAAM,GAAQ,EAAM,GACpB,EAAM,GAAS,EAGf,GAAS,CACX,CAEA,OAAO,CACT,CA9Ba,CAAK,GAOhB,OAJI,IACF,EAAS,EAAO,KAAK,KAGhB,CACT,CAkCA,EAAS,OAVT,WACE,MAAM,UAAU,SAAW,SAAS,GAClC,OAAO,EAAS,KAAM,EACxB,EAEA,OAAO,UAAU,SAAW,SAAS,GACnC,OAAO,EAAS,KAAM,EACxB,CACF,EAIsB,oBAAX,QAA6C,iBAAZ,QAC1C,OAAO,QAAU,EACU,mBAAX,QAAyB,OAAO,IAChD,QAAO,WACL,OAAO,CACT,IAEA,KAAK,SAAW,CAEnB,GAAE,KAAK,WACN,OAAO,OAA2B,oBAAX,OAAyB,OAAS,OAC3D,CAFQ","file":"/npm/scramble@0.0.4/lib/scramble.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/scramble@0.0.4/lib/scramble.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\n(function() {\n\n  function between(x, min, max) {\n    return x >= min && x <= max;\n  }\n\n  function scramble(input, opts) {\n    var objectType = Object.prototype.toString.call(input);\n    var rejoin = false;\n    var output;\n\n    if (objectType == '[object String]') {\n      rejoin = true;\n      input = input.split('');\n    }\n\n    if (opts && opts.preserve) {\n      var start = opts.preserve[0];\n      var end = opts.preserve[1];\n\n      if (between(start, 0, input.length - 1) &&\n        between(end, 0, input.length - 1) &&\n        end > start) {\n\n        var array1 = input.slice(start, end + 1);\n        var array2 = input.slice(0, start)\n          .concat(input.slice(end + 1, input.length));\n        output = scramble(array2);\n        // console.log(output);\n        // var args = [start, array1.length].concat(array1);\n        // console.log(args);\n        output.splice.apply(output, [start, 0].concat(array1));\n      } else {\n        throw new Error('Provided range must be within bounds');\n      }\n    } else {\n      output = main(input, opts);\n    }\n\n    if (rejoin) {\n      output = output.join('');\n    }\n\n    return output;\n  }\n\n  function main(array) {\n    if (!array || !array.length) {\n      return [];\n    }\n    var index = array.length - 1;\n\n    while (index) {\n      //Generate a random number\n      var rand = Math.floor((index + 1) * Math.random());\n\n      //Swap\n      var temp = array[rand];\n      array[rand] = array[index];\n      array[index] = temp;\n\n      //Decrement index\n      index -= 1;\n    }\n\n    return array;\n  }\n\n  function attach() {\n    Array.prototype.scramble = function(opts) {\n      return scramble(this, opts);\n    };\n\n    String.prototype.scramble = function(opts) {\n      return scramble(this, opts);\n    }\n  }\n\n  scramble.attach = attach;\n\n  if (typeof module !== 'undefined' && typeof exports === 'object') {\n    module.exports = scramble;\n  } else if (typeof define === 'function' && define.amd) {\n    define(function() {\n      return scramble;\n    });\n  } else {\n    this.scramble = scramble;\n  }\n}).call(function() {\n  return this || (typeof window !== 'undefined' ? window : global);\n}());\n"]}