Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
import * as serviceWorker from './serviceWorker';
import App from './App';
import connectUsingSecret from './redux/actions/connectUsingSecret';
import connectUsingTokenServer from './redux/actions/connectUsingTokenServer';
import enableSpeechUsingSecret from './redux/actions/enableSpeechUsingSecret';
import enableSpeechUsingTokenServer from './redux/actions/enableSpeechUsingTokenServer';
import createStore from './redux/createStore';
const store = createStore();
// TODO: Move it somewhere
const { directLineSecret, speechServicesSubscriptionKey } = store.getState();
if (directLineSecret) {
store.dispatch(connectUsingSecret(directLineSecret, random().toString(36).substr(2, 10)));
} else {
store.dispatch(connectUsingTokenServer());
}
if (speechServicesSubscriptionKey) {
store.dispatch(enableSpeechUsingSecret(speechServicesSubscriptionKey));
} else {
store.dispatch(enableSpeechUsingTokenServer());
}
ReactDOM.render(
,
document.getElementById('root')
);
server.post('/api/directline/token', async (_, res) => {
// TODO: We should rate-limit to prevent abuse
try {
const userID = `dl_${ random().toString(36).substr(2, 10) }`;
const tokenRes = await fetch('https://directline.botframework.com/v3/directline/tokens/generate', {
body: JSON.stringify({
User: { Id: userID }
}),
headers: {
authorization: `Bearer ${ directLineSecret }`,
'content-type': 'application/json'
},
method: 'POST'
});
if (!tokenRes.ok) {
return res.send(503, { message: 'failed to exchange Direct Line secret', innerStatus: tokenRes.status });
}
const { expires_in: expiresIn, token } = JSON.parse(await tokenRes.text());
require('dotenv').config();
const random = require('math-random');
// Setting default environment variables.
process.env = {
AAD_OAUTH_AUTHORIZE_URL: 'https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize',
AAD_OAUTH_ACCESS_TOKEN_URL: 'https://login.microsoftonline.com/organizations/oauth2/v2.0/token',
AAD_OAUTH_PKCE_SALT: random.toString(36).substr(2),
AAD_OAUTH_SCOPE: 'User.Read',
GITHUB_OAUTH_ACCESS_TOKEN_URL: 'https://github.com/login/oauth/access_token',
GITHUB_OAUTH_AUTHORIZE_URL: 'https://github.com/login/oauth/authorize',
GITHUB_OAUTH_SCOPE: 'user:email',
GITHUB_OAUTH_STATE_SALT: random.toString(36).substr(2),
PORT: '5000',
STATIC_FILES: 'public',
...process.env
};
// Checks for required environment variables.
[
'AAD_OAUTH_CLIENT_ID',
'AAD_OAUTH_REDIRECT_URI',
'DIRECT_LINE_SECRET',
'GITHUB_OAUTH_CLIENT_ID',
'GITHUB_OAUTH_CLIENT_SECRET',
'GITHUB_OAUTH_REDIRECT_URI'
].forEach(name => {
if (!process.env[name]) {
throw new Error(`Environment variable ${name} must be set.`);
require('dotenv').config();
const random = require('math-random');
// Setting default environment variables.
process.env = {
OAUTH_AUTHORIZE_URL: 'https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize',
OAUTH_ACCESS_TOKEN_URL: 'https://login.microsoftonline.com/organizations/oauth2/v2.0/token',
OAUTH_PKCE_SALT: random.toString(36).substr(2),
OAUTH_SCOPE: 'User.Read',
PORT: '5000',
STATIC_FILES: 'public',
...process.env
};
// Checks for required environment variables.
['OAUTH_CLIENT_ID', 'OAUTH_REDIRECT_URI', 'DIRECT_LINE_SECRET'].forEach(name => {
if (!process.env[name]) {
throw new Error(`Environment variable ${name} must be set.`);
}
});
const { join } = require('path');
const restify = require('restify');
export default function (secret, userID = `dl_${ random().toString(36).substr(2, 10) }`) {
return async dispatch => {
dispatch({ type: CONNECT_PENDING });
try {
const tokenRes = await fetch('https://directline.botframework.com/v3/directline/tokens/generate', {
body: JSON.stringify({
User: { Id: userID }
}),
headers: {
authorization: `Bearer ${ secret }`,
'content-type': 'application/json'
},
method: 'POST'
});
if (!tokenRes.ok) {
export default function uniqueID() {
return (
Date.now() +
random()
.toString(36)
.substr(2)
);
}
* Copyright (c) 2014-2017, Jon Schlinkert.
* Released under the MIT License.
*/
'use strict';
var isNumber = require('is-number');
var typeOf = require('kind-of');
var mathRandom = require('math-random');
/**
* Expose `randomatic`
*/
module.exports = randomatic;
module.exports.isCrypto = !!mathRandom.cryptographic;
/**
* Available mask characters
*/
var type = {
lower: 'abcdefghijklmnopqrstuvwxyz',
upper: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
number: '0123456789',
special: '~!@#$%^&()_+-={}[];\',.'
};
type.all = type.lower + type.upper + type.number + type.special;
/**
* Generate random character sequences of a specified `length`,