@webwriter/code
Version:
Write and run code as a code cell. Supports several languages (HTML, JavaScript/TypeScript, Python, Java, WebAssembly).
1,468 lines (1,459 loc) • 10.3 MB
JavaScript
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __knownSymbol = (name2, symbol) => (symbol = Symbol[name2]) ? symbol : Symbol.for("Symbol." + name2);
var __typeError = (msg2) => {
throw TypeError(msg2);
};
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __require = /* @__PURE__ */ ((x3) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x3, {
get: (a5, b4) => (typeof require !== "undefined" ? require : a5)[b4]
}) : x3)(function(x3) {
if (typeof require !== "undefined") return require.apply(this, arguments);
throw Error('Dynamic require of "' + x3 + '" is not supported');
});
var __glob = (map) => (path) => {
var fn = map[path];
if (fn) return fn();
throw new Error("Module not found in bundle: " + path);
};
var __esm = (fn, res) => function __init() {
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
};
var __commonJS = (cb, mod) => function __require2() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __export = (target, all) => {
for (var name2 in all)
__defProp(target, name2, { get: all[name2], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __decoratorStart = (base2) => [, , , __create(base2?.[__knownSymbol("metadata")] ?? null)];
var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
var __decoratorContext = (kind, name2, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name: name2, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
var __runInitializers = (array, flags, self2, value) => {
for (var i9 = 0, fns = array[flags >> 1], n11 = fns && fns.length; i9 < n11; i9++) flags & 1 ? fns[i9].call(self2) : value = fns[i9].call(self2, value);
return value;
};
var __decorateElement = (array, flags, name2, decorators, target, extra) => {
var fn, it, done, ctx, access, k3 = flags & 7, s6 = !!(flags & 8), p4 = !!(flags & 16);
var j3 = k3 > 3 ? array.length + 1 : k3 ? s6 ? 1 : 2 : 0, key = __decoratorStrings[k3 + 5];
var initializers = k3 > 3 && (array[j3 - 1] = []), extraInitializers = array[j3] || (array[j3] = []);
var desc = k3 && (!p4 && !s6 && (target = target.prototype), k3 < 5 && (k3 > 3 || !p4) && __getOwnPropDesc(k3 < 4 ? target : { get [name2]() {
return __privateGet(this, extra);
}, set [name2](x3) {
return __privateSet(this, extra, x3);
} }, name2));
k3 ? p4 && k3 < 4 && __name(extra, (k3 > 2 ? "set " : k3 > 1 ? "get " : "") + name2) : __name(target, name2);
for (var i9 = decorators.length - 1; i9 >= 0; i9--) {
ctx = __decoratorContext(k3, name2, done = {}, array[3], extraInitializers);
if (k3) {
ctx.static = s6, ctx.private = p4, access = ctx.access = { has: p4 ? (x3) => __privateIn(target, x3) : (x3) => name2 in x3 };
if (k3 ^ 3) access.get = p4 ? (x3) => (k3 ^ 1 ? __privateGet : __privateMethod)(x3, target, k3 ^ 4 ? extra : desc.get) : (x3) => x3[name2];
if (k3 > 2) access.set = p4 ? (x3, y4) => __privateSet(x3, target, y4, k3 ^ 4 ? extra : desc.set) : (x3, y4) => x3[name2] = y4;
}
it = (0, decorators[i9])(k3 ? k3 < 4 ? p4 ? extra : desc[key] : k3 > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
if (k3 ^ 4 || it === void 0) __expectFn(it) && (k3 > 4 ? initializers.unshift(it) : k3 ? p4 ? extra = it : desc[key] = it : target = it);
else if (typeof it !== "object" || it === null) __typeError("Object expected");
else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
}
return k3 || __decoratorMetadata(array, target), desc && __defProp(target, name2, desc), p4 ? k3 ^ 4 ? extra : desc : target;
};
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
var __accessCheck = (obj, member, msg2) => member.has(obj) || __typeError("Cannot " + msg2);
var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
// (disabled):fs
var require_fs = __commonJS({
"(disabled):fs"() {
}
});
// (disabled):path
var require_path = __commonJS({
"(disabled):path"() {
}
});
// (disabled):os
var require_os = __commonJS({
"(disabled):os"() {
}
});
// (disabled):crypto
var require_crypto = __commonJS({
"(disabled):crypto"() {
}
});
// (disabled):buffer
var require_buffer = __commonJS({
"(disabled):buffer"() {
}
});
// (disabled):node_modules/source-map-support/source-map-support.js
var require_source_map_support = __commonJS({
"(disabled):node_modules/source-map-support/source-map-support.js"() {
}
});
// (disabled):inspector
var require_inspector = __commonJS({
"(disabled):inspector"() {
}
});
// node_modules/typescript/lib/typescript.js
var require_typescript = __commonJS({
"node_modules/typescript/lib/typescript.js"(exports, module) {
"use strict";
var __spreadArray = exports && exports.__spreadArray || function(to, from, pack) {
if (pack || arguments.length === 2) for (var i9 = 0, l6 = from.length, ar; i9 < l6; i9++) {
if (ar || !(i9 in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i9);
ar[i9] = from[i9];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
var __assign = exports && exports.__assign || function() {
__assign = Object.assign || function(t9) {
for (var s6, i9 = 1, n11 = arguments.length; i9 < n11; i9++) {
s6 = arguments[i9];
for (var p4 in s6) if (Object.prototype.hasOwnProperty.call(s6, p4))
t9[p4] = s6[p4];
}
return t9;
};
return __assign.apply(this, arguments);
};
var __makeTemplateObject = exports && exports.__makeTemplateObject || function(cooked, raw) {
if (Object.defineProperty) {
Object.defineProperty(cooked, "raw", { value: raw });
} else {
cooked.raw = raw;
}
return cooked;
};
var __generator = exports && exports.__generator || function(thisArg, body) {
var _3 = { label: 0, sent: function() {
if (t9[0] & 1) throw t9[1];
return t9[1];
}, trys: [], ops: [] }, f6, y4, t9, g3;
return g3 = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g3[Symbol.iterator] = function() {
return this;
}), g3;
function verb(n11) {
return function(v3) {
return step([n11, v3]);
};
}
function step(op) {
if (f6) throw new TypeError("Generator is already executing.");
while (g3 && (g3 = 0, op[0] && (_3 = 0)), _3) try {
if (f6 = 1, y4 && (t9 = op[0] & 2 ? y4["return"] : op[0] ? y4["throw"] || ((t9 = y4["return"]) && t9.call(y4), 0) : y4.next) && !(t9 = t9.call(y4, op[1])).done) return t9;
if (y4 = 0, t9) op = [op[0] & 2, t9.value];
switch (op[0]) {
case 0:
case 1:
t9 = op;
break;
case 4:
_3.label++;
return { value: op[1], done: false };
case 5:
_3.label++;
y4 = op[1];
op = [0];
continue;
case 7:
op = _3.ops.pop();
_3.trys.pop();
continue;
default:
if (!(t9 = _3.trys, t9 = t9.length > 0 && t9[t9.length - 1]) && (op[0] === 6 || op[0] === 2)) {
_3 = 0;
continue;
}
if (op[0] === 3 && (!t9 || op[1] > t9[0] && op[1] < t9[3])) {
_3.label = op[1];
break;
}
if (op[0] === 6 && _3.label < t9[1]) {
_3.label = t9[1];
t9 = op;
break;
}
if (t9 && _3.label < t9[2]) {
_3.label = t9[2];
_3.ops.push(op);
break;
}
if (t9[2]) _3.ops.pop();
_3.trys.pop();
continue;
}
op = body.call(thisArg, _3);
} catch (e13) {
op = [6, e13];
y4 = 0;
} finally {
f6 = t9 = 0;
}
if (op[0] & 5) throw op[1];
return { value: op[0] ? op[1] : void 0, done: true };
}
};
var __rest = exports && exports.__rest || function(s6, e13) {
var t9 = {};
for (var p4 in s6) if (Object.prototype.hasOwnProperty.call(s6, p4) && e13.indexOf(p4) < 0)
t9[p4] = s6[p4];
if (s6 != null && typeof Object.getOwnPropertySymbols === "function")
for (var i9 = 0, p4 = Object.getOwnPropertySymbols(s6); i9 < p4.length; i9++) {
if (e13.indexOf(p4[i9]) < 0 && Object.prototype.propertyIsEnumerable.call(s6, p4[i9]))
t9[p4[i9]] = s6[p4[i9]];
}
return t9;
};
var __extends = exports && exports.__extends || /* @__PURE__ */ (function() {
var extendStatics = function(d4, b4) {
extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d5, b5) {
d5.__proto__ = b5;
} || function(d5, b5) {
for (var p4 in b5) if (Object.prototype.hasOwnProperty.call(b5, p4)) d5[p4] = b5[p4];
};
return extendStatics(d4, b4);
};
return function(d4, b4) {
if (typeof b4 !== "function" && b4 !== null)
throw new TypeError("Class extends value " + String(b4) + " is not a constructor or null");
extendStatics(d4, b4);
function __() {
this.constructor = d4;
}
d4.prototype = b4 === null ? Object.create(b4) : (__.prototype = b4.prototype, new __());
};
})();
var ts;
(function(ts2) {
ts2.versionMajorMinor = "4.9";
ts2.version = "".concat(ts2.versionMajorMinor, ".5");
var Comparison;
(function(Comparison2) {
Comparison2[Comparison2["LessThan"] = -1] = "LessThan";
Comparison2[Comparison2["EqualTo"] = 0] = "EqualTo";
Comparison2[Comparison2["GreaterThan"] = 1] = "GreaterThan";
})(Comparison = ts2.Comparison || (ts2.Comparison = {}));
var NativeCollections;
(function(NativeCollections2) {
var globals = typeof globalThis !== "undefined" ? globalThis : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : void 0;
function tryGetNativeMap() {
var gMap = globals === null || globals === void 0 ? void 0 : globals.Map;
var constructor = typeof gMap !== "undefined" && "entries" in gMap.prototype && new gMap([[0, 0]]).size === 1 ? gMap : void 0;
if (!constructor) {
throw new Error("No compatible Map implementation found.");
}
return constructor;
}
NativeCollections2.tryGetNativeMap = tryGetNativeMap;
function tryGetNativeSet() {
var gSet = globals === null || globals === void 0 ? void 0 : globals.Set;
var constructor = typeof gSet !== "undefined" && "entries" in gSet.prototype && new gSet([0]).size === 1 ? gSet : void 0;
if (!constructor) {
throw new Error("No compatible Set implementation found.");
}
return constructor;
}
NativeCollections2.tryGetNativeSet = tryGetNativeSet;
})(NativeCollections || (NativeCollections = {}));
ts2.Map = NativeCollections.tryGetNativeMap();
ts2.Set = NativeCollections.tryGetNativeSet();
})(ts || (ts = {}));
var ts;
(function(ts2) {
function getIterator(iterable) {
if (iterable) {
if (isArray(iterable))
return arrayIterator(iterable);
if (iterable instanceof ts2.Map)
return iterable.entries();
if (iterable instanceof ts2.Set)
return iterable.values();
throw new Error("Iteration not supported.");
}
}
ts2.getIterator = getIterator;
ts2.emptyArray = [];
ts2.emptyMap = new ts2.Map();
ts2.emptySet = new ts2.Set();
function length(array) {
return array ? array.length : 0;
}
ts2.length = length;
function forEach(array, callback) {
if (array) {
for (var i9 = 0; i9 < array.length; i9++) {
var result = callback(array[i9], i9);
if (result) {
return result;
}
}
}
return void 0;
}
ts2.forEach = forEach;
function forEachRight(array, callback) {
if (array) {
for (var i9 = array.length - 1; i9 >= 0; i9--) {
var result = callback(array[i9], i9);
if (result) {
return result;
}
}
}
return void 0;
}
ts2.forEachRight = forEachRight;
function firstDefined(array, callback) {
if (array === void 0) {
return void 0;
}
for (var i9 = 0; i9 < array.length; i9++) {
var result = callback(array[i9], i9);
if (result !== void 0) {
return result;
}
}
return void 0;
}
ts2.firstDefined = firstDefined;
function firstDefinedIterator(iter, callback) {
while (true) {
var iterResult = iter.next();
if (iterResult.done) {
return void 0;
}
var result = callback(iterResult.value);
if (result !== void 0) {
return result;
}
}
}
ts2.firstDefinedIterator = firstDefinedIterator;
function reduceLeftIterator(iterator, f6, initial) {
var result = initial;
if (iterator) {
for (var step = iterator.next(), pos = 0; !step.done; step = iterator.next(), pos++) {
result = f6(result, step.value, pos);
}
}
return result;
}
ts2.reduceLeftIterator = reduceLeftIterator;
function zipWith(arrayA, arrayB, callback) {
var result = [];
ts2.Debug.assertEqual(arrayA.length, arrayB.length);
for (var i9 = 0; i9 < arrayA.length; i9++) {
result.push(callback(arrayA[i9], arrayB[i9], i9));
}
return result;
}
ts2.zipWith = zipWith;
function zipToIterator(arrayA, arrayB) {
ts2.Debug.assertEqual(arrayA.length, arrayB.length);
var i9 = 0;
return {
next: function() {
if (i9 === arrayA.length) {
return { value: void 0, done: true };
}
i9++;
return { value: [arrayA[i9 - 1], arrayB[i9 - 1]], done: false };
}
};
}
ts2.zipToIterator = zipToIterator;
function zipToMap(keys2, values) {
ts2.Debug.assert(keys2.length === values.length);
var map2 = new ts2.Map();
for (var i9 = 0; i9 < keys2.length; ++i9) {
map2.set(keys2[i9], values[i9]);
}
return map2;
}
ts2.zipToMap = zipToMap;
function intersperse(input, element) {
if (input.length <= 1) {
return input;
}
var result = [];
for (var i9 = 0, n11 = input.length; i9 < n11; i9++) {
if (i9)
result.push(element);
result.push(input[i9]);
}
return result;
}
ts2.intersperse = intersperse;
function every(array, callback) {
if (array) {
for (var i9 = 0; i9 < array.length; i9++) {
if (!callback(array[i9], i9)) {
return false;
}
}
}
return true;
}
ts2.every = every;
function find2(array, predicate, startIndex) {
if (array === void 0)
return void 0;
for (var i9 = startIndex !== null && startIndex !== void 0 ? startIndex : 0; i9 < array.length; i9++) {
var value = array[i9];
if (predicate(value, i9)) {
return value;
}
}
return void 0;
}
ts2.find = find2;
function findLast(array, predicate, startIndex) {
if (array === void 0)
return void 0;
for (var i9 = startIndex !== null && startIndex !== void 0 ? startIndex : array.length - 1; i9 >= 0; i9--) {
var value = array[i9];
if (predicate(value, i9)) {
return value;
}
}
return void 0;
}
ts2.findLast = findLast;
function findIndex(array, predicate, startIndex) {
if (array === void 0)
return -1;
for (var i9 = startIndex !== null && startIndex !== void 0 ? startIndex : 0; i9 < array.length; i9++) {
if (predicate(array[i9], i9)) {
return i9;
}
}
return -1;
}
ts2.findIndex = findIndex;
function findLastIndex(array, predicate, startIndex) {
if (array === void 0)
return -1;
for (var i9 = startIndex !== null && startIndex !== void 0 ? startIndex : array.length - 1; i9 >= 0; i9--) {
if (predicate(array[i9], i9)) {
return i9;
}
}
return -1;
}
ts2.findLastIndex = findLastIndex;
function findMap(array, callback) {
for (var i9 = 0; i9 < array.length; i9++) {
var result = callback(array[i9], i9);
if (result) {
return result;
}
}
return ts2.Debug.fail();
}
ts2.findMap = findMap;
function contains2(array, value, equalityComparer) {
if (equalityComparer === void 0) {
equalityComparer = equateValues;
}
if (array) {
for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
var v3 = array_1[_i];
if (equalityComparer(v3, value)) {
return true;
}
}
}
return false;
}
ts2.contains = contains2;
function arraysEqual(a5, b4, equalityComparer) {
if (equalityComparer === void 0) {
equalityComparer = equateValues;
}
return a5.length === b4.length && a5.every(function(x3, i9) {
return equalityComparer(x3, b4[i9]);
});
}
ts2.arraysEqual = arraysEqual;
function indexOfAnyCharCode(text, charCodes, start) {
for (var i9 = start || 0; i9 < text.length; i9++) {
if (contains2(charCodes, text.charCodeAt(i9))) {
return i9;
}
}
return -1;
}
ts2.indexOfAnyCharCode = indexOfAnyCharCode;
function countWhere(array, predicate) {
var count = 0;
if (array) {
for (var i9 = 0; i9 < array.length; i9++) {
var v3 = array[i9];
if (predicate(v3, i9)) {
count++;
}
}
}
return count;
}
ts2.countWhere = countWhere;
function filter(array, f6) {
if (array) {
var len = array.length;
var i9 = 0;
while (i9 < len && f6(array[i9]))
i9++;
if (i9 < len) {
var result = array.slice(0, i9);
i9++;
while (i9 < len) {
var item = array[i9];
if (f6(item)) {
result.push(item);
}
i9++;
}
return result;
}
}
return array;
}
ts2.filter = filter;
function filterMutate(array, f6) {
var outIndex = 0;
for (var i9 = 0; i9 < array.length; i9++) {
if (f6(array[i9], i9, array)) {
array[outIndex] = array[i9];
outIndex++;
}
}
array.length = outIndex;
}
ts2.filterMutate = filterMutate;
function clear(array) {
array.length = 0;
}
ts2.clear = clear;
function map(array, f6) {
var result;
if (array) {
result = [];
for (var i9 = 0; i9 < array.length; i9++) {
result.push(f6(array[i9], i9));
}
}
return result;
}
ts2.map = map;
function mapIterator(iter, mapFn) {
return {
next: function() {
var iterRes = iter.next();
return iterRes.done ? iterRes : { value: mapFn(iterRes.value), done: false };
}
};
}
ts2.mapIterator = mapIterator;
function sameMap(array, f6) {
if (array) {
for (var i9 = 0; i9 < array.length; i9++) {
var item = array[i9];
var mapped = f6(item, i9);
if (item !== mapped) {
var result = array.slice(0, i9);
result.push(mapped);
for (i9++; i9 < array.length; i9++) {
result.push(f6(array[i9], i9));
}
return result;
}
}
}
return array;
}
ts2.sameMap = sameMap;
function flatten2(array) {
var result = [];
for (var _i = 0, array_2 = array; _i < array_2.length; _i++) {
var v3 = array_2[_i];
if (v3) {
if (isArray(v3)) {
addRange2(result, v3);
} else {
result.push(v3);
}
}
}
return result;
}
ts2.flatten = flatten2;
function flatMap(array, mapfn) {
var result;
if (array) {
for (var i9 = 0; i9 < array.length; i9++) {
var v3 = mapfn(array[i9], i9);
if (v3) {
if (isArray(v3)) {
result = addRange2(result, v3);
} else {
result = append(result, v3);
}
}
}
}
return result || ts2.emptyArray;
}
ts2.flatMap = flatMap;
function flatMapToMutable(array, mapfn) {
var result = [];
if (array) {
for (var i9 = 0; i9 < array.length; i9++) {
var v3 = mapfn(array[i9], i9);
if (v3) {
if (isArray(v3)) {
addRange2(result, v3);
} else {
result.push(v3);
}
}
}
}
return result;
}
ts2.flatMapToMutable = flatMapToMutable;
function flatMapIterator(iter, mapfn) {
var first2 = iter.next();
if (first2.done) {
return ts2.emptyIterator;
}
var currentIter = getIterator2(first2.value);
return {
next: function() {
while (true) {
var currentRes = currentIter.next();
if (!currentRes.done) {
return currentRes;
}
var iterRes = iter.next();
if (iterRes.done) {
return iterRes;
}
currentIter = getIterator2(iterRes.value);
}
}
};
function getIterator2(x3) {
var res = mapfn(x3);
return res === void 0 ? ts2.emptyIterator : isArray(res) ? arrayIterator(res) : res;
}
}
ts2.flatMapIterator = flatMapIterator;
function sameFlatMap(array, mapfn) {
var result;
if (array) {
for (var i9 = 0; i9 < array.length; i9++) {
var item = array[i9];
var mapped = mapfn(item, i9);
if (result || item !== mapped || isArray(mapped)) {
if (!result) {
result = array.slice(0, i9);
}
if (isArray(mapped)) {
addRange2(result, mapped);
} else {
result.push(mapped);
}
}
}
}
return result || array;
}
ts2.sameFlatMap = sameFlatMap;
function mapAllOrFail(array, mapFn) {
var result = [];
for (var i9 = 0; i9 < array.length; i9++) {
var mapped = mapFn(array[i9], i9);
if (mapped === void 0) {
return void 0;
}
result.push(mapped);
}
return result;
}
ts2.mapAllOrFail = mapAllOrFail;
function mapDefined(array, mapFn) {
var result = [];
if (array) {
for (var i9 = 0; i9 < array.length; i9++) {
var mapped = mapFn(array[i9], i9);
if (mapped !== void 0) {
result.push(mapped);
}
}
}
return result;
}
ts2.mapDefined = mapDefined;
function mapDefinedIterator(iter, mapFn) {
return {
next: function() {
while (true) {
var res = iter.next();
if (res.done) {
return res;
}
var value = mapFn(res.value);
if (value !== void 0) {
return { value, done: false };
}
}
}
};
}
ts2.mapDefinedIterator = mapDefinedIterator;
function mapDefinedEntries(map2, f6) {
if (!map2) {
return void 0;
}
var result = new ts2.Map();
map2.forEach(function(value, key) {
var entry = f6(key, value);
if (entry !== void 0) {
var newKey = entry[0], newValue = entry[1];
if (newKey !== void 0 && newValue !== void 0) {
result.set(newKey, newValue);
}
}
});
return result;
}
ts2.mapDefinedEntries = mapDefinedEntries;
function mapDefinedValues(set, f6) {
if (set) {
var result_1 = new ts2.Set();
set.forEach(function(value) {
var newValue = f6(value);
if (newValue !== void 0) {
result_1.add(newValue);
}
});
return result_1;
}
}
ts2.mapDefinedValues = mapDefinedValues;
function getOrUpdate(map2, key, callback) {
if (map2.has(key)) {
return map2.get(key);
}
var value = callback();
map2.set(key, value);
return value;
}
ts2.getOrUpdate = getOrUpdate;
function tryAddToSet(set, value) {
if (!set.has(value)) {
set.add(value);
return true;
}
return false;
}
ts2.tryAddToSet = tryAddToSet;
ts2.emptyIterator = { next: function() {
return { value: void 0, done: true };
} };
function singleIterator(value) {
var done = false;
return {
next: function() {
var wasDone = done;
done = true;
return wasDone ? { value: void 0, done: true } : { value, done: false };
}
};
}
ts2.singleIterator = singleIterator;
function spanMap(array, keyfn, mapfn) {
var result;
if (array) {
result = [];
var len = array.length;
var previousKey = void 0;
var key = void 0;
var start = 0;
var pos = 0;
while (start < len) {
while (pos < len) {
var value = array[pos];
key = keyfn(value, pos);
if (pos === 0) {
previousKey = key;
} else if (key !== previousKey) {
break;
}
pos++;
}
if (start < pos) {
var v3 = mapfn(array.slice(start, pos), previousKey, start, pos);
if (v3) {
result.push(v3);
}
start = pos;
}
previousKey = key;
pos++;
}
}
return result;
}
ts2.spanMap = spanMap;
function mapEntries(map2, f6) {
if (!map2) {
return void 0;
}
var result = new ts2.Map();
map2.forEach(function(value, key) {
var _a5 = f6(key, value), newKey = _a5[0], newValue = _a5[1];
result.set(newKey, newValue);
});
return result;
}
ts2.mapEntries = mapEntries;
function some(array, predicate) {
if (array) {
if (predicate) {
for (var _i = 0, array_3 = array; _i < array_3.length; _i++) {
var v3 = array_3[_i];
if (predicate(v3)) {
return true;
}
}
} else {
return array.length > 0;
}
}
return false;
}
ts2.some = some;
function getRangesWhere(arr, pred, cb) {
var start;
for (var i9 = 0; i9 < arr.length; i9++) {
if (pred(arr[i9])) {
start = start === void 0 ? i9 : start;
} else {
if (start !== void 0) {
cb(start, i9);
start = void 0;
}
}
}
if (start !== void 0)
cb(start, arr.length);
}
ts2.getRangesWhere = getRangesWhere;
function concatenate(array1, array2) {
if (!some(array2))
return array1;
if (!some(array1))
return array2;
return __spreadArray(__spreadArray([], array1, true), array2, true);
}
ts2.concatenate = concatenate;
function selectIndex(_3, i9) {
return i9;
}
function indicesOf(array) {
return array.map(selectIndex);
}
ts2.indicesOf = indicesOf;
function deduplicateRelational(array, equalityComparer, comparer) {
var indices = indicesOf(array);
stableSortIndices(array, indices, comparer);
var last2 = array[indices[0]];
var deduplicated = [indices[0]];
for (var i9 = 1; i9 < indices.length; i9++) {
var index = indices[i9];
var item = array[index];
if (!equalityComparer(last2, item)) {
deduplicated.push(index);
last2 = item;
}
}
deduplicated.sort();
return deduplicated.map(function(i10) {
return array[i10];
});
}
function deduplicateEquality(array, equalityComparer) {
var result = [];
for (var _i = 0, array_4 = array; _i < array_4.length; _i++) {
var item = array_4[_i];
pushIfUnique(result, item, equalityComparer);
}
return result;
}
function deduplicate(array, equalityComparer, comparer) {
return array.length === 0 ? [] : array.length === 1 ? array.slice() : comparer ? deduplicateRelational(array, equalityComparer, comparer) : deduplicateEquality(array, equalityComparer);
}
ts2.deduplicate = deduplicate;
function deduplicateSorted(array, comparer) {
if (array.length === 0)
return ts2.emptyArray;
var last2 = array[0];
var deduplicated = [last2];
for (var i9 = 1; i9 < array.length; i9++) {
var next = array[i9];
switch (comparer(next, last2)) {
// equality comparison
case true:
// relational comparison
// falls through
case 0:
continue;
case -1:
return ts2.Debug.fail("Array is unsorted.");
}
deduplicated.push(last2 = next);
}
return deduplicated;
}
function createSortedArray() {
return [];
}
ts2.createSortedArray = createSortedArray;
function insertSorted(array, insert2, compare2, allowDuplicates) {
if (array.length === 0) {
array.push(insert2);
return true;
}
var insertIndex = binarySearch(array, insert2, identity, compare2);
if (insertIndex < 0) {
array.splice(~insertIndex, 0, insert2);
return true;
}
if (allowDuplicates) {
array.splice(insertIndex, 0, insert2);
return true;
}
return false;
}
ts2.insertSorted = insertSorted;
function sortAndDeduplicate(array, comparer, equalityComparer) {
return deduplicateSorted(sort(array, comparer), equalityComparer || comparer || compareStringsCaseSensitive);
}
ts2.sortAndDeduplicate = sortAndDeduplicate;
function arrayIsSorted(array, comparer) {
if (array.length < 2)
return true;
var prevElement = array[0];
for (var _i = 0, _a5 = array.slice(1); _i < _a5.length; _i++) {
var element = _a5[_i];
if (comparer(prevElement, element) === 1) {
return false;
}
prevElement = element;
}
return true;
}
ts2.arrayIsSorted = arrayIsSorted;
function arrayIsEqualTo(array1, array2, equalityComparer) {
if (equalityComparer === void 0) {
equalityComparer = equateValues;
}
if (!array1 || !array2) {
return array1 === array2;
}
if (array1.length !== array2.length) {
return false;
}
for (var i9 = 0; i9 < array1.length; i9++) {
if (!equalityComparer(array1[i9], array2[i9], i9)) {
return false;
}
}
return true;
}
ts2.arrayIsEqualTo = arrayIsEqualTo;
function compact(array) {
var result;
if (array) {
for (var i9 = 0; i9 < array.length; i9++) {
var v3 = array[i9];
if (result || !v3) {
if (!result) {
result = array.slice(0, i9);
}
if (v3) {
result.push(v3);
}
}
}
}
return result || array;
}
ts2.compact = compact;
function relativeComplement(arrayA, arrayB, comparer) {
if (!arrayB || !arrayA || arrayB.length === 0 || arrayA.length === 0)
return arrayB;
var result = [];
loopB: for (var offsetA = 0, offsetB = 0; offsetB < arrayB.length; offsetB++) {
if (offsetB > 0) {
ts2.Debug.assertGreaterThanOrEqual(
comparer(arrayB[offsetB], arrayB[offsetB - 1]),
0
/* Comparison.EqualTo */
);
}
loopA: for (var startA = offsetA; offsetA < arrayA.length; offsetA++) {
if (offsetA > startA) {
ts2.Debug.assertGreaterThanOrEqual(
comparer(arrayA[offsetA], arrayA[offsetA - 1]),
0
/* Comparison.EqualTo */
);
}
switch (comparer(arrayB[offsetB], arrayA[offsetA])) {
case -1:
result.push(arrayB[offsetB]);
continue loopB;
case 0:
continue loopB;
case 1:
continue loopA;
}
}
}
return result;
}
ts2.relativeComplement = relativeComplement;
function sum(array, prop) {
var result = 0;
for (var _i = 0, array_5 = array; _i < array_5.length; _i++) {
var v3 = array_5[_i];
result += v3[prop];
}
return result;
}
ts2.sum = sum;
function append(to, value) {
if (value === void 0)
return to;
if (to === void 0)
return [value];
to.push(value);
return to;
}
ts2.append = append;
function combine(xs, ys) {
if (xs === void 0)
return ys;
if (ys === void 0)
return xs;
if (isArray(xs))
return isArray(ys) ? concatenate(xs, ys) : append(xs, ys);
if (isArray(ys))
return append(ys, xs);
return [xs, ys];
}
ts2.combine = combine;
function toOffset(array, offset3) {
return offset3 < 0 ? array.length + offset3 : offset3;
}
function addRange2(to, from, start, end) {
if (from === void 0 || from.length === 0)
return to;
if (to === void 0)
return from.slice(start, end);
start = start === void 0 ? 0 : toOffset(from, start);
end = end === void 0 ? from.length : toOffset(from, end);
for (var i9 = start; i9 < end && i9 < from.length; i9++) {
if (from[i9] !== void 0) {
to.push(from[i9]);
}
}
return to;
}
ts2.addRange = addRange2;
function pushIfUnique(array, toAdd, equalityComparer) {
if (contains2(array, toAdd, equalityComparer)) {
return false;
} else {
array.push(toAdd);
return true;
}
}
ts2.pushIfUnique = pushIfUnique;
function appendIfUnique(array, toAdd, equalityComparer) {
if (array) {
pushIfUnique(array, toAdd, equalityComparer);
return array;
} else {
return [toAdd];
}
}
ts2.appendIfUnique = appendIfUnique;
function stableSortIndices(array, indices, comparer) {
indices.sort(function(x3, y4) {
return comparer(array[x3], array[y4]) || compareValues(x3, y4);
});
}
function sort(array, comparer) {
return array.length === 0 ? array : array.slice().sort(comparer);
}
ts2.sort = sort;
function arrayIterator(array) {
var i9 = 0;
return { next: function() {
if (i9 === array.length) {
return { value: void 0, done: true };
} else {
i9++;
return { value: array[i9 - 1], done: false };
}
} };
}
ts2.arrayIterator = arrayIterator;
function arrayReverseIterator(array) {
var i9 = array.length;
return {
next: function() {
if (i9 === 0) {
return { value: void 0, done: true };
} else {
i9--;
return { value: array[i9], done: false };
}
}
};
}
ts2.arrayReverseIterator = arrayReverseIterator;
function stableSort(array, comparer) {
var indices = indicesOf(array);
stableSortIndices(array, indices, comparer);
return indices.map(function(i9) {
return array[i9];
});
}
ts2.stableSort = stableSort;
function rangeEquals(array1, array2, pos, end) {
while (pos < end) {
if (array1[pos] !== array2[pos]) {
return false;
}
pos++;
}
return true;
}
ts2.rangeEquals = rangeEquals;
function elementAt(array, offset3) {
if (array) {
offset3 = toOffset(array, offset3);
if (offset3 < array.length) {
return array[offset3];
}
}
return void 0;
}
ts2.elementAt = elementAt;
function firstOrUndefined(array) {
return array === void 0 || array.length === 0 ? void 0 : array[0];
}
ts2.firstOrUndefined = firstOrUndefined;
function first(array) {
ts2.Debug.assert(array.length !== 0);
return array[0];
}
ts2.first = first;
function lastOrUndefined(array) {
return array === void 0 || array.length === 0 ? void 0 : array[array.length - 1];
}
ts2.lastOrUndefined = lastOrUndefined;
function last(array) {
ts2.Debug.assert(array.length !== 0);
return array[array.length - 1];
}
ts2.last = last;
function singleOrUndefined(array) {
return array && array.length === 1 ? array[0] : void 0;
}
ts2.singleOrUndefined = singleOrUndefined;
function single(array) {
return ts2.Debug.checkDefined(singleOrUndefined(array));
}
ts2.single = single;
function singleOrMany(array) {
return array && array.length === 1 ? array[0] : array;
}
ts2.singleOrMany = singleOrMany;
function replaceElement(array, index, value) {
var result = array.slice(0);
result[index] = value;
return result;
}
ts2.replaceElement = replaceElement;
function binarySearch(array, value, keySelector, keyComparer, offset3) {
return binarySearchKey(array, keySelector(value), keySelector, keyComparer, offset3);
}
ts2.binarySearch = binarySearch;
function binarySearchKey(array, key, keySelector, keyComparer, offset3) {
if (!some(array)) {
return -1;
}
var low = offset3 || 0;
var high = array.length - 1;
while (low <= high) {
var middle = low + (high - low >> 1);
var midKey = keySelector(array[middle], middle);
switch (keyComparer(midKey, key)) {
case -1:
low = middle + 1;
break;
case 0:
return middle;
case 1:
high = middle - 1;
break;
}
}
return ~low;
}
ts2.binarySearchKey = binarySearchKey;
function reduceLeft(array, f6, initial, start, count) {
if (array && array.length > 0) {
var size3 = array.length;
if (size3 > 0) {
var pos = start === void 0 || start < 0 ? 0 : start;
var end = count === void 0 || pos + count > size3 - 1 ? size3 - 1 : pos + count;
var result = void 0;
if (arguments.length <= 2) {
result = array[pos];
pos++;
} else {
result = initial;
}
while (pos <= end) {
result = f6(result, array[pos], pos);
pos++;
}
return result;
}
}
return initial;
}
ts2.reduceLeft = reduceLeft;
var hasOwnProperty = Object.prototype.hasOwnProperty;
function hasProperty(map2, key) {
return hasOwnProperty.call(map2, key);
}
ts2.hasProperty = hasProperty;
function getProperty(map2, key) {
return hasOwnProperty.call(map2, key) ? map2[key] : void 0;
}
ts2.getProperty = getProperty;
function getOwnKeys(map2) {
var keys2 = [];
for (var key in map2) {
if (hasOwnProperty.call(map2, key)) {
keys2.push(key);
}
}
return keys2;
}
ts2.getOwnKeys = getOwnKeys;
function getAllKeys(obj) {
var result = [];
do {
var names2 = Object.getOwnPropertyNames(obj);
for (var _i = 0, names_1 = names2; _i < names_1.length; _i++) {
var name2 = names_1[_i];
pushIfUnique(result, name2);
}
} while (obj = Object.getPrototypeOf(obj));
return result;
}
ts2.getAllKeys = getAllKeys;
function getOwnValues(collection) {
var values = [];
for (var key in collection) {
if (hasOwnProperty.call(collection, key)) {
values.push(collection[key]);
}
}
return values;
}
ts2.getOwnValues = getOwnValues;
var _entries = Object.entries || (function(obj) {
var keys2 = getOwnKeys(obj);
var result = Array(keys2.length);
for (var i9 = 0; i9 < keys2.length; i9++) {
result[i9] = [keys2[i9], obj[keys2[i9]]];
}
return result;
});
function getEntries(obj) {
return obj ? _entries(obj) : [];
}
ts2.getEntries = getEntries;
function arrayOf(count, f6) {
var result = new Array(count);
for (var i9 = 0; i9 < count; i9++) {
result[i9] = f6(i9);
}
return result;
}
ts2.arrayOf = arrayOf;
function arrayFrom(iterator, map2) {
var result = [];
for (var iterResult = iterator.next(); !iterResult.done; iterResult = iterator.next()) {
result.push(map2 ? map2(iterResult.value) : iterResult.value);
}
return result;
}
ts2.arrayFrom = arrayFrom;
function assign(t9) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
for (var _a5 = 0, args_1 = args; _a5 < args_1.length; _a5++) {
var arg = args_1[_a5];
if (arg === void 0)
continue;
for (var p4 in arg) {
if (hasProperty(arg, p4)) {
t9[p4] = arg[p4];
}
}
}
return t9;
}
ts2.assign = assign;
function equalOwnProperties(left, right, equalityComparer) {
if (equalityComparer === void 0) {
equalityComparer = equateValues;
}
if (left === right)
return true;
if (!left || !right)
return false;
for (var key in left) {
if (hasOwnProperty.call(left, key)) {
if (!hasOwnProperty.call(right, key))
return false;
if (!equalityComparer(left[key], right[key]))
return false;
}
}
for (var key in right) {
if (hasOwnProperty.call(right, key)) {
if (!hasOwnProperty.call(left, key))
return false;
}
}
return true;
}
ts2.equalOwnProperties = equalOwnProperties;
function arrayToMap(array, makeKey, makeValue) {
if (makeValue === void 0) {
makeValue = identity;
}
var result = new ts2.Map();
for (var _i = 0, array_6 = array; _i < array_6.length; _i++) {
var value = array_6[_i];
var key = makeKey(value);
if (key !== void 0)
result.set(key, makeValue(value));
}
return result;
}
ts2.arrayToMap = arrayToMap;
function arrayToNumericMap(array, makeKey, makeValue) {
if (makeValue === void 0) {
makeValue = identity;
}
var result = [];
for (var _i = 0, array_7 = array; _i < array_7.length; _i++) {
var value = array_7[_i];
result[makeKey(value)] = makeValue(value);
}
return result;
}
ts2.arrayToNumericMap = arrayToNumericMap;
function arrayToMultiMap(values, makeKey, makeValue) {
if (makeValue === void 0) {
makeValue = identity;
}
var result = createMultiMap();
for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {
var value = values_1[_i];
result.add(makeKey(value), makeValue(value));
}
return result;
}
ts2.arrayToMultiMap = arrayToMultiMap;
function group(values, getGroupId, resultSelector) {
if (resultSelector === void 0) {
resultSelector = identity;
}
return arrayFrom(arrayToMultiMap(values, getGroupId).values(), resultSelector);
}
ts2.group = group;
function clone(object) {
var result = {};
for (var id4 in object) {
if (hasOwnProperty.call(object, id4)) {
result[id4] = object[id4];
}
}
return result;
}
ts2.clone = clone;
function extend(first2, second) {
var result = {};
for (var id4 in second) {
if (hasOwnProperty.call(second, id4)) {
result[id4] = second[id4];
}
}
for (var id4 in first2) {
if (hasOwnProperty.call(first2, id4)) {
result[id4] = first2[id4];
}
}
return result;
}
ts2.extend = extend;
function copyProperties(first2, second) {
for (var id4 in second) {
if (hasOwnProperty.call(second, id4)) {
first2[id4] = second[id4];
}