@twilio/flex-plugin-e2e-tests 6.3.4-alpha.202404120926 → 6.3.4-alpha.202404291150
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/core/parameters.d.ts +4 -1
- package/dist/core/parameters.js.map +1 -1
- package/dist/tests/step006.js +4 -1
- package/dist/tests/step006.js.map +1 -1
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/index.js +0 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/pages/view/twilio-console.d.ts +1 -3
- package/dist/utils/pages/view/twilio-console.js +37 -18
- package/dist/utils/pages/view/twilio-console.js.map +1 -1
- package/package.json +6 -6
- package/dist/utils/console-api.d.ts +0 -43
- package/dist/utils/console-api.js +0 -155
- package/dist/utils/console-api.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/core/parameters.ts"],"names":[],"mappings":";;;;;;AAAA,6BAA4B;AAC5B,yBAA8B;AAE9B,kDAA4B;
|
|
1
|
+
{"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/core/parameters.ts"],"names":[],"mappings":"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"}
|
package/dist/tests/step006.js
CHANGED
|
@@ -52,7 +52,10 @@ var testSuite = function (_a) {
|
|
|
52
52
|
utils_1.assertion.not.isNull(plugin);
|
|
53
53
|
ext = scenario.isTS ? 'tsx' : 'jsx';
|
|
54
54
|
tmpComponentText = 'hot reload works';
|
|
55
|
-
return [4 /*yield*/, utils_1.spawn('twilio', ['flex:plugins:start', '-l', 'debug'], {
|
|
55
|
+
return [4 /*yield*/, utils_1.spawn('twilio', ['flex:plugins:start', '-l', 'debug'], {
|
|
56
|
+
detached: true,
|
|
57
|
+
cwd: plugin.dir,
|
|
58
|
+
})];
|
|
56
59
|
case 1:
|
|
57
60
|
twilioCliResult = _b.sent();
|
|
58
61
|
return [4 /*yield*/, utils_1.pluginHelper.waitForPluginToStart(plugin.localhostUrl, core_1.testParams.config.start.timeout, core_1.testParams.config.start.pollInterval)];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step006.js","sourceRoot":"","sources":["../../src/tests/step006.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oBAAoB;AACpB,mDAAgD;
|
|
1
|
+
{"version":3,"file":"step006.js","sourceRoot":"","sources":["../../src/tests/step006.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -3,7 +3,6 @@ export { default as assertion } from './assertion';
|
|
|
3
3
|
export { writeFileSync } from 'fs';
|
|
4
4
|
export { default as api } from './plugins-api';
|
|
5
5
|
export { default as pluginHelper } from './plugin-helper';
|
|
6
|
-
export * from './console-api';
|
|
7
6
|
export * from './browser';
|
|
8
7
|
export * from './timers';
|
|
9
8
|
export { join as joinPath } from 'path';
|
package/dist/utils/index.js
CHANGED
|
@@ -27,7 +27,6 @@ var plugins_api_1 = require("./plugins-api");
|
|
|
27
27
|
Object.defineProperty(exports, "api", { enumerable: true, get: function () { return __importDefault(plugins_api_1).default; } });
|
|
28
28
|
var plugin_helper_1 = require("./plugin-helper");
|
|
29
29
|
Object.defineProperty(exports, "pluginHelper", { enumerable: true, get: function () { return __importDefault(plugin_helper_1).default; } });
|
|
30
|
-
__exportStar(require("./console-api"), exports);
|
|
31
30
|
__exportStar(require("./browser"), exports);
|
|
32
31
|
__exportStar(require("./timers"), exports);
|
|
33
32
|
var path_1 = require("path");
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA,6CAA6C;;;;;;;;;;;;;;;;AAE7C,iCAAiF;AAAxE,8FAAA,gBAAgB,OAAS;AAAE,kGAAA,SAAS,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AAC/D,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAC7B,yBAAmC;AAA1B,mGAAA,aAAa,OAAA;AACtB,6CAA+C;AAAtC,mHAAA,OAAO,OAAO;AACvB,iDAA0D;AAAjD,8HAAA,OAAO,OAAgB;AAChC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA,6CAA6C;;;;;;;;;;;;;;;;AAE7C,iCAAiF;AAAxE,8FAAA,gBAAgB,OAAS;AAAE,kGAAA,SAAS,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AAC/D,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAC7B,yBAAmC;AAA1B,mGAAA,aAAa,OAAA;AACtB,6CAA+C;AAAtC,mHAAA,OAAO,OAAO;AACvB,iDAA0D;AAAjD,8HAAA,OAAO,OAAgB;AAChC,4CAA0B;AAC1B,2CAAyB;AACzB,6BAAwC;AAA/B,gGAAA,IAAI,OAAY"}
|
|
@@ -2,9 +2,6 @@ import { Page } from 'puppeteer';
|
|
|
2
2
|
import { Base } from './base';
|
|
3
3
|
export declare class TwilioConsole extends Base {
|
|
4
4
|
private static _loginForm;
|
|
5
|
-
private static _password;
|
|
6
|
-
private static _nextBtn;
|
|
7
|
-
private static _loginBtn;
|
|
8
5
|
assert: {};
|
|
9
6
|
private readonly _baseUrl;
|
|
10
7
|
private readonly _flexBaseUrl;
|
|
@@ -19,6 +16,7 @@ export declare class TwilioConsole extends Base {
|
|
|
19
16
|
private static _createLocalhostUrl;
|
|
20
17
|
/**
|
|
21
18
|
* Logs user in through service-login
|
|
19
|
+
* @param cookies
|
|
22
20
|
* @param flexBaseUrl
|
|
23
21
|
* @param flexPath
|
|
24
22
|
* @param accountSid
|
|
@@ -52,8 +52,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
52
52
|
};
|
|
53
53
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
54
|
exports.TwilioConsole = void 0;
|
|
55
|
-
var base_1 = require("./base");
|
|
56
55
|
var core_1 = require("../../../core");
|
|
56
|
+
var base_1 = require("./base");
|
|
57
57
|
var timers_1 = require("../../timers");
|
|
58
58
|
var TwilioConsole = /** @class */ (function (_super) {
|
|
59
59
|
__extends(TwilioConsole, _super);
|
|
@@ -67,6 +67,7 @@ var TwilioConsole = /** @class */ (function (_super) {
|
|
|
67
67
|
}
|
|
68
68
|
/**
|
|
69
69
|
* Logs user in through service-login
|
|
70
|
+
* @param cookies
|
|
70
71
|
* @param flexBaseUrl
|
|
71
72
|
* @param flexPath
|
|
72
73
|
* @param accountSid
|
|
@@ -74,7 +75,7 @@ var TwilioConsole = /** @class */ (function (_super) {
|
|
|
74
75
|
TwilioConsole.prototype.login = function (flexPath, accountSid, localhostPort, firstLoad) {
|
|
75
76
|
if (firstLoad === void 0) { firstLoad = true; }
|
|
76
77
|
return __awaiter(this, void 0, void 0, function () {
|
|
77
|
-
var redirectUrl, path;
|
|
78
|
+
var redirectUrl, path, csrfToken, loginURL;
|
|
78
79
|
return __generator(this, function (_a) {
|
|
79
80
|
switch (_a.label) {
|
|
80
81
|
case 0:
|
|
@@ -89,34 +90,52 @@ var TwilioConsole = /** @class */ (function (_super) {
|
|
|
89
90
|
return [4 /*yield*/, this.elementVisible(TwilioConsole._loginForm, "Twilio Console's Login form")];
|
|
90
91
|
case 2:
|
|
91
92
|
_a.sent();
|
|
92
|
-
return [4 /*yield*/, this.
|
|
93
|
+
return [4 /*yield*/, this.page.evaluate(function () {
|
|
94
|
+
var _a;
|
|
95
|
+
return (_a = document.head.querySelector('meta[name="csrfToken"]')) === null || _a === void 0 ? void 0 : _a.getAttribute('content');
|
|
96
|
+
})];
|
|
93
97
|
case 3:
|
|
94
|
-
_a.sent();
|
|
95
|
-
return [
|
|
98
|
+
csrfToken = _a.sent();
|
|
99
|
+
if (!csrfToken) return [3 /*break*/, 7];
|
|
100
|
+
loginURL = this._baseUrl + "/userauth/submitLoginPassword";
|
|
101
|
+
return [4 /*yield*/, this.page.evaluate(
|
|
102
|
+
// eslint-disable-next-line @typescript-eslint/promise-function-async
|
|
103
|
+
function (data) {
|
|
104
|
+
return fetch(data.url, {
|
|
105
|
+
headers: {
|
|
106
|
+
'x-twilio-csrf': data.csrfToken,
|
|
107
|
+
'Content-Type': 'application/json',
|
|
108
|
+
},
|
|
109
|
+
body: JSON.stringify({
|
|
110
|
+
email: data.email,
|
|
111
|
+
password: data.password,
|
|
112
|
+
}),
|
|
113
|
+
method: 'POST',
|
|
114
|
+
});
|
|
115
|
+
}, {
|
|
116
|
+
url: loginURL,
|
|
117
|
+
email: core_1.testParams.secrets.console.email,
|
|
118
|
+
password: core_1.testParams.secrets.console.password,
|
|
119
|
+
csrfToken: csrfToken,
|
|
120
|
+
})];
|
|
96
121
|
case 4:
|
|
97
122
|
_a.sent();
|
|
98
|
-
|
|
123
|
+
// Log in Flex via service login
|
|
124
|
+
return [4 /*yield*/, this.goto({ baseUrl: this._baseUrl, path: path })];
|
|
99
125
|
case 5:
|
|
126
|
+
// Log in Flex via service login
|
|
100
127
|
_a.sent();
|
|
101
|
-
return [4 /*yield*/,
|
|
128
|
+
return [4 /*yield*/, timers_1.sleep(30000)];
|
|
102
129
|
case 6:
|
|
103
130
|
_a.sent();
|
|
104
|
-
return [
|
|
105
|
-
case 7:
|
|
106
|
-
|
|
107
|
-
_a.label = 8;
|
|
108
|
-
case 8: return [4 /*yield*/, timers_1.sleep(30000)];
|
|
109
|
-
case 9:
|
|
110
|
-
_a.sent();
|
|
111
|
-
return [2 /*return*/];
|
|
131
|
+
return [3 /*break*/, 8];
|
|
132
|
+
case 7: throw new Error('Unable to fetch CSRF token to login to Twilio Console');
|
|
133
|
+
case 8: return [2 /*return*/];
|
|
112
134
|
}
|
|
113
135
|
});
|
|
114
136
|
});
|
|
115
137
|
};
|
|
116
138
|
TwilioConsole._loginForm = '#email';
|
|
117
|
-
TwilioConsole._password = '#password';
|
|
118
|
-
TwilioConsole._nextBtn = '#email-next';
|
|
119
|
-
TwilioConsole._loginBtn = 'button[type=submit]';
|
|
120
139
|
/**
|
|
121
140
|
* Creates a localhost url
|
|
122
141
|
* @param port
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"twilio-console.js","sourceRoot":"","sources":["../../../../src/utils/pages/view/twilio-console.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,+BAA8B;AAC9B,
|
|
1
|
+
{"version":3,"file":"twilio-console.js","sourceRoot":"","sources":["../../../../src/utils/pages/view/twilio-console.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@twilio/flex-plugin-e2e-tests",
|
|
3
|
-
"version": "6.3.4-alpha.
|
|
3
|
+
"version": "6.3.4-alpha.202404291150",
|
|
4
4
|
"description": "Flex Plugin E2E Tests framework",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"flex",
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
"test": "exit 0"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@twilio/flex-dev-utils": "6.3.4-alpha.
|
|
38
|
-
"@twilio/flex-plugins-api-client": "6.3.4-alpha.
|
|
37
|
+
"@twilio/flex-dev-utils": "6.3.4-alpha.202404291150",
|
|
38
|
+
"@twilio/flex-plugins-api-client": "6.3.4-alpha.202404291150",
|
|
39
39
|
"axios": "^0.24.0",
|
|
40
40
|
"lodash": "4.17.21",
|
|
41
41
|
"package-json": "^7.0.0",
|
|
42
|
-
"puppeteer": "^
|
|
42
|
+
"puppeteer": "^21.3.7",
|
|
43
43
|
"replace-in-file": "^6.3.2",
|
|
44
44
|
"semver": "^7.3.5"
|
|
45
45
|
},
|
|
@@ -48,10 +48,10 @@
|
|
|
48
48
|
"@types/semver": "^7.3.9"
|
|
49
49
|
},
|
|
50
50
|
"engines": {
|
|
51
|
-
"node": "^
|
|
51
|
+
"node": "^16 || ^18 || ^20"
|
|
52
52
|
},
|
|
53
53
|
"publishConfig": {
|
|
54
54
|
"access": "public"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "91944bfba01e399d987e16a09bca1ba47f008bb4"
|
|
57
57
|
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
export interface ConsoleAuthOptions {
|
|
2
|
-
email: string;
|
|
3
|
-
password: string;
|
|
4
|
-
}
|
|
5
|
-
export declare enum Cookie {
|
|
6
|
-
visitor = "tw-visitor",
|
|
7
|
-
sIdentity = "server-identity",
|
|
8
|
-
identity = "identity"
|
|
9
|
-
}
|
|
10
|
-
export interface Cookies {
|
|
11
|
-
[Cookie.identity]: string | undefined;
|
|
12
|
-
[Cookie.sIdentity]: string;
|
|
13
|
-
[Cookie.visitor]: string;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Defines interactions with Console API
|
|
17
|
-
*/
|
|
18
|
-
export declare class ConsoleAPI {
|
|
19
|
-
private readonly baseUrl;
|
|
20
|
-
private readonly consoleAuthOptions;
|
|
21
|
-
/**
|
|
22
|
-
* Initialises console base url and verifies console credentials
|
|
23
|
-
* @param consoleBaseUrl base url of Twilio console
|
|
24
|
-
* @param auth the {@link ConsoleAuthOptions}
|
|
25
|
-
*/
|
|
26
|
-
constructor(consoleBaseUrl: string, auth: ConsoleAuthOptions);
|
|
27
|
-
/**
|
|
28
|
-
* Extracts value from response header using regex
|
|
29
|
-
* @param regex regex to apply
|
|
30
|
-
* @param response response to be searched
|
|
31
|
-
* @param matchName name of the entity being looked for
|
|
32
|
-
*/
|
|
33
|
-
private static getValueFromResponse;
|
|
34
|
-
/**
|
|
35
|
-
* Fetch response from the Twilio console endpoint
|
|
36
|
-
* @param config request config to send
|
|
37
|
-
*/
|
|
38
|
-
private static getResponse;
|
|
39
|
-
/**
|
|
40
|
-
* Get required cookies (tw-visitor, identity, server-identity) to authenticate
|
|
41
|
-
*/
|
|
42
|
-
getCookies(): Promise<Cookies>;
|
|
43
|
-
}
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
-
};
|
|
41
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
exports.ConsoleAPI = exports.Cookie = void 0;
|
|
43
|
-
var axios_1 = __importDefault(require("axios"));
|
|
44
|
-
var flex_dev_utils_1 = require("@twilio/flex-dev-utils");
|
|
45
|
-
var csrfTokenRegex = new RegExp(/name="csrfToken"\scontent="(.*?)"/m);
|
|
46
|
-
var twVisitorCookieRegex = new RegExp(/tw-visitor=(.*?);/m);
|
|
47
|
-
var identityCookieRegex = new RegExp(/identity=(.*?);/m);
|
|
48
|
-
var serverIdentityCookieRegex = new RegExp(/server-identity=(.*?);/m);
|
|
49
|
-
var SET_COOKIE = 'set-cookie';
|
|
50
|
-
var Cookie;
|
|
51
|
-
(function (Cookie) {
|
|
52
|
-
Cookie["visitor"] = "tw-visitor";
|
|
53
|
-
Cookie["sIdentity"] = "server-identity";
|
|
54
|
-
Cookie["identity"] = "identity";
|
|
55
|
-
})(Cookie = exports.Cookie || (exports.Cookie = {}));
|
|
56
|
-
/**
|
|
57
|
-
* Defines interactions with Console API
|
|
58
|
-
*/
|
|
59
|
-
var ConsoleAPI = /** @class */ (function () {
|
|
60
|
-
/**
|
|
61
|
-
* Initialises console base url and verifies console credentials
|
|
62
|
-
* @param consoleBaseUrl base url of Twilio console
|
|
63
|
-
* @param auth the {@link ConsoleAuthOptions}
|
|
64
|
-
*/
|
|
65
|
-
function ConsoleAPI(consoleBaseUrl, auth) {
|
|
66
|
-
this.baseUrl = consoleBaseUrl;
|
|
67
|
-
this.consoleAuthOptions = auth;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Extracts value from response header using regex
|
|
71
|
-
* @param regex regex to apply
|
|
72
|
-
* @param response response to be searched
|
|
73
|
-
* @param matchName name of the entity being looked for
|
|
74
|
-
*/
|
|
75
|
-
ConsoleAPI.getValueFromResponse = function (regex, response, matchName) {
|
|
76
|
-
var match = response.match(regex);
|
|
77
|
-
if (!match || !match[1]) {
|
|
78
|
-
flex_dev_utils_1.logger.error(response);
|
|
79
|
-
throw new Error("Response does not contain " + matchName);
|
|
80
|
-
}
|
|
81
|
-
return match[1];
|
|
82
|
-
};
|
|
83
|
-
/**
|
|
84
|
-
* Fetch response from the Twilio console endpoint
|
|
85
|
-
* @param config request config to send
|
|
86
|
-
*/
|
|
87
|
-
ConsoleAPI.getResponse = function (config) {
|
|
88
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
89
|
-
return __generator(this, function (_a) {
|
|
90
|
-
try {
|
|
91
|
-
return [2 /*return*/, axios_1.default(config)];
|
|
92
|
-
}
|
|
93
|
-
catch (e) {
|
|
94
|
-
flex_dev_utils_1.logger.error(config.method + ": " + config.url + " returned code " + e.status + ".");
|
|
95
|
-
throw new Error(e.message);
|
|
96
|
-
}
|
|
97
|
-
return [2 /*return*/];
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
};
|
|
101
|
-
/**
|
|
102
|
-
* Get required cookies (tw-visitor, identity, server-identity) to authenticate
|
|
103
|
-
*/
|
|
104
|
-
ConsoleAPI.prototype.getCookies = function () {
|
|
105
|
-
var _a, _b, _c, _d;
|
|
106
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
107
|
-
var loginResponse, csrfToken, twVisitorCookie, loginPasswordResponse, loginPasswordCookies, serverIdentityCookie, identityCookie;
|
|
108
|
-
var _e;
|
|
109
|
-
return __generator(this, function (_f) {
|
|
110
|
-
switch (_f.label) {
|
|
111
|
-
case 0: return [4 /*yield*/, ConsoleAPI.getResponse({ method: 'GET', url: this.baseUrl + "/login" })];
|
|
112
|
-
case 1:
|
|
113
|
-
loginResponse = _f.sent();
|
|
114
|
-
csrfToken = ConsoleAPI.getValueFromResponse(new RegExp(csrfTokenRegex), loginResponse.data, 'CSRF Token');
|
|
115
|
-
twVisitorCookie = ConsoleAPI.getValueFromResponse(new RegExp(twVisitorCookieRegex), ((_b = (_a = loginResponse.headers) === null || _a === void 0 ? void 0 : _a[SET_COOKIE]) === null || _b === void 0 ? void 0 : _b.join()) || '', Cookie.visitor + " cookie");
|
|
116
|
-
return [4 /*yield*/, ConsoleAPI.getResponse({
|
|
117
|
-
method: 'POST',
|
|
118
|
-
url: this.baseUrl + "/userauth/submitLoginPassword",
|
|
119
|
-
withCredentials: true,
|
|
120
|
-
maxRedirects: 0,
|
|
121
|
-
headers: {
|
|
122
|
-
'x-twilio-csrf': csrfToken,
|
|
123
|
-
cookie: "tw-visitor=" + twVisitorCookie,
|
|
124
|
-
'Content-Type': 'application/json',
|
|
125
|
-
Accept: 'application/json',
|
|
126
|
-
},
|
|
127
|
-
validateStatus: function (status) { return status === 200; },
|
|
128
|
-
data: JSON.stringify({
|
|
129
|
-
email: this.consoleAuthOptions.email,
|
|
130
|
-
password: this.consoleAuthOptions.password,
|
|
131
|
-
}),
|
|
132
|
-
})];
|
|
133
|
-
case 2:
|
|
134
|
-
loginPasswordResponse = _f.sent();
|
|
135
|
-
loginPasswordCookies = ((_d = (_c = loginPasswordResponse.headers) === null || _c === void 0 ? void 0 : _c[SET_COOKIE]) === null || _d === void 0 ? void 0 : _d.join()) || '';
|
|
136
|
-
serverIdentityCookie = ConsoleAPI.getValueFromResponse(new RegExp(serverIdentityCookieRegex), loginPasswordCookies, Cookie.sIdentity + " cookie");
|
|
137
|
-
try {
|
|
138
|
-
identityCookie = ConsoleAPI.getValueFromResponse(new RegExp(identityCookieRegex), loginPasswordCookies, Cookie.identity + " cookie");
|
|
139
|
-
}
|
|
140
|
-
catch (e) {
|
|
141
|
-
identityCookie = undefined;
|
|
142
|
-
}
|
|
143
|
-
return [2 /*return*/, (_e = {},
|
|
144
|
-
_e[Cookie.identity] = identityCookie,
|
|
145
|
-
_e[Cookie.sIdentity] = serverIdentityCookie,
|
|
146
|
-
_e[Cookie.visitor] = twVisitorCookie,
|
|
147
|
-
_e)];
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
});
|
|
151
|
-
};
|
|
152
|
-
return ConsoleAPI;
|
|
153
|
-
}());
|
|
154
|
-
exports.ConsoleAPI = ConsoleAPI;
|
|
155
|
-
//# sourceMappingURL=console-api.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"console-api.js","sourceRoot":"","sources":["../../src/utils/console-api.ts"],"names":[],"mappings":"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"}
|