heimdall-tide 0.11.5 → 0.12.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/cjs/enclaves/RequestEnclave.js +74 -4
- package/dist/cjs/enclaves/RequestEnclave.js.map +1 -1
- package/dist/cjs/heimdall.js +36 -17
- package/dist/cjs/heimdall.js.map +1 -1
- package/dist/esm/enclaves/RequestEnclave.js +74 -4
- package/dist/esm/enclaves/RequestEnclave.js.map +1 -1
- package/dist/esm/heimdall.js +36 -17
- package/dist/esm/heimdall.js.map +1 -1
- package/heimdall-tide-0.12.15.tgz +0 -0
- package/package.json +1 -1
- package/src/enclaves/RequestEnclave.ts +80 -2
- package/src/heimdall.ts +44 -22
- package/heimdall-tide-0.11.5.tgz +0 -0
|
@@ -12,6 +12,9 @@ class RequestEnclave extends heimdall_1.Heimdall {
|
|
|
12
12
|
if (!data.doken)
|
|
13
13
|
throw 'Doken not provided';
|
|
14
14
|
this.doken = data.doken;
|
|
15
|
+
let parsedDoken = decodeToken(this.doken);
|
|
16
|
+
if (parsedDoken["t.uho"])
|
|
17
|
+
this.enclaveOrigin = parsedDoken["t.uho"]; // use tidecloak set user home ork from doken
|
|
15
18
|
this.dokenRefreshCallback = data.dokenRefreshCallback;
|
|
16
19
|
this.requireReloginCallback = data.requireReloginCallback;
|
|
17
20
|
this.recieve("hidden enclave").then((data) => this.handleHiddenEnclaveResponse(data));
|
|
@@ -24,8 +27,22 @@ class RequestEnclave extends heimdall_1.Heimdall {
|
|
|
24
27
|
}
|
|
25
28
|
});
|
|
26
29
|
}
|
|
27
|
-
else
|
|
28
|
-
|
|
30
|
+
else {
|
|
31
|
+
// If injecting iframe fails, try setting it as a popup and opening it
|
|
32
|
+
this._windowType = heimdall_1.windowType.Popup;
|
|
33
|
+
this.open().then((success) => {
|
|
34
|
+
if (success) {
|
|
35
|
+
this.send({
|
|
36
|
+
type: "init",
|
|
37
|
+
message: {
|
|
38
|
+
doken: this.doken
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
else
|
|
43
|
+
throw 'Error opening all types of Request Enclave';
|
|
44
|
+
});
|
|
45
|
+
}
|
|
29
46
|
});
|
|
30
47
|
return this;
|
|
31
48
|
}
|
|
@@ -89,8 +106,10 @@ class RequestEnclave extends heimdall_1.Heimdall {
|
|
|
89
106
|
}
|
|
90
107
|
});
|
|
91
108
|
}
|
|
92
|
-
else
|
|
93
|
-
|
|
109
|
+
else {
|
|
110
|
+
window.alert("There was an issue opening the fallback popup on this page. Please enable popups or let the administrator know about this problem. For more information, visit https://tide.org/browserwindow");
|
|
111
|
+
throw "Could not open popup";
|
|
112
|
+
}
|
|
94
113
|
});
|
|
95
114
|
}
|
|
96
115
|
this.recieve("hidden enclave").then((data) => this.handleHiddenEnclaveResponse(data));
|
|
@@ -219,4 +238,55 @@ class RequestEnclave extends heimdall_1.Heimdall {
|
|
|
219
238
|
}
|
|
220
239
|
}
|
|
221
240
|
exports.RequestEnclave = RequestEnclave;
|
|
241
|
+
function decodeToken(token) {
|
|
242
|
+
const [header, payload] = token.split(".");
|
|
243
|
+
if (typeof payload !== "string") {
|
|
244
|
+
throw new Error("Unable to decode token, payload not found.");
|
|
245
|
+
}
|
|
246
|
+
let decoded;
|
|
247
|
+
try {
|
|
248
|
+
decoded = base64UrlDecode(payload);
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
throw new Error("Unable to decode token, payload is not a valid Base64URL value. Error: " + error);
|
|
252
|
+
}
|
|
253
|
+
try {
|
|
254
|
+
return JSON.parse(decoded);
|
|
255
|
+
}
|
|
256
|
+
catch (error) {
|
|
257
|
+
throw new Error("Unable to decode token, payload is not a valid JSON value. Error: " + error);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
function base64UrlDecode(input) {
|
|
261
|
+
let output = input
|
|
262
|
+
.replace(/-/g, "+")
|
|
263
|
+
.replace(/_/g, "/");
|
|
264
|
+
switch (output.length % 4) {
|
|
265
|
+
case 0:
|
|
266
|
+
break;
|
|
267
|
+
case 2:
|
|
268
|
+
output += "==";
|
|
269
|
+
break;
|
|
270
|
+
case 3:
|
|
271
|
+
output += "=";
|
|
272
|
+
break;
|
|
273
|
+
default:
|
|
274
|
+
throw new Error("Input is not of the correct length.");
|
|
275
|
+
}
|
|
276
|
+
try {
|
|
277
|
+
return b64DecodeUnicode(output);
|
|
278
|
+
}
|
|
279
|
+
catch (error) {
|
|
280
|
+
return atob(output);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
function b64DecodeUnicode(input) {
|
|
284
|
+
return decodeURIComponent(atob(input).replace(/(.)/g, (m, p) => {
|
|
285
|
+
let code = p.charCodeAt(0).toString(16).toUpperCase();
|
|
286
|
+
if (code.length < 2) {
|
|
287
|
+
code = "0" + code;
|
|
288
|
+
}
|
|
289
|
+
return "%" + code;
|
|
290
|
+
}));
|
|
291
|
+
}
|
|
222
292
|
//# sourceMappingURL=RequestEnclave.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestEnclave.js","sourceRoot":"","sources":["../../../src/enclaves/RequestEnclave.ts"],"names":[],"mappings":";;;AAAA,0CAAmD;AAenD,MAAa,cAAe,SAAQ,mBAAwB;IAA5D;;QAKI,gBAAW,GAAe,qBAAU,CAAC,MAAM,CAAC;QAEpC,aAAQ,GAAiB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"RequestEnclave.js","sourceRoot":"","sources":["../../../src/enclaves/RequestEnclave.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/heimdall.js
CHANGED
|
@@ -93,23 +93,42 @@ class Heimdall {
|
|
|
93
93
|
.forEach(iframe => iframe.remove());
|
|
94
94
|
}
|
|
95
95
|
async openHiddenIframe() {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
96
|
+
try {
|
|
97
|
+
// Remove any existing iframes with heimdall id
|
|
98
|
+
this.closeHiddenIframe();
|
|
99
|
+
// 1. Create the iframe
|
|
100
|
+
const iframe = document.createElement('iframe');
|
|
101
|
+
// Create iframe error listener
|
|
102
|
+
const iframeErrorListener = new Promise((res) => {
|
|
103
|
+
iframe.onerror = () => res(false);
|
|
104
|
+
iframe.addEventListener("error", () => {
|
|
105
|
+
res(false); // failed to load
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
iframe.src = this.getOrkUrl().toString();
|
|
109
|
+
iframe.style.display = 'none'; // hide it visually
|
|
110
|
+
iframe.id = "heimdall"; // in case multiple frames get popped up - we only want one
|
|
111
|
+
iframe.setAttribute('aria-hidden', 'true'); // accessibility hint
|
|
112
|
+
// 2. Add it to the document
|
|
113
|
+
document.body.appendChild(iframe);
|
|
114
|
+
// 3. Keep a reference to its window for postMessage
|
|
115
|
+
this.enclaveWindow = iframe.contentWindow;
|
|
116
|
+
if (!this.enclaveWindow)
|
|
117
|
+
return false;
|
|
118
|
+
// Create an iframe success listener
|
|
119
|
+
const pageLoaded = new Promise(async (res) => {
|
|
120
|
+
await this.waitForWindowPostMessage("pageLoaded");
|
|
121
|
+
res(true); // page loaded
|
|
122
|
+
});
|
|
123
|
+
const timeout = new Promise((resolve) => {
|
|
124
|
+
setTimeout(() => resolve(false), 2000); // 2-second timeout
|
|
125
|
+
});
|
|
126
|
+
const loadedResult = await Promise.race([iframeErrorListener, pageLoaded, timeout]);
|
|
127
|
+
return loadedResult;
|
|
128
|
+
}
|
|
129
|
+
catch (_a) {
|
|
109
130
|
return false;
|
|
110
|
-
|
|
111
|
-
await this.waitForWindowPostMessage("pageLoaded");
|
|
112
|
-
return true;
|
|
131
|
+
}
|
|
113
132
|
}
|
|
114
133
|
closePopupEnclave() {
|
|
115
134
|
this.enclaveWindow.close();
|
|
@@ -134,7 +153,7 @@ class Heimdall {
|
|
|
134
153
|
this.enclaveWindow.postMessage(message, this.enclaveOrigin);
|
|
135
154
|
}
|
|
136
155
|
processEvent(data, origin, expectedType) {
|
|
137
|
-
if (origin !== this.enclaveOrigin) {
|
|
156
|
+
if (origin !== new URL(this.enclaveOrigin).origin) {
|
|
138
157
|
// Something's not right... The message has come from an unknown domain...
|
|
139
158
|
return { ok: false, print: false, error: "WRONG WINDOW SENT MESSAGE" };
|
|
140
159
|
}
|
package/dist/cjs/heimdall.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heimdall.js","sourceRoot":"","sources":["../../src/heimdall.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"heimdall.js","sourceRoot":"","sources":["../../src/heimdall.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,9 @@ export class RequestEnclave extends Heimdall {
|
|
|
9
9
|
if (!data.doken)
|
|
10
10
|
throw 'Doken not provided';
|
|
11
11
|
this.doken = data.doken;
|
|
12
|
+
let parsedDoken = decodeToken(this.doken);
|
|
13
|
+
if (parsedDoken["t.uho"])
|
|
14
|
+
this.enclaveOrigin = parsedDoken["t.uho"]; // use tidecloak set user home ork from doken
|
|
12
15
|
this.dokenRefreshCallback = data.dokenRefreshCallback;
|
|
13
16
|
this.requireReloginCallback = data.requireReloginCallback;
|
|
14
17
|
this.recieve("hidden enclave").then((data) => this.handleHiddenEnclaveResponse(data));
|
|
@@ -21,8 +24,22 @@ export class RequestEnclave extends Heimdall {
|
|
|
21
24
|
}
|
|
22
25
|
});
|
|
23
26
|
}
|
|
24
|
-
else
|
|
25
|
-
|
|
27
|
+
else {
|
|
28
|
+
// If injecting iframe fails, try setting it as a popup and opening it
|
|
29
|
+
this._windowType = windowType.Popup;
|
|
30
|
+
this.open().then((success) => {
|
|
31
|
+
if (success) {
|
|
32
|
+
this.send({
|
|
33
|
+
type: "init",
|
|
34
|
+
message: {
|
|
35
|
+
doken: this.doken
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
else
|
|
40
|
+
throw 'Error opening all types of Request Enclave';
|
|
41
|
+
});
|
|
42
|
+
}
|
|
26
43
|
});
|
|
27
44
|
return this;
|
|
28
45
|
}
|
|
@@ -86,8 +103,10 @@ export class RequestEnclave extends Heimdall {
|
|
|
86
103
|
}
|
|
87
104
|
});
|
|
88
105
|
}
|
|
89
|
-
else
|
|
90
|
-
|
|
106
|
+
else {
|
|
107
|
+
window.alert("There was an issue opening the fallback popup on this page. Please enable popups or let the administrator know about this problem. For more information, visit https://tide.org/browserwindow");
|
|
108
|
+
throw "Could not open popup";
|
|
109
|
+
}
|
|
91
110
|
});
|
|
92
111
|
}
|
|
93
112
|
this.recieve("hidden enclave").then((data) => this.handleHiddenEnclaveResponse(data));
|
|
@@ -215,4 +234,55 @@ export class RequestEnclave extends Heimdall {
|
|
|
215
234
|
}
|
|
216
235
|
}
|
|
217
236
|
}
|
|
237
|
+
function decodeToken(token) {
|
|
238
|
+
const [header, payload] = token.split(".");
|
|
239
|
+
if (typeof payload !== "string") {
|
|
240
|
+
throw new Error("Unable to decode token, payload not found.");
|
|
241
|
+
}
|
|
242
|
+
let decoded;
|
|
243
|
+
try {
|
|
244
|
+
decoded = base64UrlDecode(payload);
|
|
245
|
+
}
|
|
246
|
+
catch (error) {
|
|
247
|
+
throw new Error("Unable to decode token, payload is not a valid Base64URL value. Error: " + error);
|
|
248
|
+
}
|
|
249
|
+
try {
|
|
250
|
+
return JSON.parse(decoded);
|
|
251
|
+
}
|
|
252
|
+
catch (error) {
|
|
253
|
+
throw new Error("Unable to decode token, payload is not a valid JSON value. Error: " + error);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
function base64UrlDecode(input) {
|
|
257
|
+
let output = input
|
|
258
|
+
.replace(/-/g, "+")
|
|
259
|
+
.replace(/_/g, "/");
|
|
260
|
+
switch (output.length % 4) {
|
|
261
|
+
case 0:
|
|
262
|
+
break;
|
|
263
|
+
case 2:
|
|
264
|
+
output += "==";
|
|
265
|
+
break;
|
|
266
|
+
case 3:
|
|
267
|
+
output += "=";
|
|
268
|
+
break;
|
|
269
|
+
default:
|
|
270
|
+
throw new Error("Input is not of the correct length.");
|
|
271
|
+
}
|
|
272
|
+
try {
|
|
273
|
+
return b64DecodeUnicode(output);
|
|
274
|
+
}
|
|
275
|
+
catch (error) {
|
|
276
|
+
return atob(output);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
function b64DecodeUnicode(input) {
|
|
280
|
+
return decodeURIComponent(atob(input).replace(/(.)/g, (m, p) => {
|
|
281
|
+
let code = p.charCodeAt(0).toString(16).toUpperCase();
|
|
282
|
+
if (code.length < 2) {
|
|
283
|
+
code = "0" + code;
|
|
284
|
+
}
|
|
285
|
+
return "%" + code;
|
|
286
|
+
}));
|
|
287
|
+
}
|
|
218
288
|
//# sourceMappingURL=RequestEnclave.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestEnclave.js","sourceRoot":"","sources":["../../../src/enclaves/RequestEnclave.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAenD,MAAM,OAAO,cAAe,SAAQ,QAAwB;IAA5D;;QAKI,gBAAW,GAAe,UAAU,CAAC,MAAM,CAAC;QAEpC,aAAQ,GAAiB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"RequestEnclave.js","sourceRoot":"","sources":["../../../src/enclaves/RequestEnclave.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/heimdall.js
CHANGED
|
@@ -90,23 +90,42 @@ export class Heimdall {
|
|
|
90
90
|
.forEach(iframe => iframe.remove());
|
|
91
91
|
}
|
|
92
92
|
async openHiddenIframe() {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
93
|
+
try {
|
|
94
|
+
// Remove any existing iframes with heimdall id
|
|
95
|
+
this.closeHiddenIframe();
|
|
96
|
+
// 1. Create the iframe
|
|
97
|
+
const iframe = document.createElement('iframe');
|
|
98
|
+
// Create iframe error listener
|
|
99
|
+
const iframeErrorListener = new Promise((res) => {
|
|
100
|
+
iframe.onerror = () => res(false);
|
|
101
|
+
iframe.addEventListener("error", () => {
|
|
102
|
+
res(false); // failed to load
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
iframe.src = this.getOrkUrl().toString();
|
|
106
|
+
iframe.style.display = 'none'; // hide it visually
|
|
107
|
+
iframe.id = "heimdall"; // in case multiple frames get popped up - we only want one
|
|
108
|
+
iframe.setAttribute('aria-hidden', 'true'); // accessibility hint
|
|
109
|
+
// 2. Add it to the document
|
|
110
|
+
document.body.appendChild(iframe);
|
|
111
|
+
// 3. Keep a reference to its window for postMessage
|
|
112
|
+
this.enclaveWindow = iframe.contentWindow;
|
|
113
|
+
if (!this.enclaveWindow)
|
|
114
|
+
return false;
|
|
115
|
+
// Create an iframe success listener
|
|
116
|
+
const pageLoaded = new Promise(async (res) => {
|
|
117
|
+
await this.waitForWindowPostMessage("pageLoaded");
|
|
118
|
+
res(true); // page loaded
|
|
119
|
+
});
|
|
120
|
+
const timeout = new Promise((resolve) => {
|
|
121
|
+
setTimeout(() => resolve(false), 2000); // 2-second timeout
|
|
122
|
+
});
|
|
123
|
+
const loadedResult = await Promise.race([iframeErrorListener, pageLoaded, timeout]);
|
|
124
|
+
return loadedResult;
|
|
125
|
+
}
|
|
126
|
+
catch (_a) {
|
|
106
127
|
return false;
|
|
107
|
-
|
|
108
|
-
await this.waitForWindowPostMessage("pageLoaded");
|
|
109
|
-
return true;
|
|
128
|
+
}
|
|
110
129
|
}
|
|
111
130
|
closePopupEnclave() {
|
|
112
131
|
this.enclaveWindow.close();
|
|
@@ -131,7 +150,7 @@ export class Heimdall {
|
|
|
131
150
|
this.enclaveWindow.postMessage(message, this.enclaveOrigin);
|
|
132
151
|
}
|
|
133
152
|
processEvent(data, origin, expectedType) {
|
|
134
|
-
if (origin !== this.enclaveOrigin) {
|
|
153
|
+
if (origin !== new URL(this.enclaveOrigin).origin) {
|
|
135
154
|
// Something's not right... The message has come from an unknown domain...
|
|
136
155
|
return { ok: false, print: false, error: "WRONG WINDOW SENT MESSAGE" };
|
|
137
156
|
}
|
package/dist/esm/heimdall.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heimdall.js","sourceRoot":"","sources":["../../src/heimdall.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"heimdall.js","sourceRoot":"","sources":["../../src/heimdall.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -26,6 +26,8 @@ export class RequestEnclave extends Heimdall<RequestEnclave>{
|
|
|
26
26
|
if(!data.doken) throw 'Doken not provided';
|
|
27
27
|
|
|
28
28
|
this.doken = data.doken;
|
|
29
|
+
let parsedDoken = decodeToken(this.doken);
|
|
30
|
+
if(parsedDoken["t.uho"]) this.enclaveOrigin = parsedDoken["t.uho"]; // use tidecloak set user home ork from doken
|
|
29
31
|
this.dokenRefreshCallback = data.dokenRefreshCallback;
|
|
30
32
|
this.requireReloginCallback = data.requireReloginCallback;
|
|
31
33
|
|
|
@@ -39,7 +41,21 @@ export class RequestEnclave extends Heimdall<RequestEnclave>{
|
|
|
39
41
|
doken: this.doken
|
|
40
42
|
}
|
|
41
43
|
});
|
|
42
|
-
}else
|
|
44
|
+
}else{
|
|
45
|
+
// If injecting iframe fails, try setting it as a popup and opening it
|
|
46
|
+
this._windowType = windowType.Popup;
|
|
47
|
+
this.open().then((success: boolean) => {
|
|
48
|
+
if(success){
|
|
49
|
+
this.send({
|
|
50
|
+
type: "init",
|
|
51
|
+
message: {
|
|
52
|
+
doken: this.doken
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
else throw 'Error opening all types of Request Enclave';
|
|
57
|
+
});
|
|
58
|
+
}
|
|
43
59
|
});
|
|
44
60
|
|
|
45
61
|
return this;
|
|
@@ -110,7 +126,10 @@ export class RequestEnclave extends Heimdall<RequestEnclave>{
|
|
|
110
126
|
doken: this.doken
|
|
111
127
|
}
|
|
112
128
|
});
|
|
113
|
-
}else
|
|
129
|
+
}else{
|
|
130
|
+
window.alert("There was an issue opening the fallback popup on this page. Please enable popups or let the administrator know about this problem. For more information, visit https://tide.org/browserwindow");
|
|
131
|
+
throw "Could not open popup";
|
|
132
|
+
}
|
|
114
133
|
});
|
|
115
134
|
}
|
|
116
135
|
|
|
@@ -243,6 +262,65 @@ export class RequestEnclave extends Heimdall<RequestEnclave>{
|
|
|
243
262
|
}
|
|
244
263
|
}
|
|
245
264
|
|
|
265
|
+
function decodeToken(token: string): any {
|
|
266
|
+
const [header, payload] = token.split(".");
|
|
267
|
+
|
|
268
|
+
if (typeof payload !== "string") {
|
|
269
|
+
throw new Error("Unable to decode token, payload not found.");
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
let decoded;
|
|
273
|
+
|
|
274
|
+
try {
|
|
275
|
+
decoded = base64UrlDecode(payload);
|
|
276
|
+
} catch (error) {
|
|
277
|
+
throw new Error("Unable to decode token, payload is not a valid Base64URL value. Error: " + error);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
try {
|
|
281
|
+
return JSON.parse(decoded);
|
|
282
|
+
} catch (error) {
|
|
283
|
+
throw new Error("Unable to decode token, payload is not a valid JSON value. Error: " + error);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
function base64UrlDecode(input: string): string {
|
|
288
|
+
let output = input
|
|
289
|
+
.replace(/-/g, "+")
|
|
290
|
+
.replace(/_/g, "/");
|
|
291
|
+
|
|
292
|
+
switch (output.length % 4) {
|
|
293
|
+
case 0:
|
|
294
|
+
break;
|
|
295
|
+
case 2:
|
|
296
|
+
output += "==";
|
|
297
|
+
break;
|
|
298
|
+
case 3:
|
|
299
|
+
output += "=";
|
|
300
|
+
break;
|
|
301
|
+
default:
|
|
302
|
+
throw new Error("Input is not of the correct length.");
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
try {
|
|
306
|
+
return b64DecodeUnicode(output);
|
|
307
|
+
} catch (error) {
|
|
308
|
+
return atob(output);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
function b64DecodeUnicode(input: string): string {
|
|
313
|
+
return decodeURIComponent(atob(input).replace(/(.)/g, (m, p) => {
|
|
314
|
+
let code = p.charCodeAt(0).toString(16).toUpperCase();
|
|
315
|
+
|
|
316
|
+
if (code.length < 2) {
|
|
317
|
+
code = "0" + code;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
return "%" + code;
|
|
321
|
+
}));
|
|
322
|
+
}
|
|
323
|
+
|
|
246
324
|
interface decryptRequest{
|
|
247
325
|
encrypted: Uint8Array;
|
|
248
326
|
tags: string[]
|
package/src/heimdall.ts
CHANGED
|
@@ -114,27 +114,49 @@ export abstract class Heimdall<T> implements EnclaveFlow<T> {
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
private async openHiddenIframe() {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
117
|
+
try{
|
|
118
|
+
// Remove any existing iframes with heimdall id
|
|
119
|
+
this.closeHiddenIframe();
|
|
120
|
+
|
|
121
|
+
// 1. Create the iframe
|
|
122
|
+
const iframe = document.createElement('iframe');
|
|
123
|
+
|
|
124
|
+
// Create iframe error listener
|
|
125
|
+
const iframeErrorListener = new Promise<boolean>((res) => {
|
|
126
|
+
iframe.onerror = () => res(false);
|
|
127
|
+
iframe.addEventListener("error", () => {
|
|
128
|
+
res(false); // failed to load
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
iframe.src = this.getOrkUrl().toString();
|
|
133
|
+
iframe.style.display = 'none'; // hide it visually
|
|
134
|
+
iframe.id = "heimdall"; // in case multiple frames get popped up - we only want one
|
|
135
|
+
iframe.setAttribute('aria-hidden', 'true'); // accessibility hint
|
|
136
|
+
|
|
137
|
+
// 2. Add it to the document
|
|
138
|
+
document.body.appendChild(iframe);
|
|
139
|
+
|
|
140
|
+
// 3. Keep a reference to its window for postMessage
|
|
141
|
+
this.enclaveWindow = iframe.contentWindow;
|
|
142
|
+
if (!this.enclaveWindow) return false;
|
|
143
|
+
|
|
144
|
+
// Create an iframe success listener
|
|
145
|
+
const pageLoaded = new Promise<boolean>(async (res) => {
|
|
146
|
+
await this.waitForWindowPostMessage("pageLoaded");
|
|
147
|
+
res(true); // page loaded
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
const timeout = new Promise<boolean>((resolve) => {
|
|
151
|
+
setTimeout(() => resolve(false), 2000); // 2-second timeout
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
const loadedResult = await Promise.race([iframeErrorListener, pageLoaded, timeout]);
|
|
155
|
+
|
|
156
|
+
return loadedResult;
|
|
157
|
+
}catch{
|
|
158
|
+
return false;
|
|
159
|
+
}
|
|
138
160
|
}
|
|
139
161
|
|
|
140
162
|
private closePopupEnclave() {
|
|
@@ -161,7 +183,7 @@ export abstract class Heimdall<T> implements EnclaveFlow<T> {
|
|
|
161
183
|
}
|
|
162
184
|
|
|
163
185
|
private processEvent(data: any, origin: string, expectedType: string){
|
|
164
|
-
if (origin !== this.enclaveOrigin) {
|
|
186
|
+
if (origin !== new URL(this.enclaveOrigin).origin) {
|
|
165
187
|
// Something's not right... The message has come from an unknown domain...
|
|
166
188
|
return {ok: false, print: false, error: "WRONG WINDOW SENT MESSAGE"};
|
|
167
189
|
}
|
package/heimdall-tide-0.11.5.tgz
DELETED
|
Binary file
|