{"version":3,"sources":["jsdelivr-header.js","/npm/crypto-json@2.0.2/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,MAAM,OAAS,QAAQ,UAEvB,IAAI,aAAc,aAAc,cAAe,cAE/C,MAAM,QAAU,CAAC,EAAI,EAAM,IAAS,IAClC,MAAM,EAAW,OAAO,eAAe,EAAM,GAE7C,OAAO,KAAK,MAAM,EAAS,OAAO,EAAO,EAAK,QAC5C,EAAS,MAAM,QAAO,EAGpB,QAAU,CAAC,EAAI,EAAM,IAAS,IAClC,MAAM,EAAS,OAAO,aAAa,EAAM,GAEzC,OAAO,EAAO,OAAO,KAAK,UAAU,GAAQ,OAAQ,GAClD,EAAO,MAAM,EAAG,EAGpB,SAAS,cAAe,GACtB,OAAO,SAAU,EAAQ,EAAM,GAC7B,MAAM,EAAuB,YAAT,EAAsB,aAAe,aACnD,EAAwB,YAAT,EAAsB,cAAgB,cACrD,EAAS,EAAU,EAAO,KAAI,GAAK,IAAK,OAAO,OAAO,CAAC,EAAG,GAC1D,EAAS,EAAU,EAAO,OAAS,EAAK,OAE9C,GAAoB,IAAhB,EAAK,OAAc,CACrB,IAAK,IAAI,EAAI,EAAG,EAAM,OAAO,KAAK,GAAQ,OAAQ,EAAI,EAAK,IAAK,CAC9D,MAAM,EAAM,EAAU,EAAI,OAAO,KAAK,GAAQ,QAEnB,IAAhB,EAAO,KAChB,EAAO,GAAO,EAAO,GAEM,iBAAhB,EAAO,GAChB,EAAO,GAAO,EAAW,EAAO,IACvB,MAAM,QAAQ,EAAO,IAC9B,EAAO,GAAO,EAAY,EAAO,GAAM,GAAM,GAE7C,EAAO,GAAO,EAAY,EAAO,GAAM,GAG7C,CAEA,OAAO,CACT,CAEA,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,IAAK,CAC/B,MAAM,EAAM,EAAU,EAAI,EAAK,QAEJ,IAAhB,EAAO,KAChB,EAAO,GAAO,EAAO,GAEM,iBAAhB,EAAO,GAChB,EAAO,GAAO,EAAW,EAAO,IACvB,MAAM,QAAQ,EAAO,IAC9B,EAAO,GAAO,EAAY,EAAO,GAAM,GAAM,GAE7C,EAAO,GAAO,EAAY,EAAO,GAAM,GAG7C,CAEA,OAAO,CACT,CACF,CAEA,QAAQ,QAAU,SAAU,EAAQ,EAAU,GAE5C,MAAM,GADN,EAAS,GAAU,CAAC,IACO,EAAO,UAAqB,MACjD,EAAY,GAAU,EAAO,WAAyB,SACtD,EAAO,EAAO,MAAQ,GAE5B,IAAK,GAA4B,iBAAX,GAAuB,MAAM,QAAQ,GACzD,MAAM,IAAI,MAAM,qCAGlB,IAAK,EACH,MAAM,IAAI,MAAM,yBAKlB,OAFA,aAAe,QAAQ,EAAU,EAAW,GAC5C,cAAgB,cAAc,WACvB,cAAc,EAAQ,EAC/B,EAEA,QAAQ,QAAU,SAAU,EAAQ,EAAU,GAE5C,MAAM,GADN,EAAS,GAAU,CAAC,IACO,EAAO,UAAqB,MACjD,EAAY,GAAU,EAAO,WAAyB,SACtD,EAAO,EAAO,MAAQ,GAE5B,IAAK,GAA4B,iBAAX,GAAuB,MAAM,QAAQ,GACzD,MAAM,IAAI,MAAM,qCAGlB,IAAK,EACH,MAAM,IAAI,MAAM,yBAKlB,OAFA,aAAe,QAAQ,EAAU,EAAW,GAC5C,cAAgB,cAAc,WACvB,cAAc,EAAQ,EAC/B","file":"/npm/crypto-json@2.0.2/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/crypto-json@2.0.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 crypto = require('crypto')\n\nlet encryptValue, decryptValue, encryptObject, decryptObject\n\nconst decrypt = (pw, algo, enc) => (value) => {\n  const decipher = crypto.createDecipher(algo, pw)\n\n  return JSON.parse(decipher.update(value, enc, 'utf8') +\n    decipher.final('utf8'))\n}\n\nconst encrypt = (pw, algo, enc) => (value) => {\n  const cipher = crypto.createCipher(algo, pw)\n\n  return cipher.update(JSON.stringify(value), 'utf8', enc) +\n    cipher.final(enc)\n}\n\nfunction cryptFunction (type) {\n  return function (object, keys, isArray) {\n    const cryptValue = (type === 'encrypt') ? encryptValue : decryptValue\n    const cryptObject = (type === 'encrypt') ? encryptObject : decryptObject\n    const output = isArray ? object.map(e => e) : Object.assign({}, object)\n    const length = isArray ? object.length : keys.length\n\n    if (keys.length === 0) {\n      for (let i = 0, len = Object.keys(object).length; i < len; i++) {\n        const key = isArray ? i : Object.keys(object)[i]\n\n        if (typeof object[key] !== 'undefined') {\n          output[key] = object[key]\n\n          if (typeof object[key] !== 'object') {\n            output[key] = cryptValue(object[key])\n          } else if (Array.isArray(object[key])) {\n            output[key] = cryptObject(object[key], keys, true)\n          } else {\n            output[key] = cryptObject(object[key], keys)\n          }\n        }\n      }\n\n      return output\n    }\n\n    for (let i = 0; i < length; i++) {\n      const key = isArray ? i : keys[i]\n\n      if (typeof object[key] !== 'undefined') {\n        output[key] = object[key]\n\n        if (typeof object[key] !== 'object') {\n          output[key] = cryptValue(object[key])\n        } else if (Array.isArray(object[key])) {\n          output[key] = cryptObject(object[key], keys, true)\n        } else {\n          output[key] = cryptObject(object[key], keys)\n        }\n      }\n    }\n\n    return output\n  }\n}\n\nexports.encrypt = function (object, password, config) {\n  config = config || {}\n  const encoding = config ? (config.encoding || 'hex') : 'hex'\n  const algorithm = config ? (config.algorithm || 'aes256') : 'aes256'\n  const keys = config.keys || []\n\n  if (!object || typeof object !== 'object' || Array.isArray(object)) {\n    throw new Error('First argument must be an object.')\n  }\n\n  if (!password) {\n    throw new Error('Password is required.')\n  }\n\n  encryptValue = encrypt(password, algorithm, encoding)\n  encryptObject = cryptFunction('encrypt')\n  return encryptObject(object, keys)\n}\n\nexports.decrypt = function (object, password, config) {\n  config = config || {}\n  const encoding = config ? (config.encoding || 'hex') : 'hex'\n  const algorithm = config ? (config.algorithm || 'aes256') : 'aes256'\n  const keys = config.keys || []\n\n  if (!object || typeof object !== 'object' || Array.isArray(object)) {\n    throw new Error('First argument must be an object.')\n  }\n\n  if (!password) {\n    throw new Error('Password is required.')\n  }\n\n  decryptValue = decrypt(password, algorithm, encoding)\n  decryptObject = cryptFunction('decrypt')\n  return decryptObject(object, keys)\n}\n"]}