@ironcorelabs/ironweb 4.2.42 → 4.3.1
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/commonjs/Constants.js +3 -1
- package/commonjs/lib/Utils.js +40 -1
- package/commonjs/shim/FrameMediator.js +11 -7
- package/commonjs/shim/sdk/DocumentSDK.js +283 -19
- package/es/Constants.js +3 -1
- package/es/lib/Utils.js +37 -0
- package/es/shim/FrameMediator.js +11 -7
- package/es/shim/sdk/DocumentSDK.js +280 -18
- package/ironweb.d.ts +25 -0
- package/ironweb.min.js +1 -1
- package/ironweb.min.js.map +1 -1
- package/package.json +5 -1
|
@@ -1,3 +1,39 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (_) try {
|
|
17
|
+
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;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
1
37
|
var __read = (this && this.__read) || function (o, n) {
|
|
2
38
|
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
3
39
|
if (!m) return o;
|
|
@@ -14,12 +50,21 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
14
50
|
}
|
|
15
51
|
return ar;
|
|
16
52
|
};
|
|
53
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
54
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
55
|
+
if (ar || !(i in from)) {
|
|
56
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
57
|
+
ar[i] = from[i];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
61
|
+
};
|
|
17
62
|
import Future from "futurejs";
|
|
18
63
|
import { ErrorCodes, HEADER_META_LENGTH_LENGTH, VERSION_HEADER_LENGTH } from "../../Constants";
|
|
19
64
|
import SDKError from "../../lib/SDKError";
|
|
65
|
+
import { concatArrayBuffers, parseDocumentHeader } from "../../lib/Utils";
|
|
20
66
|
import * as FrameMediator from "../FrameMediator";
|
|
21
67
|
import * as ShimUtils from "../ShimUtils";
|
|
22
|
-
import { utf8 } from "./CodecSDK";
|
|
23
68
|
var MAX_DOCUMENT_SIZE = 1024 * 2 * 1000; //2MB
|
|
24
69
|
/**
|
|
25
70
|
* Takes the document encrypt options object and normalizes it to a complete object with proper default values.
|
|
@@ -83,23 +128,12 @@ export function getMetadata(documentID) {
|
|
|
83
128
|
export function getDocumentIDFromBytes(documentData) {
|
|
84
129
|
ShimUtils.checkSDKInitialized();
|
|
85
130
|
ShimUtils.validateEncryptedDocument(documentData);
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
return Promise.reject(new SDKError(new Error("Provided encrypted document doesn't appear to be valid. Invalid version."), ErrorCodes.DOCUMENT_HEADER_PARSE_FAILURE));
|
|
93
|
-
}
|
|
94
|
-
var headerLength = new DataView(documentData.buffer).getUint16(documentData.byteOffset + VERSION_HEADER_LENGTH, false);
|
|
95
|
-
var headerContent = documentData.slice(VERSION_HEADER_LENGTH + HEADER_META_LENGTH_LENGTH, VERSION_HEADER_LENGTH + HEADER_META_LENGTH_LENGTH + headerLength);
|
|
96
|
-
try {
|
|
97
|
-
var headerObject = JSON.parse(utf8.fromBytes(headerContent));
|
|
98
|
-
return Promise.resolve(headerObject._did_);
|
|
99
|
-
}
|
|
100
|
-
catch (_a) {
|
|
101
|
-
return Promise.reject(new SDKError(new Error("Unable to parse document header. Header value is corrupted."), ErrorCodes.DOCUMENT_HEADER_PARSE_FAILURE));
|
|
102
|
-
}
|
|
131
|
+
return parseDocumentHeader(documentData)
|
|
132
|
+
.map(function (_a) {
|
|
133
|
+
var documentID = _a.documentID;
|
|
134
|
+
return documentID;
|
|
135
|
+
})
|
|
136
|
+
.toPromise();
|
|
103
137
|
}
|
|
104
138
|
/**
|
|
105
139
|
* @deprecated Use `decrypt` instead.
|
|
@@ -354,6 +388,174 @@ export function revokeAccess(documentID, revokeList) {
|
|
|
354
388
|
})
|
|
355
389
|
.toPromise();
|
|
356
390
|
}
|
|
391
|
+
/**
|
|
392
|
+
* Parse the version header, header JSON, and IV from the beginning of an encrypted ReadableStream.
|
|
393
|
+
* Returns the document ID, IV, and a new ReadableStream starting after the header+IV (ciphertext only).
|
|
394
|
+
*/
|
|
395
|
+
function parseStreamHeader(encryptedStream) {
|
|
396
|
+
var _this = this;
|
|
397
|
+
return Future.tryP(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
398
|
+
var reader, chunks_1, totalLen_1, readAtLeastIntoChunks, initialHeaderBytes, headerJsonLength, e_1;
|
|
399
|
+
var _this = this;
|
|
400
|
+
return __generator(this, function (_a) {
|
|
401
|
+
switch (_a.label) {
|
|
402
|
+
case 0:
|
|
403
|
+
reader = encryptedStream.getReader();
|
|
404
|
+
_a.label = 1;
|
|
405
|
+
case 1:
|
|
406
|
+
_a.trys.push([1, 7, , 8]);
|
|
407
|
+
chunks_1 = [];
|
|
408
|
+
totalLen_1 = 0;
|
|
409
|
+
readAtLeastIntoChunks = function (n) { return __awaiter(_this, void 0, void 0, function () {
|
|
410
|
+
var _a, done, value;
|
|
411
|
+
return __generator(this, function (_b) {
|
|
412
|
+
switch (_b.label) {
|
|
413
|
+
case 0:
|
|
414
|
+
if (!(totalLen_1 < n)) return [3 /*break*/, 2];
|
|
415
|
+
return [4 /*yield*/, reader.read()];
|
|
416
|
+
case 1:
|
|
417
|
+
_a = _b.sent(), done = _a.done, value = _a.value;
|
|
418
|
+
if (done)
|
|
419
|
+
throw new SDKError(new Error("Encrypted stream ended before header could be parsed"), ErrorCodes.DOCUMENT_HEADER_PARSE_FAILURE);
|
|
420
|
+
chunks_1.push(value);
|
|
421
|
+
totalLen_1 += value.length;
|
|
422
|
+
return [3 /*break*/, 0];
|
|
423
|
+
case 2: return [2 /*return*/];
|
|
424
|
+
}
|
|
425
|
+
});
|
|
426
|
+
}); };
|
|
427
|
+
// Need to read the header length prefix to know total size.
|
|
428
|
+
return [4 /*yield*/, readAtLeastIntoChunks(VERSION_HEADER_LENGTH + HEADER_META_LENGTH_LENGTH)];
|
|
429
|
+
case 2:
|
|
430
|
+
// Need to read the header length prefix to know total size.
|
|
431
|
+
_a.sent();
|
|
432
|
+
initialHeaderBytes = concatArrayBuffers.apply(void 0, __spreadArray([], __read(chunks_1), false));
|
|
433
|
+
if (!(initialHeaderBytes[0] === 2)) return [3 /*break*/, 4];
|
|
434
|
+
headerJsonLength = new DataView(initialHeaderBytes.buffer, initialHeaderBytes.byteOffset).getUint16(VERSION_HEADER_LENGTH, false);
|
|
435
|
+
return [4 /*yield*/, readAtLeastIntoChunks(VERSION_HEADER_LENGTH + HEADER_META_LENGTH_LENGTH + headerJsonLength + 12)];
|
|
436
|
+
case 3:
|
|
437
|
+
_a.sent();
|
|
438
|
+
return [3 /*break*/, 6];
|
|
439
|
+
case 4: return [4 /*yield*/, readAtLeastIntoChunks(VERSION_HEADER_LENGTH + 12)];
|
|
440
|
+
case 5:
|
|
441
|
+
_a.sent();
|
|
442
|
+
_a.label = 6;
|
|
443
|
+
case 6: return [2 /*return*/, { reader: reader, buffer: concatArrayBuffers.apply(void 0, __spreadArray([], __read(chunks_1), false)) }];
|
|
444
|
+
case 7:
|
|
445
|
+
e_1 = _a.sent();
|
|
446
|
+
// On any error in reading header chunks we need to release the reader
|
|
447
|
+
reader.releaseLock();
|
|
448
|
+
throw e_1;
|
|
449
|
+
case 8: return [2 /*return*/];
|
|
450
|
+
}
|
|
451
|
+
});
|
|
452
|
+
}); }).flatMap(function (_a) {
|
|
453
|
+
var reader = _a.reader, buffer = _a.buffer;
|
|
454
|
+
return parseDocumentHeader(buffer)
|
|
455
|
+
.map(function (parsed) {
|
|
456
|
+
var remainder = buffer.slice(parsed.contentOffset);
|
|
457
|
+
// Once we've parsed the header we might have remaining bytes. If
|
|
458
|
+
// we do we start out the ciphertextStream by writing them and then pull
|
|
459
|
+
// can just pull from the reader we had previously read from.
|
|
460
|
+
var ciphertextStream = new ReadableStream({
|
|
461
|
+
start: function (controller) {
|
|
462
|
+
if (remainder.length > 0) {
|
|
463
|
+
controller.enqueue(remainder);
|
|
464
|
+
}
|
|
465
|
+
},
|
|
466
|
+
pull: function (controller) {
|
|
467
|
+
return reader.read().then(function (_a) {
|
|
468
|
+
var done = _a.done, value = _a.value;
|
|
469
|
+
done ? controller.close() : controller.enqueue(value);
|
|
470
|
+
});
|
|
471
|
+
},
|
|
472
|
+
cancel: function () {
|
|
473
|
+
return reader.cancel();
|
|
474
|
+
},
|
|
475
|
+
});
|
|
476
|
+
return { documentID: parsed.documentID, iv: parsed.iv, ciphertextStream: ciphertextStream };
|
|
477
|
+
})
|
|
478
|
+
.errorMap(function (e) {
|
|
479
|
+
// On any error in preparing the new stream we need to release the reader lock
|
|
480
|
+
// This is purely defensive.
|
|
481
|
+
reader.releaseLock();
|
|
482
|
+
return e;
|
|
483
|
+
});
|
|
484
|
+
});
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* Encrypt a plaintext stream. Returns a Promise which resolves with the encrypted stream and document metadata.
|
|
488
|
+
* The output stream produces bytes in the same format as encrypt(): [header][IV][ciphertext][auth_tag].
|
|
489
|
+
*
|
|
490
|
+
* @param {ReadableStream<Uint8Array>} plaintextStream Plaintext data as a ReadableStream
|
|
491
|
+
* @param {DocumentCreateOptions} options Document create options
|
|
492
|
+
*/
|
|
493
|
+
export function encryptStream(plaintextStream, options) {
|
|
494
|
+
ShimUtils.checkSDKInitialized();
|
|
495
|
+
var encryptOptions = calculateDocumentCreateOptionsDefault(options);
|
|
496
|
+
if (encryptOptions.documentID) {
|
|
497
|
+
ShimUtils.validateID(encryptOptions.documentID);
|
|
498
|
+
}
|
|
499
|
+
var _a = __read(ShimUtils.dedupeAccessLists(encryptOptions.accessList), 2), userGrants = _a[0], groupGrants = _a[1];
|
|
500
|
+
var payload = {
|
|
501
|
+
type: "DOCUMENT_STREAM_ENCRYPT",
|
|
502
|
+
message: {
|
|
503
|
+
documentID: encryptOptions.documentID,
|
|
504
|
+
documentName: encryptOptions.documentName,
|
|
505
|
+
plaintextStream: plaintextStream,
|
|
506
|
+
userGrants: userGrants,
|
|
507
|
+
groupGrants: groupGrants,
|
|
508
|
+
grantToAuthor: encryptOptions.accessList.grantToAuthor,
|
|
509
|
+
policy: encryptOptions.policy,
|
|
510
|
+
},
|
|
511
|
+
};
|
|
512
|
+
// Cast needed because TS's Transferable type doesn't yet include ReadableStream/WritableStream
|
|
513
|
+
return FrameMediator.sendMessage(payload, [plaintextStream])
|
|
514
|
+
.map(function (_a) {
|
|
515
|
+
var message = _a.message;
|
|
516
|
+
return ({
|
|
517
|
+
documentID: message.documentID,
|
|
518
|
+
documentName: message.documentName,
|
|
519
|
+
encryptedStream: message.encryptedStream,
|
|
520
|
+
created: message.created,
|
|
521
|
+
updated: message.updated,
|
|
522
|
+
});
|
|
523
|
+
})
|
|
524
|
+
.toPromise();
|
|
525
|
+
}
|
|
526
|
+
/**
|
|
527
|
+
* Decrypt an encrypted document stream. Parses the header and IV from the stream, then streams decrypted
|
|
528
|
+
* plaintext back via the returned ReadableStream. If the auth tag fails at the end of the stream, the
|
|
529
|
+
* readable side errors — which propagates through pipeTo() to abort any destination WritableStream.
|
|
530
|
+
*
|
|
531
|
+
* @param {string} documentID ID of the document to decrypt
|
|
532
|
+
* @param {ReadableStream<Uint8Array>} encryptedStream Encrypted document as a ReadableStream (from fetch().body, file.stream(), etc.)
|
|
533
|
+
*/
|
|
534
|
+
export function decryptStream(documentID, encryptedStream) {
|
|
535
|
+
ShimUtils.checkSDKInitialized();
|
|
536
|
+
ShimUtils.validateID(documentID);
|
|
537
|
+
return parseStreamHeader(encryptedStream)
|
|
538
|
+
.flatMap(function (_a) {
|
|
539
|
+
var iv = _a.iv, ciphertextStream = _a.ciphertextStream;
|
|
540
|
+
var payload = {
|
|
541
|
+
type: "DOCUMENT_STREAM_DECRYPT",
|
|
542
|
+
message: { documentID: documentID, iv: iv, encryptedStream: ciphertextStream },
|
|
543
|
+
};
|
|
544
|
+
return FrameMediator.sendMessage(payload, [ciphertextStream]).map(function (_a) {
|
|
545
|
+
var message = _a.message;
|
|
546
|
+
return ({
|
|
547
|
+
documentID: documentID,
|
|
548
|
+
documentName: message.documentName,
|
|
549
|
+
visibleTo: message.visibleTo,
|
|
550
|
+
association: message.association,
|
|
551
|
+
created: message.created,
|
|
552
|
+
updated: message.updated,
|
|
553
|
+
plaintextStream: message.plaintextStream,
|
|
554
|
+
});
|
|
555
|
+
});
|
|
556
|
+
})
|
|
557
|
+
.toPromise();
|
|
558
|
+
}
|
|
357
559
|
/**
|
|
358
560
|
* A collection of methods for advanced encryption/decryption use cases. Currently focused on methods which require the caller to manage the encrypted
|
|
359
561
|
* DEKs.
|
|
@@ -389,6 +591,66 @@ export var advanced = {
|
|
|
389
591
|
})
|
|
390
592
|
.toPromise();
|
|
391
593
|
},
|
|
594
|
+
/**
|
|
595
|
+
* Streaming decrypt with caller-provided EDEKs. Parses the header/IV from the stream, then decrypts.
|
|
596
|
+
* If the auth tag fails, the returned plaintextStream errors.
|
|
597
|
+
*/
|
|
598
|
+
decryptStreamUnmanaged: function (encryptedStream, edeks) {
|
|
599
|
+
ShimUtils.checkSDKInitialized();
|
|
600
|
+
ShimUtils.validateEncryptedDeks(edeks);
|
|
601
|
+
return parseStreamHeader(encryptedStream)
|
|
602
|
+
.flatMap(function (_a) {
|
|
603
|
+
var documentID = _a.documentID, iv = _a.iv, ciphertextStream = _a.ciphertextStream;
|
|
604
|
+
var payload = {
|
|
605
|
+
type: "DOCUMENT_UNMANAGED_STREAM_DECRYPT",
|
|
606
|
+
message: { edeks: edeks, iv: iv, encryptedStream: ciphertextStream },
|
|
607
|
+
};
|
|
608
|
+
return FrameMediator.sendMessage(payload, [
|
|
609
|
+
ciphertextStream,
|
|
610
|
+
]).map(function (_a) {
|
|
611
|
+
var message = _a.message;
|
|
612
|
+
return ({
|
|
613
|
+
documentID: documentID,
|
|
614
|
+
plaintextStream: message.plaintextStream,
|
|
615
|
+
accessVia: message.accessVia,
|
|
616
|
+
});
|
|
617
|
+
});
|
|
618
|
+
})
|
|
619
|
+
.toPromise();
|
|
620
|
+
},
|
|
621
|
+
/**
|
|
622
|
+
* Streaming encrypt with caller-managed EDEKs. Returns the encrypted stream and EDEKs to the caller.
|
|
623
|
+
* The output stream produces bytes in the same format as encrypt(): [header][IV][ciphertext][auth_tag].
|
|
624
|
+
*/
|
|
625
|
+
encryptStreamUnmanaged: function (plaintextStream, options) {
|
|
626
|
+
ShimUtils.checkSDKInitialized();
|
|
627
|
+
var encryptOptions = calculateDocumentCreateOptionsDefault(options);
|
|
628
|
+
if (encryptOptions.documentID) {
|
|
629
|
+
ShimUtils.validateID(encryptOptions.documentID);
|
|
630
|
+
}
|
|
631
|
+
var _a = __read(ShimUtils.dedupeAccessLists(encryptOptions.accessList), 2), userGrants = _a[0], groupGrants = _a[1];
|
|
632
|
+
var payload = {
|
|
633
|
+
type: "DOCUMENT_UNMANAGED_STREAM_ENCRYPT",
|
|
634
|
+
message: {
|
|
635
|
+
documentID: encryptOptions.documentID,
|
|
636
|
+
plaintextStream: plaintextStream,
|
|
637
|
+
userGrants: userGrants,
|
|
638
|
+
groupGrants: groupGrants,
|
|
639
|
+
grantToAuthor: encryptOptions.accessList.grantToAuthor,
|
|
640
|
+
policy: encryptOptions.policy,
|
|
641
|
+
},
|
|
642
|
+
};
|
|
643
|
+
return FrameMediator.sendMessage(payload, [plaintextStream])
|
|
644
|
+
.map(function (_a) {
|
|
645
|
+
var message = _a.message;
|
|
646
|
+
return ({
|
|
647
|
+
documentID: message.documentID,
|
|
648
|
+
encryptedStream: message.encryptedStream,
|
|
649
|
+
edeks: message.edeks,
|
|
650
|
+
});
|
|
651
|
+
})
|
|
652
|
+
.toPromise();
|
|
653
|
+
},
|
|
392
654
|
/**
|
|
393
655
|
* Encrypt the provided document with various document create options. Does not store any part of the document within IronCore and instead returns
|
|
394
656
|
* the encrypted DEKs to the caller. These encrypted DEKs must be then be provided as input in order to decrypt the document.
|
package/ironweb.d.ts
CHANGED
|
@@ -96,6 +96,22 @@ export interface DocumentAccessResponse {
|
|
|
96
96
|
succeeded: UserOrGroup[];
|
|
97
97
|
failed: (UserOrGroup & {error: string})[];
|
|
98
98
|
}
|
|
99
|
+
export interface StreamEncryptResponse extends DocumentIDNameResponse {
|
|
100
|
+
encryptedStream: ReadableStream<Uint8Array>;
|
|
101
|
+
}
|
|
102
|
+
export interface StreamEncryptUnmanagedResponse {
|
|
103
|
+
documentID: string;
|
|
104
|
+
encryptedStream: ReadableStream<Uint8Array>;
|
|
105
|
+
edeks: Uint8Array;
|
|
106
|
+
}
|
|
107
|
+
export interface StreamDecryptResponse extends DocumentMetaResponse {
|
|
108
|
+
plaintextStream: ReadableStream<Uint8Array>;
|
|
109
|
+
}
|
|
110
|
+
export interface StreamDecryptUnmanagedResponse {
|
|
111
|
+
documentID: string;
|
|
112
|
+
plaintextStream: ReadableStream<Uint8Array>;
|
|
113
|
+
accessVia: UserOrGroup;
|
|
114
|
+
}
|
|
99
115
|
|
|
100
116
|
/**
|
|
101
117
|
* Group SDK response types
|
|
@@ -191,8 +207,10 @@ export interface Document {
|
|
|
191
207
|
getMetadata(documentID: string): Promise<DocumentMetaResponse>;
|
|
192
208
|
getDocumentIDFromBytes(encryptedDocument: Uint8Array): Promise<string | null>;
|
|
193
209
|
decrypt(documentID: string, encryptedDocument: Uint8Array): Promise<DecryptedDocumentResponse>;
|
|
210
|
+
decryptStream(documentID: string, encryptedStream: ReadableStream<Uint8Array>): Promise<StreamDecryptResponse>;
|
|
194
211
|
decryptFromStore(documentID: string): Promise<DecryptedDocumentResponse>;
|
|
195
212
|
encrypt(documentData: Uint8Array, options?: DocumentCreateOptions): Promise<EncryptedDocumentResponse>;
|
|
213
|
+
encryptStream(plaintextStream: ReadableStream<Uint8Array>, options?: DocumentCreateOptions): Promise<StreamEncryptResponse>;
|
|
196
214
|
encryptToStore(documentData: Uint8Array, options?: DocumentCreateOptions): Promise<DocumentIDNameResponse>;
|
|
197
215
|
updateEncryptedData(documentID: string, newDocumentData: Uint8Array): Promise<EncryptedDocumentResponse>;
|
|
198
216
|
updateEncryptedDataInStore(documentID: string, newDocumentData: Uint8Array): Promise<DocumentIDNameResponse>;
|
|
@@ -201,7 +219,12 @@ export interface Document {
|
|
|
201
219
|
revokeAccess(documentID: string, revokeList: DocumentAccessList): Promise<DocumentAccessResponse>;
|
|
202
220
|
advanced: {
|
|
203
221
|
decryptUnmanaged(data: Uint8Array, edeks: Uint8Array): Promise<DecryptedUnmanagedDocumentResponse>;
|
|
222
|
+
decryptStreamUnmanaged(encryptedStream: ReadableStream<Uint8Array>, edeks: Uint8Array): Promise<StreamDecryptUnmanagedResponse>;
|
|
204
223
|
encryptUnmanaged(documentData: Uint8Array, options?: Omit<DocumentCreateOptions, "documentName">): Promise<EncryptedUnmanagedDocumentResponse>;
|
|
224
|
+
encryptStreamUnmanaged(
|
|
225
|
+
plaintextStream: ReadableStream<Uint8Array>,
|
|
226
|
+
options?: Omit<DocumentCreateOptions, "documentName">
|
|
227
|
+
): Promise<StreamEncryptUnmanagedResponse>;
|
|
205
228
|
};
|
|
206
229
|
}
|
|
207
230
|
|
|
@@ -297,6 +320,8 @@ export interface ErrorCodes {
|
|
|
297
320
|
DOCUMENT_CREATE_WITH_ACCESS_FAILURE: 311;
|
|
298
321
|
DOCUMENT_HEADER_PARSE_FAILURE: 312;
|
|
299
322
|
DOCUMENT_TRANSFORM_REQUEST_FAILURE: 313;
|
|
323
|
+
DOCUMENT_STREAM_DECRYPT_FAILURE: 314;
|
|
324
|
+
DOCUMENT_STREAM_ENCRYPT_FAILURE: 315;
|
|
300
325
|
GROUP_LIST_REQUEST_FAILURE: 400;
|
|
301
326
|
GROUP_GET_REQUEST_FAILURE: 401;
|
|
302
327
|
GROUP_CREATE_REQUEST_FAILURE: 402;
|
package/ironweb.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ironweb=t():e.ironweb=t()}(self,(()=>(()=>{"use strict";var e={52:(e,t)=>{var r="utf8: invalid string",n="utf8: invalid source encoding";function o(e){for(var t=0,n=0;n<e.length;n++){var o=e.charCodeAt(n);if(o<128)t+=1;else if(o<2048)t+=2;else if(o<55296)t+=3;else{if(!(o<=57343))throw new Error(r);if(n>=e.length-1)throw new Error(r);n++,t+=4}}return t}t.lF=function(e){for(var t=new Uint8Array(o(e)),r=0,n=0;n<e.length;n++){var E=e.charCodeAt(n);E<128?t[r++]=E:E<2048?(t[r++]=192|E>>6,t[r++]=128|63&E):E<55296?(t[r++]=224|E>>12,t[r++]=128|E>>6&63,t[r++]=128|63&E):(n++,E=(1023&E)<<10,E|=1023&e.charCodeAt(n),E+=65536,t[r++]=240|E>>18,t[r++]=128|E>>12&63,t[r++]=128|E>>6&63,t[r++]=128|63&E)}return t},t.D4=function(e){for(var t=[],r=0;r<e.length;r++){var o=e[r];if(128&o){var E=void 0;if(o<224){if(r>=e.length)throw new Error(n);if(128!=(192&(a=e[++r])))throw new Error(n);o=(31&o)<<6|63&a,E=128}else if(o<240){if(r>=e.length-1)throw new Error(n);var a=e[++r],s=e[++r];if(128!=(192&a)||128!=(192&s))throw new Error(n);o=(15&o)<<12|(63&a)<<6|63&s,E=2048}else{if(!(o<248))throw new Error(n);if(r>=e.length-2)throw new Error(n);a=e[++r],s=e[++r];var i=e[++r];if(128!=(192&a)||128!=(192&s)||128!=(192&i))throw new Error(n);o=(15&o)<<18|(63&a)<<12|(63&s)<<6|63&i,E=65536}if(o<E||o>=55296&&o<=57343)throw new Error(n);if(o>=65536){if(o>1114111)throw new Error(n);o-=65536,t.push(String.fromCharCode(55296|o>>10)),o=56320|1023&o}}t.push(String.fromCharCode(o))}return t.join("")}},526:(e,t)=>{t.bg=function(e){var t,r,E=s(e),a=E[0],i=E[1],u=new o(function(e,t,r){return 3*(t+r)/4-r}(0,a,i)),c=0,_=i>0?a-4:a;for(r=0;r<_;r+=4)t=n[e.charCodeAt(r)]<<18|n[e.charCodeAt(r+1)]<<12|n[e.charCodeAt(r+2)]<<6|n[e.charCodeAt(r+3)],u[c++]=t>>16&255,u[c++]=t>>8&255,u[c++]=255&t;2===i&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,u[c++]=255&t);1===i&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,u[c++]=t>>8&255,u[c++]=255&t);return u},t.iI=function(e){for(var t,n=e.length,o=n%3,E=[],a=16383,s=0,u=n-o;s<u;s+=a)E.push(i(e,s,s+a>u?u:s+a));1===o?(t=e[n-1],E.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],E.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return E.join("")};for(var r=[],n=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0;a<64;++a)r[a]=E[a],n[E.charCodeAt(a)]=a;function s(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function i(e,t,n){for(var o,E,a=[],s=t;s<n;s+=3)o=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),a.push(r[(E=o)>>18&63]+r[E>>12&63]+r[E>>6&63]+r[63&E]);return a.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},702:(e,t)=>{var r=function(){function e(e){this.action=e}return e.prototype.engage=function(e,t){this.action(e,t)},e.prototype.engageAndCatch=function(e,t){try{this.engage(e,t)}catch(t){e(t)}},e.prototype.then=function(e,t){return this.toPromise().then(e,t)},e.prototype.toPromise=function(){var e=this;return new Promise((function(t,r){return e.engage(r,t)}))},e.prototype.map=function(t){return this.flatMap((function(r){return e.of(t(r))}))},e.prototype.flatMap=function(t){var r=this;return new e((function(e,n){r.engageAndCatch(e,(function(r){return t(r).engageAndCatch(e,n)}))}))},e.prototype.handleWith=function(t){var r=this;return new e((function(e,n){r.engage((function(r){t(r).engage(e,n)}),n)}))},e.prototype.errorMap=function(t){var r=this;return new e((function(e,n){r.engageAndCatch((function(r){return e(t(r))}),n)}))},e.tryF=function(t){return new e((function(e,r){var n;try{n=t()}catch(t){return e(t)}r(n)}))},e.tryP=function(t){return new e((function(e,r){var n;try{n=t()}catch(t){return e(t)}n.then(r).catch(e)}))},e.of=function(t){return new e((function(e,r){r(t)}))},e.reject=function(t){return new e((function(e){e(t)}))},e.encase=function(t,r){return new e((function(e,n){var o;try{o=t(r)}catch(t){return e(t)}n(o)}))},e.gather2=function(t,r){return new e((function(e,n){var o=[],E=0,a=!1;t.engageAndCatch((function(t){a||(a=!0,e(t))}),(function(e){o[0]=e,2===++E&&n(o)})),r.engageAndCatch((function(t){a||(a=!0,e(t))}),(function(e){o[1]=e,2===++E&&n(o)}))}))},e.gather3=function(e,t,r){var n=this.gather2(e,t);return this.gather2(n,r).map((function(e){var t=e[0];return[t[0],t[1],e[1]]}))},e.gather4=function(e,t,r,n){var o=this.gather2(e,t),E=this.gather2(r,n);return this.gather2(o,E).map((function(e){var t=e[0],r=t[0],n=t[1],o=e[1];return[r,n,o[0],o[1]]}))},e.all=function(e){return Array.isArray(e)?this.allArray(e):this.allObject(e)},e.allArray=function(t){return new e((function(e,r){var n=[],o=0;0===t.length&&r(n),t.forEach((function(E,a){E.engageAndCatch((function(t){e(t)}),(function(e){n[a]=e,(o+=1)===t.length&&r(n)}))}))}))},e.allObject=function(e){var t=Object.keys(e),r=t.map((function(t){return e[t]}));return this.allArray(r).map((function(e){return t.reduce((function(t,r,n){return t[r]=e[n],t}),{})}))},e}();t.A=r}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var E=t[n]={exports:{}};return e[n](E,E.exports,r),E.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};r.r(n),r.d(n,{ErrorCodes:()=>u,SDKError:()=>d,codec:()=>be,createNewDeviceKeys:()=>je,createNewUser:()=>Be,deleteDeviceByPublicSigningKey:()=>H,document:()=>Fe,group:()=>ve,initialize:()=>He,isInitialized:()=>xe,search:()=>Ge,user:()=>we});var o={};r.r(o),r.d(o,{base64:()=>z,utf8:()=>k});var E={};r.r(E),r.d(E,{advanced:()=>ce,decrypt:()=>re,decryptFromStore:()=>te,encrypt:()=>oe,encryptToStore:()=>ne,getDocumentIDFromBytes:()=>ee,getMetadata:()=>$,grantAccess:()=>ie,list:()=>q,revokeAccess:()=>ue,updateEncryptedData:()=>ae,updateEncryptedDataInStore:()=>Ee,updateName:()=>se});var a={};r.r(a),r.d(a,{addAdmins:()=>me,addMembers:()=>de,create:()=>Ae,deleteGroup:()=>ge,get:()=>Re,list:()=>_e,removeAdmins:()=>Ue,removeMembers:()=>pe,removeSelfAsMember:()=>Te,rotatePrivateKey:()=>fe,update:()=>Ie});var s={};r.r(s),r.d(s,{createBlindSearchIndex:()=>le,initializeBlindSearchIndex:()=>he,transliterateString:()=>Oe});var i={};r.r(i),r.d(i,{changePasscode:()=>Le,deauthorizeDevice:()=>Ne,deleteDevice:()=>Pe,deleteDeviceByPublicSigningKey:()=>Ce,listDevices:()=>Me,rotateMasterKey:()=>ye});var u,c=1,_=2,R=/^[a-zA-Z0-9_.$#|@/:;=+'-]{1,100}$/,A={VERSION_HEADER_LENGTH:1,IV_LENGTH:12,SALT_LENGTH:32,AES_SYMMETRIC_KEY_LENGTH:32,PBKDF2_ITERATIONS:25e4,NATIVE_DECRYPT_FAILURE_ERROR:"OperationError"};!function(e){e[e.JWT_FORMAT_FAILURE=100]="JWT_FORMAT_FAILURE",e[e.JWT_RETRIEVAL_FAILURE=101]="JWT_RETRIEVAL_FAILURE",e[e.VERIFY_API_REQUEST_FAILURE=102]="VERIFY_API_REQUEST_FAILURE",e[e.BROWSER_FRAME_MESSAGE_FAILURE=103]="BROWSER_FRAME_MESSAGE_FAILURE",e[e.RANDOM_NUMBER_GENERATION_FAILURE=104]="RANDOM_NUMBER_GENERATION_FAILURE",e[e.PASSCODE_FORMAT_FAILURE=105]="PASSCODE_FORMAT_FAILURE",e[e.PASSCODE_RETRIEVAL_FAILURE=106]="PASSCODE_RETRIEVAL_FAILURE",e[e.SIGNATURE_GENERATION_FAILURE=107]="SIGNATURE_GENERATION_FAILURE",e[e.USER_NOT_SYNCED_FAILURE=108]="USER_NOT_SYNCED_FAILURE",e[e.WEBASSEMBLY_SUPPORT_FAILURE=109]="WEBASSEMBLY_SUPPORT_FAILURE",e[e.FRAME_LOAD_FAILURE=110]="FRAME_LOAD_FAILURE",e[e.USER_VERIFY_API_REQUEST_FAILURE=200]="USER_VERIFY_API_REQUEST_FAILURE",e[e.USER_CREATE_REQUEST_FAILURE=201]="USER_CREATE_REQUEST_FAILURE",e[e.USER_UPDATE_REQUEST_FAILURE=202]="USER_UPDATE_REQUEST_FAILURE",e[e.USER_PASSCODE_INCORRECT=203]="USER_PASSCODE_INCORRECT",e[e.USER_KEY_LIST_REQUEST_FAILURE=204]="USER_KEY_LIST_REQUEST_FAILURE",e[e.USER_DEVICE_ADD_REQUEST_FAILURE=205]="USER_DEVICE_ADD_REQUEST_FAILURE",e[e.USER_MASTER_KEY_GENERATION_FAILURE=206]="USER_MASTER_KEY_GENERATION_FAILURE",e[e.USER_DEVICE_KEY_GENERATION_FAILURE=207]="USER_DEVICE_KEY_GENERATION_FAILURE",e[e.USER_DEVICE_KEY_DECRYPTION_FAILURE=208]="USER_DEVICE_KEY_DECRYPTION_FAILURE",e[e.USER_PASSCODE_CHANGE_FAILURE=209]="USER_PASSCODE_CHANGE_FAILURE",e[e.USER_DEVICE_DELETE_REQUEST_FAILURE=210]="USER_DEVICE_DELETE_REQUEST_FAILURE",e[e.USER_UPDATE_KEY_REQUEST_FAILURE=211]="USER_UPDATE_KEY_REQUEST_FAILURE",e[e.USER_PRIVATE_KEY_ROTATION_FAILURE=212]="USER_PRIVATE_KEY_ROTATION_FAILURE",e[e.USER_DEVICE_LIST_REQUEST_FAILURE=213]="USER_DEVICE_LIST_REQUEST_FAILURE",e[e.DOCUMENT_LIST_REQUEST_FAILURE=300]="DOCUMENT_LIST_REQUEST_FAILURE",e[e.DOCUMENT_GET_REQUEST_FAILURE=301]="DOCUMENT_GET_REQUEST_FAILURE",e[e.DOCUMENT_CREATE_REQUEST_FAILURE=302]="DOCUMENT_CREATE_REQUEST_FAILURE",e[e.DOCUMENT_UPDATE_REQUEST_FAILURE=303]="DOCUMENT_UPDATE_REQUEST_FAILURE",e[e.DOCUMENT_GRANT_ACCESS_REQUEST_FAILURE=304]="DOCUMENT_GRANT_ACCESS_REQUEST_FAILURE",e[e.DOCUMENT_REVOKE_ACCESS_REQUEST_FAILURE=305]="DOCUMENT_REVOKE_ACCESS_REQUEST_FAILURE",e[e.DOCUMENT_DECRYPT_FAILURE=306]="DOCUMENT_DECRYPT_FAILURE",e[e.DOCUMENT_ENCRYPT_FAILURE=307]="DOCUMENT_ENCRYPT_FAILURE",e[e.DOCUMENT_REENCRYPT_FAILURE=308]="DOCUMENT_REENCRYPT_FAILURE",e[e.DOCUMENT_GRANT_ACCESS_FAILURE=309]="DOCUMENT_GRANT_ACCESS_FAILURE",e[e.DOCUMENT_MAX_SIZE_EXCEEDED=310]="DOCUMENT_MAX_SIZE_EXCEEDED",e[e.DOCUMENT_CREATE_WITH_ACCESS_FAILURE=311]="DOCUMENT_CREATE_WITH_ACCESS_FAILURE",e[e.DOCUMENT_HEADER_PARSE_FAILURE=312]="DOCUMENT_HEADER_PARSE_FAILURE",e[e.DOCUMENT_TRANSFORM_REQUEST_FAILURE=313]="DOCUMENT_TRANSFORM_REQUEST_FAILURE",e[e.GROUP_LIST_REQUEST_FAILURE=400]="GROUP_LIST_REQUEST_FAILURE",e[e.GROUP_GET_REQUEST_FAILURE=401]="GROUP_GET_REQUEST_FAILURE",e[e.GROUP_CREATE_REQUEST_FAILURE=402]="GROUP_CREATE_REQUEST_FAILURE",e[e.GROUP_ADD_MEMBERS_REQUEST_FAILURE=403]="GROUP_ADD_MEMBERS_REQUEST_FAILURE",e[e.GROUP_ADD_MEMBER_NOT_ADMIN_FAILURE=404]="GROUP_ADD_MEMBER_NOT_ADMIN_FAILURE",e[e.GROUP_REMOVE_MEMBERS_REQUEST_FAILURE=405]="GROUP_REMOVE_MEMBERS_REQUEST_FAILURE",e[e.GROUP_REMOVE_SELF_REQUEST_FAILURE=406]="GROUP_REMOVE_SELF_REQUEST_FAILURE",e[e.GROUP_KEY_GENERATION_FAILURE=407]="GROUP_KEY_GENERATION_FAILURE",e[e.GROUP_MEMBER_KEY_ENCRYPTION_FAILURE=408]="GROUP_MEMBER_KEY_ENCRYPTION_FAILURE",e[e.GROUP_ADD_ADMINS_NOT_ADMIN_FAILURE=409]="GROUP_ADD_ADMINS_NOT_ADMIN_FAILURE",e[e.GROUP_ADD_ADMINS_REQUEST_FAILURE=410]="GROUP_ADD_ADMINS_REQUEST_FAILURE",e[e.GROUP_KEY_DECRYPTION_FAILURE=411]="GROUP_KEY_DECRYPTION_FAILURE",e[e.GROUP_REMOVE_ADMINS_REQUEST_FAILURE=412]="GROUP_REMOVE_ADMINS_REQUEST_FAILURE",e[e.GROUP_UPDATE_REQUEST_FAILURE=413]="GROUP_UPDATE_REQUEST_FAILURE",e[e.GROUP_DELETE_REQUEST_FAILURE=414]="GROUP_DELETE_REQUEST_FAILURE",e[e.GROUP_CREATE_WITH_MEMBERS_OR_ADMINS_FAILURE=415]="GROUP_CREATE_WITH_MEMBERS_OR_ADMINS_FAILURE",e[e.GROUP_PRIVATE_KEY_ROTATION_FAILURE=416]="GROUP_PRIVATE_KEY_ROTATION_FAILURE",e[e.GROUP_UPDATE_KEY_REQUEST_FAILURE=417]="GROUP_UPDATE_KEY_REQUEST_FAILURE",e[e.GROUP_ROTATE_PRIVATE_KEY_NOT_ADMIN_FAILURE=418]="GROUP_ROTATE_PRIVATE_KEY_NOT_ADMIN_FAILURE",e[e.REQUEST_RATE_LIMITED=500]="REQUEST_RATE_LIMITED",e[e.POLICY_APPLY_REQUEST_FAILURE=600]="POLICY_APPLY_REQUEST_FAILURE",e[e.SEARCH_CREATE_INDEX_FAILURE=700]="SEARCH_CREATE_INDEX_FAILURE",e[e.SEARCH_INIT_INDEX_FAILURE=701]="SEARCH_INIT_INDEX_FAILURE",e[e.SEARCH_TOKENIZE_DATA_FAILURE=702]="SEARCH_TOKENIZE_DATA_FAILURE",e[e.SEARCH_TOKENIZE_QUERY_FAILURE=703]="SEARCH_TOKENIZE_QUERY_FAILURE"}(u||(u={}));var f={FRAME_DOMAIN:"https://api.ironcorelabs.com",FRAME_PATH:"/ironweb-frame"};"string"==typeof _ICL_FRAME_DOMAIN_REPLACEMENT_&&_ICL_FRAME_DOMAIN_REPLACEMENT_.length&&(f.FRAME_DOMAIN=_ICL_FRAME_DOMAIN_REPLACEMENT_);var I,m={SDK_VERSION:"4.2.42"},U=(I=function(e,t){return I=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},I(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}I(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});const d=function(e){function t(r,n){var o=e.call(this,r.message)||this;return!function(e){return"number"==typeof e.code&&e.name!==A.NATIVE_DECRYPT_FAILURE_ERROR}(r)?(o.code=n,o.rawError=r):(o.code=r.code,o.rawError=r.rawError),Object.setPrototypeOf(o,t.prototype),o}return U(t,e),t}(Error);var p=r(702),T=function(){function e(e){var t=this;this.callbackCount=0,this.callbacks={},this.processMessageIntoShim=function(e){var r=e.data,n=r.data,o=r.replyID,E=t.callbacks[o];E&&(delete t.callbacks[o],E(n))};var r=new MessageChannel;r.port1.start(),r.port1.addEventListener("message",this.processMessageIntoShim),this.messagePort=r.port1,e.addEventListener("load",(function(){e.contentWindow.postMessage("MESSAGE_PORT_INIT",f.FRAME_DOMAIN,[r.port2])}))}return e.prototype.postMessageToFrame=function(e,t){var r=this;void 0===t&&(t=[]);var n={replyID:this.callbackCount++,data:e};try{return this.messagePort.postMessage(n,t.map((function(e){return e.buffer}))),new p.A((function(e,t){r.callbacks[n.replyID]=t}))}catch(e){return p.A.reject(new d(new Error("Failure occurred when passing message due to the lack of browser support."),u.BROWSER_FRAME_MESSAGE_FAILURE))}},e}(),g=window.document.createElement("iframe"),D=new T(g),S=new Promise((function(e,t){g.addEventListener("load",(function(){var r=setTimeout((function(){t(new d(new Error("Failed to load IronWeb frame."),u.FRAME_LOAD_FAILURE))}),1e3);D.postMessageToFrame({type:"FRAME_LOADED_CHECK"}).engage(t,(function(){clearTimeout(r),e()}))}))}));function l(e,t){return p.A.tryP((function(){return S})).flatMap((function(){return D.postMessageToFrame(e,t)})).flatMap((function(e){return function(e){return"ERROR_RESPONSE"===e.type}(e)?p.A.reject(new d(new Error(e.message.text),e.message.code)):p.A.of(e)}))}g.height="0",g.width="0",g.style.display="none",g.style.position="absolute",g.style.top="-999px",g.style.left="-999px",g.src="".concat(f.FRAME_DOMAIN).concat(f.FRAME_PATH,"?version=").concat(m.SDK_VERSION),window.document.body.appendChild(g);var h,O="1",L=!1;function y(){return"".concat(O,"-icldassk")}function N(){L=!0}function P(){if(!L)throw new Error('SDK "initialize()" method has not yet been called or completed execution. SDK methods cannot be used until initialization is complete.')}function C(e){if(e)try{localStorage.setItem(y(),e)}catch(e){}}function M(){try{return localStorage.getItem(y())||void 0}catch(e){return}}function F(e,t){void 0===t&&(t=!1);var r={};return e.filter((function(e){return!(r[e]||t&&!e.length)&&(r[e]=!0,!0)}))}function w(e){if("string"!=typeof e||!e.length)throw new Error("Invalid ID provided. Expected a non-zero length string but got ".concat(e));if(!R.test(e))throw new Error("Invalid ID provided. Provided value includes invalid characters: '".concat(e,"'."))}function v(e){if(!(e instanceof Uint8Array&&e.length))throw new Error("Invalid document data format provided. Expected a Uint8Array.")}function G(e){if(!(e instanceof Uint8Array))throw new Error("Invalid encrypted document content. Content should be a Uint8Array.");if(e.byteLength<A.IV_LENGTH+1)throw new Error("Invalid encrypted document content. Length of content does not meet minimum requirements.")}function b(e){var t=e&&Array.isArray(e.users)&&e.users.length,r=e&&Array.isArray(e.groups)&&e.groups.length;if(!t&&!r)throw new Error("You must provide a list of users or groups with which to change document access.")}function Y(e){if(!Array.isArray(e)||!e.length)throw new Error("You must provide a list of users to perform this operation.")}function Q(e){var t=[],r=[];return e.users&&e.users.length&&(t=F(e.users.map((function(e){return e.id})),!0)),e.groups&&e.groups.length&&(r=F(e.groups.map((function(e){return e.id})),!0)),[t,r]}function K(e){return p.A.tryP((function(){var t=e();if(t&&"function"==typeof t.then)return t;throw new d(new Error("JWT callback did not return a Promise."),u.JWT_FORMAT_FAILURE)})).flatMap((function(e){return"string"==typeof e&&e.length>0?p.A.of(e):p.A.reject(new d(new Error("JWT should be a non-zero length string, but instead got '".concat(e,"'")),u.JWT_RETRIEVAL_FAILURE))}))}var V=function(e,t,r){return void 0===r&&(r=!1),K(e).flatMap((function(e){return l({type:"CREATE_USER",message:{passcode:t,jwtToken:e,needsRotation:r}})})).map((function(e){var t=e.message;return{accountID:t.id,segmentID:t.segmentId,needsRotation:t.needsRotation,status:t.status,userMasterPublicKey:t.userMasterPublicKey}})).toPromise()},B=function(e,t){return K(e).flatMap((function(e){return l({type:"CREATE_DETATCHED_USER_DEVICE",message:{passcode:t,jwtToken:e}})})).map((function(e){return e.message})).toPromise()};function j(e,t){return h=e,K(e).flatMap((function(e){return l({type:"INIT_SDK",message:{jwtToken:e,symmetricKey:M()}})})).flatMap((function(e){return"INIT_PASSCODE_REQUIRED"===e.type?function(e,t){return p.A.tryP((function(){var r=e(t);if(r&&"function"==typeof r.then)return r;throw new d(new Error("Passcode callback did not return a Promise."),u.PASSCODE_FORMAT_FAILURE)})).flatMap((function(e){return"string"==typeof e&&e.length>0?p.A.of(e):p.A.reject(new d(new Error("User provided passcode should be a non-zero length string, but instead got '".concat(e,"'")),u.PASSCODE_RETRIEVAL_FAILURE))}))}(t,e.message.doesUserExist).flatMap((function(t){return function(e,t){return K(h).flatMap((function(r){return l({type:e?"GEN_DEVICE_KEYS":"CREATE_USER_AND_DEVICE",message:{passcode:t,jwtToken:r}})})).map((function(e){return C(e.message.symmetricKey),N(),{user:e.message.user,groupsNeedingRotation:e.message.groupsNeedingRotation}}))}(e.message.doesUserExist,t)})):(C(e.message.symmetricKey),N(),p.A.of({user:e.message.user,groupsNeedingRotation:e.message.groupsNeedingRotation}))})).toPromise()}var H=function(e,t){return K(e).flatMap((function(e){return l({type:"DELETE_DEVICE_BY_SIGNING_KEY_JWT",message:{jwtToken:e,publicSigningKey:t}}).map((function(e){return e.message}))})).toPromise()},x=r(52),W=r(526),k={fromBytes:function(e){return(0,x.D4)(e)},toBytes:function(e){return(0,x.lF)(e)}},z={fromBytes:function(e){return(0,W.iI)(e)},toBytes:function(e){return(0,W.bg)(e)}},X=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,E=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=E.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=E.return)&&r.call(E)}finally{if(o)throw o.error}}return a},J=2048e3;function Z(e){var t=window.crypto.getRandomValues(new Uint8Array(16)),r=Array.prototype.map.call(t,(function(e){return"00".concat(e.toString(16)).slice(-2)})).join("");return e?{documentID:e.documentID||r,documentName:e.documentName||"",accessList:{users:e.accessList&&e.accessList.users?e.accessList.users:[],groups:e.accessList&&e.accessList.groups?e.accessList.groups:[],grantToAuthor:!1!==e.grantToAuthor},policy:e.policy}:{documentID:r,documentName:"",accessList:{users:[],groups:[],grantToAuthor:!0}}}function q(){return P(),l({type:"DOCUMENT_LIST"}).map((function(e){return e.message})).toPromise()}function $(e){return P(),w(e),l({type:"DOCUMENT_META_GET",message:{documentID:e}}).map((function(e){return e.message})).toPromise()}function ee(e){if(P(),G(e),1===e[0])return Promise.resolve(null);if(2!==e[0])return Promise.reject(new d(new Error("Provided encrypted document doesn't appear to be valid. Invalid version."),u.DOCUMENT_HEADER_PARSE_FAILURE));var t=new DataView(e.buffer).getUint16(e.byteOffset+c,!1),r=e.slice(c+_,c+_+t);try{var n=JSON.parse(k.fromBytes(r));return Promise.resolve(n._did_)}catch(e){return Promise.reject(new d(new Error("Unable to parse document header. Header value is corrupted."),u.DOCUMENT_HEADER_PARSE_FAILURE))}}function te(e){return console.warn("decryptFromStore is deprecated. Use decrypt instead."),P(),w(e),l({type:"DOCUMENT_STORE_DECRYPT",message:{documentID:e}}).map((function(e){return e.message})).toPromise()}function re(e,t){P(),w(e),G(t);var r={type:"DOCUMENT_DECRYPT",message:{documentID:e,documentData:t.slice()}};return l(r,[r.message.documentData]).map((function(e){return e.message})).toPromise()}function ne(e,t){if(console.warn("encryptToStore is deprecated. Use encrypt instead and manage storage of the result yourself."),P(),v(e),e.length>J)return Promise.reject(new d(new Error("Document of length ".concat(e.length," exceeds maximum allowed byte size of ").concat(J)),u.DOCUMENT_MAX_SIZE_EXCEEDED));var r=Z(t);r.documentID&&w(r.documentID);var n=X(Q(r.accessList),2),o=n[0],E=n[1],a={type:"DOCUMENT_STORE_ENCRYPT",message:{documentID:r.documentID,documentData:e.slice(),documentName:r.documentName,userGrants:o,groupGrants:E,grantToAuthor:r.accessList.grantToAuthor,policy:r.policy}};return l(a,[a.message.documentData]).map((function(e){return e.message})).toPromise()}function oe(e,t){P(),v(e);var r=Z(t);r.documentID&&w(r.documentID);var n=X(Q(r.accessList),2),o=n[0],E=n[1],a={type:"DOCUMENT_ENCRYPT",message:{documentData:e.slice(),documentID:r.documentID,documentName:r.documentName,userGrants:o,groupGrants:E,grantToAuthor:r.accessList.grantToAuthor,policy:r.policy}};return l(a,[a.message.documentData]).map((function(e){return e.message})).toPromise()}function Ee(e,t){if(P(),w(e),v(t),t.length>J)return Promise.reject(new d(new Error("Document of length ".concat(t.length," exceeds maximum allowed byte size of ").concat(J)),u.DOCUMENT_MAX_SIZE_EXCEEDED));var r={type:"DOCUMENT_STORE_UPDATE_DATA",message:{documentID:e,documentData:t.slice()}};return l(r,[r.message.documentData]).map((function(e){return e.message})).toPromise()}function ae(e,t){P(),w(e),v(t);var r={type:"DOCUMENT_UPDATE_DATA",message:{documentID:e,documentData:t.slice()}};return l(r,[r.message.documentData]).map((function(e){return e.message})).toPromise()}function se(e,t){return P(),w(e),l({type:"DOCUMENT_UPDATE_NAME",message:{documentID:e,name:""===t?null:t}}).map((function(e){return e.message})).toPromise()}function ie(e,t){P(),w(e),b(t);var r=X(Q(t),2);return l({type:"DOCUMENT_GRANT",message:{documentID:e,userGrants:r[0],groupGrants:r[1]}}).map((function(e){return e.message})).toPromise()}function ue(e,t){P(),w(e),b(t);var r=X(Q(t),2);return l({type:"DOCUMENT_REVOKE",message:{documentID:e,userRevocations:r[0],groupRevocations:r[1]}}).map((function(e){return e.message})).toPromise()}var ce={decryptUnmanaged:function(e,t){return P(),function(e){if(!(e instanceof Uint8Array))throw new Error("Invalid encrypted deks. Edeks should be a Uint8Array.");if(e.byteLength<=0)throw new Error("Invalid encrypted deks. Length does not meet minimum requirements.")}(t),G(e),p.A.tryP((function(){return ee(e)})).flatMap((function(r){var n={type:"DOCUMENT_UNMANAGED_DECRYPT",message:{edeks:t,documentData:e.slice()}};return l(n,[n.message.documentData]).map((function(e){var t=e.message;return{data:t.data,documentID:r,accessVia:t.accessVia}}))})).toPromise()},encryptUnmanaged:function(e,t){P(),v(e);var r=Z(t);r.documentID&&w(r.documentID);var n=X(Q(r.accessList),2),o=n[0],E=n[1],a={type:"DOCUMENT_UNMANAGED_ENCRYPT",message:{documentData:e.slice(),documentID:r.documentID,userGrants:o,groupGrants:E,grantToAuthor:r.accessList.grantToAuthor,policy:r.policy}};return l(a,[a.message.documentData]).map((function(e){return e.message})).toPromise()}};function _e(){return P(),l({type:"GROUP_LIST"}).map((function(e){return e.message})).toPromise()}function Re(e){return P(),w(e),l({type:"GROUP_GET",message:{groupID:e}}).map((function(e){return e.message})).toPromise()}function Ae(e){return void 0===e&&(e={groupName:"",addAsMember:!0,addAsAdmin:!0,needsRotation:!1}),P(),function(e,t){if(!t&&!1===e)throw new Error("Failed to create group because group ownership must be held by a group administrator")}(e.addAsAdmin,e.ownerUserId),e.groupID&&w(e.groupID),l({type:"GROUP_CREATE",message:{groupID:e.groupID||"",groupName:e.groupName||"",ownerUserId:e.ownerUserId,addAsMember:!1!==e.addAsMember,addAsAdmin:!1!==e.addAsAdmin,needsRotation:!0===e.needsRotation,userLists:{memberList:e.memberList?F(e.memberList,!0):[],adminList:e.adminList?F(e.adminList,!0):[]}}}).map((function(e){return e.message})).toPromise()}function fe(e){return P(),w(e),l({type:"ROTATE_GROUP_PRIVATE_KEY",message:{groupID:e}}).map((function(e){return e.message})).toPromise()}function Ie(e,t){if(P(),w(e),null===t.groupName||"string"==typeof t.groupName&&t.groupName.length)return l({type:"GROUP_UPDATE",message:{groupID:e,groupName:t.groupName}}).map((function(e){return e.message})).toPromise();throw new Error("Group update must provide a new name which is either a non-zero length string or null.")}function me(e,t){return P(),w(e),Y(t),l({type:"GROUP_ADD_ADMINS",message:{groupID:e,userList:F(t,!0)}}).map((function(e){return e.message})).toPromise()}function Ue(e,t){return P(),w(e),Y(t),l({type:"GROUP_REMOVE_ADMINS",message:{groupID:e,userList:F(t,!0)}}).map((function(e){return e.message})).toPromise()}function de(e,t){return P(),w(e),Y(t),l({type:"GROUP_ADD_MEMBERS",message:{groupID:e,userList:F(t,!0)}}).map((function(e){return e.message})).toPromise()}function pe(e,t){return P(),w(e),Y(t),l({type:"GROUP_REMOVE_MEMBERS",message:{groupID:e,userList:F(t,!0)}}).map((function(e){return e.message})).toPromise()}function Te(e){return P(),w(e),l({type:"GROUP_REMOVE_SELF_AS_MEMBER",message:{groupID:e}}).map((function(){})).toPromise()}function ge(e){return P(),w(e),l({type:"GROUP_DELETE",message:{groupID:e}}).map((function(e){return e.message})).toPromise()}var De=function(){return De=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},De.apply(this,arguments)},Se=function(){function e(e){this.searchIndexId=e}return e.prototype.tokenizeData=function(e,t){return l({type:"BLIND_SEARCH_INDEX_TOKENIZE_DATA",message:{data:e,partitionId:t,searchIndexId:this.searchIndexId}}).map((function(e){return e.message})).toPromise()},e.prototype.tokenizeQuery=function(e,t){return l({type:"BLIND_SEARCH_INDEX_TOKENIZE_QUERY",message:{query:e,partitionId:t,searchIndexId:this.searchIndexId}}).map((function(e){return e.message})).toPromise()},e}(),le=function(e){return P(),w(e),l({type:"BLIND_SEARCH_INDEX_CREATE",message:{groupId:e}}).map((function(e){return e.message})).toPromise()},he=function(e){return P(),v(e.searchIndexEncryptedSalt),v(e.searchIndexEdeks),l({type:"BLIND_SEARCH_INDEX_INIT",message:De({},e)}).map((function(e){var t=e.message;return new Se(t.searchIndexId)})).toPromise()},Oe=function(e){return l({type:"SEARCH_TRANSLITERATE_STRING",message:e}).map((function(e){return e.message})).toPromise()};function Le(e,t){return P(),l({type:"CHANGE_USER_PASSCODE",message:{currentPasscode:e,newPasscode:t}}).map((function(){})).toPromise()}function ye(e){return P(),l({type:"ROTATE_USER_PRIVATE_KEY",message:{passcode:e}}).map((function(){})).toPromise()}var Ne=function(){return Pe().then((function(e){return{transformKeyDeleted:e>0}}))},Pe=function(e){P();var t=void 0===e,r={type:"DELETE_DEVICE",message:e};return t&&function(){try{localStorage.removeItem(y())}catch(e){}}(),l(r).map((function(e){var r=e.message;return t&&(L=!1),r})).toPromise()},Ce=function(e){return P(),l({type:"DELETE_DEVICE_BY_SIGNING_KEY",message:e}).map((function(e){return e.message})).toPromise()},Me=function(){P();return l({type:"LIST_DEVICES",message:null}).map((function(e){return e.message})).toPromise()},Fe=E,we=i,ve=a,Ge=s,be=o;function Ye(){var e=window.crypto;return"object"==typeof e&&"function"==typeof e.getRandomValues}function Qe(){return"object"==typeof WebAssembly&&WebAssembly&&"function"==typeof WebAssembly.instantiate}var Ke=function(){return Promise.reject(new d(new Error("Request failed due to a lack of browser support for WebAssembly."),u.WEBASSEMBLY_SUPPORT_FAILURE))},Ve=function(){return Promise.reject(new d(new Error("Request failed due to a lack of browser support for random number generation."),u.RANDOM_NUMBER_GENERATION_FAILURE))};function Be(e,t,r){if(void 0===r&&(r={needsRotation:!1}),!e||"function"!=typeof e)throw new Error("You must provide a function which will generate a JWT as the first parameter to 'IronWeb.createNewUser'.");return Ye()?Qe()?V(e,t,r.needsRotation||!1):Ke():Ve()}function je(e,t){if(!e||"function"!=typeof e)throw new Error("You must provide a function which will generate a JWT as the first parameter to 'IronWeb.createNewUser'.");return Ye()?Qe()?B(e,t):Ke():Ve()}function He(e,t){if(!e||"function"!=typeof e)throw new Error("You must provide a function which will generate a JWT as the first parameter to 'IronWeb.initialize'.");if(!t||"function"!=typeof t)throw new Error("You must provide a function which will generate the users escrow passcode as the second parameter to 'IronWeb.initialize'.");return Ye()?Qe()?j(e,t):Ke():Ve()}function xe(){try{return P(),!0}catch(e){return!1}}return n})()));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ironweb=t():e.ironweb=t()}(self,(()=>(()=>{"use strict";var e={52(e,t){var r="utf8: invalid string",n="utf8: invalid source encoding";function o(e){for(var t=0,n=0;n<e.length;n++){var o=e.charCodeAt(n);if(o<128)t+=1;else if(o<2048)t+=2;else if(o<55296)t+=3;else{if(!(o<=57343))throw new Error(r);if(n>=e.length-1)throw new Error(r);n++,t+=4}}return t}t.lF=function(e){for(var t=new Uint8Array(o(e)),r=0,n=0;n<e.length;n++){var a=e.charCodeAt(n);a<128?t[r++]=a:a<2048?(t[r++]=192|a>>6,t[r++]=128|63&a):a<55296?(t[r++]=224|a>>12,t[r++]=128|a>>6&63,t[r++]=128|63&a):(n++,a=(1023&a)<<10,a|=1023&e.charCodeAt(n),a+=65536,t[r++]=240|a>>18,t[r++]=128|a>>12&63,t[r++]=128|a>>6&63,t[r++]=128|63&a)}return t},t.D4=function(e){for(var t=[],r=0;r<e.length;r++){var o=e[r];if(128&o){var a=void 0;if(o<224){if(r>=e.length)throw new Error(n);if(128!=(192&(E=e[++r])))throw new Error(n);o=(31&o)<<6|63&E,a=128}else if(o<240){if(r>=e.length-1)throw new Error(n);var E=e[++r],i=e[++r];if(128!=(192&E)||128!=(192&i))throw new Error(n);o=(15&o)<<12|(63&E)<<6|63&i,a=2048}else{if(!(o<248))throw new Error(n);if(r>=e.length-2)throw new Error(n);E=e[++r],i=e[++r];var u=e[++r];if(128!=(192&E)||128!=(192&i)||128!=(192&u))throw new Error(n);o=(15&o)<<18|(63&E)<<12|(63&i)<<6|63&u,a=65536}if(o<a||o>=55296&&o<=57343)throw new Error(n);if(o>=65536){if(o>1114111)throw new Error(n);o-=65536,t.push(String.fromCharCode(55296|o>>10)),o=56320|1023&o}}t.push(String.fromCharCode(o))}return t.join("")}},526(e,t){t.bg=function(e){var t,r,a=i(e),E=a[0],u=a[1],s=new o(function(e,t,r){return 3*(t+r)/4-r}(0,E,u)),c=0,_=u>0?E-4:E;for(r=0;r<_;r+=4)t=n[e.charCodeAt(r)]<<18|n[e.charCodeAt(r+1)]<<12|n[e.charCodeAt(r+2)]<<6|n[e.charCodeAt(r+3)],s[c++]=t>>16&255,s[c++]=t>>8&255,s[c++]=255&t;2===u&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,s[c++]=255&t);1===u&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,s[c++]=t>>8&255,s[c++]=255&t);return s},t.iI=function(e){for(var t,n=e.length,o=n%3,a=[],E=16383,i=0,s=n-o;i<s;i+=E)a.push(u(e,i,i+E>s?s:i+E));1===o?(t=e[n-1],a.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],a.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return a.join("")};for(var r=[],n=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",E=0;E<64;++E)r[E]=a[E],n[a.charCodeAt(E)]=E;function i(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function u(e,t,n){for(var o,a,E=[],i=t;i<n;i+=3)o=(e[i]<<16&16711680)+(e[i+1]<<8&65280)+(255&e[i+2]),E.push(r[(a=o)>>18&63]+r[a>>12&63]+r[a>>6&63]+r[63&a]);return E.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},702(e,t){var r=function(){function e(e){this.action=e}return e.prototype.engage=function(e,t){this.action(e,t)},e.prototype.engageAndCatch=function(e,t){try{this.engage(e,t)}catch(t){e(t)}},e.prototype.then=function(e,t){return this.toPromise().then(e,t)},e.prototype.toPromise=function(){var e=this;return new Promise((function(t,r){return e.engage(r,t)}))},e.prototype.map=function(t){return this.flatMap((function(r){return e.of(t(r))}))},e.prototype.flatMap=function(t){var r=this;return new e((function(e,n){r.engageAndCatch(e,(function(r){return t(r).engageAndCatch(e,n)}))}))},e.prototype.handleWith=function(t){var r=this;return new e((function(e,n){r.engage((function(r){t(r).engage(e,n)}),n)}))},e.prototype.errorMap=function(t){var r=this;return new e((function(e,n){r.engageAndCatch((function(r){return e(t(r))}),n)}))},e.tryF=function(t){return new e((function(e,r){var n;try{n=t()}catch(t){return e(t)}r(n)}))},e.tryP=function(t){return new e((function(e,r){var n;try{n=t()}catch(t){return e(t)}n.then(r).catch(e)}))},e.of=function(t){return new e((function(e,r){r(t)}))},e.reject=function(t){return new e((function(e){e(t)}))},e.encase=function(t,r){return new e((function(e,n){var o;try{o=t(r)}catch(t){return e(t)}n(o)}))},e.gather2=function(t,r){return new e((function(e,n){var o=[],a=0,E=!1;t.engageAndCatch((function(t){E||(E=!0,e(t))}),(function(e){o[0]=e,2===++a&&n(o)})),r.engageAndCatch((function(t){E||(E=!0,e(t))}),(function(e){o[1]=e,2===++a&&n(o)}))}))},e.gather3=function(e,t,r){var n=this.gather2(e,t);return this.gather2(n,r).map((function(e){var t=e[0];return[t[0],t[1],e[1]]}))},e.gather4=function(e,t,r,n){var o=this.gather2(e,t),a=this.gather2(r,n);return this.gather2(o,a).map((function(e){var t=e[0],r=t[0],n=t[1],o=e[1];return[r,n,o[0],o[1]]}))},e.all=function(e){return Array.isArray(e)?this.allArray(e):this.allObject(e)},e.allArray=function(t){return new e((function(e,r){var n=[],o=0;0===t.length&&r(n),t.forEach((function(a,E){a.engageAndCatch((function(t){e(t)}),(function(e){n[E]=e,(o+=1)===t.length&&r(n)}))}))}))},e.allObject=function(e){var t=Object.keys(e),r=t.map((function(t){return e[t]}));return this.allArray(r).map((function(e){return t.reduce((function(t,r,n){return t[r]=e[n],t}),{})}))},e}();t.A=r}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,r),a.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};r.r(n),r.d(n,{ErrorCodes:()=>s,SDKError:()=>I,codec:()=>He,createNewDeviceKeys:()=>qe,createNewUser:()=>Ze,deleteDeviceByPublicSigningKey:()=>X,document:()=>xe,group:()=>je,initialize:()=>$e,isInitialized:()=>et,search:()=>ke,user:()=>Be});var o={};r.r(o),r.d(o,{base64:()=>Z,utf8:()=>J});var a={};r.r(a),r.d(a,{advanced:()=>Ue,decrypt:()=>ue,decryptFromStore:()=>ie,decryptStream:()=>Ie,encrypt:()=>ce,encryptStream:()=>pe,encryptToStore:()=>se,getDocumentIDFromBytes:()=>Ee,getMetadata:()=>ae,grantAccess:()=>fe,list:()=>oe,revokeAccess:()=>me,updateEncryptedData:()=>Re,updateEncryptedDataInStore:()=>_e,updateName:()=>Ae});var E={};r.r(E),r.d(E,{addAdmins:()=>he,addMembers:()=>Oe,create:()=>ge,deleteGroup:()=>Pe,get:()=>le,list:()=>Te,removeAdmins:()=>ye,removeMembers:()=>Ne,removeSelfAsMember:()=>Le,rotatePrivateKey:()=>De,update:()=>Se});var i={};r.r(i),r.d(i,{createBlindSearchIndex:()=>ve,initializeBlindSearchIndex:()=>we,transliterateString:()=>Fe});var u={};r.r(u),r.d(u,{changePasscode:()=>be,deauthorizeDevice:()=>Ye,deleteDevice:()=>Ve,deleteDeviceByPublicSigningKey:()=>Qe,listDevices:()=>Ke,rotateMasterKey:()=>Ge});var s,c=1,_=2,R=/^[a-zA-Z0-9_.$#|@/:;=+'-]{1,100}$/,A={VERSION_HEADER_LENGTH:1,IV_LENGTH:12,SALT_LENGTH:32,AES_SYMMETRIC_KEY_LENGTH:32,PBKDF2_ITERATIONS:25e4,NATIVE_DECRYPT_FAILURE_ERROR:"OperationError"};!function(e){e[e.JWT_FORMAT_FAILURE=100]="JWT_FORMAT_FAILURE",e[e.JWT_RETRIEVAL_FAILURE=101]="JWT_RETRIEVAL_FAILURE",e[e.VERIFY_API_REQUEST_FAILURE=102]="VERIFY_API_REQUEST_FAILURE",e[e.BROWSER_FRAME_MESSAGE_FAILURE=103]="BROWSER_FRAME_MESSAGE_FAILURE",e[e.RANDOM_NUMBER_GENERATION_FAILURE=104]="RANDOM_NUMBER_GENERATION_FAILURE",e[e.PASSCODE_FORMAT_FAILURE=105]="PASSCODE_FORMAT_FAILURE",e[e.PASSCODE_RETRIEVAL_FAILURE=106]="PASSCODE_RETRIEVAL_FAILURE",e[e.SIGNATURE_GENERATION_FAILURE=107]="SIGNATURE_GENERATION_FAILURE",e[e.USER_NOT_SYNCED_FAILURE=108]="USER_NOT_SYNCED_FAILURE",e[e.WEBASSEMBLY_SUPPORT_FAILURE=109]="WEBASSEMBLY_SUPPORT_FAILURE",e[e.FRAME_LOAD_FAILURE=110]="FRAME_LOAD_FAILURE",e[e.USER_VERIFY_API_REQUEST_FAILURE=200]="USER_VERIFY_API_REQUEST_FAILURE",e[e.USER_CREATE_REQUEST_FAILURE=201]="USER_CREATE_REQUEST_FAILURE",e[e.USER_UPDATE_REQUEST_FAILURE=202]="USER_UPDATE_REQUEST_FAILURE",e[e.USER_PASSCODE_INCORRECT=203]="USER_PASSCODE_INCORRECT",e[e.USER_KEY_LIST_REQUEST_FAILURE=204]="USER_KEY_LIST_REQUEST_FAILURE",e[e.USER_DEVICE_ADD_REQUEST_FAILURE=205]="USER_DEVICE_ADD_REQUEST_FAILURE",e[e.USER_MASTER_KEY_GENERATION_FAILURE=206]="USER_MASTER_KEY_GENERATION_FAILURE",e[e.USER_DEVICE_KEY_GENERATION_FAILURE=207]="USER_DEVICE_KEY_GENERATION_FAILURE",e[e.USER_DEVICE_KEY_DECRYPTION_FAILURE=208]="USER_DEVICE_KEY_DECRYPTION_FAILURE",e[e.USER_PASSCODE_CHANGE_FAILURE=209]="USER_PASSCODE_CHANGE_FAILURE",e[e.USER_DEVICE_DELETE_REQUEST_FAILURE=210]="USER_DEVICE_DELETE_REQUEST_FAILURE",e[e.USER_UPDATE_KEY_REQUEST_FAILURE=211]="USER_UPDATE_KEY_REQUEST_FAILURE",e[e.USER_PRIVATE_KEY_ROTATION_FAILURE=212]="USER_PRIVATE_KEY_ROTATION_FAILURE",e[e.USER_DEVICE_LIST_REQUEST_FAILURE=213]="USER_DEVICE_LIST_REQUEST_FAILURE",e[e.DOCUMENT_LIST_REQUEST_FAILURE=300]="DOCUMENT_LIST_REQUEST_FAILURE",e[e.DOCUMENT_GET_REQUEST_FAILURE=301]="DOCUMENT_GET_REQUEST_FAILURE",e[e.DOCUMENT_CREATE_REQUEST_FAILURE=302]="DOCUMENT_CREATE_REQUEST_FAILURE",e[e.DOCUMENT_UPDATE_REQUEST_FAILURE=303]="DOCUMENT_UPDATE_REQUEST_FAILURE",e[e.DOCUMENT_GRANT_ACCESS_REQUEST_FAILURE=304]="DOCUMENT_GRANT_ACCESS_REQUEST_FAILURE",e[e.DOCUMENT_REVOKE_ACCESS_REQUEST_FAILURE=305]="DOCUMENT_REVOKE_ACCESS_REQUEST_FAILURE",e[e.DOCUMENT_DECRYPT_FAILURE=306]="DOCUMENT_DECRYPT_FAILURE",e[e.DOCUMENT_ENCRYPT_FAILURE=307]="DOCUMENT_ENCRYPT_FAILURE",e[e.DOCUMENT_REENCRYPT_FAILURE=308]="DOCUMENT_REENCRYPT_FAILURE",e[e.DOCUMENT_GRANT_ACCESS_FAILURE=309]="DOCUMENT_GRANT_ACCESS_FAILURE",e[e.DOCUMENT_MAX_SIZE_EXCEEDED=310]="DOCUMENT_MAX_SIZE_EXCEEDED",e[e.DOCUMENT_CREATE_WITH_ACCESS_FAILURE=311]="DOCUMENT_CREATE_WITH_ACCESS_FAILURE",e[e.DOCUMENT_HEADER_PARSE_FAILURE=312]="DOCUMENT_HEADER_PARSE_FAILURE",e[e.DOCUMENT_TRANSFORM_REQUEST_FAILURE=313]="DOCUMENT_TRANSFORM_REQUEST_FAILURE",e[e.DOCUMENT_STREAM_DECRYPT_FAILURE=314]="DOCUMENT_STREAM_DECRYPT_FAILURE",e[e.DOCUMENT_STREAM_ENCRYPT_FAILURE=315]="DOCUMENT_STREAM_ENCRYPT_FAILURE",e[e.GROUP_LIST_REQUEST_FAILURE=400]="GROUP_LIST_REQUEST_FAILURE",e[e.GROUP_GET_REQUEST_FAILURE=401]="GROUP_GET_REQUEST_FAILURE",e[e.GROUP_CREATE_REQUEST_FAILURE=402]="GROUP_CREATE_REQUEST_FAILURE",e[e.GROUP_ADD_MEMBERS_REQUEST_FAILURE=403]="GROUP_ADD_MEMBERS_REQUEST_FAILURE",e[e.GROUP_ADD_MEMBER_NOT_ADMIN_FAILURE=404]="GROUP_ADD_MEMBER_NOT_ADMIN_FAILURE",e[e.GROUP_REMOVE_MEMBERS_REQUEST_FAILURE=405]="GROUP_REMOVE_MEMBERS_REQUEST_FAILURE",e[e.GROUP_REMOVE_SELF_REQUEST_FAILURE=406]="GROUP_REMOVE_SELF_REQUEST_FAILURE",e[e.GROUP_KEY_GENERATION_FAILURE=407]="GROUP_KEY_GENERATION_FAILURE",e[e.GROUP_MEMBER_KEY_ENCRYPTION_FAILURE=408]="GROUP_MEMBER_KEY_ENCRYPTION_FAILURE",e[e.GROUP_ADD_ADMINS_NOT_ADMIN_FAILURE=409]="GROUP_ADD_ADMINS_NOT_ADMIN_FAILURE",e[e.GROUP_ADD_ADMINS_REQUEST_FAILURE=410]="GROUP_ADD_ADMINS_REQUEST_FAILURE",e[e.GROUP_KEY_DECRYPTION_FAILURE=411]="GROUP_KEY_DECRYPTION_FAILURE",e[e.GROUP_REMOVE_ADMINS_REQUEST_FAILURE=412]="GROUP_REMOVE_ADMINS_REQUEST_FAILURE",e[e.GROUP_UPDATE_REQUEST_FAILURE=413]="GROUP_UPDATE_REQUEST_FAILURE",e[e.GROUP_DELETE_REQUEST_FAILURE=414]="GROUP_DELETE_REQUEST_FAILURE",e[e.GROUP_CREATE_WITH_MEMBERS_OR_ADMINS_FAILURE=415]="GROUP_CREATE_WITH_MEMBERS_OR_ADMINS_FAILURE",e[e.GROUP_PRIVATE_KEY_ROTATION_FAILURE=416]="GROUP_PRIVATE_KEY_ROTATION_FAILURE",e[e.GROUP_UPDATE_KEY_REQUEST_FAILURE=417]="GROUP_UPDATE_KEY_REQUEST_FAILURE",e[e.GROUP_ROTATE_PRIVATE_KEY_NOT_ADMIN_FAILURE=418]="GROUP_ROTATE_PRIVATE_KEY_NOT_ADMIN_FAILURE",e[e.REQUEST_RATE_LIMITED=500]="REQUEST_RATE_LIMITED",e[e.POLICY_APPLY_REQUEST_FAILURE=600]="POLICY_APPLY_REQUEST_FAILURE",e[e.SEARCH_CREATE_INDEX_FAILURE=700]="SEARCH_CREATE_INDEX_FAILURE",e[e.SEARCH_INIT_INDEX_FAILURE=701]="SEARCH_INIT_INDEX_FAILURE",e[e.SEARCH_TOKENIZE_DATA_FAILURE=702]="SEARCH_TOKENIZE_DATA_FAILURE",e[e.SEARCH_TOKENIZE_QUERY_FAILURE=703]="SEARCH_TOKENIZE_QUERY_FAILURE"}(s||(s={}));var f={FRAME_DOMAIN:"https://api.ironcorelabs.com",FRAME_PATH:"/ironweb-frame"};"string"==typeof _ICL_FRAME_DOMAIN_REPLACEMENT_&&_ICL_FRAME_DOMAIN_REPLACEMENT_.length&&(f.FRAME_DOMAIN=_ICL_FRAME_DOMAIN_REPLACEMENT_);var m,d={SDK_VERSION:"4.3.1"},p=(m=function(e,t){return m=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},m(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}m(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});const I=function(e){function t(r,n){var o=e.call(this,r.message)||this;return!function(e){return"number"==typeof e.code&&e.name!==A.NATIVE_DECRYPT_FAILURE_ERROR}(r)?(o.code=n,o.rawError=r):(o.code=r.code,o.rawError=r.rawError),Object.setPrototypeOf(o,t.prototype),o}return p(t,e),t}(Error);var U=r(702),T=r(52),l=r(526);function g(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=e.reduce((function(e,t){return e+t.length}),0),n=0;return e.reduce((function(e,t){return e.set(t,n),n+=t.length,e}),new Uint8Array(r))}function D(e){return U.A.tryF((function(){var t,r=e[0],n=null;if(1===r)t=c;else{if(2!==r)throw new Error("Provided encrypted document doesn't appear to be valid. Invalid version.");var o=new DataView(e.buffer,e.byteOffset).getUint16(c,!1);t=c+_+o;var a=e.slice(c+_,t);n=JSON.parse(T.D4(a))._did_}var E=t+A.IV_LENGTH;return{documentID:n,iv:e.slice(t,E),contentOffset:E}})).errorMap((function(e){return new I(e,s.DOCUMENT_HEADER_PARSE_FAILURE)}))}var S=function(){function e(e){var t=this;this.callbackCount=0,this.callbacks={},this.processMessageIntoShim=function(e){var r=e.data,n=r.data,o=r.replyID,a=t.callbacks[o];a&&(delete t.callbacks[o],a(n))};var r=new MessageChannel;r.port1.start(),r.port1.addEventListener("message",this.processMessageIntoShim),this.messagePort=r.port1,e.addEventListener("load",(function(){e.contentWindow.postMessage("MESSAGE_PORT_INIT",f.FRAME_DOMAIN,[r.port2])}))}return e.prototype.postMessageToFrame=function(e,t){var r=this;void 0===t&&(t=[]);var n={replyID:this.callbackCount++,data:e};try{return this.messagePort.postMessage(n,t.map((function(e){return e instanceof Uint8Array?e.buffer:e}))),new U.A((function(e,t){r.callbacks[n.replyID]=t}))}catch(e){var o=t.some((function(e){return e instanceof ReadableStream||e instanceof WritableStream}))?"Streaming encrypt/decrypt requires transferable streams, which is not supported by this browser. It is known to be supported by Chrome, Firefox, and Edge.":"Failure occurred when passing message due to the lack of browser support.";return U.A.reject(new I(new Error(o),s.BROWSER_FRAME_MESSAGE_FAILURE))}},e}(),h=window.document.createElement("iframe"),y=new S(h),O=new Promise((function(e,t){h.addEventListener("load",(function(){var r=setTimeout((function(){t(new I(new Error("Failed to load IronWeb frame."),s.FRAME_LOAD_FAILURE))}),1e3);y.postMessageToFrame({type:"FRAME_LOADED_CHECK"}).engage(t,(function(){clearTimeout(r),e()}))}))}));function N(e,t){return U.A.tryP((function(){return O})).flatMap((function(){return y.postMessageToFrame(e,t)})).flatMap((function(e){return function(e){return"ERROR_RESPONSE"===e.type}(e)?U.A.reject(new I(new Error(e.message.text),e.message.code)):U.A.of(e)}))}h.height="0",h.width="0",h.style.display="none",h.style.position="absolute",h.style.top="-999px",h.style.left="-999px",h.src="".concat(f.FRAME_DOMAIN).concat(f.FRAME_PATH,"?version=").concat(d.SDK_VERSION),window.document.body.appendChild(h);var L,P="1",C=!1;function M(){return"".concat(P,"-icldassk")}function v(){C=!0}function w(){if(!C)throw new Error('SDK "initialize()" method has not yet been called or completed execution. SDK methods cannot be used until initialization is complete.')}function F(e){if(e)try{localStorage.setItem(M(),e)}catch(e){}}function b(){try{return localStorage.getItem(M())||void 0}catch(e){return}}function G(e,t){void 0===t&&(t=!1);var r={};return e.filter((function(e){return!(r[e]||t&&!e.length)&&(r[e]=!0,!0)}))}function Y(e){if("string"!=typeof e||!e.length)throw new Error("Invalid ID provided. Expected a non-zero length string but got ".concat(e));if(!R.test(e))throw new Error("Invalid ID provided. Provided value includes invalid characters: '".concat(e,"'."))}function V(e){if(!(e instanceof Uint8Array&&e.length))throw new Error("Invalid document data format provided. Expected a Uint8Array.")}function Q(e){if(!(e instanceof Uint8Array))throw new Error("Invalid encrypted document content. Content should be a Uint8Array.");if(e.byteLength<A.IV_LENGTH+1)throw new Error("Invalid encrypted document content. Length of content does not meet minimum requirements.")}function K(e){if(!(e instanceof Uint8Array))throw new Error("Invalid encrypted deks. Edeks should be a Uint8Array.");if(e.byteLength<=0)throw new Error("Invalid encrypted deks. Length does not meet minimum requirements.")}function x(e){var t=e&&Array.isArray(e.users)&&e.users.length,r=e&&Array.isArray(e.groups)&&e.groups.length;if(!t&&!r)throw new Error("You must provide a list of users or groups with which to change document access.")}function B(e){if(!Array.isArray(e)||!e.length)throw new Error("You must provide a list of users to perform this operation.")}function j(e){var t=[],r=[];return e.users&&e.users.length&&(t=G(e.users.map((function(e){return e.id})),!0)),e.groups&&e.groups.length&&(r=G(e.groups.map((function(e){return e.id})),!0)),[t,r]}function k(e){return U.A.tryP((function(){var t=e();if(t&&"function"==typeof t.then)return t;throw new I(new Error("JWT callback did not return a Promise."),s.JWT_FORMAT_FAILURE)})).flatMap((function(e){return"string"==typeof e&&e.length>0?U.A.of(e):U.A.reject(new I(new Error("JWT should be a non-zero length string, but instead got '".concat(e,"'")),s.JWT_RETRIEVAL_FAILURE))}))}var H=function(e,t,r){return void 0===r&&(r=!1),k(e).flatMap((function(e){return N({type:"CREATE_USER",message:{passcode:t,jwtToken:e,needsRotation:r}})})).map((function(e){var t=e.message;return{accountID:t.id,segmentID:t.segmentId,needsRotation:t.needsRotation,status:t.status,userMasterPublicKey:t.userMasterPublicKey}})).toPromise()},W=function(e,t){return k(e).flatMap((function(e){return N({type:"CREATE_DETATCHED_USER_DEVICE",message:{passcode:t,jwtToken:e}})})).map((function(e){return e.message})).toPromise()};function z(e,t){return L=e,k(e).flatMap((function(e){return N({type:"INIT_SDK",message:{jwtToken:e,symmetricKey:b()}})})).flatMap((function(e){return"INIT_PASSCODE_REQUIRED"===e.type?function(e,t){return U.A.tryP((function(){var r=e(t);if(r&&"function"==typeof r.then)return r;throw new I(new Error("Passcode callback did not return a Promise."),s.PASSCODE_FORMAT_FAILURE)})).flatMap((function(e){return"string"==typeof e&&e.length>0?U.A.of(e):U.A.reject(new I(new Error("User provided passcode should be a non-zero length string, but instead got '".concat(e,"'")),s.PASSCODE_RETRIEVAL_FAILURE))}))}(t,e.message.doesUserExist).flatMap((function(t){return function(e,t){return k(L).flatMap((function(r){return N({type:e?"GEN_DEVICE_KEYS":"CREATE_USER_AND_DEVICE",message:{passcode:t,jwtToken:r}})})).map((function(e){return F(e.message.symmetricKey),v(),{user:e.message.user,groupsNeedingRotation:e.message.groupsNeedingRotation}}))}(e.message.doesUserExist,t)})):(F(e.message.symmetricKey),v(),U.A.of({user:e.message.user,groupsNeedingRotation:e.message.groupsNeedingRotation}))})).toPromise()}var X=function(e,t){return k(e).flatMap((function(e){return N({type:"DELETE_DEVICE_BY_SIGNING_KEY_JWT",message:{jwtToken:e,publicSigningKey:t}}).map((function(e){return e.message}))})).toPromise()},J={fromBytes:function(e){return(0,T.D4)(e)},toBytes:function(e){return(0,T.lF)(e)}},Z={fromBytes:function(e){return(0,l.iI)(e)},toBytes:function(e){return(0,l.bg)(e)}},q=function(e,t,r,n){return new(r||(r=Promise))((function(o,a){function E(e){try{u(n.next(e))}catch(e){a(e)}}function i(e){try{u(n.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(E,i)}u((n=n.apply(e,t||[])).next())}))},$=function(e,t){var r,n,o,a,E={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;E;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return E.label++,{value:a[1],done:!1};case 5:E.label++,n=a[1],a=[0];continue;case 7:a=E.ops.pop(),E.trys.pop();continue;default:if(!(o=E.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){E=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){E.label=a[1];break}if(6===a[0]&&E.label<o[1]){E.label=o[1],o=a;break}if(o&&E.label<o[2]){E.label=o[2],E.ops.push(a);break}o[2]&&E.ops.pop(),E.trys.pop();continue}a=t.call(e,E)}catch(e){a=[6,e],n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,i])}}},ee=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),E=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)E.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return E},te=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,a=t.length;o<a;o++)!n&&o in t||(n||(n=Array.prototype.slice.call(t,0,o)),n[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))},re=2048e3;function ne(e){var t=window.crypto.getRandomValues(new Uint8Array(16)),r=Array.prototype.map.call(t,(function(e){return"00".concat(e.toString(16)).slice(-2)})).join("");return e?{documentID:e.documentID||r,documentName:e.documentName||"",accessList:{users:e.accessList&&e.accessList.users?e.accessList.users:[],groups:e.accessList&&e.accessList.groups?e.accessList.groups:[],grantToAuthor:!1!==e.grantToAuthor},policy:e.policy}:{documentID:r,documentName:"",accessList:{users:[],groups:[],grantToAuthor:!0}}}function oe(){return w(),N({type:"DOCUMENT_LIST"}).map((function(e){return e.message})).toPromise()}function ae(e){return w(),Y(e),N({type:"DOCUMENT_META_GET",message:{documentID:e}}).map((function(e){return e.message})).toPromise()}function Ee(e){return w(),Q(e),D(e).map((function(e){return e.documentID})).toPromise()}function ie(e){return console.warn("decryptFromStore is deprecated. Use decrypt instead."),w(),Y(e),N({type:"DOCUMENT_STORE_DECRYPT",message:{documentID:e}}).map((function(e){return e.message})).toPromise()}function ue(e,t){w(),Y(e),Q(t);var r={type:"DOCUMENT_DECRYPT",message:{documentID:e,documentData:t.slice()}};return N(r,[r.message.documentData]).map((function(e){return e.message})).toPromise()}function se(e,t){if(console.warn("encryptToStore is deprecated. Use encrypt instead and manage storage of the result yourself."),w(),V(e),e.length>re)return Promise.reject(new I(new Error("Document of length ".concat(e.length," exceeds maximum allowed byte size of ").concat(re)),s.DOCUMENT_MAX_SIZE_EXCEEDED));var r=ne(t);r.documentID&&Y(r.documentID);var n=ee(j(r.accessList),2),o=n[0],a=n[1],E={type:"DOCUMENT_STORE_ENCRYPT",message:{documentID:r.documentID,documentData:e.slice(),documentName:r.documentName,userGrants:o,groupGrants:a,grantToAuthor:r.accessList.grantToAuthor,policy:r.policy}};return N(E,[E.message.documentData]).map((function(e){return e.message})).toPromise()}function ce(e,t){w(),V(e);var r=ne(t);r.documentID&&Y(r.documentID);var n=ee(j(r.accessList),2),o=n[0],a=n[1],E={type:"DOCUMENT_ENCRYPT",message:{documentData:e.slice(),documentID:r.documentID,documentName:r.documentName,userGrants:o,groupGrants:a,grantToAuthor:r.accessList.grantToAuthor,policy:r.policy}};return N(E,[E.message.documentData]).map((function(e){return e.message})).toPromise()}function _e(e,t){if(w(),Y(e),V(t),t.length>re)return Promise.reject(new I(new Error("Document of length ".concat(t.length," exceeds maximum allowed byte size of ").concat(re)),s.DOCUMENT_MAX_SIZE_EXCEEDED));var r={type:"DOCUMENT_STORE_UPDATE_DATA",message:{documentID:e,documentData:t.slice()}};return N(r,[r.message.documentData]).map((function(e){return e.message})).toPromise()}function Re(e,t){w(),Y(e),V(t);var r={type:"DOCUMENT_UPDATE_DATA",message:{documentID:e,documentData:t.slice()}};return N(r,[r.message.documentData]).map((function(e){return e.message})).toPromise()}function Ae(e,t){return w(),Y(e),N({type:"DOCUMENT_UPDATE_NAME",message:{documentID:e,name:""===t?null:t}}).map((function(e){return e.message})).toPromise()}function fe(e,t){w(),Y(e),x(t);var r=ee(j(t),2);return N({type:"DOCUMENT_GRANT",message:{documentID:e,userGrants:r[0],groupGrants:r[1]}}).map((function(e){return e.message})).toPromise()}function me(e,t){w(),Y(e),x(t);var r=ee(j(t),2);return N({type:"DOCUMENT_REVOKE",message:{documentID:e,userRevocations:r[0],groupRevocations:r[1]}}).map((function(e){return e.message})).toPromise()}function de(e){var t=this;return U.A.tryP((function(){return q(t,void 0,void 0,(function(){var t,r,n,o,a,E,i,u=this;return $(this,(function(R){switch(R.label){case 0:t=e.getReader(),R.label=1;case 1:return R.trys.push([1,7,,8]),r=[],n=0,o=function(e){return q(u,void 0,void 0,(function(){var o,a,E;return $(this,(function(i){switch(i.label){case 0:return n<e?[4,t.read()]:[3,2];case 1:if(o=i.sent(),a=o.done,E=o.value,a)throw new I(new Error("Encrypted stream ended before header could be parsed"),s.DOCUMENT_HEADER_PARSE_FAILURE);return r.push(E),n+=E.length,[3,0];case 2:return[2]}}))}))},[4,o(c+_)];case 2:return R.sent(),2!==(a=g.apply(void 0,te([],ee(r),!1)))[0]?[3,4]:(E=new DataView(a.buffer,a.byteOffset).getUint16(c,!1),[4,o(c+_+E+12)]);case 3:return R.sent(),[3,6];case 4:return[4,o(c+12)];case 5:R.sent(),R.label=6;case 6:return[2,{reader:t,buffer:g.apply(void 0,te([],ee(r),!1))}];case 7:throw i=R.sent(),t.releaseLock(),i;case 8:return[2]}}))}))})).flatMap((function(e){var t=e.reader,r=e.buffer;return D(r).map((function(e){var n=r.slice(e.contentOffset),o=new ReadableStream({start:function(e){n.length>0&&e.enqueue(n)},pull:function(e){return t.read().then((function(t){var r=t.done,n=t.value;r?e.close():e.enqueue(n)}))},cancel:function(){return t.cancel()}});return{documentID:e.documentID,iv:e.iv,ciphertextStream:o}})).errorMap((function(e){return t.releaseLock(),e}))}))}function pe(e,t){w();var r=ne(t);r.documentID&&Y(r.documentID);var n=ee(j(r.accessList),2),o=n[0],a=n[1];return N({type:"DOCUMENT_STREAM_ENCRYPT",message:{documentID:r.documentID,documentName:r.documentName,plaintextStream:e,userGrants:o,groupGrants:a,grantToAuthor:r.accessList.grantToAuthor,policy:r.policy}},[e]).map((function(e){var t=e.message;return{documentID:t.documentID,documentName:t.documentName,encryptedStream:t.encryptedStream,created:t.created,updated:t.updated}})).toPromise()}function Ie(e,t){return w(),Y(e),de(t).flatMap((function(t){var r=t.iv,n=t.ciphertextStream;return N({type:"DOCUMENT_STREAM_DECRYPT",message:{documentID:e,iv:r,encryptedStream:n}},[n]).map((function(t){var r=t.message;return{documentID:e,documentName:r.documentName,visibleTo:r.visibleTo,association:r.association,created:r.created,updated:r.updated,plaintextStream:r.plaintextStream}}))})).toPromise()}var Ue={decryptUnmanaged:function(e,t){return w(),K(t),Q(e),U.A.tryP((function(){return Ee(e)})).flatMap((function(r){var n={type:"DOCUMENT_UNMANAGED_DECRYPT",message:{edeks:t,documentData:e.slice()}};return N(n,[n.message.documentData]).map((function(e){var t=e.message;return{data:t.data,documentID:r,accessVia:t.accessVia}}))})).toPromise()},decryptStreamUnmanaged:function(e,t){return w(),K(t),de(e).flatMap((function(e){var r=e.documentID,n=e.iv,o=e.ciphertextStream;return N({type:"DOCUMENT_UNMANAGED_STREAM_DECRYPT",message:{edeks:t,iv:n,encryptedStream:o}},[o]).map((function(e){var t=e.message;return{documentID:r,plaintextStream:t.plaintextStream,accessVia:t.accessVia}}))})).toPromise()},encryptStreamUnmanaged:function(e,t){w();var r=ne(t);r.documentID&&Y(r.documentID);var n=ee(j(r.accessList),2),o=n[0],a=n[1];return N({type:"DOCUMENT_UNMANAGED_STREAM_ENCRYPT",message:{documentID:r.documentID,plaintextStream:e,userGrants:o,groupGrants:a,grantToAuthor:r.accessList.grantToAuthor,policy:r.policy}},[e]).map((function(e){var t=e.message;return{documentID:t.documentID,encryptedStream:t.encryptedStream,edeks:t.edeks}})).toPromise()},encryptUnmanaged:function(e,t){w(),V(e);var r=ne(t);r.documentID&&Y(r.documentID);var n=ee(j(r.accessList),2),o=n[0],a=n[1],E={type:"DOCUMENT_UNMANAGED_ENCRYPT",message:{documentData:e.slice(),documentID:r.documentID,userGrants:o,groupGrants:a,grantToAuthor:r.accessList.grantToAuthor,policy:r.policy}};return N(E,[E.message.documentData]).map((function(e){return e.message})).toPromise()}};function Te(){return w(),N({type:"GROUP_LIST"}).map((function(e){return e.message})).toPromise()}function le(e){return w(),Y(e),N({type:"GROUP_GET",message:{groupID:e}}).map((function(e){return e.message})).toPromise()}function ge(e){return void 0===e&&(e={groupName:"",addAsMember:!0,addAsAdmin:!0,needsRotation:!1}),w(),function(e,t){if(!t&&!1===e)throw new Error("Failed to create group because group ownership must be held by a group administrator")}(e.addAsAdmin,e.ownerUserId),e.groupID&&Y(e.groupID),N({type:"GROUP_CREATE",message:{groupID:e.groupID||"",groupName:e.groupName||"",ownerUserId:e.ownerUserId,addAsMember:!1!==e.addAsMember,addAsAdmin:!1!==e.addAsAdmin,needsRotation:!0===e.needsRotation,userLists:{memberList:e.memberList?G(e.memberList,!0):[],adminList:e.adminList?G(e.adminList,!0):[]}}}).map((function(e){return e.message})).toPromise()}function De(e){return w(),Y(e),N({type:"ROTATE_GROUP_PRIVATE_KEY",message:{groupID:e}}).map((function(e){return e.message})).toPromise()}function Se(e,t){if(w(),Y(e),null===t.groupName||"string"==typeof t.groupName&&t.groupName.length)return N({type:"GROUP_UPDATE",message:{groupID:e,groupName:t.groupName}}).map((function(e){return e.message})).toPromise();throw new Error("Group update must provide a new name which is either a non-zero length string or null.")}function he(e,t){return w(),Y(e),B(t),N({type:"GROUP_ADD_ADMINS",message:{groupID:e,userList:G(t,!0)}}).map((function(e){return e.message})).toPromise()}function ye(e,t){return w(),Y(e),B(t),N({type:"GROUP_REMOVE_ADMINS",message:{groupID:e,userList:G(t,!0)}}).map((function(e){return e.message})).toPromise()}function Oe(e,t){return w(),Y(e),B(t),N({type:"GROUP_ADD_MEMBERS",message:{groupID:e,userList:G(t,!0)}}).map((function(e){return e.message})).toPromise()}function Ne(e,t){return w(),Y(e),B(t),N({type:"GROUP_REMOVE_MEMBERS",message:{groupID:e,userList:G(t,!0)}}).map((function(e){return e.message})).toPromise()}function Le(e){return w(),Y(e),N({type:"GROUP_REMOVE_SELF_AS_MEMBER",message:{groupID:e}}).map((function(){})).toPromise()}function Pe(e){return w(),Y(e),N({type:"GROUP_DELETE",message:{groupID:e}}).map((function(e){return e.message})).toPromise()}var Ce=function(){return Ce=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Ce.apply(this,arguments)},Me=function(){function e(e){this.searchIndexId=e}return e.prototype.tokenizeData=function(e,t){return N({type:"BLIND_SEARCH_INDEX_TOKENIZE_DATA",message:{data:e,partitionId:t,searchIndexId:this.searchIndexId}}).map((function(e){return e.message})).toPromise()},e.prototype.tokenizeQuery=function(e,t){return N({type:"BLIND_SEARCH_INDEX_TOKENIZE_QUERY",message:{query:e,partitionId:t,searchIndexId:this.searchIndexId}}).map((function(e){return e.message})).toPromise()},e}(),ve=function(e){return w(),Y(e),N({type:"BLIND_SEARCH_INDEX_CREATE",message:{groupId:e}}).map((function(e){return e.message})).toPromise()},we=function(e){return w(),V(e.searchIndexEncryptedSalt),V(e.searchIndexEdeks),N({type:"BLIND_SEARCH_INDEX_INIT",message:Ce({},e)}).map((function(e){var t=e.message;return new Me(t.searchIndexId)})).toPromise()},Fe=function(e){return N({type:"SEARCH_TRANSLITERATE_STRING",message:e}).map((function(e){return e.message})).toPromise()};function be(e,t){return w(),N({type:"CHANGE_USER_PASSCODE",message:{currentPasscode:e,newPasscode:t}}).map((function(){})).toPromise()}function Ge(e){return w(),N({type:"ROTATE_USER_PRIVATE_KEY",message:{passcode:e}}).map((function(){})).toPromise()}var Ye=function(){return Ve().then((function(e){return{transformKeyDeleted:e>0}}))},Ve=function(e){w();var t=void 0===e,r={type:"DELETE_DEVICE",message:e};return t&&function(){try{localStorage.removeItem(M())}catch(e){}}(),N(r).map((function(e){var r=e.message;return t&&(C=!1),r})).toPromise()},Qe=function(e){return w(),N({type:"DELETE_DEVICE_BY_SIGNING_KEY",message:e}).map((function(e){return e.message})).toPromise()},Ke=function(){w();return N({type:"LIST_DEVICES",message:null}).map((function(e){return e.message})).toPromise()},xe=a,Be=u,je=E,ke=i,He=o;function We(){var e=window.crypto;return"object"==typeof e&&"function"==typeof e.getRandomValues}function ze(){return"object"==typeof WebAssembly&&WebAssembly&&"function"==typeof WebAssembly.instantiate}var Xe=function(){return Promise.reject(new I(new Error("Request failed due to a lack of browser support for WebAssembly."),s.WEBASSEMBLY_SUPPORT_FAILURE))},Je=function(){return Promise.reject(new I(new Error("Request failed due to a lack of browser support for random number generation."),s.RANDOM_NUMBER_GENERATION_FAILURE))};function Ze(e,t,r){if(void 0===r&&(r={needsRotation:!1}),!e||"function"!=typeof e)throw new Error("You must provide a function which will generate a JWT as the first parameter to 'IronWeb.createNewUser'.");return We()?ze()?H(e,t,r.needsRotation||!1):Xe():Je()}function qe(e,t){if(!e||"function"!=typeof e)throw new Error("You must provide a function which will generate a JWT as the first parameter to 'IronWeb.createNewUser'.");return We()?ze()?W(e,t):Xe():Je()}function $e(e,t){if(!e||"function"!=typeof e)throw new Error("You must provide a function which will generate a JWT as the first parameter to 'IronWeb.initialize'.");if(!t||"function"!=typeof t)throw new Error("You must provide a function which will generate the users escrow passcode as the second parameter to 'IronWeb.initialize'.");return We()?ze()?z(e,t):Xe():Je()}function et(){try{return w(),!0}catch(e){return!1}}return n})()));
|
|
2
2
|
//# sourceMappingURL=ironweb.min.js.map
|