{"version":3,"sources":["webpack:///./node_modules/jsonwebtoken/index.js","webpack:///./node_modules/jsonwebtoken/lib/JsonWebTokenError.js","webpack:///./node_modules/jsonwebtoken/decode.js","webpack:///./node_modules/jsonwebtoken/lib/NotBeforeError.js","webpack:///./node_modules/jsonwebtoken/lib/TokenExpiredError.js","webpack:///./node_modules/jsonwebtoken/lib/timespan.js","webpack:///./node_modules/jsonwebtoken/lib/psSupported.js","webpack:///./node_modules/jsonwebtoken/verify.js","webpack:///./node_modules/jsonwebtoken/sign.js"],"names":["module","exports","decode","verify","sign","JsonWebTokenError","NotBeforeError","TokenExpiredError","message","error","Error","call","this","captureStackTrace","constructor","name","inner","prototype","Object","create","jws","jwt","options","decoded","payload","obj","JSON","parse","e","complete","header","signature","date","expiredAt","ms","time","iat","timestamp","Math","floor","Date","now","milliseconds","semver","satisfies","process","version","timespan","PS_SUPPORTED","PUB_KEY_ALGS","RSA_KEY_ALGS","HS_ALGS","splice","jwtString","secretOrPublicKey","callback","done","assign","err","data","clockTimestamp","undefined","nonce","trim","decodedToken","parts","split","length","getSecret","secretCallback","valid","hasSignature","algorithms","toString","indexOf","alg","nbf","ignoreNotBefore","clockTolerance","exp","ignoreExpiration","audience","audiences","Array","isArray","aud","some","targetAudience","RegExp","test","join","issuer","iss","subject","sub","jwtid","jti","maxAge","maxAgeTimestamp","includes","isBoolean","isInteger","isNumber","isPlainObject","isString","once","SUPPORTED_ALGS","sign_options_schema","expiresIn","isValid","value","notBefore","algorithm","bind","encoding","noTimestamp","keyid","mutatePayload","registered_claims_schema","validate","schema","allowUnknown","object","parameterName","keys","forEach","key","validator","options_to_payload","options_for_objects","secretOrPrivateKey","isObjectPayload","Buffer","isBuffer","typ","kid","failure","validatePayload","invalid_options","filter","opt","validateOptions","claim","secret","createSign","privateKey"],"mappings":"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","file":"yarn.jsonwebtoken.becc34fe6fa559c58c21.js","sourcesContent":["module.exports = {\n decode: require('./decode'),\n verify: require('./verify'),\n sign: require('./sign'),\n JsonWebTokenError: require('./lib/JsonWebTokenError'),\n NotBeforeError: require('./lib/NotBeforeError'),\n TokenExpiredError: require('./lib/TokenExpiredError'),\n};\n","var JsonWebTokenError = function (message, error) {\n Error.call(this, message);\n if(Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n this.name = 'JsonWebTokenError';\n this.message = message;\n if (error) this.inner = error;\n};\n\nJsonWebTokenError.prototype = Object.create(Error.prototype);\nJsonWebTokenError.prototype.constructor = JsonWebTokenError;\n\nmodule.exports = JsonWebTokenError;\n","var jws = require('jws');\n\nmodule.exports = function (jwt, options) {\n options = options || {};\n var decoded = jws.decode(jwt, options);\n if (!decoded) { return null; }\n var payload = decoded.payload;\n\n //try parse the payload\n if(typeof payload === 'string') {\n try {\n var obj = JSON.parse(payload);\n if(obj !== null && typeof obj === 'object') {\n payload = obj;\n }\n } catch (e) { }\n }\n\n //return header if `complete` option is enabled. header includes claims\n //such as `kid` and `alg` used to select the key within a JWKS needed to\n //verify the signature\n if (options.complete === true) {\n return {\n header: decoded.header,\n payload: payload,\n signature: decoded.signature\n };\n }\n return payload;\n};\n","var JsonWebTokenError = require('./JsonWebTokenError');\n\nvar NotBeforeError = function (message, date) {\n JsonWebTokenError.call(this, message);\n this.name = 'NotBeforeError';\n this.date = date;\n};\n\nNotBeforeError.prototype = Object.create(JsonWebTokenError.prototype);\n\nNotBeforeError.prototype.constructor = NotBeforeError;\n\nmodule.exports = NotBeforeError;","var JsonWebTokenError = require('./JsonWebTokenError');\n\nvar TokenExpiredError = function (message, expiredAt) {\n JsonWebTokenError.call(this, message);\n this.name = 'TokenExpiredError';\n this.expiredAt = expiredAt;\n};\n\nTokenExpiredError.prototype = Object.create(JsonWebTokenError.prototype);\n\nTokenExpiredError.prototype.constructor = TokenExpiredError;\n\nmodule.exports = TokenExpiredError;","var ms = require('ms');\n\nmodule.exports = function (time, iat) {\n var timestamp = iat || Math.floor(Date.now() / 1000);\n\n if (typeof time === 'string') {\n var milliseconds = ms(time);\n if (typeof milliseconds === 'undefined') {\n return;\n }\n return Math.floor(timestamp + milliseconds / 1000);\n } else if (typeof time === 'number') {\n return timestamp + time;\n } else {\n return;\n }\n\n};","var semver = require('semver');\n\nmodule.exports = semver.satisfies(process.version, '^6.12.0 || >=8.0.0');\n","var JsonWebTokenError = require('./lib/JsonWebTokenError');\nvar NotBeforeError = require('./lib/NotBeforeError');\nvar TokenExpiredError = require('./lib/TokenExpiredError');\nvar decode = require('./decode');\nvar timespan = require('./lib/timespan');\nvar PS_SUPPORTED = require('./lib/psSupported');\nvar jws = require('jws');\n\nvar PUB_KEY_ALGS = ['RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512'];\nvar RSA_KEY_ALGS = ['RS256', 'RS384', 'RS512'];\nvar HS_ALGS = ['HS256', 'HS384', 'HS512'];\n\nif (PS_SUPPORTED) {\n PUB_KEY_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512');\n RSA_KEY_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512');\n}\n\nmodule.exports = function (jwtString, secretOrPublicKey, options, callback) {\n if ((typeof options === 'function') && !callback) {\n callback = options;\n options = {};\n }\n\n if (!options) {\n options = {};\n }\n\n //clone this object since we are going to mutate it.\n options = Object.assign({}, options);\n\n var done;\n\n if (callback) {\n done = callback;\n } else {\n done = function(err, data) {\n if (err) throw err;\n return data;\n };\n }\n\n if (options.clockTimestamp && typeof options.clockTimestamp !== 'number') {\n return done(new JsonWebTokenError('clockTimestamp must be a number'));\n }\n\n if (options.nonce !== undefined && (typeof options.nonce !== 'string' || options.nonce.trim() === '')) {\n return done(new JsonWebTokenError('nonce must be a non-empty string'));\n }\n\n var clockTimestamp = options.clockTimestamp || Math.floor(Date.now() / 1000);\n\n if (!jwtString){\n return done(new JsonWebTokenError('jwt must be provided'));\n }\n\n if (typeof jwtString !== 'string') {\n return done(new JsonWebTokenError('jwt must be a string'));\n }\n\n var parts = jwtString.split('.');\n\n if (parts.length !== 3){\n return done(new JsonWebTokenError('jwt malformed'));\n }\n\n var decodedToken;\n\n try {\n decodedToken = decode(jwtString, { complete: true });\n } catch(err) {\n return done(err);\n }\n\n if (!decodedToken) {\n return done(new JsonWebTokenError('invalid token'));\n }\n\n var header = decodedToken.header;\n var getSecret;\n\n if(typeof secretOrPublicKey === 'function') {\n if(!callback) {\n return done(new JsonWebTokenError('verify must be called asynchronous if secret or public key is provided as a callback'));\n }\n\n getSecret = secretOrPublicKey;\n }\n else {\n getSecret = function(header, secretCallback) {\n return secretCallback(null, secretOrPublicKey);\n };\n }\n\n return getSecret(header, function(err, secretOrPublicKey) {\n if(err) {\n return done(new JsonWebTokenError('error in secret or public key callback: ' + err.message));\n }\n\n var hasSignature = parts[2].trim() !== '';\n\n if (!hasSignature && secretOrPublicKey){\n return done(new JsonWebTokenError('jwt signature is required'));\n }\n\n if (hasSignature && !secretOrPublicKey) {\n return done(new JsonWebTokenError('secret or public key must be provided'));\n }\n\n if (!hasSignature && !options.algorithms) {\n options.algorithms = ['none'];\n }\n\n if (!options.algorithms) {\n options.algorithms = ~secretOrPublicKey.toString().indexOf('BEGIN CERTIFICATE') ||\n ~secretOrPublicKey.toString().indexOf('BEGIN PUBLIC KEY') ? PUB_KEY_ALGS :\n ~secretOrPublicKey.toString().indexOf('BEGIN RSA PUBLIC KEY') ? RSA_KEY_ALGS : HS_ALGS;\n\n }\n\n if (!~options.algorithms.indexOf(decodedToken.header.alg)) {\n return done(new JsonWebTokenError('invalid algorithm'));\n }\n\n var valid;\n\n try {\n valid = jws.verify(jwtString, decodedToken.header.alg, secretOrPublicKey);\n } catch (e) {\n return done(e);\n }\n\n if (!valid) {\n return done(new JsonWebTokenError('invalid signature'));\n }\n\n var payload = decodedToken.payload;\n\n if (typeof payload.nbf !== 'undefined' && !options.ignoreNotBefore) {\n if (typeof payload.nbf !== 'number') {\n return done(new JsonWebTokenError('invalid nbf value'));\n }\n if (payload.nbf > clockTimestamp + (options.clockTolerance || 0)) {\n return done(new NotBeforeError('jwt not active', new Date(payload.nbf * 1000)));\n }\n }\n\n if (typeof payload.exp !== 'undefined' && !options.ignoreExpiration) {\n if (typeof payload.exp !== 'number') {\n return done(new JsonWebTokenError('invalid exp value'));\n }\n if (clockTimestamp >= payload.exp + (options.clockTolerance || 0)) {\n return done(new TokenExpiredError('jwt expired', new Date(payload.exp * 1000)));\n }\n }\n\n if (options.audience) {\n var audiences = Array.isArray(options.audience) ? options.audience : [options.audience];\n var target = Array.isArray(payload.aud) ? payload.aud : [payload.aud];\n\n var match = target.some(function (targetAudience) {\n return audiences.some(function (audience) {\n return audience instanceof RegExp ? audience.test(targetAudience) : audience === targetAudience;\n });\n });\n\n if (!match) {\n return done(new JsonWebTokenError('jwt audience invalid. expected: ' + audiences.join(' or ')));\n }\n }\n\n if (options.issuer) {\n var invalid_issuer =\n (typeof options.issuer === 'string' && payload.iss !== options.issuer) ||\n (Array.isArray(options.issuer) && options.issuer.indexOf(payload.iss) === -1);\n\n if (invalid_issuer) {\n return done(new JsonWebTokenError('jwt issuer invalid. expected: ' + options.issuer));\n }\n }\n\n if (options.subject) {\n if (payload.sub !== options.subject) {\n return done(new JsonWebTokenError('jwt subject invalid. expected: ' + options.subject));\n }\n }\n\n if (options.jwtid) {\n if (payload.jti !== options.jwtid) {\n return done(new JsonWebTokenError('jwt jwtid invalid. expected: ' + options.jwtid));\n }\n }\n\n if (options.nonce) {\n if (payload.nonce !== options.nonce) {\n return done(new JsonWebTokenError('jwt nonce invalid. expected: ' + options.nonce));\n }\n }\n\n if (options.maxAge) {\n if (typeof payload.iat !== 'number') {\n return done(new JsonWebTokenError('iat required when maxAge is specified'));\n }\n\n var maxAgeTimestamp = timespan(options.maxAge, payload.iat);\n if (typeof maxAgeTimestamp === 'undefined') {\n return done(new JsonWebTokenError('\"maxAge\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n if (clockTimestamp >= maxAgeTimestamp + (options.clockTolerance || 0)) {\n return done(new TokenExpiredError('maxAge exceeded', new Date(maxAgeTimestamp * 1000)));\n }\n }\n\n if (options.complete === true) {\n var signature = decodedToken.signature;\n\n return done(null, {\n header: header,\n payload: payload,\n signature: signature\n });\n }\n\n return done(null, payload);\n });\n};\n","var timespan = require('./lib/timespan');\nvar PS_SUPPORTED = require('./lib/psSupported');\nvar jws = require('jws');\nvar includes = require('lodash.includes');\nvar isBoolean = require('lodash.isboolean');\nvar isInteger = require('lodash.isinteger');\nvar isNumber = require('lodash.isnumber');\nvar isPlainObject = require('lodash.isplainobject');\nvar isString = require('lodash.isstring');\nvar once = require('lodash.once');\n\nvar SUPPORTED_ALGS = ['RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512', 'HS256', 'HS384', 'HS512', 'none']\nif (PS_SUPPORTED) {\n SUPPORTED_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512');\n}\n\nvar sign_options_schema = {\n expiresIn: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '\"expiresIn\" should be a number of seconds or string representing a timespan' },\n notBefore: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '\"notBefore\" should be a number of seconds or string representing a timespan' },\n audience: { isValid: function(value) { return isString(value) || Array.isArray(value); }, message: '\"audience\" must be a string or array' },\n algorithm: { isValid: includes.bind(null, SUPPORTED_ALGS), message: '\"algorithm\" must be a valid string enum value' },\n header: { isValid: isPlainObject, message: '\"header\" must be an object' },\n encoding: { isValid: isString, message: '\"encoding\" must be a string' },\n issuer: { isValid: isString, message: '\"issuer\" must be a string' },\n subject: { isValid: isString, message: '\"subject\" must be a string' },\n jwtid: { isValid: isString, message: '\"jwtid\" must be a string' },\n noTimestamp: { isValid: isBoolean, message: '\"noTimestamp\" must be a boolean' },\n keyid: { isValid: isString, message: '\"keyid\" must be a string' },\n mutatePayload: { isValid: isBoolean, message: '\"mutatePayload\" must be a boolean' }\n};\n\nvar registered_claims_schema = {\n iat: { isValid: isNumber, message: '\"iat\" should be a number of seconds' },\n exp: { isValid: isNumber, message: '\"exp\" should be a number of seconds' },\n nbf: { isValid: isNumber, message: '\"nbf\" should be a number of seconds' }\n};\n\nfunction validate(schema, allowUnknown, object, parameterName) {\n if (!isPlainObject(object)) {\n throw new Error('Expected \"' + parameterName + '\" to be a plain object.');\n }\n Object.keys(object)\n .forEach(function(key) {\n var validator = schema[key];\n if (!validator) {\n if (!allowUnknown) {\n throw new Error('\"' + key + '\" is not allowed in \"' + parameterName + '\"');\n }\n return;\n }\n if (!validator.isValid(object[key])) {\n throw new Error(validator.message);\n }\n });\n}\n\nfunction validateOptions(options) {\n return validate(sign_options_schema, false, options, 'options');\n}\n\nfunction validatePayload(payload) {\n return validate(registered_claims_schema, true, payload, 'payload');\n}\n\nvar options_to_payload = {\n 'audience': 'aud',\n 'issuer': 'iss',\n 'subject': 'sub',\n 'jwtid': 'jti'\n};\n\nvar options_for_objects = [\n 'expiresIn',\n 'notBefore',\n 'noTimestamp',\n 'audience',\n 'issuer',\n 'subject',\n 'jwtid',\n];\n\nmodule.exports = function (payload, secretOrPrivateKey, options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n } else {\n options = options || {};\n }\n\n var isObjectPayload = typeof payload === 'object' &&\n !Buffer.isBuffer(payload);\n\n var header = Object.assign({\n alg: options.algorithm || 'HS256',\n typ: isObjectPayload ? 'JWT' : undefined,\n kid: options.keyid\n }, options.header);\n\n function failure(err) {\n if (callback) {\n return callback(err);\n }\n throw err;\n }\n\n if (!secretOrPrivateKey && options.algorithm !== 'none') {\n return failure(new Error('secretOrPrivateKey must have a value'));\n }\n\n if (typeof payload === 'undefined') {\n return failure(new Error('payload is required'));\n } else if (isObjectPayload) {\n try {\n validatePayload(payload);\n }\n catch (error) {\n return failure(error);\n }\n if (!options.mutatePayload) {\n payload = Object.assign({},payload);\n }\n } else {\n var invalid_options = options_for_objects.filter(function (opt) {\n return typeof options[opt] !== 'undefined';\n });\n\n if (invalid_options.length > 0) {\n return failure(new Error('invalid ' + invalid_options.join(',') + ' option for ' + (typeof payload ) + ' payload'));\n }\n }\n\n if (typeof payload.exp !== 'undefined' && typeof options.expiresIn !== 'undefined') {\n return failure(new Error('Bad \"options.expiresIn\" option the payload already has an \"exp\" property.'));\n }\n\n if (typeof payload.nbf !== 'undefined' && typeof options.notBefore !== 'undefined') {\n return failure(new Error('Bad \"options.notBefore\" option the payload already has an \"nbf\" property.'));\n }\n\n try {\n validateOptions(options);\n }\n catch (error) {\n return failure(error);\n }\n\n var timestamp = payload.iat || Math.floor(Date.now() / 1000);\n\n if (options.noTimestamp) {\n delete payload.iat;\n } else if (isObjectPayload) {\n payload.iat = timestamp;\n }\n\n if (typeof options.notBefore !== 'undefined') {\n try {\n payload.nbf = timespan(options.notBefore, timestamp);\n }\n catch (err) {\n return failure(err);\n }\n if (typeof payload.nbf === 'undefined') {\n return failure(new Error('\"notBefore\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n }\n\n if (typeof options.expiresIn !== 'undefined' && typeof payload === 'object') {\n try {\n payload.exp = timespan(options.expiresIn, timestamp);\n }\n catch (err) {\n return failure(err);\n }\n if (typeof payload.exp === 'undefined') {\n return failure(new Error('\"expiresIn\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n }\n\n Object.keys(options_to_payload).forEach(function (key) {\n var claim = options_to_payload[key];\n if (typeof options[key] !== 'undefined') {\n if (typeof payload[claim] !== 'undefined') {\n return failure(new Error('Bad \"options.' + key + '\" option. The payload already has an \"' + claim + '\" property.'));\n }\n payload[claim] = options[key];\n }\n });\n\n var encoding = options.encoding || 'utf8';\n\n if (typeof callback === 'function') {\n callback = callback && once(callback);\n\n jws.createSign({\n header: header,\n privateKey: secretOrPrivateKey,\n payload: payload,\n encoding: encoding\n }).once('error', callback)\n .once('done', function (signature) {\n callback(null, signature);\n });\n } else {\n return jws.sign({header: header, payload: payload, secret: secretOrPrivateKey, encoding: encoding});\n }\n};\n"],"sourceRoot":""}