@webex/test-helper-server 3.0.0-beta.13 → 3.0.0-beta.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cookies.js.map +1 -1
- package/dist/files.js.map +1 -1
- package/dist/form.js.map +1 -1
- package/dist/index.js +19 -3
- package/dist/index.js.map +1 -1
- package/dist/json.js.map +1 -1
- package/dist/reflect.js.map +1 -1
- package/package.json +2 -2
- package/src/.eslintrc.yml +17 -17
- package/src/cookies.js +1 -3
- package/src/files.js +2 -6
- package/src/form.js +0 -1
- package/src/index.js +90 -82
- package/src/json.js +1 -2
- package/src/redirect.html +10 -13
- package/src/reflect.js +0 -1
package/dist/cookies.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["cookieParser","require","express","router","Router","use","get","req","res","status","cookie","send","end","cookies","oreo","module","exports"],"sources":["cookies.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\
|
|
1
|
+
{"version":3,"names":["cookieParser","require","express","router","Router","use","get","req","res","status","cookie","send","end","cookies","oreo","module","exports"],"sources":["cookies.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nconst cookieParser = require(`cookie-parser`);\nconst express = require(`express`);\n\n/* eslint new-cap: [0] */\nconst router = express.Router();\n\n// Enable cookies\n// --------------\n\nrouter.use(cookieParser());\n\nrouter.get(`/set`, (req, res) => {\n res.status(200).cookie(`oreo`, `double stuf`).send().end();\n});\n\nrouter.get(`/expect`, (req, res) => {\n if (req.cookies.oreo === `double stuf`) {\n res.status(200).send().end();\n } else {\n res.status(403).send().end();\n }\n});\n\nmodule.exports = router;\n"],"mappings":";;AAAA;AACA;AACA;AAEA,IAAMA,YAAY,GAAGC,OAAO,iBAA5B;;AACA,IAAMC,OAAO,GAAGD,OAAO,WAAvB;AAEA;;;AACA,IAAME,MAAM,GAAGD,OAAO,CAACE,MAAR,EAAf,C,CAEA;AACA;;AAEAD,MAAM,CAACE,GAAP,CAAWL,YAAY,EAAvB;AAEAG,MAAM,CAACG,GAAP,SAAmB,UAACC,GAAD,EAAMC,GAAN,EAAc;EAC/BA,GAAG,CAACC,MAAJ,CAAW,GAAX,EAAgBC,MAAhB,wBAA8CC,IAA9C,GAAqDC,GAArD;AACD,CAFD;AAIAT,MAAM,CAACG,GAAP,YAAsB,UAACC,GAAD,EAAMC,GAAN,EAAc;EAClC,IAAID,GAAG,CAACM,OAAJ,CAAYC,IAAZ,kBAAJ,EAAwC;IACtCN,GAAG,CAACC,MAAJ,CAAW,GAAX,EAAgBE,IAAhB,GAAuBC,GAAvB;EACD,CAFD,MAEO;IACLJ,GAAG,CAACC,MAAJ,CAAW,GAAX,EAAgBE,IAAhB,GAAuBC,GAAvB;EACD;AACF,CAND;AAQAG,MAAM,CAACC,OAAP,GAAiBb,MAAjB"}
|
package/dist/files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["bodyParser","require","express","fs","mkdirp","multer","path","reflect","uuid","router","Router","use","raw","patch","post","put","uploadPath","process","env","PACKAGE","req","res","next","err","id","v4","storeAt","join","getFrom","writeFile","body","err2","status","json","loc","end","get","params","Error","readFile","data","send","storage","memoryStorage","upload","forEach","methodName","array","files","static","__dirname","module","exports"],"sources":["files.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\
|
|
1
|
+
{"version":3,"names":["bodyParser","require","express","fs","mkdirp","multer","path","reflect","uuid","router","Router","use","raw","patch","post","put","uploadPath","process","env","PACKAGE","req","res","next","err","id","v4","storeAt","join","getFrom","writeFile","body","err2","status","json","loc","end","get","params","Error","readFile","data","send","storage","memoryStorage","upload","forEach","methodName","array","files","static","__dirname","module","exports"],"sources":["files.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nconst bodyParser = require(`body-parser`);\nconst express = require(`express`);\nconst fs = require(`fs`);\nconst mkdirp = require(`mkdirp`);\nconst multer = require(`multer`);\nconst path = require(`path`);\nconst reflect = require(`./reflect`);\nconst uuid = require(`uuid`);\n\n/* eslint new-cap: [0] */\nconst router = express.Router();\n\n// Configure Image processing\n// -------------------------\n\nrouter.use(bodyParser.raw(`image/*`));\n\nrouter.patch(`/reflect`, reflect);\nrouter.post(`/reflect`, reflect);\nrouter.put(`/reflect`, reflect);\n\nconst uploadPath = process.env.PACKAGE ? `.tmp/${process.env.PACKAGE}/files` : `.tmp/files`;\n\nrouter.post(`/upload`, (req, res, next) => {\n mkdirp(uploadPath, (err) => {\n if (err) {\n return next(err);\n }\n\n const id = uuid.v4();\n const storeAt = path.join(uploadPath, id);\n const getFrom = `/files/download/${id}`;\n\n /* eslint max-nested-callbacks: [0] */\n return fs.writeFile(storeAt, req.body, (err2) => {\n if (err2) {\n return next(err2);\n }\n\n return res\n .status(201)\n .json({\n loc: getFrom,\n })\n .end();\n });\n });\n});\n\nrouter.get(`/download/:id`, (req, res, next) => {\n if (!req.params.id) {\n return next(new Error(`id param is required`));\n }\n\n return fs.readFile(path.join(uploadPath, req.params.id), (err, data) => {\n if (err) {\n return next(err);\n }\n\n return res.status(200).send(data).end();\n });\n});\n\nconst storage = multer.memoryStorage();\nconst upload = multer({storage});\n\n[`put`, `patch`, `post`].forEach((methodName) => {\n router[methodName](`/metadata`, upload.array(`files`), (req, res) => {\n res.status(200).json(req.files).end();\n });\n});\n\nrouter.use(`/get`, express.static(path.join(__dirname, `static`)));\n\nmodule.exports = router;\n"],"mappings":"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"}
|
package/dist/form.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["bodyParser","require","express","reflect","router","Router","use","urlencoded","extended","patch","put","post","module","exports"],"sources":["form.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\
|
|
1
|
+
{"version":3,"names":["bodyParser","require","express","reflect","router","Router","use","urlencoded","extended","patch","put","post","module","exports"],"sources":["form.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nconst bodyParser = require(`body-parser`);\nconst express = require(`express`);\nconst reflect = require(`./reflect`);\n\n/* eslint new-cap: [0] */\nconst router = express.Router();\n\n// Configure Image processing\n// -------------------------\n\nrouter.use(bodyParser.urlencoded({extended: true}));\n\nrouter.patch(`/reflect`, reflect);\nrouter.put(`/reflect`, reflect);\nrouter.post(`/reflect`, reflect);\n\nmodule.exports = router;\n"],"mappings":";;AAAA;AACA;AACA;AAEA,IAAMA,UAAU,GAAGC,OAAO,eAA1B;;AACA,IAAMC,OAAO,GAAGD,OAAO,WAAvB;;AACA,IAAME,OAAO,GAAGF,OAAO,aAAvB;AAEA;;;AACA,IAAMG,MAAM,GAAGF,OAAO,CAACG,MAAR,EAAf,C,CAEA;AACA;;AAEAD,MAAM,CAACE,GAAP,CAAWN,UAAU,CAACO,UAAX,CAAsB;EAACC,QAAQ,EAAE;AAAX,CAAtB,CAAX;AAEAJ,MAAM,CAACK,KAAP,aAAyBN,OAAzB;AACAC,MAAM,CAACM,GAAP,aAAuBP,OAAvB;AACAC,MAAM,CAACO,IAAP,aAAwBR,OAAxB;AAEAS,MAAM,CAACC,OAAP,GAAiBT,MAAjB"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
|
|
4
|
+
|
|
5
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
|
6
|
+
|
|
7
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
8
|
+
|
|
9
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
|
10
|
+
|
|
11
|
+
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
|
4
12
|
|
|
5
|
-
var
|
|
13
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
14
|
+
|
|
15
|
+
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
16
|
|
|
7
17
|
var _parseInt2 = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/parse-int"));
|
|
8
18
|
|
|
19
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
20
|
+
|
|
21
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
22
|
+
|
|
23
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
24
|
+
|
|
9
25
|
/*!
|
|
10
26
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
11
27
|
*/
|
|
@@ -167,7 +183,7 @@ glob.sync(fixturePattern).forEach(function (fixturePath) {
|
|
|
167
183
|
}
|
|
168
184
|
|
|
169
185
|
var redirect = url.parse(req.url, true);
|
|
170
|
-
var qs = querystring.stringify((
|
|
186
|
+
var qs = querystring.stringify(_objectSpread({
|
|
171
187
|
state: req.query.state
|
|
172
188
|
}, JSON.parse(response.body)));
|
|
173
189
|
redirect = "".concat(redirect.pathname, "#").concat(qs);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["btoa","require","bodyParser","browserify","compression","cors","express","fs","glob","http","morgan","path","querystring","request","url","base64","app","process","env","DEBUG","use","immediate","credentials","origin","o","callback","raw","type","req","res","next","set","appPattern","sync","forEach","appjs","packageName","replace","statSync","debug","transform","get","send","router","headers","authorization","status","end","json","query","fixturePattern","fixturePath","code","state","JSON","parse","decode","exchange","method","uri","IDBROKER_BASE_URL","form","grant_type","redirect_uri","WEBEX_REDIRECT_URI","self_contained_token","auth","user","WEBEX_CLIENT_ID","pass","WEBEX_CLIENT_SECRET","sendImmediately","err","response","console","warn","statusCode","Error","body","redirect","qs","stringify","pathname","info","static","post","refresh_token","resolve","__dirname","port","SERVER_PORT","createServer","listen","log","fixtureport","FIXTURE_PORT","corsport","CORS_PORT"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint max-nested-callbacks: [2, 3] */\n/* eslint no-console: [0] */\n\n\nconst btoa = require(`btoa`);\nconst bodyParser = require(`body-parser`);\nconst browserify = require(`browserify-middleware`);\nconst compression = require(`compression`);\nconst cors = require(`cors`);\nconst express = require(`express`);\nconst fs = require(`fs`);\nconst glob = require(`glob`);\nconst http = require(`http`);\nconst morgan = require(`morgan`);\nconst path = require(`path`);\nconst querystring = require(`querystring`);\nconst request = require(`request`);\nconst url = require(`url`);\nconst base64 = require(`urlsafe-base64`);\n\nconst app = express();\n\n// Configure Logging\n// -----------------\n\nif (process.env.DEBUG) {\n app.use(morgan(`short`, {\n immediate: true\n }));\n}\n\n// Configure CORS\n// --------------\n\napp.use(cors({\n credentials: true,\n origin(o, callback) {\n callback(null, true);\n }\n}));\n\n// Configure body processing\n// -------------------------\n\napp.use(bodyParser.raw({type: `image/*`}));\n\n// Enable gzip/deflate\n// -------------------\n\napp.use(compression());\n\n// Close all connections\n// ---------------------\n\n// This *should* help tests run faster in IE, which has a very low number of\n// allowed connections to the same origin.\napp.use((req, res, next) => {\n res.set(`connection`, `close`);\n next();\n});\n\n// Configure Browserify\n// --------------------\n\nconst appPattern = `packages/{*,*/*}/test/automation/fixtures/app.js`;\n\nglob.sync(appPattern).forEach((appjs) => {\n const packageName = appjs\n .replace(`packages/`, ``)\n .replace(`/test/automation/fixtures/app.js`, ``);\n\n // eslint-disable-next-line no-sync\n fs.statSync(appjs);\n app.use(`/${packageName}/app.js`, browserify(appjs, {\n debug: true,\n transform: [\n `babelify`,\n `envify`\n ]\n }));\n});\n\n// Enable active routes\n// --------------------\n\napp.get('/', (req, res) => {\n res.send(`<!DOCTYPE html>\n<html>\n <head>\n <title>Redirect Dispatcher</title>\n <script>\n try {\n var state = /state=(.+?)(&.*)?$/.exec(window.location)[1]\n console.info('state', state);\n var name = JSON.parse(atob(state)).name;\n console.info('name', name);\n window.location.pathname = name;\n }\n catch(err) {\n console.warn(err);\n }\n </script>\n </head>\n <body>\n\n </body>\n</html>`);\n});\n\napp.use(`/cookies`, require(`./cookies`));\napp.use(`/json`, require(`./json`));\napp.use(`/form`, require(`./form`));\napp.use(`/files`, require(`./files`));\napp.use(`/jwt`, require(`@webex/test-helper-appid`).router);\n\napp.get(`/requires-basic-auth`, (req, res) => {\n if (req.headers.authorization === `Basic ${btoa(`basicuser:basicpass`)}`) {\n res.status(200).send().end();\n }\n else {\n res.status(403).send().end();\n }\n});\n\napp.get(`/requires-bearer-auth`, (req, res) => {\n if (req.headers.authorization === `Bearer bearertoken`) {\n res.status(200).send().end();\n }\n else {\n res.status(403).send().end();\n }\n});\n\napp.get(`/return-qs-as-object`, (req, res) => {\n res.status(200).json(req.query).end();\n});\n\napp.get(`/embargoed`, (req, res) => {\n res.status(451).end();\n});\n\n// Enable static routes\n// --------------------\n\nconst fixturePattern = `packages/{*,*/*}/test/automation/fixtures`;\n\n\nglob.sync(fixturePattern).forEach((fixturePath) => {\n const packageName = fixturePath\n .replace(`packages/`, ``)\n .replace(`/test/automation/fixtures`, ``);\n\n app.get(`/${packageName}`, (req, res, next) => {\n if (!req.query.code) {\n next();\n\n return;\n }\n\n const state = JSON.parse(base64.decode(req.query.state));\n\n if (state.exchange === false) {\n next();\n\n return;\n }\n\n request({\n /* eslint-disable camelcase */\n method: `POST`,\n uri: `${process.env.IDBROKER_BASE_URL || `https://idbroker.webex.com`}/idb/oauth2/v1/access_token`,\n form: {\n grant_type: `authorization_code`,\n redirect_uri: process.env.WEBEX_REDIRECT_URI,\n code: req.query.code,\n self_contained_token: true\n },\n auth: {\n user: process.env.WEBEX_CLIENT_ID,\n pass: process.env.WEBEX_CLIENT_SECRET,\n sendImmediately: true\n }\n /* eslint-enable camelcase */\n }, (err, response) => {\n if (err) {\n console.warn(`Request to CI failed with non-HTTP error`);\n next(err);\n\n return;\n }\n if (response.statusCode >= 400) {\n console.warn(`Got unexpected response from CI`);\n next(new Error(response.body));\n\n return;\n }\n let redirect = url.parse(req.url, true);\n const qs = querystring.stringify(Object.assign({state: req.query.state}, JSON.parse(response.body)));\n\n redirect = `${redirect.pathname}#${qs}`;\n\n console.info(`redirecting to ${redirect}`);\n res.redirect(redirect);\n });\n });\n app.use(`/${packageName}`, express.static(fixturePath));\n});\n\napp.post(`/refresh`, bodyParser.json(), (req, res, next) => {\n if (!req.body.refresh_token) {\n next(new Error(`\\`refresh_token\\` is required`));\n\n return;\n }\n console.info(`Refreshing access token`);\n request({\n /* eslint-disable camelcase */\n method: `POST`,\n uri: `${process.env.IDBROKER_BASE_URL || `https://idbroker.webex.com`}/idb/oauth2/v1/access_token`,\n form: {\n grant_type: `refresh_token`,\n redirect_uri: process.env.WEBEX_REDIRECT_URI,\n refresh_token: req.body.refresh_token\n },\n auth: {\n user: process.env.WEBEX_CLIENT_ID,\n pass: process.env.WEBEX_CLIENT_SECRET,\n sendImmediately: true\n }\n /* eslint-enable camelcase */\n }, (err, response) => {\n if (err) {\n console.warn(`Request to CI failed with non-HTTP error`);\n next(err);\n\n return;\n }\n if (response.statusCode >= 400) {\n console.warn(`Got unexpected response from CI`);\n next(new Error(response.body));\n\n return;\n }\n\n console.info(`Returning new access token`);\n res.status(200).json(JSON.parse(response.body)).end();\n });\n});\n\napp.use(express.static(path.resolve(__dirname, '..', `static`)));\n\n// Start the server\n// ----------------\n\nconst port = parseInt(process.env.SERVER_PORT, 10) || 8000;\n\nhttp.createServer(app).listen(port, () => {\n console.log(`Express server listening on port ${port}`);\n});\n\nconst fixtureport = parseInt(process.env.FIXTURE_PORT, 10) || 3000;\n\nhttp.createServer(app).listen(fixtureport, () => {\n console.log(`Express server listening on port ${fixtureport}`);\n});\n\nconst corsport = parseInt(process.env.CORS_PORT, 10) || 3002;\n\nhttp.createServer(app).listen(corsport, () => {\n console.log(`Express server listening on port ${corsport}`);\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["btoa","require","bodyParser","browserify","compression","cors","express","fs","glob","http","morgan","path","querystring","request","url","base64","app","process","env","DEBUG","use","immediate","credentials","origin","o","callback","raw","type","req","res","next","set","appPattern","sync","forEach","appjs","packageName","replace","statSync","debug","transform","get","send","router","headers","authorization","status","end","json","query","fixturePattern","fixturePath","code","state","JSON","parse","decode","exchange","method","uri","IDBROKER_BASE_URL","form","grant_type","redirect_uri","WEBEX_REDIRECT_URI","self_contained_token","auth","user","WEBEX_CLIENT_ID","pass","WEBEX_CLIENT_SECRET","sendImmediately","err","response","console","warn","statusCode","Error","body","redirect","qs","stringify","pathname","info","static","post","refresh_token","resolve","__dirname","port","SERVER_PORT","createServer","listen","log","fixtureport","FIXTURE_PORT","corsport","CORS_PORT"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint max-nested-callbacks: [2, 3] */\n/* eslint no-console: [0] */\n\nconst btoa = require(`btoa`);\nconst bodyParser = require(`body-parser`);\nconst browserify = require(`browserify-middleware`);\nconst compression = require(`compression`);\nconst cors = require(`cors`);\nconst express = require(`express`);\nconst fs = require(`fs`);\nconst glob = require(`glob`);\nconst http = require(`http`);\nconst morgan = require(`morgan`);\nconst path = require(`path`);\nconst querystring = require(`querystring`);\nconst request = require(`request`);\nconst url = require(`url`);\nconst base64 = require(`urlsafe-base64`);\n\nconst app = express();\n\n// Configure Logging\n// -----------------\n\nif (process.env.DEBUG) {\n app.use(\n morgan(`short`, {\n immediate: true,\n })\n );\n}\n\n// Configure CORS\n// --------------\n\napp.use(\n cors({\n credentials: true,\n origin(o, callback) {\n callback(null, true);\n },\n })\n);\n\n// Configure body processing\n// -------------------------\n\napp.use(bodyParser.raw({type: `image/*`}));\n\n// Enable gzip/deflate\n// -------------------\n\napp.use(compression());\n\n// Close all connections\n// ---------------------\n\n// This *should* help tests run faster in IE, which has a very low number of\n// allowed connections to the same origin.\napp.use((req, res, next) => {\n res.set(`connection`, `close`);\n next();\n});\n\n// Configure Browserify\n// --------------------\n\nconst appPattern = `packages/{*,*/*}/test/automation/fixtures/app.js`;\n\nglob.sync(appPattern).forEach((appjs) => {\n const packageName = appjs\n .replace(`packages/`, ``)\n .replace(`/test/automation/fixtures/app.js`, ``);\n\n // eslint-disable-next-line no-sync\n fs.statSync(appjs);\n app.use(\n `/${packageName}/app.js`,\n browserify(appjs, {\n debug: true,\n transform: [`babelify`, `envify`],\n })\n );\n});\n\n// Enable active routes\n// --------------------\n\napp.get('/', (req, res) => {\n res.send(`<!DOCTYPE html>\n<html>\n <head>\n <title>Redirect Dispatcher</title>\n <script>\n try {\n var state = /state=(.+?)(&.*)?$/.exec(window.location)[1]\n console.info('state', state);\n var name = JSON.parse(atob(state)).name;\n console.info('name', name);\n window.location.pathname = name;\n }\n catch(err) {\n console.warn(err);\n }\n </script>\n </head>\n <body>\n\n </body>\n</html>`);\n});\n\napp.use(`/cookies`, require(`./cookies`));\napp.use(`/json`, require(`./json`));\napp.use(`/form`, require(`./form`));\napp.use(`/files`, require(`./files`));\napp.use(`/jwt`, require(`@webex/test-helper-appid`).router);\n\napp.get(`/requires-basic-auth`, (req, res) => {\n if (req.headers.authorization === `Basic ${btoa(`basicuser:basicpass`)}`) {\n res.status(200).send().end();\n } else {\n res.status(403).send().end();\n }\n});\n\napp.get(`/requires-bearer-auth`, (req, res) => {\n if (req.headers.authorization === `Bearer bearertoken`) {\n res.status(200).send().end();\n } else {\n res.status(403).send().end();\n }\n});\n\napp.get(`/return-qs-as-object`, (req, res) => {\n res.status(200).json(req.query).end();\n});\n\napp.get(`/embargoed`, (req, res) => {\n res.status(451).end();\n});\n\n// Enable static routes\n// --------------------\n\nconst fixturePattern = `packages/{*,*/*}/test/automation/fixtures`;\n\nglob.sync(fixturePattern).forEach((fixturePath) => {\n const packageName = fixturePath.replace(`packages/`, ``).replace(`/test/automation/fixtures`, ``);\n\n app.get(`/${packageName}`, (req, res, next) => {\n if (!req.query.code) {\n next();\n\n return;\n }\n\n const state = JSON.parse(base64.decode(req.query.state));\n\n if (state.exchange === false) {\n next();\n\n return;\n }\n\n request(\n {\n /* eslint-disable camelcase */\n method: `POST`,\n uri: `${\n process.env.IDBROKER_BASE_URL || `https://idbroker.webex.com`\n }/idb/oauth2/v1/access_token`,\n form: {\n grant_type: `authorization_code`,\n redirect_uri: process.env.WEBEX_REDIRECT_URI,\n code: req.query.code,\n self_contained_token: true,\n },\n auth: {\n user: process.env.WEBEX_CLIENT_ID,\n pass: process.env.WEBEX_CLIENT_SECRET,\n sendImmediately: true,\n },\n /* eslint-enable camelcase */\n },\n (err, response) => {\n if (err) {\n console.warn(`Request to CI failed with non-HTTP error`);\n next(err);\n\n return;\n }\n if (response.statusCode >= 400) {\n console.warn(`Got unexpected response from CI`);\n next(new Error(response.body));\n\n return;\n }\n let redirect = url.parse(req.url, true);\n const qs = querystring.stringify({state: req.query.state, ...JSON.parse(response.body)});\n\n redirect = `${redirect.pathname}#${qs}`;\n\n console.info(`redirecting to ${redirect}`);\n res.redirect(redirect);\n }\n );\n });\n app.use(`/${packageName}`, express.static(fixturePath));\n});\n\napp.post(`/refresh`, bodyParser.json(), (req, res, next) => {\n if (!req.body.refresh_token) {\n next(new Error(`\\`refresh_token\\` is required`));\n\n return;\n }\n console.info(`Refreshing access token`);\n request(\n {\n /* eslint-disable camelcase */\n method: `POST`,\n uri: `${\n process.env.IDBROKER_BASE_URL || `https://idbroker.webex.com`\n }/idb/oauth2/v1/access_token`,\n form: {\n grant_type: `refresh_token`,\n redirect_uri: process.env.WEBEX_REDIRECT_URI,\n refresh_token: req.body.refresh_token,\n },\n auth: {\n user: process.env.WEBEX_CLIENT_ID,\n pass: process.env.WEBEX_CLIENT_SECRET,\n sendImmediately: true,\n },\n /* eslint-enable camelcase */\n },\n (err, response) => {\n if (err) {\n console.warn(`Request to CI failed with non-HTTP error`);\n next(err);\n\n return;\n }\n if (response.statusCode >= 400) {\n console.warn(`Got unexpected response from CI`);\n next(new Error(response.body));\n\n return;\n }\n\n console.info(`Returning new access token`);\n res.status(200).json(JSON.parse(response.body)).end();\n }\n );\n});\n\napp.use(express.static(path.resolve(__dirname, '..', `static`)));\n\n// Start the server\n// ----------------\n\nconst port = parseInt(process.env.SERVER_PORT, 10) || 8000;\n\nhttp.createServer(app).listen(port, () => {\n console.log(`Express server listening on port ${port}`);\n});\n\nconst fixtureport = parseInt(process.env.FIXTURE_PORT, 10) || 3000;\n\nhttp.createServer(app).listen(fixtureport, () => {\n console.log(`Express server listening on port ${fixtureport}`);\n});\n\nconst corsport = parseInt(process.env.CORS_PORT, 10) || 3002;\n\nhttp.createServer(app).listen(corsport, () => {\n console.log(`Express server listening on port ${corsport}`);\n});\n"],"mappings":"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"}
|
package/dist/json.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["bodyParser","require","express","reflect","router","Router","use","json","get","req","res","send","isObject","patch","post","put","module","exports"],"sources":["json.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\
|
|
1
|
+
{"version":3,"names":["bodyParser","require","express","reflect","router","Router","use","json","get","req","res","send","isObject","patch","post","put","module","exports"],"sources":["json.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nconst bodyParser = require(`body-parser`);\nconst express = require(`express`);\nconst reflect = require(`./reflect`);\n\n/* eslint new-cap: [0] */\nconst router = express.Router();\n\n// Configure JSON processing\n// -------------------------\n\nrouter.use(bodyParser.json());\n\nrouter.get(`/get`, (req, res) => {\n res.send({\n isObject: true,\n });\n});\n\nrouter.patch(`/set`, reflect);\nrouter.post(`/set`, reflect);\nrouter.put(`/set`, reflect);\n\nmodule.exports = router;\n"],"mappings":";;AAAA;AACA;AACA;AAEA,IAAMA,UAAU,GAAGC,OAAO,eAA1B;;AACA,IAAMC,OAAO,GAAGD,OAAO,WAAvB;;AACA,IAAME,OAAO,GAAGF,OAAO,aAAvB;AAEA;;;AACA,IAAMG,MAAM,GAAGF,OAAO,CAACG,MAAR,EAAf,C,CAEA;AACA;;AAEAD,MAAM,CAACE,GAAP,CAAWN,UAAU,CAACO,IAAX,EAAX;AAEAH,MAAM,CAACI,GAAP,SAAmB,UAACC,GAAD,EAAMC,GAAN,EAAc;EAC/BA,GAAG,CAACC,IAAJ,CAAS;IACPC,QAAQ,EAAE;EADH,CAAT;AAGD,CAJD;AAMAR,MAAM,CAACS,KAAP,SAAqBV,OAArB;AACAC,MAAM,CAACU,IAAP,SAAoBX,OAApB;AACAC,MAAM,CAACW,GAAP,SAAmBZ,OAAnB;AAEAa,MAAM,CAACC,OAAP,GAAiBb,MAAjB"}
|
package/dist/reflect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["reflect","req","res","set","headers","status","send","body","end","module","exports"],"sources":["reflect.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n
|
|
1
|
+
{"version":3,"names":["reflect","req","res","set","headers","status","send","body","end","module","exports"],"sources":["reflect.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/**\n * @param {http.IncomingMessage} req\n * @param {http.ServerResponse} res\n * @returns {undefined}\n */\nfunction reflect(req, res) {\n res.set(`content-type`, req.headers[`content-type`]);\n res.status(200).send(req.body).end();\n}\n\nmodule.exports = reflect;\n"],"mappings":";;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASA,OAAT,CAAiBC,GAAjB,EAAsBC,GAAtB,EAA2B;EACzBA,GAAG,CAACC,GAAJ,iBAAwBF,GAAG,CAACG,OAAJ,gBAAxB;EACAF,GAAG,CAACG,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqBL,GAAG,CAACM,IAAzB,EAA+BC,GAA/B;AACD;;AAEDC,MAAM,CAACC,OAAP,GAAiBV,OAAjB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/test-helper-server",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.15",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"node": ">=16"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@webex/test-helper-appid": "3.0.0-beta.
|
|
16
|
+
"@webex/test-helper-appid": "3.0.0-beta.15",
|
|
17
17
|
"body-parser": "^1.19.0",
|
|
18
18
|
"browserify-middleware": "^8.1.1",
|
|
19
19
|
"btoa": "^1.2.1",
|
package/src/.eslintrc.yml
CHANGED
|
@@ -5,20 +5,20 @@ parserOptions:
|
|
|
5
5
|
blockBindings: false
|
|
6
6
|
modules: false
|
|
7
7
|
rules:
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
8
|
+
arrow-parens: off
|
|
9
|
+
arrow-spacing: off
|
|
10
|
+
constructor-super: off
|
|
11
|
+
generator-star-spacing: off
|
|
12
|
+
no-class-assign: off
|
|
13
|
+
no-const-assign: off
|
|
14
|
+
no-dupe-class-members: off
|
|
15
|
+
no-this-before-super: off
|
|
16
|
+
no-var: off
|
|
17
|
+
object-shorthand: off
|
|
18
|
+
prefer-arrow-callback: off
|
|
19
|
+
prefer-const: off
|
|
20
|
+
prefer-reflect: off
|
|
21
|
+
prefer-spread: off
|
|
22
|
+
prefer-template: off
|
|
23
|
+
quotes: off
|
|
24
|
+
require-yield: off
|
package/src/cookies.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
6
5
|
const cookieParser = require(`cookie-parser`);
|
|
7
6
|
const express = require(`express`);
|
|
8
7
|
|
|
@@ -21,8 +20,7 @@ router.get(`/set`, (req, res) => {
|
|
|
21
20
|
router.get(`/expect`, (req, res) => {
|
|
22
21
|
if (req.cookies.oreo === `double stuf`) {
|
|
23
22
|
res.status(200).send().end();
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
23
|
+
} else {
|
|
26
24
|
res.status(403).send().end();
|
|
27
25
|
}
|
|
28
26
|
});
|
package/src/files.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
6
5
|
const bodyParser = require(`body-parser`);
|
|
7
6
|
const express = require(`express`);
|
|
8
7
|
const fs = require(`fs`);
|
|
@@ -45,7 +44,7 @@ router.post(`/upload`, (req, res, next) => {
|
|
|
45
44
|
return res
|
|
46
45
|
.status(201)
|
|
47
46
|
.json({
|
|
48
|
-
loc: getFrom
|
|
47
|
+
loc: getFrom,
|
|
49
48
|
})
|
|
50
49
|
.end();
|
|
51
50
|
});
|
|
@@ -71,10 +70,7 @@ const upload = multer({storage});
|
|
|
71
70
|
|
|
72
71
|
[`put`, `patch`, `post`].forEach((methodName) => {
|
|
73
72
|
router[methodName](`/metadata`, upload.array(`files`), (req, res) => {
|
|
74
|
-
res
|
|
75
|
-
.status(200)
|
|
76
|
-
.json(req.files)
|
|
77
|
-
.end();
|
|
73
|
+
res.status(200).json(req.files).end();
|
|
78
74
|
});
|
|
79
75
|
});
|
|
80
76
|
|
package/src/form.js
CHANGED
package/src/index.js
CHANGED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
/* eslint max-nested-callbacks: [2, 3] */
|
|
6
6
|
/* eslint no-console: [0] */
|
|
7
7
|
|
|
8
|
-
|
|
9
8
|
const btoa = require(`btoa`);
|
|
10
9
|
const bodyParser = require(`body-parser`);
|
|
11
10
|
const browserify = require(`browserify-middleware`);
|
|
@@ -28,20 +27,24 @@ const app = express();
|
|
|
28
27
|
// -----------------
|
|
29
28
|
|
|
30
29
|
if (process.env.DEBUG) {
|
|
31
|
-
app.use(
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
app.use(
|
|
31
|
+
morgan(`short`, {
|
|
32
|
+
immediate: true,
|
|
33
|
+
})
|
|
34
|
+
);
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
// Configure CORS
|
|
37
38
|
// --------------
|
|
38
39
|
|
|
39
|
-
app.use(
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
40
|
+
app.use(
|
|
41
|
+
cors({
|
|
42
|
+
credentials: true,
|
|
43
|
+
origin(o, callback) {
|
|
44
|
+
callback(null, true);
|
|
45
|
+
},
|
|
46
|
+
})
|
|
47
|
+
);
|
|
45
48
|
|
|
46
49
|
// Configure body processing
|
|
47
50
|
// -------------------------
|
|
@@ -75,13 +78,13 @@ glob.sync(appPattern).forEach((appjs) => {
|
|
|
75
78
|
|
|
76
79
|
// eslint-disable-next-line no-sync
|
|
77
80
|
fs.statSync(appjs);
|
|
78
|
-
app.use(
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
`envify`
|
|
83
|
-
|
|
84
|
-
|
|
81
|
+
app.use(
|
|
82
|
+
`/${packageName}/app.js`,
|
|
83
|
+
browserify(appjs, {
|
|
84
|
+
debug: true,
|
|
85
|
+
transform: [`babelify`, `envify`],
|
|
86
|
+
})
|
|
87
|
+
);
|
|
85
88
|
});
|
|
86
89
|
|
|
87
90
|
// Enable active routes
|
|
@@ -120,8 +123,7 @@ app.use(`/jwt`, require(`@webex/test-helper-appid`).router);
|
|
|
120
123
|
app.get(`/requires-basic-auth`, (req, res) => {
|
|
121
124
|
if (req.headers.authorization === `Basic ${btoa(`basicuser:basicpass`)}`) {
|
|
122
125
|
res.status(200).send().end();
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
126
|
+
} else {
|
|
125
127
|
res.status(403).send().end();
|
|
126
128
|
}
|
|
127
129
|
});
|
|
@@ -129,8 +131,7 @@ app.get(`/requires-basic-auth`, (req, res) => {
|
|
|
129
131
|
app.get(`/requires-bearer-auth`, (req, res) => {
|
|
130
132
|
if (req.headers.authorization === `Bearer bearertoken`) {
|
|
131
133
|
res.status(200).send().end();
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
+
} else {
|
|
134
135
|
res.status(403).send().end();
|
|
135
136
|
}
|
|
136
137
|
});
|
|
@@ -148,11 +149,8 @@ app.get(`/embargoed`, (req, res) => {
|
|
|
148
149
|
|
|
149
150
|
const fixturePattern = `packages/{*,*/*}/test/automation/fixtures`;
|
|
150
151
|
|
|
151
|
-
|
|
152
152
|
glob.sync(fixturePattern).forEach((fixturePath) => {
|
|
153
|
-
const packageName = fixturePath
|
|
154
|
-
.replace(`packages/`, ``)
|
|
155
|
-
.replace(`/test/automation/fixtures`, ``);
|
|
153
|
+
const packageName = fixturePath.replace(`packages/`, ``).replace(`/test/automation/fixtures`, ``);
|
|
156
154
|
|
|
157
155
|
app.get(`/${packageName}`, (req, res, next) => {
|
|
158
156
|
if (!req.query.code) {
|
|
@@ -169,23 +167,79 @@ glob.sync(fixturePattern).forEach((fixturePath) => {
|
|
|
169
167
|
return;
|
|
170
168
|
}
|
|
171
169
|
|
|
172
|
-
request(
|
|
170
|
+
request(
|
|
171
|
+
{
|
|
172
|
+
/* eslint-disable camelcase */
|
|
173
|
+
method: `POST`,
|
|
174
|
+
uri: `${
|
|
175
|
+
process.env.IDBROKER_BASE_URL || `https://idbroker.webex.com`
|
|
176
|
+
}/idb/oauth2/v1/access_token`,
|
|
177
|
+
form: {
|
|
178
|
+
grant_type: `authorization_code`,
|
|
179
|
+
redirect_uri: process.env.WEBEX_REDIRECT_URI,
|
|
180
|
+
code: req.query.code,
|
|
181
|
+
self_contained_token: true,
|
|
182
|
+
},
|
|
183
|
+
auth: {
|
|
184
|
+
user: process.env.WEBEX_CLIENT_ID,
|
|
185
|
+
pass: process.env.WEBEX_CLIENT_SECRET,
|
|
186
|
+
sendImmediately: true,
|
|
187
|
+
},
|
|
188
|
+
/* eslint-enable camelcase */
|
|
189
|
+
},
|
|
190
|
+
(err, response) => {
|
|
191
|
+
if (err) {
|
|
192
|
+
console.warn(`Request to CI failed with non-HTTP error`);
|
|
193
|
+
next(err);
|
|
194
|
+
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
if (response.statusCode >= 400) {
|
|
198
|
+
console.warn(`Got unexpected response from CI`);
|
|
199
|
+
next(new Error(response.body));
|
|
200
|
+
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
let redirect = url.parse(req.url, true);
|
|
204
|
+
const qs = querystring.stringify({state: req.query.state, ...JSON.parse(response.body)});
|
|
205
|
+
|
|
206
|
+
redirect = `${redirect.pathname}#${qs}`;
|
|
207
|
+
|
|
208
|
+
console.info(`redirecting to ${redirect}`);
|
|
209
|
+
res.redirect(redirect);
|
|
210
|
+
}
|
|
211
|
+
);
|
|
212
|
+
});
|
|
213
|
+
app.use(`/${packageName}`, express.static(fixturePath));
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
app.post(`/refresh`, bodyParser.json(), (req, res, next) => {
|
|
217
|
+
if (!req.body.refresh_token) {
|
|
218
|
+
next(new Error(`\`refresh_token\` is required`));
|
|
219
|
+
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
console.info(`Refreshing access token`);
|
|
223
|
+
request(
|
|
224
|
+
{
|
|
173
225
|
/* eslint-disable camelcase */
|
|
174
226
|
method: `POST`,
|
|
175
|
-
uri: `${
|
|
227
|
+
uri: `${
|
|
228
|
+
process.env.IDBROKER_BASE_URL || `https://idbroker.webex.com`
|
|
229
|
+
}/idb/oauth2/v1/access_token`,
|
|
176
230
|
form: {
|
|
177
|
-
grant_type: `
|
|
231
|
+
grant_type: `refresh_token`,
|
|
178
232
|
redirect_uri: process.env.WEBEX_REDIRECT_URI,
|
|
179
|
-
|
|
180
|
-
self_contained_token: true
|
|
233
|
+
refresh_token: req.body.refresh_token,
|
|
181
234
|
},
|
|
182
235
|
auth: {
|
|
183
236
|
user: process.env.WEBEX_CLIENT_ID,
|
|
184
237
|
pass: process.env.WEBEX_CLIENT_SECRET,
|
|
185
|
-
sendImmediately: true
|
|
186
|
-
}
|
|
238
|
+
sendImmediately: true,
|
|
239
|
+
},
|
|
187
240
|
/* eslint-enable camelcase */
|
|
188
|
-
},
|
|
241
|
+
},
|
|
242
|
+
(err, response) => {
|
|
189
243
|
if (err) {
|
|
190
244
|
console.warn(`Request to CI failed with non-HTTP error`);
|
|
191
245
|
next(err);
|
|
@@ -198,57 +252,11 @@ glob.sync(fixturePattern).forEach((fixturePath) => {
|
|
|
198
252
|
|
|
199
253
|
return;
|
|
200
254
|
}
|
|
201
|
-
let redirect = url.parse(req.url, true);
|
|
202
|
-
const qs = querystring.stringify(Object.assign({state: req.query.state}, JSON.parse(response.body)));
|
|
203
|
-
|
|
204
|
-
redirect = `${redirect.pathname}#${qs}`;
|
|
205
|
-
|
|
206
|
-
console.info(`redirecting to ${redirect}`);
|
|
207
|
-
res.redirect(redirect);
|
|
208
|
-
});
|
|
209
|
-
});
|
|
210
|
-
app.use(`/${packageName}`, express.static(fixturePath));
|
|
211
|
-
});
|
|
212
|
-
|
|
213
|
-
app.post(`/refresh`, bodyParser.json(), (req, res, next) => {
|
|
214
|
-
if (!req.body.refresh_token) {
|
|
215
|
-
next(new Error(`\`refresh_token\` is required`));
|
|
216
|
-
|
|
217
|
-
return;
|
|
218
|
-
}
|
|
219
|
-
console.info(`Refreshing access token`);
|
|
220
|
-
request({
|
|
221
|
-
/* eslint-disable camelcase */
|
|
222
|
-
method: `POST`,
|
|
223
|
-
uri: `${process.env.IDBROKER_BASE_URL || `https://idbroker.webex.com`}/idb/oauth2/v1/access_token`,
|
|
224
|
-
form: {
|
|
225
|
-
grant_type: `refresh_token`,
|
|
226
|
-
redirect_uri: process.env.WEBEX_REDIRECT_URI,
|
|
227
|
-
refresh_token: req.body.refresh_token
|
|
228
|
-
},
|
|
229
|
-
auth: {
|
|
230
|
-
user: process.env.WEBEX_CLIENT_ID,
|
|
231
|
-
pass: process.env.WEBEX_CLIENT_SECRET,
|
|
232
|
-
sendImmediately: true
|
|
233
|
-
}
|
|
234
|
-
/* eslint-enable camelcase */
|
|
235
|
-
}, (err, response) => {
|
|
236
|
-
if (err) {
|
|
237
|
-
console.warn(`Request to CI failed with non-HTTP error`);
|
|
238
|
-
next(err);
|
|
239
255
|
|
|
240
|
-
|
|
256
|
+
console.info(`Returning new access token`);
|
|
257
|
+
res.status(200).json(JSON.parse(response.body)).end();
|
|
241
258
|
}
|
|
242
|
-
|
|
243
|
-
console.warn(`Got unexpected response from CI`);
|
|
244
|
-
next(new Error(response.body));
|
|
245
|
-
|
|
246
|
-
return;
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
console.info(`Returning new access token`);
|
|
250
|
-
res.status(200).json(JSON.parse(response.body)).end();
|
|
251
|
-
});
|
|
259
|
+
);
|
|
252
260
|
});
|
|
253
261
|
|
|
254
262
|
app.use(express.static(path.resolve(__dirname, '..', `static`)));
|
package/src/json.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
6
5
|
const bodyParser = require(`body-parser`);
|
|
7
6
|
const express = require(`express`);
|
|
8
7
|
const reflect = require(`./reflect`);
|
|
@@ -17,7 +16,7 @@ router.use(bodyParser.json());
|
|
|
17
16
|
|
|
18
17
|
router.get(`/get`, (req, res) => {
|
|
19
18
|
res.send({
|
|
20
|
-
isObject: true
|
|
19
|
+
isObject: true,
|
|
21
20
|
});
|
|
22
21
|
});
|
|
23
22
|
|
package/src/redirect.html
CHANGED
|
@@ -3,19 +3,16 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<title>Redirect Dispatcher</title>
|
|
5
5
|
<script>
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
6
|
+
try {
|
|
7
|
+
var state = /state=(.+?)(&.*)?$/.exec(window.location)[1];
|
|
8
|
+
console.info('state', state);
|
|
9
|
+
var name = JSON.parse(atob(state)).name;
|
|
10
|
+
console.info('name', name);
|
|
11
|
+
window.location.pathname = name;
|
|
12
|
+
} catch (err) {
|
|
13
|
+
console.warn(err);
|
|
14
|
+
}
|
|
16
15
|
</script>
|
|
17
16
|
</head>
|
|
18
|
-
<body>
|
|
19
|
-
|
|
20
|
-
</body>
|
|
17
|
+
<body></body>
|
|
21
18
|
</html>
|