{"ast":null,"code":"'use strict';\n\nvar crypto = require('crypto');\n\nfunction randomString(size) {\n var bits = (size + 1) * 6;\n var buffer = crypto.randomBytes(Math.ceil(bits / 8));\n var string = buffer.toString('base64').replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '');\n return string.slice(0, size);\n}\n\nfunction calculatePayloadHash(payload, algorithm, contentType) {\n var hash = crypto.createHash(algorithm);\n hash.update('hawk.1.payload\\n');\n hash.update((contentType ? contentType.split(';')[0].trim().toLowerCase() : '') + '\\n');\n hash.update(payload || '');\n hash.update('\\n');\n return hash.digest('base64');\n}\n\nexports.calculateMac = function (credentials, opts) {\n var normalized = 'hawk.1.header\\n' + opts.ts + '\\n' + opts.nonce + '\\n' + (opts.method || '').toUpperCase() + '\\n' + opts.resource + '\\n' + opts.host.toLowerCase() + '\\n' + opts.port + '\\n' + (opts.hash || '') + '\\n';\n\n if (opts.ext) {\n normalized = normalized + opts.ext.replace('\\\\', '\\\\\\\\').replace('\\n', '\\\\n');\n }\n\n normalized = normalized + '\\n';\n\n if (opts.app) {\n normalized = normalized + opts.app + '\\n' + (opts.dlg || '') + '\\n';\n }\n\n var hmac = crypto.createHmac(credentials.algorithm, credentials.key).update(normalized);\n var digest = hmac.digest('base64');\n return digest;\n};\n\nexports.header = function (uri, method, opts) {\n var timestamp = opts.timestamp || Math.floor((Date.now() + (opts.localtimeOffsetMsec || 0)) / 1000);\n var credentials = opts.credentials;\n\n if (!credentials || !credentials.id || !credentials.key || !credentials.algorithm) {\n return '';\n }\n\n if (['sha1', 'sha256'].indexOf(credentials.algorithm) === -1) {\n return '';\n }\n\n var artifacts = {\n ts: timestamp,\n nonce: opts.nonce || randomString(6),\n method: method,\n resource: uri.pathname + (uri.search || ''),\n host: uri.hostname,\n port: uri.port || (uri.protocol === 'http:' ? 80 : 443),\n hash: opts.hash,\n ext: opts.ext,\n app: opts.app,\n dlg: opts.dlg\n };\n\n if (!artifacts.hash && (opts.payload || opts.payload === '')) {\n artifacts.hash = calculatePayloadHash(opts.payload, credentials.algorithm, opts.contentType);\n }\n\n var mac = exports.calculateMac(credentials, artifacts);\n var hasExt = artifacts.ext !== null && artifacts.ext !== undefined && artifacts.ext !== '';\n var header = 'Hawk id=\"' + credentials.id + '\", ts=\"' + artifacts.ts + '\", nonce=\"' + artifacts.nonce + (artifacts.hash ? '\", hash=\"' + artifacts.hash : '') + (hasExt ? '\", ext=\"' + artifacts.ext.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"') : '') + '\", mac=\"' + mac + '\"';\n\n if (artifacts.app) {\n header = header + ', app=\"' + artifacts.app + (artifacts.dlg ? '\", dlg=\"' + artifacts.dlg : '') + '\"';\n }\n\n return header;\n};","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/request/lib/hawk.js"],"names":["crypto","require","randomString","size","bits","buffer","randomBytes","Math","ceil","string","toString","replace","slice","calculatePayloadHash","payload","algorithm","contentType","hash","createHash","update","split","trim","toLowerCase","digest","exports","calculateMac","credentials","opts","normalized","ts","nonce","method","toUpperCase","resource","host","port","ext","app","dlg","hmac","createHmac","key","header","uri","timestamp","floor","Date","now","localtimeOffsetMsec","id","indexOf","artifacts","pathname","search","hostname","protocol","mac","hasExt","undefined"],"mappings":"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","sourcesContent":["'use strict'\n\nvar crypto = require('crypto')\n\nfunction randomString (size) {\n var bits = (size + 1) * 6\n var buffer = crypto.randomBytes(Math.ceil(bits / 8))\n var string = buffer.toString('base64').replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '')\n return string.slice(0, size)\n}\n\nfunction calculatePayloadHash (payload, algorithm, contentType) {\n var hash = crypto.createHash(algorithm)\n hash.update('hawk.1.payload\\n')\n hash.update((contentType ? contentType.split(';')[0].trim().toLowerCase() : '') + '\\n')\n hash.update(payload || '')\n hash.update('\\n')\n return hash.digest('base64')\n}\n\nexports.calculateMac = function (credentials, opts) {\n var normalized = 'hawk.1.header\\n' +\n opts.ts + '\\n' +\n opts.nonce + '\\n' +\n (opts.method || '').toUpperCase() + '\\n' +\n opts.resource + '\\n' +\n opts.host.toLowerCase() + '\\n' +\n opts.port + '\\n' +\n (opts.hash || '') + '\\n'\n\n if (opts.ext) {\n normalized = normalized + opts.ext.replace('\\\\', '\\\\\\\\').replace('\\n', '\\\\n')\n }\n\n normalized = normalized + '\\n'\n\n if (opts.app) {\n normalized = normalized + opts.app + '\\n' + (opts.dlg || '') + '\\n'\n }\n\n var hmac = crypto.createHmac(credentials.algorithm, credentials.key).update(normalized)\n var digest = hmac.digest('base64')\n return digest\n}\n\nexports.header = function (uri, method, opts) {\n var timestamp = opts.timestamp || Math.floor((Date.now() + (opts.localtimeOffsetMsec || 0)) / 1000)\n var credentials = opts.credentials\n if (!credentials || !credentials.id || !credentials.key || !credentials.algorithm) {\n return ''\n }\n\n if (['sha1', 'sha256'].indexOf(credentials.algorithm) === -1) {\n return ''\n }\n\n var artifacts = {\n ts: timestamp,\n nonce: opts.nonce || randomString(6),\n method: method,\n resource: uri.pathname + (uri.search || ''),\n host: uri.hostname,\n port: uri.port || (uri.protocol === 'http:' ? 80 : 443),\n hash: opts.hash,\n ext: opts.ext,\n app: opts.app,\n dlg: opts.dlg\n }\n\n if (!artifacts.hash && (opts.payload || opts.payload === '')) {\n artifacts.hash = calculatePayloadHash(opts.payload, credentials.algorithm, opts.contentType)\n }\n\n var mac = exports.calculateMac(credentials, artifacts)\n\n var hasExt = artifacts.ext !== null && artifacts.ext !== undefined && artifacts.ext !== ''\n var header = 'Hawk id=\"' + credentials.id +\n '\", ts=\"' + artifacts.ts +\n '\", nonce=\"' + artifacts.nonce +\n (artifacts.hash ? '\", hash=\"' + artifacts.hash : '') +\n (hasExt ? '\", ext=\"' + artifacts.ext.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"') : '') +\n '\", mac=\"' + mac + '\"'\n\n if (artifacts.app) {\n header = header + ', app=\"' + artifacts.app + (artifacts.dlg ? '\", dlg=\"' + artifacts.dlg : '') + '\"'\n }\n\n return header\n}\n"]},"metadata":{},"sourceType":"script"}