{"version":3,"sources":["jsdelivr-header.js","/npm/@clarketm/jwt-cli@1.2.0/lib/jwt.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,MAAM,IAAM,QAAQ,gBACd,UAAY,QAAQ,cACpB,MAAQ,QAAQ,UAChB,QAAE,SAAY,QAAQ,SACtB,IAAE,IAAG,MAAE,OAAU,SACjB,KAAE,MAAS,QAEX,WAAa,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAC/F,gBAAkB,IAAI,OAAO,KAAK,WAAW,KAAK,SAAU,KAGlE,SAAS,aAAa,EAAM,EAAO,EAAU,IAAI,kBAC1C,IACH,MAAM,GACN,KAAK,GAET,CAEA,SAAS,kBAAkB,EAAM,EAAO,EAAU,IAAI,yBACpD,IACE,EAAQ,KAAK,MAAM,EACrB,CAAE,MAAO,GACP,MAAM,GACN,KAAK,EACP,CAEA,OAAO,CACT,CAEA,SAAS,cAAc,EAAS,EAAY,EAAE,CAAE,UAAa,IAAN,EAAiB,EAAU,CAAC,GAAM,EAAG,MAAS,EAAI,GAAK,EAAI,IAChH,OAAO,OAAO,QAAQ,GACnB,OAAO,GACP,OAAO,EAAS,CAAC,EACtB,CAEA,SAAS,sBAAsB,EAAQ,GACrC,OAAI,EACK,CACL,IAAK,EACL,cAGG,CACT,CAGA,SAAS,KAAK,EAAS,EAAQ,EAAU,CAAC,GACxC,aAAa,UAAW,GACxB,aAAa,SAAU,GAEvB,IAAI,UAAE,EAAS,SAAE,EAAQ,UAAE,EAAS,OAAE,EAAM,OAAE,EAAM,MAAE,EAAK,UAAE,EAAS,YAAE,EAAW,MAAE,EAAK,QAAE,EAAO,OAAE,EAAM,WAAE,GAAe,EAE5H,EAAU,kBAAkB,UAAW,GACvC,EAAS,GAAU,kBAAkB,SAAU,GAE/C,MAAM,EAAa,cAAc,CAC/B,YACA,WACA,YACA,SACA,SACA,QACA,YACA,cACA,QACA,YAGF,IACE,MAAM,EAAQ,IAAI,KAAK,EAAS,sBAAsB,EAAQ,GAAa,GACtE,IACH,UAAU,UAAU,GACpB,MACA,IAAI,MAAM,MAAM,SAAS,KAAK,yBAC9B,OAEF,IAAI,MAAM,GACZ,CAAE,MAAO,GACP,MACA,IAAI,MAAM,IAAI,IAAI,EAAI,aACtB,MACA,KAAK,EACP,CACF,CAEA,SAAS,OAAO,EAAO,EAAQ,EAAU,CAAC,GACxC,aAAa,QAAS,GACtB,aAAa,SAAU,GAEvB,MAAM,WAAE,EAAU,SAAE,EAAQ,eAAE,EAAc,eAAE,EAAc,iBAAE,EAAgB,gBAAE,EAAe,OAAE,EAAM,OAAE,EAAM,QAAE,EAAO,WAAE,GAAe,EAEnI,EAAa,cAAc,CAC/B,aACA,WACA,iBACA,iBACA,mBACA,kBACA,SACA,SACA,YAGF,IACE,IAAI,OAAO,EAAO,sBAAsB,EAAQ,GAAa,GAC7D,MACA,IAAI,MAAM,MAAM,UAClB,CAAE,MAAO,GACP,MACA,IAAI,MAAM,IAAI,IAAI,EAAI,aACtB,MACA,KAAK,EACP,CACF,CAEA,SAAS,OAAO,EAAO,EAAU,CAAC,GAChC,aAAa,QAAS,GAEtB,MAAM,SAAE,EAAQ,OAAE,GAAW,EAEvB,EAAa,cAAc,CAAE,aAEnC,IACE,IAAI,EAAU,IAAI,OAAO,EAAO,GAC3B,IACH,UAAU,UAAU,KAAK,UAAU,IACnC,MACA,IAAI,MAAM,MAAM,SAAS,KAAK,yBAC9B,OAEF,IAAI,QAAQ,EAAS,CAAE,MAAO,KAAM,QAAQ,EAAM,SAAS,IAC7D,CAAE,MAAO,GACP,MACA,IAAI,MAAM,IAAI,IAAI,EAAI,aACtB,MACA,KAAK,EACP,CACF,CAEA,OAAO,QAAU,CACf,gCACA,UACA,cACA","file":"/npm/@clarketm/jwt-cli@1.2.0/lib/jwt.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@clarketm/jwt-cli@1.2.0/lib/jwt.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 jwt = require(\"jsonwebtoken\");\nconst clipboard = require(\"clipboardy\");\nconst chalk = require(\"chalk\");\nconst { inspect } = require(\"util\");\nconst { log, error } = console;\nconst { exit } = process;\n\nconst ALGORITHMS = [\"HS256\", \"HS384\", \"HS512\", \"RS256\", \"RS384\", \"RS512\", \"ES256\", \"ES384\", \"ES512\", \"none\"];\nconst algorithmsRegex = new RegExp(`^(${ALGORITHMS.join(\"|\")})$`, \"i\");\n\n// Helpers\nfunction verifyOption(name, value, message = `\"${name}\" is required`) {\n  if (!value) {\n    error(message);\n    exit(1);\n  }\n}\n\nfunction parseObjectOption(name, value, message = `\"${name}\" must be valid JSON`) {\n  try {\n    value = JSON.parse(value);\n  } catch (err) {\n    error(message);\n    exit(1);\n  }\n\n  return value;\n}\n\nfunction filterOptions(options, predicate = ([, v]) => v !== undefined, reducer = (obj, [k, v]) => ((obj[k] = v), obj)) {\n  return Object.entries(options)\n    .filter(predicate)\n    .reduce(reducer, {});\n}\n\nfunction resolveSecretVariable(secret, passphrase) {\n  if (passphrase) {\n    return {\n      key: secret,\n      passphrase\n    };\n  }\n  return secret;\n}\n\n// Exports\nfunction sign(payload, secret, options = {}) {\n  verifyOption(\"payload\", payload);\n  verifyOption(\"secret\", secret);\n\n  let { algorithm, audience, expiresIn, header, issuer, keyid, notBefore, noTimestamp, jwtid, subject, noCopy, passphrase } = options;\n\n  payload = parseObjectOption(\"payload\", payload);\n  header = header && parseObjectOption(\"header\", header);\n\n  const jwtOptions = filterOptions({\n    algorithm,\n    audience,\n    expiresIn,\n    header,\n    issuer,\n    keyid,\n    notBefore,\n    noTimestamp,\n    jwtid,\n    subject\n  });\n\n  try {\n    const token = jwt.sign(payload, resolveSecretVariable(secret, passphrase), jwtOptions);\n    if (!noCopy) {\n      clipboard.writeSync(token);\n      log();\n      log(chalk.black.bgYellow.bold(\"copied to clipboard:\"));\n      log();\n    }\n    log(chalk(token));\n  } catch (err) {\n    log();\n    log(chalk.red(` ${err.message} `));\n    log();\n    exit(1);\n  }\n}\n\nfunction verify(token, secret, options = {}) {\n  verifyOption(\"token\", token);\n  verifyOption(\"secret\", secret);\n\n  const { algorithms, audience, clockTimestamp, clockTolerance, ignoreExpiration, ignoreNotBefore, issuer, maxAge, subject, passphrase } = options;\n\n  const jwtOptions = filterOptions({\n    algorithms,\n    audience,\n    clockTimestamp,\n    clockTolerance,\n    ignoreExpiration,\n    ignoreNotBefore,\n    issuer,\n    maxAge,\n    subject\n  });\n\n  try {\n    jwt.verify(token, resolveSecretVariable(secret, passphrase), jwtOptions);\n    log();\n    log(chalk.green(\"valid!\"));\n  } catch (err) {\n    log();\n    log(chalk.red(` ${err.message} `));\n    log();\n    exit(1);\n  }\n}\n\nfunction decode(token, options = {}) {\n  verifyOption(\"token\", token);\n\n  const { complete, noCopy } = options;\n\n  const jwtOptions = filterOptions({ complete });\n\n  try {\n    let payload = jwt.decode(token, jwtOptions);\n    if (!noCopy) {\n      clipboard.writeSync(JSON.stringify(payload));\n      log();\n      log(chalk.black.bgYellow.bold(\"copied to clipboard:\"));\n      log();\n    }\n    log(inspect(payload, { depth: null, colors: true, compact: false }));\n  } catch (err) {\n    log();\n    log(chalk.red(` ${err.message} `));\n    log();\n    exit(1);\n  }\n}\n\nmodule.exports = {\n  algorithmsRegex,\n  sign,\n  verify,\n  decode\n};\n"]}