UNPKG

alpha-ai-avatar-sdk-aipi

Version:
1,638 lines (1,382 loc) 1.18 MB
'use strict'; var React = require('react'); var _commonjsHelpers = require('../../../_commonjsHelpers-B83fTs8d.js'); var microsoft_cognitiveservices_speech_sdk = {}; var Exports$6 = {}; var CognitiveSubscriptionKeyAuthentication$1 = {}; var Exports$5 = {}; var AudioSourceEvents = {}; var PlatformEvent = {}; var Guid = {}; var commonjsBrowser = {}; var v1$1 = {}; var rng$1 = {}; Object.defineProperty(rng$1, "__esModule", { value: true }); rng$1.default = rng; // Unique ID creation requires a high quality random # generator. In the browser we therefore // require the crypto API and do not support built-in fallback to lower quality random number // generators (like Math.random()). let getRandomValues; const rnds8 = new Uint8Array(16); function rng() { // lazy load so that environments that need to polyfill have a chance to do so if (!getRandomValues) { // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation. getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto); if (!getRandomValues) { throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported'); } } return getRandomValues(rnds8); } var stringify$1 = {}; var validate$1 = {}; var regex = {}; Object.defineProperty(regex, "__esModule", { value: true }); regex.default = void 0; var _default$c = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; regex.default = _default$c; Object.defineProperty(validate$1, "__esModule", { value: true }); validate$1.default = void 0; var _regex = _interopRequireDefault$8(regex); function _interopRequireDefault$8(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function validate(uuid) { return typeof uuid === 'string' && _regex.default.test(uuid); } var _default$b = validate; validate$1.default = _default$b; Object.defineProperty(stringify$1, "__esModule", { value: true }); stringify$1.default = void 0; stringify$1.unsafeStringify = unsafeStringify; var _validate$2 = _interopRequireDefault$7(validate$1); function _interopRequireDefault$7(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Convert array of 16 byte values to UUID string format of the form: * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX */ const byteToHex = []; for (let i = 0; i < 256; ++i) { byteToHex.push((i + 0x100).toString(16).slice(1)); } function unsafeStringify(arr, offset = 0) { // Note: Be careful editing this code! It's been tuned for performance // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]; } function stringify(arr, offset = 0) { const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one // of the following: // - One or more input array values don't map to a hex octet (leading to // "undefined" in the uuid) // - Invalid input values for the RFC `version` or `variant` fields if (!(0, _validate$2.default)(uuid)) { throw TypeError('Stringified UUID is invalid'); } return uuid; } var _default$a = stringify; stringify$1.default = _default$a; Object.defineProperty(v1$1, "__esModule", { value: true }); v1$1.default = void 0; var _rng$1 = _interopRequireDefault$6(rng$1); var _stringify$2 = stringify$1; function _interopRequireDefault$6(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // **`v1()` - Generate time-based UUID** // // Inspired by https://github.com/LiosK/UUID.js // and http://docs.python.org/library/uuid.html let _nodeId; let _clockseq; // Previous uuid creation time let _lastMSecs = 0; let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details function v1(options, buf, offset) { let i = buf && offset || 0; const b = buf || new Array(16); options = options || {}; let node = options.node || _nodeId; let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not // specified. We do this lazily to minimize issues related to insufficient // system entropy. See #189 if (node == null || clockseq == null) { const seedBytes = options.random || (options.rng || _rng$1.default)(); if (node == null) { // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; } if (clockseq == null) { // Per 4.2.2, randomize (14 bit) clockseq clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; } } // UUID timestamps are 100 nano-second units since the Gregorian epoch, // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock // cycle to simulate higher resolution clock let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression if (dt < 0 && options.clockseq === undefined) { clockseq = clockseq + 1 & 0x3fff; } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new // time interval if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { nsecs = 0; } // Per 4.2.1.2 Throw error if too many uuids are requested if (nsecs >= 10000) { throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); } _lastMSecs = msecs; _lastNSecs = nsecs; _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch msecs += 12219292800000; // `time_low` const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; b[i++] = tl >>> 24 & 0xff; b[i++] = tl >>> 16 & 0xff; b[i++] = tl >>> 8 & 0xff; b[i++] = tl & 0xff; // `time_mid` const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; b[i++] = tmh >>> 8 & 0xff; b[i++] = tmh & 0xff; // `time_high_and_version` b[i++] = tmh >>> 24 & 0xf | 0x10; // include version b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` b[i++] = clockseq & 0xff; // `node` for (let n = 0; n < 6; ++n) { b[i + n] = node[n]; } return buf || (0, _stringify$2.unsafeStringify)(b); } var _default$9 = v1; v1$1.default = _default$9; var v3$1 = {}; var v35$1 = {}; var parse$2 = {}; Object.defineProperty(parse$2, "__esModule", { value: true }); parse$2.default = void 0; var _validate$1 = _interopRequireDefault$5(validate$1); function _interopRequireDefault$5(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function parse$1(uuid) { if (!(0, _validate$1.default)(uuid)) { throw TypeError('Invalid UUID'); } let v; const arr = new Uint8Array(16); // Parse ########-....-....-....-............ arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; arr[1] = v >>> 16 & 0xff; arr[2] = v >>> 8 & 0xff; arr[3] = v & 0xff; // Parse ........-####-....-....-............ arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; arr[5] = v & 0xff; // Parse ........-....-####-....-............ arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; arr[7] = v & 0xff; // Parse ........-....-....-####-............ arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; arr[9] = v & 0xff; // Parse ........-....-....-....-############ // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; arr[11] = v / 0x100000000 & 0xff; arr[12] = v >>> 24 & 0xff; arr[13] = v >>> 16 & 0xff; arr[14] = v >>> 8 & 0xff; arr[15] = v & 0xff; return arr; } var _default$8 = parse$1; parse$2.default = _default$8; Object.defineProperty(v35$1, "__esModule", { value: true }); v35$1.URL = v35$1.DNS = void 0; v35$1.default = v35; var _stringify$1 = stringify$1; var _parse = _interopRequireDefault$4(parse$2); function _interopRequireDefault$4(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function stringToBytes(str) { str = unescape(encodeURIComponent(str)); // UTF8 escape const bytes = []; for (let i = 0; i < str.length; ++i) { bytes.push(str.charCodeAt(i)); } return bytes; } const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; v35$1.DNS = DNS; const URL$1 = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; v35$1.URL = URL$1; function v35(name, version, hashfunc) { function generateUUID(value, namespace, buf, offset) { var _namespace; if (typeof value === 'string') { value = stringToBytes(value); } if (typeof namespace === 'string') { namespace = (0, _parse.default)(namespace); } if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) { throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); } // Compute hash of namespace and value, Per 4.3 // Future: Use spread syntax when supported on all platforms, e.g. `bytes = // hashfunc([...namespace, ... value])` let bytes = new Uint8Array(16 + value.length); bytes.set(namespace); bytes.set(value, namespace.length); bytes = hashfunc(bytes); bytes[6] = bytes[6] & 0x0f | version; bytes[8] = bytes[8] & 0x3f | 0x80; if (buf) { offset = offset || 0; for (let i = 0; i < 16; ++i) { buf[offset + i] = bytes[i]; } return buf; } return (0, _stringify$1.unsafeStringify)(bytes); } // Function#name is not settable on some platforms (#270) try { generateUUID.name = name; // eslint-disable-next-line no-empty } catch (err) {} // For CommonJS default export support generateUUID.DNS = DNS; generateUUID.URL = URL$1; return generateUUID; } var md5$1 = {}; Object.defineProperty(md5$1, "__esModule", { value: true }); md5$1.default = void 0; /* * Browser-compatible JavaScript MD5 * * Modification of JavaScript MD5 * https://github.com/blueimp/JavaScript-MD5 * * Copyright 2011, Sebastian Tschan * https://blueimp.net * * Licensed under the MIT license: * https://opensource.org/licenses/MIT * * Based on * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message * Digest Algorithm, as defined in RFC 1321. * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet * Distributed under the BSD License * See http://pajhome.org.uk/crypt/md5 for more info. */ function md5(bytes) { if (typeof bytes === 'string') { const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape bytes = new Uint8Array(msg.length); for (let i = 0; i < msg.length; ++i) { bytes[i] = msg.charCodeAt(i); } } return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8)); } /* * Convert an array of little-endian words to an array of bytes */ function md5ToHexEncodedArray(input) { const output = []; const length32 = input.length * 32; const hexTab = '0123456789abcdef'; for (let i = 0; i < length32; i += 8) { const x = input[i >> 5] >>> i % 32 & 0xff; const hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16); output.push(hex); } return output; } /** * Calculate output length with padding and bit length */ function getOutputLength(inputLength8) { return (inputLength8 + 64 >>> 9 << 4) + 14 + 1; } /* * Calculate the MD5 of an array of little-endian words, and a bit length. */ function wordsToMd5(x, len) { /* append padding */ x[len >> 5] |= 0x80 << len % 32; x[getOutputLength(len) - 1] = len; let a = 1732584193; let b = -271733879; let c = -1732584194; let d = 271733878; for (let i = 0; i < x.length; i += 16) { const olda = a; const oldb = b; const oldc = c; const oldd = d; a = md5ff(a, b, c, d, x[i], 7, -680876936); d = md5ff(d, a, b, c, x[i + 1], 12, -389564586); c = md5ff(c, d, a, b, x[i + 2], 17, 606105819); b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330); a = md5ff(a, b, c, d, x[i + 4], 7, -176418897); d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426); c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341); b = md5ff(b, c, d, a, x[i + 7], 22, -45705983); a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416); d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417); c = md5ff(c, d, a, b, x[i + 10], 17, -42063); b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162); a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682); d = md5ff(d, a, b, c, x[i + 13], 12, -40341101); c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290); b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329); a = md5gg(a, b, c, d, x[i + 1], 5, -165796510); d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632); c = md5gg(c, d, a, b, x[i + 11], 14, 643717713); b = md5gg(b, c, d, a, x[i], 20, -373897302); a = md5gg(a, b, c, d, x[i + 5], 5, -701558691); d = md5gg(d, a, b, c, x[i + 10], 9, 38016083); c = md5gg(c, d, a, b, x[i + 15], 14, -660478335); b = md5gg(b, c, d, a, x[i + 4], 20, -405537848); a = md5gg(a, b, c, d, x[i + 9], 5, 568446438); d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690); c = md5gg(c, d, a, b, x[i + 3], 14, -187363961); b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501); a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467); d = md5gg(d, a, b, c, x[i + 2], 9, -51403784); c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473); b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734); a = md5hh(a, b, c, d, x[i + 5], 4, -378558); d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463); c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562); b = md5hh(b, c, d, a, x[i + 14], 23, -35309556); a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060); d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353); c = md5hh(c, d, a, b, x[i + 7], 16, -155497632); b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640); a = md5hh(a, b, c, d, x[i + 13], 4, 681279174); d = md5hh(d, a, b, c, x[i], 11, -358537222); c = md5hh(c, d, a, b, x[i + 3], 16, -722521979); b = md5hh(b, c, d, a, x[i + 6], 23, 76029189); a = md5hh(a, b, c, d, x[i + 9], 4, -640364487); d = md5hh(d, a, b, c, x[i + 12], 11, -421815835); c = md5hh(c, d, a, b, x[i + 15], 16, 530742520); b = md5hh(b, c, d, a, x[i + 2], 23, -995338651); a = md5ii(a, b, c, d, x[i], 6, -198630844); d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415); c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905); b = md5ii(b, c, d, a, x[i + 5], 21, -57434055); a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571); d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606); c = md5ii(c, d, a, b, x[i + 10], 15, -1051523); b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799); a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359); d = md5ii(d, a, b, c, x[i + 15], 10, -30611744); c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380); b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649); a = md5ii(a, b, c, d, x[i + 4], 6, -145523070); d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379); c = md5ii(c, d, a, b, x[i + 2], 15, 718787259); b = md5ii(b, c, d, a, x[i + 9], 21, -343485551); a = safeAdd(a, olda); b = safeAdd(b, oldb); c = safeAdd(c, oldc); d = safeAdd(d, oldd); } return [a, b, c, d]; } /* * Convert an array bytes to an array of little-endian words * Characters >255 have their high-byte silently ignored. */ function bytesToWords(input) { if (input.length === 0) { return []; } const length8 = input.length * 8; const output = new Uint32Array(getOutputLength(length8)); for (let i = 0; i < length8; i += 8) { output[i >> 5] |= (input[i / 8] & 0xff) << i % 32; } return output; } /* * Add integers, wrapping at 2^32. This uses 16-bit operations internally * to work around bugs in some JS interpreters. */ function safeAdd(x, y) { const lsw = (x & 0xffff) + (y & 0xffff); const msw = (x >> 16) + (y >> 16) + (lsw >> 16); return msw << 16 | lsw & 0xffff; } /* * Bitwise rotate a 32-bit number to the left. */ function bitRotateLeft(num, cnt) { return num << cnt | num >>> 32 - cnt; } /* * These functions implement the four basic operations the algorithm uses. */ function md5cmn(q, a, b, x, s, t) { return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b); } function md5ff(a, b, c, d, x, s, t) { return md5cmn(b & c | ~b & d, a, b, x, s, t); } function md5gg(a, b, c, d, x, s, t) { return md5cmn(b & d | c & ~d, a, b, x, s, t); } function md5hh(a, b, c, d, x, s, t) { return md5cmn(b ^ c ^ d, a, b, x, s, t); } function md5ii(a, b, c, d, x, s, t) { return md5cmn(c ^ (b | ~d), a, b, x, s, t); } var _default$7 = md5; md5$1.default = _default$7; Object.defineProperty(v3$1, "__esModule", { value: true }); v3$1.default = void 0; var _v$1 = _interopRequireDefault$3(v35$1); var _md = _interopRequireDefault$3(md5$1); function _interopRequireDefault$3(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const v3 = (0, _v$1.default)('v3', 0x30, _md.default); var _default$6 = v3; v3$1.default = _default$6; var v4$1 = {}; var native = {}; Object.defineProperty(native, "__esModule", { value: true }); native.default = void 0; const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto); var _default$5 = { randomUUID }; native.default = _default$5; Object.defineProperty(v4$1, "__esModule", { value: true }); v4$1.default = void 0; var _native = _interopRequireDefault$2(native); var _rng = _interopRequireDefault$2(rng$1); var _stringify = stringify$1; function _interopRequireDefault$2(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function v4(options, buf, offset) { if (_native.default.randomUUID && !buf && !options) { return _native.default.randomUUID(); } options = options || {}; const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` rnds[6] = rnds[6] & 0x0f | 0x40; rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided if (buf) { offset = offset || 0; for (let i = 0; i < 16; ++i) { buf[offset + i] = rnds[i]; } return buf; } return (0, _stringify.unsafeStringify)(rnds); } var _default$4 = v4; v4$1.default = _default$4; var v5$1 = {}; var sha1$1 = {}; Object.defineProperty(sha1$1, "__esModule", { value: true }); sha1$1.default = void 0; // Adapted from Chris Veness' SHA1 code at // http://www.movable-type.co.uk/scripts/sha1.html function f(s, x, y, z) { switch (s) { case 0: return x & y ^ ~x & z; case 1: return x ^ y ^ z; case 2: return x & y ^ x & z ^ y & z; case 3: return x ^ y ^ z; } } function ROTL(x, n) { return x << n | x >>> 32 - n; } function sha1(bytes) { const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6]; const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]; if (typeof bytes === 'string') { const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape bytes = []; for (let i = 0; i < msg.length; ++i) { bytes.push(msg.charCodeAt(i)); } } else if (!Array.isArray(bytes)) { // Convert Array-like to Array bytes = Array.prototype.slice.call(bytes); } bytes.push(0x80); const l = bytes.length / 4 + 2; const N = Math.ceil(l / 16); const M = new Array(N); for (let i = 0; i < N; ++i) { const arr = new Uint32Array(16); for (let j = 0; j < 16; ++j) { arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3]; } M[i] = arr; } M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32); M[N - 1][14] = Math.floor(M[N - 1][14]); M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff; for (let i = 0; i < N; ++i) { const W = new Uint32Array(80); for (let t = 0; t < 16; ++t) { W[t] = M[i][t]; } for (let t = 16; t < 80; ++t) { W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1); } let a = H[0]; let b = H[1]; let c = H[2]; let d = H[3]; let e = H[4]; for (let t = 0; t < 80; ++t) { const s = Math.floor(t / 20); const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0; e = d; d = c; c = ROTL(b, 30) >>> 0; b = a; a = T; } H[0] = H[0] + a >>> 0; H[1] = H[1] + b >>> 0; H[2] = H[2] + c >>> 0; H[3] = H[3] + d >>> 0; H[4] = H[4] + e >>> 0; } return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff]; } var _default$3 = sha1; sha1$1.default = _default$3; Object.defineProperty(v5$1, "__esModule", { value: true }); v5$1.default = void 0; var _v = _interopRequireDefault$1(v35$1); var _sha = _interopRequireDefault$1(sha1$1); function _interopRequireDefault$1(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const v5 = (0, _v.default)('v5', 0x50, _sha.default); var _default$2 = v5; v5$1.default = _default$2; var nil = {}; Object.defineProperty(nil, "__esModule", { value: true }); nil.default = void 0; var _default$1 = '00000000-0000-0000-0000-000000000000'; nil.default = _default$1; var version$1 = {}; Object.defineProperty(version$1, "__esModule", { value: true }); version$1.default = void 0; var _validate = _interopRequireDefault(validate$1); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function version(uuid) { if (!(0, _validate.default)(uuid)) { throw TypeError('Invalid UUID'); } return parseInt(uuid.slice(14, 15), 16); } var _default = version; version$1.default = _default; (function (exports) { Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "NIL", { enumerable: true, get: function get() { return _nil.default; } }); Object.defineProperty(exports, "parse", { enumerable: true, get: function get() { return _parse.default; } }); Object.defineProperty(exports, "stringify", { enumerable: true, get: function get() { return _stringify.default; } }); Object.defineProperty(exports, "v1", { enumerable: true, get: function get() { return _v.default; } }); Object.defineProperty(exports, "v3", { enumerable: true, get: function get() { return _v2.default; } }); Object.defineProperty(exports, "v4", { enumerable: true, get: function get() { return _v3.default; } }); Object.defineProperty(exports, "v5", { enumerable: true, get: function get() { return _v4.default; } }); Object.defineProperty(exports, "validate", { enumerable: true, get: function get() { return _validate.default; } }); Object.defineProperty(exports, "version", { enumerable: true, get: function get() { return _version.default; } }); var _v = _interopRequireDefault(v1$1); var _v2 = _interopRequireDefault(v3$1); var _v3 = _interopRequireDefault(v4$1); var _v4 = _interopRequireDefault(v5$1); var _nil = _interopRequireDefault(nil); var _version = _interopRequireDefault(version$1); var _validate = _interopRequireDefault(validate$1); var _stringify = _interopRequireDefault(stringify$1); var _parse = _interopRequireDefault(parse$2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } } (commonjsBrowser)); // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(Guid, "__esModule", { value: true }); Guid.createNoDashGuid = Guid.createGuid = void 0; const uuid_1 = commonjsBrowser; const createGuid = () => uuid_1.v4(); Guid.createGuid = createGuid; const createNoDashGuid = () => createGuid().replace(new RegExp("-", "g"), "").toUpperCase(); Guid.createNoDashGuid = createNoDashGuid; (function (exports) { // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(exports, "__esModule", { value: true }); exports.PlatformEvent = exports.EventType = void 0; const Guid_js_1 = Guid; (function (EventType) { EventType[EventType["Debug"] = 0] = "Debug"; EventType[EventType["Info"] = 1] = "Info"; EventType[EventType["Warning"] = 2] = "Warning"; EventType[EventType["Error"] = 3] = "Error"; EventType[EventType["None"] = 4] = "None"; })(exports.EventType || (exports.EventType = {})); class PlatformEvent { constructor(eventName, eventType) { this.privName = eventName; this.privEventId = Guid_js_1.createNoDashGuid(); this.privEventTime = new Date().toISOString(); this.privEventType = eventType; this.privMetadata = {}; } get name() { return this.privName; } get eventId() { return this.privEventId; } get eventTime() { return this.privEventTime; } get eventType() { return this.privEventType; } get metadata() { return this.privMetadata; } } exports.PlatformEvent = PlatformEvent; } (PlatformEvent)); // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(AudioSourceEvents, "__esModule", { value: true }); AudioSourceEvents.AudioStreamNodeErrorEvent = AudioSourceEvents.AudioStreamNodeDetachedEvent = AudioSourceEvents.AudioStreamNodeAttachedEvent = AudioSourceEvents.AudioStreamNodeAttachingEvent = AudioSourceEvents.AudioStreamNodeEvent = AudioSourceEvents.AudioSourceErrorEvent = AudioSourceEvents.AudioSourceOffEvent = AudioSourceEvents.AudioSourceReadyEvent = AudioSourceEvents.AudioSourceInitializingEvent = AudioSourceEvents.AudioSourceEvent = void 0; /* eslint-disable max-classes-per-file */ const PlatformEvent_js_1$3 = PlatformEvent; class AudioSourceEvent extends PlatformEvent_js_1$3.PlatformEvent { constructor(eventName, audioSourceId, eventType = PlatformEvent_js_1$3.EventType.Info) { super(eventName, eventType); this.privAudioSourceId = audioSourceId; } get audioSourceId() { return this.privAudioSourceId; } } AudioSourceEvents.AudioSourceEvent = AudioSourceEvent; class AudioSourceInitializingEvent extends AudioSourceEvent { constructor(audioSourceId) { super("AudioSourceInitializingEvent", audioSourceId); } } AudioSourceEvents.AudioSourceInitializingEvent = AudioSourceInitializingEvent; class AudioSourceReadyEvent extends AudioSourceEvent { constructor(audioSourceId) { super("AudioSourceReadyEvent", audioSourceId); } } AudioSourceEvents.AudioSourceReadyEvent = AudioSourceReadyEvent; class AudioSourceOffEvent extends AudioSourceEvent { constructor(audioSourceId) { super("AudioSourceOffEvent", audioSourceId); } } AudioSourceEvents.AudioSourceOffEvent = AudioSourceOffEvent; class AudioSourceErrorEvent extends AudioSourceEvent { constructor(audioSourceId, error) { super("AudioSourceErrorEvent", audioSourceId, PlatformEvent_js_1$3.EventType.Error); this.privError = error; } get error() { return this.privError; } } AudioSourceEvents.AudioSourceErrorEvent = AudioSourceErrorEvent; class AudioStreamNodeEvent extends AudioSourceEvent { constructor(eventName, audioSourceId, audioNodeId) { super(eventName, audioSourceId); this.privAudioNodeId = audioNodeId; } get audioNodeId() { return this.privAudioNodeId; } } AudioSourceEvents.AudioStreamNodeEvent = AudioStreamNodeEvent; class AudioStreamNodeAttachingEvent extends AudioStreamNodeEvent { constructor(audioSourceId, audioNodeId) { super("AudioStreamNodeAttachingEvent", audioSourceId, audioNodeId); } } AudioSourceEvents.AudioStreamNodeAttachingEvent = AudioStreamNodeAttachingEvent; class AudioStreamNodeAttachedEvent extends AudioStreamNodeEvent { constructor(audioSourceId, audioNodeId) { super("AudioStreamNodeAttachedEvent", audioSourceId, audioNodeId); } } AudioSourceEvents.AudioStreamNodeAttachedEvent = AudioStreamNodeAttachedEvent; class AudioStreamNodeDetachedEvent extends AudioStreamNodeEvent { constructor(audioSourceId, audioNodeId) { super("AudioStreamNodeDetachedEvent", audioSourceId, audioNodeId); } } AudioSourceEvents.AudioStreamNodeDetachedEvent = AudioStreamNodeDetachedEvent; class AudioStreamNodeErrorEvent extends AudioStreamNodeEvent { constructor(audioSourceId, audioNodeId, error) { super("AudioStreamNodeErrorEvent", audioSourceId, audioNodeId); this.privError = error; } get error() { return this.privError; } } AudioSourceEvents.AudioStreamNodeErrorEvent = AudioStreamNodeErrorEvent; var ConnectionEvents = {}; // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(ConnectionEvents, "__esModule", { value: true }); ConnectionEvents.ConnectionMessageSentEvent = ConnectionEvents.ConnectionMessageReceivedEvent = ConnectionEvents.ConnectionEstablishErrorEvent = ConnectionEvents.ConnectionErrorEvent = ConnectionEvents.ConnectionClosedEvent = ConnectionEvents.ConnectionEstablishedEvent = ConnectionEvents.ConnectionStartEvent = ConnectionEvents.ConnectionEvent = ConnectionEvents.ServiceEvent = void 0; const PlatformEvent_js_1$2 = PlatformEvent; class ServiceEvent extends PlatformEvent_js_1$2.PlatformEvent { constructor(eventName, jsonstring, eventType = PlatformEvent_js_1$2.EventType.Info) { super(eventName, eventType); this.privJsonResult = jsonstring; } get jsonString() { return this.privJsonResult; } } ConnectionEvents.ServiceEvent = ServiceEvent; class ConnectionEvent extends PlatformEvent_js_1$2.PlatformEvent { constructor(eventName, connectionId, eventType = PlatformEvent_js_1$2.EventType.Info) { super(eventName, eventType); this.privConnectionId = connectionId; } get connectionId() { return this.privConnectionId; } } ConnectionEvents.ConnectionEvent = ConnectionEvent; class ConnectionStartEvent extends ConnectionEvent { constructor(connectionId, uri, headers) { super("ConnectionStartEvent", connectionId); this.privUri = uri; this.privHeaders = headers; } get uri() { return this.privUri; } get headers() { return this.privHeaders; } } ConnectionEvents.ConnectionStartEvent = ConnectionStartEvent; class ConnectionEstablishedEvent extends ConnectionEvent { constructor(connectionId) { super("ConnectionEstablishedEvent", connectionId); } } ConnectionEvents.ConnectionEstablishedEvent = ConnectionEstablishedEvent; class ConnectionClosedEvent extends ConnectionEvent { constructor(connectionId, statusCode, reason) { super("ConnectionClosedEvent", connectionId, PlatformEvent_js_1$2.EventType.Debug); this.privReason = reason; this.privStatusCode = statusCode; } get reason() { return this.privReason; } get statusCode() { return this.privStatusCode; } } ConnectionEvents.ConnectionClosedEvent = ConnectionClosedEvent; class ConnectionErrorEvent extends ConnectionEvent { constructor(connectionId, message, type) { super("ConnectionErrorEvent", connectionId, PlatformEvent_js_1$2.EventType.Debug); this.privMessage = message; this.privType = type; } get message() { return this.privMessage; } get type() { return this.privType; } } ConnectionEvents.ConnectionErrorEvent = ConnectionErrorEvent; class ConnectionEstablishErrorEvent extends ConnectionEvent { constructor(connectionId, statuscode, reason) { super("ConnectionEstablishErrorEvent", connectionId, PlatformEvent_js_1$2.EventType.Error); this.privStatusCode = statuscode; this.privReason = reason; } get reason() { return this.privReason; } get statusCode() { return this.privStatusCode; } } ConnectionEvents.ConnectionEstablishErrorEvent = ConnectionEstablishErrorEvent; class ConnectionMessageReceivedEvent extends ConnectionEvent { constructor(connectionId, networkReceivedTimeISO, message) { super("ConnectionMessageReceivedEvent", connectionId); this.privNetworkReceivedTime = networkReceivedTimeISO; this.privMessage = message; } get networkReceivedTime() { return this.privNetworkReceivedTime; } get message() { return this.privMessage; } } ConnectionEvents.ConnectionMessageReceivedEvent = ConnectionMessageReceivedEvent; class ConnectionMessageSentEvent extends ConnectionEvent { constructor(connectionId, networkSentTimeISO, message) { super("ConnectionMessageSentEvent", connectionId); this.privNetworkSentTime = networkSentTimeISO; this.privMessage = message; } get networkSentTime() { return this.privNetworkSentTime; } get message() { return this.privMessage; } } ConnectionEvents.ConnectionMessageSentEvent = ConnectionMessageSentEvent; var ConnectionMessage$1 = {}; var _Error = {}; // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(_Error, "__esModule", { value: true }); _Error.ObjectDisposedError = _Error.InvalidOperationError = _Error.ArgumentNullError = void 0; /* eslint-disable max-classes-per-file */ /** * The error that is thrown when an argument passed in is null. * * @export * @class ArgumentNullError * @extends {Error} */ class ArgumentNullError extends Error { /** * Creates an instance of ArgumentNullError. * * @param {string} argumentName - Name of the argument that is null * * @memberOf ArgumentNullError */ constructor(argumentName) { super(argumentName); this.name = "ArgumentNull"; this.message = argumentName; } } _Error.ArgumentNullError = ArgumentNullError; /** * The error that is thrown when an invalid operation is performed in the code. * * @export * @class InvalidOperationError * @extends {Error} */ class InvalidOperationError extends Error { /** * Creates an instance of InvalidOperationError. * * @param {string} error - The error * * @memberOf InvalidOperationError */ constructor(error) { super(error); this.name = "InvalidOperation"; this.message = error; } } _Error.InvalidOperationError = InvalidOperationError; /** * The error that is thrown when an object is disposed. * * @export * @class ObjectDisposedError * @extends {Error} */ class ObjectDisposedError extends Error { /** * Creates an instance of ObjectDisposedError. * * @param {string} objectName - The object that is disposed * @param {string} error - The error * * @memberOf ObjectDisposedError */ constructor(objectName, error) { super(error); this.name = objectName + "ObjectDisposed"; this.message = error; } } _Error.ObjectDisposedError = ObjectDisposedError; (function (exports) { /* eslint-disable @typescript-eslint/no-unsafe-return */ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(exports, "__esModule", { value: true }); exports.ConnectionMessage = exports.MessageType = void 0; const Error_js_1 = _Error; const Guid_js_1 = Guid; var MessageType; (function (MessageType) { MessageType[MessageType["Text"] = 0] = "Text"; MessageType[MessageType["Binary"] = 1] = "Binary"; })(MessageType = exports.MessageType || (exports.MessageType = {})); class ConnectionMessage { constructor(messageType, body, headers, id) { this.privBody = null; if (messageType === MessageType.Text && body && !(typeof (body) === "string")) { throw new Error_js_1.InvalidOperationError("Payload must be a string"); } if (messageType === MessageType.Binary && body && !(body instanceof ArrayBuffer)) { throw new Error_js_1.InvalidOperationError("Payload must be ArrayBuffer"); } this.privMessageType = messageType; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment this.privBody = body; this.privHeaders = headers ? headers : {}; this.privId = id ? id : Guid_js_1.createNoDashGuid(); switch (this.messageType) { case MessageType.Binary: this.privSize = this.binaryBody !== null ? this.binaryBody.byteLength : 0; break; case MessageType.Text: this.privSize = this.textBody.length; } } get messageType() { return this.privMessageType; } get headers() { return this.privHeaders; } get body() { return this.privBody; } get textBody() { if (this.privMessageType === MessageType.Binary) { throw new Error_js_1.InvalidOperationError("Not supported for binary message"); } return this.privBody; } get binaryBody() { if (this.privMessageType === MessageType.Text) { throw new Error_js_1.InvalidOperationError("Not supported for text message"); } return this.privBody; } get id() { return this.privId; } } exports.ConnectionMessage = ConnectionMessage; } (ConnectionMessage$1)); var ConnectionOpenResponse$1 = {}; // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(ConnectionOpenResponse$1, "__esModule", { value: true }); ConnectionOpenResponse$1.ConnectionOpenResponse = void 0; class ConnectionOpenResponse { constructor(statusCode, reason) { this.privStatusCode = statusCode; this.privReason = reason; } get statusCode() { return this.privStatusCode; } get reason() { return this.privReason; } } ConnectionOpenResponse$1.ConnectionOpenResponse = ConnectionOpenResponse; var DeferralMap$1 = {}; // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(DeferralMap$1, "__esModule", { value: true }); DeferralMap$1.DeferralMap = void 0; /** * The error that is thrown when an argument passed in is null. * * @export * @class DefferalMap */ class DeferralMap { constructor() { this.privMap = {}; } add(id, deferral) { this.privMap[id] = deferral; } getId(id) { return this.privMap[id]; } complete(id, result) { try { this.privMap[id].resolve(result); } catch (error) { this.privMap[id].reject(error); } finally { this.privMap[id] = undefined; } } } DeferralMap$1.DeferralMap = DeferralMap; var DialogEvents = {}; // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(DialogEvents, "__esModule", { value: true }); DialogEvents.SendingAgentContextMessageEvent = DialogEvents.DialogEvent = void 0; const PlatformEvent_js_1$1 = PlatformEvent; class DialogEvent extends PlatformEvent_js_1$1.PlatformEvent { constructor(eventName, eventType = PlatformEvent_js_1$1.EventType.Info) { super(eventName, eventType); } } DialogEvents.DialogEvent = DialogEvent; class SendingAgentContextMessageEvent extends DialogEvent { constructor(agentConfig) { super("SendingAgentContextMessageEvent"); this.privAgentConfig = agentConfig; } get agentConfig() { return this.privAgentConfig; } } DialogEvents.SendingAgentContextMessageEvent = SendingAgentContextMessageEvent; var Events$1 = {}; var EventSource$1 = {}; // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(EventSource$1, "__esModule", { value: true }); EventSource$1.EventSource = void 0; const Error_js_1$6 = _Error; const Guid_js_1$2 = Guid; class EventSource { constructor(metadata) { this.privEventListeners = {}; this.privIsDisposed = false; this.privConsoleListener = undefined; this.privMetadata = metadata; } onEvent(event) { if (this.isDisposed()) { throw (new Error_js_1$6.ObjectDisposedError("EventSource")); } if (this.metadata) { for (const paramName in this.metadata) { if (paramName) { if (event.metadata) { if (!event.metadata[paramName]) { event.metadata[paramName] = this.metadata[paramName]; } } } } } for (const eventId in this.privEventListeners) { if (eventId && this.privEventListeners[eventId]) { this.privEventListeners[eventId](event); } } } attach(onEventCallback) { const id = Guid_js_1$2.createNoDashGuid(); this.privEventListeners[id] = onEventCallback; return { detach: () => { delete this.privEventListeners[id]; return Promise.resolve(); }, }; } attachListener(listener) { return this.attach((e) => listener.onEvent(e)); } attachConsoleListener(listener) { if (!!this.privConsoleListener) { void this.privConsoleListener.detach(); // Detach implementation for eventListeners is synchronous } this.privConsoleListener = this.attach((e) => listener.onEvent(e)); return this.privConsoleListener; } isDisposed() { return this.privIsDisposed; } dispose() { this.privEventListeners = null; this.privIsDisposed = true; } get metadata() { return this.privMetadata; } } EventSource$1.EventSource = EventSource; // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(Events$1, "__esModule", { value: true }); Events$1.Events = void 0; const Error_js_1$5 = _Error; const EventSource_js_1 = EventSource$1; class Events { static setEventSource(eventSource) { if (!eventSource) { throw new Error_js_1$5.ArgumentNullError("eventSource"); } Events.privInstance = eventSource; } static get instance() { return Events.privInstance; } } Events$1.Events = Events; Events.privInstance = new EventSource_js_1.EventSource(); var IAudioSource = {}; // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(IAudioSource, "__esModule", { value: true }); var IConnection = {}; (function (exports) { // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(exports, "__esModule", { value: true }); exports.ConnectionState = void 0; (function (ConnectionState) { ConnectionState[ConnectionState["None"] = 0] = "None"; ConnectionState[ConnectionState["Connected"] = 1] = "Connected"; ConnectionState[ConnectionState["Connecting"] = 2] = "Connecting"; ConnectionState[ConnectionState["Disconnected"] = 3] = "Disconnected"; })(exports.ConnectionState || (exports.ConnectionState = {})); } (IConnection)); var IDetachable = {}; // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(IDetachable, "__esModule", { value: true }); var IDictionary = {}; // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(IDictionary, "__esModule", { value: true }); var IDisposable = {}; // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(IDisposable, "__esModule", { value: true }); var IEventListener = {}; // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(IEventListener, "__esModule", { value: true }); var IEventSource = {}; // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(IEventSource, "__esModule", { value: true }); var IErrorMessages = {}; Object.defineProperty(IErrorMessages, "__esModule", { value: true }); var ITimer = {}; // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(ITimer, "__esModule", { value: true }); var IWebsocketMessageFormatter = {}; // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(IWebsocketMessageFormatter, "__esModule", { value: true }); var List$1 = {}; // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. Object.defineProperty(List$1, "__esModule", { value: true }); List$1.List = void 0; const Error_js_1$4 = _Error; class List { constructor(list) { this.privSubscriptionIdCounter = 0; this.privAddSubscriptions = {}; this.privRemoveSubscriptions = {}; this.privDisposedSubscriptions = {}; this.privDisposeReason = null; this.privList = []; // copy the list rather than taking as is. if (list) { for (const item of list) { this.privList.push(item); } } } get(itemIndex) { this.throwIfDisposed(); return this.privList[itemIndex]; } first() { return this.get(0); } last() { return this.get(this.length() - 1); } add(item) { this.throwIfDisposed(); this.insertAt(this.privList.length, item); } insertAt(index, item) { this.throwIfDisposed(); if (index === 0) { this.privList.unshift(item); } else if (index === this.privList.length) { this.privList.push(item); } else { this.privList.splice(index, 0, item); } this.triggerSubscriptions(this.privAddSubscriptions); } removeFirst() { this.throwIfDisposed(); return this.removeAt(0); } removeLast() { this.throwIfDisposed(); return this.removeAt(this.length() - 1); } removeAt(index) { this.throwIfDisposed(); return this.remove(index, 1)[0]; } remove(index, count) { this.throwIfDisposed(); const removedElements = this.privList.splice(index, count); this.triggerSubscriptions(this.privRemoveSubscriptions); return removedElements; } clear() { this.throwIfDisposed(); this.remove(0, this.length()); } length() { this.throwIfDisposed(); return this.privList.length; } onAdded(addedCallback) { this.throwIfDisposed(); const subscriptionId = this.privSubscriptionIdCounter++; this.privAddSubscriptions[subscriptionId] = addedCallback; return { detach: () => { delete this.privAddSubscriptions[subscriptionId]; return Promise.resolve(); }, }; } onRemoved(removedCallback) { this.throwIfDisposed(); const subscriptionId = this.privSubscriptionIdCounter++; this.privRemoveSubscriptions[subscriptionId] = removedCallback; return { detach: () => { delete this.privRemoveSubscriptions[subscriptionId]; return Promise.resolve(); }, }; } onDisposed(disposedCallback) { this.throwIfDisposed(); const subscriptionId = this.privSubscriptionIdCounter++; this.privDisposedSubscriptions[subscriptionId] = disposedCallback; return { detach: () => { delete this.privDisposedSubscriptions[subscriptionId]; return Promise.resolve(); }, }; } join(seperator) { this.throwIfDisposed(); return this.privList.join(seperator); } toArray() { const cloneCopy = Array(); this.privList.forEach((val) => { cloneCopy.push(val); }); return cloneCopy;