/******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 289); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __extends; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __assign; }); /* unused harmony export __rest */ /* unused harmony export __decorate */ /* unused harmony export __param */ /* unused harmony export __metadata */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __awaiter; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __generator; }); /* unused harmony export __createBinding */ /* unused harmony export __exportStar */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return __values; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return __read; }); /* unused harmony export __spread */ /* unused harmony export __spreadArrays */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return __spreadArray; }); /* unused harmony export __await */ /* unused harmony export __asyncGenerator */ /* unused harmony export __asyncDelegator */ /* unused harmony export __asyncValues */ /* unused harmony export __makeTemplateObject */ /* unused harmony export __importStar */ /* unused harmony export __importDefault */ /* unused harmony export __classPrivateFieldGet */ /* unused harmony export __classPrivateFieldSet */ /*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ /* global Reflect, Promise */ var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; function __extends(d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } var __assign = function() { __assign = Object.assign || function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; } return __assign.apply(this, arguments); } function __rest(s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; } function __decorate(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; } function __param(paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } } function __metadata(metadataKey, metadataValue) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); } function __awaiter(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } function __generator(thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { 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; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } } var __createBinding = Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); function __exportStar(m, o) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); } function __values(o) { var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; if (m) return m.call(o); if (o && typeof o.length === "number") return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); } function __read(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; } /** @deprecated */ function __spread() { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; } /** @deprecated */ function __spreadArrays() { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; } function __spreadArray(to, from) { for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) to[j] = from[i]; return to; } function __await(v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } function __asyncGenerator(thisArg, _arguments, generator) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var g = generator.apply(thisArg, _arguments || []), i, q = []; return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function fulfill(value) { resume("next", value); } function reject(value) { resume("throw", value); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } } function __asyncDelegator(o) { var i, p; return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } } function __asyncValues(o) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator], i; return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } } function __makeTemplateObject(cooked, raw) { if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } return cooked; }; var __setModuleDefault = Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }; function __importStar(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; } function __importDefault(mod) { return (mod && mod.__esModule) ? mod : { default: mod }; } function __classPrivateFieldGet(receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); } function __classPrivateFieldSet(receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; } /***/ }), /* 1 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return MongoDriver; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return MongoQueryRunner; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return MongoEntityManager; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return MongoRepository; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return PostgresDriver; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AuroraDataApiDriver; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return CockroachDriver; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return AuroraDataApiPostgresDriver; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return SqlServerDriver; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return SapDriver; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return MysqlDriver; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return OracleDriver; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return SqliteDriver; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return BetterSqlite3Driver; }); /** * Dummy driver classes for replacement via `package.json` in browser builds. * Using those classes reduces the build size by one third. * * If we don't include those dummy classes (and just disable the driver import * with `false` in `package.json`) typeorm will throw an error on runtime and * during webpack builds even if those driver are not used. */ /** * DO NOT IMPORT THIS CLASS - * This is a dummy class for replacement via `package.json` in browser builds */ var MongoDriver = /** @class */ (function () { function MongoDriver() { } return MongoDriver; }()); /** * DO NOT IMPORT THIS CLASS - * This is a dummy class for replacement via `package.json` in browser builds */ var MongoQueryRunner = /** @class */ (function () { function MongoQueryRunner() { } return MongoQueryRunner; }()); /** * DO NOT IMPORT THIS CLASS - * This is a dummy class for replacement via `package.json` in browser builds */ var MongoEntityManager = /** @class */ (function () { function MongoEntityManager() { } return MongoEntityManager; }()); /** * DO NOT IMPORT THIS CLASS - * This is a dummy class for replacement via `package.json` in browser builds */ var MongoRepository = /** @class */ (function () { function MongoRepository() { } return MongoRepository; }()); /** * DO NOT IMPORT THIS CLASS - * This is a dummy class for replacement via `package.json` in browser builds */ var PostgresDriver = /** @class */ (function () { function PostgresDriver() { } return PostgresDriver; }()); /** * DO NOT IMPORT THIS CLASS - * This is a dummy class for replacement via `package.json` in browser builds */ var AuroraDataApiDriver = /** @class */ (function () { function AuroraDataApiDriver() { } return AuroraDataApiDriver; }()); /** * DO NOT IMPORT THIS CLASS - * This is a dummy class for replacement via `package.json` in browser builds */ var CockroachDriver = /** @class */ (function () { function CockroachDriver() { } return CockroachDriver; }()); /** * DO NOT IMPORT THIS CLASS - * This is a dummy class for replacement via `package.json` in browser builds */ var AuroraDataApiPostgresDriver = /** @class */ (function () { function AuroraDataApiPostgresDriver() { } return AuroraDataApiPostgresDriver; }()); /** * DO NOT IMPORT THIS CLASS - * This is a dummy class for replacement via `package.json` in browser builds */ var SqlServerDriver = /** @class */ (function () { function SqlServerDriver() { } return SqlServerDriver; }()); /** * DO NOT IMPORT THIS CLASS - * This is a dummy class for replacement via `package.json` in browser builds */ var SapDriver = /** @class */ (function () { function SapDriver() { } return SapDriver; }()); /** * DO NOT IMPORT THIS CLASS - * This is a dummy class for replacement via `package.json` in browser builds */ var MysqlDriver = /** @class */ (function () { function MysqlDriver() { } return MysqlDriver; }()); /** * DO NOT IMPORT THIS CLASS - * This is a dummy class for replacement via `package.json` in browser builds */ var OracleDriver = /** @class */ (function () { function OracleDriver() { } return OracleDriver; }()); /** * DO NOT IMPORT THIS CLASS - * This is a dummy class for replacement via `package.json` in browser builds */ var SqliteDriver = /** @class */ (function () { function SqliteDriver() { } return SqliteDriver; }()); /** * DO NOT IMPORT THIS CLASS - * This is a dummy class for replacement via `package.json` in browser builds */ var BetterSqlite3Driver = /** @class */ (function () { function BetterSqlite3Driver() { } return BetterSqlite3Driver; }()); //# sourceMappingURL=BrowserDisabledDriversDummy.js.map /***/ }), /* 2 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Query; }); /** * This class stores query and its parameters */ var Query = /** @class */ (function () { function Query(query, parameters) { this.query = query; this.parameters = parameters; } return Query; }()); //# sourceMappingURL=Query.js.map /***/ }), /* 3 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(11); var core = __webpack_require__(26); var hide = __webpack_require__(52); var redefine = __webpack_require__(45); var ctx = __webpack_require__(63); var PROTOTYPE = 'prototype'; var $export = function (type, name, source) { var IS_FORCED = type & $export.F; var IS_GLOBAL = type & $export.G; var IS_STATIC = type & $export.S; var IS_PROTO = type & $export.P; var IS_BIND = type & $export.B; var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); var key, own, out, exp; if (IS_GLOBAL) source = name; for (key in source) { // contains in native own = !IS_FORCED && target && target[key] !== undefined; // export native or passed out = (own ? target : source)[key]; // bind timers to global for call from export context exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; // extend global if (target) redefine(target, key, out, type & $export.U); // export if (exports[key] != out) hide(exports, key, exp); if (IS_PROTO && expProto[key] != out) expProto[key] = out; } }; global.core = core; // type bitmap $export.F = 1; // forced $export.G = 2; // global $export.S = 4; // static $export.P = 8; // proto $export.B = 16; // bind $export.W = 32; // wrap $export.U = 64; // safe $export.R = 128; // real proto method for `library` module.exports = $export; /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function get() { return m[k]; } }); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); var __exportStar = this && this.__exportStar || function (m, exports) { for (var p in m) { if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); } }; Object.defineProperty(exports, "__esModule", { value: true }); __exportStar(__webpack_require__(33), exports); __exportStar(__webpack_require__(256), exports); __exportStar(__webpack_require__(79), exports); __exportStar(__webpack_require__(146), exports); __exportStar(__webpack_require__(497), exports); __exportStar(__webpack_require__(111), exports); __exportStar(__webpack_require__(499), exports); __exportStar(__webpack_require__(258), exports); __exportStar(__webpack_require__(500), exports); __exportStar(__webpack_require__(502), exports); __exportStar(__webpack_require__(504), exports); __exportStar(__webpack_require__(506), exports); __exportStar(__webpack_require__(199), exports); __exportStar(__webpack_require__(507), exports); __exportStar(__webpack_require__(80), exports); __exportStar(__webpack_require__(99), exports); __exportStar(__webpack_require__(509), exports); __exportStar(__webpack_require__(161), exports); __exportStar(__webpack_require__(200), exports); __exportStar(__webpack_require__(260), exports); __exportStar(__webpack_require__(261), exports); __exportStar(__webpack_require__(262), exports); __exportStar(__webpack_require__(69), exports); __exportStar(__webpack_require__(252), exports); __exportStar(__webpack_require__(263), exports); __exportStar(__webpack_require__(512), exports); __exportStar(__webpack_require__(198), exports); __exportStar(__webpack_require__(254), exports); __exportStar(__webpack_require__(59), exports); __exportStar(__webpack_require__(514), exports); __exportStar(__webpack_require__(515), exports); __exportStar(__webpack_require__(516), exports); __exportStar(__webpack_require__(84), exports); __exportStar(__webpack_require__(265), exports); __exportStar(__webpack_require__(517), exports); __exportStar(__webpack_require__(518), exports); __exportStar(__webpack_require__(266), exports); __exportStar(__webpack_require__(255), exports); __exportStar(__webpack_require__(197), exports); __exportStar(__webpack_require__(15), exports); __exportStar(__webpack_require__(56), exports); __exportStar(__webpack_require__(520), exports); __exportStar(__webpack_require__(42), exports); __exportStar(__webpack_require__(521), exports); __exportStar(__webpack_require__(267), exports); __exportStar(__webpack_require__(207), exports); __exportStar(__webpack_require__(257), exports); __exportStar(__webpack_require__(268), exports); __exportStar(__webpack_require__(18), exports); __exportStar(__webpack_require__(85), exports); __exportStar(__webpack_require__(259), exports); __exportStar(__webpack_require__(30), exports); __exportStar(__webpack_require__(54), exports); __exportStar(__webpack_require__(269), exports); /***/ }), /* 5 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Table; }); /* harmony import */ var _TableColumn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25); /* harmony import */ var _TableIndex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38); /* harmony import */ var _TableForeignKey__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48); /* harmony import */ var _util_TableUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(121); /* harmony import */ var _TableUnique__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(31); /* harmony import */ var _TableCheck__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(43); /* harmony import */ var _TableExclusion__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60); /** * Table in the database represented in this class. */ var Table = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function Table(options) { /** * Table columns. */ this.columns = []; /** * Table indices. */ this.indices = []; /** * Table foreign keys. */ this.foreignKeys = []; /** * Table unique constraints. */ this.uniques = []; /** * Table check constraints. */ this.checks = []; /** * Table exclusion constraints. */ this.exclusions = []; /** * Indicates if table was just created. * This is needed, for example to check if we need to skip primary keys creation * for new tables. */ this.justCreated = false; if (options) { this.name = options.name; if (options.columns) this.columns = options.columns.map(function (column) { return new _TableColumn__WEBPACK_IMPORTED_MODULE_0__[/* TableColumn */ "a"](column); }); if (options.indices) this.indices = options.indices.map(function (index) { return new _TableIndex__WEBPACK_IMPORTED_MODULE_1__[/* TableIndex */ "a"](index); }); if (options.foreignKeys) this.foreignKeys = options.foreignKeys.map(function (foreignKey) { return new _TableForeignKey__WEBPACK_IMPORTED_MODULE_2__[/* TableForeignKey */ "a"](foreignKey); }); if (options.uniques) this.uniques = options.uniques.map(function (unique) { return new _TableUnique__WEBPACK_IMPORTED_MODULE_4__[/* TableUnique */ "a"](unique); }); if (options.checks) this.checks = options.checks.map(function (check) { return new _TableCheck__WEBPACK_IMPORTED_MODULE_5__[/* TableCheck */ "a"](check); }); if (options.exclusions) this.exclusions = options.exclusions.map(function (exclusion) { return new _TableExclusion__WEBPACK_IMPORTED_MODULE_6__[/* TableExclusion */ "a"](exclusion); }); if (options.justCreated !== undefined) this.justCreated = options.justCreated; this.engine = options.engine; } } Object.defineProperty(Table.prototype, "primaryColumns", { // ------------------------------------------------------------------------- // Accessors // ------------------------------------------------------------------------- get: function () { return this.columns.filter(function (column) { return column.isPrimary; }); }, enumerable: false, configurable: true }); // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Clones this table to a new table with all properties cloned. */ Table.prototype.clone = function () { return new Table({ name: this.name, columns: this.columns.map(function (column) { return column.clone(); }), indices: this.indices.map(function (constraint) { return constraint.clone(); }), foreignKeys: this.foreignKeys.map(function (constraint) { return constraint.clone(); }), uniques: this.uniques.map(function (constraint) { return constraint.clone(); }), checks: this.checks.map(function (constraint) { return constraint.clone(); }), exclusions: this.exclusions.map(function (constraint) { return constraint.clone(); }), justCreated: this.justCreated, engine: this.engine, }); }; /** * Add column and creates its constraints. */ Table.prototype.addColumn = function (column) { this.columns.push(column); }; /** * Remove column and its constraints. */ Table.prototype.removeColumn = function (column) { var foundColumn = this.columns.find(function (c) { return c.name === column.name; }); if (foundColumn) this.columns.splice(this.columns.indexOf(foundColumn), 1); }; /** * Adds unique constraint. */ Table.prototype.addUniqueConstraint = function (uniqueConstraint) { this.uniques.push(uniqueConstraint); if (uniqueConstraint.columnNames.length === 1) { var uniqueColumn = this.columns.find(function (column) { return column.name === uniqueConstraint.columnNames[0]; }); if (uniqueColumn) uniqueColumn.isUnique = true; } }; /** * Removes unique constraint. */ Table.prototype.removeUniqueConstraint = function (removedUnique) { var foundUnique = this.uniques.find(function (unique) { return unique.name === removedUnique.name; }); if (foundUnique) { this.uniques.splice(this.uniques.indexOf(foundUnique), 1); if (foundUnique.columnNames.length === 1) { var uniqueColumn = this.columns.find(function (column) { return column.name === foundUnique.columnNames[0]; }); if (uniqueColumn) uniqueColumn.isUnique = false; } } }; /** * Adds check constraint. */ Table.prototype.addCheckConstraint = function (checkConstraint) { this.checks.push(checkConstraint); }; /** * Removes check constraint. */ Table.prototype.removeCheckConstraint = function (removedCheck) { var foundCheck = this.checks.find(function (check) { return check.name === removedCheck.name; }); if (foundCheck) { this.checks.splice(this.checks.indexOf(foundCheck), 1); } }; /** * Adds exclusion constraint. */ Table.prototype.addExclusionConstraint = function (exclusionConstraint) { this.exclusions.push(exclusionConstraint); }; /** * Removes exclusion constraint. */ Table.prototype.removeExclusionConstraint = function (removedExclusion) { var foundExclusion = this.exclusions.find(function (exclusion) { return exclusion.name === removedExclusion.name; }); if (foundExclusion) { this.exclusions.splice(this.exclusions.indexOf(foundExclusion), 1); } }; /** * Adds foreign keys. */ Table.prototype.addForeignKey = function (foreignKey) { this.foreignKeys.push(foreignKey); }; /** * Removes foreign key. */ Table.prototype.removeForeignKey = function (removedForeignKey) { var fk = this.foreignKeys.find(function (foreignKey) { return foreignKey.name === removedForeignKey.name; }); if (fk) this.foreignKeys.splice(this.foreignKeys.indexOf(fk), 1); }; /** * Adds index. */ Table.prototype.addIndex = function (index, isMysql) { if (isMysql === void 0) { isMysql = false; } this.indices.push(index); // in Mysql unique indices and unique constraints are the same thing // if index is unique and have only one column, we mark this column as unique if (index.columnNames.length === 1 && index.isUnique && isMysql) { var column = this.columns.find(function (c) { return c.name === index.columnNames[0]; }); if (column) column.isUnique = true; } }; /** * Removes index. */ Table.prototype.removeIndex = function (tableIndex, isMysql) { if (isMysql === void 0) { isMysql = false; } var index = this.indices.find(function (index) { return index.name === tableIndex.name; }); if (index) { this.indices.splice(this.indices.indexOf(index), 1); // in Mysql unique indices and unique constraints are the same thing // if index is unique and have only one column, we move `unique` attribute from its column if (index.columnNames.length === 1 && index.isUnique && isMysql) { var column_1 = this.columns.find(function (c) { return c.name === index.columnNames[0]; }); if (column_1) column_1.isUnique = this.indices.some(function (ind) { return ind.columnNames.length === 1 && ind.columnNames[0] === column_1.name && !!index.isUnique; }); } } }; Table.prototype.findColumnByName = function (name) { return this.columns.find(function (column) { return column.name === name; }); }; /** * Returns all column indices. */ Table.prototype.findColumnIndices = function (column) { return this.indices.filter(function (index) { return !!index.columnNames.find(function (columnName) { return columnName === column.name; }); }); }; /** * Returns all column foreign keys. */ Table.prototype.findColumnForeignKeys = function (column) { return this.foreignKeys.filter(function (foreignKey) { return !!foreignKey.columnNames.find(function (columnName) { return columnName === column.name; }); }); }; /** * Returns all column uniques. */ Table.prototype.findColumnUniques = function (column) { return this.uniques.filter(function (unique) { return !!unique.columnNames.find(function (columnName) { return columnName === column.name; }); }); }; /** * Returns all column checks. */ Table.prototype.findColumnChecks = function (column) { return this.checks.filter(function (check) { return !!check.columnNames.find(function (columnName) { return columnName === column.name; }); }); }; // ------------------------------------------------------------------------- // Static Methods // ------------------------------------------------------------------------- /** * Creates table from a given entity metadata. */ Table.create = function (entityMetadata, driver) { var options = { name: driver.buildTableName(entityMetadata.tableName, entityMetadata.schema, entityMetadata.database), engine: entityMetadata.engine, columns: entityMetadata.columns .filter(function (column) { return column; }) .map(function (column) { return _util_TableUtils__WEBPACK_IMPORTED_MODULE_3__[/* TableUtils */ "a"].createTableColumnOptions(column, driver); }), indices: entityMetadata.indices .filter(function (index) { return index.synchronize === true; }) .map(function (index) { return _TableIndex__WEBPACK_IMPORTED_MODULE_1__[/* TableIndex */ "a"].create(index); }), uniques: entityMetadata.uniques.map(function (unique) { return _TableUnique__WEBPACK_IMPORTED_MODULE_4__[/* TableUnique */ "a"].create(unique); }), checks: entityMetadata.checks.map(function (check) { return _TableCheck__WEBPACK_IMPORTED_MODULE_5__[/* TableCheck */ "a"].create(check); }), exclusions: entityMetadata.exclusions.map(function (exclusion) { return _TableExclusion__WEBPACK_IMPORTED_MODULE_6__[/* TableExclusion */ "a"].create(exclusion); }), }; return new Table(options); }; return Table; }()); //# sourceMappingURL=Table.js.map /***/ }), /* 6 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(Buffer) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return OrmUtils; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); var OrmUtils = /** @class */ (function () { function OrmUtils() { } // ------------------------------------------------------------------------- // Public methods // ------------------------------------------------------------------------- /** * Chunks array into peaces. */ OrmUtils.chunk = function (array, size) { return Array.from(Array(Math.ceil(array.length / size)), function (_, i) { return array.slice(i * size, i * size + size); }); }; OrmUtils.splitClassesAndStrings = function (clsesAndStrings) { return [ (clsesAndStrings).filter(function (cls) { return typeof cls !== "string"; }), (clsesAndStrings).filter(function (str) { return typeof str === "string"; }), ]; }; OrmUtils.groupBy = function (array, propertyCallback) { return array.reduce(function (groupedArray, value) { var key = propertyCallback(value); var grouped = groupedArray.find(function (i) { return i.id === key; }); if (!grouped) { grouped = { id: key, items: [] }; groupedArray.push(grouped); } grouped.items.push(value); return groupedArray; }, []); }; OrmUtils.uniq = function (array, criteriaOrProperty) { return array.reduce(function (uniqueArray, item) { var found = false; if (criteriaOrProperty instanceof Function) { var itemValue_1 = criteriaOrProperty(item); found = !!uniqueArray.find(function (uniqueItem) { return criteriaOrProperty(uniqueItem) === itemValue_1; }); } else if (typeof criteriaOrProperty === "string") { found = !!uniqueArray.find(function (uniqueItem) { return uniqueItem[criteriaOrProperty] === item[criteriaOrProperty]; }); } else { found = uniqueArray.indexOf(item) !== -1; } if (!found) uniqueArray.push(item); return uniqueArray; }, []); }; OrmUtils.isObject = function (item) { return (item && typeof item === "object" && !Array.isArray(item)); }; /** * Deep Object.assign. * * @see http://stackoverflow.com/a/34749873 */ OrmUtils.mergeDeep = function (target) { var _a, _b; var sources = []; for (var _i = 1; _i < arguments.length; _i++) { sources[_i - 1] = arguments[_i]; } if (!sources.length) return target; var source = sources.shift(); if (this.isObject(target) && this.isObject(source)) { for (var key in source) { var value = source[key]; if (key === "__proto__" || value instanceof Promise) continue; if (this.isObject(value) && !(value instanceof Map) && !(value instanceof Set) && !(value instanceof Date) && !(value instanceof Buffer) && !(value instanceof RegExp)) { if (!target[key]) Object.assign(target, (_a = {}, _a[key] = Object.create(Object.getPrototypeOf(value)), _a)); this.mergeDeep(target[key], value); } else { Object.assign(target, (_b = {}, _b[key] = value, _b)); } } } return this.mergeDeep.apply(this, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __spreadArray */ "f"])([target], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(sources))); }; /** * Deep compare objects. * * @see http://stackoverflow.com/a/1144249 */ OrmUtils.deepCompare = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var i, l, leftChain, rightChain; if (arguments.length < 1) { return true; // Die silently? Don't know how to handle such case, please help... // throw "Need two or more arguments to compare"; } for (i = 1, l = arguments.length; i < l; i++) { leftChain = []; // Todo: this can be cached rightChain = []; if (!this.compare2Objects(leftChain, rightChain, arguments[0], arguments[i])) { return false; } } return true; }; /** * Check if two entity-id-maps are the same */ OrmUtils.compareIds = function (firstId, secondId) { if (firstId === undefined || firstId === null || secondId === undefined || secondId === null) return false; // Optimized version for the common case if (((typeof firstId.id === "string" && typeof secondId.id === "string") || (typeof firstId.id === "number" && typeof secondId.id === "number")) && Object.keys(firstId).length === 1 && Object.keys(secondId).length === 1) { return firstId.id === secondId.id; } return OrmUtils.deepCompare(firstId, secondId); }; /** * Transforms given value into boolean value. */ OrmUtils.toBoolean = function (value) { if (typeof value === "boolean") return value; if (typeof value === "string") return value === "true" || value === "1"; if (typeof value === "number") return value > 0; return false; }; /** * Composes an object from the given array of keys and values. */ OrmUtils.zipObject = function (keys, values) { return keys.reduce(function (object, column, index) { object[column] = values[index]; return object; }, {}); }; /** * Compares two arrays. */ OrmUtils.isArraysEqual = function (arr1, arr2) { if (arr1.length !== arr2.length) return false; return arr1.every(function (element) { return arr2.indexOf(element) !== -1; }); }; // ------------------------------------------------------------------------- // Private methods // ------------------------------------------------------------------------- OrmUtils.compare2Objects = function (leftChain, rightChain, x, y) { var p; // remember that NaN === NaN returns false // and isNaN(undefined) returns true if (Number.isNaN(x) && Number.isNaN(y)) return true; // Compare primitives and functions. // Check if both arguments link to the same object. // Especially useful on the step where we compare prototypes if (x === y) return true; // Unequal, but either is null or undefined (use case: jsonb comparasion) // PR #3776, todo: add tests if (x === null || y === null || x === undefined || y === undefined) return false; // Fix the buffer compare bug. // See: https://github.com/typeorm/typeorm/issues/3654 if ((typeof x.equals === "function" || x.equals instanceof Function) && x.equals(y)) return true; // Works in case when functions are created in constructor. // Comparing dates is a common scenario. Another built-ins? // We can even handle functions passed across iframes if ((typeof x === "function" && typeof y === "function") || (x instanceof Date && y instanceof Date) || (x instanceof RegExp && y instanceof RegExp) || (x instanceof String && y instanceof String) || (x instanceof Number && y instanceof Number)) return x.toString() === y.toString(); // At last checking prototypes as good as we can if (!(x instanceof Object && y instanceof Object)) return false; if (x.isPrototypeOf(y) || y.isPrototypeOf(x)) return false; if (x.constructor !== y.constructor) return false; if (x.prototype !== y.prototype) return false; // Check for infinitive linking loops if (leftChain.indexOf(x) > -1 || rightChain.indexOf(y) > -1) return false; // Quick checking of one object being a subset of another. // todo: cache the structure of arguments[0] for performance for (p in y) { if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) { return false; } else if (typeof y[p] !== typeof x[p]) { return false; } } for (p in x) { if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) { return false; } else if (typeof y[p] !== typeof x[p]) { return false; } switch (typeof (x[p])) { case "object": case "function": leftChain.push(x); rightChain.push(y); if (!this.compare2Objects(leftChain, rightChain, x[p], y[p])) { return false; } leftChain.pop(); rightChain.pop(); break; default: if (x[p] !== y[p]) { return false; } break; } } return true; }; return OrmUtils; }()); //# sourceMappingURL=OrmUtils.js.map /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(98).Buffer)) /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Helper = void 0; /** * Eine Klasse mit häufig genutzten, nützlichen Funktionen */ const JsonHelper_1 = __webpack_require__(192); class Helper { /** * Testet, ob eine Variable null oder Undefined ist * * @param variable * @returns {boolean} */ static isNull(variable, ...args) { return Helper.isAllNull(...arguments); } static isAllNull(...args) { for (let i = 0; i < args.length; i++) { if (!(args[i] === null || args[i] === undefined)) { return false; } } return true; } static isAtLeastOneNull(...args) { return !Helper.isAllNull(...args); } /** * Testet, ob eine Variable nicht (null oder undefined) ist * * @param variable * @returns {boolean} */ static isNotNull(variable, ...args) { return Helper.isAllNotNull(...arguments); } static isAllNotNull(...args) { for (let i = 0; i < args.length; i++) { if ((args[i] === null || args[i] === undefined)) { return false; } } return true; } static isAtLeastOneNotNull(...args) { return !Helper.isAllNull(...args); } /** * Gibt den ersten übergebenen Wert, der nicht (null oder undefined) ist, zurück * * @param val1 * @param val2 * @param args * @returns {*} */ static nonNull(val1, val2, ...args) { for (let i = 0; i < arguments.length; i++) { if (Helper.isNotNull(arguments[i])) { return arguments[i]; } } return null; } /** * Testet, ob der übergebene Index am Objekt gesetzt ist. Werden mehrere Indexes übergeben, so wird getestet, * ob die "Index-Kette" gesetzt ist. * Bsp.: * Helper.isSet({"index1":{"index2":value}}, "index1", "index2") ist wahr * * @param object * @param indexes * @returns {*} */ static isSet(object, ...indexes) { if (Helper.isNotNull(object)) { if (indexes.length === 0) { return true; } return (Helper.isSet.apply(null, [object[indexes[0]]].concat(indexes.slice(1)))); } return false; } /** * Testet, ob ein Wert null oder Leerstring, bzw nur aus leerzeichend bestehender String ist * * @param value * @returns {boolean} */ static empty(value) { return (Helper.isNull(value) || (typeof value === 'string' && value.trim() === "")); } /** * Testet, ob ein Wert NICHT (null oder Leerstring, bzw nur aus leerzeichend bestehender String ist) * * @param value * @returns {boolean} */ static notEmpty(value) { return !Helper.empty(value); } static arrayToObject(array, indexFunction) { let obj = {}; array.forEach(val => { obj[indexFunction(val)] = val; }); return obj; } /** * Deepcopies JSON * * @param obj * @returns {*} */ static cloneJson(obj) { return JsonHelper_1.JsonHelper.deepCopy(obj); } /** * Erstellt ein FormData-Object von JSON-Data. Nützlich für fetch * * @param obj * @returns {FormData} */ static formDataFromObject(obj) { let formData = new FormData(); for (let k in obj) { formData.set(k, obj[k]); } return formData; } static shuffleArray(array) { let currentIndex = array.length, temporaryValue, randomIndex; // While there remain elements to shuffle... while (0 !== currentIndex) { // Pick a remaining element... randomIndex = Math.floor(Math.random() * currentIndex); currentIndex -= 1; // And swap it with the current element. temporaryValue = array[currentIndex]; array[currentIndex] = array[randomIndex]; array[randomIndex] = temporaryValue; } return array; } static padZero(n, width, z) { z = Helper.nonNull(z, '0'); n = n + ''; width = Helper.nonNull(width, 1); return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n; } static deepEqual(a, b) { if (a === b) { return true; } if (typeof a === "object" && typeof b === "object") { let keysOfB = Object.keys(b); let childrenDeepEqual = Object.keys(a).every((key) => { let index = keysOfB.indexOf(key); if (index < 0) { return false; } keysOfB.splice(index, 1); return Helper.deepEqual(a[key], b[key]); }); return (childrenDeepEqual && keysOfB.length === 0); } return false; } //Ältere evtl nützliche Funktionen static htmlspecialcharsDecode(text) { const map = { '&': '&', '&': "&", '<': '<', '>': '>', '"': '"', ''': "'", '’': "’", '‘': "‘", '–': "–", '—': "—", '…': "…", '”': '”' }; if (Helper.isNotNull(text) && typeof text.replace === "function") { return text.replace(/\&[\w\d\#]{2,5}\;/g, function (m) { return map[m]; }); } return text; } /** * Inverts the key-Values for an object * @param obj * @return {*} */ static invertKeyValues(obj) { let new_obj = {}; for (let prop in obj) { if (obj.hasOwnProperty(prop)) { new_obj[obj[prop]] = prop; } } return new_obj; } static asyncForEach(array, callback, runAsyncronous) { return __awaiter(this, void 0, void 0, function* () { runAsyncronous = Helper.nonNull(runAsyncronous, false); let validPromises = []; for (let i = 0; i < array.length; i++) { let index = i; let currentPromise = Promise.resolve(callback(array[index], index, array)); if (!runAsyncronous) { yield currentPromise; } validPromises.push(currentPromise); } return Promise.all(validPromises); }); } static escapeRegExp(str) { return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string } static objectForEach(object, callback) { Object.keys(object).forEach(key => { callback(object[key], key, object); }); } static toArray(object) { let res = []; for (let k in object) { res.push(object[k]); } return res; } static imageUrlIsEmpty(url) { return (Helper.isNull(url) || url.trim() === "" || url.trim() === "data:"); } static newPromiseWithResolve() { let resolver = null; let rejecter = null; let promise = new Promise((resolve, reject) => { resolver = resolve; rejecter = reject; }); promise["resolve"] = resolver; promise["reject"] = rejecter; return promise; } static isMobileApp() { return (typeof device !== "undefined" && device.platform !== "browser"); } static toSnakeCase(camelCase) { return camelCase.replace(/([A-Z])/g, function (find, something, position) { return ((position > 0) ? "_" : "") + find[0].toLowerCase(); }); } static wait(timeout, result) { return __awaiter(this, void 0, void 0, function* () { return new Promise(r => { setTimeout(() => { r(result); }, timeout); }); }); } static timeout(time, otherPromise, timeoutResult) { return __awaiter(this, void 0, void 0, function* () { return Promise.race([otherPromise, Helper.wait(time).then(() => { if (timeoutResult === undefined) { return Promise.reject(); } else { return timeoutResult; } })]); }); } } exports.Helper = Helper; //# sourceMappingURL=Helper.js.map /***/ }), /* 8 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return BroadcasterResult; }); /** * Broadcaster execution result - promises executed by operations and number of executed listeners and subscribers. */ var BroadcasterResult = /** @class */ (function () { function BroadcasterResult() { /** * Number of executed listeners and subscribers. */ this.count = 0; /** * Promises returned by listeners and subscribers which needs to be awaited. */ this.promises = []; } return BroadcasterResult; }()); //# sourceMappingURL=BroadcasterResult.js.map /***/ }), /* 9 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return FindOperator; }); /** * Find Operator used in Find Conditions. */ var FindOperator = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function FindOperator(type, value, useParameter, multipleParameters, getSql, objectLiteralParameters) { if (useParameter === void 0) { useParameter = true; } if (multipleParameters === void 0) { multipleParameters = false; } this._type = type; this._value = value; this._useParameter = useParameter; this._multipleParameters = multipleParameters; this._getSql = getSql; this._objectLiteralParameters = objectLiteralParameters; } Object.defineProperty(FindOperator.prototype, "useParameter", { // ------------------------------------------------------------------------- // Accessors // ------------------------------------------------------------------------- /** * Indicates if parameter is used or not for this operator. * Extracts final value if value is another find operator. */ get: function () { if (this._value instanceof FindOperator) return this._value.useParameter; return this._useParameter; }, enumerable: false, configurable: true }); Object.defineProperty(FindOperator.prototype, "multipleParameters", { /** * Indicates if multiple parameters must be used for this operator. * Extracts final value if value is another find operator. */ get: function () { if (this._value instanceof FindOperator) return this._value.multipleParameters; return this._multipleParameters; }, enumerable: false, configurable: true }); Object.defineProperty(FindOperator.prototype, "type", { /** * Gets the Type of this FindOperator */ get: function () { return this._type; }, enumerable: false, configurable: true }); Object.defineProperty(FindOperator.prototype, "value", { /** * Gets the final value needs to be used as parameter value. */ get: function () { if (this._value instanceof FindOperator) return this._value.value; return this._value; }, enumerable: false, configurable: true }); Object.defineProperty(FindOperator.prototype, "objectLiteralParameters", { /** * Gets ObjectLiteral parameters. */ get: function () { if (this._value instanceof FindOperator) return this._value.objectLiteralParameters; return this._objectLiteralParameters; }, enumerable: false, configurable: true }); Object.defineProperty(FindOperator.prototype, "child", { /** * Gets the child FindOperator if it exists */ get: function () { if (this._value instanceof FindOperator) return this._value; return undefined; }, enumerable: false, configurable: true }); Object.defineProperty(FindOperator.prototype, "getSql", { /** * Gets the SQL generator */ get: function () { if (this._value instanceof FindOperator) return this._value.getSql; return this._getSql; }, enumerable: false, configurable: true }); return FindOperator; }()); //# sourceMappingURL=FindOperator.js.map /***/ }), /* 10 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return PlatformTools; }); /* unused harmony export EventEmitter */ /* unused harmony export Readable */ /* unused harmony export Writable */ /** * Browser's implementation of the platform-specific tools. * * This file gonna replace PlatformTools for browser environment. * For node.js environment this class is not getting packaged. * Don't use methods of this class in the code, use PlatformTools methods instead. */ var PlatformTools = /** @class */ (function () { function PlatformTools() { } /** * Gets global variable where global stuff can be stored. */ PlatformTools.getGlobalVariable = function () { if (typeof window !== "undefined") { return window; } else { // NativeScript uses global, not window return global; } }; /** * Loads ("require"-s) given file or package. * This operation only supports on node platform */ PlatformTools.load = function (name) { if (this.type === "browser") throw new Error("This option/function is not supported in the browser environment. Failed operation: require(\"" + name + "\")."); return ""; }; /** * Normalizes given path. Does "path.normalize". */ PlatformTools.pathNormalize = function (pathStr) { if (this.type === "browser") throw new Error("This option/function is not supported in the browser environment. Failed operation: path.normalize(\"" + pathStr + "\")."); return ""; }; /** * Gets file extension. Does "path.extname". */ PlatformTools.pathExtname = function (pathStr) { if (this.type === "browser") throw new Error("This option/function is not supported in the browser environment. Failed operation: path.extname(\"" + pathStr + "\")."); return ""; }; /** * Resolved given path. Does "path.resolve". */ PlatformTools.pathResolve = function (pathStr) { if (this.type === "browser") throw new Error("This option/function is not supported in the browser environment. Failed operation: path.resolve(\"" + pathStr + "\")."); return ""; }; /** * Synchronously checks if file exist. Does "fs.existsSync". */ PlatformTools.fileExist = function (pathStr) { if (this.type === "browser") throw new Error("This option/function is not supported in the browser environment. Failed operation: fs.existsSync(\"" + pathStr + "\")."); return false; }; PlatformTools.dotenv = function (pathStr) { if (this.type === "browser") throw new Error("This option/function is not supported in the browser environment. Failed operation: dotenv.config({ path: \"" + pathStr + "\" })."); }; /** * Gets environment variable. */ PlatformTools.getEnvVariable = function (name) { // if (this.type === "browser") // throw new Error(`This option/function is not supported in the browser environment. Failed operation: process.env["${name}"].`); return undefined; }; PlatformTools.readFileSync = function (filename) { if (this.type === "browser") throw new Error("This option/function is not supported in the browser environment. Failed operation: fs.readFileSync(\"" + filename + "\")."); return null; }; PlatformTools.appendFileSync = function (filename, data) { if (this.type === "browser") throw new Error("This option/function is not supported in the browser environment. Failed operation: fs.appendFileSync(\"" + filename + "\")."); }; PlatformTools.writeFile = function (path, data) { if (this.type === "browser") throw new Error("This option/function is not supported in the browser environment. Failed operation: fs.writeFile(\"" + path + "\")."); return Promise.reject(null); }; /** * Highlights sql string to be print in the console. */ PlatformTools.highlightSql = function (sql) { return sql; }; /** * Highlights json string to be print in the console. */ PlatformTools.highlightJson = function (json) { return json; }; /** * Logging functions needed by AdvancedConsoleLogger (but here without chalk) */ PlatformTools.logInfo = function (prefix, info) { console.info(prefix + " ", info); }; PlatformTools.logError = function (prefix, error) { console.error(prefix + " ", error); }; PlatformTools.logWarn = function (prefix, warning) { console.warn(prefix + " ", warning); }; PlatformTools.log = function (message) { console.log(message); }; PlatformTools.warn = function (message) { return message; }; /** * Type of the currently running platform. */ PlatformTools.type = "browser"; return PlatformTools; }()); /** * These classes are needed for stream operations or * in the mongodb driver. Both aren't supported in the browser. */ var EventEmitter = /** @class */ (function () { function EventEmitter() { } return EventEmitter; }()); var Readable = /** @class */ (function () { function Readable() { } return Readable; }()); var Writable = /** @class */ (function () { function Writable() { } return Writable; }()); if (typeof window !== "undefined") { window.Buffer = __webpack_require__(98).Buffer; } // NativeScript uses global, not window if (typeof global !== "undefined") { global.Buffer = __webpack_require__(98).Buffer; } //# sourceMappingURL=BrowserPlatformTools.js.map /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(193))) /***/ }), /* 11 */ /***/ (function(module, exports) { // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self // eslint-disable-next-line no-new-func : Function('return this')(); if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef /***/ }), /* 12 */ /***/ (function(module, exports) { module.exports = function (exec) { try { return !!exec(); } catch (e) { return true; } }; /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(14); module.exports = function (it) { if (!isObject(it)) throw TypeError(it + ' is not an object!'); return it; }; /***/ }), /* 14 */ /***/ (function(module, exports) { module.exports = function (it) { return typeof it === 'object' ? it !== null : typeof it === 'function'; }; /***/ }), /* 15 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Helper = void 0; /** * Eine Klasse mit häufig genutzten, nützlichen Funktionen */ var Translator_1 = __webpack_require__(30); var Helper = /*#__PURE__*/function () { function Helper() { _classCallCheck(this, Helper); } _createClass(Helper, null, [{ key: "isNull", value: /** * Testet, ob eine Variable null oder Undefined ist * * @param variable * @returns {boolean} */ function isNull(variable) { return variable === null || variable === undefined; } /** * Testet, ob eine Variable nicht (null oder undefined) ist * * @param variable * @returns {boolean} */ }, { key: "isNotNull", value: function isNotNull(variable) { return !Helper.isNull(variable); } /** * Gibt den ersten übergebenen Wert, der nicht (null oder undefined) ist, zurück * * @param val1 * @param val2 * @param args * @returns {*} */ }, { key: "nonNull", value: function nonNull(val1, val2) { for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { args[_key - 2] = arguments[_key]; } for (var i = 0; i < arguments.length; i++) { if (Helper.isNotNull(arguments[i])) { return arguments[i]; } } return null; } /** * Testet, ob der übergebene Index am Objekt gesetzt ist. Werden mehrere Indexes übergeben, so wird getestet, * ob die "Index-Kette" gesetzt ist. * Bsp.: * Helper.isSet({"index1":{"index2":value}}, "index1", "index2") ist wahr * * @param object * @param indexes * @returns {*} */ }, { key: "isSet", value: function isSet(object) { if (Helper.isNotNull(object)) { for (var _len2 = arguments.length, indexes = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { indexes[_key2 - 1] = arguments[_key2]; } if (indexes.length === 0) { return true; } return Helper.isSet.apply(null, [object[indexes[0]]].concat(indexes.slice(1))); } return false; } /** * Testet, ob ein Wert null oder Leerstring, bzw nur aus leerzeichend bestehender String ist * * @param value * @returns {boolean} */ }, { key: "empty", value: function empty(value) { return Helper.isNull(value) || typeof value === 'string' && value.trim() === ""; } /** * Testet, ob ein Wert NICHT (null oder Leerstring, bzw nur aus leerzeichend bestehender String ist) * * @param value * @returns {boolean} */ }, { key: "notEmpty", value: function notEmpty(value) { return !Helper.empty(value); } /** * Formatiert ein Date-Object nach der Vorlage von der C-Funktion strftime * * @param sFormat * @param date * @param useUTC * @returns {*|void|string|never} */ }, { key: "strftime", value: function strftime(sFormat, date, useUTC, makePersistentTranslation) { useUTC = Helper.nonNull(useUTC, false); makePersistentTranslation = Helper.nonNull(makePersistentTranslation, true); date = Helper.nonNull(date, new Date()); if (!(date instanceof Date)) date = new Date(date); var nDay = useUTC ? date.getUTCDay() : date.getDay(), nDate = useUTC ? date.getUTCDate() : date.getDate(), nMonth = useUTC ? date.getUTCMonth() : date.getMonth(), nYear = useUTC ? date.getUTCFullYear() : date.getFullYear(), nHour = useUTC ? date.getUTCHours() : date.getHours(), aDays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], aDaysShort = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], aMonths = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], aDayCount = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334], isLeapYear = function isLeapYear() { if ((nYear & 3) !== 0) return false; return nYear % 100 !== 0 || nYear % 400 === 0; }, getThursday = function getThursday() { var target = new Date(date); target.setDate(nDate - (nDay + 6) % 7 + 3); return target; }, zeroPad = function zeroPad(nNum, nPad) { return ('' + (Math.pow(10, nPad) + nNum)).slice(1); }; return sFormat.replace(/%[a-z]/gi, function (sMatch) { return { '%a': makePersistentTranslation ? Translator_1.Translator.makePersistentTranslation(aDaysShort[nDay]).outerHTML : Translator_1.Translator.translate(aDaysShort[nDay]), '%A': makePersistentTranslation ? Translator_1.Translator.makePersistentTranslation(aDays[nDay]).outerHTML : Translator_1.Translator.translate(aDays[nDay]), '%b': makePersistentTranslation ? Translator_1.Translator.makePersistentTranslation(aMonths[nMonth].slice(0, 3)).outerHTML : Translator_1.Translator.translate(aMonths[nMonth].slice(0, 3)), '%B': makePersistentTranslation ? Translator_1.Translator.makePersistentTranslation(aMonths[nMonth]).outerHTML : Translator_1.Translator.translate(aMonths[nMonth]), '%c': date.toUTCString(), '%C': Math.floor(nYear / 100), '%d': zeroPad(nDate, 2), '%e': nDate, '%f': zeroPad(date.getTime() % 1000, 4), '%F': date.toISOString().slice(0, 10), '%G': getThursday().getFullYear(), '%g': ('' + getThursday().getFullYear()).slice(2), '%H': zeroPad(nHour, 2), '%I': zeroPad((nHour + 11) % 12 + 1, 2), '%j': zeroPad(aDayCount[nMonth] + nDate + (nMonth > 1 && isLeapYear() ? 1 : 0), 3), '%k': '' + nHour, '%l': (nHour + 11) % 12 + 1, '%m': zeroPad(nMonth + 1, 2), '%M': zeroPad(date.getMinutes(), 2), '%p': nHour < 12 ? 'AM' : 'PM', '%P': nHour < 12 ? 'am' : 'pm', '%s': Math.round(date.getTime() / 1000), '%S': zeroPad(date.getSeconds(), 2), '%u': nDay || 7, '%w': '' + nDay, '%x': date.toLocaleDateString(), '%X': date.toLocaleTimeString(), '%y': ('' + nYear).slice(2), '%Y': nYear, '%z': date.toTimeString().replace(/.+GMT([+-]\d+).+/, '$1'), '%Z': date.toTimeString().replace(/.+\((.+?)\)$/, '$1') }[sMatch] || sMatch; }); } }, { key: "arrayToObject", value: function arrayToObject(array, indexFunction) { var obj = {}; array.forEach(function (val) { obj[indexFunction(val)] = val; }); return obj; } /** * Deepcopies JSON * * @param obj * @returns {*} */ }, { key: "cloneJson", value: function cloneJson(obj) { // https://stackoverflow.com/questions/4120475/how-to-create-and-clone-a-json-object/17502990#17502990 var i; // basic type deep copy if (Helper.isNull(obj) || _typeof(obj) !== 'object') { return obj; } // array deep copy if (obj instanceof Array) { var cloneA = []; for (i = 0; i < obj.length; ++i) { cloneA[i] = Helper.cloneJson(obj[i]); } return cloneA; } if (obj instanceof Date) { return new Date(obj.getTime()); } // object deep copy var cloneO = {}; for (i in obj) { cloneO[i] = Helper.cloneJson(obj[i]); } return cloneO; } /** * Erstellt ein FormData-Object von JSON-Data. Nützlich für fetch * * @param obj * @returns {FormData} */ }, { key: "formDataFromObject", value: function formDataFromObject(obj) { var formData = new FormData(); for (var k in obj) { formData.set(k, obj[k]); } return formData; } /** * Entfernt alle Children eines Elements * * @param element * @returns {Node} */ }, { key: "removeAllChildren", value: function removeAllChildren(element) { if (element instanceof Node) { while (element.firstChild) { element.removeChild(element.firstChild); } } return element; } }, { key: "shuffleArray", value: function shuffleArray(array) { var currentIndex = array.length, temporaryValue, randomIndex; // While there remain elements to shuffle... while (0 !== currentIndex) { // Pick a remaining element... randomIndex = Math.floor(Math.random() * currentIndex); currentIndex -= 1; // And swap it with the current element. temporaryValue = array[currentIndex]; array[currentIndex] = array[randomIndex]; array[randomIndex] = temporaryValue; } return array; } }, { key: "padZero", value: function padZero(n, width, z) { z = Helper.nonNull(z, '0'); n = n + ''; width = Helper.nonNull(width, 1); return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n; } }, { key: "deepEqual", value: function deepEqual(a, b) { // debugger; if (a === b) { return true; } if (_typeof(a) === "object" && _typeof(b) === "object") { var keysOfB = Object.keys(b); var childrenDeepEqual = Object.keys(a).every(function (key) { var index = keysOfB.indexOf(key); if (index < 0) { return false; } keysOfB.splice(index, 1); return Helper.deepEqual(a[key], b[key]); }); return childrenDeepEqual && keysOfB.length === 0; } return false; } //Ältere evtl nützliche Funktionen }, { key: "htmlspecialcharsDecode", value: function htmlspecialcharsDecode(text) { var map = { '&': '&', '&': "&", '<': '<', '>': '>', '"': '"', ''': "'", '’': "’", '‘': "‘", '–': "–", '—': "—", '…': "…", '”': '”' }; if (Helper.isNotNull(text) && typeof text.replace === "function") { return text.replace(/\&[\w\d\#]{2,5}\;/g, function (m) { return map[m]; }); } return text; } // static getIndexedObject(array, keyValue) { // let obj = {}; // for (let i = 0, n = array.length; i < n; i++) { // obj[array[i][keyValue]] = array[i]; // } // return obj; // } /** * Inverts the key-Values for an object * @param obj * @return {*} */ }, { key: "invertKeyValues", value: function invertKeyValues(obj) { var new_obj = {}; for (var prop in obj) { if (obj.hasOwnProperty(prop)) { new_obj[obj[prop]] = prop; } } return new_obj; } }, { key: "asyncForEach", value: function asyncForEach(array, callback, runAsyncronous) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var validPromises, i, index, currentPromise; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: runAsyncronous = Helper.nonNull(runAsyncronous, false); if (array instanceof Map) { array = Array.from(array.values()); } validPromises = []; i = 0; case 4: if (!(i < array.length)) { _context.next = 14; break; } index = i; currentPromise = Promise.resolve(callback(array[index], index, array)); if (runAsyncronous) { _context.next = 10; break; } _context.next = 10; return currentPromise; case 10: validPromises.push(currentPromise); case 11: i++; _context.next = 4; break; case 14: return _context.abrupt("return", Promise.all(validPromises)); case 15: case "end": return _context.stop(); } } }, _callee); })); } }, { key: "escapeRegExp", value: function escapeRegExp(str) { return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string } }, { key: "objectForEach", value: function objectForEach(object, callback) { Object.keys(object).forEach(function (key) { callback(object[key], key, object); }); } }, { key: "toArray", value: function toArray(object) { var res = []; for (var k in object) { res.push(object[k]); } return res; } }, { key: "imageUrlIsEmpty", value: function imageUrlIsEmpty(url) { return Helper.isNull(url) || url.trim() === "" || url.trim() === "data:"; } }, { key: "newPromiseWithResolve", value: function newPromiseWithResolve() { var resolver = null; var rejecter = null; var promise = new Promise(function (resolve, reject) { resolver = resolve; rejecter = reject; }); promise["resolve"] = resolver; promise["reject"] = rejecter; return promise; } }]); return Helper; }(); exports.Helper = Helper; /***/ }), /* 16 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ AbstractSqliteDriver_AbstractSqliteDriver; }); // EXTERNAL MODULE: ./node_modules/typeorm/node_modules/tslib/tslib.es6.js var tslib_es6 = __webpack_require__(0); // EXTERNAL MODULE: ./node_modules/typeorm/browser/util/DateUtils.js var DateUtils = __webpack_require__(22); // EXTERNAL MODULE: ./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js var BrowserDisabledDriversDummy = __webpack_require__(1); // EXTERNAL MODULE: ./node_modules/typeorm/browser/schema-builder/table/Table.js var Table = __webpack_require__(5); // EXTERNAL MODULE: ./node_modules/typeorm/browser/schema-builder/table/TableColumn.js var TableColumn = __webpack_require__(25); // EXTERNAL MODULE: ./node_modules/typeorm/browser/schema-builder/table/TableForeignKey.js var TableForeignKey = __webpack_require__(48); // EXTERNAL MODULE: ./node_modules/typeorm/browser/schema-builder/table/TableIndex.js var TableIndex = __webpack_require__(38); // EXTERNAL MODULE: ./node_modules/typeorm/browser/schema-builder/util/TableUtils.js var TableUtils = __webpack_require__(121); // EXTERNAL MODULE: ./node_modules/typeorm/browser/schema-builder/table/TableUnique.js var TableUnique = __webpack_require__(31); // EXTERNAL MODULE: ./node_modules/typeorm/browser/schema-builder/table/TableCheck.js var TableCheck = __webpack_require__(43); // EXTERNAL MODULE: ./node_modules/typeorm/browser/schema-builder/table/TableExclusion.js var TableExclusion = __webpack_require__(60); // EXTERNAL MODULE: ./node_modules/typeorm/browser/schema-builder/view/View.js var View = __webpack_require__(57); // CONCATENATED MODULE: ./node_modules/typeorm/browser/schema-builder/RdbmsSchemaBuilder.js /** * Creates complete tables schemas in the database based on the entity metadatas. * * Steps how schema is being built: * 1. load list of all tables with complete column and keys information from the db * 2. drop all (old) foreign keys that exist in the table, but does not exist in the metadata * 3. create new tables that does not exist in the db, but exist in the metadata * 4. drop all columns exist (left old) in the db table, but does not exist in the metadata * 5. add columns from metadata which does not exist in the table * 6. update all exist columns which metadata has changed * 7. update primary keys - update old and create new primary key from changed columns * 8. create foreign keys which does not exist in the table yet * 9. create indices which are missing in db yet, and drops indices which exist in the db, but does not exist in the metadata anymore */ var RdbmsSchemaBuilder_RdbmsSchemaBuilder = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function RdbmsSchemaBuilder(connection) { this.connection = connection; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Creates complete schemas for the given entity metadatas. */ RdbmsSchemaBuilder.prototype.build = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var tablePaths, error_1, rollbackError_1; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: this.queryRunner = this.connection.createQueryRunner(); if (!!(this.connection.driver instanceof BrowserDisabledDriversDummy["d" /* CockroachDriver */])) return [3 /*break*/, 2]; return [4 /*yield*/, this.queryRunner.startTransaction()]; case 1: _a.sent(); _a.label = 2; case 2: _a.trys.push([2, 12, 18, 20]); tablePaths = this.entityToSyncMetadatas.map(function (metadata) { return metadata.tablePath; }); if (!(this.viewEntityToSyncMetadatas.length > 0)) return [3 /*break*/, 4]; return [4 /*yield*/, this.createTypeormMetadataTable()]; case 3: _a.sent(); _a.label = 4; case 4: return [4 /*yield*/, this.queryRunner.getTables(tablePaths)]; case 5: _a.sent(); return [4 /*yield*/, this.queryRunner.getViews([])]; case 6: _a.sent(); return [4 /*yield*/, this.executeSchemaSyncOperationsInProperOrder()]; case 7: _a.sent(); if (!this.connection.queryResultCache) return [3 /*break*/, 9]; return [4 /*yield*/, this.connection.queryResultCache.synchronize(this.queryRunner)]; case 8: _a.sent(); _a.label = 9; case 9: if (!!(this.connection.driver instanceof BrowserDisabledDriversDummy["d" /* CockroachDriver */])) return [3 /*break*/, 11]; return [4 /*yield*/, this.queryRunner.commitTransaction()]; case 10: _a.sent(); _a.label = 11; case 11: return [3 /*break*/, 20]; case 12: error_1 = _a.sent(); _a.label = 13; case 13: _a.trys.push([13, 16, , 17]); if (!!(this.connection.driver instanceof BrowserDisabledDriversDummy["d" /* CockroachDriver */])) return [3 /*break*/, 15]; return [4 /*yield*/, this.queryRunner.rollbackTransaction()]; case 14: _a.sent(); _a.label = 15; case 15: return [3 /*break*/, 17]; case 16: rollbackError_1 = _a.sent(); return [3 /*break*/, 17]; case 17: throw error_1; case 18: return [4 /*yield*/, this.queryRunner.release()]; case 19: _a.sent(); return [7 /*endfinally*/]; case 20: return [2 /*return*/]; } }); }); }; /** * Returns sql queries to be executed by schema builder. */ RdbmsSchemaBuilder.prototype.log = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var tablePaths; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: this.queryRunner = this.connection.createQueryRunner(); _a.label = 1; case 1: _a.trys.push([1, , 9, 11]); tablePaths = this.entityToSyncMetadatas.map(function (metadata) { return metadata.tablePath; }); if (!(this.viewEntityToSyncMetadatas.length > 0)) return [3 /*break*/, 3]; return [4 /*yield*/, this.createTypeormMetadataTable()]; case 2: _a.sent(); _a.label = 3; case 3: return [4 /*yield*/, this.queryRunner.getTables(tablePaths)]; case 4: _a.sent(); return [4 /*yield*/, this.queryRunner.getViews([])]; case 5: _a.sent(); this.queryRunner.enableSqlMemory(); return [4 /*yield*/, this.executeSchemaSyncOperationsInProperOrder()]; case 6: _a.sent(); if (!this.connection.queryResultCache) return [3 /*break*/, 8]; return [4 /*yield*/, this.connection.queryResultCache.synchronize(this.queryRunner)]; case 7: _a.sent(); _a.label = 8; case 8: return [2 /*return*/, this.queryRunner.getMemorySql()]; case 9: // its important to disable this mode despite the fact we are release query builder // because there exist drivers which reuse same query runner. Also its important to disable // sql memory after call of getMemorySql() method because last one flushes sql memory. this.queryRunner.disableSqlMemory(); return [4 /*yield*/, this.queryRunner.release()]; case 10: _a.sent(); return [7 /*endfinally*/]; case 11: return [2 /*return*/]; } }); }); }; Object.defineProperty(RdbmsSchemaBuilder.prototype, "entityToSyncMetadatas", { // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Returns only entities that should be synced in the database. */ get: function () { return this.connection.entityMetadatas.filter(function (metadata) { return metadata.synchronize && metadata.tableType !== "entity-child" && metadata.tableType !== "view"; }); }, enumerable: false, configurable: true }); Object.defineProperty(RdbmsSchemaBuilder.prototype, "viewEntityToSyncMetadatas", { /** * Returns only entities that should be synced in the database. */ get: function () { return this.connection.entityMetadatas.filter(function (metadata) { return metadata.tableType === "view" && metadata.synchronize; }); }, enumerable: false, configurable: true }); /** * Executes schema sync operations in a proper order. * Order of operations matter here. */ RdbmsSchemaBuilder.prototype.executeSchemaSyncOperationsInProperOrder = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.dropOldViews()]; case 1: _a.sent(); return [4 /*yield*/, this.dropOldForeignKeys()]; case 2: _a.sent(); return [4 /*yield*/, this.dropOldIndices()]; case 3: _a.sent(); return [4 /*yield*/, this.dropOldChecks()]; case 4: _a.sent(); return [4 /*yield*/, this.dropOldExclusions()]; case 5: _a.sent(); return [4 /*yield*/, this.dropCompositeUniqueConstraints()]; case 6: _a.sent(); // await this.renameTables(); return [4 /*yield*/, this.renameColumns()]; case 7: // await this.renameTables(); _a.sent(); return [4 /*yield*/, this.createNewTables()]; case 8: _a.sent(); return [4 /*yield*/, this.dropRemovedColumns()]; case 9: _a.sent(); return [4 /*yield*/, this.addNewColumns()]; case 10: _a.sent(); return [4 /*yield*/, this.updatePrimaryKeys()]; case 11: _a.sent(); return [4 /*yield*/, this.updateExistColumns()]; case 12: _a.sent(); return [4 /*yield*/, this.createNewIndices()]; case 13: _a.sent(); return [4 /*yield*/, this.createNewChecks()]; case 14: _a.sent(); return [4 /*yield*/, this.createNewExclusions()]; case 15: _a.sent(); return [4 /*yield*/, this.createCompositeUniqueConstraints()]; case 16: _a.sent(); return [4 /*yield*/, this.createForeignKeys()]; case 17: _a.sent(); return [4 /*yield*/, this.createViews()]; case 18: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Drops all (old) foreign keys that exist in the tables, but do not exist in the entity metadata. */ RdbmsSchemaBuilder.prototype.dropOldForeignKeys = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _loop_1, this_1, _a, _b, metadata, e_1_1; var e_1, _c; return Object(tslib_es6["d" /* __generator */])(this, function (_d) { switch (_d.label) { case 0: _loop_1 = function (metadata) { var table, tableForeignKeysToDrop; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: table = this_1.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; }); if (!table) return [2 /*return*/, "continue"]; tableForeignKeysToDrop = table.foreignKeys.filter(function (tableForeignKey) { var metadataFK = metadata.foreignKeys.find(function (metadataForeignKey) { return foreignKeysMatch(tableForeignKey, metadataForeignKey); }); return !metadataFK || (metadataFK.onDelete && metadataFK.onDelete !== tableForeignKey.onDelete) || (metadataFK.onUpdate && metadataFK.onUpdate !== tableForeignKey.onUpdate); }); if (tableForeignKeysToDrop.length === 0) return [2 /*return*/, "continue"]; this_1.connection.logger.logSchemaBuild("dropping old foreign keys of " + table.name + ": " + tableForeignKeysToDrop.map(function (dbForeignKey) { return dbForeignKey.name; }).join(", ")); // drop foreign keys from the database return [4 /*yield*/, this_1.queryRunner.dropForeignKeys(table, tableForeignKeysToDrop)]; case 1: // drop foreign keys from the database _e.sent(); return [2 /*return*/]; } }); }; this_1 = this; _d.label = 1; case 1: _d.trys.push([1, 6, 7, 8]); _a = Object(tslib_es6["g" /* __values */])(this.entityToSyncMetadatas), _b = _a.next(); _d.label = 2; case 2: if (!!_b.done) return [3 /*break*/, 5]; metadata = _b.value; return [5 /*yield**/, _loop_1(metadata)]; case 3: _d.sent(); _d.label = 4; case 4: _b = _a.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_1_1 = _d.sent(); e_1 = { error: e_1_1 }; return [3 /*break*/, 8]; case 7: try { if (_b && !_b.done && (_c = _a.return)) _c.call(_a); } finally { if (e_1) throw e_1.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; /** * Rename tables */ RdbmsSchemaBuilder.prototype.renameTables = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/]; }); }); }; /** * Renames columns. * Works if only one column per table was changed. * Changes only column name. If something besides name was changed, these changes will be ignored. */ RdbmsSchemaBuilder.prototype.renameColumns = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _loop_2, this_2, _a, _b, metadata, e_2_1; var e_2, _c; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_d) { switch (_d.label) { case 0: _loop_2 = function (metadata) { var table, renamedMetadataColumns, renamedTableColumns, renamedColumn; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: table = this_2.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; }); if (!table) return [2 /*return*/, "continue"]; if (metadata.columns.length !== table.columns.length) return [2 /*return*/, "continue"]; renamedMetadataColumns = metadata.columns.filter(function (column) { return !table.columns.find(function (tableColumn) { return tableColumn.name === column.databaseName && tableColumn.type === _this.connection.driver.normalizeType(column) && tableColumn.isNullable === column.isNullable && tableColumn.isUnique === _this.connection.driver.normalizeIsUnique(column); }); }); if (renamedMetadataColumns.length === 0 || renamedMetadataColumns.length > 1) return [2 /*return*/, "continue"]; renamedTableColumns = table.columns.filter(function (tableColumn) { return !metadata.columns.find(function (column) { return column.databaseName === tableColumn.name && _this.connection.driver.normalizeType(column) === tableColumn.type && column.isNullable === tableColumn.isNullable && _this.connection.driver.normalizeIsUnique(column) === tableColumn.isUnique; }); }); if (renamedTableColumns.length === 0 || renamedTableColumns.length > 1) return [2 /*return*/, "continue"]; renamedColumn = renamedTableColumns[0].clone(); renamedColumn.name = renamedMetadataColumns[0].databaseName; this_2.connection.logger.logSchemaBuild("renaming column \"" + renamedTableColumns[0].name + "\" in to \"" + renamedColumn.name + "\""); return [4 /*yield*/, this_2.queryRunner.renameColumn(table, renamedTableColumns[0], renamedColumn)]; case 1: _e.sent(); return [2 /*return*/]; } }); }; this_2 = this; _d.label = 1; case 1: _d.trys.push([1, 6, 7, 8]); _a = Object(tslib_es6["g" /* __values */])(this.entityToSyncMetadatas), _b = _a.next(); _d.label = 2; case 2: if (!!_b.done) return [3 /*break*/, 5]; metadata = _b.value; return [5 /*yield**/, _loop_2(metadata)]; case 3: _d.sent(); _d.label = 4; case 4: _b = _a.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_2_1 = _d.sent(); e_2 = { error: e_2_1 }; return [3 /*break*/, 8]; case 7: try { if (_b && !_b.done && (_c = _a.return)) _c.call(_a); } finally { if (e_2) throw e_2.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; RdbmsSchemaBuilder.prototype.dropOldIndices = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _loop_3, this_3, _a, _b, metadata, e_3_1; var e_3, _c; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_d) { switch (_d.label) { case 0: _loop_3 = function (metadata) { var table, dropQueries; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: table = this_3.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; }); if (!table) return [2 /*return*/, "continue"]; dropQueries = table.indices .filter(function (tableIndex) { var indexMetadata = metadata.indices.find(function (index) { return index.name === tableIndex.name; }); if (indexMetadata) { if (indexMetadata.synchronize === false) return false; if (indexMetadata.isUnique !== tableIndex.isUnique) return true; if (indexMetadata.isSpatial !== tableIndex.isSpatial) return true; if (_this.connection.driver.isFullTextColumnTypeSupported() && indexMetadata.isFulltext !== tableIndex.isFulltext) return true; if (indexMetadata.columns.length !== tableIndex.columnNames.length) return true; return !indexMetadata.columns.every(function (column) { return tableIndex.columnNames.indexOf(column.databaseName) !== -1; }); } return true; }) .map(function (tableIndex) { return Object(tslib_es6["b" /* __awaiter */])(_this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: this.connection.logger.logSchemaBuild("dropping an index: \"" + tableIndex.name + "\" from table " + table.name); return [4 /*yield*/, this.queryRunner.dropIndex(table, tableIndex)]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }); return [4 /*yield*/, Promise.all(dropQueries)]; case 1: _e.sent(); return [2 /*return*/]; } }); }; this_3 = this; _d.label = 1; case 1: _d.trys.push([1, 6, 7, 8]); _a = Object(tslib_es6["g" /* __values */])(this.entityToSyncMetadatas), _b = _a.next(); _d.label = 2; case 2: if (!!_b.done) return [3 /*break*/, 5]; metadata = _b.value; return [5 /*yield**/, _loop_3(metadata)]; case 3: _d.sent(); _d.label = 4; case 4: _b = _a.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_3_1 = _d.sent(); e_3 = { error: e_3_1 }; return [3 /*break*/, 8]; case 7: try { if (_b && !_b.done && (_c = _a.return)) _c.call(_a); } finally { if (e_3) throw e_3.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; RdbmsSchemaBuilder.prototype.dropOldChecks = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _loop_4, this_4, _a, _b, metadata, e_4_1; var e_4, _c; return Object(tslib_es6["d" /* __generator */])(this, function (_d) { switch (_d.label) { case 0: // Mysql does not support check constraints if (this.connection.driver instanceof BrowserDisabledDriversDummy["i" /* MysqlDriver */] || this.connection.driver instanceof BrowserDisabledDriversDummy["a" /* AuroraDataApiDriver */]) return [2 /*return*/]; _loop_4 = function (metadata) { var table, oldChecks; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: table = this_4.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; }); if (!table) return [2 /*return*/, "continue"]; oldChecks = table.checks.filter(function (tableCheck) { return !metadata.checks.find(function (checkMetadata) { return checkMetadata.name === tableCheck.name; }); }); if (oldChecks.length === 0) return [2 /*return*/, "continue"]; this_4.connection.logger.logSchemaBuild("dropping old check constraint: " + oldChecks.map(function (check) { return "\"" + check.name + "\""; }).join(", ") + " from table \"" + table.name + "\""); return [4 /*yield*/, this_4.queryRunner.dropCheckConstraints(table, oldChecks)]; case 1: _e.sent(); return [2 /*return*/]; } }); }; this_4 = this; _d.label = 1; case 1: _d.trys.push([1, 6, 7, 8]); _a = Object(tslib_es6["g" /* __values */])(this.entityToSyncMetadatas), _b = _a.next(); _d.label = 2; case 2: if (!!_b.done) return [3 /*break*/, 5]; metadata = _b.value; return [5 /*yield**/, _loop_4(metadata)]; case 3: _d.sent(); _d.label = 4; case 4: _b = _a.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_4_1 = _d.sent(); e_4 = { error: e_4_1 }; return [3 /*break*/, 8]; case 7: try { if (_b && !_b.done && (_c = _a.return)) _c.call(_a); } finally { if (e_4) throw e_4.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; RdbmsSchemaBuilder.prototype.dropCompositeUniqueConstraints = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _loop_5, this_5, _a, _b, metadata, e_5_1; var e_5, _c; return Object(tslib_es6["d" /* __generator */])(this, function (_d) { switch (_d.label) { case 0: _loop_5 = function (metadata) { var table, compositeUniques; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: table = this_5.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; }); if (!table) return [2 /*return*/, "continue"]; compositeUniques = table.uniques.filter(function (tableUnique) { return tableUnique.columnNames.length > 1 && !metadata.uniques.find(function (uniqueMetadata) { return uniqueMetadata.name === tableUnique.name; }); }); if (compositeUniques.length === 0) return [2 /*return*/, "continue"]; this_5.connection.logger.logSchemaBuild("dropping old unique constraint: " + compositeUniques.map(function (unique) { return "\"" + unique.name + "\""; }).join(", ") + " from table \"" + table.name + "\""); return [4 /*yield*/, this_5.queryRunner.dropUniqueConstraints(table, compositeUniques)]; case 1: _e.sent(); return [2 /*return*/]; } }); }; this_5 = this; _d.label = 1; case 1: _d.trys.push([1, 6, 7, 8]); _a = Object(tslib_es6["g" /* __values */])(this.entityToSyncMetadatas), _b = _a.next(); _d.label = 2; case 2: if (!!_b.done) return [3 /*break*/, 5]; metadata = _b.value; return [5 /*yield**/, _loop_5(metadata)]; case 3: _d.sent(); _d.label = 4; case 4: _b = _a.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_5_1 = _d.sent(); e_5 = { error: e_5_1 }; return [3 /*break*/, 8]; case 7: try { if (_b && !_b.done && (_c = _a.return)) _c.call(_a); } finally { if (e_5) throw e_5.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; RdbmsSchemaBuilder.prototype.dropOldExclusions = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _loop_6, this_6, _a, _b, metadata, e_6_1; var e_6, _c; return Object(tslib_es6["d" /* __generator */])(this, function (_d) { switch (_d.label) { case 0: // Only PostgreSQL supports exclusion constraints if (!(this.connection.driver instanceof BrowserDisabledDriversDummy["k" /* PostgresDriver */])) return [2 /*return*/]; _loop_6 = function (metadata) { var table, oldExclusions; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: table = this_6.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; }); if (!table) return [2 /*return*/, "continue"]; oldExclusions = table.exclusions.filter(function (tableExclusion) { return !metadata.exclusions.find(function (exclusionMetadata) { return exclusionMetadata.name === tableExclusion.name; }); }); if (oldExclusions.length === 0) return [2 /*return*/, "continue"]; this_6.connection.logger.logSchemaBuild("dropping old exclusion constraint: " + oldExclusions.map(function (exclusion) { return "\"" + exclusion.name + "\""; }).join(", ") + " from table \"" + table.name + "\""); return [4 /*yield*/, this_6.queryRunner.dropExclusionConstraints(table, oldExclusions)]; case 1: _e.sent(); return [2 /*return*/]; } }); }; this_6 = this; _d.label = 1; case 1: _d.trys.push([1, 6, 7, 8]); _a = Object(tslib_es6["g" /* __values */])(this.entityToSyncMetadatas), _b = _a.next(); _d.label = 2; case 2: if (!!_b.done) return [3 /*break*/, 5]; metadata = _b.value; return [5 /*yield**/, _loop_6(metadata)]; case 3: _d.sent(); _d.label = 4; case 4: _b = _a.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_6_1 = _d.sent(); e_6 = { error: e_6_1 }; return [3 /*break*/, 8]; case 7: try { if (_b && !_b.done && (_c = _a.return)) _c.call(_a); } finally { if (e_6) throw e_6.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; /** * Creates tables that do not exist in the database yet. * New tables are created without foreign and primary keys. * Primary key only can be created in conclusion with auto generated column. */ RdbmsSchemaBuilder.prototype.createNewTables = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _loop_7, this_7, _a, _b, metadata, e_7_1; var e_7, _c; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_d) { switch (_d.label) { case 0: _loop_7 = function (metadata) { var existTable, table; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: existTable = this_7.queryRunner.loadedTables.find(function (table) { var database = metadata.database && metadata.database !== _this.connection.driver.database ? metadata.database : undefined; var schema = metadata.schema || _this.connection.driver.options.schema; var fullTableName = _this.connection.driver.buildTableName(metadata.tableName, schema, database); return table.name === fullTableName; }); if (existTable) return [2 /*return*/, "continue"]; this_7.connection.logger.logSchemaBuild("creating a new table: " + metadata.tablePath); table = Table["a" /* Table */].create(metadata, this_7.connection.driver); return [4 /*yield*/, this_7.queryRunner.createTable(table, false, false)]; case 1: _e.sent(); this_7.queryRunner.loadedTables.push(table); return [2 /*return*/]; } }); }; this_7 = this; _d.label = 1; case 1: _d.trys.push([1, 6, 7, 8]); _a = Object(tslib_es6["g" /* __values */])(this.entityToSyncMetadatas), _b = _a.next(); _d.label = 2; case 2: if (!!_b.done) return [3 /*break*/, 5]; metadata = _b.value; return [5 /*yield**/, _loop_7(metadata)]; case 3: _d.sent(); _d.label = 4; case 4: _b = _a.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_7_1 = _d.sent(); e_7 = { error: e_7_1 }; return [3 /*break*/, 8]; case 7: try { if (_b && !_b.done && (_c = _a.return)) _c.call(_a); } finally { if (e_7) throw e_7.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; RdbmsSchemaBuilder.prototype.createViews = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _loop_8, this_8, _a, _b, metadata, e_8_1; var e_8, _c; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_d) { switch (_d.label) { case 0: _loop_8 = function (metadata) { var existView, view; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: existView = this_8.queryRunner.loadedViews.find(function (view) { var database = metadata.database && metadata.database !== _this.connection.driver.database ? metadata.database : undefined; var schema = metadata.schema || _this.connection.driver.options.schema; var fullViewName = _this.connection.driver.buildTableName(metadata.tableName, schema, database); var viewExpression = typeof view.expression === "string" ? view.expression.trim() : view.expression(_this.connection).getQuery(); var metadataExpression = typeof metadata.expression === "string" ? metadata.expression.trim() : metadata.expression(_this.connection).getQuery(); return view.name === fullViewName && viewExpression === metadataExpression; }); if (existView) return [2 /*return*/, "continue"]; this_8.connection.logger.logSchemaBuild("creating a new view: " + metadata.tablePath); view = View["a" /* View */].create(metadata, this_8.connection.driver); return [4 /*yield*/, this_8.queryRunner.createView(view)]; case 1: _e.sent(); this_8.queryRunner.loadedViews.push(view); return [2 /*return*/]; } }); }; this_8 = this; _d.label = 1; case 1: _d.trys.push([1, 6, 7, 8]); _a = Object(tslib_es6["g" /* __values */])(this.viewEntityToSyncMetadatas), _b = _a.next(); _d.label = 2; case 2: if (!!_b.done) return [3 /*break*/, 5]; metadata = _b.value; return [5 /*yield**/, _loop_8(metadata)]; case 3: _d.sent(); _d.label = 4; case 4: _b = _a.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_8_1 = _d.sent(); e_8 = { error: e_8_1 }; return [3 /*break*/, 8]; case 7: try { if (_b && !_b.done && (_c = _a.return)) _c.call(_a); } finally { if (e_8) throw e_8.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; RdbmsSchemaBuilder.prototype.dropOldViews = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _loop_9, this_9, _a, _b, view, e_9_1; var e_9, _c; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_d) { switch (_d.label) { case 0: _loop_9 = function (view) { var existViewMetadata; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: existViewMetadata = this_9.viewEntityToSyncMetadatas.find(function (metadata) { var database = metadata.database && metadata.database !== _this.connection.driver.database ? metadata.database : undefined; var schema = metadata.schema || _this.connection.driver.options.schema; var fullViewName = _this.connection.driver.buildTableName(metadata.tableName, schema, database); var viewExpression = typeof view.expression === "string" ? view.expression.trim() : view.expression(_this.connection).getQuery(); var metadataExpression = typeof metadata.expression === "string" ? metadata.expression.trim() : metadata.expression(_this.connection).getQuery(); return view.name === fullViewName && viewExpression === metadataExpression; }); if (existViewMetadata) return [2 /*return*/, "continue"]; this_9.connection.logger.logSchemaBuild("dropping an old view: " + view.name); // drop an old view return [4 /*yield*/, this_9.queryRunner.dropView(view)]; case 1: // drop an old view _e.sent(); this_9.queryRunner.loadedViews.splice(this_9.queryRunner.loadedViews.indexOf(view), 1); return [2 /*return*/]; } }); }; this_9 = this; _d.label = 1; case 1: _d.trys.push([1, 6, 7, 8]); _a = Object(tslib_es6["g" /* __values */])(this.queryRunner.loadedViews), _b = _a.next(); _d.label = 2; case 2: if (!!_b.done) return [3 /*break*/, 5]; view = _b.value; return [5 /*yield**/, _loop_9(view)]; case 3: _d.sent(); _d.label = 4; case 4: _b = _a.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_9_1 = _d.sent(); e_9 = { error: e_9_1 }; return [3 /*break*/, 8]; case 7: try { if (_b && !_b.done && (_c = _a.return)) _c.call(_a); } finally { if (e_9) throw e_9.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; /** * Drops all columns that exist in the table, but does not exist in the metadata (left old). * We drop their keys too, since it should be safe. */ RdbmsSchemaBuilder.prototype.dropRemovedColumns = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _loop_10, this_10, _a, _b, metadata, e_10_1; var e_10, _c; return Object(tslib_es6["d" /* __generator */])(this, function (_d) { switch (_d.label) { case 0: _loop_10 = function (metadata) { var table, droppedTableColumns; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: table = this_10.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; }); if (!table) return [2 /*return*/, "continue"]; droppedTableColumns = table.columns.filter(function (tableColumn) { return !metadata.columns.find(function (columnMetadata) { return columnMetadata.databaseName === tableColumn.name; }); }); if (droppedTableColumns.length === 0) return [2 /*return*/, "continue"]; this_10.connection.logger.logSchemaBuild("columns dropped in " + table.name + ": " + droppedTableColumns.map(function (column) { return column.name; }).join(", ")); // drop columns from the database return [4 /*yield*/, this_10.queryRunner.dropColumns(table, droppedTableColumns)]; case 1: // drop columns from the database _e.sent(); return [2 /*return*/]; } }); }; this_10 = this; _d.label = 1; case 1: _d.trys.push([1, 6, 7, 8]); _a = Object(tslib_es6["g" /* __values */])(this.entityToSyncMetadatas), _b = _a.next(); _d.label = 2; case 2: if (!!_b.done) return [3 /*break*/, 5]; metadata = _b.value; return [5 /*yield**/, _loop_10(metadata)]; case 3: _d.sent(); _d.label = 4; case 4: _b = _a.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_10_1 = _d.sent(); e_10 = { error: e_10_1 }; return [3 /*break*/, 8]; case 7: try { if (_b && !_b.done && (_c = _a.return)) _c.call(_a); } finally { if (e_10) throw e_10.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; /** * Adds columns from metadata which does not exist in the table. * Columns are created without keys. */ RdbmsSchemaBuilder.prototype.addNewColumns = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _loop_11, this_11, _a, _b, metadata, e_11_1; var e_11, _c; return Object(tslib_es6["d" /* __generator */])(this, function (_d) { switch (_d.label) { case 0: _loop_11 = function (metadata) { var table, newColumnMetadatas, newTableColumnOptions, newTableColumns; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: table = this_11.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; }); if (!table) return [2 /*return*/, "continue"]; newColumnMetadatas = metadata.columns.filter(function (columnMetadata) { return !table.columns.find(function (tableColumn) { return tableColumn.name === columnMetadata.databaseName; }); }); if (newColumnMetadatas.length === 0) return [2 /*return*/, "continue"]; newTableColumnOptions = this_11.metadataColumnsToTableColumnOptions(newColumnMetadatas); newTableColumns = newTableColumnOptions.map(function (option) { return new TableColumn["a" /* TableColumn */](option); }); if (newTableColumns.length === 0) return [2 /*return*/, "continue"]; this_11.connection.logger.logSchemaBuild("new columns added: " + newColumnMetadatas.map(function (column) { return column.databaseName; }).join(", ")); return [4 /*yield*/, this_11.queryRunner.addColumns(table, newTableColumns)]; case 1: _e.sent(); return [2 /*return*/]; } }); }; this_11 = this; _d.label = 1; case 1: _d.trys.push([1, 6, 7, 8]); _a = Object(tslib_es6["g" /* __values */])(this.entityToSyncMetadatas), _b = _a.next(); _d.label = 2; case 2: if (!!_b.done) return [3 /*break*/, 5]; metadata = _b.value; return [5 /*yield**/, _loop_11(metadata)]; case 3: _d.sent(); _d.label = 4; case 4: _b = _a.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_11_1 = _d.sent(); e_11 = { error: e_11_1 }; return [3 /*break*/, 8]; case 7: try { if (_b && !_b.done && (_c = _a.return)) _c.call(_a); } finally { if (e_11) throw e_11.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; /** * Updates composite primary keys. */ RdbmsSchemaBuilder.prototype.updatePrimaryKeys = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _loop_12, this_12, _a, _b, metadata, e_12_1; var e_12, _c; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_d) { switch (_d.label) { case 0: _loop_12 = function (metadata) { var table, primaryMetadataColumns, primaryTableColumns, changedPrimaryColumns; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: table = this_12.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; }); if (!table) return [2 /*return*/, "continue"]; primaryMetadataColumns = metadata.columns.filter(function (column) { return column.isPrimary; }); primaryTableColumns = table.columns.filter(function (column) { return column.isPrimary; }); if (!(primaryTableColumns.length !== primaryMetadataColumns.length && primaryMetadataColumns.length > 1)) return [3 /*break*/, 2]; changedPrimaryColumns = primaryMetadataColumns.map(function (primaryMetadataColumn) { return new TableColumn["a" /* TableColumn */](TableUtils["a" /* TableUtils */].createTableColumnOptions(primaryMetadataColumn, _this.connection.driver)); }); return [4 /*yield*/, this_12.queryRunner.updatePrimaryKeys(table, changedPrimaryColumns)]; case 1: _e.sent(); _e.label = 2; case 2: return [2 /*return*/]; } }); }; this_12 = this; _d.label = 1; case 1: _d.trys.push([1, 6, 7, 8]); _a = Object(tslib_es6["g" /* __values */])(this.entityToSyncMetadatas), _b = _a.next(); _d.label = 2; case 2: if (!!_b.done) return [3 /*break*/, 5]; metadata = _b.value; return [5 /*yield**/, _loop_12(metadata)]; case 3: _d.sent(); _d.label = 4; case 4: _b = _a.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_12_1 = _d.sent(); e_12 = { error: e_12_1 }; return [3 /*break*/, 8]; case 7: try { if (_b && !_b.done && (_c = _a.return)) _c.call(_a); } finally { if (e_12) throw e_12.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; /** * Update all exist columns which metadata has changed. * Still don't create keys. Also we don't touch foreign keys of the changed columns. */ RdbmsSchemaBuilder.prototype.updateExistColumns = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _loop_13, this_13, _a, _b, metadata, e_13_1; var e_13, _c; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_d) { switch (_d.label) { case 0: _loop_13 = function (metadata) { var table, changedColumns, changedColumns_1, changedColumns_1_1, changedColumn, e_14_1, changedColumns_2, changedColumns_2_1, changedColumn, e_15_1, changedColumns_3, changedColumns_3_1, changedColumn, e_16_1, newAndOldTableColumns; var e_14, _e, e_15, _f, e_16, _g; return Object(tslib_es6["d" /* __generator */])(this, function (_h) { switch (_h.label) { case 0: table = this_13.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; }); if (!table) return [2 /*return*/, "continue"]; changedColumns = this_13.connection.driver.findChangedColumns(table.columns, metadata.columns); if (changedColumns.length === 0) return [2 /*return*/, "continue"]; _h.label = 1; case 1: _h.trys.push([1, 6, 7, 8]); changedColumns_1 = (e_14 = void 0, Object(tslib_es6["g" /* __values */])(changedColumns)), changedColumns_1_1 = changedColumns_1.next(); _h.label = 2; case 2: if (!!changedColumns_1_1.done) return [3 /*break*/, 5]; changedColumn = changedColumns_1_1.value; return [4 /*yield*/, this_13.dropColumnReferencedForeignKeys(metadata.tablePath, changedColumn.databaseName)]; case 3: _h.sent(); _h.label = 4; case 4: changedColumns_1_1 = changedColumns_1.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_14_1 = _h.sent(); e_14 = { error: e_14_1 }; return [3 /*break*/, 8]; case 7: try { if (changedColumns_1_1 && !changedColumns_1_1.done && (_e = changedColumns_1.return)) _e.call(changedColumns_1); } finally { if (e_14) throw e_14.error; } return [7 /*endfinally*/]; case 8: _h.trys.push([8, 13, 14, 15]); changedColumns_2 = (e_15 = void 0, Object(tslib_es6["g" /* __values */])(changedColumns)), changedColumns_2_1 = changedColumns_2.next(); _h.label = 9; case 9: if (!!changedColumns_2_1.done) return [3 /*break*/, 12]; changedColumn = changedColumns_2_1.value; return [4 /*yield*/, this_13.dropColumnCompositeIndices(metadata.tablePath, changedColumn.databaseName)]; case 10: _h.sent(); _h.label = 11; case 11: changedColumns_2_1 = changedColumns_2.next(); return [3 /*break*/, 9]; case 12: return [3 /*break*/, 15]; case 13: e_15_1 = _h.sent(); e_15 = { error: e_15_1 }; return [3 /*break*/, 15]; case 14: try { if (changedColumns_2_1 && !changedColumns_2_1.done && (_f = changedColumns_2.return)) _f.call(changedColumns_2); } finally { if (e_15) throw e_15.error; } return [7 /*endfinally*/]; case 15: if (!!(this_13.connection.driver instanceof BrowserDisabledDriversDummy["i" /* MysqlDriver */] || this_13.connection.driver instanceof BrowserDisabledDriversDummy["a" /* AuroraDataApiDriver */])) return [3 /*break*/, 23]; _h.label = 16; case 16: _h.trys.push([16, 21, 22, 23]); changedColumns_3 = (e_16 = void 0, Object(tslib_es6["g" /* __values */])(changedColumns)), changedColumns_3_1 = changedColumns_3.next(); _h.label = 17; case 17: if (!!changedColumns_3_1.done) return [3 /*break*/, 20]; changedColumn = changedColumns_3_1.value; return [4 /*yield*/, this_13.dropColumnCompositeUniques(metadata.tablePath, changedColumn.databaseName)]; case 18: _h.sent(); _h.label = 19; case 19: changedColumns_3_1 = changedColumns_3.next(); return [3 /*break*/, 17]; case 20: return [3 /*break*/, 23]; case 21: e_16_1 = _h.sent(); e_16 = { error: e_16_1 }; return [3 /*break*/, 23]; case 22: try { if (changedColumns_3_1 && !changedColumns_3_1.done && (_g = changedColumns_3.return)) _g.call(changedColumns_3); } finally { if (e_16) throw e_16.error; } return [7 /*endfinally*/]; case 23: newAndOldTableColumns = changedColumns.map(function (changedColumn) { var oldTableColumn = table.columns.find(function (column) { return column.name === changedColumn.databaseName; }); var newTableColumnOptions = TableUtils["a" /* TableUtils */].createTableColumnOptions(changedColumn, _this.connection.driver); var newTableColumn = new TableColumn["a" /* TableColumn */](newTableColumnOptions); return { oldColumn: oldTableColumn, newColumn: newTableColumn }; }); if (newAndOldTableColumns.length === 0) return [2 /*return*/, "continue"]; this_13.connection.logger.logSchemaBuild("columns changed in \"" + table.name + "\". updating: " + changedColumns.map(function (column) { return column.databaseName; }).join(", ")); return [4 /*yield*/, this_13.queryRunner.changeColumns(table, newAndOldTableColumns)]; case 24: _h.sent(); return [2 /*return*/]; } }); }; this_13 = this; _d.label = 1; case 1: _d.trys.push([1, 6, 7, 8]); _a = Object(tslib_es6["g" /* __values */])(this.entityToSyncMetadatas), _b = _a.next(); _d.label = 2; case 2: if (!!_b.done) return [3 /*break*/, 5]; metadata = _b.value; return [5 /*yield**/, _loop_13(metadata)]; case 3: _d.sent(); _d.label = 4; case 4: _b = _a.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_13_1 = _d.sent(); e_13 = { error: e_13_1 }; return [3 /*break*/, 8]; case 7: try { if (_b && !_b.done && (_c = _a.return)) _c.call(_a); } finally { if (e_13) throw e_13.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; /** * Creates composite indices which are missing in db yet. */ RdbmsSchemaBuilder.prototype.createNewIndices = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _loop_14, this_14, _a, _b, metadata, e_17_1; var e_17, _c; return Object(tslib_es6["d" /* __generator */])(this, function (_d) { switch (_d.label) { case 0: _loop_14 = function (metadata) { var table, newIndices; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: table = this_14.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; }); if (!table) return [2 /*return*/, "continue"]; newIndices = metadata.indices .filter(function (indexMetadata) { return !table.indices.find(function (tableIndex) { return tableIndex.name === indexMetadata.name; }) && indexMetadata.synchronize === true; }) .map(function (indexMetadata) { return TableIndex["a" /* TableIndex */].create(indexMetadata); }); if (newIndices.length === 0) return [2 /*return*/, "continue"]; this_14.connection.logger.logSchemaBuild("adding new indices " + newIndices.map(function (index) { return "\"" + index.name + "\""; }).join(", ") + " in table \"" + table.name + "\""); return [4 /*yield*/, this_14.queryRunner.createIndices(table, newIndices)]; case 1: _e.sent(); return [2 /*return*/]; } }); }; this_14 = this; _d.label = 1; case 1: _d.trys.push([1, 6, 7, 8]); _a = Object(tslib_es6["g" /* __values */])(this.entityToSyncMetadatas), _b = _a.next(); _d.label = 2; case 2: if (!!_b.done) return [3 /*break*/, 5]; metadata = _b.value; return [5 /*yield**/, _loop_14(metadata)]; case 3: _d.sent(); _d.label = 4; case 4: _b = _a.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_17_1 = _d.sent(); e_17 = { error: e_17_1 }; return [3 /*break*/, 8]; case 7: try { if (_b && !_b.done && (_c = _a.return)) _c.call(_a); } finally { if (e_17) throw e_17.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; RdbmsSchemaBuilder.prototype.createNewChecks = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _loop_15, this_15, _a, _b, metadata, e_18_1; var e_18, _c; return Object(tslib_es6["d" /* __generator */])(this, function (_d) { switch (_d.label) { case 0: // Mysql does not support check constraints if (this.connection.driver instanceof BrowserDisabledDriversDummy["i" /* MysqlDriver */] || this.connection.driver instanceof BrowserDisabledDriversDummy["a" /* AuroraDataApiDriver */]) return [2 /*return*/]; _loop_15 = function (metadata) { var table, newChecks; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: table = this_15.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; }); if (!table) return [2 /*return*/, "continue"]; newChecks = metadata.checks .filter(function (checkMetadata) { return !table.checks.find(function (tableCheck) { return tableCheck.name === checkMetadata.name; }); }) .map(function (checkMetadata) { return TableCheck["a" /* TableCheck */].create(checkMetadata); }); if (newChecks.length === 0) return [2 /*return*/, "continue"]; this_15.connection.logger.logSchemaBuild("adding new check constraints: " + newChecks.map(function (index) { return "\"" + index.name + "\""; }).join(", ") + " in table \"" + table.name + "\""); return [4 /*yield*/, this_15.queryRunner.createCheckConstraints(table, newChecks)]; case 1: _e.sent(); return [2 /*return*/]; } }); }; this_15 = this; _d.label = 1; case 1: _d.trys.push([1, 6, 7, 8]); _a = Object(tslib_es6["g" /* __values */])(this.entityToSyncMetadatas), _b = _a.next(); _d.label = 2; case 2: if (!!_b.done) return [3 /*break*/, 5]; metadata = _b.value; return [5 /*yield**/, _loop_15(metadata)]; case 3: _d.sent(); _d.label = 4; case 4: _b = _a.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_18_1 = _d.sent(); e_18 = { error: e_18_1 }; return [3 /*break*/, 8]; case 7: try { if (_b && !_b.done && (_c = _a.return)) _c.call(_a); } finally { if (e_18) throw e_18.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; /** * Creates composite uniques which are missing in db yet. */ RdbmsSchemaBuilder.prototype.createCompositeUniqueConstraints = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _loop_16, this_16, _a, _b, metadata, e_19_1; var e_19, _c; return Object(tslib_es6["d" /* __generator */])(this, function (_d) { switch (_d.label) { case 0: _loop_16 = function (metadata) { var table, compositeUniques; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: table = this_16.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; }); if (!table) return [2 /*return*/, "continue"]; compositeUniques = metadata.uniques .filter(function (uniqueMetadata) { return uniqueMetadata.columns.length > 1 && !table.uniques.find(function (tableUnique) { return tableUnique.name === uniqueMetadata.name; }); }) .map(function (uniqueMetadata) { return TableUnique["a" /* TableUnique */].create(uniqueMetadata); }); if (compositeUniques.length === 0) return [2 /*return*/, "continue"]; this_16.connection.logger.logSchemaBuild("adding new unique constraints: " + compositeUniques.map(function (unique) { return "\"" + unique.name + "\""; }).join(", ") + " in table \"" + table.name + "\""); return [4 /*yield*/, this_16.queryRunner.createUniqueConstraints(table, compositeUniques)]; case 1: _e.sent(); return [2 /*return*/]; } }); }; this_16 = this; _d.label = 1; case 1: _d.trys.push([1, 6, 7, 8]); _a = Object(tslib_es6["g" /* __values */])(this.entityToSyncMetadatas), _b = _a.next(); _d.label = 2; case 2: if (!!_b.done) return [3 /*break*/, 5]; metadata = _b.value; return [5 /*yield**/, _loop_16(metadata)]; case 3: _d.sent(); _d.label = 4; case 4: _b = _a.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_19_1 = _d.sent(); e_19 = { error: e_19_1 }; return [3 /*break*/, 8]; case 7: try { if (_b && !_b.done && (_c = _a.return)) _c.call(_a); } finally { if (e_19) throw e_19.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; /** * Creates exclusions which are missing in db yet. */ RdbmsSchemaBuilder.prototype.createNewExclusions = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _loop_17, this_17, _a, _b, metadata, e_20_1; var e_20, _c; return Object(tslib_es6["d" /* __generator */])(this, function (_d) { switch (_d.label) { case 0: // Only PostgreSQL supports exclusion constraints if (!(this.connection.driver instanceof BrowserDisabledDriversDummy["k" /* PostgresDriver */])) return [2 /*return*/]; _loop_17 = function (metadata) { var table, newExclusions; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: table = this_17.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; }); if (!table) return [2 /*return*/, "continue"]; newExclusions = metadata.exclusions .filter(function (exclusionMetadata) { return !table.exclusions.find(function (tableExclusion) { return tableExclusion.name === exclusionMetadata.name; }); }) .map(function (exclusionMetadata) { return TableExclusion["a" /* TableExclusion */].create(exclusionMetadata); }); if (newExclusions.length === 0) return [2 /*return*/, "continue"]; this_17.connection.logger.logSchemaBuild("adding new exclusion constraints: " + newExclusions.map(function (exclusion) { return "\"" + exclusion.name + "\""; }).join(", ") + " in table \"" + table.name + "\""); return [4 /*yield*/, this_17.queryRunner.createExclusionConstraints(table, newExclusions)]; case 1: _e.sent(); return [2 /*return*/]; } }); }; this_17 = this; _d.label = 1; case 1: _d.trys.push([1, 6, 7, 8]); _a = Object(tslib_es6["g" /* __values */])(this.entityToSyncMetadatas), _b = _a.next(); _d.label = 2; case 2: if (!!_b.done) return [3 /*break*/, 5]; metadata = _b.value; return [5 /*yield**/, _loop_17(metadata)]; case 3: _d.sent(); _d.label = 4; case 4: _b = _a.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_20_1 = _d.sent(); e_20 = { error: e_20_1 }; return [3 /*break*/, 8]; case 7: try { if (_b && !_b.done && (_c = _a.return)) _c.call(_a); } finally { if (e_20) throw e_20.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; /** * Creates foreign keys which does not exist in the table yet. */ RdbmsSchemaBuilder.prototype.createForeignKeys = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _loop_18, this_18, _a, _b, metadata, e_21_1; var e_21, _c; return Object(tslib_es6["d" /* __generator */])(this, function (_d) { switch (_d.label) { case 0: _loop_18 = function (metadata) { var table, newKeys, dbForeignKeys; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: table = this_18.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; }); if (!table) return [2 /*return*/, "continue"]; newKeys = metadata.foreignKeys .filter(function (foreignKey) { return !table.foreignKeys.find(function (dbForeignKey) { return foreignKeysMatch(dbForeignKey, foreignKey); }); }); if (newKeys.length === 0) return [2 /*return*/, "continue"]; dbForeignKeys = newKeys.map(function (foreignKeyMetadata) { return TableForeignKey["a" /* TableForeignKey */].create(foreignKeyMetadata); }); this_18.connection.logger.logSchemaBuild("creating a foreign keys: " + newKeys.map(function (key) { return key.name; }).join(", ") + " on table \"" + table.name + "\""); return [4 /*yield*/, this_18.queryRunner.createForeignKeys(table, dbForeignKeys)]; case 1: _e.sent(); return [2 /*return*/]; } }); }; this_18 = this; _d.label = 1; case 1: _d.trys.push([1, 6, 7, 8]); _a = Object(tslib_es6["g" /* __values */])(this.entityToSyncMetadatas), _b = _a.next(); _d.label = 2; case 2: if (!!_b.done) return [3 /*break*/, 5]; metadata = _b.value; return [5 /*yield**/, _loop_18(metadata)]; case 3: _d.sent(); _d.label = 4; case 4: _b = _a.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_21_1 = _d.sent(); e_21 = { error: e_21_1 }; return [3 /*break*/, 8]; case 7: try { if (_b && !_b.done && (_c = _a.return)) _c.call(_a); } finally { if (e_21) throw e_21.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; /** * Drops all foreign keys where given column of the given table is being used. */ RdbmsSchemaBuilder.prototype.dropColumnReferencedForeignKeys = function (tablePath, columnName) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, tablesWithFK, columnForeignKey, clonedTable, tablesWithFK_1, tablesWithFK_1_1, tableWithFK, e_22_1; var e_22, _a; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: table = this.queryRunner.loadedTables.find(function (table) { return table.name === tablePath; }); if (!table) return [2 /*return*/]; tablesWithFK = []; columnForeignKey = table.foreignKeys.find(function (foreignKey) { return foreignKey.columnNames.indexOf(columnName) !== -1; }); if (columnForeignKey) { clonedTable = table.clone(); clonedTable.foreignKeys = [columnForeignKey]; tablesWithFK.push(clonedTable); table.removeForeignKey(columnForeignKey); } this.queryRunner.loadedTables.forEach(function (loadedTable) { var dependForeignKeys = loadedTable.foreignKeys.filter(function (foreignKey) { return foreignKey.referencedTableName === tablePath && foreignKey.referencedColumnNames.indexOf(columnName) !== -1; }); if (dependForeignKeys.length > 0) { var clonedTable = loadedTable.clone(); clonedTable.foreignKeys = dependForeignKeys; tablesWithFK.push(clonedTable); dependForeignKeys.forEach(function (dependForeignKey) { return loadedTable.removeForeignKey(dependForeignKey); }); } }); if (!(tablesWithFK.length > 0)) return [3 /*break*/, 8]; _b.label = 1; case 1: _b.trys.push([1, 6, 7, 8]); tablesWithFK_1 = Object(tslib_es6["g" /* __values */])(tablesWithFK), tablesWithFK_1_1 = tablesWithFK_1.next(); _b.label = 2; case 2: if (!!tablesWithFK_1_1.done) return [3 /*break*/, 5]; tableWithFK = tablesWithFK_1_1.value; this.connection.logger.logSchemaBuild("dropping related foreign keys of " + tableWithFK.name + ": " + tableWithFK.foreignKeys.map(function (foreignKey) { return foreignKey.name; }).join(", ")); return [4 /*yield*/, this.queryRunner.dropForeignKeys(tableWithFK, tableWithFK.foreignKeys)]; case 3: _b.sent(); _b.label = 4; case 4: tablesWithFK_1_1 = tablesWithFK_1.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_22_1 = _b.sent(); e_22 = { error: e_22_1 }; return [3 /*break*/, 8]; case 7: try { if (tablesWithFK_1_1 && !tablesWithFK_1_1.done && (_a = tablesWithFK_1.return)) _a.call(tablesWithFK_1); } finally { if (e_22) throw e_22.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; /** * Drops all composite indices, related to given column. */ RdbmsSchemaBuilder.prototype.dropColumnCompositeIndices = function (tablePath, columnName) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, relatedIndices; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: table = this.queryRunner.loadedTables.find(function (table) { return table.name === tablePath; }); if (!table) return [2 /*return*/]; relatedIndices = table.indices.filter(function (index) { return index.columnNames.length > 1 && index.columnNames.indexOf(columnName) !== -1; }); if (relatedIndices.length === 0) return [2 /*return*/]; this.connection.logger.logSchemaBuild("dropping related indices of \"" + tablePath + "\".\"" + columnName + "\": " + relatedIndices.map(function (index) { return index.name; }).join(", ")); return [4 /*yield*/, this.queryRunner.dropIndices(table, relatedIndices)]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Drops all composite uniques, related to given column. */ RdbmsSchemaBuilder.prototype.dropColumnCompositeUniques = function (tablePath, columnName) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, relatedUniques; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: table = this.queryRunner.loadedTables.find(function (table) { return table.name === tablePath; }); if (!table) return [2 /*return*/]; relatedUniques = table.uniques.filter(function (unique) { return unique.columnNames.length > 1 && unique.columnNames.indexOf(columnName) !== -1; }); if (relatedUniques.length === 0) return [2 /*return*/]; this.connection.logger.logSchemaBuild("dropping related unique constraints of \"" + tablePath + "\".\"" + columnName + "\": " + relatedUniques.map(function (unique) { return unique.name; }).join(", ")); return [4 /*yield*/, this.queryRunner.dropUniqueConstraints(table, relatedUniques)]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Creates new columns from the given column metadatas. */ RdbmsSchemaBuilder.prototype.metadataColumnsToTableColumnOptions = function (columns) { var _this = this; return columns.map(function (columnMetadata) { return TableUtils["a" /* TableUtils */].createTableColumnOptions(columnMetadata, _this.connection.driver); }); }; /** * Creates typeorm service table for storing user defined Views. */ RdbmsSchemaBuilder.prototype.createTypeormMetadataTable = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var options, typeormMetadataTable; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: options = this.connection.driver.options; typeormMetadataTable = this.connection.driver.buildTableName("typeorm_metadata", options.schema, options.database); return [4 /*yield*/, this.queryRunner.createTable(new Table["a" /* Table */]({ name: typeormMetadataTable, columns: [ { name: "type", type: this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.metadataType }), isNullable: false }, { name: "database", type: this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.metadataDatabase }), isNullable: true }, { name: "schema", type: this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.metadataSchema }), isNullable: true }, { name: "table", type: this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.metadataTable }), isNullable: true }, { name: "name", type: this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.metadataName }), isNullable: true }, { name: "value", type: this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.metadataValue }), isNullable: true }, ] }), true)]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; return RdbmsSchemaBuilder; }()); function foreignKeysMatch(tableForeignKey, metadataForeignKey) { return (tableForeignKey.name === metadataForeignKey.name) && (tableForeignKey.referencedTableName === metadataForeignKey.referencedTablePath); } //# sourceMappingURL=RdbmsSchemaBuilder.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/util/OrmUtils.js var OrmUtils = __webpack_require__(6); // EXTERNAL MODULE: ./node_modules/typeorm/browser/util/ApplyValueTransformers.js var ApplyValueTransformers = __webpack_require__(61); // CONCATENATED MODULE: ./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteDriver.js /** * Organizes communication with sqlite DBMS. */ var AbstractSqliteDriver_AbstractSqliteDriver = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function AbstractSqliteDriver(connection) { /** * Indicates if replication is enabled. */ this.isReplicated = false; /** * Indicates if tree tables are supported by this driver. */ this.treeSupport = true; /** * Gets list of supported column data types by a driver. * * @see https://www.tutorialspoint.com/sqlite/sqlite_data_types.htm * @see https://sqlite.org/datatype3.html */ this.supportedDataTypes = [ "int", "integer", "tinyint", "smallint", "mediumint", "bigint", "unsigned big int", "int2", "int8", "integer", "character", "varchar", "varying character", "nchar", "native character", "nvarchar", "text", "clob", "text", "blob", "real", "double", "double precision", "float", "real", "numeric", "decimal", "boolean", "date", "time", "datetime" ]; /** * Gets list of column data types that support length by a driver. */ this.withLengthColumnTypes = [ "character", "varchar", "varying character", "nchar", "native character", "nvarchar", "text", "blob", "clob" ]; /** * Gets list of spatial column data types. */ this.spatialTypes = []; /** * Gets list of column data types that support precision by a driver. */ this.withPrecisionColumnTypes = [ "real", "double", "double precision", "float", "real", "numeric", "decimal", "date", "time", "datetime" ]; /** * Gets list of column data types that support scale by a driver. */ this.withScaleColumnTypes = [ "real", "double", "double precision", "float", "real", "numeric", "decimal", ]; /** * Orm has special columns and we need to know what database column types should be for those types. * Column types are driver dependant. */ this.mappedDataTypes = { createDate: "datetime", createDateDefault: "datetime('now')", updateDate: "datetime", updateDateDefault: "datetime('now')", deleteDate: "datetime", deleteDateNullable: true, version: "integer", treeLevel: "integer", migrationId: "integer", migrationName: "varchar", migrationTimestamp: "bigint", cacheId: "int", cacheIdentifier: "varchar", cacheTime: "bigint", cacheDuration: "int", cacheQuery: "text", cacheResult: "text", metadataType: "varchar", metadataDatabase: "varchar", metadataSchema: "varchar", metadataTable: "varchar", metadataName: "varchar", metadataValue: "text", }; this.connection = connection; this.options = connection.options; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Performs connection to the database. */ AbstractSqliteDriver.prototype.connect = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _a; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: _a = this; return [4 /*yield*/, this.createDatabaseConnection()]; case 1: _a.databaseConnection = _b.sent(); return [2 /*return*/]; } }); }); }; /** * Makes any action after connection (e.g. create extensions in Postgres driver). */ AbstractSqliteDriver.prototype.afterConnect = function () { return Promise.resolve(); }; /** * Closes connection with database. */ AbstractSqliteDriver.prototype.disconnect = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, new Promise(function (ok, fail) { _this.queryRunner = undefined; _this.databaseConnection.close(function (err) { return err ? fail(err) : ok(); }); })]; }); }); }; /** * Creates a schema builder used to build and sync a schema. */ AbstractSqliteDriver.prototype.createSchemaBuilder = function () { return new RdbmsSchemaBuilder_RdbmsSchemaBuilder(this.connection); }; /** * Prepares given value to a value to be persisted, based on its column type and metadata. */ AbstractSqliteDriver.prototype.preparePersistentValue = function (value, columnMetadata) { if (columnMetadata.transformer) value = ApplyValueTransformers["a" /* ApplyValueTransformers */].transformTo(columnMetadata.transformer, value); if (value === null || value === undefined) return value; if (columnMetadata.type === Boolean || columnMetadata.type === "boolean") { return value === true ? 1 : 0; } else if (columnMetadata.type === "date") { return DateUtils["a" /* DateUtils */].mixedDateToDateString(value); } else if (columnMetadata.type === "time") { return DateUtils["a" /* DateUtils */].mixedDateToTimeString(value); } else if (columnMetadata.type === "datetime" || columnMetadata.type === Date) { // to string conversation needs because SQLite stores date as integer number, when date came as Object // TODO: think about `toUTC` conversion return DateUtils["a" /* DateUtils */].mixedDateToUtcDatetimeString(value); } else if (columnMetadata.type === "simple-array") { return DateUtils["a" /* DateUtils */].simpleArrayToString(value); } else if (columnMetadata.type === "simple-json") { return DateUtils["a" /* DateUtils */].simpleJsonToString(value); } else if (columnMetadata.type === "simple-enum") { return DateUtils["a" /* DateUtils */].simpleEnumToString(value); } return value; }; /** * Prepares given value to a value to be hydrated, based on its column type or metadata. */ AbstractSqliteDriver.prototype.prepareHydratedValue = function (value, columnMetadata) { if (value === null || value === undefined) return columnMetadata.transformer ? ApplyValueTransformers["a" /* ApplyValueTransformers */].transformFrom(columnMetadata.transformer, value) : value; if (columnMetadata.type === Boolean || columnMetadata.type === "boolean") { value = value ? true : false; } else if (columnMetadata.type === "datetime" || columnMetadata.type === Date) { /** * Fix date conversion issue * * If the format of the date string is "2018-03-14 02:33:33.906", Safari (and iOS WKWebView) will convert it to an invalid date object. * We need to modify the date string to "2018-03-14T02:33:33.906Z" and Safari will convert it correctly. * * ISO 8601 * https://www.w3.org/TR/NOTE-datetime */ if (value && typeof value === "string") { // There are various valid time string formats a sqlite time string might have: // https://www.sqlite.org/lang_datefunc.html // There are two separate fixes we may need to do: // 1) Add 'T' separator if space is used instead // 2) Add 'Z' UTC suffix if no timezone or offset specified if (/^\d\d\d\d-\d\d-\d\d \d\d:\d\d/.test(value)) { value = value.replace(" ", "T"); } if (/^\d\d\d\d-\d\d-\d\dT\d\d:\d\d(:\d\d(\.\d\d\d)?)?$/.test(value)) { value += "Z"; } } value = DateUtils["a" /* DateUtils */].normalizeHydratedDate(value); } else if (columnMetadata.type === "date") { value = DateUtils["a" /* DateUtils */].mixedDateToDateString(value); } else if (columnMetadata.type === "time") { value = DateUtils["a" /* DateUtils */].mixedTimeToString(value); } else if (columnMetadata.type === "simple-array") { value = DateUtils["a" /* DateUtils */].stringToSimpleArray(value); } else if (columnMetadata.type === "simple-json") { value = DateUtils["a" /* DateUtils */].stringToSimpleJson(value); } else if (columnMetadata.type === "simple-enum") { value = DateUtils["a" /* DateUtils */].stringToSimpleEnum(value, columnMetadata); } if (columnMetadata.transformer) value = ApplyValueTransformers["a" /* ApplyValueTransformers */].transformFrom(columnMetadata.transformer, value); return value; }; /** * Replaces parameters in the given sql with special escaping character * and an array of parameter names to be passed to a query. */ AbstractSqliteDriver.prototype.escapeQueryWithParameters = function (sql, parameters, nativeParameters) { var builtParameters = Object.keys(nativeParameters).map(function (key) { // Mapping boolean values to their numeric representation if (typeof nativeParameters[key] === "boolean") { return nativeParameters[key] === true ? 1 : 0; } return nativeParameters[key]; }); if (!parameters || !Object.keys(parameters).length) return [sql, builtParameters]; var keys = Object.keys(parameters).map(function (parameter) { return "(:(\\.\\.\\.)?" + parameter + "\\b)"; }).join("|"); sql = sql.replace(new RegExp(keys, "g"), function (key) { var value; var isArray = false; if (key.substr(0, 4) === ":...") { isArray = true; value = parameters[key.substr(4)]; } else { value = parameters[key.substr(1)]; } if (isArray) { return value.map(function (v) { builtParameters.push(v); return "?"; // return "$" + builtParameters.length; }).join(", "); } else if (value instanceof Function) { return value(); } else { builtParameters.push(value); return "?"; // return "$" + builtParameters.length; } }); // todo: make replace only in value statements, otherwise problems return [sql, builtParameters]; }; /** * Escapes a column name. */ AbstractSqliteDriver.prototype.escape = function (columnName) { return "\"" + columnName + "\""; }; /** * Build full table name with database name, schema name and table name. * E.g. "myDB"."mySchema"."myTable" * * Returns only simple table name because all inherited drivers does not supports schema and database. */ AbstractSqliteDriver.prototype.buildTableName = function (tableName, schema, database) { return tableName; }; /** * Creates a database type from a given column metadata. */ AbstractSqliteDriver.prototype.normalizeType = function (column) { if (column.type === Number || column.type === "int") { return "integer"; } else if (column.type === String) { return "varchar"; } else if (column.type === Date) { return "datetime"; } else if (column.type === Boolean) { return "boolean"; } else if (column.type === "uuid") { return "varchar"; } else if (column.type === "simple-array") { return "text"; } else if (column.type === "simple-json") { return "text"; } else if (column.type === "simple-enum") { return "varchar"; } else { return column.type || ""; } }; /** * Normalizes "default" value of the column. */ AbstractSqliteDriver.prototype.normalizeDefault = function (columnMetadata) { var defaultValue = columnMetadata.default; if (typeof defaultValue === "number") { return "" + defaultValue; } else if (typeof defaultValue === "boolean") { return defaultValue === true ? "1" : "0"; } else if (typeof defaultValue === "function") { return defaultValue(); } else if (typeof defaultValue === "string") { return "'" + defaultValue + "'"; } else if (defaultValue === null) { return undefined; } else { return defaultValue; } }; /** * Normalizes "isUnique" value of the column. */ AbstractSqliteDriver.prototype.normalizeIsUnique = function (column) { return column.entityMetadata.uniques.some(function (uq) { return uq.columns.length === 1 && uq.columns[0] === column; }); }; /** * Calculates column length taking into account the default length values. */ AbstractSqliteDriver.prototype.getColumnLength = function (column) { return column.length ? column.length.toString() : ""; }; /** * Normalizes "default" value of the column. */ AbstractSqliteDriver.prototype.createFullType = function (column) { var type = column.type; if (column.enum) { return "varchar"; } if (column.length) { type += "(" + column.length + ")"; } else if (column.precision !== null && column.precision !== undefined && column.scale !== null && column.scale !== undefined) { type += "(" + column.precision + "," + column.scale + ")"; } else if (column.precision !== null && column.precision !== undefined) { type += "(" + column.precision + ")"; } if (column.isArray) type += " array"; return type; }; /** * Obtains a new database connection to a master server. * Used for replication. * If replication is not setup then returns default connection's database connection. */ AbstractSqliteDriver.prototype.obtainMasterConnection = function () { return Promise.resolve(); }; /** * Obtains a new database connection to a slave server. * Used for replication. * If replication is not setup then returns master (default) connection's database connection. */ AbstractSqliteDriver.prototype.obtainSlaveConnection = function () { return Promise.resolve(); }; /** * Creates generated map of values generated or returned by database after INSERT query. */ AbstractSqliteDriver.prototype.createGeneratedMap = function (metadata, insertResult, entityIndex, entityNum) { var generatedMap = metadata.generatedColumns.reduce(function (map, generatedColumn) { var value; if (generatedColumn.generationStrategy === "increment" && insertResult) { // NOTE: When INSERT statement is successfully completed, the last inserted row ID is returned. // see also: SqliteQueryRunner.query() value = insertResult - entityNum + entityIndex + 1; // } else if (generatedColumn.generationStrategy === "uuid") { // value = insertValue[generatedColumn.databaseName]; } if (!value) return map; return OrmUtils["a" /* OrmUtils */].mergeDeep(map, generatedColumn.createValueMap(value)); }, {}); return Object.keys(generatedMap).length > 0 ? generatedMap : undefined; }; /** * Differentiate columns of this table and columns from the given column metadatas columns * and returns only changed. */ AbstractSqliteDriver.prototype.findChangedColumns = function (tableColumns, columnMetadatas) { var _this = this; return columnMetadatas.filter(function (columnMetadata) { var tableColumn = tableColumns.find(function (c) { return c.name === columnMetadata.databaseName; }); if (!tableColumn) return false; // we don't need new columns, we only need exist and changed // console.log("table:", columnMetadata.entityMetadata.tableName); // console.log("name:", tableColumn.name, columnMetadata.databaseName); // console.log("type:", tableColumn.type, this.normalizeType(columnMetadata)); // console.log("length:", tableColumn.length, columnMetadata.length); // console.log("precision:", tableColumn.precision, columnMetadata.precision); // console.log("scale:", tableColumn.scale, columnMetadata.scale); // console.log("comment:", tableColumn.comment, columnMetadata.comment); // console.log("default:", this.normalizeDefault(columnMetadata), columnMetadata.default); // console.log("isPrimary:", tableColumn.isPrimary, columnMetadata.isPrimary); // console.log("isNullable:", tableColumn.isNullable, columnMetadata.isNullable); // console.log("isUnique:", tableColumn.isUnique, this.normalizeIsUnique(columnMetadata)); // console.log("isGenerated:", tableColumn.isGenerated, columnMetadata.isGenerated); // console.log("=========================================="); return tableColumn.name !== columnMetadata.databaseName || tableColumn.type !== _this.normalizeType(columnMetadata) || tableColumn.length !== columnMetadata.length || tableColumn.precision !== columnMetadata.precision || tableColumn.scale !== columnMetadata.scale // || tableColumn.comment !== columnMetadata.comment || // todo || _this.normalizeDefault(columnMetadata) !== tableColumn.default || tableColumn.isPrimary !== columnMetadata.isPrimary || tableColumn.isNullable !== columnMetadata.isNullable || tableColumn.isUnique !== _this.normalizeIsUnique(columnMetadata) || (columnMetadata.generationStrategy !== "uuid" && tableColumn.isGenerated !== columnMetadata.isGenerated); }); }; /** * Returns true if driver supports RETURNING / OUTPUT statement. */ AbstractSqliteDriver.prototype.isReturningSqlSupported = function () { return false; }; /** * Returns true if driver supports uuid values generation on its own. */ AbstractSqliteDriver.prototype.isUUIDGenerationSupported = function () { return false; }; /** * Returns true if driver supports fulltext indices. */ AbstractSqliteDriver.prototype.isFullTextColumnTypeSupported = function () { return false; }; /** * Creates an escaped parameter. */ AbstractSqliteDriver.prototype.createParameter = function (parameterName, index) { // return "$" + (index + 1); return "?"; // return "$" + parameterName; }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Creates connection with the database. */ AbstractSqliteDriver.prototype.createDatabaseConnection = function () { throw new Error("Do not use AbstractSqlite directly, it has to be used with one of the sqlite drivers"); }; /** * If driver dependency is not given explicitly, then try to load it via "require". */ AbstractSqliteDriver.prototype.loadDependencies = function () { // dependencies have to be loaded in the specific driver }; return AbstractSqliteDriver; }()); //# sourceMappingURL=AbstractSqliteDriver.js.map /***/ }), /* 17 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); __exportStar(__webpack_require__(476), exports); __exportStar(__webpack_require__(477), exports); __exportStar(__webpack_require__(7), exports); __exportStar(__webpack_require__(192), exports); __exportStar(__webpack_require__(478), exports); __exportStar(__webpack_require__(489), exports); __exportStar(__webpack_require__(490), exports); __exportStar(__webpack_require__(491), exports); __exportStar(__webpack_require__(251), exports); //# sourceMappingURL=shared.js.map /***/ }), /* 18 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SoundManager = void 0; var AudioChain_1 = __webpack_require__(268); var Helper_1 = __webpack_require__(7); var App_1 = __webpack_require__(33); var DataManager_1 = __webpack_require__(59); var SoundManager = /*#__PURE__*/function () { function SoundManager() { var _this = this; _classCallCheck(this, SoundManager); this.channels = {}; if ('AudioContext' in window) { this.context = new AudioContext(); } else if ('webkitAudioContext' in window) { // @ts-ignore this.context = new webkitAudioContext(); } else { throw new Error("No audio context found!"); } this.context.onstatechange = function () { console.log("stateChange from context", arguments); }; this.context.oncomplete = function () { console.log("onComplete from context", arguments); }; window.addEventListener("visibilitychange", function (e) { // console.log("visibility Change event", e); _this.handleVisibilityChange(); }); //For safari var checkVisibility = function checkVisibility() { _this.handleVisibilityChange(); setTimeout(checkVisibility, 500); }; checkVisibility(); } _createClass(SoundManager, [{ key: "isNotSuspended", value: function isNotSuspended() { // return false; return this.context.state !== "suspended"; } }, { key: "set", value: function set(options, channel) { var _this2 = this; channel = Helper_1.Helper.nonNull(channel, SoundManager.CHANNELS.DEFAULT); var audioObject = Helper_1.Helper.nonNull(this.channels[channel], {}); if (typeof options === "string") { options = { audio: options }; } var audio = options.audio; if (Helper_1.Helper.isNotNull(audio)) { audioObject.loadedPromise = DataManager_1.DataManager.loadAsset(audio, "raw").then(function (res) { return res.arrayBuffer(); }).then(function (arrayBuffer) { return new Promise(function (r, reject) { return _this2.context.decodeAudioData(arrayBuffer, r); }); }).catch(function (e) { return console.error(e); }); // audioObject.loadedPromise = fetch(audio).then(res => res.arrayBuffer()).then(arrayBuffer => { // return new Promise((r, reject) => this.context.decodeAudioData(arrayBuffer, r)); // }).catch(e => console.error(e)); this.stop(channel); } audioObject.muted = Helper_1.Helper.nonNull(options.muted, audioObject.muted, false); audioObject.volume = Helper_1.Helper.nonNull(options.volume, audioObject.volume, 1); audioObject.loop = Helper_1.Helper.nonNull(options.loop, audioObject.loop, false); audioObject.timeOffset = Helper_1.Helper.nonNull(options.timeOffset, audioObject.timeOffset, 0); this.channels[channel] = audioObject; if (audioObject.muted) { this.stop(channel); } return this.channels[channel]; } }, { key: "resumeContext", value: function resumeContext() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!(typeof this.context.resume === "function")) { _context.next = 2; break; } return _context.abrupt("return", this.context.resume()); case 2: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "play", value: function play(channel, audioOrOptions) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var _this3 = this; var buffer, source; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: this.resumeContext(); channel = Helper_1.Helper.nonNull(channel, SoundManager.CHANNELS.DEFAULT); if (Helper_1.Helper.isNull(audioOrOptions)) { audioOrOptions = {}; } else if (!(_typeof(audioOrOptions) === "object")) { audioOrOptions = { audio: audioOrOptions }; } audioOrOptions.timeOffset = Helper_1.Helper.nonNull(audioOrOptions.timeOffset, 0); this.stop(channel); this.set(audioOrOptions, channel); if (this.channels[channel].muted) { _context2.next = 16; break; } _context2.next = 9; return this.channels[channel].loadedPromise; case 9: buffer = _context2.sent; source = new AudioChain_1.AudioChain(this.context, buffer, function (sourceNode) { var gain = _this3.context.createGain(); gain.gain.value = _this3.channels[channel].volume; sourceNode.connect(gain); gain.connect(_this3.context.destination); }); source.setBuffer(buffer); //to prevent gap in mp3-files source.setLooping(this.channels[channel].loop, 0.3, buffer.duration - 0.3); this.channels[channel].source = source; _context2.next = 16; return source.start(); case 16: return _context2.abrupt("return", this.channels[channel]); case 17: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "stop", value: function stop(channel) { channel = Helper_1.Helper.nonNull(channel, SoundManager.CHANNELS.DEFAULT); var oldAudio = this.channels[channel]; if (Helper_1.Helper.isNotNull(oldAudio) && Helper_1.Helper.isNotNull(oldAudio.source)) { oldAudio.source.stop(); } } }, { key: "get", value: function get(channel) { channel = Helper_1.Helper.nonNull(channel, SoundManager.CHANNELS.DEFAULT); return this.channels[channel]; } }, { key: "resume", value: function resume(channel) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: channel = Helper_1.Helper.nonNull(channel, SoundManager.CHANNELS.DEFAULT); if (!(Helper_1.Helper.isNotNull(this.channels[channel]) && !this.channels[channel].muted && Helper_1.Helper.isNotNull(this.channels[channel].source))) { _context3.next = 3; break; } return _context3.abrupt("return", this.channels[channel].source.resume()); case 3: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "stopAll", value: function stopAll() { for (var k in this.channels) { if (Helper_1.Helper.isNotNull(this.channels[k].source)) { this.channels[k].source.stop(); } } } }, { key: "resumeAllIfNotMuted", value: function resumeAllIfNotMuted() { for (var k in this.channels) { if (Helper_1.Helper.isNotNull(this.channels[k]) && !this.channels[k].muted && Helper_1.Helper.isNotNull(this.channels[k].source)) { this.channels[k].source.resume(); } } } }, { key: "handleVisibilityChange", value: function handleVisibilityChange() { if (document.hidden) { this.stopAll(); } else { this.resumeAllIfNotMuted(); } } }], [{ key: "getInstance", value: function getInstance() { if (Helper_1.Helper.isNull(SoundManager._instance)) { SoundManager._instance = new SoundManager(); } return SoundManager._instance; } }]); return SoundManager; }(); exports.SoundManager = SoundManager; SoundManager.CHANNELS = { MUSIC: "music", SOUND: "sound", DEFAULT: "default" }; App_1.App.addInitialization(function (app) {// PauseSite.onPauseListeners.push(() => { // SoundManager.getInstance().stopAll(); // }); // PauseSite.onStartListeners.push(() => { // SoundManager.getInstance().resumeAllIfNotMuted(); // }); }); // AndroidBridge.addDefinition(() => { // window["soundManagerInstance"] = SoundManager.getInstance(); // window["soundManagerInstance"]["stopAll"] = window["soundManagerInstance"].stopAll; // window["soundManagerInstance"]["resumeAllIfNotMuted"] = window["soundManagerInstance"].resumeAllIfNotMuted; // }); /***/ }), /* 19 */ /***/ (function(module, exports, __webpack_require__) { var store = __webpack_require__(134)('wks'); var uid = __webpack_require__(88); var Symbol = __webpack_require__(11).Symbol; var USE_SYMBOL = typeof Symbol == 'function'; var $exports = module.exports = function (name) { return store[name] || (store[name] = USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); }; $exports.store = store; /***/ }), /* 20 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function __export(m) { for (var p in m) { if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } } Object.defineProperty(exports, "__esModule", { value: true }); __export(__webpack_require__(148)); __export(__webpack_require__(208)); __export(__webpack_require__(20)); /***/ }), /* 21 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DriverUtils; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var _util_StringUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49); /** * Common driver utility functions. */ var DriverUtils = /** @class */ (function () { function DriverUtils() { } // ------------------------------------------------------------------------- // Public Static Methods // ------------------------------------------------------------------------- /** * Normalizes and builds a new driver options. * Extracts settings from connection url and sets to a new options object. */ DriverUtils.buildDriverOptions = function (options, buildOptions) { var e_1, _a; if (options.url) { var urlDriverOptions = this.parseConnectionUrl(options.url); if (buildOptions && buildOptions.useSid && urlDriverOptions.database) { urlDriverOptions.sid = urlDriverOptions.database; } try { for (var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __values */ "g"])(Object.keys(urlDriverOptions)), _c = _b.next(); !_c.done; _c = _b.next()) { var key = _c.value; if (typeof urlDriverOptions[key] === "undefined") { delete urlDriverOptions[key]; } } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_1) throw e_1.error; } } return Object.assign({}, options, urlDriverOptions); } return Object.assign({}, options); }; /** * buildDriverOptions for MongodDB only to support replica set */ DriverUtils.buildMongoDBDriverOptions = function (options, buildOptions) { var e_2, _a; if (options.url) { var urlDriverOptions = this.parseMongoDBConnectionUrl(options.url); if (buildOptions && buildOptions.useSid && urlDriverOptions.database) { urlDriverOptions.sid = urlDriverOptions.database; } try { for (var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __values */ "g"])(Object.keys(urlDriverOptions)), _c = _b.next(); !_c.done; _c = _b.next()) { var key = _c.value; if (typeof urlDriverOptions[key] === "undefined") { delete urlDriverOptions[key]; } } } catch (e_2_1) { e_2 = { error: e_2_1 }; } finally { try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_2) throw e_2.error; } } return Object.assign({}, options, urlDriverOptions); } return Object.assign({}, options); }; /** * Builds column alias from given alias name and column name. * * If alias length is greater than the limit (if any) allowed by the current * driver, replaces it with a hashed string. * * @param driver Current `Driver`. * @param alias Alias part. * @param column Name of the column to be concatened to `alias`. * * @return An alias allowing to select/transform the target `column`. */ DriverUtils.buildColumnAlias = function (_a, alias, column) { var maxAliasLength = _a.maxAliasLength; var columnAliasName = alias + "_" + column; if (maxAliasLength && maxAliasLength > 0 && columnAliasName.length > maxAliasLength) { return Object(_util_StringUtils__WEBPACK_IMPORTED_MODULE_1__[/* hash */ "b"])(columnAliasName, { length: maxAliasLength }); } return columnAliasName; }; // ------------------------------------------------------------------------- // Private Static Methods // ------------------------------------------------------------------------- /** * Extracts connection data from the connection url. */ DriverUtils.parseConnectionUrl = function (url) { var type = url.split(":")[0]; var firstSlashes = url.indexOf("//"); var preBase = url.substr(firstSlashes + 2); var secondSlash = preBase.indexOf("/"); var base = (secondSlash !== -1) ? preBase.substr(0, secondSlash) : preBase; var afterBase = (secondSlash !== -1) ? preBase.substr(secondSlash + 1) : undefined; // remove mongodb query params if (afterBase && afterBase.indexOf("?") !== -1) { afterBase = afterBase.substr(0, afterBase.indexOf("?")); } var lastAtSign = base.lastIndexOf("@"); var usernameAndPassword = base.substr(0, lastAtSign); var hostAndPort = base.substr(lastAtSign + 1); var username = usernameAndPassword; var password = ""; var firstColon = usernameAndPassword.indexOf(":"); if (firstColon !== -1) { username = usernameAndPassword.substr(0, firstColon); password = usernameAndPassword.substr(firstColon + 1); } var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(hostAndPort.split(":"), 2), host = _a[0], port = _a[1]; return { type: type, host: host, username: decodeURIComponent(username), password: decodeURIComponent(password), port: port ? parseInt(port) : undefined, database: afterBase || undefined }; }; /** * Extracts connection data from the connection url for MongoDB to support replica set. */ DriverUtils.parseMongoDBConnectionUrl = function (url) { var _a; var type = url.split(":")[0]; var firstSlashes = url.indexOf("//"); var preBase = url.substr(firstSlashes + 2); var secondSlash = preBase.indexOf("/"); var base = (secondSlash !== -1) ? preBase.substr(0, secondSlash) : preBase; var afterBase = (secondSlash !== -1) ? preBase.substr(secondSlash + 1) : undefined; var afterQuestionMark = ""; var host = undefined; var port = undefined; var hostReplicaSet = undefined; var replicaSet = undefined; // remove mongodb query params if (afterBase && afterBase.indexOf("?") !== -1) { // split params to get replica set afterQuestionMark = afterBase.substr((afterBase.indexOf("?") + 1), afterBase.length); replicaSet = afterQuestionMark.split("=")[1]; afterBase = afterBase.substr(0, afterBase.indexOf("?")); } var lastAtSign = base.lastIndexOf("@"); var usernameAndPassword = base.substr(0, lastAtSign); var hostAndPort = base.substr(lastAtSign + 1); var username = usernameAndPassword; var password = ""; var firstColon = usernameAndPassword.indexOf(":"); if (firstColon !== -1) { username = usernameAndPassword.substr(0, firstColon); password = usernameAndPassword.substr(firstColon + 1); } if (replicaSet) { hostReplicaSet = hostAndPort; } else { _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(hostAndPort.split(":"), 2), host = _a[0], port = _a[1]; } return { type: type, host: host, hostReplicaSet: hostReplicaSet, username: decodeURIComponent(username), password: decodeURIComponent(password), port: port ? parseInt(port) : undefined, database: afterBase || undefined, replicaSet: replicaSet || undefined }; }; return DriverUtils; }()); //# sourceMappingURL=DriverUtils.js.map /***/ }), /* 22 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DateUtils; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Provides utilities to transform hydrated and persisted data. */ var DateUtils = /** @class */ (function () { function DateUtils() { } // ------------------------------------------------------------------------- // Public Static Methods // ------------------------------------------------------------------------- /** * Normalizes date object hydrated from the database. */ DateUtils.normalizeHydratedDate = function (mixedDate) { if (!mixedDate) return mixedDate; return typeof mixedDate === "string" ? new Date(mixedDate) : mixedDate; }; /** * Converts given value into date string in a "YYYY-MM-DD" format. */ DateUtils.mixedDateToDateString = function (value) { if (value instanceof Date) return this.formatZerolessValue(value.getFullYear()) + "-" + this.formatZerolessValue(value.getMonth() + 1) + "-" + this.formatZerolessValue(value.getDate()); return value; }; /** * Converts given value into date object. */ DateUtils.mixedDateToDate = function (mixedDate, toUtc, useMilliseconds) { if (toUtc === void 0) { toUtc = false; } if (useMilliseconds === void 0) { useMilliseconds = true; } var date = typeof mixedDate === "string" ? new Date(mixedDate) : mixedDate; if (toUtc) date = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds()); if (!useMilliseconds) date.setUTCMilliseconds(0); return date; }; /** * Converts given value into time string in a "HH:mm:ss" format. */ DateUtils.mixedDateToTimeString = function (value, skipSeconds) { if (skipSeconds === void 0) { skipSeconds = false; } if (value instanceof Date) return this.formatZerolessValue(value.getHours()) + ":" + this.formatZerolessValue(value.getMinutes()) + (!skipSeconds ? ":" + this.formatZerolessValue(value.getSeconds()) : ""); return value; }; /** * Converts given value into time string in a "HH:mm:ss" format. */ DateUtils.mixedTimeToDate = function (value) { if (typeof value === "string") { var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(value.split(":"), 3), hours = _a[0], minutes = _a[1], seconds = _a[2]; var date = new Date(); if (hours) date.setHours(parseInt(hours)); if (minutes) date.setMinutes(parseInt(minutes)); if (seconds) date.setSeconds(parseInt(seconds)); return date; } return value; }; /** * Converts given string value with "-" separator into a "HH:mm:ss" format. */ DateUtils.mixedTimeToString = function (value, skipSeconds) { if (skipSeconds === void 0) { skipSeconds = false; } value = value instanceof Date ? (value.getHours() + ":" + value.getMinutes() + (!skipSeconds ? ":" + value.getSeconds() : "")) : value; if (typeof value === "string") { return value.split(":") .map(function (v) { return v.length === 1 ? "0" + v : v; }) // append zero at beginning if we have a first-zero-less number .join(":"); } return value; }; /** * Converts given value into datetime string in a "YYYY-MM-DD HH-mm-ss" format. */ DateUtils.mixedDateToDatetimeString = function (value, useMilliseconds) { if (typeof value === "string") { value = new Date(value); } if (value instanceof Date) { var finalValue = this.formatZerolessValue(value.getFullYear()) + "-" + this.formatZerolessValue(value.getMonth() + 1) + "-" + this.formatZerolessValue(value.getDate()) + " " + this.formatZerolessValue(value.getHours()) + ":" + this.formatZerolessValue(value.getMinutes()) + ":" + this.formatZerolessValue(value.getSeconds()); if (useMilliseconds) finalValue += "." + this.formatMilliseconds(value.getMilliseconds()); value = finalValue; } return value; }; /** * Converts given value into utc datetime string in a "YYYY-MM-DD HH-mm-ss.sss" format. */ DateUtils.mixedDateToUtcDatetimeString = function (value) { if (typeof value === "string") { value = new Date(value); } if (value instanceof Date) { return this.formatZerolessValue(value.getUTCFullYear()) + "-" + this.formatZerolessValue(value.getUTCMonth() + 1) + "-" + this.formatZerolessValue(value.getUTCDate()) + " " + this.formatZerolessValue(value.getUTCHours()) + ":" + this.formatZerolessValue(value.getUTCMinutes()) + ":" + this.formatZerolessValue(value.getUTCSeconds()) + "." + this.formatMilliseconds(value.getUTCMilliseconds()); } return value; }; /** * Converts each item in the given array to string joined by "," separator. */ DateUtils.simpleArrayToString = function (value) { if (Array.isArray(value)) { return value .map(function (i) { return String(i); }) .join(","); } return value; }; /** * Converts given string to simple array split by "," separator. */ DateUtils.stringToSimpleArray = function (value) { if (value instanceof String || typeof value === "string") { if (value.length > 0) { return value.split(","); } else { return []; } } return value; }; DateUtils.simpleJsonToString = function (value) { return JSON.stringify(value); }; DateUtils.stringToSimpleJson = function (value) { return typeof value === "string" ? JSON.parse(value) : value; }; DateUtils.simpleEnumToString = function (value) { return "" + value; }; DateUtils.stringToSimpleEnum = function (value, columnMetadata) { if (columnMetadata.enum && !isNaN(value) && columnMetadata.enum.indexOf(parseInt(value)) >= 0) { // convert to number if that exists in poosible enum options value = parseInt(value); } return value; }; // ------------------------------------------------------------------------- // Private Static Methods // ------------------------------------------------------------------------- /** * Formats given number to "0x" format, e.g. if it is 1 then it will return "01". */ DateUtils.formatZerolessValue = function (value) { if (value < 10) return "0" + value; return String(value); }; /** * Formats given number to "0x" format, e.g. if it is 1 then it will return "01". */ DateUtils.formatMilliseconds = function (value) { if (value < 10) { return "00" + value; } else if (value < 100) { return "0" + value; } else { return String(value); } }; return DateUtils; }()); //# sourceMappingURL=DateUtils.js.map /***/ }), /* 23 */ /***/ (function(module, exports, __webpack_require__) { // 7.1.15 ToLength var toInteger = __webpack_require__(65); var min = Math.min; module.exports = function (it) { return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 }; /***/ }), /* 24 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ObjectUtils; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); var ObjectUtils = /** @class */ (function () { function ObjectUtils() { } /** * Copy the values of all of the enumerable own properties from one or more source objects to a * target object. Returns the target object. * @param target The target object to copy to. * @param sources One or more source objects from which to copy properties */ ObjectUtils.assign = function (target) { var e_1, _a, e_2, _b; var sources = []; for (var _i = 1; _i < arguments.length; _i++) { sources[_i - 1] = arguments[_i]; } try { for (var sources_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __values */ "g"])(sources), sources_1_1 = sources_1.next(); !sources_1_1.done; sources_1_1 = sources_1.next()) { var source = sources_1_1.value; try { for (var _c = (e_2 = void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __values */ "g"])(Object.getOwnPropertyNames(source))), _d = _c.next(); !_d.done; _d = _c.next()) { var prop = _d.value; target[prop] = source[prop]; } } catch (e_2_1) { e_2 = { error: e_2_1 }; } finally { try { if (_d && !_d.done && (_b = _c.return)) _b.call(_c); } finally { if (e_2) throw e_2.error; } } } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (sources_1_1 && !sources_1_1.done && (_a = sources_1.return)) _a.call(sources_1); } finally { if (e_1) throw e_1.error; } } }; return ObjectUtils; }()); //# sourceMappingURL=ObjectUtils.js.map /***/ }), /* 25 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TableColumn; }); /** * Table's columns in the database represented in this class. */ var TableColumn = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function TableColumn(options) { /** * Indicates if column is NULL, or is NOT NULL in the database. */ this.isNullable = false; /** * Indicates if column is auto-generated sequence. */ this.isGenerated = false; /** * Indicates if column is a primary key. */ this.isPrimary = false; /** * Indicates if column has unique value. */ this.isUnique = false; /** * Indicates if column stores array. */ this.isArray = false; /** * Column type's length. Used only on some column types. * For example type = "string" and length = "100" means that ORM will create a column with type varchar(100). */ this.length = ""; /** * Puts ZEROFILL attribute on to numeric column. Works only for MySQL. * If you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to the column */ this.zerofill = false; /** * Puts UNSIGNED attribute on to numeric column. Works only for MySQL. */ this.unsigned = false; if (options) { this.name = options.name; this.type = options.type || ""; this.length = options.length || ""; this.width = options.width; this.charset = options.charset; this.collation = options.collation; this.precision = options.precision; this.scale = options.scale; this.zerofill = options.zerofill || false; this.unsigned = this.zerofill ? true : (options.unsigned || false); this.default = options.default; this.onUpdate = options.onUpdate; this.isNullable = options.isNullable || false; this.isGenerated = options.isGenerated || false; this.generationStrategy = options.generationStrategy; this.isPrimary = options.isPrimary || false; this.isUnique = options.isUnique || false; this.isArray = options.isArray || false; this.comment = options.comment; this.enum = options.enum; this.enumName = options.enumName; this.asExpression = options.asExpression; this.generatedType = options.generatedType; this.spatialFeatureType = options.spatialFeatureType; this.srid = options.srid; } } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Clones this column to a new column with exact same properties as this column has. */ TableColumn.prototype.clone = function () { return new TableColumn({ name: this.name, type: this.type, length: this.length, width: this.width, charset: this.charset, collation: this.collation, precision: this.precision, scale: this.scale, zerofill: this.zerofill, unsigned: this.unsigned, enum: this.enum, enumName: this.enumName, asExpression: this.asExpression, generatedType: this.generatedType, default: this.default, onUpdate: this.onUpdate, isNullable: this.isNullable, isGenerated: this.isGenerated, generationStrategy: this.generationStrategy, isPrimary: this.isPrimary, isUnique: this.isUnique, isArray: this.isArray, comment: this.comment, spatialFeatureType: this.spatialFeatureType, srid: this.srid }); }; return TableColumn; }()); //# sourceMappingURL=TableColumn.js.map /***/ }), /* 26 */ /***/ (function(module, exports) { var core = module.exports = { version: '2.6.12' }; if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef /***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ViewHelper = void 0; class ViewHelper { /** * Entfernt alle Children eines Elements * * @param element * @returns {Node} */ static removeAllChildren(element) { if (element instanceof Node) { while (element.firstChild) { element.removeChild(element.firstChild); } } return element; } /** * Moves the child-Nodes from one element to another * @param from * @param to * @returns {*} */ static moveChildren(from, to) { let children = []; //Zwischenspeichern der Children, da removeChild die forEach-Schleife durcheinander bringt from.childNodes.forEach(child => { children.push(child); }); children.forEach(child => { from.removeChild(child); to.appendChild(child); }); return to; } static insertAfter(newChild, referenceChild) { const parent = referenceChild.parentNode; if (parent) { if (parent.lastChild === referenceChild) { parent.appendChild(newChild); } else { parent.insertBefore(newChild, referenceChild.nextSibling); } return true; } return false; } } exports.ViewHelper = ViewHelper; //# sourceMappingURL=ViewHelper.js.map /***/ }), /* 28 */ /***/ (function(module, exports, __webpack_require__) { // Thank's IE8 for his funny defineProperty module.exports = !__webpack_require__(12)(function () { return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; }); /***/ }), /* 29 */ /***/ (function(module, exports, __webpack_require__) { var anObject = __webpack_require__(13); var IE8_DOM_DEFINE = __webpack_require__(213); var toPrimitive = __webpack_require__(82); var dP = Object.defineProperty; exports.f = __webpack_require__(28) ? Object.defineProperty : function defineProperty(O, P, Attributes) { anObject(O); P = toPrimitive(P, true); anObject(Attributes); if (IE8_DOM_DEFINE) try { return dP(O, P, Attributes); } catch (e) { /* empty */ } if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); if ('value' in Attributes) O[P] = Attributes.value; return O; }; /***/ }), /* 30 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Translator = void 0; var NativeStoragePromise_1 = __webpack_require__(42); var Helper_1 = __webpack_require__(15); var Translator_1 = __webpack_require__(246); /** * Singleton-Klasse zum Übersetzen von Text-Inhalten */ var Translator = /*#__PURE__*/function (_Translator_1$Transla) { _inherits(Translator, _Translator_1$Transla); var _super = _createSuper(Translator); /** * Erstellt einen neuen Translator * @param config */ function Translator(config) { var _this; _classCallCheck(this, Translator); _this = _super.call(this, config); config = Helper_1.Helper.nonNull(config, {}); _this._currentLanguage = config.currentLanguage || _this._fallbackLanguage; _this._nativeStorageKey = config.nativeStorageKey || "language"; _this._translationClass = config.translationClass || "translation"; _this._initPromise = _this.loadUserLanguage().then(function (userLanguage) { return _this.setLanguage(userLanguage.toLowerCase()); }); return _this; } /** * Setzt die neue Sprache, updated alle Übersetzungen. Speichert danach die aktuelle Sprache in NativeStorage * @param language */ _createClass(Translator, [{ key: "setLanguage", value: function setLanguage(language) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!(this._currentLanguage === language)) { _context.next = 4; break; } _context.next = 3; return this.updateTranslations(); case 3: return _context.abrupt("return"); case 4: if (this._translations[language]) { _context.next = 6; break; } return _context.abrupt("return"); case 6: if (typeof document !== 'undefined') { document.getElementsByTagName("html")[0].setAttribute("lang", language); } this._currentLanguage = language; _context.next = 10; return this.updateTranslations(); case 10: _context.next = 12; return NativeStoragePromise_1.NativeStoragePromise.setItem(this._nativeStorageKey, this._currentLanguage); case 12: case "end": return _context.stop(); } } }, _callee, this); })); } /** * Übersetzt sofort einen Key in die aktuelle Sprache * @param key * @param args * @returns {*} */ }, { key: "translate", value: function translate(key, args, language) { return _get(_getPrototypeOf(Translator.prototype), "translate", this).call(this, key, args, Helper_1.Helper.nonNull(language, this._currentLanguage)); } /** * Fügt eine Callback hinzu, die aufgerufen wird, sobald die Seite übersetzt wird. Sollte genutzt werden, um Teile * zu übersetzen, die nicht per HTML übersetzt werden können, die der Document Title * * wenn callImmediately true ist (default), wird die Callback sofort einmal ausgeführt * * Gibt die CallbackId zurück * * @param callback * @param callImmediately * @returns {number} */ }, { key: "addTranslationCallback", value: function addTranslationCallback(callback, callImmediately) { callImmediately = Helper_1.Helper.nonNull(callImmediately, true); this._lastTranslationCallbackId++; this._translationCallbacks.set(this._lastTranslationCallbackId, callback); if (callImmediately) { callback(); } return this._lastTranslationCallbackId; } /** * Entfernt die Callback anhand der gegebenen ID * * @param callbackId */ }, { key: "removeTranslationCallback", value: function removeTranslationCallback(callbackId) { this._translationCallbacks.delete(callbackId); } /** * Updated die aktuellen übersetzungen */ }, { key: "updateTranslations", value: function updateTranslations(baseElement) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var _this2 = this; var elements, i, max, key, translation, k; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: baseElement = Helper_1.Helper.nonNull(baseElement, document); if (typeof baseElement !== 'undefined') { elements = baseElement.getElementsByClassName(this._translationClass); for (i = 0, max = elements.length; i < max; i++) { key = Translator._isValid(elements[i].dataset["translation"]) ? elements[i].dataset["translation"] : elements[i].innerText || ""; if (key !== "" && !elements[i].dataset["onlyTranslateAttributes"]) { try { translation = this.translate(key, elements[i].dataset["translationArgs"] !== undefined ? JSON.parse(elements[i].dataset["translationArgs"]) : undefined); if (elements[i].dataset["translationUseText"] === "1") { elements[i].innerText = translation; } else { elements[i].innerHTML = translation; } elements[i].dataset["translation"] = key; } catch (err) { console.error("wrong configured translation: " + err); } } //Übersetzung von Attributen for (k in elements[i].dataset) { if (k.startsWith("translation") && !k.endsWith("Args")) { try { elements[i][k.substr(11).toLowerCase()] = this.translate(elements[i].dataset[k], elements[i].dataset[k + "Args"] !== undefined ? JSON.parse(elements[i].dataset[k + "Args"]) : undefined); } catch (err) { console.error("wrong configured translation: " + err); } } } } } //Call translation callbacks _context3.next = 4; return Helper_1.Helper.asyncForEach(this._translationCallbacks, function (callback) { return __awaiter(_this2, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", callback(baseElement)); case 1: case "end": return _context2.stop(); } } }, _callee2); })); }); case 4: case "end": return _context3.stop(); } } }, _callee3, this); })); } /** * Lädt die im NativeStorage gespeicherte Sprache oder - falls diese nicht vorhanden ist - die vom User untersütze Sprache im Browser * @returns {Promise<*>} */ }, { key: "loadUserLanguage", value: function loadUserLanguage() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var userLanguage, userLanguages, i, numLanguages; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return NativeStoragePromise_1.NativeStoragePromise.getItem(this._nativeStorageKey); case 2: userLanguage = _context4.sent; if (!(!Translator._isValid(userLanguage) || !(userLanguage in this._translations))) { _context4.next = 16; break; } userLanguages = []; if (navigator.language !== undefined) { userLanguages.push(navigator.language); } if ("languages" in navigator) { //.slice(0) klont das Array. Behebt einen Bug in Firefox userLanguages = navigator.languages.slice(0); } //sicherstellen, dass überhaupt eine Sprache gefunden wird userLanguages.push(this._fallbackLanguage); // if (userLanguages !== undefined) { i = 0, numLanguages = userLanguages.length; case 9: if (!(i < numLanguages)) { _context4.next = 16; break; } if (!(userLanguages[i] in this._translations)) { _context4.next = 13; break; } userLanguage = userLanguages[i]; return _context4.abrupt("break", 16); case 13: i++; _context4.next = 9; break; case 16: return _context4.abrupt("return", userLanguage); case 17: case "end": return _context4.stop(); } } }, _callee4, this); })); } /** * Erstellt eine neue Übersetzung, welche auch übersetzt wird, wenn die Sprache geändert wird * @param key * @param args * @param tag * @param useText * @returns {any} */ }, { key: "makePersistentTranslation", value: function makePersistentTranslation(key, args, tag, useText) { useText = Helper_1.Helper.nonNull(useText, tag, args, false); tag = tag || "span"; if (typeof document !== 'undefined') { var htmlElem = document.createElement(tag); htmlElem.dataset["translation"] = key; htmlElem.classList.add(this._translationClass); if (args !== undefined) { htmlElem.dataset["translationArgs"] = JSON.stringify(args); } if (useText === true) { htmlElem.innerText = this.translate(key, args); htmlElem.dataset["translationUseText"] = "1"; } else { htmlElem.innerHTML = this.translate(key, args); } return htmlElem; } } }, { key: "getTranslationClass", value: function getTranslationClass() { return this._translationClass; } }, { key: "getCurrentLanguage", value: function getCurrentLanguage() { return this._currentLanguage; } }], [{ key: "getInstance", value: function getInstance() { return Translator_1.Translator.getInstance(); } }, { key: "setLanguage", value: function setLanguage(language) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var instance; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: instance = Translator.getInstance(); if (!instance) { _context5.next = 3; break; } return _context5.abrupt("return", instance.setLanguage(language)); case 3: case "end": return _context5.stop(); } } }, _callee5); })); } }, { key: "makePersistentTranslation", value: function makePersistentTranslation(key, args, tag, useText) { var instance = Translator.getInstance(); if (instance) { return instance.makePersistentTranslation(key, args, tag, useText); } } }, { key: "addTranslationCallback", value: function addTranslationCallback(callback, callImmediately) { var instance = Translator.getInstance(); if (instance) { return instance.addTranslationCallback(callback, callImmediately); } } }, { key: "removeTranslationCallback", value: function removeTranslationCallback(callbackId) { var instance = Translator.getInstance(); if (instance) { return instance.removeTranslationCallback(callbackId); } } }, { key: "updateTranslations", value: function updateTranslations(baseElement) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var instance; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: instance = Translator.getInstance(); if (!instance) { _context6.next = 3; break; } return _context6.abrupt("return", instance.updateTranslations(baseElement)); case 3: case "end": return _context6.stop(); } } }, _callee6); })); } }, { key: "init", value: function init(config) { Translator_1.Translator.instance = new Translator(config); } }]); return Translator; }(Translator_1.Translator); exports.Translator = Translator; Translator._translations = {}; Translator.logMissingTranslations = true; Translator.instance = null; /***/ }), /* 31 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TableUnique; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Database's table unique constraint stored in this class. */ var TableUnique = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function TableUnique(options) { /** * Columns that contains this constraint. */ this.columnNames = []; this.name = options.name; this.columnNames = options.columnNames; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Creates a new copy of this constraint with exactly same properties. */ TableUnique.prototype.clone = function () { return new TableUnique({ name: this.name, columnNames: Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __spreadArray */ "f"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(this.columnNames)) }); }; // ------------------------------------------------------------------------- // Static Methods // ------------------------------------------------------------------------- /** * Creates unique from the unique metadata object. */ TableUnique.create = function (uniqueMetadata) { return new TableUnique({ name: uniqueMetadata.name, columnNames: uniqueMetadata.columns.map(function (column) { return column.databaseName; }) }); }; return TableUnique; }()); //# sourceMappingURL=TableUnique.js.map /***/ }), /* 32 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ColumnMetadata; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6); /* harmony import */ var _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /* harmony import */ var _find_options_FindOperator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9); /* harmony import */ var _util_ApplyValueTransformers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(61); /** * This metadata contains all information about entity's column. */ var ColumnMetadata = /** @class */ (function () { // --------------------------------------------------------------------- // Constructor // --------------------------------------------------------------------- function ColumnMetadata(options) { /** * Type's length in the database. */ this.length = ""; /** * Indicates if this column is a primary key. */ this.isPrimary = false; /** * Indicates if this column is generated (auto increment or generated other way). */ this.isGenerated = false; /** * Indicates if column can contain nulls or not. */ this.isNullable = false; /** * Indicates if column is selected by query builder or not. */ this.isSelect = true; /** * Indicates if column is inserted by default or not. */ this.isInsert = true; /** * Indicates if column allows updates or not. */ this.isUpdate = true; /** * Puts ZEROFILL attribute on to numeric column. Works only for MySQL. * If you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to the column */ this.zerofill = false; /** * Puts UNSIGNED attribute on to numeric column. Works only for MySQL. */ this.unsigned = false; /** * Indicates if this column is an array. */ this.isArray = false; /** * Indicates if column is virtual. Virtual columns are not mapped to the entity. */ this.isVirtual = false; /** * Indicates if column is discriminator. Discriminator columns are not mapped to the entity. */ this.isDiscriminator = false; /** * Indicates if column is tree-level column. Tree-level columns are used in closure entities. */ this.isTreeLevel = false; /** * Indicates if this column contains an entity creation date. */ this.isCreateDate = false; /** * Indicates if this column contains an entity update date. */ this.isUpdateDate = false; /** * Indicates if this column contains an entity delete date. */ this.isDeleteDate = false; /** * Indicates if this column contains an entity version. */ this.isVersion = false; /** * Indicates if this column contains an object id. */ this.isObjectId = false; /** * Indicates if this column is nested set's left column. * Used only in tree entities with nested-set type. */ this.isNestedSetLeft = false; /** * Indicates if this column is nested set's right column. * Used only in tree entities with nested-set type. */ this.isNestedSetRight = false; /** * Indicates if this column is materialized path's path column. * Used only in tree entities with materialized path type. */ this.isMaterializedPath = false; this.entityMetadata = options.entityMetadata; this.embeddedMetadata = options.embeddedMetadata; this.referencedColumn = options.referencedColumn; if (options.args.target) this.target = options.args.target; if (options.args.propertyName) this.propertyName = options.args.propertyName; if (options.args.options.name) this.givenDatabaseName = options.args.options.name; if (options.args.options.type) this.type = options.args.options.type; if (options.args.options.length) this.length = options.args.options.length ? options.args.options.length.toString() : ""; if (options.args.options.width) this.width = options.args.options.width; if (options.args.options.charset) this.charset = options.args.options.charset; if (options.args.options.collation) this.collation = options.args.options.collation; if (options.args.options.primary) this.isPrimary = options.args.options.primary; if (options.args.options.default === null) // to make sure default: null is the same as nullable: true this.isNullable = true; if (options.args.options.nullable !== undefined) this.isNullable = options.args.options.nullable; if (options.args.options.select !== undefined) this.isSelect = options.args.options.select; if (options.args.options.insert !== undefined) this.isInsert = options.args.options.insert; if (options.args.options.update !== undefined) this.isUpdate = options.args.options.update; if (options.args.options.readonly !== undefined) this.isUpdate = !options.args.options.readonly; if (options.args.options.comment) this.comment = options.args.options.comment; if (options.args.options.default !== undefined) this.default = options.args.options.default; if (options.args.options.onUpdate) this.onUpdate = options.args.options.onUpdate; if (options.args.options.scale !== null && options.args.options.scale !== undefined) this.scale = options.args.options.scale; if (options.args.options.zerofill) { this.zerofill = options.args.options.zerofill; this.unsigned = true; // if you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to the column } if (options.args.options.unsigned) this.unsigned = options.args.options.unsigned; if (options.args.options.precision !== undefined) this.precision = options.args.options.precision; if (options.args.options.enum) { if (options.args.options.enum instanceof Object && !Array.isArray(options.args.options.enum)) { this.enum = Object.keys(options.args.options.enum) .filter(function (key) { return isNaN(+key); }) // remove numeric keys - typescript numeric enum types generate them .map(function (key) { return options.args.options.enum[key]; }); } else { this.enum = options.args.options.enum; } } if (options.args.options.enumName) { this.enumName = options.args.options.enumName; } if (options.args.options.asExpression) { this.asExpression = options.args.options.asExpression; this.generatedType = options.args.options.generatedType ? options.args.options.generatedType : "VIRTUAL"; } if (options.args.options.hstoreType) this.hstoreType = options.args.options.hstoreType; if (options.args.options.array) this.isArray = options.args.options.array; if (options.args.mode) { this.isVirtual = options.args.mode === "virtual"; this.isTreeLevel = options.args.mode === "treeLevel"; this.isCreateDate = options.args.mode === "createDate"; this.isUpdateDate = options.args.mode === "updateDate"; this.isDeleteDate = options.args.mode === "deleteDate"; this.isVersion = options.args.mode === "version"; this.isObjectId = options.args.mode === "objectId"; } if (options.args.options.transformer) this.transformer = options.args.options.transformer; if (options.args.options.spatialFeatureType) this.spatialFeatureType = options.args.options.spatialFeatureType; if (options.args.options.srid !== undefined) this.srid = options.args.options.srid; if (this.isTreeLevel) this.type = options.connection.driver.mappedDataTypes.treeLevel; if (this.isCreateDate) { if (!this.type) this.type = options.connection.driver.mappedDataTypes.createDate; if (!this.default) this.default = function () { return options.connection.driver.mappedDataTypes.createDateDefault; }; if (this.precision === undefined && options.connection.driver.mappedDataTypes.createDatePrecision) this.precision = options.connection.driver.mappedDataTypes.createDatePrecision; } if (this.isUpdateDate) { if (!this.type) this.type = options.connection.driver.mappedDataTypes.updateDate; if (!this.default) this.default = function () { return options.connection.driver.mappedDataTypes.updateDateDefault; }; if (!this.onUpdate) this.onUpdate = options.connection.driver.mappedDataTypes.updateDateDefault; if (this.precision === undefined && options.connection.driver.mappedDataTypes.updateDatePrecision) this.precision = options.connection.driver.mappedDataTypes.updateDatePrecision; } if (this.isDeleteDate) { if (!this.type) this.type = options.connection.driver.mappedDataTypes.deleteDate; if (!this.isNullable) this.isNullable = options.connection.driver.mappedDataTypes.deleteDateNullable; if (this.precision === undefined && options.connection.driver.mappedDataTypes.deleteDatePrecision) this.precision = options.connection.driver.mappedDataTypes.deleteDatePrecision; } if (this.isVersion) this.type = options.connection.driver.mappedDataTypes.version; if (options.closureType) this.closureType = options.closureType; if (options.nestedSetLeft) this.isNestedSetLeft = options.nestedSetLeft; if (options.nestedSetRight) this.isNestedSetRight = options.nestedSetRight; if (options.materializedPath) this.isMaterializedPath = options.materializedPath; } // --------------------------------------------------------------------- // Public Methods // --------------------------------------------------------------------- /** * Creates entity id map from the given entity ids array. */ ColumnMetadata.prototype.createValueMap = function (value, useDatabaseName) { var _a; var _this = this; if (useDatabaseName === void 0) { useDatabaseName = false; } // extract column value from embeds of entity if column is in embedded if (this.embeddedMetadata) { // example: post[data][information][counters].id where "data", "information" and "counters" are embeddeds // we need to get value of "id" column from the post real entity object and return it in a // { data: { information: { counters: { id: ... } } } } format // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters] var propertyNames = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __spreadArray */ "f"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(this.embeddedMetadata.parentPropertyNames)); // now need to access post[data][information][counters] to get column value from the counters // and on each step we need to create complex literal object, e.g. first { data }, // then { data: { information } }, then { data: { information: { counters } } }, // then { data: { information: { counters: [this.propertyName]: entity[data][information][counters][this.propertyName] } } } // this recursive function helps doing that var extractEmbeddedColumnValue_1 = function (propertyNames, map) { var propertyName = propertyNames.shift(); if (propertyName) { map[propertyName] = {}; extractEmbeddedColumnValue_1(propertyNames, map[propertyName]); return map; } // this is bugfix for #720 when increment number is bigint we need to make sure its a string if ((_this.generationStrategy === "increment" || _this.generationStrategy === "rowid") && _this.type === "bigint" && value !== null) value = String(value); map[useDatabaseName ? _this.databaseName : _this.propertyName] = value; return map; }; return extractEmbeddedColumnValue_1(propertyNames, {}); } else { // no embeds - no problems. Simply return column property name and its value of the entity // this is bugfix for #720 when increment number is bigint we need to make sure its a string if ((this.generationStrategy === "increment" || this.generationStrategy === "rowid") && this.type === "bigint" && value !== null) value = String(value); return _a = {}, _a[useDatabaseName ? this.databaseName : this.propertyName] = value, _a; } }; /** * Extracts column value and returns its column name with this value in a literal object. * If column is in embedded (or recursive embedded) it returns complex literal object. * * Examples what this method can return depend if this column is in embeds. * { id: 1 } or { title: "hello" }, { counters: { code: 1 } }, { data: { information: { counters: { code: 1 } } } } */ ColumnMetadata.prototype.getEntityValueMap = function (entity, options) { var _a, _b; var _this = this; var returnNulls = false; // options && options.skipNulls === false ? false : true; // todo: remove if current will not bring problems, uncomment if it will. // extract column value from embeds of entity if column is in embedded if (this.embeddedMetadata) { // example: post[data][information][counters].id where "data", "information" and "counters" are embeddeds // we need to get value of "id" column from the post real entity object and return it in a // { data: { information: { counters: { id: ... } } } } format // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters] var propertyNames = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __spreadArray */ "f"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(this.embeddedMetadata.parentPropertyNames)); // now need to access post[data][information][counters] to get column value from the counters // and on each step we need to create complex literal object, e.g. first { data }, // then { data: { information } }, then { data: { information: { counters } } }, // then { data: { information: { counters: [this.propertyName]: entity[data][information][counters][this.propertyName] } } } // this recursive function helps doing that var extractEmbeddedColumnValue_2 = function (propertyNames, value, map) { var propertyName = propertyNames.shift(); if (value === undefined) return map; if (propertyName) { var submap = {}; extractEmbeddedColumnValue_2(propertyNames, value[propertyName], submap); if (Object.keys(submap).length > 0) { map[propertyName] = submap; } return map; } if (value[_this.propertyName] !== undefined && (returnNulls === false || value[_this.propertyName] !== null)) map[_this.propertyName] = value[_this.propertyName]; return map; }; var map = {}; extractEmbeddedColumnValue_2(propertyNames, entity, map); return Object.keys(map).length > 0 ? map : undefined; } else { // no embeds - no problems. Simply return column property name and its value of the entity if (this.relationMetadata && entity[this.relationMetadata.propertyName] && entity[this.relationMetadata.propertyName] instanceof Object) { var map = this.relationMetadata.joinColumns.reduce(function (map, joinColumn) { var value = joinColumn.referencedColumn.getEntityValueMap(entity[_this.relationMetadata.propertyName]); if (value === undefined) return map; return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[/* OrmUtils */ "a"].mergeDeep(map, value); }, {}); if (Object.keys(map).length > 0) return _a = {}, _a[this.propertyName] = map, _a; return undefined; } else { if (entity[this.propertyName] !== undefined && (returnNulls === false || entity[this.propertyName] !== null)) return _b = {}, _b[this.propertyName] = entity[this.propertyName], _b; return undefined; } } }; /** * Extracts column value from the given entity. * If column is in embedded (or recursive embedded) it extracts its value from there. */ ColumnMetadata.prototype.getEntityValue = function (entity, transform) { if (transform === void 0) { transform = false; } if (entity === undefined || entity === null) return undefined; // extract column value from embeddeds of entity if column is in embedded var value = undefined; if (this.embeddedMetadata) { // example: post[data][information][counters].id where "data", "information" and "counters" are embeddeds // we need to get value of "id" column from the post real entity object // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters] var propertyNames = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __spreadArray */ "f"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(this.embeddedMetadata.parentPropertyNames)); // next we need to access post[data][information][counters][this.propertyName] to get column value from the counters // this recursive function takes array of generated property names and gets the post[data][information][counters] embed var extractEmbeddedColumnValue_3 = function (propertyNames, value) { var propertyName = propertyNames.shift(); return propertyName && value ? extractEmbeddedColumnValue_3(propertyNames, value[propertyName]) : value; }; // once we get nested embed object we get its column, e.g. post[data][information][counters][this.propertyName] var embeddedObject = extractEmbeddedColumnValue_3(propertyNames, entity); if (embeddedObject) { if (this.relationMetadata && this.referencedColumn) { var relatedEntity = this.relationMetadata.getEntityValue(embeddedObject); if (relatedEntity && relatedEntity instanceof Object && !(relatedEntity instanceof _find_options_FindOperator__WEBPACK_IMPORTED_MODULE_3__[/* FindOperator */ "a"])) { value = this.referencedColumn.getEntityValue(relatedEntity); } else if (embeddedObject[this.propertyName] && embeddedObject[this.propertyName] instanceof Object && !(embeddedObject[this.propertyName] instanceof _find_options_FindOperator__WEBPACK_IMPORTED_MODULE_3__[/* FindOperator */ "a"])) { value = this.referencedColumn.getEntityValue(embeddedObject[this.propertyName]); } else { value = embeddedObject[this.propertyName]; } } else if (this.referencedColumn) { value = this.referencedColumn.getEntityValue(embeddedObject[this.propertyName]); } else { value = embeddedObject[this.propertyName]; } } } else { // no embeds - no problems. Simply return column name by property name of the entity if (this.relationMetadata && this.referencedColumn) { var relatedEntity = this.relationMetadata.getEntityValue(entity); if (relatedEntity && relatedEntity instanceof Object && !(relatedEntity instanceof _find_options_FindOperator__WEBPACK_IMPORTED_MODULE_3__[/* FindOperator */ "a"]) && !(relatedEntity instanceof Function)) { value = this.referencedColumn.getEntityValue(relatedEntity); } else if (entity[this.propertyName] && entity[this.propertyName] instanceof Object && !(entity[this.propertyName] instanceof _find_options_FindOperator__WEBPACK_IMPORTED_MODULE_3__[/* FindOperator */ "a"]) && !(entity[this.propertyName] instanceof Function)) { value = this.referencedColumn.getEntityValue(entity[this.propertyName]); } else { value = entity[this.propertyName]; } } else if (this.referencedColumn) { value = this.referencedColumn.getEntityValue(entity[this.propertyName]); } else { value = entity[this.propertyName]; } } if (transform && this.transformer) value = _util_ApplyValueTransformers__WEBPACK_IMPORTED_MODULE_4__[/* ApplyValueTransformers */ "a"].transformTo(this.transformer, value); return value; }; /** * Sets given entity's column value. * Using of this method helps to set entity relation's value of the lazy and non-lazy relations. */ ColumnMetadata.prototype.setEntityValue = function (entity, value) { var _this = this; if (this.embeddedMetadata) { // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters] var extractEmbeddedColumnValue_4 = function (embeddedMetadatas, map) { // if (!object[embeddedMetadata.propertyName]) // object[embeddedMetadata.propertyName] = embeddedMetadata.create(); var embeddedMetadata = embeddedMetadatas.shift(); if (embeddedMetadata) { if (!map[embeddedMetadata.propertyName]) map[embeddedMetadata.propertyName] = embeddedMetadata.create(); extractEmbeddedColumnValue_4(embeddedMetadatas, map[embeddedMetadata.propertyName]); return map; } map[_this.propertyName] = value; return map; }; return extractEmbeddedColumnValue_4(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __spreadArray */ "f"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(this.embeddedMetadata.embeddedMetadataTree)), entity); } else { // we write a deep object in this entity only if the column is virtual // because if its not virtual it means the user defined a real column for this relation // also we don't do it if column is inside a junction table if (!this.entityMetadata.isJunction && this.isVirtual && this.referencedColumn && this.referencedColumn.propertyName !== this.propertyName) { if (!(this.propertyName in entity)) { entity[this.propertyName] = {}; } entity[this.propertyName][this.referencedColumn.propertyName] = value; } else { entity[this.propertyName] = value; } } }; // --------------------------------------------------------------------- // Builder Methods // --------------------------------------------------------------------- ColumnMetadata.prototype.build = function (connection) { this.propertyPath = this.buildPropertyPath(); this.propertyAliasName = this.propertyPath.replace(".", "_"); this.databaseName = this.buildDatabaseName(connection); this.databasePath = this.buildDatabasePath(); this.databaseNameWithoutPrefixes = connection.namingStrategy.columnName(this.propertyName, this.givenDatabaseName, []); return this; }; ColumnMetadata.prototype.buildPropertyPath = function () { var path = ""; if (this.embeddedMetadata && this.embeddedMetadata.parentPropertyNames.length) path = this.embeddedMetadata.parentPropertyNames.join(".") + "."; path += this.propertyName; // we add reference column to property path only if this column is virtual // because if its not virtual it means user defined a real column for this relation // also we don't do it if column is inside a junction table if (!this.entityMetadata.isJunction && this.isVirtual && this.referencedColumn && this.referencedColumn.propertyName !== this.propertyName) path += "." + this.referencedColumn.propertyName; return path; }; ColumnMetadata.prototype.buildDatabasePath = function () { var path = ""; if (this.embeddedMetadata && this.embeddedMetadata.parentPropertyNames.length) path = this.embeddedMetadata.parentPropertyNames.join(".") + "."; path += this.databaseName; // we add reference column to property path only if this column is virtual // because if its not virtual it means user defined a real column for this relation // also we don't do it if column is inside a junction table if (!this.entityMetadata.isJunction && this.isVirtual && this.referencedColumn && this.referencedColumn.databaseName !== this.databaseName) path += "." + this.referencedColumn.databaseName; return path; }; ColumnMetadata.prototype.buildDatabaseName = function (connection) { var propertyNames = this.embeddedMetadata ? this.embeddedMetadata.parentPrefixes : []; if (connection.driver instanceof _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_2__[/* MongoDriver */ "e"]) // we don't need to include embedded name for the mongodb column names propertyNames = []; return connection.namingStrategy.columnName(this.propertyName, this.givenDatabaseName, propertyNames); }; return ColumnMetadata; }()); //# sourceMappingURL=ColumnMetadata.js.map /***/ }), /* 33 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.App = void 0; /** * Eine Klasse, welche als Ursprung für die App genutzt wird */ var Helper_1 = __webpack_require__(15); var SiteManager_1 = __webpack_require__(252); var App = /*#__PURE__*/function () { /** * Erstellt eine neue App, speichert ein internes Promise, welches resolved wird, sobald das deviceready-Event gefeuert wird */ function App() { _classCallCheck(this, App); this._resolver = { resolve: null, reject: null }; this._readyPromise = new Promise(function (r) { return document.addEventListener("deviceready", r, false); }); this._deepLinks = {}; this._siteManager = SiteManager_1.SiteManager.getInstance(); } _createClass(App, [{ key: "addDeepLink", value: function addDeepLink(link, siteConstructor) { this._deepLinks[link] = siteConstructor; } }, { key: "startSite", value: function startSite(site, args) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!this._siteManager) { _context.next = 2; break; } return _context.abrupt("return", this._siteManager.startSite(site, args)); case 2: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "start", value: function start(startSiteConstructor) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var initialSiteConstructor, params, siteManager; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return this.ready(); case 2: initialSiteConstructor = startSiteConstructor; params = App._getStartParams(); this.startingSite = initialSiteConstructor; this.startingSiteParameters = params; if (Helper_1.Helper.isNotNull(params["s"])) { startSiteConstructor = Helper_1.Helper.nonNull(this._deepLinks[params["s"]], startSiteConstructor); delete params["s"]; } this.startingSiteParameters = null; siteManager = this._siteManager; siteManager.init("site", this._deepLinks); Helper_1.Helper.removeAllChildren(document.getElementById("site")); siteManager.startSite(startSiteConstructor, params); siteManager.setAppEndedListener(function (manager) { manager.startSite(initialSiteConstructor); }); case 13: case "end": return _context2.stop(); } } }, _callee2, this); })); } /** * Startet die erste Seite */ }, { key: "startStartingSite", value: function startStartingSite() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: if (!this.startingSite) { _context3.next = 2; break; } return _context3.abrupt("return", this.startSite(this.startingSite, this.startingSiteParameters)); case 2: case "end": return _context3.stop(); } } }, _callee3, this); })); } /** * Führt die Callback aus, sobald das interne Promise aufgelöst wird und App._promises fertig sind oder gibt das interne Promise zurück * * @param callback * @returns {Promise<*>} */ }, { key: "ready", value: function ready(callback) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var _this = this; var promise; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: promise = this._readyPromise.then(function () { App._resolver.resolve(_this); return Promise.all(App._promises); }); if (!callback) { _context4.next = 5; break; } return _context4.abrupt("return", promise.then(callback)); case 5: return _context4.abrupt("return", promise); case 6: case "end": return _context4.stop(); } } }, _callee4, this); })); } }], [{ key: "setLogo", value: function setLogo(logo) { this._logo = logo; } }, { key: "getLogo", value: function getLogo() { return this._logo; } }, { key: "addInitialization", value: function addInitialization(callbackOrPromise) { if (typeof callbackOrPromise === "function") { var promise = callbackOrPromise; callbackOrPromise = App._mainPromise.then(function (app) { return promise(app); }); } App._promises.push(callbackOrPromise); } }, { key: "_getStartParams", value: function _getStartParams() { return Object.assign(App._extractParams(window.location.search.substr(1)), App._startParams); } }, { key: "_extractParams", value: function _extractParams(paramString) { if (Helper_1.Helper.isNull(paramString)) { return null; } var result = {}, tmp = []; var items = paramString.split("&"); for (var index = 0; index < items.length; index++) { tmp = items[index].split("="); if (tmp[0].trim().length > 0) { result[tmp[0]] = decodeURIComponent(tmp[1]); } } return result; } }, { key: "setStartParam", value: function setStartParam(name, value) { this._startParams[name] = value; } }]); return App; }(); exports.App = App; App._promises = []; App._resolver = { resolve: null, reject: null }; App._mainPromise = new Promise(function (res, rej) { App._resolver = { resolve: res, reject: rej }; }); App._startParams = {}; /***/ }), /* 34 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return QueryRunnerAlreadyReleasedError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** */ var QueryRunnerAlreadyReleasedError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(QueryRunnerAlreadyReleasedError, _super); function QueryRunnerAlreadyReleasedError() { var _this = _super.call(this) || this; _this.name = "QueryRunnerAlreadyReleasedError"; Object.setPrototypeOf(_this, QueryRunnerAlreadyReleasedError.prototype); _this.message = "Query runner already released. Cannot run queries anymore."; return _this; } return QueryRunnerAlreadyReleasedError; }(Error)); //# sourceMappingURL=QueryRunnerAlreadyReleasedError.js.map /***/ }), /* 35 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return EntityMetadata; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var _error_CannotCreateEntityIdMapError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(152); /* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6); /* harmony import */ var _util_StringUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(49); /** * Contains all entity metadata. */ var EntityMetadata = /** @class */ (function () { // --------------------------------------------------------------------- // Constructor // --------------------------------------------------------------------- function EntityMetadata(options) { /** * Children entity metadatas. Used in inheritance patterns. */ this.childEntityMetadatas = []; /** * All "inheritance tree" from a target entity. * For example for target Post < ContentModel < Unit it will be an array of [Post, ContentModel, Unit]. * It also contains child entities for single table inheritance. */ this.inheritanceTree = []; /** * Table type. Tables can be abstract, closure, junction, embedded, etc. */ this.tableType = "regular"; /** * Enables Sqlite "WITHOUT ROWID" modifier for the "CREATE TABLE" statement */ this.withoutRowid = false; /** * Indicates if schema will be synchronized for this entity or not. */ this.synchronize = true; /** * Checks if there any non-nullable column exist in this entity. */ this.hasNonNullableRelations = false; /** * Indicates if this entity metadata of a junction table, or not. * Junction table is a table created by many-to-many relationship. * * Its also possible to understand if entity is junction via tableType. */ this.isJunction = false; /** * Checks if this table is a junction table of the closure table. * This type is for tables that contain junction metadata of the closure tables. */ this.isClosureJunction = false; /** * Checks if entity's table has multiple primary columns. */ this.hasMultiplePrimaryKeys = false; /** * Indicates if this entity metadata has uuid generated columns. */ this.hasUUIDGeneratedColumns = false; /** * Entity's column metadatas defined by user. */ this.ownColumns = []; /** * Columns of the entity, including columns that are coming from the embeddeds of this entity. */ this.columns = []; /** * Ancestor columns used only in closure junction tables. */ this.ancestorColumns = []; /** * Descendant columns used only in closure junction tables. */ this.descendantColumns = []; /** * All columns except for virtual columns. */ this.nonVirtualColumns = []; /** * In the case if this entity metadata is junction table's entity metadata, * this will contain all referenced columns of owner entity. */ this.ownerColumns = []; /** * In the case if this entity metadata is junction table's entity metadata, * this will contain all referenced columns of inverse entity. */ this.inverseColumns = []; /** * Gets the column with generated flag. */ this.generatedColumns = []; /** * Gets the primary columns. */ this.primaryColumns = []; /** * Entity's relation metadatas. */ this.ownRelations = []; /** * Relations of the entity, including relations that are coming from the embeddeds of this entity. */ this.relations = []; /** * List of eager relations this metadata has. */ this.eagerRelations = []; /** * List of eager relations this metadata has. */ this.lazyRelations = []; /** * Gets only one-to-one relations of the entity. */ this.oneToOneRelations = []; /** * Gets only owner one-to-one relations of the entity. */ this.ownerOneToOneRelations = []; /** * Gets only one-to-many relations of the entity. */ this.oneToManyRelations = []; /** * Gets only many-to-one relations of the entity. */ this.manyToOneRelations = []; /** * Gets only many-to-many relations of the entity. */ this.manyToManyRelations = []; /** * Gets only owner many-to-many relations of the entity. */ this.ownerManyToManyRelations = []; /** * Gets only owner one-to-one and many-to-one relations. */ this.relationsWithJoinColumns = []; /** * Entity's relation id metadatas. */ this.relationIds = []; /** * Entity's relation id metadatas. */ this.relationCounts = []; /** * Entity's foreign key metadatas. */ this.foreignKeys = []; /** * Entity's embedded metadatas. */ this.embeddeds = []; /** * All embeddeds - embeddeds from this entity metadata and from all child embeddeds, etc. */ this.allEmbeddeds = []; /** * Entity's own indices. */ this.ownIndices = []; /** * Entity's index metadatas. */ this.indices = []; /** * Entity's unique metadatas. */ this.uniques = []; /** * Entity's own uniques. */ this.ownUniques = []; /** * Entity's check metadatas. */ this.checks = []; /** * Entity's exclusion metadatas. */ this.exclusions = []; /** * Entity's own listener metadatas. */ this.ownListeners = []; /** * Entity listener metadatas. */ this.listeners = []; /** * Listener metadatas with "AFTER LOAD" type. */ this.afterLoadListeners = []; /** * Listener metadatas with "AFTER INSERT" type. */ this.beforeInsertListeners = []; /** * Listener metadatas with "AFTER INSERT" type. */ this.afterInsertListeners = []; /** * Listener metadatas with "AFTER UPDATE" type. */ this.beforeUpdateListeners = []; /** * Listener metadatas with "AFTER UPDATE" type. */ this.afterUpdateListeners = []; /** * Listener metadatas with "AFTER REMOVE" type. */ this.beforeRemoveListeners = []; /** * Listener metadatas with "AFTER REMOVE" type. */ this.afterRemoveListeners = []; this.connection = options.connection; this.inheritanceTree = options.inheritanceTree || []; this.inheritancePattern = options.inheritancePattern; this.treeType = options.tableTree ? options.tableTree.type : undefined; this.treeOptions = options.tableTree ? options.tableTree.options : undefined; this.parentClosureEntityMetadata = options.parentClosureEntityMetadata; this.tableMetadataArgs = options.args; this.target = this.tableMetadataArgs.target; this.tableType = this.tableMetadataArgs.type; this.expression = this.tableMetadataArgs.expression; this.withoutRowid = this.tableMetadataArgs.withoutRowid; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Creates a new entity. */ EntityMetadata.prototype.create = function (queryRunner) { var _this = this; // if target is set to a function (e.g. class) that can be created then create it var ret; if (this.target instanceof Function) { ret = new this.target(); this.lazyRelations.forEach(function (relation) { return _this.connection.relationLoader.enableLazyLoad(relation, ret, queryRunner); }); return ret; } // otherwise simply return a new empty object var newObject = {}; this.lazyRelations.forEach(function (relation) { return _this.connection.relationLoader.enableLazyLoad(relation, newObject, queryRunner); }); return newObject; }; /** * Checks if given entity has an id. */ EntityMetadata.prototype.hasId = function (entity) { if (!entity) return false; return this.primaryColumns.every(function (primaryColumn) { var value = primaryColumn.getEntityValue(entity); return value !== null && value !== undefined && value !== ""; }); }; /** * Checks if given entity / object contains ALL primary keys entity must have. * Returns true if it contains all of them, false if at least one of them is not defined. */ EntityMetadata.prototype.hasAllPrimaryKeys = function (entity) { return this.primaryColumns.every(function (primaryColumn) { var value = primaryColumn.getEntityValue(entity); return value !== null && value !== undefined; }); }; /** * Ensures that given object is an entity id map. * If given id is an object then it means its already id map. * If given id isn't an object then it means its a value of the id column * and it creates a new id map with this value and name of the primary column. */ EntityMetadata.prototype.ensureEntityIdMap = function (id) { if (id instanceof Object) return id; if (this.hasMultiplePrimaryKeys) throw new _error_CannotCreateEntityIdMapError__WEBPACK_IMPORTED_MODULE_2__[/* CannotCreateEntityIdMapError */ "a"](this, id); return this.primaryColumns[0].createValueMap(id); }; /** * Gets primary keys of the entity and returns them in a literal object. * For example, for Post{ id: 1, title: "hello" } where id is primary it will return { id: 1 } * For multiple primary keys it returns multiple keys in object. * For primary keys inside embeds it returns complex object literal with keys in them. */ EntityMetadata.prototype.getEntityIdMap = function (entity) { if (!entity) return undefined; return EntityMetadata.getValueMap(entity, this.primaryColumns, { skipNulls: true }); }; /** * Creates a "mixed id map". * If entity has multiple primary keys (ids) then it will return just regular id map, like what getEntityIdMap returns. * But if entity has a single primary key then it will return just value of the id column of the entity, just value. * This is called mixed id map. */ EntityMetadata.prototype.getEntityIdMixedMap = function (entity) { if (!entity) return entity; var idMap = this.getEntityIdMap(entity); if (this.hasMultiplePrimaryKeys) { return idMap; } else if (idMap) { return this.primaryColumns[0].getEntityValue(idMap); // todo: what about parent primary column? } return idMap; }; /** * Compares two different entities by their ids. * Returns true if they match, false otherwise. */ EntityMetadata.prototype.compareEntities = function (firstEntity, secondEntity) { var firstEntityIdMap = this.getEntityIdMap(firstEntity); if (!firstEntityIdMap) return false; var secondEntityIdMap = this.getEntityIdMap(secondEntity); if (!secondEntityIdMap) return false; return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_3__[/* OrmUtils */ "a"].compareIds(firstEntityIdMap, secondEntityIdMap); }; /** * Finds column with a given property name. */ EntityMetadata.prototype.findColumnWithPropertyName = function (propertyName) { return this.columns.find(function (column) { return column.propertyName === propertyName; }); }; /** * Finds column with a given database name. */ EntityMetadata.prototype.findColumnWithDatabaseName = function (databaseName) { return this.columns.find(function (column) { return column.databaseName === databaseName; }); }; /** * Finds column with a given property path. */ EntityMetadata.prototype.findColumnWithPropertyPath = function (propertyPath) { var column = this.columns.find(function (column) { return column.propertyPath === propertyPath; }); if (column) return column; // in the case if column with property path was not found, try to find a relation with such property path // if we find relation and it has a single join column then its the column user was seeking var relation = this.relations.find(function (relation) { return relation.propertyPath === propertyPath; }); if (relation && relation.joinColumns.length === 1) return relation.joinColumns[0]; return undefined; }; /** * Finds columns with a given property path. * Property path can match a relation, and relations can contain multiple columns. */ EntityMetadata.prototype.findColumnsWithPropertyPath = function (propertyPath) { var column = this.columns.find(function (column) { return column.propertyPath === propertyPath; }); if (column) return [column]; // in the case if column with property path was not found, try to find a relation with such property path // if we find relation and it has a single join column then its the column user was seeking var relation = this.relations.find(function (relation) { return relation.propertyPath === propertyPath; }); if (relation && relation.joinColumns) return relation.joinColumns; return []; }; /** * Finds relation with the given property path. */ EntityMetadata.prototype.findRelationWithPropertyPath = function (propertyPath) { return this.relations.find(function (relation) { return relation.propertyPath === propertyPath; }); }; /** * Checks if there is an embedded with a given property path. */ EntityMetadata.prototype.hasEmbeddedWithPropertyPath = function (propertyPath) { return this.allEmbeddeds.some(function (embedded) { return embedded.propertyPath === propertyPath; }); }; /** * Finds embedded with a given property path. */ EntityMetadata.prototype.findEmbeddedWithPropertyPath = function (propertyPath) { return this.allEmbeddeds.find(function (embedded) { return embedded.propertyPath === propertyPath; }); }; /** * Iterates through entity and finds and extracts all values from relations in the entity. * If relation value is an array its being flattened. */ EntityMetadata.prototype.extractRelationValuesFromEntity = function (entity, relations) { var _this = this; var relationsAndValues = []; relations.forEach(function (relation) { var value = relation.getEntityValue(entity); if (Array.isArray(value)) { value.forEach(function (subValue) { return relationsAndValues.push([relation, subValue, _this.getInverseEntityMetadata(subValue, relation)]); }); } else if (value) { relationsAndValues.push([relation, value, _this.getInverseEntityMetadata(value, relation)]); } }); return relationsAndValues; }; EntityMetadata.prototype.getInverseEntityMetadata = function (value, relation) { var childEntityMetadata = relation.inverseEntityMetadata.childEntityMetadatas.find(function (metadata) { return metadata.target === value.constructor; }); return childEntityMetadata ? childEntityMetadata : relation.inverseEntityMetadata; }; // ------------------------------------------------------------------------- // Public Static Methods // ------------------------------------------------------------------------- /** * Creates a property paths for a given entity. */ EntityMetadata.createPropertyPath = function (metadata, entity, prefix) { var _this = this; if (prefix === void 0) { prefix = ""; } var paths = []; Object.keys(entity).forEach(function (key) { // check for function is needed in the cases when createPropertyPath used on values containg a function as a value // example: .update().set({ name: () => `SUBSTR('', 1, 2)` }) var parentPath = prefix ? prefix + "." + key : key; if (metadata.hasEmbeddedWithPropertyPath(parentPath)) { var subPaths = _this.createPropertyPath(metadata, entity[key], parentPath); paths.push.apply(paths, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __spreadArray */ "f"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(subPaths))); } else { var path = prefix ? prefix + "." + key : key; paths.push(path); } }); return paths; }; /** * Finds difference between two entity id maps. * Returns items that exist in the first array and absent in the second array. */ EntityMetadata.difference = function (firstIdMaps, secondIdMaps) { return firstIdMaps.filter(function (firstIdMap) { return !secondIdMaps.find(function (secondIdMap) { return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_3__[/* OrmUtils */ "a"].compareIds(firstIdMap, secondIdMap); }); }); }; /** * Creates value map from the given values and columns. * Examples of usages are primary columns map and join columns map. */ EntityMetadata.getValueMap = function (entity, columns, options) { return columns.reduce(function (map, column) { var value = column.getEntityValueMap(entity, options); // make sure that none of the values of the columns are not missing if (map === undefined || value === null || value === undefined) return undefined; return column.isObjectId ? Object.assign(map, value) : _util_OrmUtils__WEBPACK_IMPORTED_MODULE_3__[/* OrmUtils */ "a"].mergeDeep(map, value); }, {}); }; // --------------------------------------------------------------------- // Public Builder Methods // --------------------------------------------------------------------- EntityMetadata.prototype.build = function () { var namingStrategy = this.connection.namingStrategy; var entityPrefix = this.connection.options.entityPrefix; this.engine = this.tableMetadataArgs.engine; this.database = this.tableMetadataArgs.type === "entity-child" && this.parentEntityMetadata ? this.parentEntityMetadata.database : this.tableMetadataArgs.database; if (this.tableMetadataArgs.schema) { this.schema = this.tableMetadataArgs.schema; } else if ((this.tableMetadataArgs.type === "entity-child") && this.parentEntityMetadata) { this.schema = this.parentEntityMetadata.schema; } else { this.schema = this.connection.options.schema; } this.givenTableName = this.tableMetadataArgs.type === "entity-child" && this.parentEntityMetadata ? this.parentEntityMetadata.givenTableName : this.tableMetadataArgs.name; this.synchronize = this.tableMetadataArgs.synchronize === false ? false : true; this.targetName = this.tableMetadataArgs.target instanceof Function ? this.tableMetadataArgs.target.name : this.tableMetadataArgs.target; if (this.tableMetadataArgs.type === "closure-junction") { this.tableNameWithoutPrefix = namingStrategy.closureJunctionTableName(this.givenTableName); } else if (this.tableMetadataArgs.type === "entity-child" && this.parentEntityMetadata) { this.tableNameWithoutPrefix = namingStrategy.tableName(this.parentEntityMetadata.targetName, this.parentEntityMetadata.givenTableName); } else { this.tableNameWithoutPrefix = namingStrategy.tableName(this.targetName, this.givenTableName); if (this.connection.driver.maxAliasLength && this.connection.driver.maxAliasLength > 0 && this.tableNameWithoutPrefix.length > this.connection.driver.maxAliasLength) { this.tableNameWithoutPrefix = Object(_util_StringUtils__WEBPACK_IMPORTED_MODULE_4__[/* shorten */ "c"])(this.tableNameWithoutPrefix, { separator: "_", segmentLength: 3 }); } } this.tableName = entityPrefix ? namingStrategy.prefixTableName(entityPrefix, this.tableNameWithoutPrefix) : this.tableNameWithoutPrefix; this.target = this.target ? this.target : this.tableName; this.name = this.targetName ? this.targetName : this.tableName; this.expression = this.tableMetadataArgs.expression; this.withoutRowid = this.tableMetadataArgs.withoutRowid === true ? true : false; this.tablePath = this.buildTablePath(); this.schemaPath = this.buildSchemaPath(); this.orderBy = (this.tableMetadataArgs.orderBy instanceof Function) ? this.tableMetadataArgs.orderBy(this.propertiesMap) : this.tableMetadataArgs.orderBy; // todo: is propertiesMap available here? Looks like its not this.isJunction = this.tableMetadataArgs.type === "closure-junction" || this.tableMetadataArgs.type === "junction"; this.isClosureJunction = this.tableMetadataArgs.type === "closure-junction"; }; /** * Registers a new column in the entity and recomputes all depend properties. */ EntityMetadata.prototype.registerColumn = function (column) { if (this.ownColumns.indexOf(column) !== -1) return; this.ownColumns.push(column); this.columns = this.embeddeds.reduce(function (columns, embedded) { return columns.concat(embedded.columnsFromTree); }, this.ownColumns); this.primaryColumns = this.columns.filter(function (column) { return column.isPrimary; }); this.hasMultiplePrimaryKeys = this.primaryColumns.length > 1; this.hasUUIDGeneratedColumns = this.columns.filter(function (column) { return column.isGenerated || column.generationStrategy === "uuid"; }).length > 0; this.propertiesMap = this.createPropertiesMap(); if (this.childEntityMetadatas) this.childEntityMetadatas.forEach(function (entityMetadata) { return entityMetadata.registerColumn(column); }); }; /** * Creates a special object - all columns and relations of the object (plus columns and relations from embeds) * in a special format - { propertyName: propertyName }. * * example: Post{ id: number, name: string, counterEmbed: { count: number }, category: Category }. * This method will create following object: * { id: "id", counterEmbed: { count: "counterEmbed.count" }, category: "category" } */ EntityMetadata.prototype.createPropertiesMap = function () { var map = {}; this.columns.forEach(function (column) { return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_3__[/* OrmUtils */ "a"].mergeDeep(map, column.createValueMap(column.propertyPath)); }); this.relations.forEach(function (relation) { return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_3__[/* OrmUtils */ "a"].mergeDeep(map, relation.createValueMap(relation.propertyPath)); }); return map; }; /** * Builds table path using database name, schema name and table name. */ EntityMetadata.prototype.buildTablePath = function () { var tablePath = this.tableName; if (this.schema && ((this.connection.driver instanceof _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_1__[/* OracleDriver */ "j"]) || (this.connection.driver instanceof _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_1__[/* PostgresDriver */ "k"]) || (this.connection.driver instanceof _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_1__[/* SqlServerDriver */ "m"]) || (this.connection.driver instanceof _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_1__[/* SapDriver */ "l"]))) { tablePath = this.schema + "." + tablePath; } if (this.database && !(this.connection.driver instanceof _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_1__[/* PostgresDriver */ "k"])) { if (!this.schema && this.connection.driver instanceof _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_1__[/* SqlServerDriver */ "m"]) { tablePath = this.database + ".." + tablePath; } else { tablePath = this.database + "." + tablePath; } } return tablePath; }; /** * Builds table path using schema name and database name. */ EntityMetadata.prototype.buildSchemaPath = function () { if (!this.schema) return undefined; return this.database && !(this.connection.driver instanceof _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_1__[/* PostgresDriver */ "k"]) ? this.database + "." + this.schema : this.schema; }; return EntityMetadata; }()); //# sourceMappingURL=EntityMetadata.js.map /***/ }), /* 36 */ /***/ (function(module, exports, __webpack_require__) { // 7.1.13 ToObject(argument) var defined = __webpack_require__(76); module.exports = function (it) { return Object(defined(it)); }; /***/ }), /* 37 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DriverOptionNotSetError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Thrown if some required driver's option is not set. */ var DriverOptionNotSetError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(DriverOptionNotSetError, _super); function DriverOptionNotSetError(optionName) { var _this = _super.call(this) || this; _this.name = "DriverOptionNotSetError"; Object.setPrototypeOf(_this, DriverOptionNotSetError.prototype); _this.message = "Driver option (" + optionName + ") is not set. Please set it to perform connection to the database."; return _this; } return DriverOptionNotSetError; }(Error)); //# sourceMappingURL=DriverOptionNotSetError.js.map /***/ }), /* 38 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TableIndex; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Database's table index stored in this class. */ var TableIndex = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function TableIndex(options) { /** * Columns included in this index. */ this.columnNames = []; this.name = options.name; this.columnNames = options.columnNames; this.isUnique = !!options.isUnique; this.isSpatial = !!options.isSpatial; this.isFulltext = !!options.isFulltext; this.parser = options.parser; this.where = options.where ? options.where : ""; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Creates a new copy of this index with exactly same properties. */ TableIndex.prototype.clone = function () { return new TableIndex({ name: this.name, columnNames: Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __spreadArray */ "f"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(this.columnNames)), isUnique: this.isUnique, isSpatial: this.isSpatial, isFulltext: this.isFulltext, parser: this.parser, where: this.where }); }; // ------------------------------------------------------------------------- // Static Methods // ------------------------------------------------------------------------- /** * Creates index from the index metadata object. */ TableIndex.create = function (indexMetadata) { return new TableIndex({ name: indexMetadata.name, columnNames: indexMetadata.columns.map(function (column) { return column.databaseName; }), isUnique: indexMetadata.isUnique, isSpatial: indexMetadata.isSpatial, isFulltext: indexMetadata.isFulltext, parser: indexMetadata.parser, where: indexMetadata.where }); }; return TableIndex; }()); //# sourceMappingURL=TableIndex.js.map /***/ }), /* 39 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return QueryFailedError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24); /** * Thrown when query execution has failed. */ var QueryFailedError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(QueryFailedError, _super); function QueryFailedError(query, parameters, driverError) { var _this = _super.call(this) || this; Object.setPrototypeOf(_this, QueryFailedError.prototype); _this.message = driverError.toString() .replace(/^error: /, "") .replace(/^Error: /, "") .replace(/^Request/, ""); _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_1__[/* ObjectUtils */ "a"].assign(_this, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __assign */ "a"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __assign */ "a"])({}, driverError), { name: "QueryFailedError", query: query, parameters: parameters || [] })); return _this; } return QueryFailedError; }(Error)); //# sourceMappingURL=QueryFailedError.js.map /***/ }), /* 40 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ QueryBuilder_QueryBuilder; }); // EXTERNAL MODULE: ./node_modules/typeorm/node_modules/tslib/tslib.es6.js var tslib_es6 = __webpack_require__(0); // EXTERNAL MODULE: ./node_modules/typeorm/browser/util/ObjectUtils.js var ObjectUtils = __webpack_require__(24); // CONCATENATED MODULE: ./node_modules/typeorm/browser/query-builder/Alias.js /** */ var Alias_Alias = /** @class */ (function () { function Alias(alias) { ObjectUtils["a" /* ObjectUtils */].assign(this, alias || {}); } Object.defineProperty(Alias.prototype, "target", { get: function () { return this.metadata.target; }, enumerable: false, configurable: true }); Object.defineProperty(Alias.prototype, "hasMetadata", { get: function () { return !!this._metadata; }, enumerable: false, configurable: true }); Object.defineProperty(Alias.prototype, "metadata", { get: function () { if (!this._metadata) throw new Error("Cannot get entity metadata for the given alias \"" + this.name + "\""); return this._metadata; }, set: function (metadata) { this._metadata = metadata; }, enumerable: false, configurable: true }); return Alias; }()); //# sourceMappingURL=Alias.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/JoinAttribute.js var JoinAttribute = __webpack_require__(162); // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/relation-id/RelationIdAttribute.js var RelationIdAttribute = __webpack_require__(118); // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/relation-count/RelationCountAttribute.js var RelationCountAttribute = __webpack_require__(119); // CONCATENATED MODULE: ./node_modules/typeorm/browser/query-builder/QueryExpressionMap.js /** * Contains all properties of the QueryBuilder that needs to be build a final query. */ var QueryExpressionMap_QueryExpressionMap = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function QueryExpressionMap(connection) { this.connection = connection; // ------------------------------------------------------------------------- // Public Properties // ------------------------------------------------------------------------- /** * Indicates if QueryBuilder used to select entities and not a raw results. */ this.queryEntity = false; /** * All aliases (including main alias) used in the query. */ this.aliases = []; /** * Represents query type. QueryBuilder is able to build SELECT, UPDATE and DELETE queries. */ this.queryType = "select"; /** * Data needs to be SELECT-ed. */ this.selects = []; /** * Whether SELECT is DISTINCT. */ this.selectDistinct = false; /** * SELECT DISTINCT ON query (postgres). */ this.selectDistinctOn = []; /** * Extra returning columns to be added to the returning statement if driver supports it. */ this.extraReturningColumns = []; /** * Optional on conflict statement used in insertion query in postgres. */ this.onConflict = ""; /** * Optional on ignore statement used in insertion query in databases. */ this.onIgnore = false; /** * JOIN queries. */ this.joinAttributes = []; /** * RelationId queries. */ this.relationIdAttributes = []; /** * Relation count queries. */ this.relationCountAttributes = []; /** * WHERE queries. */ this.wheres = []; /** * HAVING queries. */ this.havings = []; /** * ORDER BY queries. */ this.orderBys = {}; /** * GROUP BY queries. */ this.groupBys = []; /** * Indicates if soft-deleted rows should be included in entity result. * By default the soft-deleted rows are not included. */ this.withDeleted = false; /** * Parameters used to be escaped in final query. */ this.parameters = {}; /** * Indicates if alias, table names and column names will be ecaped by driver, or not. * * todo: rename to isQuotingDisabled, also think if it should be named "escaping" */ this.disableEscaping = true; /** * Indicates if virtual columns should be included in entity result. * * todo: what to do with it? is it properly used? what about persistence? */ this.enableRelationIdValues = false; /** * Extra where condition appended to the end of original where conditions with AND keyword. * Original condition will be wrapped into brackets. */ this.extraAppendedAndWhereCondition = ""; /** * Indicates if query builder creates a subquery. */ this.subQuery = false; /** * Indicates if property names are prefixed with alias names during property replacement. * By default this is enabled, however we need this because aliases are not supported in UPDATE and DELETE queries, * but user can use them in WHERE expressions. */ this.aliasNamePrefixingEnabled = true; /** * Indicates if query result cache is enabled or not. */ this.cache = false; /** * Options that define QueryBuilder behaviour. */ this.options = []; /** * List of columns where data should be inserted. * Used in INSERT query. */ this.insertColumns = []; /** * Used if user wants to update or delete a specific entities. */ this.whereEntities = []; /** * Indicates if entity must be updated after insertion / updation. * This may produce extra query or use RETURNING / OUTPUT statement (depend on database). */ this.updateEntity = true; /** * Indicates if listeners and subscribers must be called before and after query execution. */ this.callListeners = true; /** * Indicates if query must be wrapped into transaction. */ this.useTransaction = false; /** * Extra parameters. * Used in InsertQueryBuilder to avoid default parameters mechanizm and execute high performance insertions. */ this.nativeParameters = {}; } Object.defineProperty(QueryExpressionMap.prototype, "allOrderBys", { // ------------------------------------------------------------------------- // Accessors // ------------------------------------------------------------------------- /** * Get all ORDER BY queries - if order by is specified by user then it uses them, * otherwise it uses default entity order by if it was set. */ get: function () { var _this = this; if (!Object.keys(this.orderBys).length && this.mainAlias.hasMetadata && this.options.indexOf("disable-global-order") === -1) { var entityOrderBy_1 = this.mainAlias.metadata.orderBy || {}; return Object.keys(entityOrderBy_1).reduce(function (orderBy, key) { orderBy[_this.mainAlias.name + "." + key] = entityOrderBy_1[key]; return orderBy; }, {}); } return this.orderBys; }, enumerable: false, configurable: true }); // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Creates a main alias and adds it to the current expression map. */ QueryExpressionMap.prototype.setMainAlias = function (alias) { // if main alias is already set then remove it from the array // if (this.mainAlias) // this.aliases.splice(this.aliases.indexOf(this.mainAlias)); // set new main alias this.mainAlias = alias; return alias; }; /** * Creates a new alias and adds it to the current expression map. */ QueryExpressionMap.prototype.createAlias = function (options) { var aliasName = options.name; if (!aliasName && options.tablePath) aliasName = options.tablePath; if (!aliasName && options.target instanceof Function) aliasName = options.target.name; if (!aliasName && typeof options.target === "string") aliasName = options.target; var alias = new Alias_Alias(); alias.type = options.type; if (aliasName) alias.name = aliasName; if (options.metadata) alias.metadata = options.metadata; if (options.target && !alias.hasMetadata) alias.metadata = this.connection.getMetadata(options.target); if (options.tablePath) alias.tablePath = options.tablePath; if (options.subQuery) alias.subQuery = options.subQuery; this.aliases.push(alias); return alias; }; /** * Finds alias with the given name. * If alias was not found it throw an exception. */ QueryExpressionMap.prototype.findAliasByName = function (aliasName) { var alias = this.aliases.find(function (alias) { return alias.name === aliasName; }); if (!alias) throw new Error("\"" + aliasName + "\" alias was not found. Maybe you forgot to join it?"); return alias; }; QueryExpressionMap.prototype.findColumnByAliasExpression = function (aliasExpression) { var _a = Object(tslib_es6["e" /* __read */])(aliasExpression.split("."), 2), aliasName = _a[0], propertyPath = _a[1]; var alias = this.findAliasByName(aliasName); return alias.metadata.findColumnWithPropertyName(propertyPath); }; Object.defineProperty(QueryExpressionMap.prototype, "relationMetadata", { /** * Gets relation metadata of the relation this query builder works with. * * todo: add proper exceptions */ get: function () { if (!this.mainAlias) throw new Error("Entity to work with is not specified!"); // todo: better message var relationMetadata = this.mainAlias.metadata.findRelationWithPropertyPath(this.relationPropertyPath); if (!relationMetadata) throw new Error("Relation " + this.relationPropertyPath + " was not found in entity " + this.mainAlias.name); // todo: better message return relationMetadata; }, enumerable: false, configurable: true }); /** * Copies all properties of the current QueryExpressionMap into a new one. * Useful when QueryBuilder needs to create a copy of itself. */ QueryExpressionMap.prototype.clone = function () { var _this = this; var map = new QueryExpressionMap(this.connection); map.queryType = this.queryType; map.selects = this.selects.map(function (select) { return select; }); map.selectDistinct = this.selectDistinct; map.selectDistinctOn = this.selectDistinctOn; this.aliases.forEach(function (alias) { return map.aliases.push(new Alias_Alias(alias)); }); map.mainAlias = this.mainAlias; map.valuesSet = this.valuesSet; map.returning = this.returning; map.onConflict = this.onConflict; map.onIgnore = this.onIgnore; map.onUpdate = this.onUpdate; map.joinAttributes = this.joinAttributes.map(function (join) { return new JoinAttribute["a" /* JoinAttribute */](_this.connection, _this, join); }); map.relationIdAttributes = this.relationIdAttributes.map(function (relationId) { return new RelationIdAttribute["a" /* RelationIdAttribute */](_this, relationId); }); map.relationCountAttributes = this.relationCountAttributes.map(function (relationCount) { return new RelationCountAttribute["a" /* RelationCountAttribute */](_this, relationCount); }); map.wheres = this.wheres.map(function (where) { return (Object(tslib_es6["a" /* __assign */])({}, where)); }); map.havings = this.havings.map(function (having) { return (Object(tslib_es6["a" /* __assign */])({}, having)); }); map.orderBys = Object.assign({}, this.orderBys); map.groupBys = this.groupBys.map(function (groupBy) { return groupBy; }); map.limit = this.limit; map.offset = this.offset; map.skip = this.skip; map.take = this.take; map.lockMode = this.lockMode; map.lockVersion = this.lockVersion; map.lockTables = this.lockTables; map.withDeleted = this.withDeleted; map.parameters = Object.assign({}, this.parameters); map.disableEscaping = this.disableEscaping; map.enableRelationIdValues = this.enableRelationIdValues; map.extraAppendedAndWhereCondition = this.extraAppendedAndWhereCondition; map.subQuery = this.subQuery; map.aliasNamePrefixingEnabled = this.aliasNamePrefixingEnabled; map.cache = this.cache; map.cacheId = this.cacheId; map.cacheDuration = this.cacheDuration; map.relationPropertyPath = this.relationPropertyPath; map.of = this.of; map.insertColumns = this.insertColumns; map.whereEntities = this.whereEntities; map.updateEntity = this.updateEntity; map.callListeners = this.callListeners; map.useTransaction = this.useTransaction; map.nativeParameters = Object.assign({}, this.nativeParameters); map.comment = this.comment; return map; }; return QueryExpressionMap; }()); //# sourceMappingURL=QueryExpressionMap.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/Brackets.js var Brackets = __webpack_require__(155); // EXTERNAL MODULE: ./node_modules/typeorm/browser/metadata/EntityMetadata.js var EntityMetadata = __webpack_require__(35); // EXTERNAL MODULE: ./node_modules/typeorm/browser/driver/sqljs/SqljsDriver.js var SqljsDriver = __webpack_require__(41); // EXTERNAL MODULE: ./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js var BrowserDisabledDriversDummy = __webpack_require__(1); // EXTERNAL MODULE: ./node_modules/typeorm/browser/index.js + 194 modules var browser = __webpack_require__(47); // EXTERNAL MODULE: ./node_modules/typeorm/browser/find-options/FindOperator.js var FindOperator = __webpack_require__(9); // EXTERNAL MODULE: ./node_modules/typeorm/browser/find-options/operator/In.js var In = __webpack_require__(156); // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/EntityColumnNotFound.js var EntityColumnNotFound = __webpack_require__(114); // CONCATENATED MODULE: ./node_modules/typeorm/browser/query-builder/QueryBuilder.js // todo: completely cover query builder with tests // todo: entityOrProperty can be target name. implement proper behaviour if it is. // todo: check in persistment if id exist on object and throw exception (can be in partial selection?) // todo: fix problem with long aliases eg getMaxIdentifierLength // todo: fix replacing in .select("COUNT(post.id) AS cnt") statement // todo: implement joinAlways in relations and relationId // todo: finish partial selection // todo: sugar methods like: .addCount and .selectCount, selectCountAndMap, selectSum, selectSumAndMap, ... // todo: implement @Select decorator // todo: add select and map functions // todo: implement relation/entity loading and setting them into properties within a separate query // .loadAndMap("post.categories", "post.categories", qb => ...) // .loadAndMap("post.categories", Category, qb => ...) /** * Allows to build complex sql queries in a fashion way and execute those queries. */ var QueryBuilder_QueryBuilder = /** @class */ (function () { /** * QueryBuilder can be initialized from given Connection and QueryRunner objects or from given other QueryBuilder. */ function QueryBuilder(connectionOrQueryBuilder, queryRunner) { if (connectionOrQueryBuilder instanceof QueryBuilder) { this.connection = connectionOrQueryBuilder.connection; this.queryRunner = connectionOrQueryBuilder.queryRunner; this.expressionMap = connectionOrQueryBuilder.expressionMap.clone(); } else { this.connection = connectionOrQueryBuilder; this.queryRunner = queryRunner; this.expressionMap = new QueryExpressionMap_QueryExpressionMap(this.connection); } } Object.defineProperty(QueryBuilder.prototype, "alias", { // ------------------------------------------------------------------------- // Accessors // ------------------------------------------------------------------------- /** * Gets the main alias string used in this query builder. */ get: function () { if (!this.expressionMap.mainAlias) throw new Error("Main alias is not set"); // todo: better exception return this.expressionMap.mainAlias.name; }, enumerable: false, configurable: true }); /** * Creates SELECT query and selects given data. * Replaces all previous selections if they exist. */ QueryBuilder.prototype.select = function (selection, selectionAliasName) { this.expressionMap.queryType = "select"; if (Array.isArray(selection)) { this.expressionMap.selects = selection.map(function (selection) { return ({ selection: selection }); }); } else if (selection) { this.expressionMap.selects = [{ selection: selection, aliasName: selectionAliasName }]; } // loading it dynamically because of circular issue var SelectQueryBuilderCls = __webpack_require__(117).SelectQueryBuilder; if (this instanceof SelectQueryBuilderCls) return this; return new SelectQueryBuilderCls(this); }; /** * Creates INSERT query. */ QueryBuilder.prototype.insert = function () { this.expressionMap.queryType = "insert"; // loading it dynamically because of circular issue var InsertQueryBuilderCls = __webpack_require__(194).InsertQueryBuilder; if (this instanceof InsertQueryBuilderCls) return this; return new InsertQueryBuilderCls(this); }; /** * Creates UPDATE query and applies given update values. */ QueryBuilder.prototype.update = function (entityOrTableNameUpdateSet, maybeUpdateSet) { var updateSet = maybeUpdateSet ? maybeUpdateSet : entityOrTableNameUpdateSet; entityOrTableNameUpdateSet = entityOrTableNameUpdateSet instanceof browser["EntitySchema"] ? entityOrTableNameUpdateSet.options.name : entityOrTableNameUpdateSet; if (entityOrTableNameUpdateSet instanceof Function || typeof entityOrTableNameUpdateSet === "string") { var mainAlias = this.createFromAlias(entityOrTableNameUpdateSet); this.expressionMap.setMainAlias(mainAlias); } this.expressionMap.queryType = "update"; this.expressionMap.valuesSet = updateSet; // loading it dynamically because of circular issue var UpdateQueryBuilderCls = __webpack_require__(195).UpdateQueryBuilder; if (this instanceof UpdateQueryBuilderCls) return this; return new UpdateQueryBuilderCls(this); }; /** * Creates DELETE query. */ QueryBuilder.prototype.delete = function () { this.expressionMap.queryType = "delete"; // loading it dynamically because of circular issue var DeleteQueryBuilderCls = __webpack_require__(196).DeleteQueryBuilder; if (this instanceof DeleteQueryBuilderCls) return this; return new DeleteQueryBuilderCls(this); }; QueryBuilder.prototype.softDelete = function () { this.expressionMap.queryType = "soft-delete"; // loading it dynamically because of circular issue var SoftDeleteQueryBuilderCls = __webpack_require__(250).SoftDeleteQueryBuilder; if (this instanceof SoftDeleteQueryBuilderCls) return this; return new SoftDeleteQueryBuilderCls(this); }; QueryBuilder.prototype.restore = function () { this.expressionMap.queryType = "restore"; // loading it dynamically because of circular issue var SoftDeleteQueryBuilderCls = __webpack_require__(250).SoftDeleteQueryBuilder; if (this instanceof SoftDeleteQueryBuilderCls) return this; return new SoftDeleteQueryBuilderCls(this); }; /** * Sets entity's relation with which this query builder gonna work. */ QueryBuilder.prototype.relation = function (entityTargetOrPropertyPath, maybePropertyPath) { var entityTarget = arguments.length === 2 ? entityTargetOrPropertyPath : undefined; var propertyPath = arguments.length === 2 ? maybePropertyPath : entityTargetOrPropertyPath; this.expressionMap.queryType = "relation"; this.expressionMap.relationPropertyPath = propertyPath; if (entityTarget) { var mainAlias = this.createFromAlias(entityTarget); this.expressionMap.setMainAlias(mainAlias); } // loading it dynamically because of circular issue var RelationQueryBuilderCls = __webpack_require__(206).RelationQueryBuilder; if (this instanceof RelationQueryBuilderCls) return this; return new RelationQueryBuilderCls(this); }; /** * Checks if given relation or relations exist in the entity. * Returns true if relation exists, false otherwise. * * todo: move this method to manager? or create a shortcut? */ QueryBuilder.prototype.hasRelation = function (target, relation) { var entityMetadata = this.connection.getMetadata(target); var relations = Array.isArray(relation) ? relation : [relation]; return relations.every(function (relation) { return !!entityMetadata.findRelationWithPropertyPath(relation); }); }; /** * Sets parameter name and its value. */ QueryBuilder.prototype.setParameter = function (key, value) { this.expressionMap.parameters[key] = value; return this; }; /** * Adds all parameters from the given object. */ QueryBuilder.prototype.setParameters = function (parameters) { var _this = this; // remove function parameters Object.keys(parameters).forEach(function (key) { if (parameters[key] instanceof Function) { throw new Error("Function parameter isn't supported in the parameters. Please check \"" + key + "\" parameter."); } }); // set parent query builder parameters as well in sub-query mode if (this.expressionMap.parentQueryBuilder) this.expressionMap.parentQueryBuilder.setParameters(parameters); Object.keys(parameters).forEach(function (key) { return _this.setParameter(key, parameters[key]); }); return this; }; /** * Adds native parameters from the given object. */ QueryBuilder.prototype.setNativeParameters = function (parameters) { var _this = this; // set parent query builder parameters as well in sub-query mode if (this.expressionMap.parentQueryBuilder) this.expressionMap.parentQueryBuilder.setNativeParameters(parameters); Object.keys(parameters).forEach(function (key) { _this.expressionMap.nativeParameters[key] = parameters[key]; }); return this; }; /** * Gets all parameters. */ QueryBuilder.prototype.getParameters = function () { var parameters = Object.assign({}, this.expressionMap.parameters); // add discriminator column parameter if it exist if (this.expressionMap.mainAlias && this.expressionMap.mainAlias.hasMetadata) { var metadata = this.expressionMap.mainAlias.metadata; if (metadata.discriminatorColumn && metadata.parentEntityMetadata) { var values = metadata.childEntityMetadatas .filter(function (childMetadata) { return childMetadata.discriminatorColumn; }) .map(function (childMetadata) { return childMetadata.discriminatorValue; }); values.push(metadata.discriminatorValue); parameters["discriminatorColumnValues"] = values; } } return parameters; }; /** * Prints sql to stdout using console.log. */ QueryBuilder.prototype.printSql = function () { var _a = Object(tslib_es6["e" /* __read */])(this.getQueryAndParameters(), 2), query = _a[0], parameters = _a[1]; this.connection.logger.logQuery(query, parameters); return this; }; /** * Gets generated sql that will be executed. * Parameters in the query are escaped for the currently used driver. */ QueryBuilder.prototype.getSql = function () { return this.getQueryAndParameters()[0]; }; /** * Gets query to be executed with all parameters used in it. */ QueryBuilder.prototype.getQueryAndParameters = function () { // this execution order is important because getQuery method generates this.expressionMap.nativeParameters values var query = this.getQuery(); var parameters = this.getParameters(); return this.connection.driver.escapeQueryWithParameters(query, parameters, this.expressionMap.nativeParameters); }; /** * Executes sql generated by query builder and returns raw database results. */ QueryBuilder.prototype.execute = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _a, sql, parameters, queryRunner; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: _a = Object(tslib_es6["e" /* __read */])(this.getQueryAndParameters(), 2), sql = _a[0], parameters = _a[1]; queryRunner = this.obtainQueryRunner(); _b.label = 1; case 1: _b.trys.push([1, , 3, 8]); return [4 /*yield*/, queryRunner.query(sql, parameters)]; case 2: return [2 /*return*/, _b.sent()]; // await is needed here because we are using finally case 3: if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 5]; return [4 /*yield*/, queryRunner.release()]; case 4: _b.sent(); _b.label = 5; case 5: if (!(this.connection.driver instanceof SqljsDriver["a" /* SqljsDriver */])) return [3 /*break*/, 7]; return [4 /*yield*/, this.connection.driver.autoSave()]; case 6: _b.sent(); _b.label = 7; case 7: return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; /** * Creates a completely new query builder. * Uses same query runner as current QueryBuilder. */ QueryBuilder.prototype.createQueryBuilder = function () { return new this.constructor(this.connection, this.queryRunner); }; /** * Clones query builder as it is. * Note: it uses new query runner, if you want query builder that uses exactly same query runner, * you can create query builder using its constructor, for example new SelectQueryBuilder(queryBuilder) * where queryBuilder is cloned QueryBuilder. */ QueryBuilder.prototype.clone = function () { return new this.constructor(this); }; /** * Includes a Query comment in the query builder. This is helpful for debugging purposes, * such as finding a specific query in the database server's logs, or for categorization using * an APM product. */ QueryBuilder.prototype.comment = function (comment) { this.expressionMap.comment = comment; return this; }; /** * Disables escaping. */ QueryBuilder.prototype.disableEscaping = function () { this.expressionMap.disableEscaping = false; return this; }; /** * Escapes table name, column name or alias name using current database's escaping character. */ QueryBuilder.prototype.escape = function (name) { if (!this.expressionMap.disableEscaping) return name; return this.connection.driver.escape(name); }; /** * Sets or overrides query builder's QueryRunner. */ QueryBuilder.prototype.setQueryRunner = function (queryRunner) { this.queryRunner = queryRunner; return this; }; /** * Indicates if listeners and subscribers must be called before and after query execution. * Enabled by default. */ QueryBuilder.prototype.callListeners = function (enabled) { this.expressionMap.callListeners = enabled; return this; }; /** * If set to true the query will be wrapped into a transaction. */ QueryBuilder.prototype.useTransaction = function (enabled) { this.expressionMap.useTransaction = enabled; return this; }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Gets escaped table name with schema name if SqlServer driver used with custom * schema name, otherwise returns escaped table name. */ QueryBuilder.prototype.getTableName = function (tablePath) { var _this = this; return tablePath.split(".") .map(function (i) { // this condition need because in SQL Server driver when custom database name was specified and schema name was not, we got `dbName..tableName` string, and doesn't need to escape middle empty string if (i === "") return i; return _this.escape(i); }).join("."); }; /** * Gets name of the table where insert should be performed. */ QueryBuilder.prototype.getMainTableName = function () { if (!this.expressionMap.mainAlias) throw new Error("Entity where values should be inserted is not specified. Call \"qb.into(entity)\" method to specify it."); if (this.expressionMap.mainAlias.hasMetadata) return this.expressionMap.mainAlias.metadata.tablePath; return this.expressionMap.mainAlias.tablePath; }; /** * Specifies FROM which entity's table select/update/delete will be executed. * Also sets a main string alias of the selection data. */ QueryBuilder.prototype.createFromAlias = function (entityTarget, aliasName) { // if table has a metadata then find it to properly escape its properties // const metadata = this.connection.entityMetadatas.find(metadata => metadata.tableName === tableName); if (this.connection.hasMetadata(entityTarget)) { var metadata = this.connection.getMetadata(entityTarget); return this.expressionMap.createAlias({ type: "from", name: aliasName, metadata: this.connection.getMetadata(entityTarget), tablePath: metadata.tablePath }); } else { if (typeof entityTarget === "string") { var isSubquery = entityTarget.substr(0, 1) === "(" && entityTarget.substr(-1) === ")"; return this.expressionMap.createAlias({ type: "from", name: aliasName, tablePath: !isSubquery ? entityTarget : undefined, subQuery: isSubquery ? entityTarget : undefined, }); } var subQueryBuilder = entityTarget(this.subQuery()); this.setParameters(subQueryBuilder.getParameters()); var subquery = subQueryBuilder.getQuery(); return this.expressionMap.createAlias({ type: "from", name: aliasName, subQuery: subquery }); } }; /** * Replaces all entity's propertyName to name in the given statement. */ QueryBuilder.prototype.replacePropertyNames = function (statement) { var e_1, _a; var _this = this; // Escape special characters in regular expressions // Per https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping var escapeRegExp = function (s) { return s.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); }; var _loop_1 = function (alias) { var e_2, _d, e_3, _e, e_4, _f, e_5, _g, e_6, _h, e_7, _j; if (!alias.hasMetadata) return "continue"; var replaceAliasNamePrefix = this_1.expressionMap.aliasNamePrefixingEnabled ? alias.name + "." : ""; var replacementAliasNamePrefix = this_1.expressionMap.aliasNamePrefixingEnabled ? this_1.escape(alias.name) + "." : ""; var replacements = {}; try { // Insert & overwrite the replacements from least to most relevant in our replacements object. // To do this we iterate and overwrite in the order of relevance. // Least to Most Relevant: // * Relation Property Path to first join column key // * Relation Property Path + Column Path // * Column Database Name // * Column Propety Name // * Column Property Path for (var _k = (e_2 = void 0, Object(tslib_es6["g" /* __values */])(alias.metadata.relations)), _l = _k.next(); !_l.done; _l = _k.next()) { var relation = _l.value; if (relation.joinColumns.length > 0) replacements[relation.propertyPath] = relation.joinColumns[0].databaseName; } } catch (e_2_1) { e_2 = { error: e_2_1 }; } finally { try { if (_l && !_l.done && (_d = _k.return)) _d.call(_k); } finally { if (e_2) throw e_2.error; } } try { for (var _m = (e_3 = void 0, Object(tslib_es6["g" /* __values */])(alias.metadata.relations)), _o = _m.next(); !_o.done; _o = _m.next()) { var relation = _o.value; try { for (var _p = (e_4 = void 0, Object(tslib_es6["g" /* __values */])(Object(tslib_es6["f" /* __spreadArray */])(Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(relation.joinColumns)), Object(tslib_es6["e" /* __read */])(relation.inverseJoinColumns)))), _q = _p.next(); !_q.done; _q = _p.next()) { var joinColumn = _q.value; var propertyKey = relation.propertyPath + "." + joinColumn.referencedColumn.propertyPath; replacements[propertyKey] = joinColumn.databaseName; } } catch (e_4_1) { e_4 = { error: e_4_1 }; } finally { try { if (_q && !_q.done && (_f = _p.return)) _f.call(_p); } finally { if (e_4) throw e_4.error; } } } } catch (e_3_1) { e_3 = { error: e_3_1 }; } finally { try { if (_o && !_o.done && (_e = _m.return)) _e.call(_m); } finally { if (e_3) throw e_3.error; } } try { for (var _r = (e_5 = void 0, Object(tslib_es6["g" /* __values */])(alias.metadata.columns)), _s = _r.next(); !_s.done; _s = _r.next()) { var column = _s.value; replacements[column.databaseName] = column.databaseName; } } catch (e_5_1) { e_5 = { error: e_5_1 }; } finally { try { if (_s && !_s.done && (_g = _r.return)) _g.call(_r); } finally { if (e_5) throw e_5.error; } } try { for (var _t = (e_6 = void 0, Object(tslib_es6["g" /* __values */])(alias.metadata.columns)), _u = _t.next(); !_u.done; _u = _t.next()) { var column = _u.value; replacements[column.propertyName] = column.databaseName; } } catch (e_6_1) { e_6 = { error: e_6_1 }; } finally { try { if (_u && !_u.done && (_h = _t.return)) _h.call(_t); } finally { if (e_6) throw e_6.error; } } try { for (var _v = (e_7 = void 0, Object(tslib_es6["g" /* __values */])(alias.metadata.columns)), _w = _v.next(); !_w.done; _w = _v.next()) { var column = _w.value; replacements[column.propertyPath] = column.databaseName; } } catch (e_7_1) { e_7 = { error: e_7_1 }; } finally { try { if (_w && !_w.done && (_j = _v.return)) _j.call(_v); } finally { if (e_7) throw e_7.error; } } var replacementKeys = Object.keys(replacements); if (replacementKeys.length) { statement = statement.replace(new RegExp( // Avoid a lookbehind here since it's not well supported "([ =(]|^.{0})" + (escapeRegExp(replaceAliasNamePrefix) + "(" + replacementKeys.map(escapeRegExp).join("|") + ")") + "(?=[ =),]|.{0}$)", "gm"), function (_, pre, p) { return "" + pre + replacementAliasNamePrefix + _this.escape(replacements[p]); }); } }; var this_1 = this; try { for (var _b = Object(tslib_es6["g" /* __values */])(this.expressionMap.aliases), _c = _b.next(); !_c.done; _c = _b.next()) { var alias = _c.value; _loop_1(alias); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_1) throw e_1.error; } } return statement; }; QueryBuilder.prototype.createComment = function () { if (!this.expressionMap.comment) { return ""; } // ANSI SQL 2003 support C style comments - comments that start with `/*` and end with `*/` // In some dialects query nesting is available - but not all. Because of this, we'll need // to scrub "ending" characters from the SQL but otherwise we can leave everything else // as-is and it should be valid. return "/* " + this.expressionMap.comment.replace("*/", "") + " */ "; }; /** * Creates "WHERE" expression. */ QueryBuilder.prototype.createWhereExpression = function () { var conditionsArray = []; var whereExpression = this.createWhereExpressionString(); whereExpression.trim() && conditionsArray.push(this.createWhereExpressionString()); if (this.expressionMap.mainAlias.hasMetadata) { var metadata = this.expressionMap.mainAlias.metadata; // Adds the global condition of "non-deleted" for the entity with delete date columns in select query. if (this.expressionMap.queryType === "select" && !this.expressionMap.withDeleted && metadata.deleteDateColumn) { var column = this.expressionMap.aliasNamePrefixingEnabled ? this.expressionMap.mainAlias.name + "." + metadata.deleteDateColumn.propertyName : metadata.deleteDateColumn.propertyName; var condition = this.replacePropertyNames(column) + " IS NULL"; conditionsArray.push(condition); } if (metadata.discriminatorColumn && metadata.parentEntityMetadata) { var column = this.expressionMap.aliasNamePrefixingEnabled ? this.expressionMap.mainAlias.name + "." + metadata.discriminatorColumn.databaseName : metadata.discriminatorColumn.databaseName; var condition = this.replacePropertyNames(column) + " IN (:...discriminatorColumnValues)"; conditionsArray.push(condition); } } if (this.expressionMap.extraAppendedAndWhereCondition) { var condition = this.replacePropertyNames(this.expressionMap.extraAppendedAndWhereCondition); conditionsArray.push(condition); } if (!conditionsArray.length) { return ""; } else if (conditionsArray.length === 1) { return " WHERE " + conditionsArray[0]; } else { return " WHERE ( " + conditionsArray.join(" ) AND ( ") + " )"; } }; /** * Creates "RETURNING" / "OUTPUT" expression. */ QueryBuilder.prototype.createReturningExpression = function () { var _this = this; var columns = this.getReturningColumns(); var driver = this.connection.driver; // also add columns we must auto-return to perform entity updation // if user gave his own returning if (typeof this.expressionMap.returning !== "string" && this.expressionMap.extraReturningColumns.length > 0 && driver.isReturningSqlSupported()) { columns.push.apply(columns, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(this.expressionMap.extraReturningColumns.filter(function (column) { return columns.indexOf(column) === -1; })))); } if (columns.length) { var columnsExpression = columns.map(function (column) { var name = _this.escape(column.databaseName); if (driver instanceof BrowserDisabledDriversDummy["m" /* SqlServerDriver */]) { if (_this.expressionMap.queryType === "insert" || _this.expressionMap.queryType === "update" || _this.expressionMap.queryType === "soft-delete" || _this.expressionMap.queryType === "restore") { return "INSERTED." + name; } else { return _this.escape(_this.getMainTableName()) + "." + name; } } else { return name; } }).join(", "); if (driver instanceof BrowserDisabledDriversDummy["j" /* OracleDriver */]) { columnsExpression += " INTO " + columns.map(function (column) { var parameterName = "output_" + column.databaseName; _this.expressionMap.nativeParameters[parameterName] = { type: driver.columnTypeToNativeParameter(column.type), dir: driver.oracle.BIND_OUT }; return _this.connection.driver.createParameter(parameterName, Object.keys(_this.expressionMap.nativeParameters).length); }).join(", "); } if (driver instanceof BrowserDisabledDriversDummy["m" /* SqlServerDriver */]) { if (this.expressionMap.queryType === "insert" || this.expressionMap.queryType === "update") { columnsExpression += " INTO @OutputTable"; } } return columnsExpression; } else if (typeof this.expressionMap.returning === "string") { return this.expressionMap.returning; } return ""; }; /** * If returning / output cause is set to array of column names, * then this method will return all column metadatas of those column names. */ QueryBuilder.prototype.getReturningColumns = function () { var _this = this; var columns = []; if (Array.isArray(this.expressionMap.returning)) { this.expressionMap.returning.forEach(function (columnName) { if (_this.expressionMap.mainAlias.hasMetadata) { columns.push.apply(columns, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(_this.expressionMap.mainAlias.metadata.findColumnsWithPropertyPath(columnName)))); } }); } return columns; }; /** * Concatenates all added where expressions into one string. */ QueryBuilder.prototype.createWhereExpressionString = function () { var _this = this; return this.expressionMap.wheres.map(function (where, index) { switch (where.type) { case "and": return (index > 0 ? "AND " : "") + _this.replacePropertyNames(where.condition); case "or": return (index > 0 ? "OR " : "") + _this.replacePropertyNames(where.condition); default: return _this.replacePropertyNames(where.condition); } }).join(" "); }; /** * Creates "WHERE" expression and variables for the given "ids". */ QueryBuilder.prototype.createWhereIdsExpression = function (ids) { var _a; var _this = this; var metadata = this.expressionMap.mainAlias.metadata; var normalized = (Array.isArray(ids) ? ids : [ids]).map(function (id) { return metadata.ensureEntityIdMap(id); }); // using in(...ids) for single primary key entities if (!metadata.hasMultiplePrimaryKeys && metadata.embeddeds.length === 0) { var primaryColumn_1 = metadata.primaryColumns[0]; // getEntityValue will try to transform `In`, it is a bug // todo: remove this transformer check after #2390 is fixed if (!primaryColumn_1.transformer) { return this.computeWhereParameter((_a = {}, _a[primaryColumn_1.propertyName] = Object(In["a" /* In */])(normalized.map(function (id) { return primaryColumn_1.getEntityValue(id, false); })), _a)); } } // create shortcuts for better readability var alias = this.expressionMap.aliasNamePrefixingEnabled ? this.escape(this.expressionMap.mainAlias.name) + "." : ""; var parameterIndex = Object.keys(this.expressionMap.nativeParameters).length; var whereStrings = normalized.map(function (id, index) { var whereSubStrings = []; metadata.primaryColumns.forEach(function (primaryColumn, secondIndex) { var parameterName = "id_" + index + "_" + secondIndex; // whereSubStrings.push(alias + this.escape(primaryColumn.databaseName) + "=:id_" + index + "_" + secondIndex); whereSubStrings.push(alias + _this.escape(primaryColumn.databaseName) + " = " + _this.connection.driver.createParameter(parameterName, parameterIndex)); _this.expressionMap.nativeParameters[parameterName] = primaryColumn.getEntityValue(id, true); parameterIndex++; }); return whereSubStrings.join(" AND "); }); return whereStrings.length > 1 ? "(" + whereStrings.map(function (whereString) { return "(" + whereString + ")"; }).join(" OR ") + ")" : whereStrings[0]; }; /** * Computes given where argument - transforms to a where string all forms it can take. */ QueryBuilder.prototype.computeWhereParameter = function (where) { var _this = this; if (typeof where === "string") return where; if (where instanceof Brackets["a" /* Brackets */]) { var whereQueryBuilder = this.createQueryBuilder(); whereQueryBuilder.expressionMap.mainAlias = this.expressionMap.mainAlias; whereQueryBuilder.expressionMap.aliasNamePrefixingEnabled = this.expressionMap.aliasNamePrefixingEnabled; whereQueryBuilder.expressionMap.nativeParameters = this.expressionMap.nativeParameters; where.whereFactory(whereQueryBuilder); var whereString = whereQueryBuilder.createWhereExpressionString(); this.setParameters(whereQueryBuilder.getParameters()); return whereString ? "(" + whereString + ")" : ""; } else if (where instanceof Function) { return where(this); } else if (where instanceof Object) { var wheres = Array.isArray(where) ? where : [where]; var andConditions = void 0; var parameterIndex_1 = Object.keys(this.expressionMap.nativeParameters).length; if (this.expressionMap.mainAlias.hasMetadata) { andConditions = wheres.map(function (where, whereIndex) { var propertyPaths = EntityMetadata["a" /* EntityMetadata */].createPropertyPath(_this.expressionMap.mainAlias.metadata, where); return propertyPaths.map(function (propertyPath, propertyIndex) { var columns = _this.expressionMap.mainAlias.metadata.findColumnsWithPropertyPath(propertyPath); if (!columns.length) { throw new EntityColumnNotFound["a" /* EntityColumnNotFound */](propertyPath); } return columns.map(function (column, columnIndex) { var aliasPath = _this.expressionMap.aliasNamePrefixingEnabled ? _this.alias + "." + propertyPath : column.propertyPath; var parameterValue = column.getEntityValue(where, true); var parameterName = "where_" + whereIndex + "_" + propertyIndex + "_" + columnIndex; var parameterBaseCount = Object.keys(_this.expressionMap.nativeParameters).filter(function (x) { return x.startsWith(parameterName); }).length; if (parameterValue === null) { return aliasPath + " IS NULL"; } else if (parameterValue instanceof FindOperator["a" /* FindOperator */]) { var parameters_1 = []; if (parameterValue.useParameter) { if (parameterValue.objectLiteralParameters) { _this.setParameters(parameterValue.objectLiteralParameters); } else { var realParameterValues = parameterValue.multipleParameters ? parameterValue.value : [parameterValue.value]; realParameterValues.forEach(function (realParameterValue, realParameterValueIndex) { _this.expressionMap.nativeParameters[parameterName + (parameterBaseCount + realParameterValueIndex)] = realParameterValue; parameterIndex_1++; parameters_1.push(_this.connection.driver.createParameter(parameterName + (parameterBaseCount + realParameterValueIndex), parameterIndex_1 - 1)); }); } } return _this.computeFindOperatorExpression(parameterValue, aliasPath, parameters_1); } else { _this.expressionMap.nativeParameters[parameterName] = parameterValue; parameterIndex_1++; var parameter = _this.connection.driver.createParameter(parameterName, parameterIndex_1 - 1); return aliasPath + " = " + parameter; } }).filter(function (expression) { return !!expression; }).join(" AND "); }).filter(function (expression) { return !!expression; }).join(" AND "); }); } else { andConditions = wheres.map(function (where, whereIndex) { return Object.keys(where).map(function (key, parameterIndex) { var parameterValue = where[key]; var aliasPath = _this.expressionMap.aliasNamePrefixingEnabled ? _this.alias + "." + key : key; if (parameterValue === null) { return aliasPath + " IS NULL"; } else { var parameterName = "where_" + whereIndex + "_" + parameterIndex; _this.expressionMap.nativeParameters[parameterName] = parameterValue; parameterIndex++; return aliasPath + " = " + _this.connection.driver.createParameter(parameterName, parameterIndex - 1); } }).join(" AND "); }); } if (andConditions.length > 1) return andConditions.map(function (where) { return "(" + where + ")"; }).join(" OR "); return andConditions.join(""); } return ""; }; /** * Gets SQL needs to be inserted into final query. */ QueryBuilder.prototype.computeFindOperatorExpression = function (operator, aliasPath, parameters) { var driver = this.connection.driver; switch (operator.type) { case "not": if (operator.child) { return "NOT(" + this.computeFindOperatorExpression(operator.child, aliasPath, parameters) + ")"; } else { return aliasPath + " != " + parameters[0]; } case "lessThan": return aliasPath + " < " + parameters[0]; case "lessThanOrEqual": return aliasPath + " <= " + parameters[0]; case "moreThan": return aliasPath + " > " + parameters[0]; case "moreThanOrEqual": return aliasPath + " >= " + parameters[0]; case "equal": return aliasPath + " = " + parameters[0]; case "ilike": if (driver instanceof BrowserDisabledDriversDummy["k" /* PostgresDriver */] || driver instanceof BrowserDisabledDriversDummy["d" /* CockroachDriver */]) { return aliasPath + " ILIKE " + parameters[0]; } return "UPPER(" + aliasPath + ") LIKE UPPER(" + parameters[0] + ")"; case "like": return aliasPath + " LIKE " + parameters[0]; case "between": return aliasPath + " BETWEEN " + parameters[0] + " AND " + parameters[1]; case "in": if (parameters.length === 0) { return "0=1"; } return aliasPath + " IN (" + parameters.join(", ") + ")"; case "any": return aliasPath + " = ANY(" + parameters[0] + ")"; case "isNull": return aliasPath + " IS NULL"; case "raw": if (operator.getSql) { return operator.getSql(aliasPath); } else { return aliasPath + " = " + operator.value; } } throw new TypeError("Unsupported FindOperator " + FindOperator["a" /* FindOperator */].constructor.name); }; /** * Creates a query builder used to execute sql queries inside this query builder. */ QueryBuilder.prototype.obtainQueryRunner = function () { return this.queryRunner || this.connection.createQueryRunner(); }; return QueryBuilder; }()); //# sourceMappingURL=QueryBuilder.js.map /***/ }), /* 41 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(Buffer) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SqljsDriver; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var _sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16); /* harmony import */ var _SqljsQueryRunner__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(284); /* harmony import */ var _error_DriverPackageNotInstalledError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(71); /* harmony import */ var _error_DriverOptionNotSetError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(37); /* harmony import */ var _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10); /* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(6); var SqljsDriver = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(SqljsDriver, _super); // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function SqljsDriver(connection) { var _this = _super.call(this, connection) || this; // If autoSave is enabled by user, location or autoSaveCallback have to be set // because either autoSave saves to location or calls autoSaveCallback. if (_this.options.autoSave && !_this.options.location && !_this.options.autoSaveCallback) { throw new _error_DriverOptionNotSetError__WEBPACK_IMPORTED_MODULE_4__[/* DriverOptionNotSetError */ "a"]("location or autoSaveCallback"); } // load sql.js package _this.loadDependencies(); return _this; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Performs connection to the database. */ SqljsDriver.prototype.connect = function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var _a; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: _a = this; return [4 /*yield*/, this.createDatabaseConnection()]; case 1: _a.databaseConnection = _b.sent(); return [2 /*return*/]; } }); }); }; /** * Closes connection with database. */ SqljsDriver.prototype.disconnect = function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var _this = this; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { return [2 /*return*/, new Promise(function (ok, fail) { try { _this.queryRunner = undefined; _this.databaseConnection.close(); ok(); } catch (e) { fail(e); } })]; }); }); }; /** * Creates a query runner used to execute database queries. */ SqljsDriver.prototype.createQueryRunner = function (mode) { if (!this.queryRunner) this.queryRunner = new _SqljsQueryRunner__WEBPACK_IMPORTED_MODULE_2__[/* SqljsQueryRunner */ "a"](this); return this.queryRunner; }; /** * Loads a database from a given file (Node.js), local storage key (browser) or array. * This will delete the current database! */ SqljsDriver.prototype.load = function (fileNameOrLocalStorageOrData, checkIfFileOrLocalStorageExists) { if (checkIfFileOrLocalStorageExists === void 0) { checkIfFileOrLocalStorageExists = true; } return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var database, localStorageContent; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: if (!(typeof fileNameOrLocalStorageOrData === "string")) return [3 /*break*/, 8]; if (!(_platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__[/* PlatformTools */ "a"].type === "node")) return [3 /*break*/, 1]; // Node.js // fileNameOrLocalStorageOrData should be a path to the file if (_platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__[/* PlatformTools */ "a"].fileExist(fileNameOrLocalStorageOrData)) { database = _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__[/* PlatformTools */ "a"].readFileSync(fileNameOrLocalStorageOrData); return [2 /*return*/, this.createDatabaseConnectionWithImport(database)]; } else if (checkIfFileOrLocalStorageExists) { throw new Error("File " + fileNameOrLocalStorageOrData + " does not exist"); } else { // File doesn't exist and checkIfFileOrLocalStorageExists is set to false. // Therefore open a database without importing an existing file. // File will be written on first write operation. return [2 /*return*/, this.createDatabaseConnectionWithImport()]; } return [3 /*break*/, 7]; case 1: localStorageContent = null; if (!this.options.useLocalForage) return [3 /*break*/, 5]; if (!window.localforage) return [3 /*break*/, 3]; return [4 /*yield*/, window.localforage.getItem(fileNameOrLocalStorageOrData)]; case 2: localStorageContent = _a.sent(); return [3 /*break*/, 4]; case 3: throw new Error("localforage is not defined - please import localforage.js into your site"); case 4: return [3 /*break*/, 6]; case 5: localStorageContent = _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__[/* PlatformTools */ "a"].getGlobalVariable().localStorage.getItem(fileNameOrLocalStorageOrData); _a.label = 6; case 6: if (localStorageContent != null) { // localStorage value exists. return [2 /*return*/, this.createDatabaseConnectionWithImport(JSON.parse(localStorageContent))]; } else if (checkIfFileOrLocalStorageExists) { throw new Error("File " + fileNameOrLocalStorageOrData + " does not exist"); } else { // localStorage value doesn't exist and checkIfFileOrLocalStorageExists is set to false. // Therefore open a database without importing anything. // localStorage value will be written on first write operation. return [2 /*return*/, this.createDatabaseConnectionWithImport()]; } _a.label = 7; case 7: return [3 /*break*/, 9]; case 8: return [2 /*return*/, this.createDatabaseConnectionWithImport(fileNameOrLocalStorageOrData)]; case 9: return [2 /*return*/]; } }); }); }; /** * Saved the current database to the given file (Node.js), local storage key (browser) or * indexedDB key (browser with enabled useLocalForage option). * If no location path is given, the location path in the options (if specified) will be used. */ SqljsDriver.prototype.save = function (location) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var path, content, e_1, database, databaseArray; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: if (!location && !this.options.location) { throw new Error("No location is set, specify a location parameter or add the location option to your configuration"); } path = ""; if (location) { path = location; } else if (this.options.location) { path = this.options.location; } if (!(_platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__[/* PlatformTools */ "a"].type === "node")) return [3 /*break*/, 5]; _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); content = Buffer.from(this.databaseConnection.export()); return [4 /*yield*/, _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__[/* PlatformTools */ "a"].writeFile(path, content)]; case 2: _a.sent(); return [3 /*break*/, 4]; case 3: e_1 = _a.sent(); throw new Error("Could not save database, error: " + e_1); case 4: return [3 /*break*/, 10]; case 5: database = this.databaseConnection.export(); databaseArray = [].slice.call(database); if (!this.options.useLocalForage) return [3 /*break*/, 9]; if (!window.localforage) return [3 /*break*/, 7]; return [4 /*yield*/, window.localforage.setItem(path, JSON.stringify(databaseArray))]; case 6: _a.sent(); return [3 /*break*/, 8]; case 7: throw new Error("localforage is not defined - please import localforage.js into your site"); case 8: return [3 /*break*/, 10]; case 9: _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__[/* PlatformTools */ "a"].getGlobalVariable().localStorage.setItem(path, JSON.stringify(databaseArray)); _a.label = 10; case 10: return [2 /*return*/]; } }); }); }; /** * This gets called by the QueryRunner when a change to the database is made. * If a custom autoSaveCallback is specified, it get's called with the database as Uint8Array, * otherwise the save method is called which saves it to file (Node.js), local storage (browser) * or indexedDB (browser with enabled useLocalForage option). */ SqljsDriver.prototype.autoSave = function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: if (!this.options.autoSave) return [3 /*break*/, 4]; if (!this.options.autoSaveCallback) return [3 /*break*/, 2]; return [4 /*yield*/, this.options.autoSaveCallback(this.export())]; case 1: _a.sent(); return [3 /*break*/, 4]; case 2: return [4 /*yield*/, this.save()]; case 3: _a.sent(); _a.label = 4; case 4: return [2 /*return*/]; } }); }); }; /** * Returns the current database as Uint8Array. */ SqljsDriver.prototype.export = function () { return this.databaseConnection.export(); }; /** * Creates generated map of values generated or returned by database after INSERT query. */ SqljsDriver.prototype.createGeneratedMap = function (metadata, insertResult) { var _this = this; var generatedMap = metadata.generatedColumns.reduce(function (map, generatedColumn) { // seems to be the only way to get the inserted id, see https://github.com/kripken/sql.js/issues/77 if (generatedColumn.isPrimary && generatedColumn.generationStrategy === "increment") { var query = "SELECT last_insert_rowid()"; try { var result = _this.databaseConnection.exec(query); _this.connection.logger.logQuery(query); return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_6__[/* OrmUtils */ "a"].mergeDeep(map, generatedColumn.createValueMap(result[0].values[0][0])); } catch (e) { _this.connection.logger.logQueryError(e, query, []); } } return map; }, {}); return Object.keys(generatedMap).length > 0 ? generatedMap : undefined; }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Creates connection with the database. * If the location option is set, the database is loaded first. */ SqljsDriver.prototype.createDatabaseConnection = function () { if (this.options.location) { return this.load(this.options.location, false); } return this.createDatabaseConnectionWithImport(this.options.database); }; /** * Creates connection with an optional database. * If database is specified it is loaded, otherwise a new empty database is created. */ SqljsDriver.prototype.createDatabaseConnectionWithImport = function (database) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var isLegacyVersion, sqlite, _a; var _this = this; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: isLegacyVersion = typeof this.sqlite.Database === "function"; if (!isLegacyVersion) return [3 /*break*/, 1]; _a = this.sqlite; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.sqlite(this.options.sqlJsConfig)]; case 2: _a = _b.sent(); _b.label = 3; case 3: sqlite = _a; if (database && database.length > 0) { this.databaseConnection = new sqlite.Database(database); } else { this.databaseConnection = new sqlite.Database(); } // Enable foreign keys for database return [2 /*return*/, new Promise(function (ok, fail) { try { _this.databaseConnection.exec("PRAGMA foreign_keys = ON;"); ok(_this.databaseConnection); } catch (e) { fail(e); } })]; } }); }); }; /** * If driver dependency is not given explicitly, then try to load it via "require". */ SqljsDriver.prototype.loadDependencies = function () { if (_platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__[/* PlatformTools */ "a"].type === "browser") { this.sqlite = window.SQL; } else { try { this.sqlite = _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__[/* PlatformTools */ "a"].load("sql.js"); } catch (e) { throw new _error_DriverPackageNotInstalledError__WEBPACK_IMPORTED_MODULE_3__[/* DriverPackageNotInstalledError */ "a"]("sql.js", "sql.js"); } } }; return SqljsDriver; }(_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_1__[/* AbstractSqliteDriver */ "a"])); //# sourceMappingURL=SqljsDriver.js.map /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(98).Buffer)) /***/ }), /* 42 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.NativeStoragePromise = void 0; /** * Promise-Wrapper-Klasse für Native-Storage */ var Helper_1 = __webpack_require__(7); var JsonHelper_1 = __webpack_require__(192); var NativeStoragePromise = /*#__PURE__*/function () { function NativeStoragePromise() { _classCallCheck(this, NativeStoragePromise); } _createClass(NativeStoragePromise, null, [{ key: "_isElectron", value: function _isElectron() { return (typeof navigator === "undefined" ? "undefined" : _typeof(navigator)) === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0; } /** * Setzt ein Item für NativeStorage * * @param key * @param value * @returns {Promise<*>} */ }, { key: "setItem", value: function setItem(key, value) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var _this = this; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!this.persistent) { _context.next = 8; break; } if (!this._isElectron()) { _context.next = 5; break; } return _context.abrupt("return", new Promise(function (res, rej) { return _this.electronStorage.set(_this.prefix + key, value, function (err) { if (err) { rej(err); } else { res(); } }); })); case 5: return _context.abrupt("return", new Promise(function (res, rej) { return NativeStorage.setItem(_this.prefix + key, value, res, rej); })); case 6: _context.next = 9; break; case 8: this._cache[this.prefix + key] = value; case 9: case "end": return _context.stop(); } } }, _callee, this); })); } /** * Bekomme ein Item von NativeStorage * * @param key * @param defaultValue? * @returns {Promise<*>} */ }, { key: "getItem", value: function getItem(key, defaultValue) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var _this2 = this; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", new Promise(function (res, rej) { if (_this2._isElectron()) { _this2.electronStorage.get(_this2.prefix + key, function (e, data) { if (e) { res(Helper_1.Helper.nonNull(_this2._cache[_this2.prefix + key], defaultValue)); } else { res(JsonHelper_1.JsonHelper.deepEqual(data, {}) ? defaultValue : data); } }); } else { NativeStorage.getItem(_this2.prefix + key, function (data) { return res(Helper_1.Helper.nonNull(data, defaultValue)); }, function (e) { res(Helper_1.Helper.nonNull(_this2._cache[_this2.prefix + key], defaultValue)); }); } })); case 1: case "end": return _context2.stop(); } } }, _callee2); })); } /** * Bekomme die Keys vom NativeStorage * * @returns {Promise<*>} */ }, { key: "keys", value: function keys() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var _this3 = this; var keys; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: keys = []; if (!this.persistent) { _context3.next = 13; break; } if (!this._isElectron()) { _context3.next = 8; break; } _context3.next = 5; return new Promise(function (res, rej) { return _this3.electronStorage.keys(function (err, keys) { if (err) { rej(err); } else { res(keys); } }); }); case 5: keys = _context3.sent; _context3.next = 11; break; case 8: _context3.next = 10; return new Promise(function (res, rej) { return NativeStorage.keys(res, rej); }); case 10: keys = _context3.sent; case 11: _context3.next = 14; break; case 13: keys = Object.keys(this._cache); case 14: return _context3.abrupt("return", keys.filter(function (key) { return key.startsWith(_this3.prefix); })); case 15: case "end": return _context3.stop(); } } }, _callee3, this); })); } /** * Entfernt ein Object aus dem NativeStorage * * @param key * @returns {Promise<*>} */ }, { key: "remove", value: function remove(key) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var _this4 = this; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: delete this._cache[this.prefix + key]; if (!this._isElectron()) { _context4.next = 5; break; } return _context4.abrupt("return", new Promise(function (res, rej) { return _this4.electronStorage.remove(_this4.prefix + key, function (err) { if (err) { rej(err); } else { res(); } }); })); case 5: return _context4.abrupt("return", new Promise(function (res, rej) { return NativeStorage.remove(_this4.prefix + key, res, rej); })); case 6: case "end": return _context4.stop(); } } }, _callee4, this); })); } /** * Entfernt alle Objects aus dem NativeStorage * * @returns {Promise<*>} */ }, { key: "clear", value: function clear() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var _this5 = this; var keys; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _context6.next = 2; return this.keys(); case 2: keys = _context6.sent; _context6.next = 5; return Helper_1.Helper.asyncForEach(keys, function (key) { return __awaiter(_this5, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _context5.next = 2; return this.remove(key); case 2: case "end": return _context5.stop(); } } }, _callee5, this); })); }, true); case 5: case "end": return _context6.stop(); } } }, _callee6, this); })); } }, { key: "makePersistent", value: function makePersistent() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { var _this6 = this; return regeneratorRuntime.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: if (this.persistent) { _context8.next = 4; break; } this.persistent = true; _context8.next = 4; return Helper_1.Helper.asyncForEach(Object.keys(this._cache), function (key) { return __awaiter(_this6, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: _context7.next = 2; return this.setItem(key, this._cache[key]); case 2: case "end": return _context7.stop(); } } }, _callee7, this); })); }, true); case 4: case "end": return _context8.stop(); } } }, _callee8, this); })); } }, { key: "makeUnpersistent", value: function makeUnpersistent() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee10() { var _this7 = this; var keys, values; return regeneratorRuntime.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: if (!this.persistent) { _context10.next = 10; break; } _context10.next = 3; return this.keys(); case 3: keys = _context10.sent; values = {}; _context10.next = 7; return Helper_1.Helper.asyncForEach(keys, function (key) { return __awaiter(_this7, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { return regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _context9.next = 2; return this.getItem(key); case 2: values[key] = _context9.sent; case 3: case "end": return _context9.stop(); } } }, _callee9, this); })); }); case 7: this.clear(); this.persistent = false; this._cache = values; case 10: case "end": return _context10.stop(); } } }, _callee10, this); })); } }]); return NativeStoragePromise; }(); exports.NativeStoragePromise = NativeStoragePromise; NativeStoragePromise._cache = {}; NativeStoragePromise.prefix = ""; NativeStoragePromise.persistent = true; NativeStoragePromise.electronStorage = null; /***/ }), /* 43 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TableCheck; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Database's table check constraint stored in this class. */ var TableCheck = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function TableCheck(options) { /** * Column that contains this constraint. */ this.columnNames = []; this.name = options.name; this.columnNames = options.columnNames; this.expression = options.expression; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Creates a new copy of this constraint with exactly same properties. */ TableCheck.prototype.clone = function () { return new TableCheck({ name: this.name, columnNames: this.columnNames ? Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __spreadArray */ "f"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(this.columnNames)) : [], expression: this.expression, }); }; // ------------------------------------------------------------------------- // Static Methods // ------------------------------------------------------------------------- /** * Creates checks from the check metadata object. */ TableCheck.create = function (checkMetadata) { return new TableCheck({ name: checkMetadata.name, expression: checkMetadata.expression }); }; return TableCheck; }()); //# sourceMappingURL=TableCheck.js.map /***/ }), /* 44 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TransactionNotStartedError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Thrown when transaction is not started yet and user tries to run commit or rollback. */ var TransactionNotStartedError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(TransactionNotStartedError, _super); function TransactionNotStartedError() { var _this = _super.call(this) || this; _this.name = "TransactionNotStartedError"; Object.setPrototypeOf(_this, TransactionNotStartedError.prototype); _this.message = "Transaction is not started yet, start transaction before committing or rolling it back."; return _this; } return TransactionNotStartedError; }(Error)); //# sourceMappingURL=TransactionNotStartedError.js.map /***/ }), /* 45 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(11); var hide = __webpack_require__(52); var has = __webpack_require__(51); var SRC = __webpack_require__(88)('src'); var $toString = __webpack_require__(294); var TO_STRING = 'toString'; var TPL = ('' + $toString).split(TO_STRING); __webpack_require__(26).inspectSource = function (it) { return $toString.call(it); }; (module.exports = function (O, key, val, safe) { var isFunction = typeof val == 'function'; if (isFunction) has(val, 'name') || hide(val, 'name', key); if (O[key] === val) return; if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); if (O === global) { O[key] = val; } else if (!safe) { delete O[key]; hide(O, key, val); } else if (O[key]) { O[key] = val; } else { hide(O, key, val); } // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative })(Function.prototype, TO_STRING, function toString() { return typeof this == 'function' && this[SRC] || $toString.call(this); }); /***/ }), /* 46 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(3); var fails = __webpack_require__(12); var defined = __webpack_require__(76); var quot = /"/g; // B.2.3.2.1 CreateHTML(string, tag, attribute, value) var createHTML = function (string, tag, attribute, value) { var S = String(defined(string)); var p1 = '<' + tag; if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '"') + '"'; return p1 + '>' + S + ''; }; module.exports = function (NAME, exec) { var O = {}; O[NAME] = exec(createHTML); $export($export.P + $export.F * fails(function () { var test = ''[NAME]('"'); return test !== test.toLowerCase() || test.split('"').length > 3; }), 'String', O); }; /***/ }), /* 47 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, "useContainer", function() { return /* reexport */ useContainer; }); __webpack_require__.d(__webpack_exports__, "getFromContainer", function() { return /* reexport */ getFromContainer; }); __webpack_require__.d(__webpack_exports__, "CannotReflectMethodParameterTypeError", function() { return /* reexport */ CannotReflectMethodParameterTypeError_CannotReflectMethodParameterTypeError; }); __webpack_require__.d(__webpack_exports__, "AlreadyHasActiveConnectionError", function() { return /* reexport */ AlreadyHasActiveConnectionError_AlreadyHasActiveConnectionError; }); __webpack_require__.d(__webpack_exports__, "SubjectWithoutIdentifierError", function() { return /* reexport */ SubjectWithoutIdentifierError_SubjectWithoutIdentifierError; }); __webpack_require__.d(__webpack_exports__, "CannotConnectAlreadyConnectedError", function() { return /* reexport */ CannotConnectAlreadyConnectedError_CannotConnectAlreadyConnectedError; }); __webpack_require__.d(__webpack_exports__, "LockNotSupportedOnGivenDriverError", function() { return /* reexport */ LockNotSupportedOnGivenDriverError["a" /* LockNotSupportedOnGivenDriverError */]; }); __webpack_require__.d(__webpack_exports__, "ConnectionIsNotSetError", function() { return /* reexport */ ConnectionIsNotSetError_ConnectionIsNotSetError; }); __webpack_require__.d(__webpack_exports__, "CannotCreateEntityIdMapError", function() { return /* reexport */ CannotCreateEntityIdMapError["a" /* CannotCreateEntityIdMapError */]; }); __webpack_require__.d(__webpack_exports__, "MetadataAlreadyExistsError", function() { return /* reexport */ MetadataAlreadyExistsError_MetadataAlreadyExistsError; }); __webpack_require__.d(__webpack_exports__, "CannotDetermineEntityError", function() { return /* reexport */ CannotDetermineEntityError_CannotDetermineEntityError; }); __webpack_require__.d(__webpack_exports__, "UpdateValuesMissingError", function() { return /* reexport */ UpdateValuesMissingError["a" /* UpdateValuesMissingError */]; }); __webpack_require__.d(__webpack_exports__, "TreeRepositoryNotSupportedError", function() { return /* reexport */ TreeRepositoryNotSupportedError_TreeRepositoryNotSupportedError; }); __webpack_require__.d(__webpack_exports__, "CustomRepositoryNotFoundError", function() { return /* reexport */ CustomRepositoryNotFoundError_CustomRepositoryNotFoundError; }); __webpack_require__.d(__webpack_exports__, "TransactionNotStartedError", function() { return /* reexport */ TransactionNotStartedError["a" /* TransactionNotStartedError */]; }); __webpack_require__.d(__webpack_exports__, "TransactionAlreadyStartedError", function() { return /* reexport */ TransactionAlreadyStartedError["a" /* TransactionAlreadyStartedError */]; }); __webpack_require__.d(__webpack_exports__, "EntityNotFoundError", function() { return /* reexport */ EntityNotFoundError["a" /* EntityNotFoundError */]; }); __webpack_require__.d(__webpack_exports__, "EntityMetadataNotFoundError", function() { return /* reexport */ EntityMetadataNotFoundError_EntityMetadataNotFoundError; }); __webpack_require__.d(__webpack_exports__, "MustBeEntityError", function() { return /* reexport */ MustBeEntityError_MustBeEntityError; }); __webpack_require__.d(__webpack_exports__, "OptimisticLockVersionMismatchError", function() { return /* reexport */ OptimisticLockVersionMismatchError["a" /* OptimisticLockVersionMismatchError */]; }); __webpack_require__.d(__webpack_exports__, "LimitOnUpdateNotSupportedError", function() { return /* reexport */ LimitOnUpdateNotSupportedError["a" /* LimitOnUpdateNotSupportedError */]; }); __webpack_require__.d(__webpack_exports__, "PrimaryColumnCannotBeNullableError", function() { return /* reexport */ PrimaryColumnCannotBeNullableError_PrimaryColumnCannotBeNullableError; }); __webpack_require__.d(__webpack_exports__, "CustomRepositoryCannotInheritRepositoryError", function() { return /* reexport */ CustomRepositoryCannotInheritRepositoryError_CustomRepositoryCannotInheritRepositoryError; }); __webpack_require__.d(__webpack_exports__, "QueryRunnerProviderAlreadyReleasedError", function() { return /* reexport */ QueryRunnerProviderAlreadyReleasedError_QueryRunnerProviderAlreadyReleasedError; }); __webpack_require__.d(__webpack_exports__, "CannotAttachTreeChildrenEntityError", function() { return /* reexport */ CannotAttachTreeChildrenEntityError_CannotAttachTreeChildrenEntityError; }); __webpack_require__.d(__webpack_exports__, "CustomRepositoryDoesNotHaveEntityError", function() { return /* reexport */ CustomRepositoryDoesNotHaveEntityError_CustomRepositoryDoesNotHaveEntityError; }); __webpack_require__.d(__webpack_exports__, "MissingDeleteDateColumnError", function() { return /* reexport */ MissingDeleteDateColumnError["a" /* MissingDeleteDateColumnError */]; }); __webpack_require__.d(__webpack_exports__, "NoConnectionForRepositoryError", function() { return /* reexport */ NoConnectionForRepositoryError_NoConnectionForRepositoryError; }); __webpack_require__.d(__webpack_exports__, "CircularRelationsError", function() { return /* reexport */ CircularRelationsError_CircularRelationsError; }); __webpack_require__.d(__webpack_exports__, "ReturningStatementNotSupportedError", function() { return /* reexport */ ReturningStatementNotSupportedError["a" /* ReturningStatementNotSupportedError */]; }); __webpack_require__.d(__webpack_exports__, "UsingJoinTableIsNotAllowedError", function() { return /* reexport */ UsingJoinTableIsNotAllowedError_UsingJoinTableIsNotAllowedError; }); __webpack_require__.d(__webpack_exports__, "MissingJoinColumnError", function() { return /* reexport */ MissingJoinColumnError_MissingJoinColumnError; }); __webpack_require__.d(__webpack_exports__, "MissingPrimaryColumnError", function() { return /* reexport */ MissingPrimaryColumnError_MissingPrimaryColumnError; }); __webpack_require__.d(__webpack_exports__, "EntityColumnNotFound", function() { return /* reexport */ EntityColumnNotFound["a" /* EntityColumnNotFound */]; }); __webpack_require__.d(__webpack_exports__, "MissingDriverError", function() { return /* reexport */ MissingDriverError_MissingDriverError; }); __webpack_require__.d(__webpack_exports__, "DriverPackageNotInstalledError", function() { return /* reexport */ DriverPackageNotInstalledError["a" /* DriverPackageNotInstalledError */]; }); __webpack_require__.d(__webpack_exports__, "CannotGetEntityManagerNotConnectedError", function() { return /* reexport */ CannotGetEntityManagerNotConnectedError_CannotGetEntityManagerNotConnectedError; }); __webpack_require__.d(__webpack_exports__, "ConnectionNotFoundError", function() { return /* reexport */ ConnectionNotFoundError_ConnectionNotFoundError; }); __webpack_require__.d(__webpack_exports__, "NoVersionOrUpdateDateColumnError", function() { return /* reexport */ NoVersionOrUpdateDateColumnError["a" /* NoVersionOrUpdateDateColumnError */]; }); __webpack_require__.d(__webpack_exports__, "InsertValuesMissingError", function() { return /* reexport */ InsertValuesMissingError["a" /* InsertValuesMissingError */]; }); __webpack_require__.d(__webpack_exports__, "OptimisticLockCanNotBeUsedError", function() { return /* reexport */ OptimisticLockCanNotBeUsedError["a" /* OptimisticLockCanNotBeUsedError */]; }); __webpack_require__.d(__webpack_exports__, "MetadataWithSuchNameAlreadyExistsError", function() { return /* reexport */ MetadataWithSuchNameAlreadyExistsError_MetadataWithSuchNameAlreadyExistsError; }); __webpack_require__.d(__webpack_exports__, "DriverOptionNotSetError", function() { return /* reexport */ DriverOptionNotSetError["a" /* DriverOptionNotSetError */]; }); __webpack_require__.d(__webpack_exports__, "FindRelationsNotFoundError", function() { return /* reexport */ FindRelationsNotFoundError_FindRelationsNotFoundError; }); __webpack_require__.d(__webpack_exports__, "RepositoryNotFoundError", function() { return /* reexport */ RepositoryNotFoundError_RepositoryNotFoundError; }); __webpack_require__.d(__webpack_exports__, "NamingStrategyNotFoundError", function() { return /* reexport */ NamingStrategyNotFoundError_NamingStrategyNotFoundError; }); __webpack_require__.d(__webpack_exports__, "PessimisticLockTransactionRequiredError", function() { return /* reexport */ PessimisticLockTransactionRequiredError["a" /* PessimisticLockTransactionRequiredError */]; }); __webpack_require__.d(__webpack_exports__, "RepositoryNotTreeError", function() { return /* reexport */ RepositoryNotTreeError_RepositoryNotTreeError; }); __webpack_require__.d(__webpack_exports__, "DataTypeNotSupportedError", function() { return /* reexport */ DataTypeNotSupportedError_DataTypeNotSupportedError; }); __webpack_require__.d(__webpack_exports__, "InitializedRelationError", function() { return /* reexport */ InitializedRelationError_InitializedRelationError; }); __webpack_require__.d(__webpack_exports__, "MissingJoinTableError", function() { return /* reexport */ MissingJoinTableError_MissingJoinTableError; }); __webpack_require__.d(__webpack_exports__, "QueryFailedError", function() { return /* reexport */ QueryFailedError["a" /* QueryFailedError */]; }); __webpack_require__.d(__webpack_exports__, "NoNeedToReleaseEntityManagerError", function() { return /* reexport */ NoNeedToReleaseEntityManagerError_NoNeedToReleaseEntityManagerError; }); __webpack_require__.d(__webpack_exports__, "UsingJoinColumnOnlyOnOneSideAllowedError", function() { return /* reexport */ UsingJoinColumnOnlyOnOneSideAllowedError_UsingJoinColumnOnlyOnOneSideAllowedError; }); __webpack_require__.d(__webpack_exports__, "UsingJoinTableOnlyOnOneSideAllowedError", function() { return /* reexport */ UsingJoinTableOnlyOnOneSideAllowedError_UsingJoinTableOnlyOnOneSideAllowedError; }); __webpack_require__.d(__webpack_exports__, "SubjectRemovedAndUpdatedError", function() { return /* reexport */ SubjectRemovedAndUpdatedError_SubjectRemovedAndUpdatedError; }); __webpack_require__.d(__webpack_exports__, "PersistedEntityNotFoundError", function() { return /* reexport */ PersistedEntityNotFoundError_PersistedEntityNotFoundError; }); __webpack_require__.d(__webpack_exports__, "UsingJoinColumnIsNotAllowedError", function() { return /* reexport */ UsingJoinColumnIsNotAllowedError_UsingJoinColumnIsNotAllowedError; }); __webpack_require__.d(__webpack_exports__, "ColumnTypeUndefinedError", function() { return /* reexport */ ColumnTypeUndefinedError_ColumnTypeUndefinedError; }); __webpack_require__.d(__webpack_exports__, "QueryRunnerAlreadyReleasedError", function() { return /* reexport */ QueryRunnerAlreadyReleasedError["a" /* QueryRunnerAlreadyReleasedError */]; }); __webpack_require__.d(__webpack_exports__, "OffsetWithoutLimitNotSupportedError", function() { return /* reexport */ OffsetWithoutLimitNotSupportedError["a" /* OffsetWithoutLimitNotSupportedError */]; }); __webpack_require__.d(__webpack_exports__, "CannotExecuteNotConnectedError", function() { return /* reexport */ CannotExecuteNotConnectedError_CannotExecuteNotConnectedError; }); __webpack_require__.d(__webpack_exports__, "NoConnectionOptionError", function() { return /* reexport */ NoConnectionOptionError_NoConnectionOptionError; }); __webpack_require__.d(__webpack_exports__, "Column", function() { return /* reexport */ Column; }); __webpack_require__.d(__webpack_exports__, "CreateDateColumn", function() { return /* reexport */ CreateDateColumn; }); __webpack_require__.d(__webpack_exports__, "DeleteDateColumn", function() { return /* reexport */ DeleteDateColumn; }); __webpack_require__.d(__webpack_exports__, "PrimaryGeneratedColumn", function() { return /* reexport */ PrimaryGeneratedColumn; }); __webpack_require__.d(__webpack_exports__, "PrimaryColumn", function() { return /* reexport */ PrimaryColumn; }); __webpack_require__.d(__webpack_exports__, "UpdateDateColumn", function() { return /* reexport */ UpdateDateColumn; }); __webpack_require__.d(__webpack_exports__, "VersionColumn", function() { return /* reexport */ VersionColumn; }); __webpack_require__.d(__webpack_exports__, "ViewColumn", function() { return /* reexport */ ViewColumn; }); __webpack_require__.d(__webpack_exports__, "ObjectIdColumn", function() { return /* reexport */ ObjectIdColumn; }); __webpack_require__.d(__webpack_exports__, "AfterInsert", function() { return /* reexport */ AfterInsert; }); __webpack_require__.d(__webpack_exports__, "AfterLoad", function() { return /* reexport */ AfterLoad; }); __webpack_require__.d(__webpack_exports__, "AfterRemove", function() { return /* reexport */ AfterRemove; }); __webpack_require__.d(__webpack_exports__, "AfterUpdate", function() { return /* reexport */ AfterUpdate; }); __webpack_require__.d(__webpack_exports__, "BeforeInsert", function() { return /* reexport */ BeforeInsert; }); __webpack_require__.d(__webpack_exports__, "BeforeRemove", function() { return /* reexport */ BeforeRemove; }); __webpack_require__.d(__webpack_exports__, "BeforeUpdate", function() { return /* reexport */ BeforeUpdate; }); __webpack_require__.d(__webpack_exports__, "EventSubscriber", function() { return /* reexport */ EventSubscriber; }); __webpack_require__.d(__webpack_exports__, "JoinColumn", function() { return /* reexport */ JoinColumn; }); __webpack_require__.d(__webpack_exports__, "JoinTable", function() { return /* reexport */ JoinTable; }); __webpack_require__.d(__webpack_exports__, "ManyToMany", function() { return /* reexport */ ManyToMany; }); __webpack_require__.d(__webpack_exports__, "ManyToOne", function() { return /* reexport */ ManyToOne; }); __webpack_require__.d(__webpack_exports__, "OneToMany", function() { return /* reexport */ OneToMany; }); __webpack_require__.d(__webpack_exports__, "OneToOne", function() { return /* reexport */ OneToOne; }); __webpack_require__.d(__webpack_exports__, "RelationCount", function() { return /* reexport */ RelationCount; }); __webpack_require__.d(__webpack_exports__, "RelationId", function() { return /* reexport */ RelationId; }); __webpack_require__.d(__webpack_exports__, "Entity", function() { return /* reexport */ Entity; }); __webpack_require__.d(__webpack_exports__, "ChildEntity", function() { return /* reexport */ ChildEntity; }); __webpack_require__.d(__webpack_exports__, "TableInheritance", function() { return /* reexport */ TableInheritance; }); __webpack_require__.d(__webpack_exports__, "ViewEntity", function() { return /* reexport */ ViewEntity; }); __webpack_require__.d(__webpack_exports__, "Transaction", function() { return /* reexport */ Transaction; }); __webpack_require__.d(__webpack_exports__, "TransactionManager", function() { return /* reexport */ TransactionManager; }); __webpack_require__.d(__webpack_exports__, "TransactionRepository", function() { return /* reexport */ TransactionRepository; }); __webpack_require__.d(__webpack_exports__, "TreeLevelColumn", function() { return /* reexport */ TreeLevelColumn; }); __webpack_require__.d(__webpack_exports__, "TreeParent", function() { return /* reexport */ TreeParent; }); __webpack_require__.d(__webpack_exports__, "TreeChildren", function() { return /* reexport */ TreeChildren; }); __webpack_require__.d(__webpack_exports__, "Tree", function() { return /* reexport */ Tree; }); __webpack_require__.d(__webpack_exports__, "Index", function() { return /* reexport */ Index; }); __webpack_require__.d(__webpack_exports__, "Unique", function() { return /* reexport */ Unique; }); __webpack_require__.d(__webpack_exports__, "Check", function() { return /* reexport */ Check; }); __webpack_require__.d(__webpack_exports__, "Exclusion", function() { return /* reexport */ Exclusion; }); __webpack_require__.d(__webpack_exports__, "Generated", function() { return /* reexport */ Generated; }); __webpack_require__.d(__webpack_exports__, "EntityRepository", function() { return /* reexport */ EntityRepository; }); __webpack_require__.d(__webpack_exports__, "Any", function() { return /* reexport */ Any; }); __webpack_require__.d(__webpack_exports__, "Between", function() { return /* reexport */ Between; }); __webpack_require__.d(__webpack_exports__, "Equal", function() { return /* reexport */ Equal; }); __webpack_require__.d(__webpack_exports__, "In", function() { return /* reexport */ In["a" /* In */]; }); __webpack_require__.d(__webpack_exports__, "IsNull", function() { return /* reexport */ IsNull; }); __webpack_require__.d(__webpack_exports__, "LessThan", function() { return /* reexport */ LessThan; }); __webpack_require__.d(__webpack_exports__, "LessThanOrEqual", function() { return /* reexport */ LessThanOrEqual; }); __webpack_require__.d(__webpack_exports__, "ILike", function() { return /* reexport */ ILike; }); __webpack_require__.d(__webpack_exports__, "Like", function() { return /* reexport */ Like; }); __webpack_require__.d(__webpack_exports__, "MoreThan", function() { return /* reexport */ MoreThan; }); __webpack_require__.d(__webpack_exports__, "MoreThanOrEqual", function() { return /* reexport */ MoreThanOrEqual; }); __webpack_require__.d(__webpack_exports__, "Not", function() { return /* reexport */ Not; }); __webpack_require__.d(__webpack_exports__, "Raw", function() { return /* reexport */ Raw; }); __webpack_require__.d(__webpack_exports__, "FindOperator", function() { return /* reexport */ FindOperator["a" /* FindOperator */]; }); __webpack_require__.d(__webpack_exports__, "FindOptionsUtils", function() { return /* reexport */ FindOptionsUtils_FindOptionsUtils; }); __webpack_require__.d(__webpack_exports__, "AdvancedConsoleLogger", function() { return /* reexport */ AdvancedConsoleLogger_AdvancedConsoleLogger; }); __webpack_require__.d(__webpack_exports__, "SimpleConsoleLogger", function() { return /* reexport */ SimpleConsoleLogger; }); __webpack_require__.d(__webpack_exports__, "DummyLogger", function() { return /* reexport */ DummyLogger; }); __webpack_require__.d(__webpack_exports__, "FileLogger", function() { return /* reexport */ BrowserFileLoggerDummy_FileLogger; }); __webpack_require__.d(__webpack_exports__, "EntityMetadata", function() { return /* reexport */ EntityMetadata["a" /* EntityMetadata */]; }); __webpack_require__.d(__webpack_exports__, "EntityManager", function() { return /* reexport */ EntityManager_EntityManager; }); __webpack_require__.d(__webpack_exports__, "AbstractRepository", function() { return /* reexport */ AbstractRepository_AbstractRepository; }); __webpack_require__.d(__webpack_exports__, "Repository", function() { return /* reexport */ Repository_Repository; }); __webpack_require__.d(__webpack_exports__, "BaseEntity", function() { return /* reexport */ BaseEntity_BaseEntity; }); __webpack_require__.d(__webpack_exports__, "TreeRepository", function() { return /* reexport */ TreeRepository_TreeRepository; }); __webpack_require__.d(__webpack_exports__, "MongoDriver", function() { return /* reexport */ BrowserDisabledDriversDummy["e" /* MongoDriver */]; }); __webpack_require__.d(__webpack_exports__, "MongoQueryRunner", function() { return /* reexport */ BrowserDisabledDriversDummy["g" /* MongoQueryRunner */]; }); __webpack_require__.d(__webpack_exports__, "MongoRepository", function() { return /* reexport */ BrowserDisabledDriversDummy["h" /* MongoRepository */]; }); __webpack_require__.d(__webpack_exports__, "PostgresDriver", function() { return /* reexport */ BrowserDisabledDriversDummy["k" /* PostgresDriver */]; }); __webpack_require__.d(__webpack_exports__, "AuroraDataApiDriver", function() { return /* reexport */ BrowserDisabledDriversDummy["a" /* AuroraDataApiDriver */]; }); __webpack_require__.d(__webpack_exports__, "CockroachDriver", function() { return /* reexport */ BrowserDisabledDriversDummy["d" /* CockroachDriver */]; }); __webpack_require__.d(__webpack_exports__, "AuroraDataApiPostgresDriver", function() { return /* reexport */ BrowserDisabledDriversDummy["b" /* AuroraDataApiPostgresDriver */]; }); __webpack_require__.d(__webpack_exports__, "SqlServerDriver", function() { return /* reexport */ BrowserDisabledDriversDummy["m" /* SqlServerDriver */]; }); __webpack_require__.d(__webpack_exports__, "SapDriver", function() { return /* reexport */ BrowserDisabledDriversDummy["l" /* SapDriver */]; }); __webpack_require__.d(__webpack_exports__, "MysqlDriver", function() { return /* reexport */ BrowserDisabledDriversDummy["i" /* MysqlDriver */]; }); __webpack_require__.d(__webpack_exports__, "OracleDriver", function() { return /* reexport */ BrowserDisabledDriversDummy["j" /* OracleDriver */]; }); __webpack_require__.d(__webpack_exports__, "SqliteDriver", function() { return /* reexport */ BrowserDisabledDriversDummy["n" /* SqliteDriver */]; }); __webpack_require__.d(__webpack_exports__, "BetterSqlite3Driver", function() { return /* reexport */ BrowserDisabledDriversDummy["c" /* BetterSqlite3Driver */]; }); __webpack_require__.d(__webpack_exports__, "TableCheck", function() { return /* reexport */ TableCheck["a" /* TableCheck */]; }); __webpack_require__.d(__webpack_exports__, "TableColumn", function() { return /* reexport */ TableColumn["a" /* TableColumn */]; }); __webpack_require__.d(__webpack_exports__, "TableExclusion", function() { return /* reexport */ TableExclusion["a" /* TableExclusion */]; }); __webpack_require__.d(__webpack_exports__, "TableForeignKey", function() { return /* reexport */ TableForeignKey["a" /* TableForeignKey */]; }); __webpack_require__.d(__webpack_exports__, "TableIndex", function() { return /* reexport */ TableIndex["a" /* TableIndex */]; }); __webpack_require__.d(__webpack_exports__, "TableUnique", function() { return /* reexport */ TableUnique["a" /* TableUnique */]; }); __webpack_require__.d(__webpack_exports__, "Table", function() { return /* reexport */ Table["a" /* Table */]; }); __webpack_require__.d(__webpack_exports__, "MssqlParameter", function() { return /* reexport */ MssqlParameter; }); __webpack_require__.d(__webpack_exports__, "ConnectionOptionsReader", function() { return /* reexport */ BrowserConnectionOptionsReaderDummy_ConnectionOptionsReader; }); __webpack_require__.d(__webpack_exports__, "Connection", function() { return /* reexport */ Connection_Connection; }); __webpack_require__.d(__webpack_exports__, "ConnectionManager", function() { return /* reexport */ ConnectionManager_ConnectionManager; }); __webpack_require__.d(__webpack_exports__, "QueryBuilder", function() { return /* reexport */ QueryBuilder["a" /* QueryBuilder */]; }); __webpack_require__.d(__webpack_exports__, "SelectQueryBuilder", function() { return /* reexport */ SelectQueryBuilder["SelectQueryBuilder"]; }); __webpack_require__.d(__webpack_exports__, "DeleteQueryBuilder", function() { return /* reexport */ DeleteQueryBuilder["DeleteQueryBuilder"]; }); __webpack_require__.d(__webpack_exports__, "InsertQueryBuilder", function() { return /* reexport */ InsertQueryBuilder["InsertQueryBuilder"]; }); __webpack_require__.d(__webpack_exports__, "UpdateQueryBuilder", function() { return /* reexport */ UpdateQueryBuilder["UpdateQueryBuilder"]; }); __webpack_require__.d(__webpack_exports__, "RelationQueryBuilder", function() { return /* reexport */ RelationQueryBuilder["RelationQueryBuilder"]; }); __webpack_require__.d(__webpack_exports__, "Brackets", function() { return /* reexport */ Brackets["a" /* Brackets */]; }); __webpack_require__.d(__webpack_exports__, "InsertResult", function() { return /* reexport */ InsertResult["a" /* InsertResult */]; }); __webpack_require__.d(__webpack_exports__, "UpdateResult", function() { return /* reexport */ UpdateResult["a" /* UpdateResult */]; }); __webpack_require__.d(__webpack_exports__, "DeleteResult", function() { return /* reexport */ DeleteResult["a" /* DeleteResult */]; }); __webpack_require__.d(__webpack_exports__, "MongoEntityManager", function() { return /* reexport */ BrowserDisabledDriversDummy["f" /* MongoEntityManager */]; }); __webpack_require__.d(__webpack_exports__, "Migration", function() { return /* reexport */ Migration; }); __webpack_require__.d(__webpack_exports__, "MigrationExecutor", function() { return /* reexport */ MigrationExecutor_MigrationExecutor; }); __webpack_require__.d(__webpack_exports__, "DefaultNamingStrategy", function() { return /* reexport */ DefaultNamingStrategy_DefaultNamingStrategy; }); __webpack_require__.d(__webpack_exports__, "EntitySchema", function() { return /* reexport */ EntitySchema["a" /* EntitySchema */]; }); __webpack_require__.d(__webpack_exports__, "getMetadataArgsStorage", function() { return /* binding */ getMetadataArgsStorage; }); __webpack_require__.d(__webpack_exports__, "getConnectionOptions", function() { return /* binding */ getConnectionOptions; }); __webpack_require__.d(__webpack_exports__, "getConnectionManager", function() { return /* binding */ getConnectionManager; }); __webpack_require__.d(__webpack_exports__, "createConnection", function() { return /* binding */ createConnection; }); __webpack_require__.d(__webpack_exports__, "createConnections", function() { return /* binding */ createConnections; }); __webpack_require__.d(__webpack_exports__, "getConnection", function() { return /* binding */ getConnection; }); __webpack_require__.d(__webpack_exports__, "getManager", function() { return /* binding */ getManager; }); __webpack_require__.d(__webpack_exports__, "getMongoManager", function() { return /* binding */ getMongoManager; }); __webpack_require__.d(__webpack_exports__, "getSqljsManager", function() { return /* binding */ getSqljsManager; }); __webpack_require__.d(__webpack_exports__, "getRepository", function() { return /* binding */ getRepository; }); __webpack_require__.d(__webpack_exports__, "getTreeRepository", function() { return /* binding */ getTreeRepository; }); __webpack_require__.d(__webpack_exports__, "getCustomRepository", function() { return /* binding */ getCustomRepository; }); __webpack_require__.d(__webpack_exports__, "getMongoRepository", function() { return /* binding */ getMongoRepository; }); __webpack_require__.d(__webpack_exports__, "createQueryBuilder", function() { return /* binding */ createQueryBuilder; }); // EXTERNAL MODULE: ./node_modules/typeorm/node_modules/tslib/tslib.es6.js var tslib_es6 = __webpack_require__(0); // EXTERNAL MODULE: ./node_modules/reflect-metadata/Reflect.js var reflect_metadata_Reflect = __webpack_require__(479); // EXTERNAL MODULE: ./node_modules/typeorm/browser/util/RandomGenerator.js var RandomGenerator = __webpack_require__(62); // EXTERNAL MODULE: ./node_modules/typeorm/browser/util/StringUtils.js var StringUtils = __webpack_require__(49); // EXTERNAL MODULE: ./node_modules/typeorm/browser/schema-builder/table/Table.js var Table = __webpack_require__(5); // CONCATENATED MODULE: ./node_modules/typeorm/browser/naming-strategy/DefaultNamingStrategy.js /** * Naming strategy that is used by default. */ var DefaultNamingStrategy_DefaultNamingStrategy = /** @class */ (function () { function DefaultNamingStrategy() { this.nestedSetColumnNames = { left: "nsleft", right: "nsright" }; this.materializedPathColumnName = "mpath"; } /** * Normalizes table name. * * @param targetName Name of the target entity that can be used to generate a table name. * @param userSpecifiedName For example if user specified a table name in a decorator, e.g. @Entity("name") */ DefaultNamingStrategy.prototype.tableName = function (targetName, userSpecifiedName) { return userSpecifiedName ? userSpecifiedName : Object(StringUtils["d" /* snakeCase */])(targetName); }; /** * Creates a table name for a junction table of a closure table. * * @param originalClosureTableName Name of the closure table which owns this junction table. */ DefaultNamingStrategy.prototype.closureJunctionTableName = function (originalClosureTableName) { return originalClosureTableName + "_closure"; }; DefaultNamingStrategy.prototype.columnName = function (propertyName, customName, embeddedPrefixes) { var name = customName || propertyName; if (embeddedPrefixes.length) return Object(StringUtils["a" /* camelCase */])(embeddedPrefixes.join("_")) + Object(StringUtils["e" /* titleCase */])(name); return name; }; DefaultNamingStrategy.prototype.relationName = function (propertyName) { return propertyName; }; DefaultNamingStrategy.prototype.primaryKeyName = function (tableOrName, columnNames) { // sort incoming column names to avoid issue when ["id", "name"] and ["name", "id"] arrays var clonedColumnNames = Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(columnNames)); clonedColumnNames.sort(); var tableName = tableOrName instanceof Table["a" /* Table */] ? tableOrName.name : tableOrName; var replacedTableName = tableName.replace(".", "_"); var key = replacedTableName + "_" + clonedColumnNames.join("_"); return "PK_" + RandomGenerator["a" /* RandomGenerator */].sha1(key).substr(0, 27); }; DefaultNamingStrategy.prototype.uniqueConstraintName = function (tableOrName, columnNames) { // sort incoming column names to avoid issue when ["id", "name"] and ["name", "id"] arrays var clonedColumnNames = Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(columnNames)); clonedColumnNames.sort(); var tableName = tableOrName instanceof Table["a" /* Table */] ? tableOrName.name : tableOrName; var replacedTableName = tableName.replace(".", "_"); var key = replacedTableName + "_" + clonedColumnNames.join("_"); return "UQ_" + RandomGenerator["a" /* RandomGenerator */].sha1(key).substr(0, 27); }; DefaultNamingStrategy.prototype.relationConstraintName = function (tableOrName, columnNames, where) { // sort incoming column names to avoid issue when ["id", "name"] and ["name", "id"] arrays var clonedColumnNames = Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(columnNames)); clonedColumnNames.sort(); var tableName = tableOrName instanceof Table["a" /* Table */] ? tableOrName.name : tableOrName; var replacedTableName = tableName.replace(".", "_"); var key = replacedTableName + "_" + clonedColumnNames.join("_"); if (where) key += "_" + where; return "REL_" + RandomGenerator["a" /* RandomGenerator */].sha1(key).substr(0, 26); }; DefaultNamingStrategy.prototype.defaultConstraintName = function (tableOrName, columnName) { var tableName = tableOrName instanceof Table["a" /* Table */] ? tableOrName.name : tableOrName; var replacedTableName = tableName.replace(".", "_"); var key = replacedTableName + "_" + columnName; return "DF_" + RandomGenerator["a" /* RandomGenerator */].sha1(key).substr(0, 27); }; DefaultNamingStrategy.prototype.foreignKeyName = function (tableOrName, columnNames, _referencedTablePath, _referencedColumnNames) { // sort incoming column names to avoid issue when ["id", "name"] and ["name", "id"] arrays var clonedColumnNames = Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(columnNames)); clonedColumnNames.sort(); var tableName = tableOrName instanceof Table["a" /* Table */] ? tableOrName.name : tableOrName; var replacedTableName = tableName.replace(".", "_"); var key = replacedTableName + "_" + clonedColumnNames.join("_"); return "FK_" + RandomGenerator["a" /* RandomGenerator */].sha1(key).substr(0, 27); }; DefaultNamingStrategy.prototype.indexName = function (tableOrName, columnNames, where) { // sort incoming column names to avoid issue when ["id", "name"] and ["name", "id"] arrays var clonedColumnNames = Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(columnNames)); clonedColumnNames.sort(); var tableName = tableOrName instanceof Table["a" /* Table */] ? tableOrName.name : tableOrName; var replacedTableName = tableName.replace(".", "_"); var key = replacedTableName + "_" + clonedColumnNames.join("_"); if (where) key += "_" + where; return "IDX_" + RandomGenerator["a" /* RandomGenerator */].sha1(key).substr(0, 26); }; DefaultNamingStrategy.prototype.checkConstraintName = function (tableOrName, expression, isEnum) { var tableName = tableOrName instanceof Table["a" /* Table */] ? tableOrName.name : tableOrName; var replacedTableName = tableName.replace(".", "_"); var key = replacedTableName + "_" + expression; var name = "CHK_" + RandomGenerator["a" /* RandomGenerator */].sha1(key).substr(0, 26); return isEnum ? name + "_ENUM" : name; }; DefaultNamingStrategy.prototype.exclusionConstraintName = function (tableOrName, expression) { var tableName = tableOrName instanceof Table["a" /* Table */] ? tableOrName.name : tableOrName; var replacedTableName = tableName.replace(".", "_"); var key = replacedTableName + "_" + expression; return "XCL_" + RandomGenerator["a" /* RandomGenerator */].sha1(key).substr(0, 26); }; DefaultNamingStrategy.prototype.joinColumnName = function (relationName, referencedColumnName) { return Object(StringUtils["a" /* camelCase */])(relationName + "_" + referencedColumnName); }; DefaultNamingStrategy.prototype.joinTableName = function (firstTableName, secondTableName, firstPropertyName, secondPropertyName) { return Object(StringUtils["d" /* snakeCase */])(firstTableName + "_" + firstPropertyName.replace(/\./gi, "_") + "_" + secondTableName); }; DefaultNamingStrategy.prototype.joinTableColumnDuplicationPrefix = function (columnName, index) { return columnName + "_" + index; }; DefaultNamingStrategy.prototype.joinTableColumnName = function (tableName, propertyName, columnName) { return Object(StringUtils["a" /* camelCase */])(tableName + "_" + (columnName ? columnName : propertyName)); }; DefaultNamingStrategy.prototype.joinTableInverseColumnName = function (tableName, propertyName, columnName) { return this.joinTableColumnName(tableName, propertyName, columnName); }; /** * Adds globally set prefix to the table name. * This method is executed no matter if prefix was set or not. * Table name is either user's given table name, either name generated from entity target. * Note that table name comes here already normalized by #tableName method. */ DefaultNamingStrategy.prototype.prefixTableName = function (prefix, tableName) { return prefix + tableName; }; DefaultNamingStrategy.prototype.eagerJoinRelationAlias = function (alias, propertyPath) { return alias + "_" + propertyPath.replace(".", "_"); }; return DefaultNamingStrategy; }()); //# sourceMappingURL=DefaultNamingStrategy.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/CannotExecuteNotConnectedError.js /** * Thrown when consumer tries to execute operation allowed only if connection is opened. */ var CannotExecuteNotConnectedError_CannotExecuteNotConnectedError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(CannotExecuteNotConnectedError, _super); function CannotExecuteNotConnectedError(connectionName) { var _this = _super.call(this) || this; _this.name = "CannotExecuteNotConnectedError"; Object.setPrototypeOf(_this, CannotExecuteNotConnectedError.prototype); _this.message = "Cannot execute operation on \"" + connectionName + "\" connection because connection is not yet established."; return _this; } return CannotExecuteNotConnectedError; }(Error)); //# sourceMappingURL=CannotExecuteNotConnectedError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/CannotConnectAlreadyConnectedError.js /** * Thrown when consumer tries to connect when he already connected. */ var CannotConnectAlreadyConnectedError_CannotConnectAlreadyConnectedError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(CannotConnectAlreadyConnectedError, _super); function CannotConnectAlreadyConnectedError(connectionName) { var _this = _super.call(this) || this; _this.name = "CannotConnectAlreadyConnectedError"; Object.setPrototypeOf(_this, CannotConnectAlreadyConnectedError.prototype); _this.message = "Cannot create a \"" + connectionName + "\" connection because connection to the database already established."; return _this; } return CannotConnectAlreadyConnectedError; }(Error)); //# sourceMappingURL=CannotConnectAlreadyConnectedError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/EntityMetadataNotFoundError.js /** */ var EntityMetadataNotFoundError_EntityMetadataNotFoundError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(EntityMetadataNotFoundError, _super); function EntityMetadataNotFoundError(target) { var _this = _super.call(this) || this; _this.name = "EntityMetadataNotFound"; Object.setPrototypeOf(_this, EntityMetadataNotFoundError.prototype); var targetName; if (target instanceof EntitySchema["a" /* EntitySchema */]) { targetName = target.options.name; } else if (typeof target === "function") { targetName = target.name; } else if (typeof target === "object" && "name" in target) { targetName = target.name; } else { targetName = target; } _this.message = "No metadata for \"" + targetName + "\" was found."; return _this; } return EntityMetadataNotFoundError; }(Error)); //# sourceMappingURL=EntityMetadataNotFoundError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/migration/Migration.js /** * Represents entity of the migration in the database. */ var Migration = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function Migration(id, timestamp, name, instance) { this.id = id; this.timestamp = timestamp; this.name = name; this.instance = instance; } return Migration; }()); //# sourceMappingURL=Migration.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js var BrowserDisabledDriversDummy = __webpack_require__(1); // CONCATENATED MODULE: ./node_modules/typeorm/browser/driver/sqlserver/MssqlParameter.js /** * Sql server driver requires parameter types to be specified fo input parameters used in the query. * * @see https://github.com/patriksimek/node-mssql#data-types */ var MssqlParameter = /** @class */ (function () { function MssqlParameter(value, type) { var params = []; for (var _i = 2; _i < arguments.length; _i++) { params[_i - 2] = arguments[_i]; } this.value = value; this.type = type; // ------------------------------------------------------------------------- // Public Properties // ------------------------------------------------------------------------- this.params = []; this.params = params || []; } return MssqlParameter; }()); //# sourceMappingURL=MssqlParameter.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/migration/MigrationExecutor.js /** * Executes migrations: runs pending and reverts previously executed migrations. */ var MigrationExecutor_MigrationExecutor = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function MigrationExecutor(connection, queryRunner) { this.connection = connection; this.queryRunner = queryRunner; // ------------------------------------------------------------------------- // Public Properties // ------------------------------------------------------------------------- /** * Indicates how migrations should be run in transactions. * all: all migrations are run in a single transaction * none: all migrations are run without a transaction * each: each migration is run in a separate transaction */ this.transaction = "all"; var options = this.connection.driver.options; this.migrationsTableName = connection.options.migrationsTableName || "migrations"; this.migrationsTable = this.connection.driver.buildTableName(this.migrationsTableName, options.schema, options.database); } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Tries to execute a single migration given. */ MigrationExecutor.prototype.executeMigration = function (migration) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, this.withQueryRunner(function (queryRunner) { return Object(tslib_es6["b" /* __awaiter */])(_this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.createMigrationsTableIfNotExist(queryRunner)]; case 1: _a.sent(); return [4 /*yield*/, migration.instance.up(queryRunner)]; case 2: _a.sent(); return [4 /*yield*/, this.insertExecutedMigration(queryRunner, migration)]; case 3: _a.sent(); return [2 /*return*/, migration]; } }); }); })]; }); }); }; /** * Returns an array of all migrations. */ MigrationExecutor.prototype.getAllMigrations = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, Promise.resolve(this.getMigrations())]; }); }); }; /** * Returns an array of all executed migrations. */ MigrationExecutor.prototype.getExecutedMigrations = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, this.withQueryRunner(function (queryRunner) { return Object(tslib_es6["b" /* __awaiter */])(_this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.createMigrationsTableIfNotExist(queryRunner)]; case 1: _a.sent(); return [4 /*yield*/, this.loadExecutedMigrations(queryRunner)]; case 2: return [2 /*return*/, _a.sent()]; } }); }); })]; }); }); }; /** * Returns an array of all pending migrations. */ MigrationExecutor.prototype.getPendingMigrations = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var allMigrations, executedMigrations; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.getAllMigrations()]; case 1: allMigrations = _a.sent(); return [4 /*yield*/, this.getExecutedMigrations()]; case 2: executedMigrations = _a.sent(); return [2 /*return*/, allMigrations.filter(function (migration) { return !executedMigrations.find(function (executedMigration) { return executedMigration.name === migration.name; }); })]; } }); }); }; /** * Inserts an executed migration. */ MigrationExecutor.prototype.insertMigration = function (migration) { var _this = this; return new Promise(function (resolve, reject) { _this.withQueryRunner(function (queryRunner) { _this.insertExecutedMigration(queryRunner, migration) .then(resolve) .catch(reject); }); }); }; /** * Deletes an executed migration. */ MigrationExecutor.prototype.deleteMigration = function (migration) { var _this = this; return new Promise(function (resolve, reject) { _this.withQueryRunner(function (queryRunner) { _this.deleteExecutedMigration(queryRunner, migration) .then(resolve) .catch(reject); }); }); }; /** * Lists all migrations and whether they have been executed or not * returns true if there are unapplied migrations */ MigrationExecutor.prototype.showMigrations = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var hasUnappliedMigrations, queryRunner, executedMigrations, allMigrations, _loop_1, this_1, allMigrations_1, allMigrations_1_1, migration; var e_1, _a; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: hasUnappliedMigrations = false; queryRunner = this.queryRunner || this.connection.createQueryRunner(); // create migrations table if its not created yet return [4 /*yield*/, this.createMigrationsTableIfNotExist(queryRunner)]; case 1: // create migrations table if its not created yet _b.sent(); return [4 /*yield*/, this.loadExecutedMigrations(queryRunner)]; case 2: executedMigrations = _b.sent(); allMigrations = this.getMigrations(); _loop_1 = function (migration) { var executedMigration = executedMigrations.find(function (executedMigration) { return executedMigration.name === migration.name; }); if (executedMigration) { this_1.connection.logger.logSchemaBuild(" [X] " + migration.name); } else { hasUnappliedMigrations = true; this_1.connection.logger.logSchemaBuild(" [ ] " + migration.name); } }; this_1 = this; try { for (allMigrations_1 = Object(tslib_es6["g" /* __values */])(allMigrations), allMigrations_1_1 = allMigrations_1.next(); !allMigrations_1_1.done; allMigrations_1_1 = allMigrations_1.next()) { migration = allMigrations_1_1.value; _loop_1(migration); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (allMigrations_1_1 && !allMigrations_1_1.done && (_a = allMigrations_1.return)) _a.call(allMigrations_1); } finally { if (e_1) throw e_1.error; } } if (!!this.queryRunner) return [3 /*break*/, 4]; return [4 /*yield*/, queryRunner.release()]; case 3: _b.sent(); _b.label = 4; case 4: return [2 /*return*/, hasUnappliedMigrations]; } }); }); }; /** * Executes all pending migrations. Pending migrations are migrations that are not yet executed, * thus not saved in the database. */ MigrationExecutor.prototype.executePendingMigrations = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var queryRunner, executedMigrations, lastTimeExecutedMigration, allMigrations, successMigrations, pendingMigrations, transactionStartedByUs, _loop_2, this_2, pendingMigrations_1, pendingMigrations_1_1, migration, e_2_1, err_1, rollbackError_1; var e_2, _a; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: queryRunner = this.queryRunner || this.connection.createQueryRunner(); // create migrations table if its not created yet return [4 /*yield*/, this.createMigrationsTableIfNotExist(queryRunner)]; case 1: // create migrations table if its not created yet _b.sent(); return [4 /*yield*/, this.loadExecutedMigrations(queryRunner)]; case 2: executedMigrations = _b.sent(); lastTimeExecutedMigration = this.getLatestTimestampMigration(executedMigrations); allMigrations = this.getMigrations(); successMigrations = []; pendingMigrations = allMigrations.filter(function (migration) { // check if we already have executed migration var executedMigration = executedMigrations.find(function (executedMigration) { return executedMigration.name === migration.name; }); if (executedMigration) return false; // migration is new and not executed. now check if its timestamp is correct // if (lastTimeExecutedMigration && migration.timestamp < lastTimeExecutedMigration.timestamp) // throw new Error(`New migration found: ${migration.name}, however this migration's timestamp is not valid. Migration's timestamp should not be older then migrations already executed in the database.`); // every check is passed means that migration was not run yet and we need to run it return true; }); if (!!pendingMigrations.length) return [3 /*break*/, 5]; this.connection.logger.logSchemaBuild("No migrations are pending"); if (!!this.queryRunner) return [3 /*break*/, 4]; return [4 /*yield*/, queryRunner.release()]; case 3: _b.sent(); _b.label = 4; case 4: return [2 /*return*/, []]; case 5: // log information about migration execution this.connection.logger.logSchemaBuild(executedMigrations.length + " migrations are already loaded in the database."); this.connection.logger.logSchemaBuild(allMigrations.length + " migrations were found in the source code."); if (lastTimeExecutedMigration) this.connection.logger.logSchemaBuild(lastTimeExecutedMigration.name + " is the last executed migration. It was executed on " + new Date(lastTimeExecutedMigration.timestamp).toString() + "."); this.connection.logger.logSchemaBuild(pendingMigrations.length + " migrations are new migrations that needs to be executed."); transactionStartedByUs = false; if (!(this.transaction === "all" && !queryRunner.isTransactionActive)) return [3 /*break*/, 7]; return [4 /*yield*/, queryRunner.startTransaction()]; case 6: _b.sent(); transactionStartedByUs = true; _b.label = 7; case 7: _b.trys.push([7, 18, 23, 26]); _loop_2 = function (migration) { return Object(tslib_es6["d" /* __generator */])(this, function (_c) { switch (_c.label) { case 0: if (!(this_2.transaction === "each" && !queryRunner.isTransactionActive)) return [3 /*break*/, 2]; return [4 /*yield*/, queryRunner.startTransaction()]; case 1: _c.sent(); transactionStartedByUs = true; _c.label = 2; case 2: return [4 /*yield*/, migration.instance.up(queryRunner) .then(function () { return Object(tslib_es6["b" /* __awaiter */])(_this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: // now when migration is executed we need to insert record about it into the database return [4 /*yield*/, this.insertExecutedMigration(queryRunner, migration)]; case 1: _a.sent(); if (!(this.transaction === "each" && transactionStartedByUs)) return [3 /*break*/, 3]; return [4 /*yield*/, queryRunner.commitTransaction()]; case 2: _a.sent(); _a.label = 3; case 3: return [2 /*return*/]; } }); }); }) .then(function () { successMigrations.push(migration); _this.connection.logger.logSchemaBuild("Migration " + migration.name + " has been executed successfully."); })]; case 3: _c.sent(); return [2 /*return*/]; } }); }; this_2 = this; _b.label = 8; case 8: _b.trys.push([8, 13, 14, 15]); pendingMigrations_1 = Object(tslib_es6["g" /* __values */])(pendingMigrations), pendingMigrations_1_1 = pendingMigrations_1.next(); _b.label = 9; case 9: if (!!pendingMigrations_1_1.done) return [3 /*break*/, 12]; migration = pendingMigrations_1_1.value; return [5 /*yield**/, _loop_2(migration)]; case 10: _b.sent(); _b.label = 11; case 11: pendingMigrations_1_1 = pendingMigrations_1.next(); return [3 /*break*/, 9]; case 12: return [3 /*break*/, 15]; case 13: e_2_1 = _b.sent(); e_2 = { error: e_2_1 }; return [3 /*break*/, 15]; case 14: try { if (pendingMigrations_1_1 && !pendingMigrations_1_1.done && (_a = pendingMigrations_1.return)) _a.call(pendingMigrations_1); } finally { if (e_2) throw e_2.error; } return [7 /*endfinally*/]; case 15: if (!(this.transaction === "all" && transactionStartedByUs)) return [3 /*break*/, 17]; return [4 /*yield*/, queryRunner.commitTransaction()]; case 16: _b.sent(); _b.label = 17; case 17: return [3 /*break*/, 26]; case 18: err_1 = _b.sent(); if (!transactionStartedByUs) return [3 /*break*/, 22]; _b.label = 19; case 19: _b.trys.push([19, 21, , 22]); return [4 /*yield*/, queryRunner.rollbackTransaction()]; case 20: _b.sent(); return [3 /*break*/, 22]; case 21: rollbackError_1 = _b.sent(); return [3 /*break*/, 22]; case 22: throw err_1; case 23: if (!!this.queryRunner) return [3 /*break*/, 25]; return [4 /*yield*/, queryRunner.release()]; case 24: _b.sent(); _b.label = 25; case 25: return [7 /*endfinally*/]; case 26: return [2 /*return*/, successMigrations]; } }); }); }; /** * Reverts last migration that were run. */ MigrationExecutor.prototype.undoLastMigration = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var queryRunner, executedMigrations, lastTimeExecutedMigration, allMigrations, migrationToRevert, transactionStartedByUs, err_2, rollbackError_2; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: queryRunner = this.queryRunner || this.connection.createQueryRunner(); // create migrations table if its not created yet return [4 /*yield*/, this.createMigrationsTableIfNotExist(queryRunner)]; case 1: // create migrations table if its not created yet _a.sent(); return [4 /*yield*/, this.loadExecutedMigrations(queryRunner)]; case 2: executedMigrations = _a.sent(); lastTimeExecutedMigration = this.getLatestExecutedMigration(executedMigrations); // if no migrations found in the database then nothing to revert if (!lastTimeExecutedMigration) { this.connection.logger.logSchemaBuild("No migrations was found in the database. Nothing to revert!"); return [2 /*return*/]; } allMigrations = this.getMigrations(); migrationToRevert = allMigrations.find(function (migration) { return migration.name === lastTimeExecutedMigration.name; }); // if no migrations found in the database then nothing to revert if (!migrationToRevert) throw new Error("No migration " + lastTimeExecutedMigration.name + " was found in the source code. Make sure you have this migration in your codebase and its included in the connection options."); // log information about migration execution this.connection.logger.logSchemaBuild(executedMigrations.length + " migrations are already loaded in the database."); this.connection.logger.logSchemaBuild(lastTimeExecutedMigration.name + " is the last executed migration. It was executed on " + new Date(lastTimeExecutedMigration.timestamp).toString() + "."); this.connection.logger.logSchemaBuild("Now reverting it..."); transactionStartedByUs = false; if (!((this.transaction !== "none") && !queryRunner.isTransactionActive)) return [3 /*break*/, 4]; return [4 /*yield*/, queryRunner.startTransaction()]; case 3: _a.sent(); transactionStartedByUs = true; _a.label = 4; case 4: _a.trys.push([4, 9, 14, 17]); return [4 /*yield*/, migrationToRevert.instance.down(queryRunner)]; case 5: _a.sent(); return [4 /*yield*/, this.deleteExecutedMigration(queryRunner, migrationToRevert)]; case 6: _a.sent(); this.connection.logger.logSchemaBuild("Migration " + migrationToRevert.name + " has been reverted successfully."); if (!transactionStartedByUs) return [3 /*break*/, 8]; return [4 /*yield*/, queryRunner.commitTransaction()]; case 7: _a.sent(); _a.label = 8; case 8: return [3 /*break*/, 17]; case 9: err_2 = _a.sent(); if (!transactionStartedByUs) return [3 /*break*/, 13]; _a.label = 10; case 10: _a.trys.push([10, 12, , 13]); return [4 /*yield*/, queryRunner.rollbackTransaction()]; case 11: _a.sent(); return [3 /*break*/, 13]; case 12: rollbackError_2 = _a.sent(); return [3 /*break*/, 13]; case 13: throw err_2; case 14: if (!!this.queryRunner) return [3 /*break*/, 16]; return [4 /*yield*/, queryRunner.release()]; case 15: _a.sent(); _a.label = 16; case 16: return [7 /*endfinally*/]; case 17: return [2 /*return*/]; } }); }); }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Creates table "migrations" that will store information about executed migrations. */ MigrationExecutor.prototype.createMigrationsTableIfNotExist = function (queryRunner) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var tableExist; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: // If driver is mongo no need to create if (this.connection.driver instanceof BrowserDisabledDriversDummy["e" /* MongoDriver */]) { return [2 /*return*/]; } return [4 /*yield*/, queryRunner.hasTable(this.migrationsTable)]; case 1: tableExist = _a.sent(); if (!!tableExist) return [3 /*break*/, 3]; return [4 /*yield*/, queryRunner.createTable(new Table["a" /* Table */]({ name: this.migrationsTable, columns: [ { name: "id", type: this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationId }), isGenerated: true, generationStrategy: "increment", isPrimary: true, isNullable: false }, { name: "timestamp", type: this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationTimestamp }), isPrimary: false, isNullable: false }, { name: "name", type: this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationName }), isNullable: false }, ] }))]; case 2: _a.sent(); _a.label = 3; case 3: return [2 /*return*/]; } }); }); }; /** * Loads all migrations that were executed and saved into the database (sorts by id). */ MigrationExecutor.prototype.loadExecutedMigrations = function (queryRunner) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var mongoRunner, migrationsRaw; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (!(this.connection.driver instanceof BrowserDisabledDriversDummy["e" /* MongoDriver */])) return [3 /*break*/, 2]; mongoRunner = queryRunner; return [4 /*yield*/, mongoRunner.databaseConnection .db(this.connection.driver.database) .collection(this.migrationsTableName) .find() .sort({ "_id": -1 }) .toArray()]; case 1: return [2 /*return*/, _a.sent()]; case 2: return [4 /*yield*/, this.connection.manager .createQueryBuilder(queryRunner) .select() .orderBy(this.connection.driver.escape("id"), "DESC") .from(this.migrationsTable, this.migrationsTableName) .getRawMany()]; case 3: migrationsRaw = _a.sent(); return [2 /*return*/, migrationsRaw.map(function (migrationRaw) { return new Migration(parseInt(migrationRaw["id"]), parseInt(migrationRaw["timestamp"]), migrationRaw["name"]); })]; } }); }); }; /** * Gets all migrations that setup for this connection. */ MigrationExecutor.prototype.getMigrations = function () { var migrations = this.connection.migrations.map(function (migration) { var migrationClassName = migration.name || migration.constructor.name; var migrationTimestamp = parseInt(migrationClassName.substr(-13), 10); if (!migrationTimestamp || isNaN(migrationTimestamp)) { throw new Error(migrationClassName + " migration name is wrong. Migration class name should have a JavaScript timestamp appended."); } return new Migration(undefined, migrationTimestamp, migrationClassName, migration); }); this.checkForDuplicateMigrations(migrations); // sort them by timestamp return migrations.sort(function (a, b) { return a.timestamp - b.timestamp; }); }; MigrationExecutor.prototype.checkForDuplicateMigrations = function (migrations) { var migrationNames = migrations.map(function (migration) { return migration.name; }); var duplicates = Array.from(new Set(migrationNames.filter(function (migrationName, index) { return migrationNames.indexOf(migrationName) < index; }))); if (duplicates.length > 0) { throw Error("Duplicate migrations: " + duplicates.join(", ")); } }; /** * Finds the latest migration (sorts by timestamp) in the given array of migrations. */ MigrationExecutor.prototype.getLatestTimestampMigration = function (migrations) { var sortedMigrations = migrations.map(function (migration) { return migration; }).sort(function (a, b) { return (a.timestamp - b.timestamp) * -1; }); return sortedMigrations.length > 0 ? sortedMigrations[0] : undefined; }; /** * Finds the latest migration in the given array of migrations. * PRE: Migration array must be sorted by descending id. */ MigrationExecutor.prototype.getLatestExecutedMigration = function (sortedMigrations) { return sortedMigrations.length > 0 ? sortedMigrations[0] : undefined; }; /** * Inserts new executed migration's data into migrations table. */ MigrationExecutor.prototype.insertExecutedMigration = function (queryRunner, migration) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var values, mongoRunner, qb; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: values = {}; if (this.connection.driver instanceof BrowserDisabledDriversDummy["m" /* SqlServerDriver */]) { values["timestamp"] = new MssqlParameter(migration.timestamp, this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationTimestamp })); values["name"] = new MssqlParameter(migration.name, this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationName })); } else { values["timestamp"] = migration.timestamp; values["name"] = migration.name; } if (!(this.connection.driver instanceof BrowserDisabledDriversDummy["e" /* MongoDriver */])) return [3 /*break*/, 2]; mongoRunner = queryRunner; return [4 /*yield*/, mongoRunner.databaseConnection.db(this.connection.driver.database).collection(this.migrationsTableName).insert(values)]; case 1: _a.sent(); return [3 /*break*/, 4]; case 2: qb = queryRunner.manager.createQueryBuilder(); return [4 /*yield*/, qb.insert() .into(this.migrationsTable) .values(values) .execute()]; case 3: _a.sent(); _a.label = 4; case 4: return [2 /*return*/]; } }); }); }; /** * Delete previously executed migration's data from the migrations table. */ MigrationExecutor.prototype.deleteExecutedMigration = function (queryRunner, migration) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var conditions, mongoRunner, qb; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: conditions = {}; if (this.connection.driver instanceof BrowserDisabledDriversDummy["m" /* SqlServerDriver */]) { conditions["timestamp"] = new MssqlParameter(migration.timestamp, this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationTimestamp })); conditions["name"] = new MssqlParameter(migration.name, this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationName })); } else { conditions["timestamp"] = migration.timestamp; conditions["name"] = migration.name; } if (!(this.connection.driver instanceof BrowserDisabledDriversDummy["e" /* MongoDriver */])) return [3 /*break*/, 2]; mongoRunner = queryRunner; return [4 /*yield*/, mongoRunner.databaseConnection.db(this.connection.driver.database).collection(this.migrationsTableName).deleteOne(conditions)]; case 1: _a.sent(); return [3 /*break*/, 4]; case 2: qb = queryRunner.manager.createQueryBuilder(); return [4 /*yield*/, qb.delete() .from(this.migrationsTable) .where(qb.escape("timestamp") + " = :timestamp") .andWhere(qb.escape("name") + " = :name") .setParameters(conditions) .execute()]; case 3: _a.sent(); _a.label = 4; case 4: return [2 /*return*/]; } }); }); }; MigrationExecutor.prototype.withQueryRunner = function (callback) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var queryRunner; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: queryRunner = this.queryRunner || this.connection.createQueryRunner(); _a.label = 1; case 1: _a.trys.push([1, , 2, 5]); return [2 /*return*/, callback(queryRunner)]; case 2: if (!!this.queryRunner) return [3 /*break*/, 4]; return [4 /*yield*/, queryRunner.release()]; case 3: _a.sent(); _a.label = 4; case 4: return [7 /*endfinally*/]; case 5: return [2 /*return*/]; } }); }); }; return MigrationExecutor; }()); //# sourceMappingURL=MigrationExecutor.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/MissingPrimaryColumnError.js /** */ var MissingPrimaryColumnError_MissingPrimaryColumnError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(MissingPrimaryColumnError, _super); function MissingPrimaryColumnError(entityMetadata) { var _this = _super.call(this) || this; _this.name = "MissingPrimaryColumnError"; Object.setPrototypeOf(_this, MissingPrimaryColumnError.prototype); _this.message = "Entity \"" + entityMetadata.name + "\" does not have a primary column. Primary column is required to " + "have in all your entities. Use @PrimaryColumn decorator to add a primary column to your entity."; return _this; } return MissingPrimaryColumnError; }(Error)); //# sourceMappingURL=MissingPrimaryColumnError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/CircularRelationsError.js /** * Thrown when circular relations detected with nullable set to false. */ var CircularRelationsError_CircularRelationsError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(CircularRelationsError, _super); function CircularRelationsError(path) { var _this = _super.call(this) || this; _this.name = "CircularRelationsError"; Object.setPrototypeOf(_this, CircularRelationsError.prototype); _this.message = "Circular relations detected: " + path + ". To resolve this issue you need to set nullable: true somewhere in this dependency structure."; return _this; } return CircularRelationsError; }(Error)); //# sourceMappingURL=CircularRelationsError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/util/DepGraph.js /** * This source code is from https://github.com/jriecken/dependency-graph * Just added "any" types here, wrapper everything into exported class. * We cant use a package itself because we want to package "everything-in-it" for the frontend users of TypeORM. */ /** * A simple dependency graph */ /** * Helper for creating a Depth-First-Search on * a set of edges. * * Detects cycles and throws an Error if one is detected. * * @param edges The set of edges to DFS through * @param leavesOnly Whether to only return "leaf" nodes (ones who have no edges) * @param result An array in which the results will be populated */ function createDFS(edges, leavesOnly, result) { var currentPath = []; var visited = {}; return function DFS(currentNode) { visited[currentNode] = true; currentPath.push(currentNode); edges[currentNode].forEach(function (node) { if (!visited[node]) { DFS(node); } else if (currentPath.indexOf(node) >= 0) { currentPath.push(node); throw new Error("Dependency Cycle Found: " + currentPath.join(" -> ")); } }); currentPath.pop(); if ((!leavesOnly || edges[currentNode].length === 0) && result.indexOf(currentNode) === -1) { result.push(currentNode); } }; } var DepGraph = /** @class */ (function () { function DepGraph() { this.nodes = {}; this.outgoingEdges = {}; // Node -> [Dependency Node] this.incomingEdges = {}; // Node -> [Dependant Node] } /** * Add a node to the dependency graph. If a node already exists, this method will do nothing. */ DepGraph.prototype.addNode = function (node, data) { if (!this.hasNode(node)) { // Checking the arguments length allows the user to add a node with undefined data if (arguments.length === 2) { this.nodes[node] = data; } else { this.nodes[node] = node; } this.outgoingEdges[node] = []; this.incomingEdges[node] = []; } }; /** * Remove a node from the dependency graph. If a node does not exist, this method will do nothing. */ DepGraph.prototype.removeNode = function (node) { if (this.hasNode(node)) { delete this.nodes[node]; delete this.outgoingEdges[node]; delete this.incomingEdges[node]; [this.incomingEdges, this.outgoingEdges].forEach(function (edgeList) { Object.keys(edgeList).forEach(function (key) { var idx = edgeList[key].indexOf(node); if (idx >= 0) { edgeList[key].splice(idx, 1); } }, this); }); } }; /** * Check if a node exists in the graph */ DepGraph.prototype.hasNode = function (node) { return this.nodes.hasOwnProperty(node); }; /** * Get the data associated with a node name */ DepGraph.prototype.getNodeData = function (node) { if (this.hasNode(node)) { return this.nodes[node]; } else { throw new Error("Node does not exist: " + node); } }; /** * Set the associated data for a given node name. If the node does not exist, this method will throw an error */ DepGraph.prototype.setNodeData = function (node, data) { if (this.hasNode(node)) { this.nodes[node] = data; } else { throw new Error("Node does not exist: " + node); } }; /** * Add a dependency between two nodes. If either of the nodes does not exist, * an Error will be thrown. */ DepGraph.prototype.addDependency = function (from, to) { if (!this.hasNode(from)) { throw new Error("Node does not exist: " + from); } if (!this.hasNode(to)) { throw new Error("Node does not exist: " + to); } if (this.outgoingEdges[from].indexOf(to) === -1) { this.outgoingEdges[from].push(to); } if (this.incomingEdges[to].indexOf(from) === -1) { this.incomingEdges[to].push(from); } return true; }; /** * Remove a dependency between two nodes. */ DepGraph.prototype.removeDependency = function (from, to) { var idx; if (this.hasNode(from)) { idx = this.outgoingEdges[from].indexOf(to); if (idx >= 0) { this.outgoingEdges[from].splice(idx, 1); } } if (this.hasNode(to)) { idx = this.incomingEdges[to].indexOf(from); if (idx >= 0) { this.incomingEdges[to].splice(idx, 1); } } }; /** * Get an array containing the nodes that the specified node depends on (transitively). * * Throws an Error if the graph has a cycle, or the specified node does not exist. * * If `leavesOnly` is true, only nodes that do not depend on any other nodes will be returned * in the array. */ DepGraph.prototype.dependenciesOf = function (node, leavesOnly) { if (this.hasNode(node)) { var result = []; var DFS = createDFS(this.outgoingEdges, leavesOnly, result); DFS(node); var idx = result.indexOf(node); if (idx >= 0) { result.splice(idx, 1); } return result; } else { throw new Error("Node does not exist: " + node); } }; /** * get an array containing the nodes that depend on the specified node (transitively). * * Throws an Error if the graph has a cycle, or the specified node does not exist. * * If `leavesOnly` is true, only nodes that do not have any dependants will be returned in the array. */ DepGraph.prototype.dependantsOf = function (node, leavesOnly) { if (this.hasNode(node)) { var result = []; var DFS = createDFS(this.incomingEdges, leavesOnly, result); DFS(node); var idx = result.indexOf(node); if (idx >= 0) { result.splice(idx, 1); } return result; } else { throw new Error("Node does not exist: " + node); } }; /** * Construct the overall processing order for the dependency graph. * * Throws an Error if the graph has a cycle. * * If `leavesOnly` is true, only nodes that do not depend on any other nodes will be returned. */ DepGraph.prototype.overallOrder = function (leavesOnly) { var self = this; var result = []; var keys = Object.keys(this.nodes); if (keys.length === 0) { return result; // Empty graph } else { // Look for cycles - we run the DFS starting at all the nodes in case there // are several disconnected subgraphs inside this dependency graph. var CycleDFS_1 = createDFS(this.outgoingEdges, false, []); keys.forEach(function (n) { CycleDFS_1(n); }); var DFS_1 = createDFS(this.outgoingEdges, leavesOnly, result); // Find all potential starting points (nodes with nothing depending on them) an // run a DFS starting at these points to get the order keys.filter(function (node) { return self.incomingEdges[node].length === 0; }).forEach(function (n) { DFS_1(n); }); return result; } }; return DepGraph; }()); //# sourceMappingURL=DepGraph.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/DataTypeNotSupportedError.js var DataTypeNotSupportedError_DataTypeNotSupportedError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(DataTypeNotSupportedError, _super); function DataTypeNotSupportedError(column, dataType, database) { var _this = _super.call(this) || this; _this.name = "DataTypeNotSupportedError"; Object.setPrototypeOf(_this, DataTypeNotSupportedError.prototype); var type = typeof dataType === "string" ? dataType : dataType.name; _this.message = "Data type \"" + type + "\" in \"" + column.entityMetadata.targetName + "." + column.propertyName + "\" is not supported by \"" + database + "\" database."; return _this; } return DataTypeNotSupportedError; }(Error)); //# sourceMappingURL=DataTypeNotSupportedError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/NoConnectionOptionError.js /** * Thrown when some option is not set in the connection options. */ var NoConnectionOptionError_NoConnectionOptionError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(NoConnectionOptionError, _super); function NoConnectionOptionError(optionName) { var _this = _super.call(this) || this; Object.setPrototypeOf(_this, NoConnectionOptionError.prototype); _this.message = "Option \"" + optionName + "\" is not set in your connection options, please define \"" + optionName + "\" option in your connection options or ormconfig.json"; return _this; } return NoConnectionOptionError; }(Error)); //# sourceMappingURL=NoConnectionOptionError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/InitializedRelationError.js /** * Thrown when relation has array initialized which is forbidden my ORM. * * @see https://github.com/typeorm/typeorm/issues/1319 * @see http://typeorm.io/#/relations-faq/avoid-relation-property-initializers */ var InitializedRelationError_InitializedRelationError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(InitializedRelationError, _super); function InitializedRelationError(relation) { var _this = _super.call(this) || this; Object.setPrototypeOf(_this, InitializedRelationError.prototype); _this.message = "Array initializations are not allowed in entity relations. " + ("Please remove array initialization (= []) from \"" + relation.entityMetadata.targetName + "#" + relation.propertyPath + "\". ") + "This is ORM requirement to make relations to work properly. Refer docs for more information."; return _this; } return InitializedRelationError; }(Error)); //# sourceMappingURL=InitializedRelationError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/metadata-builder/EntityMetadataValidator.js /// todo: add check if there are multiple tables with the same name /// todo: add checks when generated column / table names are too long for the specific driver // todo: type in function validation, inverse side function validation // todo: check on build for duplicate names, since naming checking was removed from MetadataStorage // todo: duplicate name checking for: table, relation, column, index, naming strategy, join tables/columns? // todo: check if multiple tree parent metadatas in validator // todo: tree decorators can be used only on closure table (validation) // todo: throw error if parent tree metadata was not specified in a closure table // todo: MetadataArgsStorage: type in function validation, inverse side function validation // todo: MetadataArgsStorage: check on build for duplicate names, since naming checking was removed from MetadataStorage // todo: MetadataArgsStorage: duplicate name checking for: table, relation, column, index, naming strategy, join tables/columns? // todo: MetadataArgsStorage: check for duplicate targets too since this check has been removed too // todo: check if relation decorator contains primary: true and nullable: true // todo: check column length, precision. scale // todo: MySQL index can be unique or spatial or fulltext /** * Validates built entity metadatas. */ var EntityMetadataValidator_EntityMetadataValidator = /** @class */ (function () { function EntityMetadataValidator() { } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Validates all given entity metadatas. */ EntityMetadataValidator.prototype.validateMany = function (entityMetadatas, driver) { var _this = this; entityMetadatas.forEach(function (entityMetadata) { return _this.validate(entityMetadata, entityMetadatas, driver); }); this.validateDependencies(entityMetadatas); this.validateEagerRelations(entityMetadatas); }; /** * Validates given entity metadata. */ EntityMetadataValidator.prototype.validate = function (entityMetadata, allEntityMetadatas, driver) { // check if table metadata has an id if (!entityMetadata.primaryColumns.length && !entityMetadata.isJunction) throw new MissingPrimaryColumnError_MissingPrimaryColumnError(entityMetadata); // validate if table is using inheritance it has a discriminator // also validate if discriminator values are not empty and not repeated if (entityMetadata.inheritancePattern === "STI" || entityMetadata.tableType === "entity-child") { if (!entityMetadata.discriminatorColumn) throw new Error("Entity " + entityMetadata.name + " using single-table inheritance, it should also have a discriminator column. Did you forget to put discriminator column options?"); if (typeof entityMetadata.discriminatorValue === "undefined") throw new Error("Entity " + entityMetadata.name + " has an undefined discriminator value. Discriminator value should be defined."); var sameDiscriminatorValueEntityMetadata = allEntityMetadatas.find(function (metadata) { return metadata !== entityMetadata && (metadata.inheritancePattern === "STI" || metadata.tableType === "entity-child") && metadata.discriminatorValue === entityMetadata.discriminatorValue && metadata.inheritanceTree.some(function (parent) { return entityMetadata.inheritanceTree.indexOf(parent) !== -1; }); }); if (sameDiscriminatorValueEntityMetadata) throw new Error("Entities " + entityMetadata.name + " and " + sameDiscriminatorValueEntityMetadata.name + " have the same discriminator values. Make sure they are different while using the @ChildEntity decorator."); } entityMetadata.relationCounts.forEach(function (relationCount) { if (relationCount.relation.isManyToOne || relationCount.relation.isOneToOne) throw new Error("Relation count can not be implemented on ManyToOne or OneToOne relations."); }); if (!(driver instanceof BrowserDisabledDriversDummy["e" /* MongoDriver */])) { entityMetadata.columns.forEach(function (column) { var normalizedColumn = driver.normalizeType(column); if (driver.supportedDataTypes.indexOf(normalizedColumn) === -1) throw new DataTypeNotSupportedError_DataTypeNotSupportedError(column, normalizedColumn, driver.options.type); if (column.length && driver.withLengthColumnTypes.indexOf(normalizedColumn) === -1) throw new Error("Column " + column.propertyName + " of Entity " + entityMetadata.name + " does not support length property."); if (column.type === "enum" && !column.enum && !column.enumName) throw new Error("Column \"" + column.propertyName + "\" of Entity \"" + entityMetadata.name + "\" is defined as enum, but missing \"enum\" or \"enumName\" properties."); }); } if (driver instanceof BrowserDisabledDriversDummy["i" /* MysqlDriver */] || driver instanceof BrowserDisabledDriversDummy["a" /* AuroraDataApiDriver */]) { var generatedColumns = entityMetadata.columns.filter(function (column) { return column.isGenerated && column.generationStrategy !== "uuid"; }); if (generatedColumns.length > 1) throw new Error("Error in " + entityMetadata.name + " entity. There can be only one auto-increment column in MySql table."); } // for mysql we are able to not define a default selected database, instead all entities can have their database // defined in their decorators. To make everything work either all entities must have database define and we // can live without database set in the connection options, either database in the connection options must be set if (driver instanceof BrowserDisabledDriversDummy["i" /* MysqlDriver */]) { var metadatasWithDatabase = allEntityMetadatas.filter(function (metadata) { return metadata.database; }); if (metadatasWithDatabase.length === 0 && !driver.database) throw new NoConnectionOptionError_NoConnectionOptionError("database"); } if (driver instanceof BrowserDisabledDriversDummy["m" /* SqlServerDriver */]) { var charsetColumns = entityMetadata.columns.filter(function (column) { return column.charset; }); if (charsetColumns.length > 1) throw new Error("Character set specifying is not supported in Sql Server"); } // check if relations are all without initialized properties var entityInstance = entityMetadata.create(); entityMetadata.relations.forEach(function (relation) { if (relation.isManyToMany || relation.isOneToMany) { // we skip relations for which persistence is disabled since initialization in them cannot harm somehow if (relation.persistenceEnabled === false) return; // get entity relation value and check if its an array var relationInitializedValue = relation.getEntityValue(entityInstance); if (Array.isArray(relationInitializedValue)) throw new InitializedRelationError_InitializedRelationError(relation); } }); // validate relations entityMetadata.relations.forEach(function (relation) { // check join tables: // using JoinTable is possible only on one side of the many-to-many relation // todo(dima): fix // if (relation.joinTable) { // if (!relation.isManyToMany) // throw new UsingJoinTableIsNotAllowedError(entityMetadata, relation); // // if there is inverse side of the relation, then check if it does not have join table too // if (relation.hasInverseSide && relation.inverseRelation.joinTable) // throw new UsingJoinTableOnlyOnOneSideAllowedError(entityMetadata, relation); // } // check join columns: // using JoinColumn is possible only on one side of the relation and on one-to-one, many-to-one relation types // first check if relation is one-to-one or many-to-one // todo(dima): fix /*if (relation.joinColumn) { // join column can be applied only on one-to-one and many-to-one relations if (!relation.isOneToOne && !relation.isManyToOne) throw new UsingJoinColumnIsNotAllowedError(entityMetadata, relation); // if there is inverse side of the relation, then check if it does not have join table too if (relation.hasInverseSide && relation.inverseRelation.joinColumn && relation.isOneToOne) throw new UsingJoinColumnOnlyOnOneSideAllowedError(entityMetadata, relation); // check if join column really has referenced column if (relation.joinColumn && !relation.joinColumn.referencedColumn) throw new Error(`Join column does not have referenced column set`); } // if its a one-to-one relation and JoinColumn is missing on both sides of the relation // or its one-side relation without JoinColumn we should give an error if (!relation.joinColumn && relation.isOneToOne && (!relation.hasInverseSide || !relation.inverseRelation.joinColumn)) throw new MissingJoinColumnError(entityMetadata, relation);*/ // if its a many-to-many relation and JoinTable is missing on both sides of the relation // or its one-side relation without JoinTable we should give an error // todo(dima): fix it // if (!relation.joinTable && relation.isManyToMany && (!relation.hasInverseSide || !relation.inverseRelation.joinTable)) // throw new MissingJoinTableError(entityMetadata, relation); // todo: validate if its one-to-one and side which does not have join column MUST have inverse side // todo: validate if its many-to-many and side which does not have join table MUST have inverse side // todo: if there is a relation, and inverse side is specified only on one side, shall we give error // todo: with message like: "Inverse side is specified only on one side of the relationship. Specify on other side too to prevent confusion". // todo: add validation if there two entities with the same target, and show error message with description of the problem (maybe file was renamed/moved but left in output directory) // todo: check if there are multiple columns on the same column applied. // todo: check column type if is missing in relational databases (throw new Error(`Column type of ${type} cannot be determined.`);) // todo: include driver-specific checks. for example in mongodb empty prefixes are not allowed // todo: if multiple columns with same name - throw exception, including cases when columns are in embeds with same prefixes or without prefix at all // todo: if multiple primary key used, at least one of them must be unique or @Index decorator must be set on entity // todo: check if entity with duplicate names, some decorators exist }); // make sure cascade remove is not set for both sides of relationships (can be set in OneToOne decorators) entityMetadata.relations.forEach(function (relation) { var isCircularCascadeRemove = relation.isCascadeRemove && relation.inverseRelation && relation.inverseRelation.isCascadeRemove; if (isCircularCascadeRemove) throw new Error("Relation " + entityMetadata.name + "#" + relation.propertyName + " and " + relation.inverseRelation.entityMetadata.name + "#" + relation.inverseRelation.propertyName + " both has cascade remove set. " + "This may lead to unexpected circular removals. Please set cascade remove only from one side of relationship."); }); // todo: maybe better just deny removal from one to one relation without join column? entityMetadata.eagerRelations.forEach(function (relation) { }); }; /** * Validates dependencies of the entity metadatas. */ EntityMetadataValidator.prototype.validateDependencies = function (entityMetadatas) { var graph = new DepGraph(); entityMetadatas.forEach(function (entityMetadata) { graph.addNode(entityMetadata.name); }); entityMetadatas.forEach(function (entityMetadata) { entityMetadata.relationsWithJoinColumns .filter(function (relation) { return !relation.isNullable; }) .forEach(function (relation) { graph.addDependency(entityMetadata.name, relation.inverseEntityMetadata.name); }); }); try { graph.overallOrder(); } catch (err) { throw new CircularRelationsError_CircularRelationsError(err.toString().replace("Error: Dependency Cycle Found: ", "")); } }; /** * Validates eager relations to prevent circular dependency in them. */ EntityMetadataValidator.prototype.validateEagerRelations = function (entityMetadatas) { entityMetadatas.forEach(function (entityMetadata) { entityMetadata.eagerRelations.forEach(function (relation) { if (relation.inverseRelation && relation.inverseRelation.isEager) throw new Error("Circular eager relations are disallowed. " + (entityMetadata.targetName + "#" + relation.propertyPath + " contains \"eager: true\", and its inverse side ") + (relation.inverseEntityMetadata.targetName + "#" + relation.inverseRelation.propertyPath + " contains \"eager: true\" as well.") + " Remove \"eager: true\" from one side of the relation."); }); }); }; return EntityMetadataValidator; }()); //# sourceMappingURL=EntityMetadataValidator.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/QueryRunnerProviderAlreadyReleasedError.js /** * Thrown when consumer tries to use query runner from query runner provider after it was released. */ var QueryRunnerProviderAlreadyReleasedError_QueryRunnerProviderAlreadyReleasedError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(QueryRunnerProviderAlreadyReleasedError, _super); function QueryRunnerProviderAlreadyReleasedError() { var _this = _super.call(this) || this; _this.name = "QueryRunnerProviderAlreadyReleasedError"; Object.setPrototypeOf(_this, QueryRunnerProviderAlreadyReleasedError.prototype); _this.message = "Database connection provided by a query runner was already released, cannot continue to use its querying methods anymore."; return _this; } return QueryRunnerProviderAlreadyReleasedError; }(Error)); //# sourceMappingURL=QueryRunnerProviderAlreadyReleasedError.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/EntityNotFoundError.js var EntityNotFoundError = __webpack_require__(113); // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/NoNeedToReleaseEntityManagerError.js /** * Thrown when consumer tries to release entity manager that does not use single database connection. */ var NoNeedToReleaseEntityManagerError_NoNeedToReleaseEntityManagerError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(NoNeedToReleaseEntityManagerError, _super); function NoNeedToReleaseEntityManagerError() { var _this = _super.call(this) || this; _this.name = "NoNeedToReleaseEntityManagerError"; Object.setPrototypeOf(_this, NoNeedToReleaseEntityManagerError.prototype); _this.message = "Entity manager is not using single database connection and cannot be released. " + "Only entity managers created by connection#createEntityManagerWithSingleDatabaseConnection " + "methods have a single database connection and they should be released."; return _this; } return NoNeedToReleaseEntityManagerError; }(Error)); //# sourceMappingURL=NoNeedToReleaseEntityManagerError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/repository/Repository.js /** * Repository is supposed to work with your entity objects. Find entities, insert, update, delete, etc. */ var Repository_Repository = /** @class */ (function () { function Repository() { } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Creates a new query builder that can be used to build a sql query. */ Repository.prototype.createQueryBuilder = function (alias, queryRunner) { return this.manager.createQueryBuilder(this.metadata.target, alias || this.metadata.targetName, queryRunner || this.queryRunner); }; Object.defineProperty(Repository.prototype, "target", { /** * Returns object that is managed by this repository. * If this repository manages entity from schema, * then it returns a name of that schema instead. */ get: function () { return this.metadata.target; }, enumerable: false, configurable: true }); /** * Checks if entity has an id. * If entity composite compose ids, it will check them all. */ Repository.prototype.hasId = function (entity) { return this.manager.hasId(this.metadata.target, entity); }; /** * Gets entity mixed id. */ Repository.prototype.getId = function (entity) { return this.manager.getId(this.metadata.target, entity); }; /** * Creates a new entity instance or instances. * Can copy properties from the given object into new entities. */ Repository.prototype.create = function (plainEntityLikeOrPlainEntityLikes) { return this.manager.create(this.metadata.target, plainEntityLikeOrPlainEntityLikes); }; /** * Merges multiple entities (or entity-like objects) into a given entity. */ Repository.prototype.merge = function (mergeIntoEntity) { var _a; var entityLikes = []; for (var _i = 1; _i < arguments.length; _i++) { entityLikes[_i - 1] = arguments[_i]; } return (_a = this.manager).merge.apply(_a, Object(tslib_es6["f" /* __spreadArray */])([this.metadata.target, mergeIntoEntity], Object(tslib_es6["e" /* __read */])(entityLikes))); }; /** * Creates a new entity from the given plain javascript object. If entity already exist in the database, then * it loads it (and everything related to it), replaces all values with the new ones from the given object * and returns this new entity. This new entity is actually a loaded from the db entity with all properties * replaced from the new object. * * Note that given entity-like object must have an entity id / primary key to find entity by. * Returns undefined if entity with given id was not found. */ Repository.prototype.preload = function (entityLike) { return this.manager.preload(this.metadata.target, entityLike); }; /** * Saves one or many given entities. */ Repository.prototype.save = function (entityOrEntities, options) { return this.manager.save(this.metadata.target, entityOrEntities, options); }; /** * Removes one or many given entities. */ Repository.prototype.remove = function (entityOrEntities, options) { return this.manager.remove(this.metadata.target, entityOrEntities, options); }; /** * Records the delete date of one or many given entities. */ Repository.prototype.softRemove = function (entityOrEntities, options) { return this.manager.softRemove(this.metadata.target, entityOrEntities, options); }; /** * Recovers one or many given entities. */ Repository.prototype.recover = function (entityOrEntities, options) { return this.manager.recover(this.metadata.target, entityOrEntities, options); }; /** * Inserts a given entity into the database. * Unlike save method executes a primitive operation without cascades, relations and other operations included. * Executes fast and efficient INSERT query. * Does not check if entity exist in the database, so query will fail if duplicate entity is being inserted. */ Repository.prototype.insert = function (entity) { return this.manager.insert(this.metadata.target, entity); }; /** * Updates entity partially. Entity can be found by a given conditions. * Unlike save method executes a primitive operation without cascades, relations and other operations included. * Executes fast and efficient UPDATE query. * Does not check if entity exist in the database. */ Repository.prototype.update = function (criteria, partialEntity) { return this.manager.update(this.metadata.target, criteria, partialEntity); }; /** * Deletes entities by a given criteria. * Unlike save method executes a primitive operation without cascades, relations and other operations included. * Executes fast and efficient DELETE query. * Does not check if entity exist in the database. */ Repository.prototype.delete = function (criteria) { return this.manager.delete(this.metadata.target, criteria); }; /** * Records the delete date of entities by a given criteria. * Unlike save method executes a primitive operation without cascades, relations and other operations included. * Executes fast and efficient SOFT-DELETE query. * Does not check if entity exist in the database. */ Repository.prototype.softDelete = function (criteria) { return this.manager.softDelete(this.metadata.target, criteria); }; /** * Restores entities by a given criteria. * Unlike save method executes a primitive operation without cascades, relations and other operations included. * Executes fast and efficient SOFT-DELETE query. * Does not check if entity exist in the database. */ Repository.prototype.restore = function (criteria) { return this.manager.restore(this.metadata.target, criteria); }; /** * Counts entities that match given find options or conditions. */ Repository.prototype.count = function (optionsOrConditions) { return this.manager.count(this.metadata.target, optionsOrConditions); }; /** * Finds entities that match given find options or conditions. */ Repository.prototype.find = function (optionsOrConditions) { return this.manager.find(this.metadata.target, optionsOrConditions); }; /** * Finds entities that match given find options or conditions. * Also counts all entities that match given conditions, * but ignores pagination settings (from and take options). */ Repository.prototype.findAndCount = function (optionsOrConditions) { return this.manager.findAndCount(this.metadata.target, optionsOrConditions); }; /** * Finds entities by ids. * Optionally find options can be applied. */ Repository.prototype.findByIds = function (ids, optionsOrConditions) { return this.manager.findByIds(this.metadata.target, ids, optionsOrConditions); }; /** * Finds first entity that matches given conditions. */ Repository.prototype.findOne = function (optionsOrConditions, maybeOptions) { return this.manager.findOne(this.metadata.target, optionsOrConditions, maybeOptions); }; /** * Finds first entity that matches given conditions. */ Repository.prototype.findOneOrFail = function (optionsOrConditions, maybeOptions) { return this.manager.findOneOrFail(this.metadata.target, optionsOrConditions, maybeOptions); }; /** * Executes a raw SQL query and returns a raw database results. * Raw query execution is supported only by relational databases (MongoDB is not supported). */ Repository.prototype.query = function (query, parameters) { return this.manager.query(query, parameters); }; /** * Clears all the data from the given table/collection (truncates/drops it). * * Note: this method uses TRUNCATE and may not work as you expect in transactions on some platforms. * @see https://stackoverflow.com/a/5972738/925151 */ Repository.prototype.clear = function () { return this.manager.clear(this.metadata.target); }; /** * Increments some column by provided value of the entities matched given conditions. */ Repository.prototype.increment = function (conditions, propertyPath, value) { return this.manager.increment(this.metadata.target, conditions, propertyPath, value); }; /** * Decrements some column by provided value of the entities matched given conditions. */ Repository.prototype.decrement = function (conditions, propertyPath, value) { return this.manager.decrement(this.metadata.target, conditions, propertyPath, value); }; return Repository; }()); //# sourceMappingURL=Repository.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteDriver.js + 1 modules var AbstractSqliteDriver = __webpack_require__(16); // CONCATENATED MODULE: ./node_modules/typeorm/browser/repository/TreeRepository.js /** * Repository with additional functions to work with trees. * * @see Repository */ var TreeRepository_TreeRepository = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(TreeRepository, _super); function TreeRepository() { return _super !== null && _super.apply(this, arguments) || this; } // todo: implement moving // todo: implement removing // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Gets complete trees for all roots in the table. */ TreeRepository.prototype.findTrees = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var roots; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.findRoots()]; case 1: roots = _a.sent(); return [4 /*yield*/, Promise.all(roots.map(function (root) { return _this.findDescendantsTree(root); }))]; case 2: _a.sent(); return [2 /*return*/, roots]; } }); }); }; /** * Roots are entities that have no ancestors. Finds them all. */ TreeRepository.prototype.findRoots = function () { var _this = this; var escapeAlias = function (alias) { return _this.manager.connection.driver.escape(alias); }; var escapeColumn = function (column) { return _this.manager.connection.driver.escape(column); }; var parentPropertyName = this.manager.connection.namingStrategy.joinColumnName(this.metadata.treeParentRelation.propertyName, this.metadata.primaryColumns[0].propertyName); return this.createQueryBuilder("treeEntity") .where(escapeAlias("treeEntity") + "." + escapeColumn(parentPropertyName) + " IS NULL") .getMany(); }; /** * Gets all children (descendants) of the given entity. Returns them all in a flat array. */ TreeRepository.prototype.findDescendants = function (entity) { return this .createDescendantsQueryBuilder("treeEntity", "treeClosure", entity) .getMany(); }; /** * Gets all children (descendants) of the given entity. Returns them in a tree - nested into each other. */ TreeRepository.prototype.findDescendantsTree = function (entity) { var _this = this; // todo: throw exception if there is no column of this relation? return this .createDescendantsQueryBuilder("treeEntity", "treeClosure", entity) .getRawAndEntities() .then(function (entitiesAndScalars) { var relationMaps = _this.createRelationMaps("treeEntity", entitiesAndScalars.raw); _this.buildChildrenEntityTree(entity, entitiesAndScalars.entities, relationMaps); return entity; }); }; /** * Gets number of descendants of the entity. */ TreeRepository.prototype.countDescendants = function (entity) { return this .createDescendantsQueryBuilder("treeEntity", "treeClosure", entity) .getCount(); }; /** * Creates a query builder used to get descendants of the entities in a tree. */ TreeRepository.prototype.createDescendantsQueryBuilder = function (alias, closureTableAlias, entity) { var _this = this; // create shortcuts for better readability var escape = function (alias) { return _this.manager.connection.driver.escape(alias); }; if (this.metadata.treeType === "closure-table") { var joinCondition = this.metadata.closureJunctionTable.descendantColumns.map(function (column) { return escape(closureTableAlias) + "." + escape(column.propertyPath) + " = " + escape(alias) + "." + escape(column.referencedColumn.propertyPath); }).join(" AND "); var parameters_1 = {}; var whereCondition = this.metadata.closureJunctionTable.ancestorColumns.map(function (column) { parameters_1[column.referencedColumn.propertyName] = column.referencedColumn.getEntityValue(entity); return escape(closureTableAlias) + "." + escape(column.propertyPath) + " = :" + column.referencedColumn.propertyName; }).join(" AND "); return this .createQueryBuilder(alias) .innerJoin(this.metadata.closureJunctionTable.tableName, closureTableAlias, joinCondition) .where(whereCondition) .setParameters(parameters_1); } else if (this.metadata.treeType === "nested-set") { var whereCondition = alias + "." + this.metadata.nestedSetLeftColumn.propertyPath + " BETWEEN " + "joined." + this.metadata.nestedSetLeftColumn.propertyPath + " AND joined." + this.metadata.nestedSetRightColumn.propertyPath; var parameters_2 = {}; var joinCondition = this.metadata.treeParentRelation.joinColumns.map(function (joinColumn) { var parameterName = joinColumn.referencedColumn.propertyPath.replace(".", "_"); parameters_2[parameterName] = joinColumn.referencedColumn.getEntityValue(entity); return "joined." + joinColumn.referencedColumn.propertyPath + " = :" + parameterName; }).join(" AND "); return this .createQueryBuilder(alias) .innerJoin(this.metadata.targetName, "joined", whereCondition) .where(joinCondition, parameters_2); } else if (this.metadata.treeType === "materialized-path") { return this .createQueryBuilder(alias) .where(function (qb) { var subQuery = qb.subQuery() .select(_this.metadata.targetName + "." + _this.metadata.materializedPathColumn.propertyPath, "path") .from(_this.metadata.target, _this.metadata.targetName) .whereInIds(_this.metadata.getEntityIdMap(entity)); qb.setNativeParameters(subQuery.expressionMap.nativeParameters); if (_this.manager.connection.driver instanceof AbstractSqliteDriver["a" /* AbstractSqliteDriver */]) { return alias + "." + _this.metadata.materializedPathColumn.propertyPath + " LIKE " + subQuery.getQuery() + " || '%'"; } else { return alias + "." + _this.metadata.materializedPathColumn.propertyPath + " LIKE CONCAT(" + subQuery.getQuery() + ", '%')"; } }); } throw new Error("Supported only in tree entities"); }; /** * Gets all parents (ancestors) of the given entity. Returns them all in a flat array. */ TreeRepository.prototype.findAncestors = function (entity) { return this .createAncestorsQueryBuilder("treeEntity", "treeClosure", entity) .getMany(); }; /** * Gets all parents (ancestors) of the given entity. Returns them in a tree - nested into each other. */ TreeRepository.prototype.findAncestorsTree = function (entity) { var _this = this; // todo: throw exception if there is no column of this relation? return this .createAncestorsQueryBuilder("treeEntity", "treeClosure", entity) .getRawAndEntities() .then(function (entitiesAndScalars) { var relationMaps = _this.createRelationMaps("treeEntity", entitiesAndScalars.raw); _this.buildParentEntityTree(entity, entitiesAndScalars.entities, relationMaps); return entity; }); }; /** * Gets number of ancestors of the entity. */ TreeRepository.prototype.countAncestors = function (entity) { return this .createAncestorsQueryBuilder("treeEntity", "treeClosure", entity) .getCount(); }; /** * Creates a query builder used to get ancestors of the entities in the tree. */ TreeRepository.prototype.createAncestorsQueryBuilder = function (alias, closureTableAlias, entity) { // create shortcuts for better readability // const escape = (alias: string) => this.manager.connection.driver.escape(alias); var _this = this; if (this.metadata.treeType === "closure-table") { var joinCondition = this.metadata.closureJunctionTable.ancestorColumns.map(function (column) { return closureTableAlias + "." + column.propertyPath + " = " + alias + "." + column.referencedColumn.propertyPath; }).join(" AND "); var parameters_3 = {}; var whereCondition = this.metadata.closureJunctionTable.descendantColumns.map(function (column) { parameters_3[column.referencedColumn.propertyName] = column.referencedColumn.getEntityValue(entity); return closureTableAlias + "." + column.propertyPath + " = :" + column.referencedColumn.propertyName; }).join(" AND "); return this .createQueryBuilder(alias) .innerJoin(this.metadata.closureJunctionTable.tableName, closureTableAlias, joinCondition) .where(whereCondition) .setParameters(parameters_3); } else if (this.metadata.treeType === "nested-set") { var joinCondition = "joined." + this.metadata.nestedSetLeftColumn.propertyPath + " BETWEEN " + alias + "." + this.metadata.nestedSetLeftColumn.propertyPath + " AND " + alias + "." + this.metadata.nestedSetRightColumn.propertyPath; var parameters_4 = {}; var whereCondition = this.metadata.treeParentRelation.joinColumns.map(function (joinColumn) { var parameterName = joinColumn.referencedColumn.propertyPath.replace(".", "_"); parameters_4[parameterName] = joinColumn.referencedColumn.getEntityValue(entity); return "joined." + joinColumn.referencedColumn.propertyPath + " = :" + parameterName; }).join(" AND "); return this .createQueryBuilder(alias) .innerJoin(this.metadata.targetName, "joined", joinCondition) .where(whereCondition, parameters_4); } else if (this.metadata.treeType === "materialized-path") { // example: SELECT * FROM category category WHERE (SELECT mpath FROM `category` WHERE id = 2) LIKE CONCAT(category.mpath, '%'); return this .createQueryBuilder(alias) .where(function (qb) { var subQuery = qb.subQuery() .select(_this.metadata.targetName + "." + _this.metadata.materializedPathColumn.propertyPath, "path") .from(_this.metadata.target, _this.metadata.targetName) .whereInIds(_this.metadata.getEntityIdMap(entity)); qb.setNativeParameters(subQuery.expressionMap.nativeParameters); if (_this.manager.connection.driver instanceof AbstractSqliteDriver["a" /* AbstractSqliteDriver */]) { return subQuery.getQuery() + " LIKE " + alias + "." + _this.metadata.materializedPathColumn.propertyPath + " || '%'"; } else { return subQuery.getQuery() + " LIKE CONCAT(" + alias + "." + _this.metadata.materializedPathColumn.propertyPath + ", '%')"; } }); } throw new Error("Supported only in tree entities"); }; /** * Moves entity to the children of then given entity. * move(entity: Entity, to: Entity): Promise { return Promise.resolve(); } */ // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- TreeRepository.prototype.createRelationMaps = function (alias, rawResults) { var _this = this; return rawResults.map(function (rawResult) { var joinColumn = _this.metadata.treeParentRelation.joinColumns[0]; // fixes issue #2518, default to databaseName property when givenDatabaseName is not set var joinColumnName = joinColumn.givenDatabaseName || joinColumn.databaseName; var id = rawResult[alias + "_" + _this.metadata.primaryColumns[0].databaseName]; var parentId = rawResult[alias + "_" + joinColumnName]; return { id: _this.manager.connection.driver.prepareHydratedValue(id, _this.metadata.primaryColumns[0]), parentId: _this.manager.connection.driver.prepareHydratedValue(parentId, joinColumn), }; }); }; TreeRepository.prototype.buildChildrenEntityTree = function (entity, entities, relationMaps) { var _this = this; var childProperty = this.metadata.treeChildrenRelation.propertyName; var parentEntityId = this.metadata.primaryColumns[0].getEntityValue(entity); var childRelationMaps = relationMaps.filter(function (relationMap) { return relationMap.parentId === parentEntityId; }); var childIds = new Set(childRelationMaps.map(function (relationMap) { return relationMap.id; })); entity[childProperty] = entities.filter(function (entity) { return childIds.has(_this.metadata.primaryColumns[0].getEntityValue(entity)); }); entity[childProperty].forEach(function (childEntity) { _this.buildChildrenEntityTree(childEntity, entities, relationMaps); }); }; TreeRepository.prototype.buildParentEntityTree = function (entity, entities, relationMaps) { var _this = this; var parentProperty = this.metadata.treeParentRelation.propertyName; var entityId = this.metadata.primaryColumns[0].getEntityValue(entity); var parentRelationMap = relationMaps.find(function (relationMap) { return relationMap.id === entityId; }); var parentEntity = entities.find(function (entity) { if (!parentRelationMap) return false; return _this.metadata.primaryColumns[0].getEntityValue(entity) === parentRelationMap.parentId; }); if (parentEntity) { entity[parentProperty] = parentEntity; this.buildParentEntityTree(entity[parentProperty], entities, relationMaps); } }; return TreeRepository; }(Repository_Repository)); //# sourceMappingURL=TreeRepository.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/FindRelationsNotFoundError.js /** * Thrown when relations specified in the find options were not found in the entities. */ var FindRelationsNotFoundError_FindRelationsNotFoundError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(FindRelationsNotFoundError, _super); function FindRelationsNotFoundError(notFoundRelations) { var _this = _super.call(this) || this; Object.setPrototypeOf(_this, FindRelationsNotFoundError.prototype); if (notFoundRelations.length === 1) { _this.message = "Relation \"" + notFoundRelations[0] + "\" was not found; please check if it is correct and really exists in your entity."; } else { _this.message = "Relations " + notFoundRelations.map(function (relation) { return "\"" + relation + "\""; }).join(", ") + " were not found; please check if relations are correct and they exist in your entities."; } return _this; } return FindRelationsNotFoundError; }(Error)); //# sourceMappingURL=FindRelationsNotFoundError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/find-options/FindOptionsUtils.js /** * Utilities to work with FindOptions. */ var FindOptionsUtils_FindOptionsUtils = /** @class */ (function () { function FindOptionsUtils() { } // ------------------------------------------------------------------------- // Public Static Methods // ------------------------------------------------------------------------- /** * Checks if given object is really instance of FindOneOptions interface. */ FindOptionsUtils.isFindOneOptions = function (obj) { var possibleOptions = obj; return possibleOptions && (Array.isArray(possibleOptions.select) || possibleOptions.where instanceof Object || typeof possibleOptions.where === "string" || Array.isArray(possibleOptions.relations) || possibleOptions.join instanceof Object || possibleOptions.order instanceof Object || possibleOptions.cache instanceof Object || typeof possibleOptions.cache === "boolean" || typeof possibleOptions.cache === "number" || possibleOptions.lock instanceof Object || possibleOptions.loadRelationIds instanceof Object || typeof possibleOptions.loadRelationIds === "boolean" || typeof possibleOptions.loadEagerRelations === "boolean" || typeof possibleOptions.withDeleted === "boolean" || typeof possibleOptions.transaction === "boolean"); }; /** * Checks if given object is really instance of FindManyOptions interface. */ FindOptionsUtils.isFindManyOptions = function (obj) { var possibleOptions = obj; return possibleOptions && (this.isFindOneOptions(possibleOptions) || typeof possibleOptions.skip === "number" || typeof possibleOptions.take === "number" || typeof possibleOptions.skip === "string" || typeof possibleOptions.take === "string"); }; /** * Checks if given object is really instance of FindOptions interface. */ FindOptionsUtils.extractFindManyOptionsAlias = function (object) { if (this.isFindManyOptions(object) && object.join) return object.join.alias; return undefined; }; /** * Applies give find many options to the given query builder. */ FindOptionsUtils.applyFindManyOptionsOrConditionsToQueryBuilder = function (qb, options) { if (this.isFindManyOptions(options)) return this.applyOptionsToQueryBuilder(qb, options); if (options) return qb.where(options); return qb; }; /** * Applies give find options to the given query builder. */ FindOptionsUtils.applyOptionsToQueryBuilder = function (qb, options) { // if options are not set then simply return query builder. This is made for simplicity of usage. if (!options || (!this.isFindOneOptions(options) && !this.isFindManyOptions(options))) return qb; if (options.transaction === true) { qb.expressionMap.useTransaction = true; } if (!qb.expressionMap.mainAlias || !qb.expressionMap.mainAlias.hasMetadata) return qb; var metadata = qb.expressionMap.mainAlias.metadata; // apply all options from FindOptions if (options.select) { qb.select([]); options.select.forEach(function (select) { if (!metadata.findColumnWithPropertyPath(String(select))) throw new Error(select + " column was not found in the " + metadata.name + " entity."); qb.addSelect(qb.alias + "." + select); }); } if (options.where) qb.where(options.where); if (options.skip) qb.skip(options.skip); if (options.take) qb.take(options.take); if (options.order) Object.keys(options.order).forEach(function (key) { var order = options.order[key]; if (!metadata.findColumnWithPropertyPath(key)) throw new Error(key + " column was not found in the " + metadata.name + " entity."); switch (order) { case 1: qb.addOrderBy(qb.alias + "." + key, "ASC"); break; case -1: qb.addOrderBy(qb.alias + "." + key, "DESC"); break; case "ASC": qb.addOrderBy(qb.alias + "." + key, "ASC"); break; case "DESC": qb.addOrderBy(qb.alias + "." + key, "DESC"); break; } }); if (options.relations) { var allRelations = options.relations.map(function (relation) { return relation; }); this.applyRelationsRecursively(qb, allRelations, qb.expressionMap.mainAlias.name, qb.expressionMap.mainAlias.metadata, ""); // recursive removes found relations from allRelations array // if there are relations left in this array it means those relations were not found in the entity structure // so, we give an exception about not found relations if (allRelations.length > 0) throw new FindRelationsNotFoundError_FindRelationsNotFoundError(allRelations); } if (options.join) { if (options.join.leftJoin) Object.keys(options.join.leftJoin).forEach(function (key) { qb.leftJoin(options.join.leftJoin[key], key); }); if (options.join.innerJoin) Object.keys(options.join.innerJoin).forEach(function (key) { qb.innerJoin(options.join.innerJoin[key], key); }); if (options.join.leftJoinAndSelect) Object.keys(options.join.leftJoinAndSelect).forEach(function (key) { qb.leftJoinAndSelect(options.join.leftJoinAndSelect[key], key); }); if (options.join.innerJoinAndSelect) Object.keys(options.join.innerJoinAndSelect).forEach(function (key) { qb.innerJoinAndSelect(options.join.innerJoinAndSelect[key], key); }); } if (options.cache) { if (options.cache instanceof Object) { var cache = options.cache; qb.cache(cache.id, cache.milliseconds); } else { qb.cache(options.cache); } } if (options.lock) { if (options.lock.mode === "optimistic") { qb.setLock(options.lock.mode, options.lock.version); } else if (options.lock.mode === "pessimistic_read" || options.lock.mode === "pessimistic_write" || options.lock.mode === "dirty_read" || options.lock.mode === "pessimistic_partial_write" || options.lock.mode === "pessimistic_write_or_fail") { var tableNames = options.lock.tables ? options.lock.tables.map(function (table) { var tableAlias = qb.expressionMap.aliases.find(function (alias) { return alias.metadata.tableNameWithoutPrefix === table; }); if (!tableAlias) { throw new Error("\"" + table + "\" is not part of this query"); } return qb.escape(tableAlias.name); }) : undefined; qb.setLock(options.lock.mode, undefined, tableNames); } } if (options.withDeleted) { qb.withDeleted(); } if (options.loadRelationIds === true) { qb.loadAllRelationIds(); } else if (options.loadRelationIds instanceof Object) { qb.loadAllRelationIds(options.loadRelationIds); } return qb; }; // ------------------------------------------------------------------------- // Protected Static Methods // ------------------------------------------------------------------------- /** * Adds joins for all relations and sub-relations of the given relations provided in the find options. */ FindOptionsUtils.applyRelationsRecursively = function (qb, allRelations, alias, metadata, prefix) { var _this = this; // find all relations that match given prefix var matchedBaseRelations = []; if (prefix) { var regexp_1 = new RegExp("^" + prefix.replace(".", "\\.") + "\\."); matchedBaseRelations = allRelations .filter(function (relation) { return relation.match(regexp_1); }) .map(function (relation) { return relation.replace(regexp_1, ""); }) .filter(function (relation) { return metadata.findRelationWithPropertyPath(relation); }); } else { matchedBaseRelations = allRelations.filter(function (relation) { return metadata.findRelationWithPropertyPath(relation); }); } // go through all matched relations and add join for them matchedBaseRelations.forEach(function (relation) { // generate a relation alias var relationAlias = alias + "__" + relation; // shorten it if needed by the driver if (qb.connection.driver.maxAliasLength && relationAlias.length > qb.connection.driver.maxAliasLength) { relationAlias = Object(StringUtils["c" /* shorten */])(relationAlias); } // add a join for the found relation var selection = alias + "." + relation; qb.leftJoinAndSelect(selection, relationAlias); // join the eager relations of the found relation var relMetadata = metadata.relations.find(function (metadata) { return metadata.propertyName === relation; }); if (relMetadata) { _this.joinEagerRelations(qb, relationAlias, relMetadata.inverseEntityMetadata); } // remove added relations from the allRelations array, this is needed to find all not found relations at the end allRelations.splice(allRelations.indexOf(prefix ? prefix + "." + relation : relation), 1); // try to find sub-relations var join = qb.expressionMap.joinAttributes.find(function (join) { return join.entityOrProperty === selection; }); _this.applyRelationsRecursively(qb, allRelations, join.alias.name, join.metadata, prefix ? prefix + "." + relation : relation); }); }; FindOptionsUtils.joinEagerRelations = function (qb, alias, metadata) { var _this = this; metadata.eagerRelations.forEach(function (relation) { var relationAlias = qb.connection.namingStrategy.eagerJoinRelationAlias(alias, relation.propertyPath); qb.leftJoinAndSelect(alias + "." + relation.propertyPath, relationAlias); _this.joinEagerRelations(qb, relationAlias, relation.inverseEntityMetadata); }); }; return FindOptionsUtils; }()); //# sourceMappingURL=FindOptionsUtils.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js /** * Transforms plain old javascript object * Entity is constructed based on its entity metadata. */ var PlainObjectToNewEntityTransformer = /** @class */ (function () { function PlainObjectToNewEntityTransformer() { } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- PlainObjectToNewEntityTransformer.prototype.transform = function (newEntity, object, metadata, getLazyRelationsPromiseValue) { if (getLazyRelationsPromiseValue === void 0) { getLazyRelationsPromiseValue = false; } // console.log("groupAndTransform entity:", newEntity); // console.log("groupAndTransform object:", object); this.groupAndTransform(newEntity, object, metadata, getLazyRelationsPromiseValue); // console.log("result:", newEntity); return newEntity; }; // ------------------------------------------------------------------------- // Private Methods // ------------------------------------------------------------------------- /** * Since db returns a duplicated rows of the data where accuracies of the same object can be duplicated * we need to group our result and we must have some unique id (primary key in our case) */ PlainObjectToNewEntityTransformer.prototype.groupAndTransform = function (entity, object, metadata, getLazyRelationsPromiseValue) { // console.log("groupAndTransform entity:", entity); // console.log("groupAndTransform object:", object); var _this = this; if (getLazyRelationsPromiseValue === void 0) { getLazyRelationsPromiseValue = false; } // copy regular column properties from the given object metadata.nonVirtualColumns.forEach(function (column) { var objectColumnValue = column.getEntityValue(object); if (objectColumnValue !== undefined) column.setEntityValue(entity, objectColumnValue); }); // // copy relation properties from the given object if (metadata.relations.length) { metadata.relations.forEach(function (relation) { var entityRelatedValue = relation.getEntityValue(entity); var objectRelatedValue = relation.getEntityValue(object, getLazyRelationsPromiseValue); if (objectRelatedValue === undefined) return; if (relation.isOneToMany || relation.isManyToMany) { if (!Array.isArray(objectRelatedValue)) return; if (!entityRelatedValue) { entityRelatedValue = []; relation.setEntityValue(entity, entityRelatedValue); } objectRelatedValue.forEach(function (objectRelatedValueItem) { // check if we have this item from the merging object in the original entity we merge into var objectRelatedValueEntity = entityRelatedValue.find(function (entityRelatedValueItem) { return relation.inverseEntityMetadata.compareEntities(objectRelatedValueItem, entityRelatedValueItem); }); // if such item already exist then merge new data into it, if its not we create a new entity and merge it into the array if (!objectRelatedValueEntity) { objectRelatedValueEntity = relation.inverseEntityMetadata.create(); entityRelatedValue.push(objectRelatedValueEntity); } _this.groupAndTransform(objectRelatedValueEntity, objectRelatedValueItem, relation.inverseEntityMetadata, getLazyRelationsPromiseValue); }); } else { // if related object isn't an object (direct relation id for example) // we just set it to the entity relation, we don't need anything more from it // however we do it only if original entity does not have this relation set to object // to prevent full overriding of objects if (!(objectRelatedValue instanceof Object)) { if (!(entityRelatedValue instanceof Object)) relation.setEntityValue(entity, objectRelatedValue); return; } if (!entityRelatedValue) { entityRelatedValue = relation.inverseEntityMetadata.create(); relation.setEntityValue(entity, entityRelatedValue); } _this.groupAndTransform(entityRelatedValue, objectRelatedValue, relation.inverseEntityMetadata, getLazyRelationsPromiseValue); } }); } }; return PlainObjectToNewEntityTransformer; }()); //# sourceMappingURL=PlainObjectToNewEntityTransformer.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js /** */ var LoadMapItem = /** @class */ (function () { function LoadMapItem(plainEntity, metadata, parentLoadMapItem, relation) { this.plainEntity = plainEntity; this.metadata = metadata; this.parentLoadMapItem = parentLoadMapItem; this.relation = relation; } Object.defineProperty(LoadMapItem.prototype, "target", { get: function () { return this.metadata.target; }, enumerable: false, configurable: true }); Object.defineProperty(LoadMapItem.prototype, "id", { get: function () { return this.metadata.getEntityIdMixedMap(this.plainEntity); }, enumerable: false, configurable: true }); return LoadMapItem; }()); var LoadMap = /** @class */ (function () { function LoadMap() { this.loadMapItems = []; } Object.defineProperty(LoadMap.prototype, "mainLoadMapItem", { get: function () { return this.loadMapItems.find(function (item) { return !item.relation && !item.parentLoadMapItem; }); }, enumerable: false, configurable: true }); LoadMap.prototype.addLoadMap = function (newLoadMap) { var item = this.loadMapItems.find(function (item) { return item.target === newLoadMap.target && item.id === newLoadMap.id; }); if (!item) this.loadMapItems.push(newLoadMap); }; LoadMap.prototype.fillEntities = function (target, entities) { var _this = this; entities.forEach(function (entity) { var item = _this.loadMapItems.find(function (loadMapItem) { return loadMapItem.target === target && loadMapItem.metadata.compareEntities(entity, loadMapItem.plainEntity); }); if (item) item.entity = entity; }); }; LoadMap.prototype.groupByTargetIds = function () { var groups = []; this.loadMapItems.forEach(function (loadMapItem) { var group = groups.find(function (group) { return group.target === loadMapItem.target; }); if (!group) { group = { target: loadMapItem.target, ids: [] }; groups.push(group); } group.ids.push(loadMapItem.id); }); return groups; }; return LoadMap; }()); /** * Transforms plain old javascript object * Entity is constructed based on its entity metadata. */ var PlainObjectToDatabaseEntityTransformer_PlainObjectToDatabaseEntityTransformer = /** @class */ (function () { function PlainObjectToDatabaseEntityTransformer(manager) { this.manager = manager; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- PlainObjectToDatabaseEntityTransformer.prototype.transform = function (plainObject, metadata) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var loadMap, fillLoadMap; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: // if plain object does not have id then nothing to load really if (!metadata.hasAllPrimaryKeys(plainObject)) return [2 /*return*/, Promise.reject("Given object does not have a primary column, cannot transform it to database entity.")]; loadMap = new LoadMap(); fillLoadMap = function (entity, entityMetadata, parentLoadMapItem, relation) { var item = new LoadMapItem(entity, entityMetadata, parentLoadMapItem, relation); loadMap.addLoadMap(item); entityMetadata .extractRelationValuesFromEntity(entity, metadata.relations) .filter(function (value) { return value !== null && value !== undefined; }) .forEach(function (_a) { var _b = Object(tslib_es6["e" /* __read */])(_a, 3), relation = _b[0], value = _b[1], inverseEntityMetadata = _b[2]; return fillLoadMap(value, inverseEntityMetadata, item, relation); }); }; fillLoadMap(plainObject, metadata); // load all entities and store them in the load map return [4 /*yield*/, Promise.all(loadMap.groupByTargetIds().map(function (targetWithIds) { return _this.manager .findByIds(targetWithIds.target, targetWithIds.ids) .then(function (entities) { return loadMap.fillEntities(targetWithIds.target, entities); }); }))]; case 1: // load all entities and store them in the load map _a.sent(); // go through each item in the load map and set their entity relationship using metadata stored in load map loadMap.loadMapItems.forEach(function (loadMapItem) { if (!loadMapItem.relation || !loadMapItem.entity || !loadMapItem.parentLoadMapItem || !loadMapItem.parentLoadMapItem.entity) return; if (loadMapItem.relation.isManyToMany || loadMapItem.relation.isOneToMany) { if (!loadMapItem.parentLoadMapItem.entity[loadMapItem.relation.propertyName]) loadMapItem.parentLoadMapItem.entity[loadMapItem.relation.propertyName] = []; loadMapItem.parentLoadMapItem.entity[loadMapItem.relation.propertyName].push(loadMapItem.entity); } else { loadMapItem.parentLoadMapItem.entity[loadMapItem.relation.propertyName] = loadMapItem.entity; } }); return [2 /*return*/, loadMap.mainLoadMapItem ? loadMap.mainLoadMapItem.entity : undefined]; } }); }); }; return PlainObjectToDatabaseEntityTransformer; }()); //# sourceMappingURL=PlainObjectToDatabaseEntityTransformer.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/CustomRepositoryNotFoundError.js /** * Thrown if custom repository was not found. */ var CustomRepositoryNotFoundError_CustomRepositoryNotFoundError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(CustomRepositoryNotFoundError, _super); function CustomRepositoryNotFoundError(repository) { var _this = _super.call(this) || this; _this.name = "CustomRepositoryNotFoundError"; Object.setPrototypeOf(_this, CustomRepositoryNotFoundError.prototype); _this.message = "Custom repository " + (repository instanceof Function ? repository.name : repository.constructor.name) + " was not found. " + "Did you forgot to put @EntityRepository decorator on it?"; return _this; } return CustomRepositoryNotFoundError; }(Error)); //# sourceMappingURL=CustomRepositoryNotFoundError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/CustomRepositoryDoesNotHaveEntityError.js /** * Thrown if custom repositories that extend AbstractRepository classes does not have managed entity. */ var CustomRepositoryDoesNotHaveEntityError_CustomRepositoryDoesNotHaveEntityError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(CustomRepositoryDoesNotHaveEntityError, _super); function CustomRepositoryDoesNotHaveEntityError(repository) { var _this = _super.call(this) || this; _this.name = "CustomRepositoryDoesNotHaveEntityError"; Object.setPrototypeOf(_this, CustomRepositoryDoesNotHaveEntityError.prototype); _this.message = "Custom repository " + (repository instanceof Function ? repository.name : repository.constructor.name) + " does not have managed entity. " + "Did you forget to specify entity for it @EntityRepository(MyEntity)? "; return _this; } return CustomRepositoryDoesNotHaveEntityError; }(Error)); //# sourceMappingURL=CustomRepositoryDoesNotHaveEntityError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/repository/AbstractRepository.js /** * Provides abstract class for custom repositories that do not inherit from original orm Repository. * Contains all most-necessary methods to simplify code in the custom repository. * All methods are protected thus not exposed and it allows to create encapsulated custom repository. * * @experimental */ var AbstractRepository_AbstractRepository = /** @class */ (function () { function AbstractRepository() { } Object.defineProperty(AbstractRepository.prototype, "repository", { // ------------------------------------------------------------------------- // Protected Accessors // ------------------------------------------------------------------------- /** * Gets the original ORM repository for the entity that is managed by this repository. * If current repository does not manage any entity, then exception will be thrown. */ get: function () { var target = this.getCustomRepositoryTarget(this); if (!target) throw new CustomRepositoryDoesNotHaveEntityError_CustomRepositoryDoesNotHaveEntityError(this.constructor); return this.manager.getRepository(target); }, enumerable: false, configurable: true }); Object.defineProperty(AbstractRepository.prototype, "treeRepository", { /** * Gets the original ORM tree repository for the entity that is managed by this repository. * If current repository does not manage any entity, then exception will be thrown. */ get: function () { var target = this.getCustomRepositoryTarget(this); if (!target) throw new CustomRepositoryDoesNotHaveEntityError_CustomRepositoryDoesNotHaveEntityError(this.constructor); return this.manager.getTreeRepository(target); }, enumerable: false, configurable: true }); // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Creates a new query builder for the repository's entity that can be used to build a sql query. * If current repository does not manage any entity, then exception will be thrown. */ AbstractRepository.prototype.createQueryBuilder = function (alias) { var target = this.getCustomRepositoryTarget(this.constructor); if (!target) throw new CustomRepositoryDoesNotHaveEntityError_CustomRepositoryDoesNotHaveEntityError(this.constructor); return this.manager.getRepository(target).createQueryBuilder(alias); }; /** * Creates a new query builder for the given entity that can be used to build a sql query. */ AbstractRepository.prototype.createQueryBuilderFor = function (entity, alias) { return this.getRepositoryFor(entity).createQueryBuilder(alias); }; /** * Gets the original ORM repository for the given entity class. */ AbstractRepository.prototype.getRepositoryFor = function (entity) { return this.manager.getRepository(entity); }; /** * Gets the original ORM tree repository for the given entity class. */ AbstractRepository.prototype.getTreeRepositoryFor = function (entity) { return this.manager.getTreeRepository(entity); }; // ------------------------------------------------------------------------- // Private Methods // ------------------------------------------------------------------------- /** * Gets custom repository's managed entity. * If given custom repository does not manage any entity then undefined will be returned. */ AbstractRepository.prototype.getCustomRepositoryTarget = function (customRepository) { var entityRepositoryMetadataArgs = getMetadataArgsStorage().entityRepositories.find(function (repository) { return repository.target === (customRepository instanceof Function ? customRepository : customRepository.constructor); }); if (!entityRepositoryMetadataArgs) throw new CustomRepositoryNotFoundError_CustomRepositoryNotFoundError(customRepository); return entityRepositoryMetadataArgs.entity; }; return AbstractRepository; }()); //# sourceMappingURL=AbstractRepository.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/CustomRepositoryCannotInheritRepositoryError.js /** * Thrown if custom repository inherits Repository class however entity is not set in @EntityRepository decorator. */ var CustomRepositoryCannotInheritRepositoryError_CustomRepositoryCannotInheritRepositoryError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(CustomRepositoryCannotInheritRepositoryError, _super); function CustomRepositoryCannotInheritRepositoryError(repository) { var _this = _super.call(this) || this; _this.name = "CustomRepositoryCannotInheritRepositoryError"; Object.setPrototypeOf(_this, CustomRepositoryCannotInheritRepositoryError.prototype); _this.message = "Custom entity repository " + (repository instanceof Function ? repository.name : repository.constructor.name) + " " + " cannot inherit Repository class without entity being set in the @EntityRepository decorator."; return _this; } return CustomRepositoryCannotInheritRepositoryError; }(Error)); //# sourceMappingURL=CustomRepositoryCannotInheritRepositoryError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/RepositoryNotFoundError.js /** * Thrown when repository for the given class is not found. */ var RepositoryNotFoundError_RepositoryNotFoundError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(RepositoryNotFoundError, _super); function RepositoryNotFoundError(connectionName, entityClass) { var _this = _super.call(this) || this; _this.name = "RepositoryNotFoundError"; Object.setPrototypeOf(_this, RepositoryNotFoundError.prototype); var targetName; if (entityClass instanceof EntitySchema["a" /* EntitySchema */]) { targetName = entityClass.options.name; } else if (typeof entityClass === "function") { targetName = entityClass.name; } else if (typeof entityClass === "object" && "name" in entityClass) { targetName = entityClass.name; } else { targetName = entityClass; } _this.message = "No repository for \"" + targetName + "\" was found. Looks like this entity is not registered in " + ("current \"" + connectionName + "\" connection?"); return _this; } return RepositoryNotFoundError; }(Error)); //# sourceMappingURL=RepositoryNotFoundError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/RepositoryNotTreeError.js /** * Thrown when repository for the given class is not found. */ var RepositoryNotTreeError_RepositoryNotTreeError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(RepositoryNotTreeError, _super); function RepositoryNotTreeError(entityClass) { var _this = _super.call(this) || this; _this.name = "RepositoryNotTreeError"; Object.setPrototypeOf(_this, RepositoryNotTreeError.prototype); var targetName; if (entityClass instanceof EntitySchema["a" /* EntitySchema */]) { targetName = entityClass.options.name; } else if (typeof entityClass === "function") { targetName = entityClass.name; } else if (typeof entityClass === "object" && "name" in entityClass) { targetName = entityClass.name; } else { targetName = entityClass; } _this.message = "Repository of the \"" + targetName + "\" class is not a TreeRepository. Try to apply @Tree decorator on your entity."; return _this; } return RepositoryNotTreeError; }(Error)); //# sourceMappingURL=RepositoryNotTreeError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/repository/RepositoryFactory.js /** * Factory used to create different types of repositories. */ var RepositoryFactory_RepositoryFactory = /** @class */ (function () { function RepositoryFactory() { } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Creates a repository. */ RepositoryFactory.prototype.create = function (manager, metadata, queryRunner) { if (metadata.treeType) { // NOTE: dynamic access to protected properties. We need this to prevent unwanted properties in those classes to be exposed, // however we need these properties for internal work of the class var repository = new TreeRepository_TreeRepository(); Object.assign(repository, { manager: manager, metadata: metadata, queryRunner: queryRunner, }); return repository; } else { // NOTE: dynamic access to protected properties. We need this to prevent unwanted properties in those classes to be exposed, // however we need these properties for internal work of the class var repository = void 0; if (manager.connection.driver instanceof BrowserDisabledDriversDummy["e" /* MongoDriver */]) { repository = new BrowserDisabledDriversDummy["h" /* MongoRepository */](); } else { repository = new Repository_Repository(); } Object.assign(repository, { manager: manager, metadata: metadata, queryRunner: queryRunner, }); return repository; } }; return RepositoryFactory; }()); //# sourceMappingURL=RepositoryFactory.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/TreeRepositoryNotSupportedError.js var TreeRepositoryNotSupportedError_TreeRepositoryNotSupportedError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(TreeRepositoryNotSupportedError, _super); function TreeRepositoryNotSupportedError(driver) { var _this = _super.call(this) || this; _this.name = "TreeRepositoryNotSupportedError"; Object.setPrototypeOf(_this, TreeRepositoryNotSupportedError.prototype); _this.message = "Tree repositories are not supported in " + driver.options.type + " driver."; return _this; } return TreeRepositoryNotSupportedError; }(Error)); //# sourceMappingURL=TreeRepositoryNotSupportedError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/MustBeEntityError.js /** * Thrown when method expects entity but instead something else is given. */ var MustBeEntityError_MustBeEntityError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(MustBeEntityError, _super); function MustBeEntityError(operation, wrongValue) { var _this = _super.call(this) || this; _this.name = "MustBeEntityError"; Object.setPrototypeOf(_this, MustBeEntityError.prototype); _this.message = "Cannot " + operation + ", given value must be an entity, instead \"" + wrongValue + "\" is given."; return _this; } return MustBeEntityError; }(Error)); //# sourceMappingURL=MustBeEntityError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/persistence/SubjectTopoligicalSorter.js /** * Orders insert or remove subjects in proper order (using topological sorting) * to make sure insert or remove operations are executed in a proper order. */ var SubjectTopoligicalSorter_SubjectTopoligicalSorter = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function SubjectTopoligicalSorter(subjects) { this.subjects = Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(subjects)); // copy subjects to prevent changing of sent array this.metadatas = this.getUniqueMetadatas(this.subjects); } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Sorts (orders) subjects in their topological order. */ SubjectTopoligicalSorter.prototype.sort = function (direction) { var _this = this; // if there are no metadatas it probably mean there is no subjects... we don't have to do anything here if (!this.metadatas.length) return this.subjects; var sortedSubjects = []; // first if we sort for deletion all junction subjects // junction subjects are subjects without entity and database entity set if (direction === "delete") { var junctionSubjects = this.subjects.filter(function (subject) { return !subject.entity && !subject.databaseEntity; }); sortedSubjects.push.apply(sortedSubjects, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(junctionSubjects))); this.removeAlreadySorted(junctionSubjects); } // next we always insert entities with non-nullable relations, sort them first var nonNullableDependencies = this.getNonNullableDependencies(); var sortedNonNullableEntityTargets = this.toposort(nonNullableDependencies); if (direction === "insert") sortedNonNullableEntityTargets = sortedNonNullableEntityTargets.reverse(); // so we have a sorted entity targets // go thought each of them and find all subjects with sorted entity target // add those sorted targets and remove them from original array of targets sortedNonNullableEntityTargets.forEach(function (sortedEntityTarget) { var entityTargetSubjects = _this.subjects.filter(function (subject) { return subject.metadata.targetName === sortedEntityTarget; }); sortedSubjects.push.apply(sortedSubjects, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(entityTargetSubjects))); _this.removeAlreadySorted(entityTargetSubjects); }); // next sort all other entities // same process as in above but with other entities var otherDependencies = this.getDependencies(); var sortedOtherEntityTargets = this.toposort(otherDependencies); if (direction === "insert") sortedOtherEntityTargets = sortedOtherEntityTargets.reverse(); sortedOtherEntityTargets.forEach(function (sortedEntityTarget) { var entityTargetSubjects = _this.subjects.filter(function (subject) { return subject.metadata.targetName === sortedEntityTarget; }); sortedSubjects.push.apply(sortedSubjects, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(entityTargetSubjects))); _this.removeAlreadySorted(entityTargetSubjects); }); // if we have something left in the subjects add them as well sortedSubjects.push.apply(sortedSubjects, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(this.subjects))); return sortedSubjects; }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Removes already sorted subjects from this.subjects list of subjects. */ SubjectTopoligicalSorter.prototype.removeAlreadySorted = function (subjects) { var _this = this; subjects.forEach(function (subject) { _this.subjects.splice(_this.subjects.indexOf(subject), 1); }); }; /** * Extracts all unique metadatas from the given subjects. */ SubjectTopoligicalSorter.prototype.getUniqueMetadatas = function (subjects) { var metadatas = []; subjects.forEach(function (subject) { if (metadatas.indexOf(subject.metadata) === -1) metadatas.push(subject.metadata); }); return metadatas; }; /** * Gets dependency tree for all entity metadatas with non-nullable relations. * We need to execute insertions first for entities which non-nullable relations. */ SubjectTopoligicalSorter.prototype.getNonNullableDependencies = function () { return this.metadatas.reduce(function (dependencies, metadata) { metadata.relationsWithJoinColumns.forEach(function (relation) { if (relation.isNullable) return; dependencies.push([metadata.targetName, relation.inverseEntityMetadata.targetName]); }); return dependencies; }, []); }; /** * Gets dependency tree for all entity metadatas with non-nullable relations. * We need to execute insertions first for entities which non-nullable relations. */ SubjectTopoligicalSorter.prototype.getDependencies = function () { return this.metadatas.reduce(function (dependencies, metadata) { metadata.relationsWithJoinColumns.forEach(function (relation) { // if relation is self-referenced we skip it if (relation.inverseEntityMetadata === metadata) return; dependencies.push([metadata.targetName, relation.inverseEntityMetadata.targetName]); }); return dependencies; }, []); }; /** * Sorts given graph using topological sorting algorithm. * * Algorithm is kindly taken from https://github.com/marcelklehr/toposort repository. */ SubjectTopoligicalSorter.prototype.toposort = function (edges) { function uniqueNodes(arr) { var res = []; for (var i_1 = 0, len = arr.length; i_1 < len; i_1++) { var edge = arr[i_1]; if (res.indexOf(edge[0]) < 0) res.push(edge[0]); if (res.indexOf(edge[1]) < 0) res.push(edge[1]); } return res; } var nodes = uniqueNodes(edges); var cursor = nodes.length, sorted = new Array(cursor), visited = {}, i = cursor; while (i--) { if (!visited[i]) visit(nodes[i], i, []); } function visit(node, i, predecessors) { if (predecessors.indexOf(node) >= 0) { throw new Error("Cyclic dependency: " + JSON.stringify(node)); // todo: better error } if (!~nodes.indexOf(node)) { throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: " + JSON.stringify(node)); } if (visited[i]) return; visited[i] = true; // outgoing edges var outgoing = edges.filter(function (edge) { return edge[0] === node; }); if (i = outgoing.length) { var preds = predecessors.concat(node); do { var child = outgoing[--i][1]; visit(child, nodes.indexOf(child), preds); } while (i); } sorted[--cursor] = node; } return sorted; }; return SubjectTopoligicalSorter; }()); //# sourceMappingURL=SubjectTopoligicalSorter.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/util/DateUtils.js var DateUtils = __webpack_require__(22); // EXTERNAL MODULE: ./node_modules/typeorm/browser/util/OrmUtils.js var OrmUtils = __webpack_require__(6); // EXTERNAL MODULE: ./node_modules/typeorm/browser/util/ApplyValueTransformers.js var ApplyValueTransformers = __webpack_require__(61); // CONCATENATED MODULE: ./node_modules/typeorm/browser/persistence/SubjectChangedColumnsComputer.js /** * Finds what columns are changed in the subject entities. */ var SubjectChangedColumnsComputer_SubjectChangedColumnsComputer = /** @class */ (function () { function SubjectChangedColumnsComputer() { } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Finds what columns are changed in the subject entities. */ SubjectChangedColumnsComputer.prototype.compute = function (subjects) { var _this = this; subjects.forEach(function (subject) { _this.computeDiffColumns(subject); _this.computeDiffRelationalColumns(subjects, subject); }); }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Differentiate columns from the updated entity and entity stored in the database. */ SubjectChangedColumnsComputer.prototype.computeDiffColumns = function (subject) { // if there is no persisted entity then nothing to compute changed in it if (!subject.entity) return; subject.metadata.columns.forEach(function (column) { // ignore special columns if (column.isVirtual || column.isDiscriminator // || // column.isUpdateDate || // column.isVersion || // column.isCreateDate ) return; var changeMap = subject.changeMaps.find(function (changeMap) { return changeMap.column === column; }); if (changeMap) { subject.changeMaps.splice(subject.changeMaps.indexOf(changeMap), 1); } // get user provided value - column value from the user provided persisted entity var entityValue = column.getEntityValue(subject.entity); // we don't perform operation over undefined properties (but we DO need null properties!) if (entityValue === undefined) return; // if there is no database entity then all columns are treated as new, e.g. changed if (subject.databaseEntity) { // skip transform database value for json / jsonb for comparison later on var shouldTransformDatabaseEntity = column.type !== "json" && column.type !== "jsonb"; // get database value of the column var databaseValue = column.getEntityValue(subject.databaseEntity, shouldTransformDatabaseEntity); // filter out "relational columns" only in the case if there is a relation object in entity if (column.relationMetadata) { var value = column.relationMetadata.getEntityValue(subject.entity); if (value !== null && value !== undefined) return; } var normalizedValue = entityValue; // normalize special values to make proper comparision if (entityValue !== null) { switch (column.type) { case "date": normalizedValue = DateUtils["a" /* DateUtils */].mixedDateToDateString(entityValue); break; case "time": case "time with time zone": case "time without time zone": case "timetz": normalizedValue = DateUtils["a" /* DateUtils */].mixedDateToTimeString(entityValue); break; case "datetime": case "datetime2": case Date: case "timestamp": case "timestamp without time zone": case "timestamp with time zone": case "timestamp with local time zone": case "timestamptz": normalizedValue = DateUtils["a" /* DateUtils */].mixedDateToUtcDatetimeString(entityValue); databaseValue = DateUtils["a" /* DateUtils */].mixedDateToUtcDatetimeString(databaseValue); break; case "json": case "jsonb": // JSON.stringify doesn't work because postgresql sorts jsonb before save. // If you try to save json '[{"messages": "", "attribute Key": "", "level":""}] ' as jsonb, // then postgresql will save it as '[{"level": "", "message":"", "attributeKey": ""}]' if (OrmUtils["a" /* OrmUtils */].deepCompare(entityValue, databaseValue)) return; break; case "simple-array": normalizedValue = DateUtils["a" /* DateUtils */].simpleArrayToString(entityValue); databaseValue = DateUtils["a" /* DateUtils */].simpleArrayToString(databaseValue); break; case "simple-enum": normalizedValue = DateUtils["a" /* DateUtils */].simpleEnumToString(entityValue); databaseValue = DateUtils["a" /* DateUtils */].simpleEnumToString(databaseValue); break; case "simple-json": normalizedValue = DateUtils["a" /* DateUtils */].simpleJsonToString(entityValue); databaseValue = DateUtils["a" /* DateUtils */].simpleJsonToString(databaseValue); break; } if (column.transformer) { normalizedValue = ApplyValueTransformers["a" /* ApplyValueTransformers */].transformTo(column.transformer, entityValue); } } // if value is not changed - then do nothing if (normalizedValue === databaseValue) return; } subject.diffColumns.push(column); subject.changeMaps.push({ column: column, value: entityValue }); }); }; /** * Difference columns of the owning one-to-one and many-to-one columns. */ SubjectChangedColumnsComputer.prototype.computeDiffRelationalColumns = function (allSubjects, subject) { // if there is no persisted entity then nothing to compute changed in it if (!subject.entity) return; subject.metadata.relationsWithJoinColumns.forEach(function (relation) { // get the related entity from the persisted entity var relatedEntity = relation.getEntityValue(subject.entity); // we don't perform operation over undefined properties (but we DO need null properties!) if (relatedEntity === undefined) return; // if there is no database entity then all relational columns are treated as new, e.g. changed if (subject.databaseEntity) { // here we cover two scenarios: // 1. related entity can be another entity which is natural way // 2. related entity can be just an entity id // if relation entity is just a relation id set (for example post.tag = 1) // then we create an id map from it to make a proper comparision var relatedEntityRelationIdMap = relatedEntity; if (relatedEntityRelationIdMap !== null && relatedEntityRelationIdMap instanceof Object) relatedEntityRelationIdMap = relation.getRelationIdMap(relatedEntityRelationIdMap); // get database related entity. Since loadRelationIds are used on databaseEntity // related entity will contain only its relation ids var databaseRelatedEntityRelationIdMap = relation.getEntityValue(subject.databaseEntity); // if relation ids are equal then we don't need to update anything var areRelatedIdsEqual = OrmUtils["a" /* OrmUtils */].compareIds(relatedEntityRelationIdMap, databaseRelatedEntityRelationIdMap); if (areRelatedIdsEqual) { return; } else { subject.diffRelations.push(relation); } } // if there is an inserted subject for the related entity of the persisted entity then use it as related entity // this code is used for related entities without ids to be properly inserted (and then updated if needed) var valueSubject = allSubjects.find(function (subject) { return subject.mustBeInserted && subject.entity === relatedEntity; }); if (valueSubject) relatedEntity = valueSubject; // find if there is already a relation to be changed var changeMap = subject.changeMaps.find(function (changeMap) { return changeMap.relation === relation; }); if (changeMap) { // and update its value if it was found changeMap.value = relatedEntity; } else { // if it wasn't found add a new relation for change subject.changeMaps.push({ relation: relation, value: relatedEntity }); } }); }; return SubjectChangedColumnsComputer; }()); //# sourceMappingURL=SubjectChangedColumnsComputer.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/SubjectWithoutIdentifierError.js /** * Thrown when operation is going to be executed on a subject without identifier. * This error should never be thrown, however it still presents to prevent user from updation or removing the whole table. * If this error occurs still, it most probably is an ORM internal problem which must be reported and fixed. */ var SubjectWithoutIdentifierError_SubjectWithoutIdentifierError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(SubjectWithoutIdentifierError, _super); function SubjectWithoutIdentifierError(subject) { var _this = _super.call(this) || this; _this.name = "SubjectWithoutIdentifierError"; Object.setPrototypeOf(_this, SubjectWithoutIdentifierError.prototype); _this.message = "Internal error. Subject " + subject.metadata.targetName + " must have an identifier to perform operation. " + "Please report a github issue if you face this error."; return _this; } return SubjectWithoutIdentifierError; }(Error)); //# sourceMappingURL=SubjectWithoutIdentifierError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/SubjectRemovedAndUpdatedError.js /** * Thrown when same object is scheduled for remove and updation at the same time. */ var SubjectRemovedAndUpdatedError_SubjectRemovedAndUpdatedError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(SubjectRemovedAndUpdatedError, _super); function SubjectRemovedAndUpdatedError(subject) { var _this = _super.call(this) || this; _this.name = "SubjectRemovedAndUpdatedError"; Object.setPrototypeOf(_this, SubjectRemovedAndUpdatedError.prototype); _this.message = "Removed entity \"" + subject.metadata.name + "\" is also scheduled for update operation. " + "Make sure you are not updating and removing same object (note that update or remove may be executed by cascade operations)."; return _this; } return SubjectRemovedAndUpdatedError; }(Error)); //# sourceMappingURL=SubjectRemovedAndUpdatedError.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/subscriber/BroadcasterResult.js var BroadcasterResult = __webpack_require__(8); // CONCATENATED MODULE: ./node_modules/typeorm/browser/persistence/tree/NestedSetSubjectExecutor.js /** * Executes subject operations for nested set tree entities. */ var NestedSetSubjectExecutor_NestedSetSubjectExecutor = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function NestedSetSubjectExecutor(queryRunner) { this.queryRunner = queryRunner; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Executes operations when subject is being inserted. */ NestedSetSubjectExecutor.prototype.insert = function (subject) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var escape, tableName, leftColumnName, rightColumnName, parent, parentId, parentNsRight; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: escape = function (alias) { return _this.queryRunner.connection.driver.escape(alias); }; tableName = this.getTableName(subject.metadata.tablePath); leftColumnName = escape(subject.metadata.nestedSetLeftColumn.databaseName); rightColumnName = escape(subject.metadata.nestedSetRightColumn.databaseName); parent = subject.metadata.treeParentRelation.getEntityValue(subject.entity); if (!parent && subject.parentSubject && subject.parentSubject.entity) // if entity was attached via children parent = subject.parentSubject.insertedValueSet ? subject.parentSubject.insertedValueSet : subject.parentSubject.entity; parentId = subject.metadata.getEntityIdMap(parent); parentNsRight = undefined; if (!parentId) return [3 /*break*/, 2]; return [4 /*yield*/, this.queryRunner.manager .createQueryBuilder() .select(subject.metadata.targetName + "." + subject.metadata.nestedSetRightColumn.propertyPath, "right") .from(subject.metadata.target, subject.metadata.targetName) .whereInIds(parentId) .getRawOne() .then(function (result) { var value = result ? result["right"] : undefined; // CockroachDB returns numeric types as string return typeof value === "string" ? parseInt(value) : value; })]; case 1: parentNsRight = _a.sent(); _a.label = 2; case 2: if (!(parentNsRight !== undefined)) return [3 /*break*/, 4]; return [4 /*yield*/, this.queryRunner.query("UPDATE " + tableName + " SET " + (leftColumnName + " = CASE WHEN " + leftColumnName + " > " + parentNsRight + " THEN " + leftColumnName + " + 2 ELSE " + leftColumnName + " END,") + (rightColumnName + " = " + rightColumnName + " + 2 ") + ("WHERE " + rightColumnName + " >= " + parentNsRight))]; case 3: _a.sent(); OrmUtils["a" /* OrmUtils */].mergeDeep(subject.insertedValueSet, subject.metadata.nestedSetLeftColumn.createValueMap(parentNsRight), subject.metadata.nestedSetRightColumn.createValueMap(parentNsRight + 1)); return [3 /*break*/, 5]; case 4: OrmUtils["a" /* OrmUtils */].mergeDeep(subject.insertedValueSet, subject.metadata.nestedSetLeftColumn.createValueMap(1), subject.metadata.nestedSetRightColumn.createValueMap(2)); _a.label = 5; case 5: return [2 /*return*/]; } }); }); }; /** * Gets escaped table name with schema name if SqlServer or Postgres driver used with custom * schema name, otherwise returns escaped table name. */ NestedSetSubjectExecutor.prototype.getTableName = function (tablePath) { var _this = this; return tablePath.split(".") .map(function (i) { // this condition need because in SQL Server driver when custom database name was specified and schema name was not, we got `dbName..tableName` string, and doesn't need to escape middle empty string if (i === "") return i; return _this.queryRunner.connection.driver.escape(i); }).join("."); }; return NestedSetSubjectExecutor; }()); //# sourceMappingURL=NestedSetSubjectExecutor.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/CannotAttachTreeChildrenEntityError.js /** * Thrown when user saves tree children entity but its parent is not saved yet. */ var CannotAttachTreeChildrenEntityError_CannotAttachTreeChildrenEntityError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(CannotAttachTreeChildrenEntityError, _super); function CannotAttachTreeChildrenEntityError(entityName) { var _this = _super.call(this) || this; _this.name = "CannotAttachTreeChildrenEntityError"; Object.setPrototypeOf(_this, CannotAttachTreeChildrenEntityError.prototype); _this.message = "Cannot attach entity \"" + entityName + "\" to its parent. Please make sure parent is saved in the database before saving children nodes."; return _this; } return CannotAttachTreeChildrenEntityError; }(Error)); //# sourceMappingURL=CannotAttachTreeChildrenEntityError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/persistence/tree/ClosureSubjectExecutor.js /** * Executes subject operations for closure entities. */ var ClosureSubjectExecutor_ClosureSubjectExecutor = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function ClosureSubjectExecutor(queryRunner) { this.queryRunner = queryRunner; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Removes all children of the given subject's entity. async deleteChildrenOf(subject: Subject) { // const relationValue = subject.metadata.treeParentRelation.getEntityValue(subject.databaseEntity); // console.log("relationValue: ", relationValue); // this.queryRunner.manager // .createQueryBuilder() // .from(subject.metadata.closureJunctionTable.target, "tree") // .where("tree."); }*/ /** * Executes operations when subject is being inserted. */ ClosureSubjectExecutor.prototype.insert = function (subject) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var closureJunctionInsertMap, parent, escape_1, tableName, ancestorColumnNames, descendantColumnNames, firstQueryParameters_1, childEntityIdValues_1, childEntityIds1, whereCondition; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: closureJunctionInsertMap = {}; subject.metadata.closureJunctionTable.ancestorColumns.forEach(function (column) { closureJunctionInsertMap[column.databaseName] = subject.identifier; }); subject.metadata.closureJunctionTable.descendantColumns.forEach(function (column) { closureJunctionInsertMap[column.databaseName] = subject.identifier; }); // insert values into the closure junction table return [4 /*yield*/, this.queryRunner .manager .createQueryBuilder() .insert() .into(subject.metadata.closureJunctionTable.tablePath) .values(closureJunctionInsertMap) .updateEntity(false) .callListeners(false) .execute()]; case 1: // insert values into the closure junction table _a.sent(); parent = subject.metadata.treeParentRelation.getEntityValue(subject.entity); if (!parent && subject.parentSubject && subject.parentSubject.entity) // if entity was attached via children parent = subject.parentSubject.insertedValueSet ? subject.parentSubject.insertedValueSet : subject.parentSubject.entity; if (!parent) return [3 /*break*/, 3]; escape_1 = function (alias) { return _this.queryRunner.connection.driver.escape(alias); }; tableName = this.getTableName(subject.metadata.closureJunctionTable.tablePath); ancestorColumnNames = subject.metadata.closureJunctionTable.ancestorColumns.map(function (column) { return escape_1(column.databaseName); }); descendantColumnNames = subject.metadata.closureJunctionTable.descendantColumns.map(function (column) { return escape_1(column.databaseName); }); firstQueryParameters_1 = []; childEntityIdValues_1 = subject.metadata.primaryColumns.map(function (column) { return column.getEntityValue(subject.insertedValueSet); }); childEntityIds1 = subject.metadata.primaryColumns.map(function (column, index) { firstQueryParameters_1.push(childEntityIdValues_1[index]); return _this.queryRunner.connection.driver.createParameter("child_entity_" + column.databaseName, firstQueryParameters_1.length - 1); }); whereCondition = subject.metadata.closureJunctionTable.descendantColumns.map(function (column) { var columnName = escape_1(column.databaseName); var parentId = column.referencedColumn.getEntityValue(parent); if (!parentId) throw new CannotAttachTreeChildrenEntityError_CannotAttachTreeChildrenEntityError(subject.metadata.name); firstQueryParameters_1.push(parentId); var parameterName = _this.queryRunner.connection.driver.createParameter("parent_entity_" + column.referencedColumn.databaseName, firstQueryParameters_1.length - 1); return columnName + " = " + parameterName; }).join(", "); return [4 /*yield*/, this.queryRunner.query("INSERT INTO " + tableName + " (" + Object(tslib_es6["f" /* __spreadArray */])(Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(ancestorColumnNames)), Object(tslib_es6["e" /* __read */])(descendantColumnNames)).join(", ") + ") " + ("SELECT " + ancestorColumnNames.join(", ") + ", " + childEntityIds1.join(", ") + " FROM " + tableName + " WHERE " + whereCondition), firstQueryParameters_1)]; case 2: _a.sent(); _a.label = 3; case 3: return [2 /*return*/]; } }); }); }; /** * Gets escaped table name with schema name if SqlServer or Postgres driver used with custom * schema name, otherwise returns escaped table name. */ ClosureSubjectExecutor.prototype.getTableName = function (tablePath) { var _this = this; return tablePath.split(".") .map(function (i) { // this condition need because in SQL Server driver when custom database name was specified and schema name was not, we got `dbName..tableName` string, and doesn't need to escape middle empty string if (i === "") return i; return _this.queryRunner.connection.driver.escape(i); }).join("."); }; return ClosureSubjectExecutor; }()); //# sourceMappingURL=ClosureSubjectExecutor.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/persistence/tree/MaterializedPathSubjectExecutor.js /** * Executes subject operations for materialized-path tree entities. */ var MaterializedPathSubjectExecutor_MaterializedPathSubjectExecutor = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function MaterializedPathSubjectExecutor(queryRunner) { this.queryRunner = queryRunner; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Executes operations when subject is being inserted. */ MaterializedPathSubjectExecutor.prototype.insert = function (subject) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var parent, parentId, parentPath, insertedEntityId; var _a; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: parent = subject.metadata.treeParentRelation.getEntityValue(subject.entity); if (!parent && subject.parentSubject && subject.parentSubject.entity) // if entity was attached via children parent = subject.parentSubject.insertedValueSet ? subject.parentSubject.insertedValueSet : subject.parentSubject.entity; parentId = subject.metadata.getEntityIdMap(parent); parentPath = ""; if (!parentId) return [3 /*break*/, 2]; return [4 /*yield*/, this.queryRunner.manager .createQueryBuilder() .select(subject.metadata.targetName + "." + subject.metadata.materializedPathColumn.propertyPath, "path") .from(subject.metadata.target, subject.metadata.targetName) .whereInIds(parentId) .getRawOne() .then(function (result) { return result ? result["path"] : undefined; })]; case 1: parentPath = _b.sent(); _b.label = 2; case 2: insertedEntityId = subject.metadata.treeParentRelation.joinColumns.map(function (joinColumn) { return joinColumn.referencedColumn.getEntityValue(subject.insertedValueSet); }).join("_"); return [4 /*yield*/, this.queryRunner.manager .createQueryBuilder() .update(subject.metadata.target) .set((_a = {}, _a[subject.metadata.materializedPathColumn.propertyPath] = parentPath + insertedEntityId + ".", _a)) .where(subject.identifier) .execute()]; case 3: _b.sent(); return [2 /*return*/]; } }); }); }; return MaterializedPathSubjectExecutor; }()); //# sourceMappingURL=MaterializedPathSubjectExecutor.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/persistence/SubjectExecutor.js /** * Executes all database operations (inserts, updated, deletes) that must be executed * with given persistence subjects. */ var SubjectExecutor_SubjectExecutor = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function SubjectExecutor(queryRunner, subjects, options) { // ------------------------------------------------------------------------- // Public Properties // ------------------------------------------------------------------------- /** * Indicates if executor has any operations to execute (e.g. has insert / update / delete operations to be executed). */ this.hasExecutableOperations = false; /** * Subjects that must be inserted. */ this.insertSubjects = []; /** * Subjects that must be updated. */ this.updateSubjects = []; /** * Subjects that must be removed. */ this.removeSubjects = []; /** * Subjects that must be soft-removed. */ this.softRemoveSubjects = []; /** * Subjects that must be recovered. */ this.recoverSubjects = []; this.queryRunner = queryRunner; this.allSubjects = subjects; this.options = options; this.validate(); this.recompute(); } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Executes all operations over given array of subjects. * Executes queries using given query runner. */ SubjectExecutor.prototype.execute = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var broadcasterResult; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: broadcasterResult = undefined; if (!(!this.options || this.options.listeners !== false)) return [3 /*break*/, 2]; // console.time(".broadcastBeforeEventsForAll"); broadcasterResult = this.broadcastBeforeEventsForAll(); if (!(broadcasterResult.promises.length > 0)) return [3 /*break*/, 2]; return [4 /*yield*/, Promise.all(broadcasterResult.promises)]; case 1: _a.sent(); _a.label = 2; case 2: // since event listeners and subscribers can call save methods and/or trigger entity changes we need to recompute operational subjects // recompute only in the case if any listener or subscriber was really executed if (broadcasterResult && broadcasterResult.count > 0) { // console.time(".recompute"); this.insertSubjects.forEach(function (subject) { return subject.recompute(); }); this.updateSubjects.forEach(function (subject) { return subject.recompute(); }); this.removeSubjects.forEach(function (subject) { return subject.recompute(); }); this.softRemoveSubjects.forEach(function (subject) { return subject.recompute(); }); this.recoverSubjects.forEach(function (subject) { return subject.recompute(); }); this.recompute(); // console.timeEnd(".recompute"); } // make sure our insert subjects are sorted (using topological sorting) to make cascade inserts work properly // console.timeEnd("prepare"); // execute all insert operations // console.time(".insertion"); this.insertSubjects = new SubjectTopoligicalSorter_SubjectTopoligicalSorter(this.insertSubjects).sort("insert"); return [4 /*yield*/, this.executeInsertOperations()]; case 3: _a.sent(); // console.timeEnd(".insertion"); // recompute update operations since insertion can create updation operations for the // properties it wasn't able to handle on its own (referenced columns) this.updateSubjects = this.allSubjects.filter(function (subject) { return subject.mustBeUpdated; }); // execute update operations // console.time(".updation"); return [4 /*yield*/, this.executeUpdateOperations()]; case 4: // execute update operations // console.time(".updation"); _a.sent(); // console.timeEnd(".updation"); // make sure our remove subjects are sorted (using topological sorting) when multiple entities are passed for the removal // console.time(".removal"); this.removeSubjects = new SubjectTopoligicalSorter_SubjectTopoligicalSorter(this.removeSubjects).sort("delete"); return [4 /*yield*/, this.executeRemoveOperations()]; case 5: _a.sent(); // console.timeEnd(".removal"); // recompute soft-remove operations this.softRemoveSubjects = this.allSubjects.filter(function (subject) { return subject.mustBeSoftRemoved; }); // execute soft-remove operations return [4 /*yield*/, this.executeSoftRemoveOperations()]; case 6: // execute soft-remove operations _a.sent(); // recompute recover operations this.recoverSubjects = this.allSubjects.filter(function (subject) { return subject.mustBeRecovered; }); // execute recover operations return [4 /*yield*/, this.executeRecoverOperations()]; case 7: // execute recover operations _a.sent(); // update all special columns in persisted entities, like inserted id or remove ids from the removed entities // console.time(".updateSpecialColumnsInPersistedEntities"); return [4 /*yield*/, this.updateSpecialColumnsInPersistedEntities()]; case 8: // update all special columns in persisted entities, like inserted id or remove ids from the removed entities // console.time(".updateSpecialColumnsInPersistedEntities"); _a.sent(); if (!(!this.options || this.options.listeners !== false)) return [3 /*break*/, 10]; // console.time(".broadcastAfterEventsForAll"); broadcasterResult = this.broadcastAfterEventsForAll(); if (!(broadcasterResult.promises.length > 0)) return [3 /*break*/, 10]; return [4 /*yield*/, Promise.all(broadcasterResult.promises)]; case 9: _a.sent(); _a.label = 10; case 10: return [2 /*return*/]; } }); }); }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Validates all given subjects. */ SubjectExecutor.prototype.validate = function () { this.allSubjects.forEach(function (subject) { if (subject.mustBeUpdated && subject.mustBeRemoved) throw new SubjectRemovedAndUpdatedError_SubjectRemovedAndUpdatedError(subject); }); }; /** * Performs entity re-computations - finds changed columns, re-builds insert/update/remove subjects. */ SubjectExecutor.prototype.recompute = function () { new SubjectChangedColumnsComputer_SubjectChangedColumnsComputer().compute(this.allSubjects); this.insertSubjects = this.allSubjects.filter(function (subject) { return subject.mustBeInserted; }); this.updateSubjects = this.allSubjects.filter(function (subject) { return subject.mustBeUpdated; }); this.removeSubjects = this.allSubjects.filter(function (subject) { return subject.mustBeRemoved; }); this.softRemoveSubjects = this.allSubjects.filter(function (subject) { return subject.mustBeSoftRemoved; }); this.recoverSubjects = this.allSubjects.filter(function (subject) { return subject.mustBeRecovered; }); this.hasExecutableOperations = this.insertSubjects.length > 0 || this.updateSubjects.length > 0 || this.removeSubjects.length > 0 || this.softRemoveSubjects.length > 0 || this.recoverSubjects.length > 0; }; /** * Broadcasts "BEFORE_INSERT", "BEFORE_UPDATE", "BEFORE_REMOVE" events for all given subjects. */ SubjectExecutor.prototype.broadcastBeforeEventsForAll = function () { var _this = this; var result = new BroadcasterResult["a" /* BroadcasterResult */](); if (this.insertSubjects.length) this.insertSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastBeforeInsertEvent(result, subject.metadata, subject.entity); }); if (this.updateSubjects.length) this.updateSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastBeforeUpdateEvent(result, subject.metadata, subject.entity, subject.databaseEntity, subject.diffColumns, subject.diffRelations); }); if (this.removeSubjects.length) this.removeSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastBeforeRemoveEvent(result, subject.metadata, subject.entity, subject.databaseEntity); }); if (this.softRemoveSubjects.length) this.softRemoveSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastBeforeUpdateEvent(result, subject.metadata, subject.entity, subject.databaseEntity, subject.diffColumns, subject.diffRelations); }); if (this.recoverSubjects.length) this.recoverSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastBeforeUpdateEvent(result, subject.metadata, subject.entity, subject.databaseEntity, subject.diffColumns, subject.diffRelations); }); return result; }; /** * Broadcasts "AFTER_INSERT", "AFTER_UPDATE", "AFTER_REMOVE" events for all given subjects. * Returns void if there wasn't any listener or subscriber executed. * Note: this method has a performance-optimized code organization. */ SubjectExecutor.prototype.broadcastAfterEventsForAll = function () { var _this = this; var result = new BroadcasterResult["a" /* BroadcasterResult */](); if (this.insertSubjects.length) this.insertSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastAfterInsertEvent(result, subject.metadata, subject.entity); }); if (this.updateSubjects.length) this.updateSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastAfterUpdateEvent(result, subject.metadata, subject.entity, subject.databaseEntity, subject.diffColumns, subject.diffRelations); }); if (this.removeSubjects.length) this.removeSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastAfterRemoveEvent(result, subject.metadata, subject.entity, subject.databaseEntity); }); if (this.softRemoveSubjects.length) this.softRemoveSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastAfterUpdateEvent(result, subject.metadata, subject.entity, subject.databaseEntity, subject.diffColumns, subject.diffRelations); }); if (this.recoverSubjects.length) this.recoverSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastAfterUpdateEvent(result, subject.metadata, subject.entity, subject.databaseEntity, subject.diffColumns, subject.diffRelations); }); return result; }; /** * Executes insert operations. */ SubjectExecutor.prototype.executeInsertOperations = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _a, groupedInsertSubjects, groupedInsertSubjectKeys, _loop_1, this_1, groupedInsertSubjectKeys_1, groupedInsertSubjectKeys_1_1, groupName, e_1_1; var e_1, _b; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_c) { switch (_c.label) { case 0: _a = Object(tslib_es6["e" /* __read */])(this.groupBulkSubjects(this.insertSubjects, "insert"), 2), groupedInsertSubjects = _a[0], groupedInsertSubjectKeys = _a[1]; _loop_1 = function (groupName) { var subjects, bulkInsertMaps, bulkInsertSubjects, singleInsertSubjects, manager, insertResult_1, insertResult_2, _loop_2, singleInsertSubjects_1, singleInsertSubjects_1_1, subject, e_2_1; var e_2, _d; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: subjects = groupedInsertSubjects[groupName]; bulkInsertMaps = []; bulkInsertSubjects = []; singleInsertSubjects = []; if (this_1.queryRunner.connection.driver instanceof BrowserDisabledDriversDummy["e" /* MongoDriver */]) { subjects.forEach(function (subject) { if (subject.metadata.createDateColumn && subject.entity) { subject.entity[subject.metadata.createDateColumn.databaseName] = new Date(); } if (subject.metadata.updateDateColumn && subject.entity) { subject.entity[subject.metadata.updateDateColumn.databaseName] = new Date(); } subject.createValueSetAndPopChangeMap(); bulkInsertSubjects.push(subject); bulkInsertMaps.push(subject.entity); }); } else if (this_1.queryRunner.connection.driver instanceof BrowserDisabledDriversDummy["j" /* OracleDriver */]) { subjects.forEach(function (subject) { singleInsertSubjects.push(subject); }); } else { subjects.forEach(function (subject) { // we do not insert in bulk in following cases: // - when there is no values in insert (only defaults are inserted), since we cannot use DEFAULT VALUES expression for multiple inserted rows // - when entity is a tree table, since tree tables require extra operation per each inserted row // - when oracle is used, since oracle's bulk insertion is very bad if (subject.changeMaps.length === 0 || subject.metadata.treeType || _this.queryRunner.connection.driver instanceof BrowserDisabledDriversDummy["j" /* OracleDriver */] || _this.queryRunner.connection.driver instanceof BrowserDisabledDriversDummy["l" /* SapDriver */]) { singleInsertSubjects.push(subject); } else { bulkInsertSubjects.push(subject); bulkInsertMaps.push(subject.createValueSetAndPopChangeMap()); } }); } if (!(this_1.queryRunner instanceof BrowserDisabledDriversDummy["g" /* MongoQueryRunner */])) return [3 /*break*/, 2]; manager = this_1.queryRunner.manager; return [4 /*yield*/, manager.insert(subjects[0].metadata.target, bulkInsertMaps)]; case 1: insertResult_1 = _e.sent(); subjects.forEach(function (subject, index) { subject.identifier = insertResult_1.identifiers[index]; subject.generatedMap = insertResult_1.generatedMaps[index]; subject.insertedValueSet = bulkInsertMaps[index]; }); return [3 /*break*/, 12]; case 2: if (!(bulkInsertMaps.length > 0)) return [3 /*break*/, 4]; return [4 /*yield*/, this_1.queryRunner .manager .createQueryBuilder() .insert() .into(subjects[0].metadata.target) .values(bulkInsertMaps) .updateEntity(this_1.options && this_1.options.reload === false ? false : true) .callListeners(false) .execute()]; case 3: insertResult_2 = _e.sent(); bulkInsertSubjects.forEach(function (subject, index) { subject.identifier = insertResult_2.identifiers[index]; subject.generatedMap = insertResult_2.generatedMaps[index]; subject.insertedValueSet = bulkInsertMaps[index]; }); _e.label = 4; case 4: if (!(singleInsertSubjects.length > 0)) return [3 /*break*/, 12]; _loop_2 = function (subject) { return Object(tslib_es6["d" /* __generator */])(this, function (_f) { switch (_f.label) { case 0: subject.insertedValueSet = subject.createValueSetAndPopChangeMap(); // important to have because query builder sets inserted values into it if (!(subject.metadata.treeType === "nested-set")) return [3 /*break*/, 2]; return [4 /*yield*/, new NestedSetSubjectExecutor_NestedSetSubjectExecutor(this_1.queryRunner).insert(subject)]; case 1: _f.sent(); _f.label = 2; case 2: return [4 /*yield*/, this_1.queryRunner .manager .createQueryBuilder() .insert() .into(subject.metadata.target) .values(subject.insertedValueSet) .updateEntity(this_1.options && this_1.options.reload === false ? false : true) .callListeners(false) .execute() .then(function (insertResult) { subject.identifier = insertResult.identifiers[0]; subject.generatedMap = insertResult.generatedMaps[0]; })]; case 3: _f.sent(); if (!(subject.metadata.treeType === "closure-table")) return [3 /*break*/, 5]; return [4 /*yield*/, new ClosureSubjectExecutor_ClosureSubjectExecutor(this_1.queryRunner).insert(subject)]; case 4: _f.sent(); return [3 /*break*/, 7]; case 5: if (!(subject.metadata.treeType === "materialized-path")) return [3 /*break*/, 7]; return [4 /*yield*/, new MaterializedPathSubjectExecutor_MaterializedPathSubjectExecutor(this_1.queryRunner).insert(subject)]; case 6: _f.sent(); _f.label = 7; case 7: return [2 /*return*/]; } }); }; _e.label = 5; case 5: _e.trys.push([5, 10, 11, 12]); singleInsertSubjects_1 = (e_2 = void 0, Object(tslib_es6["g" /* __values */])(singleInsertSubjects)), singleInsertSubjects_1_1 = singleInsertSubjects_1.next(); _e.label = 6; case 6: if (!!singleInsertSubjects_1_1.done) return [3 /*break*/, 9]; subject = singleInsertSubjects_1_1.value; return [5 /*yield**/, _loop_2(subject)]; case 7: _e.sent(); _e.label = 8; case 8: singleInsertSubjects_1_1 = singleInsertSubjects_1.next(); return [3 /*break*/, 6]; case 9: return [3 /*break*/, 12]; case 10: e_2_1 = _e.sent(); e_2 = { error: e_2_1 }; return [3 /*break*/, 12]; case 11: try { if (singleInsertSubjects_1_1 && !singleInsertSubjects_1_1.done && (_d = singleInsertSubjects_1.return)) _d.call(singleInsertSubjects_1); } finally { if (e_2) throw e_2.error; } return [7 /*endfinally*/]; case 12: subjects.forEach(function (subject) { if (subject.generatedMap) { subject.metadata.columns.forEach(function (column) { var value = column.getEntityValue(subject.generatedMap); if (value !== undefined && value !== null) { var preparedValue = _this.queryRunner.connection.driver.prepareHydratedValue(value, column); column.setEntityValue(subject.generatedMap, preparedValue); } }); } }); return [2 /*return*/]; } }); }; this_1 = this; _c.label = 1; case 1: _c.trys.push([1, 6, 7, 8]); groupedInsertSubjectKeys_1 = Object(tslib_es6["g" /* __values */])(groupedInsertSubjectKeys), groupedInsertSubjectKeys_1_1 = groupedInsertSubjectKeys_1.next(); _c.label = 2; case 2: if (!!groupedInsertSubjectKeys_1_1.done) return [3 /*break*/, 5]; groupName = groupedInsertSubjectKeys_1_1.value; return [5 /*yield**/, _loop_1(groupName)]; case 3: _c.sent(); _c.label = 4; case 4: groupedInsertSubjectKeys_1_1 = groupedInsertSubjectKeys_1.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_1_1 = _c.sent(); e_1 = { error: e_1_1 }; return [3 /*break*/, 8]; case 7: try { if (groupedInsertSubjectKeys_1_1 && !groupedInsertSubjectKeys_1_1.done && (_b = groupedInsertSubjectKeys_1.return)) _b.call(groupedInsertSubjectKeys_1); } finally { if (e_1) throw e_1.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; /** * Updates all given subjects in the database. */ SubjectExecutor.prototype.executeUpdateOperations = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, Promise.all(this.updateSubjects.map(function (subject) { return Object(tslib_es6["b" /* __awaiter */])(_this, void 0, void 0, function () { var partialEntity, manager, updateMap, updateQueryBuilder, updateResult, updateGeneratedMap_1; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (!subject.identifier) throw new SubjectWithoutIdentifierError_SubjectWithoutIdentifierError(subject); if (!(this.queryRunner instanceof BrowserDisabledDriversDummy["g" /* MongoQueryRunner */])) return [3 /*break*/, 2]; partialEntity = OrmUtils["a" /* OrmUtils */].mergeDeep({}, subject.entity); if (subject.metadata.objectIdColumn && subject.metadata.objectIdColumn.propertyName) { delete partialEntity[subject.metadata.objectIdColumn.propertyName]; } if (subject.metadata.createDateColumn && subject.metadata.createDateColumn.propertyName) { delete partialEntity[subject.metadata.createDateColumn.propertyName]; } if (subject.metadata.updateDateColumn && subject.metadata.updateDateColumn.propertyName) { partialEntity[subject.metadata.updateDateColumn.propertyName] = new Date(); } manager = this.queryRunner.manager; return [4 /*yield*/, manager.update(subject.metadata.target, subject.identifier, partialEntity)]; case 1: _a.sent(); return [3 /*break*/, 4]; case 2: updateMap = subject.createValueSetAndPopChangeMap(); updateQueryBuilder = this.queryRunner .manager .createQueryBuilder() .update(subject.metadata.target) .set(updateMap) .updateEntity(this.options && this.options.reload === false ? false : true) .callListeners(false); if (subject.entity) { updateQueryBuilder.whereEntity(subject.identifier); } else { // in this case identifier is just conditions object to update by updateQueryBuilder.where(subject.identifier); } return [4 /*yield*/, updateQueryBuilder.execute()]; case 3: updateResult = _a.sent(); updateGeneratedMap_1 = updateResult.generatedMaps[0]; if (updateGeneratedMap_1) { subject.metadata.columns.forEach(function (column) { var value = column.getEntityValue(updateGeneratedMap_1); if (value !== undefined && value !== null) { var preparedValue = _this.queryRunner.connection.driver.prepareHydratedValue(value, column); column.setEntityValue(updateGeneratedMap_1, preparedValue); } }); if (!subject.generatedMap) { subject.generatedMap = {}; } Object.assign(subject.generatedMap, updateGeneratedMap_1); } _a.label = 4; case 4: return [2 /*return*/]; } }); }); }))]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Removes all given subjects from the database. * * todo: we need to apply topological sort here as well */ SubjectExecutor.prototype.executeRemoveOperations = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _a, groupedRemoveSubjects, groupedRemoveSubjectKeys, groupedRemoveSubjectKeys_1, groupedRemoveSubjectKeys_1_1, groupName, subjects, deleteMaps, manager, e_3_1; var e_3, _b; return Object(tslib_es6["d" /* __generator */])(this, function (_c) { switch (_c.label) { case 0: _a = Object(tslib_es6["e" /* __read */])(this.groupBulkSubjects(this.removeSubjects, "delete"), 2), groupedRemoveSubjects = _a[0], groupedRemoveSubjectKeys = _a[1]; _c.label = 1; case 1: _c.trys.push([1, 8, 9, 10]); groupedRemoveSubjectKeys_1 = Object(tslib_es6["g" /* __values */])(groupedRemoveSubjectKeys), groupedRemoveSubjectKeys_1_1 = groupedRemoveSubjectKeys_1.next(); _c.label = 2; case 2: if (!!groupedRemoveSubjectKeys_1_1.done) return [3 /*break*/, 7]; groupName = groupedRemoveSubjectKeys_1_1.value; subjects = groupedRemoveSubjects[groupName]; deleteMaps = subjects.map(function (subject) { if (!subject.identifier) throw new SubjectWithoutIdentifierError_SubjectWithoutIdentifierError(subject); return subject.identifier; }); if (!(this.queryRunner instanceof BrowserDisabledDriversDummy["g" /* MongoQueryRunner */])) return [3 /*break*/, 4]; manager = this.queryRunner.manager; return [4 /*yield*/, manager.delete(subjects[0].metadata.target, deleteMaps)]; case 3: _c.sent(); return [3 /*break*/, 6]; case 4: // here we execute our deletion query // we don't need to specify entities and set update entity to true since the only thing query builder // will do for use is a primary keys deletion which is handled by us later once persistence is finished // also, we disable listeners because we call them on our own in persistence layer return [4 /*yield*/, this.queryRunner .manager .createQueryBuilder() .delete() .from(subjects[0].metadata.target) .where(deleteMaps) .callListeners(false) .execute()]; case 5: // here we execute our deletion query // we don't need to specify entities and set update entity to true since the only thing query builder // will do for use is a primary keys deletion which is handled by us later once persistence is finished // also, we disable listeners because we call them on our own in persistence layer _c.sent(); _c.label = 6; case 6: groupedRemoveSubjectKeys_1_1 = groupedRemoveSubjectKeys_1.next(); return [3 /*break*/, 2]; case 7: return [3 /*break*/, 10]; case 8: e_3_1 = _c.sent(); e_3 = { error: e_3_1 }; return [3 /*break*/, 10]; case 9: try { if (groupedRemoveSubjectKeys_1_1 && !groupedRemoveSubjectKeys_1_1.done && (_b = groupedRemoveSubjectKeys_1.return)) _b.call(groupedRemoveSubjectKeys_1); } finally { if (e_3) throw e_3.error; } return [7 /*endfinally*/]; case 10: return [2 /*return*/]; } }); }); }; /** * Soft-removes all given subjects in the database. */ SubjectExecutor.prototype.executeSoftRemoveOperations = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, Promise.all(this.softRemoveSubjects.map(function (subject) { return Object(tslib_es6["b" /* __awaiter */])(_this, void 0, void 0, function () { var partialEntity, manager, softDeleteQueryBuilder, updateResult; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (!subject.identifier) throw new SubjectWithoutIdentifierError_SubjectWithoutIdentifierError(subject); if (!(this.queryRunner instanceof BrowserDisabledDriversDummy["g" /* MongoQueryRunner */])) return [3 /*break*/, 2]; partialEntity = OrmUtils["a" /* OrmUtils */].mergeDeep({}, subject.entity); if (subject.metadata.objectIdColumn && subject.metadata.objectIdColumn.propertyName) { delete partialEntity[subject.metadata.objectIdColumn.propertyName]; } if (subject.metadata.createDateColumn && subject.metadata.createDateColumn.propertyName) { delete partialEntity[subject.metadata.createDateColumn.propertyName]; } if (subject.metadata.updateDateColumn && subject.metadata.updateDateColumn.propertyName) { partialEntity[subject.metadata.updateDateColumn.propertyName] = new Date(); } if (subject.metadata.deleteDateColumn && subject.metadata.deleteDateColumn.propertyName) { partialEntity[subject.metadata.deleteDateColumn.propertyName] = new Date(); } manager = this.queryRunner.manager; return [4 /*yield*/, manager.update(subject.metadata.target, subject.identifier, partialEntity)]; case 1: _a.sent(); return [3 /*break*/, 4]; case 2: softDeleteQueryBuilder = this.queryRunner .manager .createQueryBuilder() .softDelete() .from(subject.metadata.target) .updateEntity(this.options && this.options.reload === false ? false : true) .callListeners(false); if (subject.entity) { softDeleteQueryBuilder.whereEntity(subject.identifier); } else { // in this case identifier is just conditions object to update by softDeleteQueryBuilder.where(subject.identifier); } return [4 /*yield*/, softDeleteQueryBuilder.execute()]; case 3: updateResult = _a.sent(); subject.generatedMap = updateResult.generatedMaps[0]; if (subject.generatedMap) { subject.metadata.columns.forEach(function (column) { var value = column.getEntityValue(subject.generatedMap); if (value !== undefined && value !== null) { var preparedValue = _this.queryRunner.connection.driver.prepareHydratedValue(value, column); column.setEntityValue(subject.generatedMap, preparedValue); } }); } _a.label = 4; case 4: return [2 /*return*/]; } }); }); }))]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Recovers all given subjects in the database. */ SubjectExecutor.prototype.executeRecoverOperations = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, Promise.all(this.recoverSubjects.map(function (subject) { return Object(tslib_es6["b" /* __awaiter */])(_this, void 0, void 0, function () { var partialEntity, manager, softDeleteQueryBuilder, updateResult; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (!subject.identifier) throw new SubjectWithoutIdentifierError_SubjectWithoutIdentifierError(subject); if (!(this.queryRunner instanceof BrowserDisabledDriversDummy["g" /* MongoQueryRunner */])) return [3 /*break*/, 2]; partialEntity = OrmUtils["a" /* OrmUtils */].mergeDeep({}, subject.entity); if (subject.metadata.objectIdColumn && subject.metadata.objectIdColumn.propertyName) { delete partialEntity[subject.metadata.objectIdColumn.propertyName]; } if (subject.metadata.createDateColumn && subject.metadata.createDateColumn.propertyName) { delete partialEntity[subject.metadata.createDateColumn.propertyName]; } if (subject.metadata.updateDateColumn && subject.metadata.updateDateColumn.propertyName) { partialEntity[subject.metadata.updateDateColumn.propertyName] = new Date(); } if (subject.metadata.deleteDateColumn && subject.metadata.deleteDateColumn.propertyName) { partialEntity[subject.metadata.deleteDateColumn.propertyName] = null; } manager = this.queryRunner.manager; return [4 /*yield*/, manager.update(subject.metadata.target, subject.identifier, partialEntity)]; case 1: _a.sent(); return [3 /*break*/, 4]; case 2: softDeleteQueryBuilder = this.queryRunner .manager .createQueryBuilder() .restore() .from(subject.metadata.target) .updateEntity(this.options && this.options.reload === false ? false : true) .callListeners(false); if (subject.entity) { softDeleteQueryBuilder.whereEntity(subject.identifier); } else { // in this case identifier is just conditions object to update by softDeleteQueryBuilder.where(subject.identifier); } return [4 /*yield*/, softDeleteQueryBuilder.execute()]; case 3: updateResult = _a.sent(); subject.generatedMap = updateResult.generatedMaps[0]; if (subject.generatedMap) { subject.metadata.columns.forEach(function (column) { var value = column.getEntityValue(subject.generatedMap); if (value !== undefined && value !== null) { var preparedValue = _this.queryRunner.connection.driver.prepareHydratedValue(value, column); column.setEntityValue(subject.generatedMap, preparedValue); } }); } _a.label = 4; case 4: return [2 /*return*/]; } }); }); }))]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Updates all special columns of the saving entities (create date, update date, version, etc.). * Also updates nullable columns and columns with default values. */ SubjectExecutor.prototype.updateSpecialColumnsInPersistedEntities = function () { var _this = this; // update inserted entity properties if (this.insertSubjects.length) this.updateSpecialColumnsInInsertedAndUpdatedEntities(this.insertSubjects); // update updated entity properties if (this.updateSubjects.length) this.updateSpecialColumnsInInsertedAndUpdatedEntities(this.updateSubjects); // update soft-removed entity properties if (this.updateSubjects.length) this.updateSpecialColumnsInInsertedAndUpdatedEntities(this.softRemoveSubjects); // update recovered entity properties if (this.updateSubjects.length) this.updateSpecialColumnsInInsertedAndUpdatedEntities(this.recoverSubjects); // remove ids from the entities that were removed if (this.removeSubjects.length) { this.removeSubjects.forEach(function (subject) { if (!subject.entity) return; subject.metadata.primaryColumns.forEach(function (primaryColumn) { primaryColumn.setEntityValue(subject.entity, undefined); }); }); } // other post-persist updations this.allSubjects.forEach(function (subject) { if (!subject.entity) return; subject.metadata.relationIds.forEach(function (relationId) { relationId.setValue(subject.entity); }); // mongo _id remove if (_this.queryRunner instanceof BrowserDisabledDriversDummy["g" /* MongoQueryRunner */]) { if (subject.metadata.objectIdColumn && subject.metadata.objectIdColumn.databaseName && subject.metadata.objectIdColumn.databaseName !== subject.metadata.objectIdColumn.propertyName) { delete subject.entity[subject.metadata.objectIdColumn.databaseName]; } } }); }; /** * Updates all special columns of the saving entities (create date, update date, version, etc.). * Also updates nullable columns and columns with default values. */ SubjectExecutor.prototype.updateSpecialColumnsInInsertedAndUpdatedEntities = function (subjects) { var _this = this; subjects.forEach(function (subject) { if (!subject.entity) return; // set values to "null" for nullable columns that did not have values subject.metadata.columns.forEach(function (column) { // if table inheritance is used make sure this column is not child's column if (subject.metadata.childEntityMetadatas.length > 0 && subject.metadata.childEntityMetadatas.map(function (metadata) { return metadata.target; }).indexOf(column.target) !== -1) return; // entities does not have virtual columns if (column.isVirtual) return; // update nullable columns if (column.isNullable) { var columnValue = column.getEntityValue(subject.entity); if (columnValue === undefined) column.setEntityValue(subject.entity, null); } // update relational columns if (subject.updatedRelationMaps.length > 0) { subject.updatedRelationMaps.forEach(function (updatedRelationMap) { updatedRelationMap.relation.joinColumns.forEach(function (column) { if (column.isVirtual === true) return; column.setEntityValue(subject.entity, updatedRelationMap.value instanceof Object ? column.referencedColumn.getEntityValue(updatedRelationMap.value) : updatedRelationMap.value); }); }); } }); // merge into entity all generated values returned by a database if (subject.generatedMap) _this.queryRunner.manager.merge(subject.metadata.target, subject.entity, subject.generatedMap); }); }; /** * Groups subjects by metadata names (by tables) to make bulk insertions and deletions possible. * However there are some limitations with bulk insertions of data into tables with generated (increment) columns * in some drivers. Some drivers like mysql and sqlite does not support returning multiple generated columns * after insertion and can only return a single generated column value, that's why its not possible to do bulk insertion, * because it breaks insertion result's generatedMap and leads to problems when this subject is used in other subjects saves. * That's why we only support bulking in junction tables for those drivers. * * Other drivers like postgres and sql server support RETURNING / OUTPUT statement which allows to return generated * id for each inserted row, that's why bulk insertion is not limited to junction tables in there. */ SubjectExecutor.prototype.groupBulkSubjects = function (subjects, type) { var group = {}; var keys = []; var groupingAllowed = type === "delete" || this.queryRunner.connection.driver.isReturningSqlSupported(); subjects.forEach(function (subject, index) { var key = groupingAllowed || subject.metadata.isJunction ? subject.metadata.name : subject.metadata.name + "_" + index; if (!group[key]) { group[key] = [subject]; keys.push(key); } else { group[key].push(subject); } }); return [group, keys]; }; return SubjectExecutor; }()); //# sourceMappingURL=SubjectExecutor.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/CannotDetermineEntityError.js /** * Thrown when user tries to save/remove/etc. constructor-less object (object literal) instead of entity. */ var CannotDetermineEntityError_CannotDetermineEntityError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(CannotDetermineEntityError, _super); function CannotDetermineEntityError(operation) { var _this = _super.call(this) || this; _this.name = "CannotDetermineEntityError"; Object.setPrototypeOf(_this, CannotDetermineEntityError.prototype); _this.message = "Cannot " + operation + ", given value must be instance of entity class, instead object literal is given. Or you must specify an entity target to method call."; return _this; } return CannotDetermineEntityError; }(Error)); //# sourceMappingURL=CannotDetermineEntityError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/persistence/Subject.js /** * Subject is a subject of persistence. * It holds information about each entity that needs to be persisted: * - what entity should be persisted * - what is database representation of the persisted entity * - what entity metadata of the persisted entity * - what is allowed to with persisted entity (insert/update/remove) * * Having this collection of subjects we can perform database queries. */ var Subject_Subject = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function Subject(options) { var _a; /** * Subject identifier. * This identifier is not limited to table entity primary columns. * This can be entity id or ids as well as some unique entity properties, like name or title. * Insert / Update / Remove operation will be executed by a given identifier. */ this.identifier = undefined; /** * Copy of entity but with relational ids fulfilled. */ this.entityWithFulfilledIds = undefined; /** * Indicates if database entity was loaded. * No matter if it was found or not, it indicates the fact of loading. */ this.databaseEntityLoaded = false; /** * Changes needs to be applied in the database for the given subject. */ this.changeMaps = []; /** * Indicates if this subject can be inserted into the database. * This means that this subject either is newly persisted, either can be inserted by cascades. */ this.canBeInserted = false; /** * Indicates if this subject can be updated in the database. * This means that this subject either was persisted, either can be updated by cascades. */ this.canBeUpdated = false; /** * Indicates if this subject MUST be removed from the database. * This means that this subject either was removed, either was removed by cascades. */ this.mustBeRemoved = false; /** * Indicates if this subject can be soft-removed from the database. * This means that this subject either was soft-removed, either was soft-removed by cascades. */ this.canBeSoftRemoved = false; /** * Indicates if this subject can be recovered from the database. * This means that this subject either was recovered, either was recovered by cascades. */ this.canBeRecovered = false; /** * Relations updated by the change maps. */ this.updatedRelationMaps = []; /** * List of updated columns */ this.diffColumns = []; /** * List of updated relations */ this.diffRelations = []; this.metadata = options.metadata; this.entity = options.entity; this.parentSubject = options.parentSubject; if (options.canBeInserted !== undefined) this.canBeInserted = options.canBeInserted; if (options.canBeUpdated !== undefined) this.canBeUpdated = options.canBeUpdated; if (options.mustBeRemoved !== undefined) this.mustBeRemoved = options.mustBeRemoved; if (options.canBeSoftRemoved !== undefined) this.canBeSoftRemoved = options.canBeSoftRemoved; if (options.canBeRecovered !== undefined) this.canBeRecovered = options.canBeRecovered; if (options.identifier !== undefined) this.identifier = options.identifier; if (options.changeMaps !== undefined) (_a = this.changeMaps).push.apply(_a, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(options.changeMaps))); this.recompute(); } Object.defineProperty(Subject.prototype, "mustBeInserted", { // ------------------------------------------------------------------------- // Accessors // ------------------------------------------------------------------------- /** * Checks if this subject must be inserted into the database. * Subject can be inserted into the database if it is allowed to be inserted (explicitly persisted or by cascades) * and if it does not have database entity set. */ get: function () { return this.canBeInserted && !this.databaseEntity; }, enumerable: false, configurable: true }); Object.defineProperty(Subject.prototype, "mustBeUpdated", { /** * Checks if this subject must be updated into the database. * Subject can be updated in the database if it is allowed to be updated (explicitly persisted or by cascades) * and if it does have differentiated columns or relations. */ get: function () { return this.canBeUpdated && this.identifier && (this.databaseEntityLoaded === false || (this.databaseEntityLoaded && this.databaseEntity)) && // ((this.entity && this.databaseEntity) || (!this.entity && !this.databaseEntity)) && this.changeMaps.length > 0; }, enumerable: false, configurable: true }); Object.defineProperty(Subject.prototype, "mustBeSoftRemoved", { /** * Checks if this subject must be soft-removed into the database. * Subject can be updated in the database if it is allowed to be soft-removed (explicitly persisted or by cascades) * and if it does have differentiated columns or relations. */ get: function () { return this.canBeSoftRemoved && this.identifier && (this.databaseEntityLoaded === false || (this.databaseEntityLoaded && this.databaseEntity)); }, enumerable: false, configurable: true }); Object.defineProperty(Subject.prototype, "mustBeRecovered", { /** * Checks if this subject must be recovered into the database. * Subject can be updated in the database if it is allowed to be recovered (explicitly persisted or by cascades) * and if it does have differentiated columns or relations. */ get: function () { return this.canBeRecovered && this.identifier && (this.databaseEntityLoaded === false || (this.databaseEntityLoaded && this.databaseEntity)); }, enumerable: false, configurable: true }); // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Creates a value set needs to be inserted / updated in the database. * Value set is based on the entity and change maps of the subject. * Important note: this method pops data from this subject's change maps. */ Subject.prototype.createValueSetAndPopChangeMap = function () { var _this = this; var changeMapsWithoutValues = []; var changeSet = this.changeMaps.reduce(function (updateMap, changeMap) { var value = changeMap.value; if (value instanceof Subject) { // referenced columns can refer on values both which were just inserted and which were present in the model // if entity was just inserted valueSets must contain all values from the entity and values just inserted in the database // so, here we check if we have a value set then we simply use it as value to get our reference column values // otherwise simply use an entity which cannot be just inserted at the moment and have all necessary data value = value.insertedValueSet ? value.insertedValueSet : value.entity; } // value = changeMap.valueFactory ? changeMap.valueFactory(value) : changeMap.column.createValueMap(value); var valueMap; if (_this.metadata.isJunction && changeMap.column) { valueMap = changeMap.column.createValueMap(changeMap.column.referencedColumn.getEntityValue(value)); } else if (changeMap.column) { valueMap = changeMap.column.createValueMap(value); } else if (changeMap.relation) { // value can be a related object, for example: post.question = { id: 1 } // or value can be a null or direct relation id, e.g. post.question = 1 // if its a direction relation id then we just set it to the valueMap, // however if its an object then we need to extract its relation id map and set it to the valueMap if (value instanceof Object) { // get relation id, e.g. referenced column name and its value, // for example: { id: 1 } which then will be set to relation, e.g. post.category = { id: 1 } var relationId = changeMap.relation.getRelationIdMap(value); // but relation id can be empty, for example in the case when you insert a new post with category // and both post and category are newly inserted objects (by cascades) and in this case category will not have id // this means we need to insert post without question id and update post's questionId once question be inserted // that's why we create a new changeMap operation for future updation of the post entity if (relationId === undefined) { changeMapsWithoutValues.push(changeMap); _this.canBeUpdated = true; return updateMap; } valueMap = changeMap.relation.createValueMap(relationId); _this.updatedRelationMaps.push({ relation: changeMap.relation, value: relationId }); } else { // value can be "null" or direct relation id here valueMap = changeMap.relation.createValueMap(value); _this.updatedRelationMaps.push({ relation: changeMap.relation, value: value }); } } OrmUtils["a" /* OrmUtils */].mergeDeep(updateMap, valueMap); return updateMap; }, {}); this.changeMaps = changeMapsWithoutValues; return changeSet; }; /** * Recomputes entityWithFulfilledIds and identifier when entity changes. */ Subject.prototype.recompute = function () { var _this = this; if (this.entity) { this.entityWithFulfilledIds = Object.assign({}, this.entity); if (this.parentSubject) { this.metadata.primaryColumns.forEach(function (primaryColumn) { if (primaryColumn.relationMetadata && primaryColumn.relationMetadata.inverseEntityMetadata === _this.parentSubject.metadata) { var value = primaryColumn.referencedColumn.getEntityValue(_this.parentSubject.entity); primaryColumn.setEntityValue(_this.entityWithFulfilledIds, value); } }); } this.identifier = this.metadata.getEntityIdMap(this.entityWithFulfilledIds); } else if (this.databaseEntity) { this.identifier = this.metadata.getEntityIdMap(this.databaseEntity); } }; return Subject; }()); //# sourceMappingURL=Subject.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/metadata/EntityMetadata.js var EntityMetadata = __webpack_require__(35); // CONCATENATED MODULE: ./node_modules/typeorm/browser/persistence/subject-builder/OneToManySubjectBuilder.js /** * Builds operations needs to be executed for one-to-many relations of the given subjects. * * by example: post contains one-to-many relation with category in the property called "categories", e.g. * @OneToMany(type => Category, category => category.post) categories: Category[] * If user adds categories into the post and saves post we need to bind them. * This operation requires updation of category table since its owner of the relation and contains a join column. * * note: this class shares lot of things with OneToOneInverseSideOperationBuilder, so when you change this class * make sure to reflect changes there as well. */ var OneToManySubjectBuilder_OneToManySubjectBuilder = /** @class */ (function () { // --------------------------------------------------------------------- // Constructor // --------------------------------------------------------------------- function OneToManySubjectBuilder(subjects) { this.subjects = subjects; } // --------------------------------------------------------------------- // Public Methods // --------------------------------------------------------------------- /** * Builds all required operations. */ OneToManySubjectBuilder.prototype.build = function () { var _this = this; this.subjects.forEach(function (subject) { subject.metadata.oneToManyRelations.forEach(function (relation) { // skip relations for which persistence is disabled if (relation.persistenceEnabled === false) return; _this.buildForSubjectRelation(subject, relation); }); }); }; // --------------------------------------------------------------------- // Protected Methods // --------------------------------------------------------------------- /** * Builds operations for a given subject and relation. * * by example: subject is "post" entity we are saving here and relation is "categories" inside it here. */ OneToManySubjectBuilder.prototype.buildForSubjectRelation = function (subject, relation) { var _this = this; // prepare objects (relation id maps) for the database entity // note: subject.databaseEntity contains relations with loaded relation ids only // by example: since subject is a post, we are expecting to get all post's categories saved in the database here, // particularly their relation ids, e.g. category ids stored in the database var relatedEntityDatabaseRelationIds = []; if (subject.databaseEntity) { // related entities in the database can exist only if this entity (post) is saved relatedEntityDatabaseRelationIds = relation.getEntityValue(subject.databaseEntity); } // get related entities of persisted entity // by example: get categories from the passed to persist post entity var relatedEntities = relation.getEntityValue(subject.entity); if (relatedEntities === null) // we treat relations set to null as removed, so we don't skip it relatedEntities = []; if (relatedEntities === undefined) // if relation is undefined then nothing to update return; // extract only relation ids from the related entities, since we only need them for comparision // by example: extract from categories only relation ids (category id, or let's say category title, depend on join column options) var relatedPersistedEntityRelationIds = []; relatedEntities.forEach(function (relatedEntity) { var relationIdMap = relation.inverseEntityMetadata.getEntityIdMap(relatedEntity); // by example: relationIdMap is category.id map here, e.g. { id: ... } // try to find a subject of this related entity, maybe it was loaded or was marked for persistence var relatedEntitySubject = _this.subjects.find(function (subject) { return subject.entity === relatedEntity; }); // if subject with entity was found take subject identifier as relation id map since it may contain extra properties resolved if (relatedEntitySubject) relationIdMap = relatedEntitySubject.identifier; // if relationIdMap is undefined then it means user binds object which is not saved in the database yet // by example: if post contains categories which does not have ids yet (because they are new) // it means they are always newly inserted and relation update operation always must be created for them // it does not make sense to perform difference operation for them for both add and remove actions if (!relationIdMap) { // we decided to remove this error because it brings complications when saving object with non-saved entities // if (!relatedEntitySubject) // throw new Error(`One-to-many relation "${relation.entityMetadata.name}.${relation.propertyPath}" contains ` + // `entities which do not exist in the database yet, thus they cannot be bind in the database. ` + // `Please setup cascade insertion or save entities before binding it.`); if (!relatedEntitySubject) return; // okay, so related subject exist and its marked for insertion, then add a new change map // by example: this will tell category to insert into its post relation our post we are working with // relatedEntitySubject is newly inserted CategorySubject // relation.inverseRelation is ManyToOne relation inside Category // subject is Post needs to be inserted into Category relatedEntitySubject.changeMaps.push({ relation: relation.inverseRelation, value: subject }); return; } // check if this binding really exist in the database // by example: find our category if its already bind in the database var relationIdInDatabaseSubjectRelation = relatedEntityDatabaseRelationIds.find(function (relatedDatabaseEntityRelationId) { return OrmUtils["a" /* OrmUtils */].compareIds(relationIdMap, relatedDatabaseEntityRelationId); }); // if relationIdMap DOES NOT exist in the subject's relation in the database it means its a new relation and we need to "bind" them // by example: this will tell category to insert into its post relation our post we are working with // relatedEntitySubject is newly inserted CategorySubject // relation.inverseRelation is ManyToOne relation inside Category // subject is Post needs to be inserted into Category if (!relationIdInDatabaseSubjectRelation) { // if there is no relatedEntitySubject then it means "category" wasn't persisted, // but since we are going to update "category" table (since its an owning side of relation with join column) // we create a new subject here: if (!relatedEntitySubject) { relatedEntitySubject = new Subject_Subject({ metadata: relation.inverseEntityMetadata, parentSubject: subject, canBeUpdated: true, identifier: relationIdMap }); _this.subjects.push(relatedEntitySubject); } relatedEntitySubject.changeMaps.push({ relation: relation.inverseRelation, value: subject }); } // if related entity has relation id then we add it to the list of relation ids // this list will be used later to compare with database relation ids to find a difference // what exist in this array and does not exist in the database are newly inserted relations // what does not exist in this array, but exist in the database are removed relations // removed relations are set to null from inverse side of relation relatedPersistedEntityRelationIds.push(relationIdMap); }); // find what related entities were added and what were removed based on difference between what we save and what database has EntityMetadata["a" /* EntityMetadata */] .difference(relatedEntityDatabaseRelationIds, relatedPersistedEntityRelationIds) .forEach(function (removedRelatedEntityRelationId) { // todo: probably we can improve this in the future by finding entity with column those values, // todo: maybe it was already in persistence process. This is possible due to unique requirements of join columns // we create a new subject which operations will be executed in subject operation executor var removedRelatedEntitySubject = new Subject_Subject({ metadata: relation.inverseEntityMetadata, parentSubject: subject, identifier: removedRelatedEntityRelationId, }); if (!relation.inverseRelation || relation.inverseRelation.orphanedRowAction === "nullify") { removedRelatedEntitySubject.canBeUpdated = true; removedRelatedEntitySubject.changeMaps = [{ relation: relation.inverseRelation, value: null }]; } else if (relation.inverseRelation.orphanedRowAction === "delete") { removedRelatedEntitySubject.mustBeRemoved = true; } _this.subjects.push(removedRelatedEntitySubject); }); }; return OneToManySubjectBuilder; }()); //# sourceMappingURL=OneToManySubjectBuilder.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js /** * Builds operations needs to be executed for one-to-one non-owner relations of the given subjects. * * by example: post contains one-to-one non-owner relation with category in the property called "category", e.g. * @OneToOne(type => Category, category => category.post) category: Category * If user sets a category into the post and saves post we need to bind them. * This operation requires updation of category table since its owner of the relation and contains a join column. * * note: this class shares lot of things with OneToManyUpdateBuilder, so when you change this class * make sure to reflect changes there as well. */ var OneToOneInverseSideSubjectBuilder_OneToOneInverseSideSubjectBuilder = /** @class */ (function () { // --------------------------------------------------------------------- // Constructor // --------------------------------------------------------------------- function OneToOneInverseSideSubjectBuilder(subjects) { this.subjects = subjects; } // --------------------------------------------------------------------- // Public Methods // --------------------------------------------------------------------- /** * Builds all required operations. */ OneToOneInverseSideSubjectBuilder.prototype.build = function () { var _this = this; this.subjects.forEach(function (subject) { subject.metadata.oneToOneRelations.forEach(function (relation) { // we don't need owning relations, this operation is only for inverse side of one-to-one relations // skip relations for which persistence is disabled if (relation.isOwning || relation.persistenceEnabled === false) return; _this.buildForSubjectRelation(subject, relation); }); }); }; // --------------------------------------------------------------------- // Protected Methods // --------------------------------------------------------------------- /** * Builds operations for a given subject and relation. * * by example: subject is "post" entity we are saving here and relation is "category" inside it here. */ OneToOneInverseSideSubjectBuilder.prototype.buildForSubjectRelation = function (subject, relation) { // prepare objects (relation id map) for the database entity // note: subject.databaseEntity contains relation with loaded relation id only (id map) // by example: since subject is a post, we are expecting to get post's category saved in the database here, // particularly its relation id, e.g. category id stored in the database var relatedEntityDatabaseRelationId = undefined; if (subject.databaseEntity) // related entity in the database can exist only if this entity (post) is saved relatedEntityDatabaseRelationId = relation.getEntityValue(subject.databaseEntity); // get related entities of persisted entity // by example: get category from the passed to persist post entity var relatedEntity = relation.getEntityValue(subject.entity); // by example: relatedEntity is a category here if (relatedEntity === undefined) // if relation is undefined then nothing to update return; // if related entity is null then we need to check if there a bind in the database and unset it // if there is no bind in the entity then we don't need to do anything // by example: if post.category = null and category has this post in the database then we unset it if (relatedEntity === null) { // it makes sense to update database only there is a previously set value in the database if (relatedEntityDatabaseRelationId) { // todo: probably we can improve this in the future by finding entity with column those values, // todo: maybe it was already in persistence process. This is possible due to unique requirements of join columns // we create a new subject which operations will be executed in subject operation executor var removedRelatedEntitySubject = new Subject_Subject({ metadata: relation.inverseEntityMetadata, parentSubject: subject, canBeUpdated: true, identifier: relatedEntityDatabaseRelationId, changeMaps: [{ relation: relation.inverseRelation, value: null }] }); this.subjects.push(removedRelatedEntitySubject); } return; } // else means entity is bind in the database // extract only relation id from the related entities, since we only need it for comparision // by example: extract from category only relation id (category id, or let's say category title, depend on join column options) var relationIdMap = relation.inverseEntityMetadata.getEntityIdMap(relatedEntity); // by example: relationIdMap is category.id map here, e.g. { id: ... } // try to find a subject of this related entity, maybe it was loaded or was marked for persistence var relatedEntitySubject = this.subjects.find(function (operateSubject) { return !!operateSubject.entity && operateSubject.entity === relatedEntity; }); // if subject with entity was found take subject identifier as relation id map since it may contain extra properties resolved if (relatedEntitySubject) relationIdMap = relatedEntitySubject.identifier; // if relationIdMap is undefined then it means user binds object which is not saved in the database yet // by example: if post contains category which does not have id(s) yet (because its a new category) // it means its always newly inserted and relation update operation always must be created for it // it does not make sense to perform difference operation for it for both add and remove actions if (!relationIdMap) { // we decided to remove this error because it brings complications when saving object with non-saved entities // if related entity does not have a subject then it means user tries to bind entity which wasn't saved // in this persistence because he didn't pass this entity for save or he did not set cascades // but without entity being inserted we cannot bind it in the relation operation, so we throw an exception here // if (!relatedEntitySubject) // throw new Error(`One-to-one inverse relation "${relation.entityMetadata.name}.${relation.propertyPath}" contains ` + // `entity which does not exist in the database yet, thus cannot be bind in the database. ` + // `Please setup cascade insertion or save entity before binding it.`); if (!relatedEntitySubject) return; // okay, so related subject exist and its marked for insertion, then add a new change map // by example: this will tell category to insert into its post relation our post we are working with // relatedEntitySubject is newly inserted CategorySubject // relation.inverseRelation is OneToOne owner relation inside Category // subject is Post needs to be inserted into Category relatedEntitySubject.changeMaps.push({ relation: relation.inverseRelation, value: subject }); } // check if this binding really exist in the database // by example: find our post if its already bind to category in the database and its not equal to what user tries to set var areRelatedIdEqualWithDatabase = relatedEntityDatabaseRelationId && OrmUtils["a" /* OrmUtils */].compareIds(relationIdMap, relatedEntityDatabaseRelationId); // if they aren't equal it means its a new relation and we need to "bind" them // by example: this will tell category to insert into its post relation our post we are working with // relatedEntitySubject is newly inserted CategorySubject // relation.inverseRelation is ManyToOne relation inside Category // subject is Post needs to be inserted into Category if (!areRelatedIdEqualWithDatabase) { // if there is no relatedEntitySubject then it means "category" wasn't persisted, // but since we are going to update "category" table (since its an owning side of relation with join column) // we create a new subject here: if (!relatedEntitySubject) { relatedEntitySubject = new Subject_Subject({ metadata: relation.inverseEntityMetadata, canBeUpdated: true, identifier: relationIdMap }); this.subjects.push(relatedEntitySubject); } relatedEntitySubject.changeMaps.push({ relation: relation.inverseRelation, value: subject }); } }; return OneToOneInverseSideSubjectBuilder; }()); //# sourceMappingURL=OneToOneInverseSideSubjectBuilder.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/persistence/subject-builder/ManyToManySubjectBuilder.js /** * Builds operations needs to be executed for many-to-many relations of the given subjects. * * by example: post contains owner many-to-many relation with categories in the property called "categories", e.g. * @ManyToMany(type => Category, category => category.posts) categories: Category[] * If user adds categories into the post and saves post we need to bind them. * This operation requires updation of junction table. */ var ManyToManySubjectBuilder_ManyToManySubjectBuilder = /** @class */ (function () { // --------------------------------------------------------------------- // Constructor // --------------------------------------------------------------------- function ManyToManySubjectBuilder(subjects) { this.subjects = subjects; } // --------------------------------------------------------------------- // Public Methods // --------------------------------------------------------------------- /** * Builds operations for any changes in the many-to-many relations of the subjects. */ ManyToManySubjectBuilder.prototype.build = function () { var _this = this; this.subjects.forEach(function (subject) { // if subject doesn't have entity then no need to find something that should be inserted or removed if (!subject.entity) return; // go through all persistence enabled many-to-many relations and build subject operations for them subject.metadata.manyToManyRelations.forEach(function (relation) { // skip relations for which persistence is disabled if (relation.persistenceEnabled === false) return; _this.buildForSubjectRelation(subject, relation); }); }); }; /** * Builds operations for removal of all many-to-many records of all many-to-many relations of the given subject. */ ManyToManySubjectBuilder.prototype.buildForAllRemoval = function (subject) { var _this = this; // if subject does not have a database entity then it means it does not exist in the database // if it does not exist in the database then we don't have anything for deletion if (!subject.databaseEntity) return; // go through all persistence enabled many-to-many relations and build subject operations for them subject.metadata.manyToManyRelations.forEach(function (relation) { // skip relations for which persistence is disabled if (relation.persistenceEnabled === false) return; // get all related entities (actually related entity relation ids) bind to this subject entity // by example: returns category ids of the post we are currently working with (subject.entity is post) var relatedEntityRelationIdsInDatabase = relation.getEntityValue(subject.databaseEntity); // go through all related entities and create a new junction subject for each row in junction table relatedEntityRelationIdsInDatabase.forEach(function (relationId) { var junctionSubject = new Subject_Subject({ metadata: relation.junctionEntityMetadata, parentSubject: subject, mustBeRemoved: true, identifier: _this.buildJunctionIdentifier(subject, relation, relationId) }); // we use unshift because we need to perform those operations before post deletion is performed // but post deletion was already added as an subject // this is temporary solution, later we need to implement proper sorting of subjects before their removal _this.subjects.push(junctionSubject); }); }); }; // --------------------------------------------------------------------- // Protected Methods // --------------------------------------------------------------------- /** * Builds operations for a given subject and relation. * * by example: subject is "post" entity we are saving here and relation is "categories" inside it here. */ ManyToManySubjectBuilder.prototype.buildForSubjectRelation = function (subject, relation) { var _this = this; // load from db all relation ids of inverse entities that are "bind" to the subject's entity // this way we gonna check which relation ids are missing and which are new (e.g. inserted or removed) var databaseRelatedEntityIds = []; // if subject don't have database entity it means all related entities in persisted subject are new and must be bind // and we don't need to remove something that is not exist if (subject.databaseEntity) databaseRelatedEntityIds = relation.getEntityValue(subject.databaseEntity); // extract entity's relation value // by example: categories inside our post (subject.entity is post) var relatedEntities = relation.getEntityValue(subject.entity); if (relatedEntities === null) // if value set to null its equal if we set it to empty array - all items must be removed from the database relatedEntities = []; if (!(Array.isArray(relatedEntities))) return; // from all related entities find only those which aren't found in the db - for them we will create operation subjects relatedEntities.forEach(function (relatedEntity) { // todo: check how it will work for entities which are saved by cascades, but aren't saved in the database yet // extract only relation id from the related entities, since we only need it for comparision // by example: extract from category only relation id (category id, or let's say category title, depend on join column options) var relatedEntityRelationIdMap = relation.inverseEntityMetadata.getEntityIdMap(relatedEntity); // try to find a subject of this related entity, maybe it was loaded or was marked for persistence var relatedEntitySubject = _this.subjects.find(function (subject) { return subject.entity === relatedEntity; }); // if subject with entity was found take subject identifier as relation id map since it may contain extra properties resolved if (relatedEntitySubject) relatedEntityRelationIdMap = relatedEntitySubject.identifier; // if related entity relation id map is empty it means related entity is newly persisted if (!relatedEntityRelationIdMap) { // we decided to remove this error because it brings complications when saving object with non-saved entities // if related entity does not have a subject then it means user tries to bind entity which wasn't saved // in this persistence because he didn't pass this entity for save or he did not set cascades // but without entity being inserted we cannot bind it in the relation operation, so we throw an exception here // we decided to remove this error because it brings complications when saving object with non-saved entities // if (!relatedEntitySubject) // throw new Error(`Many-to-many relation "${relation.entityMetadata.name}.${relation.propertyPath}" contains ` + // `entities which do not exist in the database yet, thus they cannot be bind in the database. ` + // `Please setup cascade insertion or save entities before binding it.`); if (!relatedEntitySubject) return; } // try to find related entity in the database // by example: find post's category in the database post's categories var relatedEntityExistInDatabase = databaseRelatedEntityIds.find(function (databaseRelatedEntityRelationId) { return OrmUtils["a" /* OrmUtils */].compareIds(databaseRelatedEntityRelationId, relatedEntityRelationIdMap); }); // if entity is found then don't do anything - it means binding in junction table already exist, we don't need to add anything if (relatedEntityExistInDatabase) return; var ownerValue = relation.isOwning ? subject : (relatedEntitySubject || relatedEntity); // by example: ownerEntityMap is post from subject here var inverseValue = relation.isOwning ? (relatedEntitySubject || relatedEntity) : subject; // by example: inverseEntityMap is category from categories array here // create a new subject for insert operation of junction rows var junctionSubject = new Subject_Subject({ metadata: relation.junctionEntityMetadata, parentSubject: subject, canBeInserted: true, }); _this.subjects.push(junctionSubject); relation.junctionEntityMetadata.ownerColumns.forEach(function (column) { junctionSubject.changeMaps.push({ column: column, value: ownerValue, // valueFactory: (value) => column.referencedColumn!.getEntityValue(value) // column.referencedColumn!.getEntityValue(ownerEntityMap), }); }); relation.junctionEntityMetadata.inverseColumns.forEach(function (column) { junctionSubject.changeMaps.push({ column: column, value: inverseValue, // valueFactory: (value) => column.referencedColumn!.getEntityValue(value) // column.referencedColumn!.getEntityValue(inverseEntityMap), }); }); }); // get all inverse entities relation ids that are "bind" to the currently persisted entity var changedInverseEntityRelationIds = []; relatedEntities.forEach(function (relatedEntity) { // relation.inverseEntityMetadata!.getEntityIdMap(relatedEntity) var relatedEntityRelationIdMap = relation.inverseEntityMetadata.getEntityIdMap(relatedEntity); // try to find a subject of this related entity, maybe it was loaded or was marked for persistence var relatedEntitySubject = _this.subjects.find(function (subject) { return subject.entity === relatedEntity; }); // if subject with entity was found take subject identifier as relation id map since it may contain extra properties resolved if (relatedEntitySubject) relatedEntityRelationIdMap = relatedEntitySubject.identifier; if (relatedEntityRelationIdMap !== undefined && relatedEntityRelationIdMap !== null) changedInverseEntityRelationIds.push(relatedEntityRelationIdMap); }); // now from all entities in the persisted entity find only those which aren't found in the db var removedJunctionEntityIds = databaseRelatedEntityIds.filter(function (existRelationId) { return !changedInverseEntityRelationIds.find(function (changedRelationId) { return OrmUtils["a" /* OrmUtils */].compareIds(changedRelationId, existRelationId); }); }); // finally create a new junction remove operations for missing related entities removedJunctionEntityIds.forEach(function (removedEntityRelationId) { var junctionSubject = new Subject_Subject({ metadata: relation.junctionEntityMetadata, parentSubject: subject, mustBeRemoved: true, identifier: _this.buildJunctionIdentifier(subject, relation, removedEntityRelationId) }); _this.subjects.push(junctionSubject); }); }; /** * Creates identifiers for junction table. * Example: { postId: 1, categoryId: 2 } */ ManyToManySubjectBuilder.prototype.buildJunctionIdentifier = function (subject, relation, relationId) { var ownerEntityMap = relation.isOwning ? subject.entity : relationId; var inverseEntityMap = relation.isOwning ? relationId : subject.entity; var identifier = {}; relation.junctionEntityMetadata.ownerColumns.forEach(function (column) { OrmUtils["a" /* OrmUtils */].mergeDeep(identifier, column.createValueMap(column.referencedColumn.getEntityValue(ownerEntityMap))); }); relation.junctionEntityMetadata.inverseColumns.forEach(function (column) { OrmUtils["a" /* OrmUtils */].mergeDeep(identifier, column.createValueMap(column.referencedColumn.getEntityValue(inverseEntityMap))); }); return identifier; }; return ManyToManySubjectBuilder; }()); //# sourceMappingURL=ManyToManySubjectBuilder.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/persistence/SubjectDatabaseEntityLoader.js /** * Loads database entities for all operate subjects which do not have database entity set. * All entities that we load database entities for are marked as updated or inserted. * To understand which of them really needs to be inserted or updated we need to load * their original representations from the database. */ var SubjectDatabaseEntityLoader_SubjectDatabaseEntityLoader = /** @class */ (function () { // --------------------------------------------------------------------- // Constructor // --------------------------------------------------------------------- function SubjectDatabaseEntityLoader(queryRunner, subjects) { this.queryRunner = queryRunner; this.subjects = subjects; } // --------------------------------------------------------------------- // Public Methods // --------------------------------------------------------------------- /** * Loads database entities for all subjects. * * loadAllRelations flag is used to load all relation ids of the object, no matter if they present in subject entity or not. * This option is used for deletion. */ SubjectDatabaseEntityLoader.prototype.load = function (operationType) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var promises; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: promises = this.groupByEntityTargets().map(function (subjectGroup) { return Object(tslib_es6["b" /* __awaiter */])(_this, void 0, void 0, function () { var allIds, allSubjects, loadRelationPropertyPaths, findOptions, entities, allSubjects_1, allSubjects_1_1, subject; var e_1, _a; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: allIds = []; allSubjects = []; subjectGroup.subjects.forEach(function (subject) { // we don't load if subject already has a database entity loaded if (subject.databaseEntity || !subject.identifier) return; allIds.push(subject.identifier); allSubjects.push(subject); }); // if there no ids found (means all entities are new and have generated ids) - then nothing to load there if (!allIds.length) return [2 /*return*/]; loadRelationPropertyPaths = []; // for the save, soft-remove and recover operation // extract all property paths of the relations we need to load relation ids for // this is for optimization purpose - this way we don't load relation ids for entities // whose relations are undefined, and since they are undefined its really pointless to // load something for them, since undefined properties are skipped by the orm if (operationType === "save" || operationType === "soft-remove" || operationType === "recover") { subjectGroup.subjects.forEach(function (subject) { // gets all relation property paths that exist in the persisted entity. subject.metadata.relations.forEach(function (relation) { var value = relation.getEntityValue(subject.entityWithFulfilledIds); if (value === undefined) return; if (loadRelationPropertyPaths.indexOf(relation.propertyPath) === -1) loadRelationPropertyPaths.push(relation.propertyPath); }); }); } else { // remove // for remove operation // we only need to load junction relation ids since only they are removed by cascades loadRelationPropertyPaths.push.apply(// remove loadRelationPropertyPaths, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(subjectGroup.subjects[0].metadata.manyToManyRelations.map(function (relation) { return relation.propertyPath; })))); } findOptions = { loadEagerRelations: false, loadRelationIds: { relations: loadRelationPropertyPaths, disableMixedMap: true }, // the soft-deleted entities should be included in the loaded entities for recover operation withDeleted: true }; return [4 /*yield*/, this.queryRunner.manager .getRepository(subjectGroup.target) .findByIds(allIds, findOptions)]; case 1: entities = _b.sent(); // now when we have entities we need to find subject of each entity // and insert that entity into database entity of the found subjects entities.forEach(function (entity) { var subjects = _this.findByPersistEntityLike(subjectGroup.target, entity); subjects.forEach(function (subject) { subject.databaseEntity = entity; if (!subject.identifier) subject.identifier = subject.metadata.hasAllPrimaryKeys(entity) ? subject.metadata.getEntityIdMap(entity) : undefined; }); }); try { // this way we tell what subjects we tried to load database entities of for (allSubjects_1 = Object(tslib_es6["g" /* __values */])(allSubjects), allSubjects_1_1 = allSubjects_1.next(); !allSubjects_1_1.done; allSubjects_1_1 = allSubjects_1.next()) { subject = allSubjects_1_1.value; subject.databaseEntityLoaded = true; } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (allSubjects_1_1 && !allSubjects_1_1.done && (_a = allSubjects_1.return)) _a.call(allSubjects_1); } finally { if (e_1) throw e_1.error; } } return [2 /*return*/]; } }); }); }); return [4 /*yield*/, Promise.all(promises)]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; // --------------------------------------------------------------------- // Protected Methods // --------------------------------------------------------------------- /** * Finds subjects where entity like given subject's entity. * Comparision made by entity id. * Multiple subjects may be returned if duplicates are present in the subject array. * This will likely result in the same row being updated multiple times during a transaction. */ SubjectDatabaseEntityLoader.prototype.findByPersistEntityLike = function (entityTarget, entity) { return this.subjects.filter(function (subject) { if (!subject.entity) return false; if (subject.entity === entity) return true; return subject.metadata.target === entityTarget && subject.metadata.compareEntities(subject.entityWithFulfilledIds, entity); }); }; /** * Groups given Subject objects into groups separated by entity targets. */ SubjectDatabaseEntityLoader.prototype.groupByEntityTargets = function () { return this.subjects.reduce(function (groups, operatedEntity) { var group = groups.find(function (group) { return group.target === operatedEntity.metadata.target; }); if (!group) { group = { target: operatedEntity.metadata.target, subjects: [] }; groups.push(group); } group.subjects.push(operatedEntity); return groups; }, []); }; return SubjectDatabaseEntityLoader; }()); //# sourceMappingURL=SubjectDatabaseEntityLoader.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/persistence/subject-builder/CascadesSubjectBuilder.js /** * Finds all cascade operations of the given subject and cascade operations of the found cascaded subjects, * e.g. builds a cascade tree and creates a subjects for them. */ var CascadesSubjectBuilder_CascadesSubjectBuilder = /** @class */ (function () { // --------------------------------------------------------------------- // Constructor // --------------------------------------------------------------------- function CascadesSubjectBuilder(allSubjects) { this.allSubjects = allSubjects; } // --------------------------------------------------------------------- // Public Methods // --------------------------------------------------------------------- /** * Builds a cascade subjects tree and pushes them in into the given array of subjects. */ CascadesSubjectBuilder.prototype.build = function (subject, operationType) { var _this = this; subject.metadata .extractRelationValuesFromEntity(subject.entity, subject.metadata.relations) // todo: we can create EntityMetadata.cascadeRelations .forEach(function (_a) { var _b = Object(tslib_es6["e" /* __read */])(_a, 3), relation = _b[0], relationEntity = _b[1], relationEntityMetadata = _b[2]; // we need only defined values and insert, update, soft-remove or recover cascades of the relation should be set if (relationEntity === undefined || relationEntity === null || (!relation.isCascadeInsert && !relation.isCascadeUpdate && !relation.isCascadeSoftRemove && !relation.isCascadeRecover)) return; // if relation entity is just a relation id set (for example post.tag = 1) // then we don't really need to check cascades since there is no object to insert or update if (!(relationEntity instanceof Object)) return; // if we already has this entity in list of operated subjects then skip it to avoid recursion var alreadyExistRelationEntitySubject = _this.findByPersistEntityLike(relationEntityMetadata.target, relationEntity); if (alreadyExistRelationEntitySubject) { if (alreadyExistRelationEntitySubject.canBeInserted === false) // if its not marked for insertion yet alreadyExistRelationEntitySubject.canBeInserted = relation.isCascadeInsert === true && operationType === "save"; if (alreadyExistRelationEntitySubject.canBeUpdated === false) // if its not marked for update yet alreadyExistRelationEntitySubject.canBeUpdated = relation.isCascadeUpdate === true && operationType === "save"; if (alreadyExistRelationEntitySubject.canBeSoftRemoved === false) // if its not marked for removal yet alreadyExistRelationEntitySubject.canBeSoftRemoved = relation.isCascadeSoftRemove === true && operationType === "soft-remove"; if (alreadyExistRelationEntitySubject.canBeRecovered === false) // if its not marked for recovery yet alreadyExistRelationEntitySubject.canBeRecovered = relation.isCascadeRecover === true && operationType === "recover"; return; } // mark subject with what we can do with it // and add to the array of subjects to load only if there is no same entity there already var relationEntitySubject = new Subject_Subject({ metadata: relationEntityMetadata, parentSubject: subject, entity: relationEntity, canBeInserted: relation.isCascadeInsert === true && operationType === "save", canBeUpdated: relation.isCascadeUpdate === true && operationType === "save", canBeSoftRemoved: relation.isCascadeSoftRemove === true && operationType === "soft-remove", canBeRecovered: relation.isCascadeRecover === true && operationType === "recover" }); _this.allSubjects.push(relationEntitySubject); // go recursively and find other entities we need to insert/update _this.build(relationEntitySubject, operationType); }); }; // --------------------------------------------------------------------- // Protected Methods // --------------------------------------------------------------------- /** * Finds subject where entity like given subject's entity. * Comparision made by entity id. */ CascadesSubjectBuilder.prototype.findByPersistEntityLike = function (entityTarget, entity) { return this.allSubjects.find(function (subject) { if (!subject.entity) return false; if (subject.entity === entity) return true; return subject.metadata.target === entityTarget && subject.metadata.compareEntities(subject.entityWithFulfilledIds, entity); }); }; return CascadesSubjectBuilder; }()); //# sourceMappingURL=CascadesSubjectBuilder.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/persistence/EntityPersistExecutor.js /** * Persists a single entity or multiple entities - saves or removes them. */ var EntityPersistExecutor_EntityPersistExecutor = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function EntityPersistExecutor(connection, queryRunner, mode, target, entity, options) { this.connection = connection; this.queryRunner = queryRunner; this.mode = mode; this.target = target; this.entity = entity; this.options = options; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Executes persistence operation ob given entity or entities. */ EntityPersistExecutor.prototype.execute = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var queryRunner, entities, entitiesInChunks, executors, executorsWithExecutableOperations, isTransactionStartedByUs, executorsWithExecutableOperations_1, executorsWithExecutableOperations_1_1, executor, e_1_1, error_1, rollbackError_1; var e_1, _a; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: // check if entity we are going to save is valid and is an object if (!this.entity || typeof this.entity !== "object") return [2 /*return*/, Promise.reject(new MustBeEntityError_MustBeEntityError(this.mode, this.entity))]; // we MUST call "fake" resolve here to make sure all properties of lazily loaded relations are resolved return [4 /*yield*/, Promise.resolve()]; case 1: // we MUST call "fake" resolve here to make sure all properties of lazily loaded relations are resolved _b.sent(); queryRunner = this.queryRunner || this.connection.createQueryRunner(); // save data in the query runner - this is useful functionality to share data from outside of the world // with third classes - like subscribers and listener methods if (this.options && this.options.data) queryRunner.data = this.options.data; _b.label = 2; case 2: _b.trys.push([2, , 22, 25]); entities = Array.isArray(this.entity) ? this.entity : [this.entity]; entitiesInChunks = this.options && this.options.chunk && this.options.chunk > 0 ? OrmUtils["a" /* OrmUtils */].chunk(entities, this.options.chunk) : [entities]; return [4 /*yield*/, Promise.all(entitiesInChunks.map(function (entities) { return Object(tslib_es6["b" /* __awaiter */])(_this, void 0, void 0, function () { var subjects, cascadesSubjectBuilder; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: subjects = []; // create subjects for all entities we received for the persistence entities.forEach(function (entity) { var entityTarget = _this.target ? _this.target : entity.constructor; if (entityTarget === Object) throw new CannotDetermineEntityError_CannotDetermineEntityError(_this.mode); subjects.push(new Subject_Subject({ metadata: _this.connection.getMetadata(entityTarget), entity: entity, canBeInserted: _this.mode === "save", canBeUpdated: _this.mode === "save", mustBeRemoved: _this.mode === "remove", canBeSoftRemoved: _this.mode === "soft-remove", canBeRecovered: _this.mode === "recover" })); }); cascadesSubjectBuilder = new CascadesSubjectBuilder_CascadesSubjectBuilder(subjects); subjects.forEach(function (subject) { // next step we build list of subjects we will operate with // these subjects are subjects that we need to insert or update alongside with main persisted entity cascadesSubjectBuilder.build(subject, _this.mode); }); // console.timeEnd("building cascades..."); // load database entities for all subjects we have // next step is to load database entities for all operate subjects // console.time("loading..."); return [4 /*yield*/, new SubjectDatabaseEntityLoader_SubjectDatabaseEntityLoader(queryRunner, subjects).load(this.mode)]; case 1: // console.timeEnd("building cascades..."); // load database entities for all subjects we have // next step is to load database entities for all operate subjects // console.time("loading..."); _a.sent(); // console.timeEnd("loading..."); // console.time("other subjects..."); // build all related subjects and change maps if (this.mode === "save" || this.mode === "soft-remove" || this.mode === "recover") { new OneToManySubjectBuilder_OneToManySubjectBuilder(subjects).build(); new OneToOneInverseSideSubjectBuilder_OneToOneInverseSideSubjectBuilder(subjects).build(); new ManyToManySubjectBuilder_ManyToManySubjectBuilder(subjects).build(); } else { subjects.forEach(function (subject) { if (subject.mustBeRemoved) { new ManyToManySubjectBuilder_ManyToManySubjectBuilder(subjects).buildForAllRemoval(subject); } }); } // console.timeEnd("other subjects..."); // console.timeEnd("building subjects..."); // console.log("subjects", subjects); // create a subject executor return [2 /*return*/, new SubjectExecutor_SubjectExecutor(queryRunner, subjects, this.options)]; } }); }); }))]; case 3: executors = _b.sent(); executorsWithExecutableOperations = executors.filter(function (executor) { return executor.hasExecutableOperations; }); if (executorsWithExecutableOperations.length === 0) return [2 /*return*/]; isTransactionStartedByUs = false; _b.label = 4; case 4: _b.trys.push([4, 16, , 21]); if (!!queryRunner.isTransactionActive) return [3 /*break*/, 6]; if (!(!this.options || this.options.transaction !== false)) return [3 /*break*/, 6]; isTransactionStartedByUs = true; return [4 /*yield*/, queryRunner.startTransaction()]; case 5: _b.sent(); _b.label = 6; case 6: _b.trys.push([6, 11, 12, 13]); executorsWithExecutableOperations_1 = Object(tslib_es6["g" /* __values */])(executorsWithExecutableOperations), executorsWithExecutableOperations_1_1 = executorsWithExecutableOperations_1.next(); _b.label = 7; case 7: if (!!executorsWithExecutableOperations_1_1.done) return [3 /*break*/, 10]; executor = executorsWithExecutableOperations_1_1.value; return [4 /*yield*/, executor.execute()]; case 8: _b.sent(); _b.label = 9; case 9: executorsWithExecutableOperations_1_1 = executorsWithExecutableOperations_1.next(); return [3 /*break*/, 7]; case 10: return [3 /*break*/, 13]; case 11: e_1_1 = _b.sent(); e_1 = { error: e_1_1 }; return [3 /*break*/, 13]; case 12: try { if (executorsWithExecutableOperations_1_1 && !executorsWithExecutableOperations_1_1.done && (_a = executorsWithExecutableOperations_1.return)) _a.call(executorsWithExecutableOperations_1); } finally { if (e_1) throw e_1.error; } return [7 /*endfinally*/]; case 13: if (!(isTransactionStartedByUs === true)) return [3 /*break*/, 15]; return [4 /*yield*/, queryRunner.commitTransaction()]; case 14: _b.sent(); _b.label = 15; case 15: return [3 /*break*/, 21]; case 16: error_1 = _b.sent(); if (!isTransactionStartedByUs) return [3 /*break*/, 20]; _b.label = 17; case 17: _b.trys.push([17, 19, , 20]); return [4 /*yield*/, queryRunner.rollbackTransaction()]; case 18: _b.sent(); return [3 /*break*/, 20]; case 19: rollbackError_1 = _b.sent(); return [3 /*break*/, 20]; case 20: throw error_1; case 21: return [3 /*break*/, 25]; case 22: if (!!this.queryRunner) return [3 /*break*/, 24]; return [4 /*yield*/, queryRunner.release()]; case 23: _b.sent(); _b.label = 24; case 24: return [7 /*endfinally*/]; case 25: return [2 /*return*/]; } }); }); }; return EntityPersistExecutor; }()); //# sourceMappingURL=EntityPersistExecutor.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/util/ObjectUtils.js var ObjectUtils = __webpack_require__(24); // CONCATENATED MODULE: ./node_modules/typeorm/browser/entity-manager/EntityManager.js /** * Entity manager supposed to work with any entity, automatically find its repository and call its methods, * whatever entity type are you passing. */ var EntityManager_EntityManager = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function EntityManager(connection, queryRunner) { // ------------------------------------------------------------------------- // Protected Properties // ------------------------------------------------------------------------- /** * Once created and then reused by en repositories. */ this.repositories = []; /** * Plain to object transformer used in create and merge operations. */ this.plainObjectToEntityTransformer = new PlainObjectToNewEntityTransformer(); this.connection = connection; if (queryRunner) { this.queryRunner = queryRunner; // dynamic: this.queryRunner = manager; ObjectUtils["a" /* ObjectUtils */].assign(this.queryRunner, { manager: this }); } } /** * Wraps given function execution (and all operations made there) in a transaction. * All database operations must be executed using provided entity manager. */ EntityManager.prototype.transaction = function (isolationOrRunInTransaction, runInTransactionParam) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var isolation, runInTransaction, queryRunner, result, err_1, rollbackError_1; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: isolation = typeof isolationOrRunInTransaction === "string" ? isolationOrRunInTransaction : undefined; runInTransaction = typeof isolationOrRunInTransaction === "function" ? isolationOrRunInTransaction : runInTransactionParam; if (!runInTransaction) { throw new Error("Transaction method requires callback in second paramter if isolation level is supplied."); } if (this.connection.driver instanceof BrowserDisabledDriversDummy["e" /* MongoDriver */]) throw new Error("Transactions aren't supported by MongoDB."); if (this.queryRunner && this.queryRunner.isReleased) throw new QueryRunnerProviderAlreadyReleasedError_QueryRunnerProviderAlreadyReleasedError(); if (this.queryRunner && this.queryRunner.isTransactionActive) throw new Error("Cannot start transaction because its already started"); queryRunner = this.queryRunner || this.connection.createQueryRunner(); _a.label = 1; case 1: _a.trys.push([1, 8, 13, 16]); if (!isolation) return [3 /*break*/, 3]; return [4 /*yield*/, queryRunner.startTransaction(isolation)]; case 2: _a.sent(); return [3 /*break*/, 5]; case 3: return [4 /*yield*/, queryRunner.startTransaction()]; case 4: _a.sent(); _a.label = 5; case 5: return [4 /*yield*/, runInTransaction(queryRunner.manager)]; case 6: result = _a.sent(); return [4 /*yield*/, queryRunner.commitTransaction()]; case 7: _a.sent(); return [2 /*return*/, result]; case 8: err_1 = _a.sent(); _a.label = 9; case 9: _a.trys.push([9, 11, , 12]); return [4 /*yield*/, queryRunner.rollbackTransaction()]; case 10: _a.sent(); return [3 /*break*/, 12]; case 11: rollbackError_1 = _a.sent(); return [3 /*break*/, 12]; case 12: throw err_1; case 13: if (!!this.queryRunner) return [3 /*break*/, 15]; return [4 /*yield*/, queryRunner.release()]; case 14: _a.sent(); _a.label = 15; case 15: return [7 /*endfinally*/]; case 16: return [2 /*return*/]; } }); }); }; /** * Executes raw SQL query and returns raw database results. */ EntityManager.prototype.query = function (query, parameters) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, this.connection.query(query, parameters, this.queryRunner)]; }); }); }; /** * Creates a new query builder that can be used to build a sql query. */ EntityManager.prototype.createQueryBuilder = function (entityClass, alias, queryRunner) { if (alias) { return this.connection.createQueryBuilder(entityClass, alias, queryRunner || this.queryRunner); } else { return this.connection.createQueryBuilder(entityClass || queryRunner || this.queryRunner); } }; /** * Checks if entity has an id by its Function type or schema name. */ EntityManager.prototype.hasId = function (targetOrEntity, maybeEntity) { var target = arguments.length === 2 ? targetOrEntity : targetOrEntity.constructor; var entity = arguments.length === 2 ? maybeEntity : targetOrEntity; var metadata = this.connection.getMetadata(target); return metadata.hasId(entity); }; /** * Gets entity mixed id. */ EntityManager.prototype.getId = function (targetOrEntity, maybeEntity) { var target = arguments.length === 2 ? targetOrEntity : targetOrEntity.constructor; var entity = arguments.length === 2 ? maybeEntity : targetOrEntity; var metadata = this.connection.getMetadata(target); return metadata.getEntityIdMixedMap(entity); }; /** * Creates a new entity instance or instances. * Can copy properties from the given object into new entities. */ EntityManager.prototype.create = function (entityClass, plainObjectOrObjects) { var _this = this; var metadata = this.connection.getMetadata(entityClass); if (!plainObjectOrObjects) return metadata.create(this.queryRunner); if (Array.isArray(plainObjectOrObjects)) return plainObjectOrObjects.map(function (plainEntityLike) { return _this.create(entityClass, plainEntityLike); }); var mergeIntoEntity = metadata.create(this.queryRunner); this.plainObjectToEntityTransformer.transform(mergeIntoEntity, plainObjectOrObjects, metadata, true); return mergeIntoEntity; }; /** * Merges two entities into one new entity. */ EntityManager.prototype.merge = function (entityClass, mergeIntoEntity) { var _this = this; var entityLikes = []; for (var _i = 2; _i < arguments.length; _i++) { entityLikes[_i - 2] = arguments[_i]; } var metadata = this.connection.getMetadata(entityClass); entityLikes.forEach(function (object) { return _this.plainObjectToEntityTransformer.transform(mergeIntoEntity, object, metadata); }); return mergeIntoEntity; }; /** * Creates a new entity from the given plain javascript object. If entity already exist in the database, then * it loads it (and everything related to it), replaces all values with the new ones from the given object * and returns this new entity. This new entity is actually a loaded from the db entity with all properties * replaced from the new object. */ EntityManager.prototype.preload = function (entityClass, entityLike) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var metadata, plainObjectToDatabaseEntityTransformer, transformedEntity; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: metadata = this.connection.getMetadata(entityClass); plainObjectToDatabaseEntityTransformer = new PlainObjectToDatabaseEntityTransformer_PlainObjectToDatabaseEntityTransformer(this.connection.manager); return [4 /*yield*/, plainObjectToDatabaseEntityTransformer.transform(entityLike, metadata)]; case 1: transformedEntity = _a.sent(); if (transformedEntity) return [2 /*return*/, this.merge(entityClass, transformedEntity, entityLike)]; return [2 /*return*/, undefined]; } }); }); }; /** * Saves a given entity in the database. */ EntityManager.prototype.save = function (targetOrEntity, maybeEntityOrOptions, maybeOptions) { // normalize mixed parameters var target = (arguments.length > 1 && (targetOrEntity instanceof Function || targetOrEntity instanceof EntitySchema["a" /* EntitySchema */] || typeof targetOrEntity === "string")) ? targetOrEntity : undefined; var entity = target ? maybeEntityOrOptions : targetOrEntity; var options = target ? maybeOptions : maybeEntityOrOptions; if (target instanceof EntitySchema["a" /* EntitySchema */]) target = target.options.name; // if user passed empty array of entities then we don't need to do anything if (Array.isArray(entity) && entity.length === 0) return Promise.resolve(entity); // execute save operation return new EntityPersistExecutor_EntityPersistExecutor(this.connection, this.queryRunner, "save", target, entity, options) .execute() .then(function () { return entity; }); }; /** * Removes a given entity from the database. */ EntityManager.prototype.remove = function (targetOrEntity, maybeEntityOrOptions, maybeOptions) { // normalize mixed parameters var target = (arguments.length > 1 && (targetOrEntity instanceof Function || typeof targetOrEntity === "string")) ? targetOrEntity : undefined; var entity = target ? maybeEntityOrOptions : targetOrEntity; var options = target ? maybeOptions : maybeEntityOrOptions; // if user passed empty array of entities then we don't need to do anything if (Array.isArray(entity) && entity.length === 0) return Promise.resolve(entity); // execute save operation return new EntityPersistExecutor_EntityPersistExecutor(this.connection, this.queryRunner, "remove", target, entity, options) .execute() .then(function () { return entity; }); }; /** * Records the delete date of one or many given entities. */ EntityManager.prototype.softRemove = function (targetOrEntity, maybeEntityOrOptions, maybeOptions) { // normalize mixed parameters var target = (arguments.length > 1 && (targetOrEntity instanceof Function || targetOrEntity instanceof EntitySchema["a" /* EntitySchema */] || typeof targetOrEntity === "string")) ? targetOrEntity : undefined; var entity = target ? maybeEntityOrOptions : targetOrEntity; var options = target ? maybeOptions : maybeEntityOrOptions; if (target instanceof EntitySchema["a" /* EntitySchema */]) target = target.options.name; // if user passed empty array of entities then we don't need to do anything if (Array.isArray(entity) && entity.length === 0) return Promise.resolve(entity); // execute soft-remove operation return new EntityPersistExecutor_EntityPersistExecutor(this.connection, this.queryRunner, "soft-remove", target, entity, options) .execute() .then(function () { return entity; }); }; /** * Recovers one or many given entities. */ EntityManager.prototype.recover = function (targetOrEntity, maybeEntityOrOptions, maybeOptions) { // normalize mixed parameters var target = (arguments.length > 1 && (targetOrEntity instanceof Function || targetOrEntity instanceof EntitySchema["a" /* EntitySchema */] || typeof targetOrEntity === "string")) ? targetOrEntity : undefined; var entity = target ? maybeEntityOrOptions : targetOrEntity; var options = target ? maybeOptions : maybeEntityOrOptions; if (target instanceof EntitySchema["a" /* EntitySchema */]) target = target.options.name; // if user passed empty array of entities then we don't need to do anything if (Array.isArray(entity) && entity.length === 0) return Promise.resolve(entity); // execute recover operation return new EntityPersistExecutor_EntityPersistExecutor(this.connection, this.queryRunner, "recover", target, entity, options) .execute() .then(function () { return entity; }); }; /** * Inserts a given entity into the database. * Unlike save method executes a primitive operation without cascades, relations and other operations included. * Executes fast and efficient INSERT query. * Does not check if entity exist in the database, so query will fail if duplicate entity is being inserted. * You can execute bulk inserts using this method. */ EntityManager.prototype.insert = function (target, entity) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, this.createQueryBuilder() .insert() .into(target) .values(entity) .execute()]; }); }); }; /** * Updates entity partially. Entity can be found by a given condition(s). * Unlike save method executes a primitive operation without cascades, relations and other operations included. * Executes fast and efficient UPDATE query. * Does not check if entity exist in the database. * Condition(s) cannot be empty. */ EntityManager.prototype.update = function (target, criteria, partialEntity) { // if user passed empty criteria or empty list of criterias, then throw an error if (criteria === undefined || criteria === null || criteria === "" || (Array.isArray(criteria) && criteria.length === 0)) { return Promise.reject(new Error("Empty criteria(s) are not allowed for the update method.")); } if (typeof criteria === "string" || typeof criteria === "number" || criteria instanceof Date || Array.isArray(criteria)) { return this.createQueryBuilder() .update(target) .set(partialEntity) .whereInIds(criteria) .execute(); } else { return this.createQueryBuilder() .update(target) .set(partialEntity) .where(criteria) .execute(); } }; /** * Deletes entities by a given condition(s). * Unlike save method executes a primitive operation without cascades, relations and other operations included. * Executes fast and efficient DELETE query. * Does not check if entity exist in the database. * Condition(s) cannot be empty. */ EntityManager.prototype.delete = function (targetOrEntity, criteria) { // if user passed empty criteria or empty list of criterias, then throw an error if (criteria === undefined || criteria === null || criteria === "" || (Array.isArray(criteria) && criteria.length === 0)) { return Promise.reject(new Error("Empty criteria(s) are not allowed for the delete method.")); } if (typeof criteria === "string" || typeof criteria === "number" || criteria instanceof Date || Array.isArray(criteria)) { return this.createQueryBuilder() .delete() .from(targetOrEntity) .whereInIds(criteria) .execute(); } else { return this.createQueryBuilder() .delete() .from(targetOrEntity) .where(criteria) .execute(); } }; /** * Records the delete date of entities by a given condition(s). * Unlike save method executes a primitive operation without cascades, relations and other operations included. * Executes fast and efficient DELETE query. * Does not check if entity exist in the database. * Condition(s) cannot be empty. */ EntityManager.prototype.softDelete = function (targetOrEntity, criteria) { // if user passed empty criteria or empty list of criterias, then throw an error if (criteria === undefined || criteria === null || criteria === "" || (Array.isArray(criteria) && criteria.length === 0)) { return Promise.reject(new Error("Empty criteria(s) are not allowed for the delete method.")); } if (typeof criteria === "string" || typeof criteria === "number" || criteria instanceof Date || Array.isArray(criteria)) { return this.createQueryBuilder() .softDelete() .from(targetOrEntity) .whereInIds(criteria) .execute(); } else { return this.createQueryBuilder() .softDelete() .from(targetOrEntity) .where(criteria) .execute(); } }; /** * Restores entities by a given condition(s). * Unlike save method executes a primitive operation without cascades, relations and other operations included. * Executes fast and efficient DELETE query. * Does not check if entity exist in the database. * Condition(s) cannot be empty. */ EntityManager.prototype.restore = function (targetOrEntity, criteria) { // if user passed empty criteria or empty list of criterias, then throw an error if (criteria === undefined || criteria === null || criteria === "" || (Array.isArray(criteria) && criteria.length === 0)) { return Promise.reject(new Error("Empty criteria(s) are not allowed for the delete method.")); } if (typeof criteria === "string" || typeof criteria === "number" || criteria instanceof Date || Array.isArray(criteria)) { return this.createQueryBuilder() .restore() .from(targetOrEntity) .whereInIds(criteria) .execute(); } else { return this.createQueryBuilder() .restore() .from(targetOrEntity) .where(criteria) .execute(); } }; /** * Counts entities that match given find options or conditions. * Useful for pagination. */ EntityManager.prototype.count = function (entityClass, optionsOrConditions) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var metadata, qb; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { metadata = this.connection.getMetadata(entityClass); qb = this.createQueryBuilder(entityClass, FindOptionsUtils_FindOptionsUtils.extractFindManyOptionsAlias(optionsOrConditions) || metadata.name); return [2 /*return*/, FindOptionsUtils_FindOptionsUtils.applyFindManyOptionsOrConditionsToQueryBuilder(qb, optionsOrConditions).getCount()]; }); }); }; /** * Finds entities that match given find options or conditions. */ EntityManager.prototype.find = function (entityClass, optionsOrConditions) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var metadata, qb; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { metadata = this.connection.getMetadata(entityClass); qb = this.createQueryBuilder(entityClass, FindOptionsUtils_FindOptionsUtils.extractFindManyOptionsAlias(optionsOrConditions) || metadata.name); if (!FindOptionsUtils_FindOptionsUtils.isFindManyOptions(optionsOrConditions) || optionsOrConditions.loadEagerRelations !== false) FindOptionsUtils_FindOptionsUtils.joinEagerRelations(qb, qb.alias, metadata); return [2 /*return*/, FindOptionsUtils_FindOptionsUtils.applyFindManyOptionsOrConditionsToQueryBuilder(qb, optionsOrConditions).getMany()]; }); }); }; /** * Finds entities that match given find options and conditions. * Also counts all entities that match given conditions, * but ignores pagination settings (from and take options). */ EntityManager.prototype.findAndCount = function (entityClass, optionsOrConditions) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var metadata, qb; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { metadata = this.connection.getMetadata(entityClass); qb = this.createQueryBuilder(entityClass, FindOptionsUtils_FindOptionsUtils.extractFindManyOptionsAlias(optionsOrConditions) || metadata.name); if (!FindOptionsUtils_FindOptionsUtils.isFindManyOptions(optionsOrConditions) || optionsOrConditions.loadEagerRelations !== false) FindOptionsUtils_FindOptionsUtils.joinEagerRelations(qb, qb.alias, metadata); return [2 /*return*/, FindOptionsUtils_FindOptionsUtils.applyFindManyOptionsOrConditionsToQueryBuilder(qb, optionsOrConditions).getManyAndCount()]; }); }); }; /** * Finds entities with ids. * Optionally find options or conditions can be applied. */ EntityManager.prototype.findByIds = function (entityClass, ids, optionsOrConditions) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var metadata, qb; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { // if no ids passed, no need to execute a query - just return an empty array of values if (!ids.length) return [2 /*return*/, Promise.resolve([])]; metadata = this.connection.getMetadata(entityClass); qb = this.createQueryBuilder(entityClass, FindOptionsUtils_FindOptionsUtils.extractFindManyOptionsAlias(optionsOrConditions) || metadata.name); FindOptionsUtils_FindOptionsUtils.applyFindManyOptionsOrConditionsToQueryBuilder(qb, optionsOrConditions); if (!FindOptionsUtils_FindOptionsUtils.isFindManyOptions(optionsOrConditions) || optionsOrConditions.loadEagerRelations !== false) FindOptionsUtils_FindOptionsUtils.joinEagerRelations(qb, qb.alias, metadata); return [2 /*return*/, qb.andWhereInIds(ids).getMany()]; }); }); }; /** * Finds first entity that matches given conditions. */ EntityManager.prototype.findOne = function (entityClass, idOrOptionsOrConditions, maybeOptions) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var findOptions, options, metadata, alias, qb, passedId; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { findOptions = undefined; if (FindOptionsUtils_FindOptionsUtils.isFindOneOptions(idOrOptionsOrConditions)) { findOptions = idOrOptionsOrConditions; } else if (maybeOptions && FindOptionsUtils_FindOptionsUtils.isFindOneOptions(maybeOptions)) { findOptions = maybeOptions; } options = undefined; if (idOrOptionsOrConditions instanceof Object && !FindOptionsUtils_FindOptionsUtils.isFindOneOptions(idOrOptionsOrConditions)) options = idOrOptionsOrConditions; metadata = this.connection.getMetadata(entityClass); alias = metadata.name; if (findOptions && findOptions.join) { alias = findOptions.join.alias; } else if (maybeOptions && FindOptionsUtils_FindOptionsUtils.isFindOneOptions(maybeOptions) && maybeOptions.join) { alias = maybeOptions.join.alias; } qb = this.createQueryBuilder(entityClass, alias); if (!findOptions || findOptions.loadEagerRelations !== false) FindOptionsUtils_FindOptionsUtils.joinEagerRelations(qb, qb.alias, qb.expressionMap.mainAlias.metadata); passedId = typeof idOrOptionsOrConditions === "string" || typeof idOrOptionsOrConditions === "number" || idOrOptionsOrConditions instanceof Date; if (!passedId) { findOptions = Object(tslib_es6["a" /* __assign */])(Object(tslib_es6["a" /* __assign */])({}, (findOptions || {})), { take: 1 }); } FindOptionsUtils_FindOptionsUtils.applyOptionsToQueryBuilder(qb, findOptions); if (options) { qb.where(options); } else if (passedId) { qb.andWhereInIds(metadata.ensureEntityIdMap(idOrOptionsOrConditions)); } return [2 /*return*/, qb.getOne()]; }); }); }; /** * Finds first entity that matches given conditions or rejects the returned promise on error. */ EntityManager.prototype.findOneOrFail = function (entityClass, idOrOptionsOrConditions, maybeOptions) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, this.findOne(entityClass, idOrOptionsOrConditions, maybeOptions).then(function (value) { if (value === undefined) { return Promise.reject(new EntityNotFoundError["a" /* EntityNotFoundError */](entityClass, idOrOptionsOrConditions)); } return Promise.resolve(value); })]; }); }); }; /** * Clears all the data from the given table (truncates/drops it). * * Note: this method uses TRUNCATE and may not work as you expect in transactions on some platforms. * @see https://stackoverflow.com/a/5972738/925151 */ EntityManager.prototype.clear = function (entityClass) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var metadata, queryRunner; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: metadata = this.connection.getMetadata(entityClass); queryRunner = this.queryRunner || this.connection.createQueryRunner(); _a.label = 1; case 1: _a.trys.push([1, , 3, 6]); return [4 /*yield*/, queryRunner.clearTable(metadata.tablePath)]; case 2: return [2 /*return*/, _a.sent()]; // await is needed here because we are using finally case 3: if (!!this.queryRunner) return [3 /*break*/, 5]; return [4 /*yield*/, queryRunner.release()]; case 4: _a.sent(); _a.label = 5; case 5: return [7 /*endfinally*/]; case 6: return [2 /*return*/]; } }); }); }; /** * Increments some column by provided value of the entities matched given conditions. */ EntityManager.prototype.increment = function (entityClass, conditions, propertyPath, value) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var metadata, column, values; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { metadata = this.connection.getMetadata(entityClass); column = metadata.findColumnWithPropertyPath(propertyPath); if (!column) throw new Error("Column " + propertyPath + " was not found in " + metadata.targetName + " entity."); if (isNaN(Number(value))) throw new Error("Value \"" + value + "\" is not a number."); values = propertyPath .split(".") .reduceRight(function (value, key) { var _a; return (_a = {}, _a[key] = value, _a); }, function () { return _this.connection.driver.escape(column.databaseName) + " + " + value; }); return [2 /*return*/, this .createQueryBuilder(entityClass, "entity") .update(entityClass) .set(values) .where(conditions) .execute()]; }); }); }; /** * Decrements some column by provided value of the entities matched given conditions. */ EntityManager.prototype.decrement = function (entityClass, conditions, propertyPath, value) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var metadata, column, values; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { metadata = this.connection.getMetadata(entityClass); column = metadata.findColumnWithPropertyPath(propertyPath); if (!column) throw new Error("Column " + propertyPath + " was not found in " + metadata.targetName + " entity."); if (isNaN(Number(value))) throw new Error("Value \"" + value + "\" is not a number."); values = propertyPath .split(".") .reduceRight(function (value, key) { var _a; return (_a = {}, _a[key] = value, _a); }, function () { return _this.connection.driver.escape(column.databaseName) + " - " + value; }); return [2 /*return*/, this .createQueryBuilder(entityClass, "entity") .update(entityClass) .set(values) .where(conditions) .execute()]; }); }); }; /** * Gets repository for the given entity class or name. * If single database connection mode is used, then repository is obtained from the * repository aggregator, where each repository is individually created for this entity manager. * When single database connection is not used, repository is being obtained from the connection. */ EntityManager.prototype.getRepository = function (target) { // throw exception if there is no repository with this target registered if (!this.connection.hasMetadata(target)) throw new RepositoryNotFoundError_RepositoryNotFoundError(this.connection.name, target); // find already created repository instance and return it if found var metadata = this.connection.getMetadata(target); var repository = this.repositories.find(function (repository) { return repository.metadata === metadata; }); if (repository) return repository; // if repository was not found then create it, store its instance and return it var newRepository = new RepositoryFactory_RepositoryFactory().create(this, metadata, this.queryRunner); this.repositories.push(newRepository); return newRepository; }; /** * Gets tree repository for the given entity class or name. * If single database connection mode is used, then repository is obtained from the * repository aggregator, where each repository is individually created for this entity manager. * When single database connection is not used, repository is being obtained from the connection. */ EntityManager.prototype.getTreeRepository = function (target) { // tree tables aren't supported by some drivers (mongodb) if (this.connection.driver.treeSupport === false) throw new TreeRepositoryNotSupportedError_TreeRepositoryNotSupportedError(this.connection.driver); // check if repository is real tree repository var repository = this.getRepository(target); if (!(repository instanceof TreeRepository_TreeRepository)) throw new RepositoryNotTreeError_RepositoryNotTreeError(target); return repository; }; /** * Gets mongodb repository for the given entity class. */ EntityManager.prototype.getMongoRepository = function (target) { return this.connection.getMongoRepository(target); }; /** * Gets custom entity repository marked with @EntityRepository decorator. */ EntityManager.prototype.getCustomRepository = function (customRepository) { var entityRepositoryMetadataArgs = getMetadataArgsStorage().entityRepositories.find(function (repository) { return repository.target === (customRepository instanceof Function ? customRepository : customRepository.constructor); }); if (!entityRepositoryMetadataArgs) throw new CustomRepositoryNotFoundError_CustomRepositoryNotFoundError(customRepository); var entityMetadata = entityRepositoryMetadataArgs.entity ? this.connection.getMetadata(entityRepositoryMetadataArgs.entity) : undefined; var entityRepositoryInstance = new entityRepositoryMetadataArgs.target(this, entityMetadata); // NOTE: dynamic access to protected properties. We need this to prevent unwanted properties in those classes to be exposed, // however we need these properties for internal work of the class if (entityRepositoryInstance instanceof AbstractRepository_AbstractRepository) { if (!entityRepositoryInstance["manager"]) entityRepositoryInstance["manager"] = this; } if (entityRepositoryInstance instanceof Repository_Repository) { if (!entityMetadata) throw new CustomRepositoryCannotInheritRepositoryError_CustomRepositoryCannotInheritRepositoryError(customRepository); entityRepositoryInstance["manager"] = this; entityRepositoryInstance["metadata"] = entityMetadata; } return entityRepositoryInstance; }; /** * Releases all resources used by entity manager. * This is used when entity manager is created with a single query runner, * and this single query runner needs to be released after job with entity manager is done. */ EntityManager.prototype.release = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { if (!this.queryRunner) throw new NoNeedToReleaseEntityManagerError_NoNeedToReleaseEntityManagerError(); return [2 /*return*/, this.queryRunner.release()]; }); }); }; return EntityManager; }()); //# sourceMappingURL=EntityManager.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/entity-manager/SqljsEntityManager.js /** * A special EntityManager that includes import/export and load/save function * that are unique to Sql.js. */ var SqljsEntityManager_SqljsEntityManager = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(SqljsEntityManager, _super); // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function SqljsEntityManager(connection, queryRunner) { var _this = _super.call(this, connection, queryRunner) || this; _this.driver = connection.driver; return _this; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Loads either the definition from a file (Node.js) or localstorage (browser) * or uses the given definition to open a new database. */ SqljsEntityManager.prototype.loadDatabase = function (fileNameOrLocalStorageOrData) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.driver.load(fileNameOrLocalStorageOrData)]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Saves the current database to a file (Node.js) or localstorage (browser) * if fileNameOrLocalStorage is not set options.location is used. */ SqljsEntityManager.prototype.saveDatabase = function (fileNameOrLocalStorage) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.driver.save(fileNameOrLocalStorage)]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Returns the current database definition. */ SqljsEntityManager.prototype.exportDatabase = function () { return this.driver.export(); }; return SqljsEntityManager; }(EntityManager_EntityManager)); //# sourceMappingURL=SqljsEntityManager.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/driver/sqljs/SqljsDriver.js var SqljsDriver = __webpack_require__(41); // CONCATENATED MODULE: ./node_modules/typeorm/browser/entity-manager/EntityManagerFactory.js /** * Helps to create entity managers. */ var EntityManagerFactory_EntityManagerFactory = /** @class */ (function () { function EntityManagerFactory() { } /** * Creates a new entity manager depend on a given connection's driver. */ EntityManagerFactory.prototype.create = function (connection, queryRunner) { if (connection.driver instanceof BrowserDisabledDriversDummy["e" /* MongoDriver */]) return new BrowserDisabledDriversDummy["f" /* MongoEntityManager */](connection); if (connection.driver instanceof SqljsDriver["a" /* SqljsDriver */]) return new SqljsEntityManager_SqljsEntityManager(connection, queryRunner); return new EntityManager_EntityManager(connection, queryRunner); }; return EntityManagerFactory; }()); //# sourceMappingURL=EntityManagerFactory.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/MissingDriverError.js /** * Thrown when consumer specifies driver type that does not exist or supported. */ var MissingDriverError_MissingDriverError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(MissingDriverError, _super); function MissingDriverError(driverType) { var _this = _super.call(this) || this; _this.name = "MissingDriverError"; Object.setPrototypeOf(_this, MissingDriverError.prototype); _this.message = "Wrong driver: \"" + driverType + "\" given. Supported drivers are: \"cordova\", \"expo\", \"mariadb\", \"mongodb\", \"mssql\", \"mysql\", \"oracle\", \"postgres\", \"sqlite\", \"better-sqlite3\", \"sqljs\", \"react-native\", \"aurora-data-api\", \"aurora-data-api-pg\"."; return _this; } return MissingDriverError; }(Error)); //# sourceMappingURL=MissingDriverError.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/QueryRunnerAlreadyReleasedError.js var QueryRunnerAlreadyReleasedError = __webpack_require__(34); // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/QueryFailedError.js var QueryFailedError = __webpack_require__(39); // EXTERNAL MODULE: ./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js var AbstractSqliteQueryRunner = __webpack_require__(73); // EXTERNAL MODULE: ./node_modules/typeorm/browser/subscriber/Broadcaster.js var Broadcaster = __webpack_require__(55); // CONCATENATED MODULE: ./node_modules/typeorm/browser/driver/cordova/CordovaQueryRunner.js /** * Runs queries on a single sqlite database connection. */ var CordovaQueryRunner_CordovaQueryRunner = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(CordovaQueryRunner, _super); // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function CordovaQueryRunner(driver) { var _this = _super.call(this) || this; _this.driver = driver; _this.connection = driver.connection; _this.broadcaster = new Broadcaster["a" /* Broadcaster */](_this); return _this; } /** * Executes a given SQL query. */ CordovaQueryRunner.prototype.query = function (query, parameters) { var _this = this; if (this.isReleased) throw new QueryRunnerAlreadyReleasedError["a" /* QueryRunnerAlreadyReleasedError */](); return new Promise(function (ok, fail) { return Object(tslib_es6["b" /* __awaiter */])(_this, void 0, void 0, function () { var databaseConnection, queryStartTime; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.connect()]; case 1: databaseConnection = _a.sent(); this.driver.connection.logger.logQuery(query, parameters, this); queryStartTime = +new Date(); databaseConnection.executeSql(query, parameters, function (result) { // log slow queries if maxQueryExecution time is set var maxQueryExecutionTime = _this.driver.connection.options.maxQueryExecutionTime; var queryEndTime = +new Date(); var queryExecutionTime = queryEndTime - queryStartTime; if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime) _this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, _this); if (query.substr(0, 11) === "INSERT INTO") { ok(result.insertId); } else { var resultSet = []; for (var i = 0; i < result.rows.length; i++) { resultSet.push(result.rows.item(i)); } ok(resultSet); } }, function (err) { _this.driver.connection.logger.logQueryError(err, query, parameters, _this); fail(new QueryFailedError["a" /* QueryFailedError */](query, parameters, err)); }); return [2 /*return*/]; } }); }); }); }; /** * Insert a new row with given values into the given table. * Returns value of the generated column if given and generate column exist in the table. // todo: implement new syntax async insert(tableName: string, keyValues: ObjectLiteral): Promise { const keys = Object.keys(keyValues); const columns = keys.map(key => `"${key}"`).join(", "); const values = keys.map(key => "?").join(","); const generatedColumns = this.connection.hasMetadata(tableName) ? this.connection.getMetadata(tableName).generatedColumns : []; const sql = columns.length > 0 ? (`INSERT INTO "${tableName}"(${columns}) VALUES (${values})`) : `INSERT INTO "${tableName}" DEFAULT VALUES`; const parameters = keys.map(key => keyValues[key]); return new Promise(async (ok, fail) => { this.driver.connection.logger.logQuery(sql, parameters, this); const __this = this; const databaseConnection = await this.connect(); databaseConnection.executeSql(sql, parameters, (resultSet: any) => { const generatedMap = generatedColumns.reduce((map, generatedColumn) => { const value = generatedColumn.isPrimary && generatedColumn.generationStrategy === "increment" && resultSet.insertId ? resultSet.insertId : keyValues[generatedColumn.databaseName]; if (!value) return map; return OrmUtils.mergeDeep(map, generatedColumn.createValueMap(value)); }, {} as ObjectLiteral); ok({ result: undefined, generatedMap: Object.keys(generatedMap).length > 0 ? generatedMap : undefined }); }, (err: any) => { __this.driver.connection.logger.logQueryError(err, sql, parameters, this); fail(err); }); }); }*/ // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Parametrizes given object of values. Used to create column=value queries. */ CordovaQueryRunner.prototype.parametrize = function (objectLiteral, startIndex) { if (startIndex === void 0) { startIndex = 0; } return Object.keys(objectLiteral).map(function (key, index) { return "\"" + key + "\"" + "=?"; }); }; return CordovaQueryRunner; }(AbstractSqliteQueryRunner["a" /* AbstractSqliteQueryRunner */])); //# sourceMappingURL=CordovaQueryRunner.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/DriverOptionNotSetError.js var DriverOptionNotSetError = __webpack_require__(37); // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/DriverPackageNotInstalledError.js var DriverPackageNotInstalledError = __webpack_require__(71); // CONCATENATED MODULE: ./node_modules/typeorm/browser/driver/cordova/CordovaDriver.js var CordovaDriver_CordovaDriver = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(CordovaDriver, _super); // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function CordovaDriver(connection) { var _this = _super.call(this, connection) || this; // this.connection = connection; // this.options = connection.options as CordovaConnectionOptions; _this.database = _this.options.database; // validate options to make sure everything is set if (!_this.options.database) throw new DriverOptionNotSetError["a" /* DriverOptionNotSetError */]("database"); if (!_this.options.location) throw new DriverOptionNotSetError["a" /* DriverOptionNotSetError */]("location"); // load sqlite package _this.loadDependencies(); return _this; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Closes connection with database. */ CordovaDriver.prototype.disconnect = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, new Promise(function (ok, fail) { _this.queryRunner = undefined; _this.databaseConnection.close(ok, fail); })]; }); }); }; /** * Creates a query runner used to execute database queries. */ CordovaDriver.prototype.createQueryRunner = function (mode) { if (!this.queryRunner) this.queryRunner = new CordovaQueryRunner_CordovaQueryRunner(this); return this.queryRunner; }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Creates connection with the database. */ CordovaDriver.prototype.createDatabaseConnection = function () { var _this = this; return new Promise(function (ok, fail) { var options = Object.assign({}, { name: _this.options.database, location: _this.options.location, }, _this.options.extra || {}); _this.sqlite.openDatabase(options, function (db) { var databaseConnection = db; // we need to enable foreign keys in sqlite to make sure all foreign key related features // working properly. this also makes onDelete to work with sqlite. databaseConnection.executeSql("PRAGMA foreign_keys = ON;", [], function (result) { ok(databaseConnection); }, function (error) { fail(error); }); }, function (error) { fail(error); }); }); }; /** * If driver dependency is not given explicitly, then try to load it via "require". */ CordovaDriver.prototype.loadDependencies = function () { try { this.sqlite = window.sqlitePlugin; } catch (e) { throw new DriverPackageNotInstalledError["a" /* DriverPackageNotInstalledError */]("Cordova-SQLite", "cordova-sqlite-storage"); } }; return CordovaDriver; }(AbstractSqliteDriver["a" /* AbstractSqliteDriver */])); //# sourceMappingURL=CordovaDriver.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/driver/react-native/ReactNativeQueryRunner.js /** * Runs queries on a single sqlite database connection. */ var ReactNativeQueryRunner_ReactNativeQueryRunner = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(ReactNativeQueryRunner, _super); // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function ReactNativeQueryRunner(driver) { var _this = _super.call(this) || this; _this.driver = driver; _this.connection = driver.connection; _this.broadcaster = new Broadcaster["a" /* Broadcaster */](_this); return _this; } /** * Executes a given SQL query. */ ReactNativeQueryRunner.prototype.query = function (query, parameters) { var _this = this; if (this.isReleased) throw new QueryRunnerAlreadyReleasedError["a" /* QueryRunnerAlreadyReleasedError */](); return new Promise(function (ok, fail) { return Object(tslib_es6["b" /* __awaiter */])(_this, void 0, void 0, function () { var databaseConnection, queryStartTime; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.connect()]; case 1: databaseConnection = _a.sent(); this.driver.connection.logger.logQuery(query, parameters, this); queryStartTime = +new Date(); databaseConnection.executeSql(query, parameters, function (result) { // log slow queries if maxQueryExecution time is set var maxQueryExecutionTime = _this.driver.connection.options.maxQueryExecutionTime; var queryEndTime = +new Date(); var queryExecutionTime = queryEndTime - queryStartTime; if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime) _this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, _this); // return id of inserted row, if query was insert statement. if (query.substr(0, 11) === "INSERT INTO") { ok(result.insertId); } else { var resultSet = []; for (var i = 0; i < result.rows.length; i++) { resultSet.push(result.rows.item(i)); } ok(resultSet); } }, function (err) { _this.driver.connection.logger.logQueryError(err, query, parameters, _this); fail(new QueryFailedError["a" /* QueryFailedError */](query, parameters, err)); }); return [2 /*return*/]; } }); }); }); }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Parametrizes given object of values. Used to create column=value queries. */ ReactNativeQueryRunner.prototype.parametrize = function (objectLiteral, startIndex) { if (startIndex === void 0) { startIndex = 0; } return Object.keys(objectLiteral).map(function (key, index) { return "\"" + key + "\"" + "=?"; }); }; return ReactNativeQueryRunner; }(AbstractSqliteQueryRunner["a" /* AbstractSqliteQueryRunner */])); //# sourceMappingURL=ReactNativeQueryRunner.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/driver/react-native/ReactNativeDriver.js var ReactNativeDriver_ReactNativeDriver = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(ReactNativeDriver, _super); // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function ReactNativeDriver(connection) { var _this = _super.call(this, connection) || this; _this.database = _this.options.database; // validate options to make sure everything is set if (!_this.options.database) throw new DriverOptionNotSetError["a" /* DriverOptionNotSetError */]("database"); if (!_this.options.location) throw new DriverOptionNotSetError["a" /* DriverOptionNotSetError */]("location"); // load sqlite package _this.loadDependencies(); return _this; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Closes connection with database. */ ReactNativeDriver.prototype.disconnect = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, new Promise(function (ok, fail) { _this.queryRunner = undefined; _this.databaseConnection.close(ok, fail); })]; }); }); }; /** * Creates a query runner used to execute database queries. */ ReactNativeDriver.prototype.createQueryRunner = function (mode) { if (!this.queryRunner) this.queryRunner = new ReactNativeQueryRunner_ReactNativeQueryRunner(this); return this.queryRunner; }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Creates connection with the database. */ ReactNativeDriver.prototype.createDatabaseConnection = function () { var _this = this; return new Promise(function (ok, fail) { var options = Object.assign({}, { name: _this.options.database, location: _this.options.location, }, _this.options.extra || {}); _this.sqlite.openDatabase(options, function (db) { var databaseConnection = db; // we need to enable foreign keys in sqlite to make sure all foreign key related features // working properly. this also makes onDelete work with sqlite. databaseConnection.executeSql("PRAGMA foreign_keys = ON;", [], function (result) { ok(databaseConnection); }, function (error) { fail(error); }); }, function (error) { fail(error); }); }); }; /** * If driver dependency is not given explicitly, then try to load it via "require". */ ReactNativeDriver.prototype.loadDependencies = function () { try { this.sqlite = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module 'react-native-sqlite-storage'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); } catch (e) { throw new DriverPackageNotInstalledError["a" /* DriverPackageNotInstalledError */]("React-Native", "react-native-sqlite-storage"); } }; return ReactNativeDriver; }(AbstractSqliteDriver["a" /* AbstractSqliteDriver */])); //# sourceMappingURL=ReactNativeDriver.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/driver/nativescript/NativescriptDriver.js var NativescriptDriver = __webpack_require__(285); // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/TransactionAlreadyStartedError.js var TransactionAlreadyStartedError = __webpack_require__(70); // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/TransactionNotStartedError.js var TransactionNotStartedError = __webpack_require__(44); // CONCATENATED MODULE: ./node_modules/typeorm/browser/driver/expo/ExpoQueryRunner.js /** * Runs queries on a single sqlite database connection. */ var ExpoQueryRunner_ExpoQueryRunner = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(ExpoQueryRunner, _super); // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function ExpoQueryRunner(driver) { var _this = _super.call(this) || this; _this.driver = driver; _this.connection = driver.connection; _this.broadcaster = new Broadcaster["a" /* Broadcaster */](_this); return _this; } /** * Starts transaction. Within Expo, all database operations happen in a * transaction context, so issuing a `BEGIN TRANSACTION` command is * redundant and will result in the following error: * * `Error: Error code 1: cannot start a transaction within a transaction` * * Instead, we keep track of a `Transaction` object in `this.transaction` * and continue using the same object until we wish to commit the * transaction. */ ExpoQueryRunner.prototype.startTransaction = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var beforeBroadcastResult, afterBroadcastResult; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (this.isTransactionActive && typeof this.transaction !== "undefined") throw new TransactionAlreadyStartedError["a" /* TransactionAlreadyStartedError */](); beforeBroadcastResult = new BroadcasterResult["a" /* BroadcasterResult */](); this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult); if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2]; return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)]; case 1: _a.sent(); _a.label = 2; case 2: this.isTransactionActive = true; afterBroadcastResult = new BroadcasterResult["a" /* BroadcasterResult */](); this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult); if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 4]; return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)]; case 3: _a.sent(); _a.label = 4; case 4: return [2 /*return*/]; } }); }); }; /** * Commits transaction. * Error will be thrown if transaction was not started. * Since Expo will automatically commit the transaction once all the * callbacks of the transaction object have been completed, "committing" a * transaction in this driver's context means that we delete the transaction * object and set the stage for the next transaction. */ ExpoQueryRunner.prototype.commitTransaction = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var beforeBroadcastResult, afterBroadcastResult; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (!this.isTransactionActive && typeof this.transaction === "undefined") throw new TransactionNotStartedError["a" /* TransactionNotStartedError */](); beforeBroadcastResult = new BroadcasterResult["a" /* BroadcasterResult */](); this.broadcaster.broadcastBeforeTransactionCommitEvent(beforeBroadcastResult); if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2]; return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)]; case 1: _a.sent(); _a.label = 2; case 2: this.isTransactionActive = false; this.transaction = undefined; afterBroadcastResult = new BroadcasterResult["a" /* BroadcasterResult */](); this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult); if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 4]; return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)]; case 3: _a.sent(); _a.label = 4; case 4: return [2 /*return*/]; } }); }); }; /** * Rollbacks transaction. * Error will be thrown if transaction was not started. * This method's functionality is identical to `commitTransaction()` because * the transaction lifecycle is handled within the Expo transaction object. * Issuing separate statements for `COMMIT` or `ROLLBACK` aren't necessary. */ ExpoQueryRunner.prototype.rollbackTransaction = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var beforeBroadcastResult, afterBroadcastResult; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (!this.isTransactionActive && typeof this.transaction === "undefined") throw new TransactionNotStartedError["a" /* TransactionNotStartedError */](); beforeBroadcastResult = new BroadcasterResult["a" /* BroadcasterResult */](); this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult); if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2]; return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)]; case 1: _a.sent(); _a.label = 2; case 2: this.isTransactionActive = false; this.transaction = undefined; afterBroadcastResult = new BroadcasterResult["a" /* BroadcasterResult */](); this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult); if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 4]; return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)]; case 3: _a.sent(); _a.label = 4; case 4: return [2 /*return*/]; } }); }); }; /** * Executes a given SQL query. */ ExpoQueryRunner.prototype.query = function (query, parameters) { var _this = this; if (this.isReleased) throw new QueryRunnerAlreadyReleasedError["a" /* QueryRunnerAlreadyReleasedError */](); return new Promise(function (ok, fail) { return Object(tslib_es6["b" /* __awaiter */])(_this, void 0, void 0, function () { var databaseConnection, queryStartTime; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.connect()]; case 1: databaseConnection = _a.sent(); this.driver.connection.logger.logQuery(query, parameters, this); queryStartTime = +new Date(); // All Expo SQL queries are executed in a transaction context databaseConnection.transaction(function (transaction) { if (typeof _this.transaction === "undefined") { _this.startTransaction(); _this.transaction = transaction; } _this.transaction.executeSql(query, parameters, function (t, result) { // log slow queries if maxQueryExecution time is set var maxQueryExecutionTime = _this.driver.connection.options.maxQueryExecutionTime; var queryEndTime = +new Date(); var queryExecutionTime = queryEndTime - queryStartTime; if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime) { _this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, _this); } // return id of inserted row, if query was insert statement. if (query.substr(0, 11) === "INSERT INTO") { ok(result.insertId); } else { var resultSet = []; for (var i = 0; i < result.rows.length; i++) { resultSet.push(result.rows.item(i)); } ok(resultSet); } }, function (t, err) { _this.driver.connection.logger.logQueryError(err, query, parameters, _this); fail(new QueryFailedError["a" /* QueryFailedError */](query, parameters, err)); }); }, function (err) { _this.rollbackTransaction(); }, function () { _this.isTransactionActive = false; _this.transaction = undefined; }); return [2 /*return*/]; } }); }); }); }; return ExpoQueryRunner; }(AbstractSqliteQueryRunner["a" /* AbstractSqliteQueryRunner */])); //# sourceMappingURL=ExpoQueryRunner.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/driver/expo/ExpoDriver.js var ExpoDriver_ExpoDriver = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(ExpoDriver, _super); // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function ExpoDriver(connection) { var _this = _super.call(this, connection) || this; _this.database = _this.options.database; // validate options to make sure everything is set if (!_this.options.database) throw new DriverOptionNotSetError["a" /* DriverOptionNotSetError */]("database"); if (!_this.options.driver) throw new DriverOptionNotSetError["a" /* DriverOptionNotSetError */]("driver"); // load sqlite package _this.sqlite = _this.options.driver; return _this; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Closes connection with database. */ ExpoDriver.prototype.disconnect = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, new Promise(function (ok, fail) { try { _this.queryRunner = undefined; _this.databaseConnection._db.close(); _this.databaseConnection = undefined; ok(); } catch (error) { fail(error); } })]; }); }); }; /** * Creates a query runner used to execute database queries. */ ExpoDriver.prototype.createQueryRunner = function (mode) { if (!this.queryRunner) this.queryRunner = new ExpoQueryRunner_ExpoQueryRunner(this); return this.queryRunner; }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Creates connection with the database. */ ExpoDriver.prototype.createDatabaseConnection = function () { var _this = this; return new Promise(function (ok, fail) { try { var databaseConnection_1 = _this.sqlite.openDatabase(_this.options.database); /* // we need to enable foreign keys in sqlite to make sure all foreign key related features // working properly. this also makes onDelete work with sqlite. */ databaseConnection_1.transaction(function (tsx) { tsx.executeSql("PRAGMA foreign_keys = ON;", [], function (t, result) { ok(databaseConnection_1); }, function (t, err) { fail({ transaction: t, error: err }); }); }, function (err) { fail(err); }); } catch (error) { fail(error); } }); }; return ExpoDriver; }(AbstractSqliteDriver["a" /* AbstractSqliteDriver */])); //# sourceMappingURL=ExpoDriver.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/platform/BrowserPlatformTools.js var BrowserPlatformTools = __webpack_require__(10); // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-runner/BaseQueryRunner.js + 1 modules var BaseQueryRunner = __webpack_require__(163); // EXTERNAL MODULE: ./node_modules/typeorm/browser/schema-builder/table/TableCheck.js var TableCheck = __webpack_require__(43); // EXTERNAL MODULE: ./node_modules/typeorm/browser/schema-builder/table/TableColumn.js var TableColumn = __webpack_require__(25); // EXTERNAL MODULE: ./node_modules/typeorm/browser/schema-builder/table/TableExclusion.js var TableExclusion = __webpack_require__(60); // EXTERNAL MODULE: ./node_modules/typeorm/browser/schema-builder/table/TableForeignKey.js var TableForeignKey = __webpack_require__(48); // EXTERNAL MODULE: ./node_modules/typeorm/browser/schema-builder/table/TableIndex.js var TableIndex = __webpack_require__(38); // EXTERNAL MODULE: ./node_modules/typeorm/browser/schema-builder/table/TableUnique.js var TableUnique = __webpack_require__(31); // EXTERNAL MODULE: ./node_modules/typeorm/browser/schema-builder/view/View.js var View = __webpack_require__(57); // EXTERNAL MODULE: ./node_modules/typeorm/browser/driver/Query.js var Query = __webpack_require__(2); // CONCATENATED MODULE: ./node_modules/typeorm/browser/driver/postgres/PostgresQueryRunner.js /** * Runs queries on a single postgres database connection. */ var PostgresQueryRunner_PostgresQueryRunner = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(PostgresQueryRunner, _super); // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function PostgresQueryRunner(driver, mode) { var _this = _super.call(this) || this; _this.driver = driver; _this.connection = driver.connection; _this.mode = mode; _this.broadcaster = new Broadcaster["a" /* Broadcaster */](_this); return _this; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Creates/uses database connection from the connection pool to perform further operations. * Returns obtained database connection. */ PostgresQueryRunner.prototype.connect = function () { var _this = this; if (this.databaseConnection) return Promise.resolve(this.databaseConnection); if (this.databaseConnectionPromise) return this.databaseConnectionPromise; if (this.mode === "slave" && this.driver.isReplicated) { this.databaseConnectionPromise = this.driver.obtainSlaveConnection().then(function (_a) { var _b = Object(tslib_es6["e" /* __read */])(_a, 2), connection = _b[0], release = _b[1]; _this.driver.connectedQueryRunners.push(_this); _this.databaseConnection = connection; var onErrorCallback = function () { return _this.release(); }; _this.releaseCallback = function () { _this.databaseConnection.removeListener("error", onErrorCallback); release(); }; _this.databaseConnection.on("error", onErrorCallback); return _this.databaseConnection; }); } else { // master this.databaseConnectionPromise = this.driver.obtainMasterConnection().then(function (_a) { var _b = Object(tslib_es6["e" /* __read */])(_a, 2), connection = _b[0], release = _b[1]; _this.driver.connectedQueryRunners.push(_this); _this.databaseConnection = connection; var onErrorCallback = function () { return _this.release(); }; _this.releaseCallback = function () { _this.databaseConnection.removeListener("error", onErrorCallback); release(); }; _this.databaseConnection.on("error", onErrorCallback); return _this.databaseConnection; }); } return this.databaseConnectionPromise; }; /** * Releases used database connection. * You cannot use query runner methods once its released. */ PostgresQueryRunner.prototype.release = function () { if (this.isReleased) { return Promise.resolve(); } this.isReleased = true; if (this.releaseCallback) this.releaseCallback(); var index = this.driver.connectedQueryRunners.indexOf(this); if (index !== -1) this.driver.connectedQueryRunners.splice(index); return Promise.resolve(); }; /** * Starts transaction. */ PostgresQueryRunner.prototype.startTransaction = function (isolationLevel) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var beforeBroadcastResult, afterBroadcastResult; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (this.isTransactionActive) throw new TransactionAlreadyStartedError["a" /* TransactionAlreadyStartedError */](); beforeBroadcastResult = new BroadcasterResult["a" /* BroadcasterResult */](); this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult); if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2]; return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)]; case 1: _a.sent(); _a.label = 2; case 2: this.isTransactionActive = true; return [4 /*yield*/, this.query("START TRANSACTION")]; case 3: _a.sent(); if (!isolationLevel) return [3 /*break*/, 5]; return [4 /*yield*/, this.query("SET TRANSACTION ISOLATION LEVEL " + isolationLevel)]; case 4: _a.sent(); _a.label = 5; case 5: afterBroadcastResult = new BroadcasterResult["a" /* BroadcasterResult */](); this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult); if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 7]; return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)]; case 6: _a.sent(); _a.label = 7; case 7: return [2 /*return*/]; } }); }); }; /** * Commits transaction. * Error will be thrown if transaction was not started. */ PostgresQueryRunner.prototype.commitTransaction = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var beforeBroadcastResult, afterBroadcastResult; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (!this.isTransactionActive) throw new TransactionNotStartedError["a" /* TransactionNotStartedError */](); beforeBroadcastResult = new BroadcasterResult["a" /* BroadcasterResult */](); this.broadcaster.broadcastBeforeTransactionCommitEvent(beforeBroadcastResult); if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2]; return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)]; case 1: _a.sent(); _a.label = 2; case 2: return [4 /*yield*/, this.query("COMMIT")]; case 3: _a.sent(); this.isTransactionActive = false; afterBroadcastResult = new BroadcasterResult["a" /* BroadcasterResult */](); this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult); if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5]; return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)]; case 4: _a.sent(); _a.label = 5; case 5: return [2 /*return*/]; } }); }); }; /** * Rollbacks transaction. * Error will be thrown if transaction was not started. */ PostgresQueryRunner.prototype.rollbackTransaction = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var beforeBroadcastResult, afterBroadcastResult; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (!this.isTransactionActive) throw new TransactionNotStartedError["a" /* TransactionNotStartedError */](); beforeBroadcastResult = new BroadcasterResult["a" /* BroadcasterResult */](); this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult); if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2]; return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)]; case 1: _a.sent(); _a.label = 2; case 2: return [4 /*yield*/, this.query("ROLLBACK")]; case 3: _a.sent(); this.isTransactionActive = false; afterBroadcastResult = new BroadcasterResult["a" /* BroadcasterResult */](); this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult); if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5]; return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)]; case 4: _a.sent(); _a.label = 5; case 5: return [2 /*return*/]; } }); }); }; /** * Executes a given SQL query. */ PostgresQueryRunner.prototype.query = function (query, parameters) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var databaseConnection, queryStartTime, result, maxQueryExecutionTime, queryEndTime, queryExecutionTime, err_1; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (this.isReleased) throw new QueryRunnerAlreadyReleasedError["a" /* QueryRunnerAlreadyReleasedError */](); return [4 /*yield*/, this.connect()]; case 1: databaseConnection = _a.sent(); this.driver.connection.logger.logQuery(query, parameters, this); _a.label = 2; case 2: _a.trys.push([2, 4, , 5]); queryStartTime = +new Date(); return [4 /*yield*/, databaseConnection.query(query, parameters)]; case 3: result = _a.sent(); maxQueryExecutionTime = this.driver.connection.options.maxQueryExecutionTime; queryEndTime = +new Date(); queryExecutionTime = queryEndTime - queryStartTime; if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime) this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this); switch (result.command) { case "DELETE": case "UPDATE": // for UPDATE and DELETE query additionally return number of affected rows return [2 /*return*/, [result.rows, result.rowCount]]; break; default: return [2 /*return*/, result.rows]; } return [3 /*break*/, 5]; case 4: err_1 = _a.sent(); this.driver.connection.logger.logQueryError(err_1, query, parameters, this); throw new QueryFailedError["a" /* QueryFailedError */](query, parameters, err_1); case 5: return [2 /*return*/]; } }); }); }; /** * Returns raw data stream. */ PostgresQueryRunner.prototype.stream = function (query, parameters, onEnd, onError) { var _this = this; var QueryStream = this.driver.loadStreamDependency(); if (this.isReleased) throw new QueryRunnerAlreadyReleasedError["a" /* QueryRunnerAlreadyReleasedError */](); return new Promise(function (ok, fail) { return Object(tslib_es6["b" /* __awaiter */])(_this, void 0, void 0, function () { var databaseConnection, stream, err_2; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); return [4 /*yield*/, this.connect()]; case 1: databaseConnection = _a.sent(); this.driver.connection.logger.logQuery(query, parameters, this); stream = databaseConnection.query(new QueryStream(query, parameters)); if (onEnd) stream.on("end", onEnd); if (onError) stream.on("error", onError); ok(stream); return [3 /*break*/, 3]; case 2: err_2 = _a.sent(); fail(err_2); return [3 /*break*/, 3]; case 3: return [2 /*return*/]; } }); }); }); }; /** * Returns all available database names including system databases. */ PostgresQueryRunner.prototype.getDatabases = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, Promise.resolve([])]; }); }); }; /** * Returns all available schema names including system schemas. * If database parameter specified, returns schemas of that database. */ PostgresQueryRunner.prototype.getSchemas = function (database) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, Promise.resolve([])]; }); }); }; /** * Checks if database with the given name exist. */ PostgresQueryRunner.prototype.hasDatabase = function (database) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, Promise.resolve(false)]; }); }); }; /** * Checks if schema with the given name exist. */ PostgresQueryRunner.prototype.hasSchema = function (schema) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var result; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.query("SELECT * FROM \"information_schema\".\"schemata\" WHERE \"schema_name\" = '" + schema + "'")]; case 1: result = _a.sent(); return [2 /*return*/, result.length ? true : false]; } }); }); }; /** * Checks if table with the given name exist in the database. */ PostgresQueryRunner.prototype.hasTable = function (tableOrName) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var parsedTableName, sql, result; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: parsedTableName = this.parseTableName(tableOrName); sql = "SELECT * FROM \"information_schema\".\"tables\" WHERE \"table_schema\" = " + parsedTableName.schema + " AND \"table_name\" = " + parsedTableName.tableName; return [4 /*yield*/, this.query(sql)]; case 1: result = _a.sent(); return [2 /*return*/, result.length ? true : false]; } }); }); }; /** * Checks if column with the given name exist in the given table. */ PostgresQueryRunner.prototype.hasColumn = function (tableOrName, columnName) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var parsedTableName, sql, result; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: parsedTableName = this.parseTableName(tableOrName); sql = "SELECT * FROM \"information_schema\".\"columns\" WHERE \"table_schema\" = " + parsedTableName.schema + " AND \"table_name\" = " + parsedTableName.tableName + " AND \"column_name\" = '" + columnName + "'"; return [4 /*yield*/, this.query(sql)]; case 1: result = _a.sent(); return [2 /*return*/, result.length ? true : false]; } }); }); }; /** * Creates a new database. * Postgres does not supports database creation inside a transaction block. */ PostgresQueryRunner.prototype.createDatabase = function (database, ifNotExist) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, Promise.resolve()]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Drops database. * Postgres does not supports database drop inside a transaction block. */ PostgresQueryRunner.prototype.dropDatabase = function (database, ifExist) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, Promise.resolve()]; }); }); }; /** * Creates a new table schema. */ PostgresQueryRunner.prototype.createSchema = function (schema, ifNotExist) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var up, down; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: up = ifNotExist ? "CREATE SCHEMA IF NOT EXISTS \"" + schema + "\"" : "CREATE SCHEMA \"" + schema + "\""; down = "DROP SCHEMA \"" + schema + "\" CASCADE"; return [4 /*yield*/, this.executeQueries(new Query["a" /* Query */](up), new Query["a" /* Query */](down))]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Drops table schema. */ PostgresQueryRunner.prototype.dropSchema = function (schemaPath, ifExist, isCascade) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var schema, up, down; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: schema = schemaPath.indexOf(".") === -1 ? schemaPath : schemaPath.split(".")[0]; up = ifExist ? "DROP SCHEMA IF EXISTS \"" + schema + "\" " + (isCascade ? "CASCADE" : "") : "DROP SCHEMA \"" + schema + "\" " + (isCascade ? "CASCADE" : ""); down = "CREATE SCHEMA \"" + schema + "\""; return [4 /*yield*/, this.executeQueries(new Query["a" /* Query */](up), new Query["a" /* Query */](down))]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Creates a new table. */ PostgresQueryRunner.prototype.createTable = function (table, ifNotExist, createForeignKeys, createIndices) { if (ifNotExist === void 0) { ifNotExist = false; } if (createForeignKeys === void 0) { createForeignKeys = true; } if (createIndices === void 0) { createIndices = true; } return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var isTableExist, upQueries, downQueries, enumColumns, createdEnumTypes, enumColumns_1, enumColumns_1_1, column, hasEnum, enumName, e_1_1; var e_1, _a; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: if (!ifNotExist) return [3 /*break*/, 2]; return [4 /*yield*/, this.hasTable(table)]; case 1: isTableExist = _b.sent(); if (isTableExist) return [2 /*return*/, Promise.resolve()]; _b.label = 2; case 2: upQueries = []; downQueries = []; enumColumns = table.columns.filter(function (column) { return column.type === "enum" || column.type === "simple-enum"; }); createdEnumTypes = []; _b.label = 3; case 3: _b.trys.push([3, 8, 9, 10]); enumColumns_1 = Object(tslib_es6["g" /* __values */])(enumColumns), enumColumns_1_1 = enumColumns_1.next(); _b.label = 4; case 4: if (!!enumColumns_1_1.done) return [3 /*break*/, 7]; column = enumColumns_1_1.value; return [4 /*yield*/, this.hasEnumType(table, column)]; case 5: hasEnum = _b.sent(); enumName = this.buildEnumName(table, column); // if enum with the same "enumName" is defined more then once, me must prevent double creation if (!hasEnum && createdEnumTypes.indexOf(enumName) === -1) { createdEnumTypes.push(enumName); upQueries.push(this.createEnumTypeSql(table, column, enumName)); downQueries.push(this.dropEnumTypeSql(table, column, enumName)); } _b.label = 6; case 6: enumColumns_1_1 = enumColumns_1.next(); return [3 /*break*/, 4]; case 7: return [3 /*break*/, 10]; case 8: e_1_1 = _b.sent(); e_1 = { error: e_1_1 }; return [3 /*break*/, 10]; case 9: try { if (enumColumns_1_1 && !enumColumns_1_1.done && (_a = enumColumns_1.return)) _a.call(enumColumns_1); } finally { if (e_1) throw e_1.error; } return [7 /*endfinally*/]; case 10: upQueries.push(this.createTableSql(table, createForeignKeys)); downQueries.push(this.dropTableSql(table)); // if createForeignKeys is true, we must drop created foreign keys in down query. // createTable does not need separate method to create foreign keys, because it create fk's in the same query with table creation. if (createForeignKeys) table.foreignKeys.forEach(function (foreignKey) { return downQueries.push(_this.dropForeignKeySql(table, foreignKey)); }); if (createIndices) { table.indices.forEach(function (index) { // new index may be passed without name. In this case we generate index name manually. if (!index.name) index.name = _this.connection.namingStrategy.indexName(table.name, index.columnNames, index.where); upQueries.push(_this.createIndexSql(table, index)); downQueries.push(_this.dropIndexSql(table, index)); }); } return [4 /*yield*/, this.executeQueries(upQueries, downQueries)]; case 11: _b.sent(); return [2 /*return*/]; } }); }); }; /** * Drops the table. */ PostgresQueryRunner.prototype.dropTable = function (target, ifExist, dropForeignKeys, dropIndices) { if (dropForeignKeys === void 0) { dropForeignKeys = true; } if (dropIndices === void 0) { dropIndices = true; } return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var isTableExist, createForeignKeys, tableName, table, upQueries, downQueries; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (!ifExist) return [3 /*break*/, 2]; return [4 /*yield*/, this.hasTable(target)]; case 1: isTableExist = _a.sent(); if (!isTableExist) return [2 /*return*/, Promise.resolve()]; _a.label = 2; case 2: createForeignKeys = dropForeignKeys; tableName = target instanceof Table["a" /* Table */] ? target.name : target; return [4 /*yield*/, this.getCachedTable(tableName)]; case 3: table = _a.sent(); upQueries = []; downQueries = []; if (dropIndices) { table.indices.forEach(function (index) { upQueries.push(_this.dropIndexSql(table, index)); downQueries.push(_this.createIndexSql(table, index)); }); } if (dropForeignKeys) table.foreignKeys.forEach(function (foreignKey) { return upQueries.push(_this.dropForeignKeySql(table, foreignKey)); }); upQueries.push(this.dropTableSql(table)); downQueries.push(this.createTableSql(table, createForeignKeys)); return [4 /*yield*/, this.executeQueries(upQueries, downQueries)]; case 4: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Creates a new view. */ PostgresQueryRunner.prototype.createView = function (view) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var upQueries, downQueries, _a, _b, _c, _d; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: upQueries = []; downQueries = []; upQueries.push(this.createViewSql(view)); _b = (_a = upQueries).push; return [4 /*yield*/, this.insertViewDefinitionSql(view)]; case 1: _b.apply(_a, [_e.sent()]); downQueries.push(this.dropViewSql(view)); _d = (_c = downQueries).push; return [4 /*yield*/, this.deleteViewDefinitionSql(view)]; case 2: _d.apply(_c, [_e.sent()]); return [4 /*yield*/, this.executeQueries(upQueries, downQueries)]; case 3: _e.sent(); return [2 /*return*/]; } }); }); }; /** * Drops the view. */ PostgresQueryRunner.prototype.dropView = function (target) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var viewName, view, upQueries, downQueries, _a, _b, _c, _d; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: viewName = target instanceof View["a" /* View */] ? target.name : target; return [4 /*yield*/, this.getCachedView(viewName)]; case 1: view = _e.sent(); upQueries = []; downQueries = []; _b = (_a = upQueries).push; return [4 /*yield*/, this.deleteViewDefinitionSql(view)]; case 2: _b.apply(_a, [_e.sent()]); upQueries.push(this.dropViewSql(view)); _d = (_c = downQueries).push; return [4 /*yield*/, this.insertViewDefinitionSql(view)]; case 3: _d.apply(_c, [_e.sent()]); downQueries.push(this.createViewSql(view)); return [4 /*yield*/, this.executeQueries(upQueries, downQueries)]; case 4: _e.sent(); return [2 /*return*/]; } }); }); }; /** * Renames the given table. */ PostgresQueryRunner.prototype.renameTable = function (oldTableOrName, newTableName) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var upQueries, downQueries, oldTable, _a, newTable, oldTableName, schemaName, columnNames, oldPkName, newPkName, enumColumns, enumColumns_2, enumColumns_2_1, column, oldEnumType, e_2_1; var e_2, _b; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_c) { switch (_c.label) { case 0: upQueries = []; downQueries = []; if (!(oldTableOrName instanceof Table["a" /* Table */])) return [3 /*break*/, 1]; _a = oldTableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(oldTableOrName)]; case 2: _a = _c.sent(); _c.label = 3; case 3: oldTable = _a; newTable = oldTable.clone(); oldTableName = oldTable.name.indexOf(".") === -1 ? oldTable.name : oldTable.name.split(".")[1]; schemaName = oldTable.name.indexOf(".") === -1 ? undefined : oldTable.name.split(".")[0]; newTable.name = schemaName ? schemaName + "." + newTableName : newTableName; upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(oldTable) + " RENAME TO \"" + newTableName + "\"")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(newTable) + " RENAME TO \"" + oldTableName + "\"")); // rename column primary key constraint if (newTable.primaryColumns.length > 0) { columnNames = newTable.primaryColumns.map(function (column) { return column.name; }); oldPkName = this.connection.namingStrategy.primaryKeyName(oldTable, columnNames); newPkName = this.connection.namingStrategy.primaryKeyName(newTable, columnNames); upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(newTable) + " RENAME CONSTRAINT \"" + oldPkName + "\" TO \"" + newPkName + "\"")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(newTable) + " RENAME CONSTRAINT \"" + newPkName + "\" TO \"" + oldPkName + "\"")); } // rename sequences newTable.columns.map(function (col) { if (col.isGenerated && col.generationStrategy === "increment") { var seqName = _this.buildSequenceName(oldTable, col.name, undefined, true, true); var newSeqName = _this.buildSequenceName(newTable, col.name, undefined, true, true); var up = schemaName ? "ALTER SEQUENCE \"" + schemaName + "\".\"" + seqName + "\" RENAME TO \"" + newSeqName + "\"" : "ALTER SEQUENCE \"" + seqName + "\" RENAME TO \"" + newSeqName + "\""; var down = schemaName ? "ALTER SEQUENCE \"" + schemaName + "\".\"" + newSeqName + "\" RENAME TO \"" + seqName + "\"" : "ALTER SEQUENCE \"" + newSeqName + "\" RENAME TO \"" + seqName + "\""; upQueries.push(new Query["a" /* Query */](up)); downQueries.push(new Query["a" /* Query */](down)); } }); // rename unique constraints newTable.uniques.forEach(function (unique) { // build new constraint name var newUniqueName = _this.connection.namingStrategy.uniqueConstraintName(newTable, unique.columnNames); // build queries upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + _this.escapePath(newTable) + " RENAME CONSTRAINT \"" + unique.name + "\" TO \"" + newUniqueName + "\"")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + _this.escapePath(newTable) + " RENAME CONSTRAINT \"" + newUniqueName + "\" TO \"" + unique.name + "\"")); // replace constraint name unique.name = newUniqueName; }); // rename index constraints newTable.indices.forEach(function (index) { // build new constraint name var schema = _this.extractSchema(newTable); var newIndexName = _this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where); // build queries var up = schema ? "ALTER INDEX \"" + schema + "\".\"" + index.name + "\" RENAME TO \"" + newIndexName + "\"" : "ALTER INDEX \"" + index.name + "\" RENAME TO \"" + newIndexName + "\""; var down = schema ? "ALTER INDEX \"" + schema + "\".\"" + newIndexName + "\" RENAME TO \"" + index.name + "\"" : "ALTER INDEX \"" + newIndexName + "\" RENAME TO \"" + index.name + "\""; upQueries.push(new Query["a" /* Query */](up)); downQueries.push(new Query["a" /* Query */](down)); // replace constraint name index.name = newIndexName; }); // rename foreign key constraints newTable.foreignKeys.forEach(function (foreignKey) { // build new constraint name var newForeignKeyName = _this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames); // build queries upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + _this.escapePath(newTable) + " RENAME CONSTRAINT \"" + foreignKey.name + "\" TO \"" + newForeignKeyName + "\"")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + _this.escapePath(newTable) + " RENAME CONSTRAINT \"" + newForeignKeyName + "\" TO \"" + foreignKey.name + "\"")); // replace constraint name foreignKey.name = newForeignKeyName; }); enumColumns = newTable.columns.filter(function (column) { return column.type === "enum" || column.type === "simple-enum"; }); _c.label = 4; case 4: _c.trys.push([4, 9, 10, 11]); enumColumns_2 = Object(tslib_es6["g" /* __values */])(enumColumns), enumColumns_2_1 = enumColumns_2.next(); _c.label = 5; case 5: if (!!enumColumns_2_1.done) return [3 /*break*/, 8]; column = enumColumns_2_1.value; return [4 /*yield*/, this.getEnumTypeName(oldTable, column)]; case 6: oldEnumType = _c.sent(); upQueries.push(new Query["a" /* Query */]("ALTER TYPE \"" + oldEnumType.enumTypeSchema + "\".\"" + oldEnumType.enumTypeName + "\" RENAME TO " + this.buildEnumName(newTable, column, false))); downQueries.push(new Query["a" /* Query */]("ALTER TYPE " + this.buildEnumName(newTable, column) + " RENAME TO \"" + oldEnumType.enumTypeName + "\"")); _c.label = 7; case 7: enumColumns_2_1 = enumColumns_2.next(); return [3 /*break*/, 5]; case 8: return [3 /*break*/, 11]; case 9: e_2_1 = _c.sent(); e_2 = { error: e_2_1 }; return [3 /*break*/, 11]; case 10: try { if (enumColumns_2_1 && !enumColumns_2_1.done && (_b = enumColumns_2.return)) _b.call(enumColumns_2); } finally { if (e_2) throw e_2.error; } return [7 /*endfinally*/]; case 11: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)]; case 12: _c.sent(); return [2 /*return*/]; } }); }); }; /** * Creates a new column from the column in the table. */ PostgresQueryRunner.prototype.addColumn = function (tableOrName, column) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, _a, clonedTable, upQueries, downQueries, hasEnum, primaryColumns, pkName_1, columnNames_1, pkName, columnNames, columnIndex, uniqueConstraint; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof Table["a" /* Table */])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; clonedTable = table.clone(); upQueries = []; downQueries = []; if (!(column.type === "enum" || column.type === "simple-enum")) return [3 /*break*/, 5]; return [4 /*yield*/, this.hasEnumType(table, column)]; case 4: hasEnum = _b.sent(); if (!hasEnum) { upQueries.push(this.createEnumTypeSql(table, column)); downQueries.push(this.dropEnumTypeSql(table, column)); } _b.label = 5; case 5: upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ADD " + this.buildCreateColumnSql(table, column))); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " DROP COLUMN \"" + column.name + "\"")); // create or update primary key constraint if (column.isPrimary) { primaryColumns = clonedTable.primaryColumns; // if table already have primary key, me must drop it and recreate again if (primaryColumns.length > 0) { pkName_1 = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; })); columnNames_1 = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", "); upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName_1 + "\"")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName_1 + "\" PRIMARY KEY (" + columnNames_1 + ")")); } primaryColumns.push(column); pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; })); columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", "); upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\"")); } columnIndex = clonedTable.indices.find(function (index) { return index.columnNames.length === 1 && index.columnNames[0] === column.name; }); if (columnIndex) { upQueries.push(this.createIndexSql(table, columnIndex)); downQueries.push(this.dropIndexSql(table, columnIndex)); } // create unique constraint if (column.isUnique) { uniqueConstraint = new TableUnique["a" /* TableUnique */]({ name: this.connection.namingStrategy.uniqueConstraintName(table.name, [column.name]), columnNames: [column.name] }); clonedTable.uniques.push(uniqueConstraint); upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (\"" + column.name + "\")")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + uniqueConstraint.name + "\"")); } // create column's comment if (column.comment) { upQueries.push(new Query["a" /* Query */]("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + column.name + "\" IS " + this.escapeComment(column.comment))); downQueries.push(new Query["a" /* Query */]("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + column.name + "\" IS " + this.escapeComment(column.comment))); } return [4 /*yield*/, this.executeQueries(upQueries, downQueries)]; case 6: _b.sent(); clonedTable.addColumn(column); this.replaceCachedTable(table, clonedTable); return [2 /*return*/]; } }); }); }; /** * Creates a new columns from the column in the table. */ PostgresQueryRunner.prototype.addColumns = function (tableOrName, columns) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var columns_1, columns_1_1, column, e_3_1; var e_3, _a; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 5, 6, 7]); columns_1 = Object(tslib_es6["g" /* __values */])(columns), columns_1_1 = columns_1.next(); _b.label = 1; case 1: if (!!columns_1_1.done) return [3 /*break*/, 4]; column = columns_1_1.value; return [4 /*yield*/, this.addColumn(tableOrName, column)]; case 2: _b.sent(); _b.label = 3; case 3: columns_1_1 = columns_1.next(); return [3 /*break*/, 1]; case 4: return [3 /*break*/, 7]; case 5: e_3_1 = _b.sent(); e_3 = { error: e_3_1 }; return [3 /*break*/, 7]; case 6: try { if (columns_1_1 && !columns_1_1.done && (_a = columns_1.return)) _a.call(columns_1); } finally { if (e_3) throw e_3.error; } return [7 /*endfinally*/]; case 7: return [2 /*return*/]; } }); }); }; /** * Renames column in the given table. */ PostgresQueryRunner.prototype.renameColumn = function (tableOrName, oldTableColumnOrName, newTableColumnOrName) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, _a, oldColumn, newColumn; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof Table["a" /* Table */])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; oldColumn = oldTableColumnOrName instanceof TableColumn["a" /* TableColumn */] ? oldTableColumnOrName : table.columns.find(function (c) { return c.name === oldTableColumnOrName; }); if (!oldColumn) throw new Error("Column \"" + oldTableColumnOrName + "\" was not found in the \"" + table.name + "\" table."); if (newTableColumnOrName instanceof TableColumn["a" /* TableColumn */]) { newColumn = newTableColumnOrName; } else { newColumn = oldColumn.clone(); newColumn.name = newTableColumnOrName; } return [2 /*return*/, this.changeColumn(table, oldColumn, newColumn)]; } }); }); }; /** * Changes a column in the table. */ PostgresQueryRunner.prototype.changeColumn = function (tableOrName, oldTableColumnOrName, newColumn) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, _a, clonedTable, upQueries, downQueries, defaultValueChanged, oldColumn, oldEnumType, primaryColumns, columnNames, oldPkName, newPkName, schema, seqName, newSeqName, up, down, oldTableColumn, arraySuffix, newEnumName, oldEnumName, oldEnumNameWithoutSchema, oldEnumNameWithSchema_old, oldEnumNameWithoutSchema_old, upType, downType, primaryColumns, pkName, columnNames, column, pkName, columnNames, primaryColumn, column, pkName, columnNames, uniqueConstraint, uniqueConstraint; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof Table["a" /* Table */])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; clonedTable = table.clone(); upQueries = []; downQueries = []; defaultValueChanged = false; oldColumn = oldTableColumnOrName instanceof TableColumn["a" /* TableColumn */] ? oldTableColumnOrName : table.columns.find(function (column) { return column.name === oldTableColumnOrName; }); if (!oldColumn) throw new Error("Column \"" + oldTableColumnOrName + "\" was not found in the \"" + table.name + "\" table."); if (!(oldColumn.type !== newColumn.type || oldColumn.length !== newColumn.length || newColumn.isArray !== oldColumn.isArray)) return [3 /*break*/, 6]; // To avoid data conversion, we just recreate column return [4 /*yield*/, this.dropColumn(table, oldColumn)]; case 4: // To avoid data conversion, we just recreate column _b.sent(); return [4 /*yield*/, this.addColumn(table, newColumn)]; case 5: _b.sent(); // update cloned table clonedTable = table.clone(); return [3 /*break*/, 10]; case 6: if (!(oldColumn.name !== newColumn.name)) return [3 /*break*/, 9]; // rename column upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " RENAME COLUMN \"" + oldColumn.name + "\" TO \"" + newColumn.name + "\"")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " RENAME COLUMN \"" + newColumn.name + "\" TO \"" + oldColumn.name + "\"")); if (!(oldColumn.type === "enum" || oldColumn.type === "simple-enum")) return [3 /*break*/, 8]; return [4 /*yield*/, this.getEnumTypeName(table, oldColumn)]; case 7: oldEnumType = _b.sent(); upQueries.push(new Query["a" /* Query */]("ALTER TYPE \"" + oldEnumType.enumTypeSchema + "\".\"" + oldEnumType.enumTypeName + "\" RENAME TO " + this.buildEnumName(table, newColumn, false))); downQueries.push(new Query["a" /* Query */]("ALTER TYPE " + this.buildEnumName(table, newColumn) + " RENAME TO \"" + oldEnumType.enumTypeName + "\"")); _b.label = 8; case 8: // rename column primary key constraint if (oldColumn.isPrimary === true) { primaryColumns = clonedTable.primaryColumns; columnNames = primaryColumns.map(function (column) { return column.name; }); oldPkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames); // replace old column name with new column name columnNames.splice(columnNames.indexOf(oldColumn.name), 1); columnNames.push(newColumn.name); newPkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames); upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " RENAME CONSTRAINT \"" + oldPkName + "\" TO \"" + newPkName + "\"")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " RENAME CONSTRAINT \"" + newPkName + "\" TO \"" + oldPkName + "\"")); } // rename column sequence if (oldColumn.isGenerated === true && newColumn.generationStrategy === "increment") { schema = this.extractSchema(table); seqName = this.buildSequenceName(table, oldColumn.name, undefined, true, true); newSeqName = this.buildSequenceName(table, newColumn.name, undefined, true, true); up = schema ? "ALTER SEQUENCE \"" + schema + "\".\"" + seqName + "\" RENAME TO \"" + newSeqName + "\"" : "ALTER SEQUENCE \"" + seqName + "\" RENAME TO \"" + newSeqName + "\""; down = schema ? "ALTER SEQUENCE \"" + schema + "\".\"" + newSeqName + "\" RENAME TO \"" + seqName + "\"" : "ALTER SEQUENCE \"" + newSeqName + "\" RENAME TO \"" + seqName + "\""; upQueries.push(new Query["a" /* Query */](up)); downQueries.push(new Query["a" /* Query */](down)); } // rename unique constraints clonedTable.findColumnUniques(oldColumn).forEach(function (unique) { // build new constraint name unique.columnNames.splice(unique.columnNames.indexOf(oldColumn.name), 1); unique.columnNames.push(newColumn.name); var newUniqueName = _this.connection.namingStrategy.uniqueConstraintName(clonedTable, unique.columnNames); // build queries upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + _this.escapePath(table) + " RENAME CONSTRAINT \"" + unique.name + "\" TO \"" + newUniqueName + "\"")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + _this.escapePath(table) + " RENAME CONSTRAINT \"" + newUniqueName + "\" TO \"" + unique.name + "\"")); // replace constraint name unique.name = newUniqueName; }); // rename index constraints clonedTable.findColumnIndices(oldColumn).forEach(function (index) { // build new constraint name index.columnNames.splice(index.columnNames.indexOf(oldColumn.name), 1); index.columnNames.push(newColumn.name); var schema = _this.extractSchema(table); var newIndexName = _this.connection.namingStrategy.indexName(clonedTable, index.columnNames, index.where); // build queries var up = schema ? "ALTER INDEX \"" + schema + "\".\"" + index.name + "\" RENAME TO \"" + newIndexName + "\"" : "ALTER INDEX \"" + index.name + "\" RENAME TO \"" + newIndexName + "\""; var down = schema ? "ALTER INDEX \"" + schema + "\".\"" + newIndexName + "\" RENAME TO \"" + index.name + "\"" : "ALTER INDEX \"" + newIndexName + "\" RENAME TO \"" + index.name + "\""; upQueries.push(new Query["a" /* Query */](up)); downQueries.push(new Query["a" /* Query */](down)); // replace constraint name index.name = newIndexName; }); // rename foreign key constraints clonedTable.findColumnForeignKeys(oldColumn).forEach(function (foreignKey) { // build new constraint name foreignKey.columnNames.splice(foreignKey.columnNames.indexOf(oldColumn.name), 1); foreignKey.columnNames.push(newColumn.name); var newForeignKeyName = _this.connection.namingStrategy.foreignKeyName(clonedTable, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames); // build queries upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + _this.escapePath(table) + " RENAME CONSTRAINT \"" + foreignKey.name + "\" TO \"" + newForeignKeyName + "\"")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + _this.escapePath(table) + " RENAME CONSTRAINT \"" + newForeignKeyName + "\" TO \"" + foreignKey.name + "\"")); // replace constraint name foreignKey.name = newForeignKeyName; }); oldTableColumn = clonedTable.columns.find(function (column) { return column.name === oldColumn.name; }); clonedTable.columns[clonedTable.columns.indexOf(oldTableColumn)].name = newColumn.name; oldColumn.name = newColumn.name; _b.label = 9; case 9: if (newColumn.precision !== oldColumn.precision || newColumn.scale !== oldColumn.scale) { upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + this.driver.createFullType(newColumn))); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + this.driver.createFullType(oldColumn))); } if ((newColumn.type === "enum" || newColumn.type === "simple-enum") && (oldColumn.type === "enum" || oldColumn.type === "simple-enum") && (!OrmUtils["a" /* OrmUtils */].isArraysEqual(newColumn.enum, oldColumn.enum) || newColumn.enumName !== oldColumn.enumName)) { arraySuffix = newColumn.isArray ? "[]" : ""; newEnumName = this.buildEnumName(table, newColumn); oldEnumName = this.buildEnumName(table, oldColumn); oldEnumNameWithoutSchema = this.buildEnumName(table, oldColumn, false); oldEnumNameWithSchema_old = this.buildEnumName(table, oldColumn, true, false, true); oldEnumNameWithoutSchema_old = this.buildEnumName(table, oldColumn, false, false, true); // rename old ENUM upQueries.push(new Query["a" /* Query */]("ALTER TYPE " + oldEnumName + " RENAME TO " + oldEnumNameWithoutSchema_old)); downQueries.push(new Query["a" /* Query */]("ALTER TYPE " + oldEnumNameWithSchema_old + " RENAME TO " + oldEnumNameWithoutSchema)); // create new ENUM upQueries.push(this.createEnumTypeSql(table, newColumn, newEnumName)); downQueries.push(this.dropEnumTypeSql(table, newColumn, newEnumName)); // if column have default value, we must drop it to avoid issues with type casting if (oldColumn.default !== null && oldColumn.default !== undefined) { // mark default as changed to prevent double update defaultValueChanged = true; upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + oldColumn.name + "\" DROP DEFAULT")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + oldColumn.name + "\" SET DEFAULT " + oldColumn.default)); } upType = "" + newEnumName + arraySuffix + " USING \"" + newColumn.name + "\"::\"text\"::" + newEnumName + arraySuffix; downType = "" + oldEnumNameWithSchema_old + arraySuffix + " USING \"" + newColumn.name + "\"::\"text\"::" + oldEnumNameWithSchema_old + arraySuffix; // update column to use new type upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + upType)); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + downType)); // restore column default or create new one if (newColumn.default !== null && newColumn.default !== undefined) { upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" SET DEFAULT " + newColumn.default)); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" DROP DEFAULT")); } // remove old ENUM upQueries.push(this.dropEnumTypeSql(table, oldColumn, oldEnumNameWithSchema_old)); downQueries.push(this.createEnumTypeSql(table, oldColumn, oldEnumNameWithSchema_old)); } if (oldColumn.isNullable !== newColumn.isNullable) { if (newColumn.isNullable) { upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + oldColumn.name + "\" DROP NOT NULL")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + oldColumn.name + "\" SET NOT NULL")); } else { upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + oldColumn.name + "\" SET NOT NULL")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + oldColumn.name + "\" DROP NOT NULL")); } } if (oldColumn.comment !== newColumn.comment) { upQueries.push(new Query["a" /* Query */]("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + oldColumn.name + "\" IS " + this.escapeComment(newColumn.comment))); downQueries.push(new Query["a" /* Query */]("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + newColumn.name + "\" IS " + this.escapeComment(oldColumn.comment))); } if (newColumn.isPrimary !== oldColumn.isPrimary) { primaryColumns = clonedTable.primaryColumns; // if primary column state changed, we must always drop existed constraint. if (primaryColumns.length > 0) { pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; })); columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", "); upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\"")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")")); } if (newColumn.isPrimary === true) { primaryColumns.push(newColumn); column = clonedTable.columns.find(function (column) { return column.name === newColumn.name; }); column.isPrimary = true; pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; })); columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", "); upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\"")); } else { primaryColumn = primaryColumns.find(function (c) { return c.name === newColumn.name; }); primaryColumns.splice(primaryColumns.indexOf(primaryColumn), 1); column = clonedTable.columns.find(function (column) { return column.name === newColumn.name; }); column.isPrimary = false; // if we have another primary keys, we must recreate constraint. if (primaryColumns.length > 0) { pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; })); columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", "); upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\"")); } } } if (newColumn.isUnique !== oldColumn.isUnique) { if (newColumn.isUnique === true) { uniqueConstraint = new TableUnique["a" /* TableUnique */]({ name: this.connection.namingStrategy.uniqueConstraintName(table.name, [newColumn.name]), columnNames: [newColumn.name] }); clonedTable.uniques.push(uniqueConstraint); upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (\"" + newColumn.name + "\")")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + uniqueConstraint.name + "\"")); } else { uniqueConstraint = clonedTable.uniques.find(function (unique) { return unique.columnNames.length === 1 && !!unique.columnNames.find(function (columnName) { return columnName === newColumn.name; }); }); clonedTable.uniques.splice(clonedTable.uniques.indexOf(uniqueConstraint), 1); upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + uniqueConstraint.name + "\"")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (\"" + newColumn.name + "\")")); } } if (oldColumn.isGenerated !== newColumn.isGenerated && newColumn.generationStrategy !== "uuid") { if (newColumn.isGenerated === true) { upQueries.push(new Query["a" /* Query */]("CREATE SEQUENCE " + this.buildSequenceName(table, newColumn) + " OWNED BY " + this.escapePath(table) + ".\"" + newColumn.name + "\"")); downQueries.push(new Query["a" /* Query */]("DROP SEQUENCE " + this.buildSequenceName(table, newColumn))); upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" SET DEFAULT nextval('" + this.buildSequenceName(table, newColumn, undefined, true) + "')")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" DROP DEFAULT")); } else { upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" DROP DEFAULT")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" SET DEFAULT nextval('" + this.buildSequenceName(table, newColumn, undefined, true) + "')")); upQueries.push(new Query["a" /* Query */]("DROP SEQUENCE " + this.buildSequenceName(table, newColumn))); downQueries.push(new Query["a" /* Query */]("CREATE SEQUENCE " + this.buildSequenceName(table, newColumn) + " OWNED BY " + this.escapePath(table) + ".\"" + newColumn.name + "\"")); } } // the default might have changed when the enum changed if (newColumn.default !== oldColumn.default && !defaultValueChanged) { if (newColumn.default !== null && newColumn.default !== undefined) { upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" SET DEFAULT " + newColumn.default)); if (oldColumn.default !== null && oldColumn.default !== undefined) { downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" SET DEFAULT " + oldColumn.default)); } else { downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" DROP DEFAULT")); } } else if (oldColumn.default !== null && oldColumn.default !== undefined) { upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" DROP DEFAULT")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" SET DEFAULT " + oldColumn.default)); } } if ((newColumn.spatialFeatureType || "").toLowerCase() !== (oldColumn.spatialFeatureType || "").toLowerCase() || newColumn.srid !== oldColumn.srid) { upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + this.driver.createFullType(newColumn))); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + this.driver.createFullType(oldColumn))); } _b.label = 10; case 10: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)]; case 11: _b.sent(); this.replaceCachedTable(table, clonedTable); return [2 /*return*/]; } }); }); }; /** * Changes a column in the table. */ PostgresQueryRunner.prototype.changeColumns = function (tableOrName, changedColumns) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var changedColumns_1, changedColumns_1_1, _a, oldColumn, newColumn, e_4_1; var e_4, _b; return Object(tslib_es6["d" /* __generator */])(this, function (_c) { switch (_c.label) { case 0: _c.trys.push([0, 5, 6, 7]); changedColumns_1 = Object(tslib_es6["g" /* __values */])(changedColumns), changedColumns_1_1 = changedColumns_1.next(); _c.label = 1; case 1: if (!!changedColumns_1_1.done) return [3 /*break*/, 4]; _a = changedColumns_1_1.value, oldColumn = _a.oldColumn, newColumn = _a.newColumn; return [4 /*yield*/, this.changeColumn(tableOrName, oldColumn, newColumn)]; case 2: _c.sent(); _c.label = 3; case 3: changedColumns_1_1 = changedColumns_1.next(); return [3 /*break*/, 1]; case 4: return [3 /*break*/, 7]; case 5: e_4_1 = _c.sent(); e_4 = { error: e_4_1 }; return [3 /*break*/, 7]; case 6: try { if (changedColumns_1_1 && !changedColumns_1_1.done && (_b = changedColumns_1.return)) _b.call(changedColumns_1); } finally { if (e_4) throw e_4.error; } return [7 /*endfinally*/]; case 7: return [2 /*return*/]; } }); }); }; /** * Drops column in the table. */ PostgresQueryRunner.prototype.dropColumn = function (tableOrName, columnOrName) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, _a, column, clonedTable, upQueries, downQueries, pkName, columnNames, tableColumn, pkName_2, columnNames_2, columnIndex, columnCheck, columnUnique, hasEnum, enumType, escapedEnumName; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof Table["a" /* Table */])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; column = columnOrName instanceof TableColumn["a" /* TableColumn */] ? columnOrName : table.findColumnByName(columnOrName); if (!column) throw new Error("Column \"" + columnOrName + "\" was not found in table \"" + table.name + "\""); clonedTable = table.clone(); upQueries = []; downQueries = []; // drop primary key constraint if (column.isPrimary) { pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, clonedTable.primaryColumns.map(function (column) { return column.name; })); columnNames = clonedTable.primaryColumns.map(function (primaryColumn) { return "\"" + primaryColumn.name + "\""; }).join(", "); upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(clonedTable) + " DROP CONSTRAINT \"" + pkName + "\"")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(clonedTable) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")")); tableColumn = clonedTable.findColumnByName(column.name); tableColumn.isPrimary = false; // if primary key have multiple columns, we must recreate it without dropped column if (clonedTable.primaryColumns.length > 0) { pkName_2 = this.connection.namingStrategy.primaryKeyName(clonedTable.name, clonedTable.primaryColumns.map(function (column) { return column.name; })); columnNames_2 = clonedTable.primaryColumns.map(function (primaryColumn) { return "\"" + primaryColumn.name + "\""; }).join(", "); upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(clonedTable) + " ADD CONSTRAINT \"" + pkName_2 + "\" PRIMARY KEY (" + columnNames_2 + ")")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(clonedTable) + " DROP CONSTRAINT \"" + pkName_2 + "\"")); } } columnIndex = clonedTable.indices.find(function (index) { return index.columnNames.length === 1 && index.columnNames[0] === column.name; }); if (columnIndex) { clonedTable.indices.splice(clonedTable.indices.indexOf(columnIndex), 1); upQueries.push(this.dropIndexSql(table, columnIndex)); downQueries.push(this.createIndexSql(table, columnIndex)); } columnCheck = clonedTable.checks.find(function (check) { return !!check.columnNames && check.columnNames.length === 1 && check.columnNames[0] === column.name; }); if (columnCheck) { clonedTable.checks.splice(clonedTable.checks.indexOf(columnCheck), 1); upQueries.push(this.dropCheckConstraintSql(table, columnCheck)); downQueries.push(this.createCheckConstraintSql(table, columnCheck)); } columnUnique = clonedTable.uniques.find(function (unique) { return unique.columnNames.length === 1 && unique.columnNames[0] === column.name; }); if (columnUnique) { clonedTable.uniques.splice(clonedTable.uniques.indexOf(columnUnique), 1); upQueries.push(this.dropUniqueConstraintSql(table, columnUnique)); downQueries.push(this.createUniqueConstraintSql(table, columnUnique)); } upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " DROP COLUMN \"" + column.name + "\"")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ADD " + this.buildCreateColumnSql(table, column))); if (!(column.type === "enum" || column.type === "simple-enum")) return [3 /*break*/, 6]; return [4 /*yield*/, this.hasEnumType(table, column)]; case 4: hasEnum = _b.sent(); if (!hasEnum) return [3 /*break*/, 6]; return [4 /*yield*/, this.getEnumTypeName(table, column)]; case 5: enumType = _b.sent(); escapedEnumName = "\"" + enumType.enumTypeSchema + "\".\"" + enumType.enumTypeName + "\""; upQueries.push(this.dropEnumTypeSql(table, column, escapedEnumName)); downQueries.push(this.createEnumTypeSql(table, column, escapedEnumName)); _b.label = 6; case 6: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)]; case 7: _b.sent(); clonedTable.removeColumn(column); this.replaceCachedTable(table, clonedTable); return [2 /*return*/]; } }); }); }; /** * Drops the columns in the table. */ PostgresQueryRunner.prototype.dropColumns = function (tableOrName, columns) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var columns_2, columns_2_1, column, e_5_1; var e_5, _a; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 5, 6, 7]); columns_2 = Object(tslib_es6["g" /* __values */])(columns), columns_2_1 = columns_2.next(); _b.label = 1; case 1: if (!!columns_2_1.done) return [3 /*break*/, 4]; column = columns_2_1.value; return [4 /*yield*/, this.dropColumn(tableOrName, column)]; case 2: _b.sent(); _b.label = 3; case 3: columns_2_1 = columns_2.next(); return [3 /*break*/, 1]; case 4: return [3 /*break*/, 7]; case 5: e_5_1 = _b.sent(); e_5 = { error: e_5_1 }; return [3 /*break*/, 7]; case 6: try { if (columns_2_1 && !columns_2_1.done && (_a = columns_2.return)) _a.call(columns_2); } finally { if (e_5) throw e_5.error; } return [7 /*endfinally*/]; case 7: return [2 /*return*/]; } }); }); }; /** * Creates a new primary key. */ PostgresQueryRunner.prototype.createPrimaryKey = function (tableOrName, columnNames) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, _a, clonedTable, up, down; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof Table["a" /* Table */])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; clonedTable = table.clone(); up = this.createPrimaryKeySql(table, columnNames); // mark columns as primary, because dropPrimaryKeySql build constraint name from table primary column names. clonedTable.columns.forEach(function (column) { if (columnNames.find(function (columnName) { return columnName === column.name; })) column.isPrimary = true; }); down = this.dropPrimaryKeySql(clonedTable); return [4 /*yield*/, this.executeQueries(up, down)]; case 4: _b.sent(); this.replaceCachedTable(table, clonedTable); return [2 /*return*/]; } }); }); }; /** * Updates composite primary keys. */ PostgresQueryRunner.prototype.updatePrimaryKeys = function (tableOrName, columns) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, _a, clonedTable, columnNames, upQueries, downQueries, primaryColumns, pkName_3, columnNamesString_1, pkName, columnNamesString; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof Table["a" /* Table */])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; clonedTable = table.clone(); columnNames = columns.map(function (column) { return column.name; }); upQueries = []; downQueries = []; primaryColumns = clonedTable.primaryColumns; if (primaryColumns.length > 0) { pkName_3 = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; })); columnNamesString_1 = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", "); upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName_3 + "\"")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName_3 + "\" PRIMARY KEY (" + columnNamesString_1 + ")")); } // update columns in table. clonedTable.columns .filter(function (column) { return columnNames.indexOf(column.name) !== -1; }) .forEach(function (column) { return column.isPrimary = true; }); pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, columnNames); columnNamesString = columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", "); upQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNamesString + ")")); downQueries.push(new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\"")); return [4 /*yield*/, this.executeQueries(upQueries, downQueries)]; case 4: _b.sent(); this.replaceCachedTable(table, clonedTable); return [2 /*return*/]; } }); }); }; /** * Drops a primary key. */ PostgresQueryRunner.prototype.dropPrimaryKey = function (tableOrName) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, _a, up, down; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof Table["a" /* Table */])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; up = this.dropPrimaryKeySql(table); down = this.createPrimaryKeySql(table, table.primaryColumns.map(function (column) { return column.name; })); return [4 /*yield*/, this.executeQueries(up, down)]; case 4: _b.sent(); table.primaryColumns.forEach(function (column) { column.isPrimary = false; }); return [2 /*return*/]; } }); }); }; /** * Creates new unique constraint. */ PostgresQueryRunner.prototype.createUniqueConstraint = function (tableOrName, uniqueConstraint) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, _a, up, down; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof Table["a" /* Table */])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; // new unique constraint may be passed without name. In this case we generate unique name manually. if (!uniqueConstraint.name) uniqueConstraint.name = this.connection.namingStrategy.uniqueConstraintName(table.name, uniqueConstraint.columnNames); up = this.createUniqueConstraintSql(table, uniqueConstraint); down = this.dropUniqueConstraintSql(table, uniqueConstraint); return [4 /*yield*/, this.executeQueries(up, down)]; case 4: _b.sent(); table.addUniqueConstraint(uniqueConstraint); return [2 /*return*/]; } }); }); }; /** * Creates new unique constraints. */ PostgresQueryRunner.prototype.createUniqueConstraints = function (tableOrName, uniqueConstraints) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var uniqueConstraints_1, uniqueConstraints_1_1, uniqueConstraint, e_6_1; var e_6, _a; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 5, 6, 7]); uniqueConstraints_1 = Object(tslib_es6["g" /* __values */])(uniqueConstraints), uniqueConstraints_1_1 = uniqueConstraints_1.next(); _b.label = 1; case 1: if (!!uniqueConstraints_1_1.done) return [3 /*break*/, 4]; uniqueConstraint = uniqueConstraints_1_1.value; return [4 /*yield*/, this.createUniqueConstraint(tableOrName, uniqueConstraint)]; case 2: _b.sent(); _b.label = 3; case 3: uniqueConstraints_1_1 = uniqueConstraints_1.next(); return [3 /*break*/, 1]; case 4: return [3 /*break*/, 7]; case 5: e_6_1 = _b.sent(); e_6 = { error: e_6_1 }; return [3 /*break*/, 7]; case 6: try { if (uniqueConstraints_1_1 && !uniqueConstraints_1_1.done && (_a = uniqueConstraints_1.return)) _a.call(uniqueConstraints_1); } finally { if (e_6) throw e_6.error; } return [7 /*endfinally*/]; case 7: return [2 /*return*/]; } }); }); }; /** * Drops unique constraint. */ PostgresQueryRunner.prototype.dropUniqueConstraint = function (tableOrName, uniqueOrName) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, _a, uniqueConstraint, up, down; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof Table["a" /* Table */])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; uniqueConstraint = uniqueOrName instanceof TableUnique["a" /* TableUnique */] ? uniqueOrName : table.uniques.find(function (u) { return u.name === uniqueOrName; }); if (!uniqueConstraint) throw new Error("Supplied unique constraint was not found in table " + table.name); up = this.dropUniqueConstraintSql(table, uniqueConstraint); down = this.createUniqueConstraintSql(table, uniqueConstraint); return [4 /*yield*/, this.executeQueries(up, down)]; case 4: _b.sent(); table.removeUniqueConstraint(uniqueConstraint); return [2 /*return*/]; } }); }); }; /** * Drops unique constraints. */ PostgresQueryRunner.prototype.dropUniqueConstraints = function (tableOrName, uniqueConstraints) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var uniqueConstraints_2, uniqueConstraints_2_1, uniqueConstraint, e_7_1; var e_7, _a; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 5, 6, 7]); uniqueConstraints_2 = Object(tslib_es6["g" /* __values */])(uniqueConstraints), uniqueConstraints_2_1 = uniqueConstraints_2.next(); _b.label = 1; case 1: if (!!uniqueConstraints_2_1.done) return [3 /*break*/, 4]; uniqueConstraint = uniqueConstraints_2_1.value; return [4 /*yield*/, this.dropUniqueConstraint(tableOrName, uniqueConstraint)]; case 2: _b.sent(); _b.label = 3; case 3: uniqueConstraints_2_1 = uniqueConstraints_2.next(); return [3 /*break*/, 1]; case 4: return [3 /*break*/, 7]; case 5: e_7_1 = _b.sent(); e_7 = { error: e_7_1 }; return [3 /*break*/, 7]; case 6: try { if (uniqueConstraints_2_1 && !uniqueConstraints_2_1.done && (_a = uniqueConstraints_2.return)) _a.call(uniqueConstraints_2); } finally { if (e_7) throw e_7.error; } return [7 /*endfinally*/]; case 7: return [2 /*return*/]; } }); }); }; /** * Creates new check constraint. */ PostgresQueryRunner.prototype.createCheckConstraint = function (tableOrName, checkConstraint) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, _a, up, down; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof Table["a" /* Table */])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; // new unique constraint may be passed without name. In this case we generate unique name manually. if (!checkConstraint.name) checkConstraint.name = this.connection.namingStrategy.checkConstraintName(table.name, checkConstraint.expression); up = this.createCheckConstraintSql(table, checkConstraint); down = this.dropCheckConstraintSql(table, checkConstraint); return [4 /*yield*/, this.executeQueries(up, down)]; case 4: _b.sent(); table.addCheckConstraint(checkConstraint); return [2 /*return*/]; } }); }); }; /** * Creates new check constraints. */ PostgresQueryRunner.prototype.createCheckConstraints = function (tableOrName, checkConstraints) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var promises; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: promises = checkConstraints.map(function (checkConstraint) { return _this.createCheckConstraint(tableOrName, checkConstraint); }); return [4 /*yield*/, Promise.all(promises)]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Drops check constraint. */ PostgresQueryRunner.prototype.dropCheckConstraint = function (tableOrName, checkOrName) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, _a, checkConstraint, up, down; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof Table["a" /* Table */])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; checkConstraint = checkOrName instanceof TableCheck["a" /* TableCheck */] ? checkOrName : table.checks.find(function (c) { return c.name === checkOrName; }); if (!checkConstraint) throw new Error("Supplied check constraint was not found in table " + table.name); up = this.dropCheckConstraintSql(table, checkConstraint); down = this.createCheckConstraintSql(table, checkConstraint); return [4 /*yield*/, this.executeQueries(up, down)]; case 4: _b.sent(); table.removeCheckConstraint(checkConstraint); return [2 /*return*/]; } }); }); }; /** * Drops check constraints. */ PostgresQueryRunner.prototype.dropCheckConstraints = function (tableOrName, checkConstraints) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var promises; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: promises = checkConstraints.map(function (checkConstraint) { return _this.dropCheckConstraint(tableOrName, checkConstraint); }); return [4 /*yield*/, Promise.all(promises)]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Creates new exclusion constraint. */ PostgresQueryRunner.prototype.createExclusionConstraint = function (tableOrName, exclusionConstraint) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, _a, up, down; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof Table["a" /* Table */])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; // new unique constraint may be passed without name. In this case we generate unique name manually. if (!exclusionConstraint.name) exclusionConstraint.name = this.connection.namingStrategy.exclusionConstraintName(table.name, exclusionConstraint.expression); up = this.createExclusionConstraintSql(table, exclusionConstraint); down = this.dropExclusionConstraintSql(table, exclusionConstraint); return [4 /*yield*/, this.executeQueries(up, down)]; case 4: _b.sent(); table.addExclusionConstraint(exclusionConstraint); return [2 /*return*/]; } }); }); }; /** * Creates new exclusion constraints. */ PostgresQueryRunner.prototype.createExclusionConstraints = function (tableOrName, exclusionConstraints) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var promises; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: promises = exclusionConstraints.map(function (exclusionConstraint) { return _this.createExclusionConstraint(tableOrName, exclusionConstraint); }); return [4 /*yield*/, Promise.all(promises)]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Drops exclusion constraint. */ PostgresQueryRunner.prototype.dropExclusionConstraint = function (tableOrName, exclusionOrName) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, _a, exclusionConstraint, up, down; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof Table["a" /* Table */])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; exclusionConstraint = exclusionOrName instanceof TableExclusion["a" /* TableExclusion */] ? exclusionOrName : table.exclusions.find(function (c) { return c.name === exclusionOrName; }); if (!exclusionConstraint) throw new Error("Supplied exclusion constraint was not found in table " + table.name); up = this.dropExclusionConstraintSql(table, exclusionConstraint); down = this.createExclusionConstraintSql(table, exclusionConstraint); return [4 /*yield*/, this.executeQueries(up, down)]; case 4: _b.sent(); table.removeExclusionConstraint(exclusionConstraint); return [2 /*return*/]; } }); }); }; /** * Drops exclusion constraints. */ PostgresQueryRunner.prototype.dropExclusionConstraints = function (tableOrName, exclusionConstraints) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var promises; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: promises = exclusionConstraints.map(function (exclusionConstraint) { return _this.dropExclusionConstraint(tableOrName, exclusionConstraint); }); return [4 /*yield*/, Promise.all(promises)]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Creates a new foreign key. */ PostgresQueryRunner.prototype.createForeignKey = function (tableOrName, foreignKey) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, _a, up, down; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof Table["a" /* Table */])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; // new FK may be passed without name. In this case we generate FK name manually. if (!foreignKey.name) foreignKey.name = this.connection.namingStrategy.foreignKeyName(table.name, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames); up = this.createForeignKeySql(table, foreignKey); down = this.dropForeignKeySql(table, foreignKey); return [4 /*yield*/, this.executeQueries(up, down)]; case 4: _b.sent(); table.addForeignKey(foreignKey); return [2 /*return*/]; } }); }); }; /** * Creates a new foreign keys. */ PostgresQueryRunner.prototype.createForeignKeys = function (tableOrName, foreignKeys) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var foreignKeys_1, foreignKeys_1_1, foreignKey, e_8_1; var e_8, _a; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 5, 6, 7]); foreignKeys_1 = Object(tslib_es6["g" /* __values */])(foreignKeys), foreignKeys_1_1 = foreignKeys_1.next(); _b.label = 1; case 1: if (!!foreignKeys_1_1.done) return [3 /*break*/, 4]; foreignKey = foreignKeys_1_1.value; return [4 /*yield*/, this.createForeignKey(tableOrName, foreignKey)]; case 2: _b.sent(); _b.label = 3; case 3: foreignKeys_1_1 = foreignKeys_1.next(); return [3 /*break*/, 1]; case 4: return [3 /*break*/, 7]; case 5: e_8_1 = _b.sent(); e_8 = { error: e_8_1 }; return [3 /*break*/, 7]; case 6: try { if (foreignKeys_1_1 && !foreignKeys_1_1.done && (_a = foreignKeys_1.return)) _a.call(foreignKeys_1); } finally { if (e_8) throw e_8.error; } return [7 /*endfinally*/]; case 7: return [2 /*return*/]; } }); }); }; /** * Drops a foreign key from the table. */ PostgresQueryRunner.prototype.dropForeignKey = function (tableOrName, foreignKeyOrName) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, _a, foreignKey, up, down; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof Table["a" /* Table */])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; foreignKey = foreignKeyOrName instanceof TableForeignKey["a" /* TableForeignKey */] ? foreignKeyOrName : table.foreignKeys.find(function (fk) { return fk.name === foreignKeyOrName; }); if (!foreignKey) throw new Error("Supplied foreign key was not found in table " + table.name); up = this.dropForeignKeySql(table, foreignKey); down = this.createForeignKeySql(table, foreignKey); return [4 /*yield*/, this.executeQueries(up, down)]; case 4: _b.sent(); table.removeForeignKey(foreignKey); return [2 /*return*/]; } }); }); }; /** * Drops a foreign keys from the table. */ PostgresQueryRunner.prototype.dropForeignKeys = function (tableOrName, foreignKeys) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var foreignKeys_2, foreignKeys_2_1, foreignKey, e_9_1; var e_9, _a; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 5, 6, 7]); foreignKeys_2 = Object(tslib_es6["g" /* __values */])(foreignKeys), foreignKeys_2_1 = foreignKeys_2.next(); _b.label = 1; case 1: if (!!foreignKeys_2_1.done) return [3 /*break*/, 4]; foreignKey = foreignKeys_2_1.value; return [4 /*yield*/, this.dropForeignKey(tableOrName, foreignKey)]; case 2: _b.sent(); _b.label = 3; case 3: foreignKeys_2_1 = foreignKeys_2.next(); return [3 /*break*/, 1]; case 4: return [3 /*break*/, 7]; case 5: e_9_1 = _b.sent(); e_9 = { error: e_9_1 }; return [3 /*break*/, 7]; case 6: try { if (foreignKeys_2_1 && !foreignKeys_2_1.done && (_a = foreignKeys_2.return)) _a.call(foreignKeys_2); } finally { if (e_9) throw e_9.error; } return [7 /*endfinally*/]; case 7: return [2 /*return*/]; } }); }); }; /** * Creates a new index. */ PostgresQueryRunner.prototype.createIndex = function (tableOrName, index) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, _a, up, down; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof Table["a" /* Table */])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; // new index may be passed without name. In this case we generate index name manually. if (!index.name) index.name = this.connection.namingStrategy.indexName(table.name, index.columnNames, index.where); up = this.createIndexSql(table, index); down = this.dropIndexSql(table, index); return [4 /*yield*/, this.executeQueries(up, down)]; case 4: _b.sent(); table.addIndex(index); return [2 /*return*/]; } }); }); }; /** * Creates a new indices */ PostgresQueryRunner.prototype.createIndices = function (tableOrName, indices) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var indices_1, indices_1_1, index, e_10_1; var e_10, _a; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 5, 6, 7]); indices_1 = Object(tslib_es6["g" /* __values */])(indices), indices_1_1 = indices_1.next(); _b.label = 1; case 1: if (!!indices_1_1.done) return [3 /*break*/, 4]; index = indices_1_1.value; return [4 /*yield*/, this.createIndex(tableOrName, index)]; case 2: _b.sent(); _b.label = 3; case 3: indices_1_1 = indices_1.next(); return [3 /*break*/, 1]; case 4: return [3 /*break*/, 7]; case 5: e_10_1 = _b.sent(); e_10 = { error: e_10_1 }; return [3 /*break*/, 7]; case 6: try { if (indices_1_1 && !indices_1_1.done && (_a = indices_1.return)) _a.call(indices_1); } finally { if (e_10) throw e_10.error; } return [7 /*endfinally*/]; case 7: return [2 /*return*/]; } }); }); }; /** * Drops an index from the table. */ PostgresQueryRunner.prototype.dropIndex = function (tableOrName, indexOrName) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, _a, index, up, down; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof Table["a" /* Table */])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; index = indexOrName instanceof TableIndex["a" /* TableIndex */] ? indexOrName : table.indices.find(function (i) { return i.name === indexOrName; }); if (!index) throw new Error("Supplied index was not found in table " + table.name); up = this.dropIndexSql(table, index); down = this.createIndexSql(table, index); return [4 /*yield*/, this.executeQueries(up, down)]; case 4: _b.sent(); table.removeIndex(index); return [2 /*return*/]; } }); }); }; /** * Drops an indices from the table. */ PostgresQueryRunner.prototype.dropIndices = function (tableOrName, indices) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var indices_2, indices_2_1, index, e_11_1; var e_11, _a; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 5, 6, 7]); indices_2 = Object(tslib_es6["g" /* __values */])(indices), indices_2_1 = indices_2.next(); _b.label = 1; case 1: if (!!indices_2_1.done) return [3 /*break*/, 4]; index = indices_2_1.value; return [4 /*yield*/, this.dropIndex(tableOrName, index)]; case 2: _b.sent(); _b.label = 3; case 3: indices_2_1 = indices_2.next(); return [3 /*break*/, 1]; case 4: return [3 /*break*/, 7]; case 5: e_11_1 = _b.sent(); e_11 = { error: e_11_1 }; return [3 /*break*/, 7]; case 6: try { if (indices_2_1 && !indices_2_1.done && (_a = indices_2.return)) _a.call(indices_2); } finally { if (e_11) throw e_11.error; } return [7 /*endfinally*/]; case 7: return [2 /*return*/]; } }); }); }; /** * Clears all table contents. * Note: this operation uses SQL's TRUNCATE query which cannot be reverted in transactions. */ PostgresQueryRunner.prototype.clearTable = function (tableName) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.query("TRUNCATE TABLE " + this.escapePath(tableName))]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Removes all tables from the currently connected database. */ PostgresQueryRunner.prototype.clearDatabase = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var schemas, schemaNamesString, selectViewDropsQuery, dropViewQueries, selectTableDropsQuery, dropTableQueries, error_1, rollbackError_1; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: schemas = []; this.connection.entityMetadatas .filter(function (metadata) { return metadata.schema; }) .forEach(function (metadata) { var isSchemaExist = !!schemas.find(function (schema) { return schema === metadata.schema; }); if (!isSchemaExist) schemas.push(metadata.schema); }); schemas.push(this.driver.options.schema || "current_schema()"); schemaNamesString = schemas.map(function (name) { return name === "current_schema()" ? name : "'" + name + "'"; }).join(", "); return [4 /*yield*/, this.startTransaction()]; case 1: _a.sent(); _a.label = 2; case 2: _a.trys.push([2, 9, , 14]); selectViewDropsQuery = "SELECT 'DROP VIEW IF EXISTS \"' || schemaname || '\".\"' || viewname || '\" CASCADE;' as \"query\" " + ("FROM \"pg_views\" WHERE \"schemaname\" IN (" + schemaNamesString + ") AND \"viewname\" NOT IN ('geography_columns', 'geometry_columns', 'raster_columns', 'raster_overviews')"); return [4 /*yield*/, this.query(selectViewDropsQuery)]; case 3: dropViewQueries = _a.sent(); return [4 /*yield*/, Promise.all(dropViewQueries.map(function (q) { return _this.query(q["query"]); }))]; case 4: _a.sent(); selectTableDropsQuery = "SELECT 'DROP TABLE IF EXISTS \"' || schemaname || '\".\"' || tablename || '\" CASCADE;' as \"query\" FROM \"pg_tables\" WHERE \"schemaname\" IN (" + schemaNamesString + ") AND \"tablename\" NOT IN ('spatial_ref_sys')"; return [4 /*yield*/, this.query(selectTableDropsQuery)]; case 5: dropTableQueries = _a.sent(); return [4 /*yield*/, Promise.all(dropTableQueries.map(function (q) { return _this.query(q["query"]); }))]; case 6: _a.sent(); return [4 /*yield*/, this.dropEnumTypes(schemaNamesString)]; case 7: _a.sent(); return [4 /*yield*/, this.commitTransaction()]; case 8: _a.sent(); return [3 /*break*/, 14]; case 9: error_1 = _a.sent(); _a.label = 10; case 10: _a.trys.push([10, 12, , 13]); return [4 /*yield*/, this.rollbackTransaction()]; case 11: _a.sent(); return [3 /*break*/, 13]; case 12: rollbackError_1 = _a.sent(); return [3 /*break*/, 13]; case 13: throw error_1; case 14: return [2 /*return*/]; } }); }); }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- PostgresQueryRunner.prototype.loadViews = function (viewNames) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var hasTable, currentSchemaQuery, currentSchema, viewsCondition, query, dbViews; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.hasTable(this.getTypeormMetadataTableName())]; case 1: hasTable = _a.sent(); if (!hasTable) return [2 /*return*/, Promise.resolve([])]; return [4 /*yield*/, this.query("SELECT * FROM current_schema()")]; case 2: currentSchemaQuery = _a.sent(); currentSchema = currentSchemaQuery[0]["current_schema"]; viewsCondition = viewNames.map(function (viewName) { var _a = Object(tslib_es6["e" /* __read */])(viewName.split("."), 2), schema = _a[0], name = _a[1]; if (!name) { name = schema; schema = _this.driver.options.schema || currentSchema; } return "(\"t\".\"schema\" = '" + schema + "' AND \"t\".\"name\" = '" + name + "')"; }).join(" OR "); query = "SELECT \"t\".*, \"v\".\"check_option\" FROM " + this.escapePath(this.getTypeormMetadataTableName()) + " \"t\" " + ("INNER JOIN \"information_schema\".\"views\" \"v\" ON \"v\".\"table_schema\" = \"t\".\"schema\" AND \"v\".\"table_name\" = \"t\".\"name\" WHERE \"t\".\"type\" = 'VIEW' " + (viewsCondition ? "AND (" + viewsCondition + ")" : "")); return [4 /*yield*/, this.query(query)]; case 3: dbViews = _a.sent(); return [2 /*return*/, dbViews.map(function (dbView) { var view = new View["a" /* View */](); var schema = dbView["schema"] === currentSchema && !_this.driver.options.schema ? undefined : dbView["schema"]; view.name = _this.driver.buildTableName(dbView["name"], schema); view.expression = dbView["value"]; return view; })]; } }); }); }; /** * Loads all tables (with given names) from the database and creates a Table from them. */ PostgresQueryRunner.prototype.loadTables = function (tableNames) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var currentSchemaQuery, currentSchema, tablesCondition, tablesSql, columnsSql, constraintsCondition, constraintsSql, indicesSql, foreignKeysCondition, hasRelispartitionColumn, isPartitionCondition, foreignKeysSql, _a, dbTables, dbColumns, dbConstraints, dbIndices, dbForeignKeys; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: // if no tables given then no need to proceed if (!tableNames || !tableNames.length) return [2 /*return*/, []]; return [4 /*yield*/, this.query("SELECT * FROM current_schema()")]; case 1: currentSchemaQuery = _b.sent(); currentSchema = currentSchemaQuery[0]["current_schema"]; tablesCondition = tableNames.map(function (tableName) { var _a = Object(tslib_es6["e" /* __read */])(tableName.split("."), 2), schema = _a[0], name = _a[1]; if (!name) { name = schema; schema = _this.driver.options.schema || currentSchema; } return "(\"table_schema\" = '" + schema + "' AND \"table_name\" = '" + name + "')"; }).join(" OR "); tablesSql = "SELECT * FROM \"information_schema\".\"tables\" WHERE " + tablesCondition; columnsSql = "\n SELECT columns.*,\n pg_catalog.col_description(('\"' || table_catalog || '\".\"' || table_schema || '\".\"' || table_name || '\"')::regclass::oid, ordinal_position) AS description,\n ('\"' || \"udt_schema\" || '\".\"' || \"udt_name\" || '\"')::\"regtype\" AS \"regtype\",\n pg_catalog.format_type(\"col_attr\".\"atttypid\", \"col_attr\".\"atttypmod\") AS \"format_type\"\n FROM \"information_schema\".\"columns\"\n LEFT JOIN \"pg_catalog\".\"pg_attribute\" AS \"col_attr\"\n ON \"col_attr\".\"attname\" = \"columns\".\"column_name\"\n AND \"col_attr\".\"attrelid\" = (\n SELECT\n \"cls\".\"oid\" FROM \"pg_catalog\".\"pg_class\" AS \"cls\"\n LEFT JOIN \"pg_catalog\".\"pg_namespace\" AS \"ns\"\n ON \"ns\".\"oid\" = \"cls\".\"relnamespace\"\n WHERE \"cls\".\"relname\" = \"columns\".\"table_name\"\n AND \"ns\".\"nspname\" = \"columns\".\"table_schema\"\n )\n WHERE\n " + tablesCondition; constraintsCondition = tableNames.map(function (tableName) { var _a = Object(tslib_es6["e" /* __read */])(tableName.split("."), 2), schema = _a[0], name = _a[1]; if (!name) { name = schema; schema = _this.driver.options.schema || currentSchema; } return "(\"ns\".\"nspname\" = '" + schema + "' AND \"t\".\"relname\" = '" + name + "')"; }).join(" OR "); constraintsSql = "SELECT \"ns\".\"nspname\" AS \"table_schema\", \"t\".\"relname\" AS \"table_name\", \"cnst\".\"conname\" AS \"constraint_name\", " + "pg_get_constraintdef(\"cnst\".\"oid\") AS \"expression\", " + "CASE \"cnst\".\"contype\" WHEN 'p' THEN 'PRIMARY' WHEN 'u' THEN 'UNIQUE' WHEN 'c' THEN 'CHECK' WHEN 'x' THEN 'EXCLUDE' END AS \"constraint_type\", \"a\".\"attname\" AS \"column_name\" " + "FROM \"pg_constraint\" \"cnst\" " + "INNER JOIN \"pg_class\" \"t\" ON \"t\".\"oid\" = \"cnst\".\"conrelid\" " + "INNER JOIN \"pg_namespace\" \"ns\" ON \"ns\".\"oid\" = \"cnst\".\"connamespace\" " + "LEFT JOIN \"pg_attribute\" \"a\" ON \"a\".\"attrelid\" = \"cnst\".\"conrelid\" AND \"a\".\"attnum\" = ANY (\"cnst\".\"conkey\") " + ("WHERE \"t\".\"relkind\" IN ('r', 'p') AND (" + constraintsCondition + ")"); indicesSql = "SELECT \"ns\".\"nspname\" AS \"table_schema\", \"t\".\"relname\" AS \"table_name\", \"i\".\"relname\" AS \"constraint_name\", \"a\".\"attname\" AS \"column_name\", " + "CASE \"ix\".\"indisunique\" WHEN 't' THEN 'TRUE' ELSE'FALSE' END AS \"is_unique\", pg_get_expr(\"ix\".\"indpred\", \"ix\".\"indrelid\") AS \"condition\", " + "\"types\".\"typname\" AS \"type_name\" " + "FROM \"pg_class\" \"t\" " + "INNER JOIN \"pg_index\" \"ix\" ON \"ix\".\"indrelid\" = \"t\".\"oid\" " + "INNER JOIN \"pg_attribute\" \"a\" ON \"a\".\"attrelid\" = \"t\".\"oid\" AND \"a\".\"attnum\" = ANY (\"ix\".\"indkey\") " + "INNER JOIN \"pg_namespace\" \"ns\" ON \"ns\".\"oid\" = \"t\".\"relnamespace\" " + "INNER JOIN \"pg_class\" \"i\" ON \"i\".\"oid\" = \"ix\".\"indexrelid\" " + "INNER JOIN \"pg_type\" \"types\" ON \"types\".\"oid\" = \"a\".\"atttypid\" " + "LEFT JOIN \"pg_constraint\" \"cnst\" ON \"cnst\".\"conname\" = \"i\".\"relname\" " + ("WHERE \"t\".\"relkind\" IN ('r', 'p') AND \"cnst\".\"contype\" IS NULL AND (" + constraintsCondition + ")"); foreignKeysCondition = tableNames.map(function (tableName) { var _a = Object(tslib_es6["e" /* __read */])(tableName.split("."), 2), schema = _a[0], name = _a[1]; if (!name) { name = schema; schema = _this.driver.options.schema || currentSchema; } return "(\"ns\".\"nspname\" = '" + schema + "' AND \"cl\".\"relname\" = '" + name + "')"; }).join(" OR "); return [4 /*yield*/, this.hasSupportForPartitionedTables()]; case 2: hasRelispartitionColumn = _b.sent(); isPartitionCondition = hasRelispartitionColumn ? " AND \"cl\".\"relispartition\" = 'f'" : ""; foreignKeysSql = "SELECT \"con\".\"conname\" AS \"constraint_name\", \"con\".\"nspname\" AS \"table_schema\", \"con\".\"relname\" AS \"table_name\", \"att2\".\"attname\" AS \"column_name\", " + "\"ns\".\"nspname\" AS \"referenced_table_schema\", \"cl\".\"relname\" AS \"referenced_table_name\", \"att\".\"attname\" AS \"referenced_column_name\", \"con\".\"confdeltype\" AS \"on_delete\", " + "\"con\".\"confupdtype\" AS \"on_update\", \"con\".\"condeferrable\" AS \"deferrable\", \"con\".\"condeferred\" AS \"deferred\" " + "FROM ( " + "SELECT UNNEST (\"con1\".\"conkey\") AS \"parent\", UNNEST (\"con1\".\"confkey\") AS \"child\", \"con1\".\"confrelid\", \"con1\".\"conrelid\", \"con1\".\"conname\", \"con1\".\"contype\", \"ns\".\"nspname\", " + "\"cl\".\"relname\", \"con1\".\"condeferrable\", " + "CASE WHEN \"con1\".\"condeferred\" THEN 'INITIALLY DEFERRED' ELSE 'INITIALLY IMMEDIATE' END as condeferred, " + "CASE \"con1\".\"confdeltype\" WHEN 'a' THEN 'NO ACTION' WHEN 'r' THEN 'RESTRICT' WHEN 'c' THEN 'CASCADE' WHEN 'n' THEN 'SET NULL' WHEN 'd' THEN 'SET DEFAULT' END as \"confdeltype\", " + "CASE \"con1\".\"confupdtype\" WHEN 'a' THEN 'NO ACTION' WHEN 'r' THEN 'RESTRICT' WHEN 'c' THEN 'CASCADE' WHEN 'n' THEN 'SET NULL' WHEN 'd' THEN 'SET DEFAULT' END as \"confupdtype\" " + "FROM \"pg_class\" \"cl\" " + "INNER JOIN \"pg_namespace\" \"ns\" ON \"cl\".\"relnamespace\" = \"ns\".\"oid\" " + "INNER JOIN \"pg_constraint\" \"con1\" ON \"con1\".\"conrelid\" = \"cl\".\"oid\" " + ("WHERE \"con1\".\"contype\" = 'f' AND (" + foreignKeysCondition + ") ") + ") \"con\" " + "INNER JOIN \"pg_attribute\" \"att\" ON \"att\".\"attrelid\" = \"con\".\"confrelid\" AND \"att\".\"attnum\" = \"con\".\"child\" " + ("INNER JOIN \"pg_class\" \"cl\" ON \"cl\".\"oid\" = \"con\".\"confrelid\" " + isPartitionCondition) + "INNER JOIN \"pg_namespace\" \"ns\" ON \"cl\".\"relnamespace\" = \"ns\".\"oid\" " + "INNER JOIN \"pg_attribute\" \"att2\" ON \"att2\".\"attrelid\" = \"con\".\"conrelid\" AND \"att2\".\"attnum\" = \"con\".\"parent\""; return [4 /*yield*/, Promise.all([ this.query(tablesSql), this.query(columnsSql), this.query(constraintsSql), this.query(indicesSql), this.query(foreignKeysSql), ])]; case 3: _a = tslib_es6["e" /* __read */].apply(void 0, [_b.sent(), 5]), dbTables = _a[0], dbColumns = _a[1], dbConstraints = _a[2], dbIndices = _a[3], dbForeignKeys = _a[4]; // if tables were not found in the db, no need to proceed if (!dbTables.length) return [2 /*return*/, []]; // create tables for loaded tables return [2 /*return*/, Promise.all(dbTables.map(function (dbTable) { return Object(tslib_es6["b" /* __awaiter */])(_this, void 0, void 0, function () { var table, getSchemaFromKey, schema, tableFullName, _a, tableUniqueConstraints, tableCheckConstraints, tableExclusionConstraints, tableForeignKeyConstraints, tableIndexConstraints; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: table = new Table["a" /* Table */](); getSchemaFromKey = function (dbObject, key) { return dbObject[key] === currentSchema && !_this.driver.options.schema ? undefined : dbObject[key]; }; schema = getSchemaFromKey(dbTable, "table_schema"); table.name = this.driver.buildTableName(dbTable["table_name"], schema); tableFullName = this.driver.buildTableName(dbTable["table_name"], dbTable["table_schema"]); // create columns from the loaded columns _a = table; return [4 /*yield*/, Promise.all(dbColumns .filter(function (dbColumn) { return _this.driver.buildTableName(dbColumn["table_name"], dbColumn["table_schema"]) === tableFullName; }) .map(function (dbColumn) { return Object(tslib_es6["b" /* __awaiter */])(_this, void 0, void 0, function () { var columnConstraints, tableColumn, type, enumTypeName, builtEnumName, sql, results, geometryColumnSql, results, geographyColumnSql, results, length_1, match, uniqueConstraint, isConstraintComposite; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: columnConstraints = dbConstraints.filter(function (dbConstraint) { return _this.driver.buildTableName(dbConstraint["table_name"], dbConstraint["table_schema"]) === tableFullName && dbConstraint["column_name"] === dbColumn["column_name"]; }); tableColumn = new TableColumn["a" /* TableColumn */](); tableColumn.name = dbColumn["column_name"]; tableColumn.type = dbColumn["regtype"].toLowerCase(); if (tableColumn.type === "numeric" || tableColumn.type === "decimal" || tableColumn.type === "float") { // If one of these properties was set, and another was not, Postgres sets '0' in to unspecified property // we set 'undefined' in to unspecified property to avoid changing column on sync if (dbColumn["numeric_precision"] !== null && !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["numeric_precision"])) { tableColumn.precision = dbColumn["numeric_precision"]; } else if (dbColumn["numeric_scale"] !== null && !this.isDefaultColumnScale(table, tableColumn, dbColumn["numeric_scale"])) { tableColumn.precision = undefined; } if (dbColumn["numeric_scale"] !== null && !this.isDefaultColumnScale(table, tableColumn, dbColumn["numeric_scale"])) { tableColumn.scale = dbColumn["numeric_scale"]; } else if (dbColumn["numeric_precision"] !== null && !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["numeric_precision"])) { tableColumn.scale = undefined; } } if (dbColumn["data_type"].toLowerCase() === "array") { tableColumn.isArray = true; type = tableColumn.type.replace("[]", ""); tableColumn.type = this.connection.driver.normalizeType({ type: type }); } if (tableColumn.type === "interval" || tableColumn.type === "time without time zone" || tableColumn.type === "time with time zone" || tableColumn.type === "timestamp without time zone" || tableColumn.type === "timestamp with time zone") { tableColumn.precision = !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["datetime_precision"]) ? dbColumn["datetime_precision"] : undefined; } if (!(tableColumn.type.indexOf("enum") !== -1)) return [3 /*break*/, 3]; return [4 /*yield*/, this.getEnumTypeName(table, tableColumn)]; case 1: enumTypeName = (_a.sent()).enumTypeName; builtEnumName = this.buildEnumName(table, tableColumn, false, true); if (builtEnumName !== enumTypeName) tableColumn.enumName = enumTypeName; tableColumn.type = "enum"; sql = "SELECT \"e\".\"enumlabel\" AS \"value\" FROM \"pg_enum\" \"e\" " + "INNER JOIN \"pg_type\" \"t\" ON \"t\".\"oid\" = \"e\".\"enumtypid\" " + "INNER JOIN \"pg_namespace\" \"n\" ON \"n\".\"oid\" = \"t\".\"typnamespace\" " + ("WHERE \"n\".\"nspname\" = '" + dbTable["table_schema"] + "' AND \"t\".\"typname\" = '" + this.buildEnumName(table, tableColumn, false, true) + "'"); return [4 /*yield*/, this.query(sql)]; case 2: results = _a.sent(); tableColumn.enum = results.map(function (result) { return result["value"]; }); _a.label = 3; case 3: if (!(tableColumn.type === "geometry")) return [3 /*break*/, 5]; geometryColumnSql = "SELECT * FROM (\n SELECT\n \"f_table_schema\" \"table_schema\",\n \"f_table_name\" \"table_name\",\n \"f_geometry_column\" \"column_name\",\n \"srid\",\n \"type\"\n FROM \"geometry_columns\"\n ) AS _\n WHERE (" + tablesCondition + ") AND \"column_name\" = '" + tableColumn.name + "' AND \"table_name\" = '" + dbTable["table_name"] + "'"; return [4 /*yield*/, this.query(geometryColumnSql)]; case 4: results = _a.sent(); tableColumn.spatialFeatureType = results[0].type; tableColumn.srid = results[0].srid; _a.label = 5; case 5: if (!(tableColumn.type === "geography")) return [3 /*break*/, 7]; geographyColumnSql = "SELECT * FROM (\n SELECT\n \"f_table_schema\" \"table_schema\",\n \"f_table_name\" \"table_name\",\n \"f_geography_column\" \"column_name\",\n \"srid\",\n \"type\"\n FROM \"geography_columns\"\n ) AS _\n WHERE (" + tablesCondition + ") AND \"column_name\" = '" + tableColumn.name + "' AND \"table_name\" = '" + dbTable["table_name"] + "'"; return [4 /*yield*/, this.query(geographyColumnSql)]; case 6: results = _a.sent(); tableColumn.spatialFeatureType = results[0].type; tableColumn.srid = results[0].srid; _a.label = 7; case 7: // check only columns that have length property if (this.driver.withLengthColumnTypes.indexOf(tableColumn.type) !== -1) { if (tableColumn.isArray) { match = /\((\d+)\)/.exec(dbColumn["format_type"]); length_1 = match ? match[1] : undefined; } else if (dbColumn["character_maximum_length"]) { length_1 = dbColumn["character_maximum_length"].toString(); } if (length_1) { tableColumn.length = !this.isDefaultColumnLength(table, tableColumn, length_1) ? length_1 : ""; } } tableColumn.isNullable = dbColumn["is_nullable"] === "YES"; tableColumn.isPrimary = !!columnConstraints.find(function (constraint) { return constraint["constraint_type"] === "PRIMARY"; }); uniqueConstraint = columnConstraints.find(function (constraint) { return constraint["constraint_type"] === "UNIQUE"; }); isConstraintComposite = uniqueConstraint ? !!dbConstraints.find(function (dbConstraint) { return dbConstraint["constraint_type"] === "UNIQUE" && dbConstraint["constraint_name"] === uniqueConstraint["constraint_name"] && dbConstraint["column_name"] !== dbColumn["column_name"]; }) : false; tableColumn.isUnique = !!uniqueConstraint && !isConstraintComposite; if (dbColumn["column_default"] !== null && dbColumn["column_default"] !== undefined) { if (dbColumn["column_default"].replace(/"/gi, "") === "nextval('" + this.buildSequenceName(table, dbColumn["column_name"], currentSchema, true) + "'::regclass)") { tableColumn.isGenerated = true; tableColumn.generationStrategy = "increment"; } else if (dbColumn["column_default"] === "gen_random_uuid()" || /^uuid_generate_v\d\(\)/.test(dbColumn["column_default"])) { tableColumn.isGenerated = true; tableColumn.generationStrategy = "uuid"; } else { tableColumn.default = dbColumn["column_default"].replace(/::.*/, ""); tableColumn.default = tableColumn.default.replace(/^(-?\d+)$/, "'$1'"); } } tableColumn.comment = dbColumn["description"] ? dbColumn["description"] : undefined; if (dbColumn["character_set_name"]) tableColumn.charset = dbColumn["character_set_name"]; if (dbColumn["collation_name"]) tableColumn.collation = dbColumn["collation_name"]; return [2 /*return*/, tableColumn]; } }); }); }))]; case 1: // create columns from the loaded columns _a.columns = _b.sent(); tableUniqueConstraints = OrmUtils["a" /* OrmUtils */].uniq(dbConstraints.filter(function (dbConstraint) { return _this.driver.buildTableName(dbConstraint["table_name"], dbConstraint["table_schema"]) === tableFullName && dbConstraint["constraint_type"] === "UNIQUE"; }), function (dbConstraint) { return dbConstraint["constraint_name"]; }); table.uniques = tableUniqueConstraints.map(function (constraint) { var uniques = dbConstraints.filter(function (dbC) { return dbC["constraint_name"] === constraint["constraint_name"]; }); return new TableUnique["a" /* TableUnique */]({ name: constraint["constraint_name"], columnNames: uniques.map(function (u) { return u["column_name"]; }) }); }); tableCheckConstraints = OrmUtils["a" /* OrmUtils */].uniq(dbConstraints.filter(function (dbConstraint) { return _this.driver.buildTableName(dbConstraint["table_name"], dbConstraint["table_schema"]) === tableFullName && dbConstraint["constraint_type"] === "CHECK"; }), function (dbConstraint) { return dbConstraint["constraint_name"]; }); table.checks = tableCheckConstraints.map(function (constraint) { var checks = dbConstraints.filter(function (dbC) { return dbC["constraint_name"] === constraint["constraint_name"]; }); return new TableCheck["a" /* TableCheck */]({ name: constraint["constraint_name"], columnNames: checks.map(function (c) { return c["column_name"]; }), expression: constraint["expression"].replace(/^\s*CHECK\s*\((.*)\)\s*$/i, "$1") }); }); tableExclusionConstraints = OrmUtils["a" /* OrmUtils */].uniq(dbConstraints.filter(function (dbConstraint) { return _this.driver.buildTableName(dbConstraint["table_name"], dbConstraint["table_schema"]) === tableFullName && dbConstraint["constraint_type"] === "EXCLUDE"; }), function (dbConstraint) { return dbConstraint["constraint_name"]; }); table.exclusions = tableExclusionConstraints.map(function (constraint) { return new TableExclusion["a" /* TableExclusion */]({ name: constraint["constraint_name"], expression: constraint["expression"].substring(8) // trim EXCLUDE from start of expression }); }); tableForeignKeyConstraints = OrmUtils["a" /* OrmUtils */].uniq(dbForeignKeys.filter(function (dbForeignKey) { return _this.driver.buildTableName(dbForeignKey["table_name"], dbForeignKey["table_schema"]) === tableFullName; }), function (dbForeignKey) { return dbForeignKey["constraint_name"]; }); table.foreignKeys = tableForeignKeyConstraints.map(function (dbForeignKey) { var foreignKeys = dbForeignKeys.filter(function (dbFk) { return dbFk["constraint_name"] === dbForeignKey["constraint_name"]; }); // if referenced table located in currently used schema, we don't need to concat schema name to table name. var schema = getSchemaFromKey(dbForeignKey, "referenced_table_schema"); var referencedTableName = _this.driver.buildTableName(dbForeignKey["referenced_table_name"], schema); return new TableForeignKey["a" /* TableForeignKey */]({ name: dbForeignKey["constraint_name"], columnNames: foreignKeys.map(function (dbFk) { return dbFk["column_name"]; }), referencedTableName: referencedTableName, referencedColumnNames: foreignKeys.map(function (dbFk) { return dbFk["referenced_column_name"]; }), onDelete: dbForeignKey["on_delete"], onUpdate: dbForeignKey["on_update"], deferrable: dbForeignKey["deferrable"] ? dbForeignKey["deferred"] : undefined, }); }); tableIndexConstraints = OrmUtils["a" /* OrmUtils */].uniq(dbIndices.filter(function (dbIndex) { return _this.driver.buildTableName(dbIndex["table_name"], dbIndex["table_schema"]) === tableFullName; }), function (dbIndex) { return dbIndex["constraint_name"]; }); table.indices = tableIndexConstraints.map(function (constraint) { var indices = dbIndices.filter(function (index) { return index["table_schema"] === constraint["table_schema"] && index["table_name"] === constraint["table_name"] && index["constraint_name"] === constraint["constraint_name"]; }); return new TableIndex["a" /* TableIndex */]({ table: table, name: constraint["constraint_name"], columnNames: indices.map(function (i) { return i["column_name"]; }), isUnique: constraint["is_unique"] === "TRUE", where: constraint["condition"], isSpatial: indices.every(function (i) { return _this.driver.spatialTypes.indexOf(i["type_name"]) >= 0; }), isFulltext: false }); }); return [2 /*return*/, table]; } }); }); }))]; } }); }); }; /** * Builds create table sql. */ PostgresQueryRunner.prototype.createTableSql = function (table, createForeignKeys) { var _this = this; var columnDefinitions = table.columns.map(function (column) { return _this.buildCreateColumnSql(table, column); }).join(", "); var sql = "CREATE TABLE " + this.escapePath(table) + " (" + columnDefinitions; table.columns .filter(function (column) { return column.isUnique; }) .forEach(function (column) { var isUniqueExist = table.uniques.some(function (unique) { return unique.columnNames.length === 1 && unique.columnNames[0] === column.name; }); if (!isUniqueExist) table.uniques.push(new TableUnique["a" /* TableUnique */]({ name: _this.connection.namingStrategy.uniqueConstraintName(table.name, [column.name]), columnNames: [column.name] })); }); if (table.uniques.length > 0) { var uniquesSql = table.uniques.map(function (unique) { var uniqueName = unique.name ? unique.name : _this.connection.namingStrategy.uniqueConstraintName(table.name, unique.columnNames); var columnNames = unique.columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", "); return "CONSTRAINT \"" + uniqueName + "\" UNIQUE (" + columnNames + ")"; }).join(", "); sql += ", " + uniquesSql; } if (table.checks.length > 0) { var checksSql = table.checks.map(function (check) { var checkName = check.name ? check.name : _this.connection.namingStrategy.checkConstraintName(table.name, check.expression); return "CONSTRAINT \"" + checkName + "\" CHECK (" + check.expression + ")"; }).join(", "); sql += ", " + checksSql; } if (table.exclusions.length > 0) { var exclusionsSql = table.exclusions.map(function (exclusion) { var exclusionName = exclusion.name ? exclusion.name : _this.connection.namingStrategy.exclusionConstraintName(table.name, exclusion.expression); return "CONSTRAINT \"" + exclusionName + "\" EXCLUDE " + exclusion.expression; }).join(", "); sql += ", " + exclusionsSql; } if (table.foreignKeys.length > 0 && createForeignKeys) { var foreignKeysSql = table.foreignKeys.map(function (fk) { var columnNames = fk.columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", "); if (!fk.name) fk.name = _this.connection.namingStrategy.foreignKeyName(table.name, fk.columnNames, fk.referencedTableName, fk.referencedColumnNames); var referencedColumnNames = fk.referencedColumnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", "); var constraint = "CONSTRAINT \"" + fk.name + "\" FOREIGN KEY (" + columnNames + ") REFERENCES " + _this.escapePath(fk.referencedTableName) + " (" + referencedColumnNames + ")"; if (fk.onDelete) constraint += " ON DELETE " + fk.onDelete; if (fk.onUpdate) constraint += " ON UPDATE " + fk.onUpdate; if (fk.deferrable) constraint += " DEFERRABLE " + fk.deferrable; return constraint; }).join(", "); sql += ", " + foreignKeysSql; } var primaryColumns = table.columns.filter(function (column) { return column.isPrimary; }); if (primaryColumns.length > 0) { var primaryKeyName = this.connection.namingStrategy.primaryKeyName(table.name, primaryColumns.map(function (column) { return column.name; })); var columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", "); sql += ", CONSTRAINT \"" + primaryKeyName + "\" PRIMARY KEY (" + columnNames + ")"; } sql += ")"; table.columns .filter(function (it) { return it.comment; }) .forEach(function (it) { return sql += "; COMMENT ON COLUMN " + _this.escapePath(table) + ".\"" + it.name + "\" IS " + _this.escapeComment(it.comment); }); return new Query["a" /* Query */](sql); }; /** * Builds drop table sql. */ PostgresQueryRunner.prototype.dropTableSql = function (tableOrPath) { return new Query["a" /* Query */]("DROP TABLE " + this.escapePath(tableOrPath)); }; PostgresQueryRunner.prototype.createViewSql = function (view) { var materializedClause = view.materialized ? "MATERIALIZED " : ""; var viewName = this.escapePath(view); if (typeof view.expression === "string") { return new Query["a" /* Query */]("CREATE " + materializedClause + "VIEW " + viewName + " AS " + view.expression); } else { return new Query["a" /* Query */]("CREATE " + materializedClause + "VIEW " + viewName + " AS " + view.expression(this.connection).getQuery()); } }; PostgresQueryRunner.prototype.insertViewDefinitionSql = function (view) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var currentSchemaQuery, currentSchema, splittedName, schema, name, expression, _a, query, parameters; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: return [4 /*yield*/, this.query("SELECT * FROM current_schema()")]; case 1: currentSchemaQuery = _b.sent(); currentSchema = currentSchemaQuery[0]["current_schema"]; splittedName = view.name.split("."); schema = this.driver.options.schema || currentSchema; name = view.name; if (splittedName.length === 2) { schema = splittedName[0]; name = splittedName[1]; } expression = typeof view.expression === "string" ? view.expression.trim() : view.expression(this.connection).getQuery(); _a = Object(tslib_es6["e" /* __read */])(this.connection.createQueryBuilder() .insert() .into(this.getTypeormMetadataTableName()) .values({ type: "VIEW", schema: schema, name: name, value: expression }) .getQueryAndParameters(), 2), query = _a[0], parameters = _a[1]; return [2 /*return*/, new Query["a" /* Query */](query, parameters)]; } }); }); }; /** * Builds drop view sql. */ PostgresQueryRunner.prototype.dropViewSql = function (viewOrPath) { return new Query["a" /* Query */]("DROP VIEW " + this.escapePath(viewOrPath)); }; /** * Builds remove view sql. */ PostgresQueryRunner.prototype.deleteViewDefinitionSql = function (viewOrPath) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var currentSchemaQuery, currentSchema, viewName, splittedName, schema, name, qb, _a, query, parameters; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: return [4 /*yield*/, this.query("SELECT * FROM current_schema()")]; case 1: currentSchemaQuery = _b.sent(); currentSchema = currentSchemaQuery[0]["current_schema"]; viewName = viewOrPath instanceof View["a" /* View */] ? viewOrPath.name : viewOrPath; splittedName = viewName.split("."); schema = this.driver.options.schema || currentSchema; name = viewName; if (splittedName.length === 2) { schema = splittedName[0]; name = splittedName[1]; } qb = this.connection.createQueryBuilder(); _a = Object(tslib_es6["e" /* __read */])(qb.delete() .from(this.getTypeormMetadataTableName()) .where(qb.escape("type") + " = 'VIEW'") .andWhere(qb.escape("schema") + " = :schema", { schema: schema }) .andWhere(qb.escape("name") + " = :name", { name: name }) .getQueryAndParameters(), 2), query = _a[0], parameters = _a[1]; return [2 /*return*/, new Query["a" /* Query */](query, parameters)]; } }); }); }; /** * Extracts schema name from given Table object or table name string. */ PostgresQueryRunner.prototype.extractSchema = function (target) { var tableName = target instanceof Table["a" /* Table */] ? target.name : target; return tableName.indexOf(".") === -1 ? this.driver.options.schema : tableName.split(".")[0]; }; /** * Drops ENUM type from given schemas. */ PostgresQueryRunner.prototype.dropEnumTypes = function (schemaNames) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var selectDropsQuery, dropQueries; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: selectDropsQuery = "SELECT 'DROP TYPE IF EXISTS \"' || n.nspname || '\".\"' || t.typname || '\" CASCADE;' as \"query\" FROM \"pg_type\" \"t\" " + "INNER JOIN \"pg_enum\" \"e\" ON \"e\".\"enumtypid\" = \"t\".\"oid\" " + "INNER JOIN \"pg_namespace\" \"n\" ON \"n\".\"oid\" = \"t\".\"typnamespace\" " + ("WHERE \"n\".\"nspname\" IN (" + schemaNames + ") GROUP BY \"n\".\"nspname\", \"t\".\"typname\""); return [4 /*yield*/, this.query(selectDropsQuery)]; case 1: dropQueries = _a.sent(); return [4 /*yield*/, Promise.all(dropQueries.map(function (q) { return _this.query(q["query"]); }))]; case 2: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Checks if enum with the given name exist in the database. */ PostgresQueryRunner.prototype.hasEnumType = function (table, column) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var schema, enumName, sql, result; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: schema = this.parseTableName(table).schema; enumName = this.buildEnumName(table, column, false, true); sql = "SELECT \"n\".\"nspname\", \"t\".\"typname\" FROM \"pg_type\" \"t\" " + "INNER JOIN \"pg_namespace\" \"n\" ON \"n\".\"oid\" = \"t\".\"typnamespace\" " + ("WHERE \"n\".\"nspname\" = " + schema + " AND \"t\".\"typname\" = '" + enumName + "'"); return [4 /*yield*/, this.query(sql)]; case 1: result = _a.sent(); return [2 /*return*/, result.length ? true : false]; } }); }); }; /** * Builds create ENUM type sql. */ PostgresQueryRunner.prototype.createEnumTypeSql = function (table, column, enumName) { if (!enumName) enumName = this.buildEnumName(table, column); var enumValues = column.enum.map(function (value) { return "'" + value.replace("'", "''") + "'"; }).join(", "); return new Query["a" /* Query */]("CREATE TYPE " + enumName + " AS ENUM(" + enumValues + ")"); }; /** * Builds create ENUM type sql. */ PostgresQueryRunner.prototype.dropEnumTypeSql = function (table, column, enumName) { if (!enumName) enumName = this.buildEnumName(table, column); return new Query["a" /* Query */]("DROP TYPE " + enumName); }; /** * Builds create index sql. */ PostgresQueryRunner.prototype.createIndexSql = function (table, index) { var columns = index.columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", "); return new Query["a" /* Query */]("CREATE " + (index.isUnique ? "UNIQUE " : "") + "INDEX \"" + index.name + "\" ON " + this.escapePath(table) + " " + (index.isSpatial ? "USING GiST " : "") + "(" + columns + ") " + (index.where ? "WHERE " + index.where : "")); }; /** * Builds drop index sql. */ PostgresQueryRunner.prototype.dropIndexSql = function (table, indexOrName) { var indexName = indexOrName instanceof TableIndex["a" /* TableIndex */] ? indexOrName.name : indexOrName; var schema = this.extractSchema(table); return schema ? new Query["a" /* Query */]("DROP INDEX \"" + schema + "\".\"" + indexName + "\"") : new Query["a" /* Query */]("DROP INDEX \"" + indexName + "\""); }; /** * Builds create primary key sql. */ PostgresQueryRunner.prototype.createPrimaryKeySql = function (table, columnNames) { var primaryKeyName = this.connection.namingStrategy.primaryKeyName(table.name, columnNames); var columnNamesString = columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", "); return new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + primaryKeyName + "\" PRIMARY KEY (" + columnNamesString + ")"); }; /** * Builds drop primary key sql. */ PostgresQueryRunner.prototype.dropPrimaryKeySql = function (table) { var columnNames = table.primaryColumns.map(function (column) { return column.name; }); var primaryKeyName = this.connection.namingStrategy.primaryKeyName(table.name, columnNames); return new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + primaryKeyName + "\""); }; /** * Builds create unique constraint sql. */ PostgresQueryRunner.prototype.createUniqueConstraintSql = function (table, uniqueConstraint) { var columnNames = uniqueConstraint.columnNames.map(function (column) { return "\"" + column + "\""; }).join(", "); return new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (" + columnNames + ")"); }; /** * Builds drop unique constraint sql. */ PostgresQueryRunner.prototype.dropUniqueConstraintSql = function (table, uniqueOrName) { var uniqueName = uniqueOrName instanceof TableUnique["a" /* TableUnique */] ? uniqueOrName.name : uniqueOrName; return new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + uniqueName + "\""); }; /** * Builds create check constraint sql. */ PostgresQueryRunner.prototype.createCheckConstraintSql = function (table, checkConstraint) { return new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + checkConstraint.name + "\" CHECK (" + checkConstraint.expression + ")"); }; /** * Builds drop check constraint sql. */ PostgresQueryRunner.prototype.dropCheckConstraintSql = function (table, checkOrName) { var checkName = checkOrName instanceof TableCheck["a" /* TableCheck */] ? checkOrName.name : checkOrName; return new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + checkName + "\""); }; /** * Builds create exclusion constraint sql. */ PostgresQueryRunner.prototype.createExclusionConstraintSql = function (table, exclusionConstraint) { return new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + exclusionConstraint.name + "\" EXCLUDE " + exclusionConstraint.expression); }; /** * Builds drop exclusion constraint sql. */ PostgresQueryRunner.prototype.dropExclusionConstraintSql = function (table, exclusionOrName) { var exclusionName = exclusionOrName instanceof TableExclusion["a" /* TableExclusion */] ? exclusionOrName.name : exclusionOrName; return new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + exclusionName + "\""); }; /** * Builds create foreign key sql. */ PostgresQueryRunner.prototype.createForeignKeySql = function (table, foreignKey) { var columnNames = foreignKey.columnNames.map(function (column) { return "\"" + column + "\""; }).join(", "); var referencedColumnNames = foreignKey.referencedColumnNames.map(function (column) { return "\"" + column + "\""; }).join(","); var sql = "ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + foreignKey.name + "\" FOREIGN KEY (" + columnNames + ") " + ("REFERENCES " + this.escapePath(foreignKey.referencedTableName) + "(" + referencedColumnNames + ")"); if (foreignKey.onDelete) sql += " ON DELETE " + foreignKey.onDelete; if (foreignKey.onUpdate) sql += " ON UPDATE " + foreignKey.onUpdate; if (foreignKey.deferrable) sql += " DEFERRABLE " + foreignKey.deferrable; return new Query["a" /* Query */](sql); }; /** * Builds drop foreign key sql. */ PostgresQueryRunner.prototype.dropForeignKeySql = function (table, foreignKeyOrName) { var foreignKeyName = foreignKeyOrName instanceof TableForeignKey["a" /* TableForeignKey */] ? foreignKeyOrName.name : foreignKeyOrName; return new Query["a" /* Query */]("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + foreignKeyName + "\""); }; /** * Builds sequence name from given table and column. */ PostgresQueryRunner.prototype.buildSequenceName = function (table, columnOrName, currentSchema, disableEscape, skipSchema) { var columnName = columnOrName instanceof TableColumn["a" /* TableColumn */] ? columnOrName.name : columnOrName; var schema = undefined; var tableName = undefined; if (table.name.indexOf(".") === -1) { tableName = table.name; } else { schema = table.name.split(".")[0]; tableName = table.name.split(".")[1]; } var seqName = tableName + "_" + columnName + "_seq"; if (seqName.length > this.connection.driver.maxAliasLength) // note doesn't yet handle corner cases where .length differs from number of UTF-8 bytes seqName = tableName.substring(0, 29) + "_" + columnName.substring(0, Math.max(29, 63 - tableName.length - 5)) + "_seq"; if (schema && schema !== currentSchema && !skipSchema) { return disableEscape ? schema + "." + seqName : "\"" + schema + "\".\"" + seqName + "\""; } else { return disableEscape ? "" + seqName : "\"" + seqName + "\""; } }; /** * Builds ENUM type name from given table and column. */ PostgresQueryRunner.prototype.buildEnumName = function (table, column, withSchema, disableEscape, toOld) { if (withSchema === void 0) { withSchema = true; } var schema = table.name.indexOf(".") === -1 ? this.driver.options.schema : table.name.split(".")[0]; var tableName = table.name.indexOf(".") === -1 ? table.name : table.name.split(".")[1]; var enumName = column.enumName ? column.enumName : tableName + "_" + column.name.toLowerCase() + "_enum"; if (schema && withSchema) enumName = schema + "." + enumName; if (toOld) enumName = enumName + "_old"; return enumName.split(".").map(function (i) { return disableEscape ? i : "\"" + i + "\""; }).join("."); }; PostgresQueryRunner.prototype.getEnumTypeName = function (table, column) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var currentSchemaQuery, currentSchema, _a, schema, name, result, udtName; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: return [4 /*yield*/, this.query("SELECT * FROM current_schema()")]; case 1: currentSchemaQuery = _b.sent(); currentSchema = currentSchemaQuery[0]["current_schema"]; _a = Object(tslib_es6["e" /* __read */])(table.name.split("."), 2), schema = _a[0], name = _a[1]; if (!name) { name = schema; schema = this.driver.options.schema || currentSchema; } return [4 /*yield*/, this.query("SELECT \"udt_schema\", \"udt_name\" " + ("FROM \"information_schema\".\"columns\" WHERE \"table_schema\" = '" + schema + "' AND \"table_name\" = '" + name + "' AND \"column_name\"='" + column.name + "'"))]; case 2: result = _b.sent(); udtName = result[0]["udt_name"]; if (udtName.indexOf("_") === 0) { udtName = udtName.substr(1, udtName.length); } return [2 /*return*/, { enumTypeSchema: result[0]["udt_schema"], enumTypeName: udtName }]; } }); }); }; /** * Escapes a given comment so it's safe to include in a query. */ PostgresQueryRunner.prototype.escapeComment = function (comment) { if (!comment || comment.length === 0) { return "NULL"; } comment = comment .replace(/'/g, "''") .replace("\0", ""); // Null bytes aren't allowed in comments return "'" + comment + "'"; }; /** * Escapes given table or view path. */ PostgresQueryRunner.prototype.escapePath = function (target, disableEscape) { var tableName = target instanceof Table["a" /* Table */] || target instanceof View["a" /* View */] ? target.name : target; tableName = tableName.indexOf(".") === -1 && this.driver.options.schema ? this.driver.options.schema + "." + tableName : tableName; return tableName.split(".").map(function (i) { return disableEscape ? i : "\"" + i + "\""; }).join("."); }; /** * Returns object with table schema and table name. */ PostgresQueryRunner.prototype.parseTableName = function (target) { var tableName = target instanceof Table["a" /* Table */] ? target.name : target; if (tableName.indexOf(".") === -1) { return { schema: this.driver.options.schema ? "'" + this.driver.options.schema + "'" : "current_schema()", tableName: "'" + tableName + "'" }; } else { return { schema: "'" + tableName.split(".")[0] + "'", tableName: "'" + tableName.split(".")[1] + "'" }; } }; /** * Builds a query for create column. */ PostgresQueryRunner.prototype.buildCreateColumnSql = function (table, column) { var c = "\"" + column.name + "\""; if (column.isGenerated === true && column.generationStrategy !== "uuid") { if (column.type === "integer" || column.type === "int" || column.type === "int4") c += " SERIAL"; if (column.type === "smallint" || column.type === "int2") c += " SMALLSERIAL"; if (column.type === "bigint" || column.type === "int8") c += " BIGSERIAL"; } if (column.type === "enum" || column.type === "simple-enum") { c += " " + this.buildEnumName(table, column); if (column.isArray) c += " array"; } else if (!column.isGenerated || column.type === "uuid") { c += " " + this.connection.driver.createFullType(column); } if (column.charset) c += " CHARACTER SET \"" + column.charset + "\""; if (column.collation) c += " COLLATE \"" + column.collation + "\""; if (column.isNullable !== true) c += " NOT NULL"; if (column.default !== undefined && column.default !== null) c += " DEFAULT " + column.default; if (column.isGenerated && column.generationStrategy === "uuid" && !column.default) c += " DEFAULT " + this.driver.uuidGenerator; return c; }; /** * Checks if the PostgreSQL server has support for partitioned tables */ PostgresQueryRunner.prototype.hasSupportForPartitionedTables = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var result; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.query("SELECT TRUE FROM information_schema.columns WHERE table_name = 'pg_class' and column_name = 'relispartition'")]; case 1: result = _a.sent(); return [2 /*return*/, result.length ? true : false]; } }); }); }; return PostgresQueryRunner; }(BaseQueryRunner["a" /* BaseQueryRunner */])); //# sourceMappingURL=PostgresQueryRunner.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js var AuroraDataApiPostgresQueryRunner_PostgresQueryRunnerWrapper = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(PostgresQueryRunnerWrapper, _super); function PostgresQueryRunnerWrapper(driver, mode) { return _super.call(this, driver, mode) || this; } return PostgresQueryRunnerWrapper; }(PostgresQueryRunner_PostgresQueryRunner)); /** * Runs queries on a single postgres database connection. */ var AuroraDataApiPostgresQueryRunner_AuroraDataApiPostgresQueryRunner = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(AuroraDataApiPostgresQueryRunner, _super); // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function AuroraDataApiPostgresQueryRunner(driver, client, mode) { var _this = _super.call(this, driver, mode) || this; _this.client = client; return _this; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Creates/uses database connection from the connection pool to perform further operations. * Returns obtained database connection. */ AuroraDataApiPostgresQueryRunner.prototype.connect = function () { var _this = this; if (this.databaseConnection) return Promise.resolve(this.databaseConnection); if (this.databaseConnectionPromise) return this.databaseConnectionPromise; if (this.mode === "slave" && this.driver.isReplicated) { this.databaseConnectionPromise = this.driver.obtainSlaveConnection().then(function (_a) { var _b = Object(tslib_es6["e" /* __read */])(_a, 2), connection = _b[0], release = _b[1]; _this.driver.connectedQueryRunners.push(_this); _this.databaseConnection = connection; _this.releaseCallback = release; return _this.databaseConnection; }); } else { // master this.databaseConnectionPromise = this.driver.obtainMasterConnection().then(function (_a) { var _b = Object(tslib_es6["e" /* __read */])(_a, 2), connection = _b[0], release = _b[1]; _this.driver.connectedQueryRunners.push(_this); _this.databaseConnection = connection; _this.releaseCallback = release; return _this.databaseConnection; }); } return this.databaseConnectionPromise; }; /** * Starts transaction on the current connection. */ AuroraDataApiPostgresQueryRunner.prototype.startTransaction = function (isolationLevel) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var beforeBroadcastResult, afterBroadcastResult; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (this.isTransactionActive) throw new TransactionAlreadyStartedError["a" /* TransactionAlreadyStartedError */](); beforeBroadcastResult = new BroadcasterResult["a" /* BroadcasterResult */](); this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult); if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2]; return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)]; case 1: _a.sent(); _a.label = 2; case 2: this.isTransactionActive = true; return [4 /*yield*/, this.client.startTransaction()]; case 3: _a.sent(); afterBroadcastResult = new BroadcasterResult["a" /* BroadcasterResult */](); this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult); if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5]; return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)]; case 4: _a.sent(); _a.label = 5; case 5: return [2 /*return*/]; } }); }); }; /** * Commits transaction. * Error will be thrown if transaction was not started. */ AuroraDataApiPostgresQueryRunner.prototype.commitTransaction = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var beforeBroadcastResult, afterBroadcastResult; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (!this.isTransactionActive) throw new TransactionNotStartedError["a" /* TransactionNotStartedError */](); beforeBroadcastResult = new BroadcasterResult["a" /* BroadcasterResult */](); this.broadcaster.broadcastBeforeTransactionCommitEvent(beforeBroadcastResult); if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2]; return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)]; case 1: _a.sent(); _a.label = 2; case 2: return [4 /*yield*/, this.client.commitTransaction()]; case 3: _a.sent(); this.isTransactionActive = false; afterBroadcastResult = new BroadcasterResult["a" /* BroadcasterResult */](); this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult); if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5]; return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)]; case 4: _a.sent(); _a.label = 5; case 5: return [2 /*return*/]; } }); }); }; /** * Rollbacks transaction. * Error will be thrown if transaction was not started. */ AuroraDataApiPostgresQueryRunner.prototype.rollbackTransaction = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var beforeBroadcastResult, afterBroadcastResult; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (!this.isTransactionActive) throw new TransactionNotStartedError["a" /* TransactionNotStartedError */](); beforeBroadcastResult = new BroadcasterResult["a" /* BroadcasterResult */](); this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult); if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2]; return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)]; case 1: _a.sent(); _a.label = 2; case 2: return [4 /*yield*/, this.client.rollbackTransaction()]; case 3: _a.sent(); afterBroadcastResult = new BroadcasterResult["a" /* BroadcasterResult */](); this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult); if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5]; return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)]; case 4: _a.sent(); _a.label = 5; case 5: return [2 /*return*/]; } }); }); }; /** * Executes a given SQL query. */ AuroraDataApiPostgresQueryRunner.prototype.query = function (query, parameters) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var result; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (this.isReleased) throw new QueryRunnerAlreadyReleasedError["a" /* QueryRunnerAlreadyReleasedError */](); return [4 /*yield*/, this.client.query(query, parameters)]; case 1: result = _a.sent(); if (result.records) { return [2 /*return*/, result.records]; } return [2 /*return*/, result]; } }); }); }; return AuroraDataApiPostgresQueryRunner; }(AuroraDataApiPostgresQueryRunner_PostgresQueryRunnerWrapper)); //# sourceMappingURL=AuroraDataApiPostgresQueryRunner.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js var AuroraDataApiPostgresDriver_PostgresWrapper = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(PostgresWrapper, _super); function PostgresWrapper() { return _super !== null && _super.apply(this, arguments) || this; } return PostgresWrapper; }(BrowserDisabledDriversDummy["k" /* PostgresDriver */])); var AuroraDataApiPostgresDriver_AuroraDataApiPostgresDriver = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(AuroraDataApiPostgresDriver, _super); // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function AuroraDataApiPostgresDriver(connection) { var _this = _super.call(this) || this; _this.connection = connection; _this.options = connection.options; _this.isReplicated = false; // load data-api package _this.loadDependencies(); _this.client = new _this.DataApiDriver(_this.options.region, _this.options.secretArn, _this.options.resourceArn, _this.options.database, function (query, parameters) { return _this.connection.logger.logQuery(query, parameters); }, _this.options.serviceConfigOptions, _this.options.formatOptions); return _this; } // ------------------------------------------------------------------------- // Public Implemented Methods // ------------------------------------------------------------------------- /** * Performs connection to the database. * Based on pooling options, it can either create connection immediately, * either create a pool and create connection when needed. */ AuroraDataApiPostgresDriver.prototype.connect = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/]; }); }); }; /** * Closes connection with database. */ AuroraDataApiPostgresDriver.prototype.disconnect = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/]; }); }); }; /** * Creates a query runner used to execute database queries. */ AuroraDataApiPostgresDriver.prototype.createQueryRunner = function (mode) { var _this = this; return new AuroraDataApiPostgresQueryRunner_AuroraDataApiPostgresQueryRunner(this, new this.DataApiDriver(this.options.region, this.options.secretArn, this.options.resourceArn, this.options.database, function (query, parameters) { return _this.connection.logger.logQuery(query, parameters); }, this.options.serviceConfigOptions, this.options.formatOptions), mode); }; /** * Prepares given value to a value to be persisted, based on its column type and metadata. */ AuroraDataApiPostgresDriver.prototype.preparePersistentValue = function (value, columnMetadata) { if (this.options.formatOptions && this.options.formatOptions.castParameters === false) { return _super.prototype.preparePersistentValue.call(this, value, columnMetadata); } if (columnMetadata.transformer) value = ApplyValueTransformers["a" /* ApplyValueTransformers */].transformTo(columnMetadata.transformer, value); return this.client.preparePersistentValue(value, columnMetadata); }; /** * Prepares given value to a value to be persisted, based on its column type and metadata. */ AuroraDataApiPostgresDriver.prototype.prepareHydratedValue = function (value, columnMetadata) { if (this.options.formatOptions && this.options.formatOptions.castParameters === false) { return _super.prototype.prepareHydratedValue.call(this, value, columnMetadata); } if (columnMetadata.transformer) value = ApplyValueTransformers["a" /* ApplyValueTransformers */].transformFrom(columnMetadata.transformer, value); return this.client.prepareHydratedValue(value, columnMetadata); }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * If driver dependency is not given explicitly, then try to load it via "require". */ AuroraDataApiPostgresDriver.prototype.loadDependencies = function () { var pg = BrowserPlatformTools["a" /* PlatformTools */].load("typeorm-aurora-data-api-driver").pg; this.DataApiDriver = pg; }; /** * Executes given query. */ AuroraDataApiPostgresDriver.prototype.executeQuery = function (connection, query) { return this.connection.query(query); }; /** * Makes any action after connection (e.g. create extensions in Postgres driver). */ AuroraDataApiPostgresDriver.prototype.afterConnect = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var extensionsMetadata; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.checkMetadataForExtensions()]; case 1: extensionsMetadata = _a.sent(); if (!extensionsMetadata.hasExtensions) return [3 /*break*/, 3]; return [4 /*yield*/, this.enableExtensions(extensionsMetadata, this.connection)]; case 2: _a.sent(); _a.label = 3; case 3: return [2 /*return*/, Promise.resolve()]; } }); }); }; return AuroraDataApiPostgresDriver; }(AuroraDataApiPostgresDriver_PostgresWrapper)); //# sourceMappingURL=AuroraDataApiPostgresDriver.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/driver/DriverFactory.js /** * Helps to create drivers. */ var DriverFactory_DriverFactory = /** @class */ (function () { function DriverFactory() { } /** * Creates a new driver depend on a given connection's driver type. */ DriverFactory.prototype.create = function (connection) { var type = connection.options.type; switch (type) { case "mysql": return new BrowserDisabledDriversDummy["i" /* MysqlDriver */](connection); case "postgres": return new BrowserDisabledDriversDummy["k" /* PostgresDriver */](connection); case "cockroachdb": return new BrowserDisabledDriversDummy["d" /* CockroachDriver */](connection); case "sap": return new BrowserDisabledDriversDummy["l" /* SapDriver */](connection); case "mariadb": return new BrowserDisabledDriversDummy["i" /* MysqlDriver */](connection); case "sqlite": return new BrowserDisabledDriversDummy["n" /* SqliteDriver */](connection); case "better-sqlite3": return new BrowserDisabledDriversDummy["c" /* BetterSqlite3Driver */](connection); case "cordova": return new CordovaDriver_CordovaDriver(connection); case "nativescript": return new NativescriptDriver["a" /* NativescriptDriver */](connection); case "react-native": return new ReactNativeDriver_ReactNativeDriver(connection); case "sqljs": return new SqljsDriver["a" /* SqljsDriver */](connection); case "oracle": return new BrowserDisabledDriversDummy["j" /* OracleDriver */](connection); case "mssql": return new BrowserDisabledDriversDummy["m" /* SqlServerDriver */](connection); case "mongodb": return new BrowserDisabledDriversDummy["e" /* MongoDriver */](connection); case "expo": return new ExpoDriver_ExpoDriver(connection); case "aurora-data-api": return new BrowserDisabledDriversDummy["a" /* AuroraDataApiDriver */](connection); case "aurora-data-api-pg": return new AuroraDataApiPostgresDriver_AuroraDataApiPostgresDriver(connection); default: throw new MissingDriverError_MissingDriverError(type); } }; return DriverFactory; }()); //# sourceMappingURL=DriverFactory.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/platform/BrowserDirectoryExportedClassesLoader.js /** * Dummy functions for replacement via `package.json` in browser builds. * * If we don't include these functions typeorm will throw an error on runtime * as well as during webpack builds. */ /** * Loads all exported classes from the given directory. */ function importClassesFromDirectories(logger, directories, formats) { if (formats === void 0) { formats = [".js", ".cjs", ".ts"]; } return []; } /** * Loads all json files from the given directory. */ function importJsonsFromDirectories(directories, format) { if (format === void 0) { format = ".json"; } return []; } //# sourceMappingURL=BrowserDirectoryExportedClassesLoader.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/container.js /** * Container to be used by this library for inversion control. If container was not implicitly set then by default * container simply creates a new instance of the given class. */ var defaultContainer = new (/** @class */ (function () { function class_1() { this.instances = []; } class_1.prototype.get = function (someClass) { var instance = this.instances.find(function (i) { return i.type === someClass; }); if (!instance) { instance = { type: someClass, object: new someClass() }; this.instances.push(instance); } return instance.object; }; return class_1; }()))(); var userContainer; var userContainerOptions; /** * Sets container to be used by this library. */ function useContainer(iocContainer, options) { userContainer = iocContainer; userContainerOptions = options; } /** * Gets the IOC container used by this library. */ function getFromContainer(someClass) { if (userContainer) { try { var instance = userContainer.get(someClass); if (instance) return instance; if (!userContainerOptions || !userContainerOptions.fallback) return instance; } catch (error) { if (!userContainerOptions || !userContainerOptions.fallbackOnErrors) throw error; } } return defaultContainer.get(someClass); } //# sourceMappingURL=container.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/metadata/ColumnMetadata.js var ColumnMetadata = __webpack_require__(32); // CONCATENATED MODULE: ./node_modules/typeorm/browser/metadata/IndexMetadata.js /** * Index metadata contains all information about table's index. */ var IndexMetadata = /** @class */ (function () { // --------------------------------------------------------------------- // Constructor // --------------------------------------------------------------------- function IndexMetadata(options) { /** * Indicates if this index must be unique. */ this.isUnique = false; /** * The SPATIAL modifier indexes the entire column and does not allow indexed columns to contain NULL values. * Works only in MySQL. */ this.isSpatial = false; /** * The FULLTEXT modifier indexes the entire column and does not allow prefixing. * Works only in MySQL. */ this.isFulltext = false; /** * Indicates if this index must synchronize with database index. */ this.synchronize = true; /** * Indexed columns. */ this.columns = []; /** * Map of column names with order set. * Used only by MongoDB driver. */ this.columnNamesWithOrderingMap = {}; this.entityMetadata = options.entityMetadata; this.embeddedMetadata = options.embeddedMetadata; if (options.columns) this.columns = options.columns; if (options.args) { this.target = options.args.target; if (options.args.synchronize !== null && options.args.synchronize !== undefined) this.synchronize = options.args.synchronize; this.isUnique = !!options.args.unique; this.isSpatial = !!options.args.spatial; this.isFulltext = !!options.args.fulltext; this.parser = options.args.parser; this.where = options.args.where; this.isSparse = options.args.sparse; this.isBackground = options.args.background; this.expireAfterSeconds = options.args.expireAfterSeconds; this.givenName = options.args.name; this.givenColumnNames = options.args.columns; } } // --------------------------------------------------------------------- // Public Build Methods // --------------------------------------------------------------------- /** * Builds some depend index properties. * Must be called after all entity metadata's properties map, columns and relations are built. */ IndexMetadata.prototype.build = function (namingStrategy) { var _this = this; if (this.synchronize === false) { this.name = this.givenName; return this; } var map = {}; // if columns already an array of string then simply return it if (this.givenColumnNames) { var columnPropertyPaths = []; if (Array.isArray(this.givenColumnNames)) { columnPropertyPaths = this.givenColumnNames.map(function (columnName) { if (_this.embeddedMetadata) return _this.embeddedMetadata.propertyPath + "." + columnName; return columnName; }); columnPropertyPaths.forEach(function (propertyPath) { return map[propertyPath] = 1; }); } else { // todo: indices in embeds are not implemented in this syntax. deprecate this syntax? // if columns is a function that returns array of field names then execute it and get columns names from it var columnsFnResult_1 = this.givenColumnNames(this.entityMetadata.propertiesMap); if (Array.isArray(columnsFnResult_1)) { columnPropertyPaths = columnsFnResult_1.map(function (i) { return String(i); }); columnPropertyPaths.forEach(function (name) { return map[name] = 1; }); } else { columnPropertyPaths = Object.keys(columnsFnResult_1).map(function (i) { return String(i); }); Object.keys(columnsFnResult_1).forEach(function (columnName) { return map[columnName] = columnsFnResult_1[columnName]; }); } } this.columns = columnPropertyPaths.map(function (propertyPath) { var columnWithSameName = _this.entityMetadata.columns.find(function (column) { return column.propertyPath === propertyPath; }); if (columnWithSameName) { return [columnWithSameName]; } var relationWithSameName = _this.entityMetadata.relations.find(function (relation) { return relation.isWithJoinColumn && relation.propertyName === propertyPath; }); if (relationWithSameName) { return relationWithSameName.joinColumns; } var indexName = _this.givenName ? "\"" + _this.givenName + "\" " : ""; var entityName = _this.entityMetadata.targetName; throw new Error("Index " + indexName + "contains column that is missing in the entity (" + entityName + "): " + propertyPath); }) .reduce(function (a, b) { return a.concat(b); }); } this.columnNamesWithOrderingMap = Object.keys(map).reduce(function (updatedMap, key) { var column = _this.entityMetadata.columns.find(function (column) { return column.propertyPath === key; }); if (column) updatedMap[column.databasePath] = map[key]; return updatedMap; }, {}); this.name = this.givenName ? this.givenName : namingStrategy.indexName(this.entityMetadata.tablePath, this.columns.map(function (column) { return column.databaseName; }), this.where); return this; }; return IndexMetadata; }()); //# sourceMappingURL=IndexMetadata.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/metadata/RelationMetadata.js /** * Contains all information about some entity's relation. */ var RelationMetadata_RelationMetadata = /** @class */ (function () { // --------------------------------------------------------------------- // Constructor // --------------------------------------------------------------------- function RelationMetadata(options) { /** * Indicates if this is a parent (can be only many-to-one relation) relation in the tree tables. */ this.isTreeParent = false; /** * Indicates if this is a children (can be only one-to-many relation) relation in the tree tables. */ this.isTreeChildren = false; /** * Indicates if this relation's column is a primary key. * Can be used only for many-to-one and owner one-to-one relations. */ this.isPrimary = false; /** * Indicates if this relation is lazily loaded. */ this.isLazy = false; /** * Indicates if this relation is eagerly loaded. */ this.isEager = false; /** * Indicates if persistence is enabled for the relation. * By default its enabled, but if you want to avoid any changes in the relation to be reflected in the database you can disable it. * If its disabled you can only change a relation from inverse side of a relation or using relation query builder functionality. * This is useful for performance optimization since its disabling avoid multiple extra queries during entity save. */ this.persistenceEnabled = true; /** * If set to true then related objects are allowed to be inserted to the database. */ this.isCascadeInsert = false; /** * If set to true then related objects are allowed to be updated in the database. */ this.isCascadeUpdate = false; /** * If set to true then related objects are allowed to be remove from the database. */ this.isCascadeRemove = false; /** * If set to true then related objects are allowed to be soft-removed from the database. */ this.isCascadeSoftRemove = false; /** * If set to true then related objects are allowed to be recovered from the database. */ this.isCascadeRecover = false; /** * Indicates if relation column value can be nullable or not. */ this.isNullable = true; /** * Indicates whether foreign key constraints will be created for join columns. * Can be used only for many-to-one and owner one-to-one relations. * Defaults to true. */ this.createForeignKeyConstraints = true; /** * Indicates if this side is an owner of this relation. */ this.isOwning = false; /** * Checks if this relation's type is "one-to-one". */ this.isOneToOne = false; /** * Checks if this relation is owner side of the "one-to-one" relation. * Owner side means this side of relation has a join column in the table. */ this.isOneToOneOwner = false; /** * Checks if this relation has a join column (e.g. is it many-to-one or one-to-one owner side). */ this.isWithJoinColumn = false; /** * Checks if this relation is NOT owner side of the "one-to-one" relation. * NOT owner side means this side of relation does not have a join column in the table. */ this.isOneToOneNotOwner = false; /** * Checks if this relation's type is "one-to-many". */ this.isOneToMany = false; /** * Checks if this relation's type is "many-to-one". */ this.isManyToOne = false; /** * Checks if this relation's type is "many-to-many". */ this.isManyToMany = false; /** * Checks if this relation's type is "many-to-many", and is owner side of the relationship. * Owner side means this side of relation has a join table. */ this.isManyToManyOwner = false; /** * Checks if this relation's type is "many-to-many", and is NOT owner side of the relationship. * Not owner side means this side of relation does not have a join table. */ this.isManyToManyNotOwner = false; /** * Foreign keys created for this relation. */ this.foreignKeys = []; /** * Join table columns. * Join columns can be obtained only from owner side of the relation. * From non-owner side of the relation join columns will be empty. * If this relation is a many-to-one/one-to-one then it takes join columns from the current entity. * If this relation is many-to-many then it takes all owner join columns from the junction entity. */ this.joinColumns = []; /** * Inverse join table columns. * Inverse join columns are supported only for many-to-many relations * and can be obtained only from owner side of the relation. * From non-owner side of the relation join columns will be undefined. */ this.inverseJoinColumns = []; this.entityMetadata = options.entityMetadata; this.embeddedMetadata = options.embeddedMetadata; var args = options.args; this.target = args.target; this.propertyName = args.propertyName; this.relationType = args.relationType; if (args.inverseSideProperty) this.givenInverseSidePropertyFactory = args.inverseSideProperty; this.isLazy = args.isLazy || false; // this.isCascadeInsert = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("insert") !== -1); // this.isCascadeUpdate = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("update") !== -1); // this.isCascadeRemove = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("remove") !== -1); // this.isCascadeSoftRemove = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("soft-remove") !== -1); // this.isCascadeRecover = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("recover") !== -1); this.isCascadeInsert = args.options.cascade === true || (Array.isArray(args.options.cascade) && args.options.cascade.indexOf("insert") !== -1); this.isCascadeUpdate = args.options.cascade === true || (Array.isArray(args.options.cascade) && args.options.cascade.indexOf("update") !== -1); this.isCascadeRemove = args.options.cascade === true || (Array.isArray(args.options.cascade) && args.options.cascade.indexOf("remove") !== -1); this.isCascadeSoftRemove = args.options.cascade === true || (Array.isArray(args.options.cascade) && args.options.cascade.indexOf("soft-remove") !== -1); this.isCascadeRecover = args.options.cascade === true || (Array.isArray(args.options.cascade) && args.options.cascade.indexOf("recover") !== -1); this.isPrimary = args.options.primary || false; this.isNullable = args.options.nullable === false || this.isPrimary ? false : true; this.onDelete = args.options.onDelete; this.onUpdate = args.options.onUpdate; this.deferrable = args.options.deferrable; this.createForeignKeyConstraints = args.options.createForeignKeyConstraints === false ? false : true; this.isEager = args.options.eager || false; this.persistenceEnabled = args.options.persistence === false ? false : true; this.orphanedRowAction = args.options.orphanedRowAction || "nullify"; this.isTreeParent = args.isTreeParent || false; this.isTreeChildren = args.isTreeChildren || false; this.type = args.type instanceof Function ? args.type() : args.type; this.isOneToOne = this.relationType === "one-to-one"; this.isOneToMany = this.relationType === "one-to-many"; this.isManyToOne = this.relationType === "many-to-one"; this.isManyToMany = this.relationType === "many-to-many"; this.isOneToOneNotOwner = this.isOneToOne ? true : false; this.isManyToManyNotOwner = this.isManyToMany ? true : false; } // --------------------------------------------------------------------- // Public Methods // --------------------------------------------------------------------- /** * Creates join column ids map from the given related entity ids array. */ RelationMetadata.prototype.getRelationIdMap = function (entity) { var joinColumns = this.isOwning ? this.joinColumns : this.inverseRelation.joinColumns; var referencedColumns = joinColumns.map(function (joinColumn) { return joinColumn.referencedColumn; }); // console.log("entity", entity); // console.log("referencedColumns", referencedColumns); return EntityMetadata["a" /* EntityMetadata */].getValueMap(entity, referencedColumns); }; /** * Ensures that given object is an entity id map. * If given id is an object then it means its already id map. * If given id isn't an object then it means its a value of the id column * and it creates a new id map with this value and name of the primary column. */ RelationMetadata.prototype.ensureRelationIdMap = function (id) { if (id instanceof Object) return id; var joinColumns = this.isOwning ? this.joinColumns : this.inverseRelation.joinColumns; var referencedColumns = joinColumns.map(function (joinColumn) { return joinColumn.referencedColumn; }); if (referencedColumns.length > 1) throw new Error("Cannot create relation id map for a single value because relation contains multiple referenced columns."); return referencedColumns[0].createValueMap(id); }; /** * Extracts column value from the given entity. * If column is in embedded (or recursive embedded) it extracts its value from there. */ RelationMetadata.prototype.getEntityValue = function (entity, getLazyRelationsPromiseValue) { if (getLazyRelationsPromiseValue === void 0) { getLazyRelationsPromiseValue = false; } if (entity === null || entity === undefined) return undefined; // extract column value from embeddeds of entity if column is in embedded if (this.embeddedMetadata) { // example: post[data][information][counters].id where "data", "information" and "counters" are embeddeds // we need to get value of "id" column from the post real entity object // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters] var propertyNames = Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(this.embeddedMetadata.parentPropertyNames)); // next we need to access post[data][information][counters][this.propertyName] to get column value from the counters // this recursive function takes array of generated property names and gets the post[data][information][counters] embed var extractEmbeddedColumnValue_1 = function (propertyNames, value) { var propertyName = propertyNames.shift(); if (propertyName) { if (value[propertyName]) { return extractEmbeddedColumnValue_1(propertyNames, value[propertyName]); } return undefined; } return value; }; // once we get nested embed object we get its column, e.g. post[data][information][counters][this.propertyName] var embeddedObject = extractEmbeddedColumnValue_1(propertyNames, entity); if (this.isLazy) { if (embeddedObject["__" + this.propertyName + "__"] !== undefined) return embeddedObject["__" + this.propertyName + "__"]; if (getLazyRelationsPromiseValue === true) return embeddedObject[this.propertyName]; return undefined; } return embeddedObject ? embeddedObject[this.isLazy ? "__" + this.propertyName + "__" : this.propertyName] : undefined; } else { // no embeds - no problems. Simply return column name by property name of the entity if (this.isLazy) { if (entity["__" + this.propertyName + "__"] !== undefined) return entity["__" + this.propertyName + "__"]; if (getLazyRelationsPromiseValue === true) return entity[this.propertyName]; return undefined; } return entity[this.propertyName]; } }; /** * Sets given entity's relation's value. * Using of this method helps to set entity relation's value of the lazy and non-lazy relations. * * If merge is set to true, it merges given value into currently */ RelationMetadata.prototype.setEntityValue = function (entity, value) { var propertyName = this.isLazy ? "__" + this.propertyName + "__" : this.propertyName; if (this.embeddedMetadata) { // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters] var extractEmbeddedColumnValue_2 = function (embeddedMetadatas, map) { // if (!object[embeddedMetadata.propertyName]) // object[embeddedMetadata.propertyName] = embeddedMetadata.create(); var embeddedMetadata = embeddedMetadatas.shift(); if (embeddedMetadata) { if (!map[embeddedMetadata.propertyName]) map[embeddedMetadata.propertyName] = embeddedMetadata.create(); extractEmbeddedColumnValue_2(embeddedMetadatas, map[embeddedMetadata.propertyName]); return map; } map[propertyName] = value; return map; }; return extractEmbeddedColumnValue_2(Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(this.embeddedMetadata.embeddedMetadataTree)), entity); } else { entity[propertyName] = value; } }; /** * Creates entity id map from the given entity ids array. */ RelationMetadata.prototype.createValueMap = function (value) { var _a; var _this = this; // extract column value from embeds of entity if column is in embedded if (this.embeddedMetadata) { // example: post[data][information][counters].id where "data", "information" and "counters" are embeddeds // we need to get value of "id" column from the post real entity object and return it in a // { data: { information: { counters: { id: ... } } } } format // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters] var propertyNames = Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(this.embeddedMetadata.parentPropertyNames)); // now need to access post[data][information][counters] to get column value from the counters // and on each step we need to create complex literal object, e.g. first { data }, // then { data: { information } }, then { data: { information: { counters } } }, // then { data: { information: { counters: [this.propertyName]: entity[data][information][counters][this.propertyName] } } } // this recursive function helps doing that var extractEmbeddedColumnValue_3 = function (propertyNames, map) { var propertyName = propertyNames.shift(); if (propertyName) { map[propertyName] = {}; extractEmbeddedColumnValue_3(propertyNames, map[propertyName]); return map; } map[_this.propertyName] = value; return map; }; return extractEmbeddedColumnValue_3(propertyNames, {}); } else { // no embeds - no problems. Simply return column property name and its value of the entity return _a = {}, _a[this.propertyName] = value, _a; } }; // --------------------------------------------------------------------- // Builder Methods // --------------------------------------------------------------------- /** * Builds some depend relation metadata properties. * This builder method should be used only after embedded metadata tree was build. */ RelationMetadata.prototype.build = function () { this.propertyPath = this.buildPropertyPath(); }; /** * Registers given foreign keys in the relation. * This builder method should be used to register foreign key in the relation. */ RelationMetadata.prototype.registerForeignKeys = function () { var _a; var foreignKeys = []; for (var _i = 0; _i < arguments.length; _i++) { foreignKeys[_i] = arguments[_i]; } (_a = this.foreignKeys).push.apply(_a, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(foreignKeys))); }; /** * Registers given join columns in the relation. * This builder method should be used to register join column in the relation. */ RelationMetadata.prototype.registerJoinColumns = function (joinColumns, inverseJoinColumns) { if (joinColumns === void 0) { joinColumns = []; } if (inverseJoinColumns === void 0) { inverseJoinColumns = []; } this.joinColumns = joinColumns; this.inverseJoinColumns = inverseJoinColumns; this.isOwning = this.isManyToOne || ((this.isManyToMany || this.isOneToOne) && this.joinColumns.length > 0); this.isOneToOneOwner = this.isOneToOne && this.isOwning; this.isOneToOneNotOwner = this.isOneToOne && !this.isOwning; this.isManyToManyOwner = this.isManyToMany && this.isOwning; this.isManyToManyNotOwner = this.isManyToMany && !this.isOwning; this.isWithJoinColumn = this.isManyToOne || this.isOneToOneOwner; }; /** * Registers a given junction entity metadata. * This builder method can be called after junction entity metadata for the many-to-many relation was created. */ RelationMetadata.prototype.registerJunctionEntityMetadata = function (junctionEntityMetadata) { this.junctionEntityMetadata = junctionEntityMetadata; this.joinTableName = junctionEntityMetadata.tableName; if (this.inverseRelation) { this.inverseRelation.junctionEntityMetadata = junctionEntityMetadata; this.joinTableName = junctionEntityMetadata.tableName; } }; /** * Builds inverse side property path based on given inverse side property factory. * This builder method should be used only after properties map of the inverse entity metadata was build. */ RelationMetadata.prototype.buildInverseSidePropertyPath = function () { if (this.givenInverseSidePropertyFactory) { var ownerEntityPropertiesMap = this.inverseEntityMetadata.propertiesMap; if (typeof this.givenInverseSidePropertyFactory === "function") return this.givenInverseSidePropertyFactory(ownerEntityPropertiesMap); if (typeof this.givenInverseSidePropertyFactory === "string") return this.givenInverseSidePropertyFactory; } else if (this.isTreeParent && this.entityMetadata.treeChildrenRelation) { return this.entityMetadata.treeChildrenRelation.propertyName; } else if (this.isTreeChildren && this.entityMetadata.treeParentRelation) { return this.entityMetadata.treeParentRelation.propertyName; } return ""; }; /** * Builds relation's property path based on its embedded tree. */ RelationMetadata.prototype.buildPropertyPath = function () { if (!this.embeddedMetadata || !this.embeddedMetadata.parentPropertyNames.length) return this.propertyName; return this.embeddedMetadata.parentPropertyNames.join(".") + "." + this.propertyName; }; return RelationMetadata; }()); //# sourceMappingURL=RelationMetadata.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/metadata/EmbeddedMetadata.js /** * Contains all information about entity's embedded property. */ var EmbeddedMetadata_EmbeddedMetadata = /** @class */ (function () { // --------------------------------------------------------------------- // Constructor // --------------------------------------------------------------------- function EmbeddedMetadata(options) { /** * Columns inside this embed. */ this.columns = []; /** * Relations inside this embed. */ this.relations = []; /** * Entity listeners inside this embed. */ this.listeners = []; /** * Indices applied to the embed columns. */ this.indices = []; /** * Uniques applied to the embed columns. */ this.uniques = []; /** * Relation ids inside this embed. */ this.relationIds = []; /** * Relation counts inside this embed. */ this.relationCounts = []; /** * Nested embeddable in this embeddable (which has current embedded as parent embedded). */ this.embeddeds = []; /** * Indicates if this embedded is in array mode. * * This option works only in mongodb. */ this.isArray = false; /** * Returns array of property names of current embed and all its parent embeds. * * example: post[data][information][counters].id where "data", "information" and "counters" are embeds * we need to get value of "id" column from the post real entity object. * this method will return ["data", "information", "counters"] */ this.parentPropertyNames = []; /** * Returns array of prefixes of current embed and all its parent embeds. */ this.parentPrefixes = []; /** * Returns embed metadatas from all levels of the parent tree. * * example: post[data][information][counters].id where "data", "information" and "counters" are embeds * this method will return [embed metadata of data, embed metadata of information, embed metadata of counters] */ this.embeddedMetadataTree = []; /** * Embed metadatas from all levels of the parent tree. * * example: post[data][information][counters].id where "data", "information" and "counters" are embeds * this method will return [embed metadata of data, embed metadata of information, embed metadata of counters] */ this.columnsFromTree = []; /** * Relations of this embed and all relations from its child embeds. */ this.relationsFromTree = []; /** * Relations of this embed and all relations from its child embeds. */ this.listenersFromTree = []; /** * Indices of this embed and all indices from its child embeds. */ this.indicesFromTree = []; /** * Uniques of this embed and all uniques from its child embeds. */ this.uniquesFromTree = []; /** * Relation ids of this embed and all relation ids from its child embeds. */ this.relationIdsFromTree = []; /** * Relation counts of this embed and all relation counts from its child embeds. */ this.relationCountsFromTree = []; this.entityMetadata = options.entityMetadata; this.type = options.args.type(); this.propertyName = options.args.propertyName; this.customPrefix = options.args.prefix; this.isArray = options.args.isArray; } // --------------------------------------------------------------------- // Public Methods // --------------------------------------------------------------------- /** * Creates a new embedded object. */ EmbeddedMetadata.prototype.create = function () { return new this.type; }; // --------------------------------------------------------------------- // Builder Methods // --------------------------------------------------------------------- EmbeddedMetadata.prototype.build = function (connection) { this.embeddeds.forEach(function (embedded) { return embedded.build(connection); }); this.prefix = this.buildPrefix(connection); this.parentPropertyNames = this.buildParentPropertyNames(); this.parentPrefixes = this.buildParentPrefixes(); this.propertyPath = this.parentPropertyNames.join("."); this.embeddedMetadataTree = this.buildEmbeddedMetadataTree(); this.columnsFromTree = this.buildColumnsFromTree(); this.relationsFromTree = this.buildRelationsFromTree(); this.listenersFromTree = this.buildListenersFromTree(); this.indicesFromTree = this.buildIndicesFromTree(); this.uniquesFromTree = this.buildUniquesFromTree(); this.relationIdsFromTree = this.buildRelationIdsFromTree(); this.relationCountsFromTree = this.buildRelationCountsFromTree(); return this; }; // --------------------------------------------------------------------- // Protected Methods // --------------------------------------------------------------------- EmbeddedMetadata.prototype.buildPartialPrefix = function () { // if prefix option was not set or explicitly set to true - default prefix if (this.customPrefix === undefined || this.customPrefix === true) { return [this.propertyName]; } // if prefix option was set to empty string or explicity set to false - disable prefix if (this.customPrefix === "" || this.customPrefix === false) { return []; } // use custom prefix if (typeof this.customPrefix === "string") { return [this.customPrefix]; } throw new Error("Invalid prefix option given for " + this.entityMetadata.targetName + "#" + this.propertyName); }; EmbeddedMetadata.prototype.buildPrefix = function (connection) { if (connection.driver instanceof BrowserDisabledDriversDummy["e" /* MongoDriver */]) return this.propertyName; var prefixes = []; if (this.parentEmbeddedMetadata) prefixes.push(this.parentEmbeddedMetadata.buildPrefix(connection)); prefixes.push.apply(prefixes, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(this.buildPartialPrefix()))); return prefixes.join("_"); // todo: use naming strategy instead of "_" !!! }; EmbeddedMetadata.prototype.buildParentPropertyNames = function () { return this.parentEmbeddedMetadata ? this.parentEmbeddedMetadata.buildParentPropertyNames().concat(this.propertyName) : [this.propertyName]; }; EmbeddedMetadata.prototype.buildParentPrefixes = function () { return this.parentEmbeddedMetadata ? this.parentEmbeddedMetadata.buildParentPrefixes().concat(this.buildPartialPrefix()) : this.buildPartialPrefix(); }; EmbeddedMetadata.prototype.buildEmbeddedMetadataTree = function () { return this.parentEmbeddedMetadata ? this.parentEmbeddedMetadata.buildEmbeddedMetadataTree().concat(this) : [this]; }; EmbeddedMetadata.prototype.buildColumnsFromTree = function () { return this.embeddeds.reduce(function (columns, embedded) { return columns.concat(embedded.buildColumnsFromTree()); }, this.columns); }; EmbeddedMetadata.prototype.buildRelationsFromTree = function () { return this.embeddeds.reduce(function (relations, embedded) { return relations.concat(embedded.buildRelationsFromTree()); }, this.relations); }; EmbeddedMetadata.prototype.buildListenersFromTree = function () { return this.embeddeds.reduce(function (relations, embedded) { return relations.concat(embedded.buildListenersFromTree()); }, this.listeners); }; EmbeddedMetadata.prototype.buildIndicesFromTree = function () { return this.embeddeds.reduce(function (relations, embedded) { return relations.concat(embedded.buildIndicesFromTree()); }, this.indices); }; EmbeddedMetadata.prototype.buildUniquesFromTree = function () { return this.embeddeds.reduce(function (relations, embedded) { return relations.concat(embedded.buildUniquesFromTree()); }, this.uniques); }; EmbeddedMetadata.prototype.buildRelationIdsFromTree = function () { return this.embeddeds.reduce(function (relations, embedded) { return relations.concat(embedded.buildRelationIdsFromTree()); }, this.relationIds); }; EmbeddedMetadata.prototype.buildRelationCountsFromTree = function () { return this.embeddeds.reduce(function (relations, embedded) { return relations.concat(embedded.buildRelationCountsFromTree()); }, this.relationCounts); }; return EmbeddedMetadata; }()); //# sourceMappingURL=EmbeddedMetadata.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/metadata/RelationIdMetadata.js /** * Contains all information about entity's relation count. */ var RelationIdMetadata = /** @class */ (function () { // --------------------------------------------------------------------- // Constructor // --------------------------------------------------------------------- function RelationIdMetadata(options) { this.entityMetadata = options.entityMetadata; this.target = options.args.target; this.propertyName = options.args.propertyName; this.relationNameOrFactory = options.args.relation; this.alias = options.args.alias; this.queryBuilderFactory = options.args.queryBuilderFactory; } // --------------------------------------------------------------------- // Public Methods // --------------------------------------------------------------------- /** * Sets relation id value from the given entity. * * todo: make it to work in embeds as well. */ RelationIdMetadata.prototype.setValue = function (entity) { var _this = this; var inverseEntity = this.relation.getEntityValue(entity); if (Array.isArray(inverseEntity)) { entity[this.propertyName] = inverseEntity.map(function (item) { return _this.relation.inverseEntityMetadata.getEntityIdMixedMap(item); }).filter(function (item) { return item !== null && item !== undefined; }); } else { var value = this.relation.inverseEntityMetadata.getEntityIdMixedMap(inverseEntity); if (value !== undefined) entity[this.propertyName] = value; } }; // --------------------------------------------------------------------- // Public Builder Methods // --------------------------------------------------------------------- /** * Builds some depend relation id properties. * This builder method should be used only after entity metadata, its properties map and all relations are build. */ RelationIdMetadata.prototype.build = function () { var propertyPath = this.relationNameOrFactory instanceof Function ? this.relationNameOrFactory(this.entityMetadata.propertiesMap) : this.relationNameOrFactory; var relation = this.entityMetadata.findRelationWithPropertyPath(propertyPath); if (!relation) throw new Error("Cannot find relation " + propertyPath + ". Wrong relation specified for @RelationId decorator."); this.relation = relation; }; return RelationIdMetadata; }()); //# sourceMappingURL=RelationIdMetadata.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/metadata/RelationCountMetadata.js /** * Contains all information about entity's relation count. */ var RelationCountMetadata = /** @class */ (function () { // --------------------------------------------------------------------- // Constructor // --------------------------------------------------------------------- function RelationCountMetadata(options) { this.entityMetadata = options.entityMetadata; this.target = options.args.target; this.propertyName = options.args.propertyName; this.relationNameOrFactory = options.args.relation; this.alias = options.args.alias; this.queryBuilderFactory = options.args.queryBuilderFactory; } // --------------------------------------------------------------------- // Public Builder Methods // --------------------------------------------------------------------- /** * Builds some depend relation count metadata properties. * This builder method should be used only after entity metadata, its properties map and all relations are build. */ RelationCountMetadata.prototype.build = function () { var propertyPath = this.relationNameOrFactory instanceof Function ? this.relationNameOrFactory(this.entityMetadata.propertiesMap) : this.relationNameOrFactory; var relation = this.entityMetadata.findRelationWithPropertyPath(propertyPath); if (!relation) throw new Error("Cannot find relation " + propertyPath + ". Wrong relation specified for @RelationCount decorator."); this.relation = relation; }; return RelationCountMetadata; }()); //# sourceMappingURL=RelationCountMetadata.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/metadata/types/EventListenerTypes.js /** * Provides a constants for each entity listener type. */ var EventListenerTypes = /** @class */ (function () { function EventListenerTypes() { } EventListenerTypes.AFTER_LOAD = "after-load"; EventListenerTypes.BEFORE_INSERT = "before-insert"; EventListenerTypes.AFTER_INSERT = "after-insert"; EventListenerTypes.BEFORE_UPDATE = "before-update"; EventListenerTypes.AFTER_UPDATE = "after-update"; EventListenerTypes.BEFORE_REMOVE = "before-remove"; EventListenerTypes.AFTER_REMOVE = "after-remove"; return EventListenerTypes; }()); //# sourceMappingURL=EventListenerTypes.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/metadata-builder/MetadataUtils.js /** * Metadata args utility functions. */ var MetadataUtils = /** @class */ (function () { function MetadataUtils() { } /** * Gets given's entity all inherited classes. * Gives in order from parents to children. * For example Post extends ContentModel which extends Unit it will give * [Unit, ContentModel, Post] */ MetadataUtils.getInheritanceTree = function (entity) { var tree = [entity]; var getPrototypeOf = function (object) { var proto = Object.getPrototypeOf(object); if (proto && proto.name) { tree.push(proto); getPrototypeOf(proto); } }; getPrototypeOf(entity); return tree; }; /** * Checks if this table is inherited from another table. */ MetadataUtils.isInherited = function (target1, target2) { return target1.prototype instanceof target2; }; /** * Filters given array of targets by a given classes. * If classes are not given, then it returns array itself. */ MetadataUtils.filterByTarget = function (array, classes) { if (!classes) return array; return array.filter(function (item) { return item.target && classes.indexOf(item.target) !== -1; }); }; return MetadataUtils; }()); //# sourceMappingURL=MetadataUtils.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/metadata/ForeignKeyMetadata.js /** * Contains all information about entity's foreign key. */ var ForeignKeyMetadata = /** @class */ (function () { // --------------------------------------------------------------------- // Constructor // --------------------------------------------------------------------- function ForeignKeyMetadata(options) { /** * Array of columns of this foreign key. */ this.columns = []; /** * Array of referenced columns. */ this.referencedColumns = []; /** * Gets array of column names. */ this.columnNames = []; /** * Gets array of referenced column names. */ this.referencedColumnNames = []; this.entityMetadata = options.entityMetadata; this.referencedEntityMetadata = options.referencedEntityMetadata; this.columns = options.columns; this.referencedColumns = options.referencedColumns; this.onDelete = options.onDelete || "NO ACTION"; this.onUpdate = options.onUpdate || "NO ACTION"; this.deferrable = options.deferrable; if (options.namingStrategy) this.build(options.namingStrategy); } // --------------------------------------------------------------------- // Public Methods // --------------------------------------------------------------------- /** * Builds some depend foreign key properties. * Must be called after all entity metadatas and their columns are built. */ ForeignKeyMetadata.prototype.build = function (namingStrategy) { this.columnNames = this.columns.map(function (column) { return column.databaseName; }); this.referencedColumnNames = this.referencedColumns.map(function (column) { return column.databaseName; }); this.referencedTablePath = this.referencedEntityMetadata.tablePath; this.name = namingStrategy.foreignKeyName(this.entityMetadata.tablePath, this.columnNames, this.referencedTablePath, this.referencedColumnNames); }; return ForeignKeyMetadata; }()); //# sourceMappingURL=ForeignKeyMetadata.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/metadata-builder/JunctionEntityMetadataBuilder.js /** * Creates EntityMetadata for junction tables. * Junction tables are tables generated by many-to-many relations. */ var JunctionEntityMetadataBuilder_JunctionEntityMetadataBuilder = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function JunctionEntityMetadataBuilder(connection) { this.connection = connection; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Builds EntityMetadata for the junction of the given many-to-many relation. */ JunctionEntityMetadataBuilder.prototype.build = function (relation, joinTable) { var _this = this; var referencedColumns = this.collectReferencedColumns(relation, joinTable); var inverseReferencedColumns = this.collectInverseReferencedColumns(relation, joinTable); var joinTableName = joinTable.name || this.connection.namingStrategy.joinTableName(relation.entityMetadata.tableNameWithoutPrefix, relation.inverseEntityMetadata.tableNameWithoutPrefix, relation.propertyPath, relation.inverseRelation ? relation.inverseRelation.propertyName : ""); var entityMetadata = new EntityMetadata["a" /* EntityMetadata */]({ connection: this.connection, args: { target: "", name: joinTableName, type: "junction", database: joinTable.database || relation.entityMetadata.database, schema: joinTable.schema || relation.entityMetadata.schema, } }); entityMetadata.build(); // create original side junction columns var junctionColumns = referencedColumns.map(function (referencedColumn) { var joinColumn = joinTable.joinColumns ? joinTable.joinColumns.find(function (joinColumnArgs) { return (!joinColumnArgs.referencedColumnName || joinColumnArgs.referencedColumnName === referencedColumn.propertyName) && !!joinColumnArgs.name; }) : undefined; var columnName = joinColumn && joinColumn.name ? joinColumn.name : _this.connection.namingStrategy.joinTableColumnName(relation.entityMetadata.tableNameWithoutPrefix, referencedColumn.propertyName, referencedColumn.databaseName); return new ColumnMetadata["a" /* ColumnMetadata */]({ connection: _this.connection, entityMetadata: entityMetadata, referencedColumn: referencedColumn, args: { target: "", mode: "virtual", propertyName: columnName, options: { name: columnName, length: !referencedColumn.length && (_this.connection.driver instanceof BrowserDisabledDriversDummy["i" /* MysqlDriver */] || _this.connection.driver instanceof BrowserDisabledDriversDummy["a" /* AuroraDataApiDriver */]) && (referencedColumn.generationStrategy === "uuid" || referencedColumn.type === "uuid") ? "36" : referencedColumn.length, width: referencedColumn.width, type: referencedColumn.type, precision: referencedColumn.precision, scale: referencedColumn.scale, charset: referencedColumn.charset, collation: referencedColumn.collation, zerofill: referencedColumn.zerofill, unsigned: referencedColumn.zerofill ? true : referencedColumn.unsigned, enum: referencedColumn.enum, enumName: referencedColumn.enumName, nullable: false, primary: true, } } }); }); // create inverse side junction columns var inverseJunctionColumns = inverseReferencedColumns.map(function (inverseReferencedColumn) { var joinColumn = joinTable.inverseJoinColumns ? joinTable.inverseJoinColumns.find(function (joinColumnArgs) { return (!joinColumnArgs.referencedColumnName || joinColumnArgs.referencedColumnName === inverseReferencedColumn.propertyName) && !!joinColumnArgs.name; }) : undefined; var columnName = joinColumn && joinColumn.name ? joinColumn.name : _this.connection.namingStrategy.joinTableInverseColumnName(relation.inverseEntityMetadata.tableNameWithoutPrefix, inverseReferencedColumn.propertyName, inverseReferencedColumn.databaseName); return new ColumnMetadata["a" /* ColumnMetadata */]({ connection: _this.connection, entityMetadata: entityMetadata, referencedColumn: inverseReferencedColumn, args: { target: "", mode: "virtual", propertyName: columnName, options: { length: !inverseReferencedColumn.length && (_this.connection.driver instanceof BrowserDisabledDriversDummy["i" /* MysqlDriver */] || _this.connection.driver instanceof BrowserDisabledDriversDummy["a" /* AuroraDataApiDriver */]) && (inverseReferencedColumn.generationStrategy === "uuid" || inverseReferencedColumn.type === "uuid") ? "36" : inverseReferencedColumn.length, width: inverseReferencedColumn.width, type: inverseReferencedColumn.type, precision: inverseReferencedColumn.precision, scale: inverseReferencedColumn.scale, charset: inverseReferencedColumn.charset, collation: inverseReferencedColumn.collation, zerofill: inverseReferencedColumn.zerofill, unsigned: inverseReferencedColumn.zerofill ? true : inverseReferencedColumn.unsigned, enum: inverseReferencedColumn.enum, enumName: inverseReferencedColumn.enumName, name: columnName, nullable: false, primary: true, } } }); }); this.changeDuplicatedColumnNames(junctionColumns, inverseJunctionColumns); // set junction table columns entityMetadata.ownerColumns = junctionColumns; entityMetadata.inverseColumns = inverseJunctionColumns; entityMetadata.ownColumns = Object(tslib_es6["f" /* __spreadArray */])(Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(junctionColumns)), Object(tslib_es6["e" /* __read */])(inverseJunctionColumns)); entityMetadata.ownColumns.forEach(function (column) { return column.relationMetadata = relation; }); // create junction table foreign keys entityMetadata.foreignKeys = relation.createForeignKeyConstraints ? [ new ForeignKeyMetadata({ entityMetadata: entityMetadata, referencedEntityMetadata: relation.entityMetadata, columns: junctionColumns, referencedColumns: referencedColumns, onDelete: relation.onDelete || "CASCADE" }), new ForeignKeyMetadata({ entityMetadata: entityMetadata, referencedEntityMetadata: relation.inverseEntityMetadata, columns: inverseJunctionColumns, referencedColumns: inverseReferencedColumns, onDelete: relation.onDelete || "CASCADE" }), ] : []; // create junction table indices entityMetadata.ownIndices = [ new IndexMetadata({ entityMetadata: entityMetadata, columns: junctionColumns, args: { target: entityMetadata.target, synchronize: true } }), new IndexMetadata({ entityMetadata: entityMetadata, columns: inverseJunctionColumns, args: { target: entityMetadata.target, synchronize: true } }) ]; // finally return entity metadata return entityMetadata; }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Collects referenced columns from the given join column args. */ JunctionEntityMetadataBuilder.prototype.collectReferencedColumns = function (relation, joinTable) { var hasAnyReferencedColumnName = joinTable.joinColumns ? joinTable.joinColumns.find(function (joinColumn) { return !!joinColumn.referencedColumnName; }) : false; if (!joinTable.joinColumns || (joinTable.joinColumns && !hasAnyReferencedColumnName)) { return relation.entityMetadata.columns.filter(function (column) { return column.isPrimary; }); } else { return joinTable.joinColumns.map(function (joinColumn) { var referencedColumn = relation.entityMetadata.columns.find(function (column) { return column.propertyName === joinColumn.referencedColumnName; }); if (!referencedColumn) throw new Error("Referenced column " + joinColumn.referencedColumnName + " was not found in entity " + relation.entityMetadata.name); return referencedColumn; }); } }; /** * Collects inverse referenced columns from the given join column args. */ JunctionEntityMetadataBuilder.prototype.collectInverseReferencedColumns = function (relation, joinTable) { var hasInverseJoinColumns = !!joinTable.inverseJoinColumns; var hasAnyInverseReferencedColumnName = hasInverseJoinColumns ? joinTable.inverseJoinColumns.find(function (joinColumn) { return !!joinColumn.referencedColumnName; }) : false; if (!hasInverseJoinColumns || (hasInverseJoinColumns && !hasAnyInverseReferencedColumnName)) { return relation.inverseEntityMetadata.primaryColumns; } else { return joinTable.inverseJoinColumns.map(function (joinColumn) { var referencedColumn = relation.inverseEntityMetadata.ownColumns.find(function (column) { return column.propertyName === joinColumn.referencedColumnName; }); if (!referencedColumn) throw new Error("Referenced column " + joinColumn.referencedColumnName + " was not found in entity " + relation.inverseEntityMetadata.name); return referencedColumn; }); } }; JunctionEntityMetadataBuilder.prototype.changeDuplicatedColumnNames = function (junctionColumns, inverseJunctionColumns) { var _this = this; junctionColumns.forEach(function (junctionColumn) { inverseJunctionColumns.forEach(function (inverseJunctionColumn) { if (junctionColumn.givenDatabaseName === inverseJunctionColumn.givenDatabaseName) { var junctionColumnName = _this.connection.namingStrategy.joinTableColumnDuplicationPrefix(junctionColumn.propertyName, 1); junctionColumn.propertyName = junctionColumnName; junctionColumn.givenDatabaseName = junctionColumnName; var inverseJunctionColumnName = _this.connection.namingStrategy.joinTableColumnDuplicationPrefix(inverseJunctionColumn.propertyName, 2); inverseJunctionColumn.propertyName = inverseJunctionColumnName; inverseJunctionColumn.givenDatabaseName = inverseJunctionColumnName; } }); }); }; return JunctionEntityMetadataBuilder; }()); //# sourceMappingURL=JunctionEntityMetadataBuilder.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js /** * Creates EntityMetadata for junction tables of the closure entities. * Closure junction tables are tables generated by closure entities. */ var ClosureJunctionEntityMetadataBuilder_ClosureJunctionEntityMetadataBuilder = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function ClosureJunctionEntityMetadataBuilder(connection) { this.connection = connection; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Builds EntityMetadata for the closure junction of the given closure entity. */ ClosureJunctionEntityMetadataBuilder.prototype.build = function (parentClosureEntityMetadata) { var _this = this; // create entity metadata itself var entityMetadata = new EntityMetadata["a" /* EntityMetadata */]({ parentClosureEntityMetadata: parentClosureEntityMetadata, connection: this.connection, args: { target: "", name: parentClosureEntityMetadata.treeOptions && parentClosureEntityMetadata.treeOptions.closureTableName ? parentClosureEntityMetadata.treeOptions.closureTableName : parentClosureEntityMetadata.tableNameWithoutPrefix, type: "closure-junction" } }); entityMetadata.build(); // create ancestor and descendant columns for new closure junction table parentClosureEntityMetadata.primaryColumns.forEach(function (primaryColumn) { entityMetadata.ownColumns.push(new ColumnMetadata["a" /* ColumnMetadata */]({ connection: _this.connection, entityMetadata: entityMetadata, closureType: "ancestor", referencedColumn: primaryColumn, args: { target: "", mode: "virtual", propertyName: parentClosureEntityMetadata.treeOptions && parentClosureEntityMetadata.treeOptions.ancestorColumnName ? parentClosureEntityMetadata.treeOptions.ancestorColumnName(primaryColumn) : primaryColumn.propertyName + "_ancestor", options: { primary: true, length: primaryColumn.length, type: primaryColumn.type } } })); entityMetadata.ownColumns.push(new ColumnMetadata["a" /* ColumnMetadata */]({ connection: _this.connection, entityMetadata: entityMetadata, closureType: "descendant", referencedColumn: primaryColumn, args: { target: "", mode: "virtual", propertyName: parentClosureEntityMetadata.treeOptions && parentClosureEntityMetadata.treeOptions.descendantColumnName ? parentClosureEntityMetadata.treeOptions.descendantColumnName(primaryColumn) : primaryColumn.propertyName + "_descendant", options: { primary: true, length: primaryColumn.length, type: primaryColumn.type, } } })); }); entityMetadata.ownIndices = [ new IndexMetadata({ entityMetadata: entityMetadata, columns: [entityMetadata.ownColumns[0]], args: { target: entityMetadata.target, synchronize: true } }), new IndexMetadata({ entityMetadata: entityMetadata, columns: [entityMetadata.ownColumns[1]], args: { target: entityMetadata.target, synchronize: true } }) ]; // if tree level column was defined by a closure entity then add it to the junction columns as well if (parentClosureEntityMetadata.treeLevelColumn) { entityMetadata.ownColumns.push(new ColumnMetadata["a" /* ColumnMetadata */]({ connection: this.connection, entityMetadata: entityMetadata, args: { target: "", mode: "virtual", propertyName: "level", options: { type: this.connection.driver.mappedDataTypes.treeLevel, } } })); } // create junction table foreign keys entityMetadata.foreignKeys = [ new ForeignKeyMetadata({ entityMetadata: entityMetadata, referencedEntityMetadata: parentClosureEntityMetadata, columns: [entityMetadata.ownColumns[0]], referencedColumns: parentClosureEntityMetadata.primaryColumns, // onDelete: "CASCADE" // todo: does not work in mssql for some reason }), new ForeignKeyMetadata({ entityMetadata: entityMetadata, referencedEntityMetadata: parentClosureEntityMetadata, columns: [entityMetadata.ownColumns[1]], referencedColumns: parentClosureEntityMetadata.primaryColumns, // onDelete: "CASCADE" // todo: does not work in mssql for some reason }), ]; return entityMetadata; }; return ClosureJunctionEntityMetadataBuilder; }()); //# sourceMappingURL=ClosureJunctionEntityMetadataBuilder.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/metadata/UniqueMetadata.js /** * Unique metadata contains all information about table's unique constraints. */ var UniqueMetadata = /** @class */ (function () { // --------------------------------------------------------------------- // Constructor // --------------------------------------------------------------------- function UniqueMetadata(options) { /** * Unique columns. */ this.columns = []; /** * Map of column names with order set. * Used only by MongoDB driver. */ this.columnNamesWithOrderingMap = {}; this.entityMetadata = options.entityMetadata; this.embeddedMetadata = options.embeddedMetadata; if (options.columns) this.columns = options.columns; if (options.args) { this.target = options.args.target; this.givenName = options.args.name; this.givenColumnNames = options.args.columns; } } // --------------------------------------------------------------------- // Public Build Methods // --------------------------------------------------------------------- /** * Builds some depend unique constraint properties. * Must be called after all entity metadata's properties map, columns and relations are built. */ UniqueMetadata.prototype.build = function (namingStrategy) { var _this = this; var map = {}; // if columns already an array of string then simply return it if (this.givenColumnNames) { var columnPropertyPaths = []; if (Array.isArray(this.givenColumnNames)) { columnPropertyPaths = this.givenColumnNames.map(function (columnName) { if (_this.embeddedMetadata) return _this.embeddedMetadata.propertyPath + "." + columnName; return columnName; }); columnPropertyPaths.forEach(function (propertyPath) { return map[propertyPath] = 1; }); } else { // if columns is a function that returns array of field names then execute it and get columns names from it var columnsFnResult_1 = this.givenColumnNames(this.entityMetadata.propertiesMap); if (Array.isArray(columnsFnResult_1)) { columnPropertyPaths = columnsFnResult_1.map(function (i) { return String(i); }); columnPropertyPaths.forEach(function (name) { return map[name] = 1; }); } else { columnPropertyPaths = Object.keys(columnsFnResult_1).map(function (i) { return String(i); }); Object.keys(columnsFnResult_1).forEach(function (columnName) { return map[columnName] = columnsFnResult_1[columnName]; }); } } this.columns = columnPropertyPaths.map(function (propertyName) { var columnWithSameName = _this.entityMetadata.columns.find(function (column) { return column.propertyPath === propertyName; }); if (columnWithSameName) { return [columnWithSameName]; } var relationWithSameName = _this.entityMetadata.relations.find(function (relation) { return relation.isWithJoinColumn && relation.propertyName === propertyName; }); if (relationWithSameName) { return relationWithSameName.joinColumns; } var indexName = _this.givenName ? "\"" + _this.givenName + "\" " : ""; var entityName = _this.entityMetadata.targetName; throw new Error("Unique constraint " + indexName + "contains column that is missing in the entity (" + entityName + "): " + propertyName); }) .reduce(function (a, b) { return a.concat(b); }); } this.columnNamesWithOrderingMap = Object.keys(map).reduce(function (updatedMap, key) { var column = _this.entityMetadata.columns.find(function (column) { return column.propertyPath === key; }); if (column) updatedMap[column.databasePath] = map[key]; return updatedMap; }, {}); this.name = this.givenName ? this.givenName : namingStrategy.uniqueConstraintName(this.entityMetadata.tablePath, this.columns.map(function (column) { return column.databaseName; })); return this; }; return UniqueMetadata; }()); //# sourceMappingURL=UniqueMetadata.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/metadata-builder/RelationJoinColumnBuilder.js /** * Builds join column for the many-to-one and one-to-one owner relations. * * Cases it should cover: * 1. when join column is set with custom name and without referenced column name * we need automatically set referenced column name - primary ids by default * @JoinColumn({ name: "custom_name" }) * * 2. when join column is set with only referenced column name * we need automatically set join column name - relation name + referenced column name * @JoinColumn({ referencedColumnName: "title" }) * * 3. when join column is set without both referenced column name and join column name * we need to automatically set both of them * @JoinColumn() * * 4. when join column is not set at all (as in case of @ManyToOne relation) * we need to create join column for it with proper referenced column name and join column name * * 5. when multiple join columns set none of referencedColumnName and name can be optional * both options are required * @JoinColumn([ * { name: "category_title", referencedColumnName: "type" }, * { name: "category_title", referencedColumnName: "name" }, * ]) * * Since for many-to-one relations having JoinColumn decorator is not required, * we need to go thought each many-to-one relation without join column decorator set * and create join column metadata args for them. */ var RelationJoinColumnBuilder_RelationJoinColumnBuilder = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function RelationJoinColumnBuilder(connection) { this.connection = connection; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Builds a foreign key of the many-to-one or one-to-one owner relations. */ RelationJoinColumnBuilder.prototype.build = function (joinColumns, relation) { var referencedColumns = this.collectReferencedColumns(joinColumns, relation); var columns = this.collectColumns(joinColumns, relation, referencedColumns); if (!referencedColumns.length || !relation.createForeignKeyConstraints) return { foreignKey: undefined, columns: columns, uniqueConstraint: undefined }; // this case is possible for one-to-one non owning side and relations with createForeignKeyConstraints = false var foreignKey = new ForeignKeyMetadata({ entityMetadata: relation.entityMetadata, referencedEntityMetadata: relation.inverseEntityMetadata, namingStrategy: this.connection.namingStrategy, columns: columns, referencedColumns: referencedColumns, onDelete: relation.onDelete, onUpdate: relation.onUpdate, deferrable: relation.deferrable, }); // Oracle does not allow both primary and unique constraints on the same column if (this.connection.driver instanceof BrowserDisabledDriversDummy["j" /* OracleDriver */] && columns.every(function (column) { return column.isPrimary; })) return { foreignKey: foreignKey, columns: columns, uniqueConstraint: undefined }; // CockroachDB requires UNIQUE constraints on referenced columns if (referencedColumns.length > 0 && relation.isOneToOne) { var uniqueConstraint = new UniqueMetadata({ entityMetadata: relation.entityMetadata, columns: foreignKey.columns, args: { name: this.connection.namingStrategy.relationConstraintName(relation.entityMetadata.tablePath, foreignKey.columns.map(function (c) { return c.databaseName; })), target: relation.entityMetadata.target, } }); uniqueConstraint.build(this.connection.namingStrategy); return { foreignKey: foreignKey, columns: columns, uniqueConstraint: uniqueConstraint }; } return { foreignKey: foreignKey, columns: columns, uniqueConstraint: undefined }; }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Collects referenced columns from the given join column args. */ RelationJoinColumnBuilder.prototype.collectReferencedColumns = function (joinColumns, relation) { var hasAnyReferencedColumnName = joinColumns.find(function (joinColumnArgs) { return !!joinColumnArgs.referencedColumnName; }); var manyToOneWithoutJoinColumn = joinColumns.length === 0 && relation.isManyToOne; var hasJoinColumnWithoutAnyReferencedColumnName = joinColumns.length > 0 && !hasAnyReferencedColumnName; if (manyToOneWithoutJoinColumn || hasJoinColumnWithoutAnyReferencedColumnName) { // covers case3 and case1 return relation.inverseEntityMetadata.primaryColumns; } else { // cases with referenced columns defined return joinColumns.map(function (joinColumn) { var referencedColumn = relation.inverseEntityMetadata.ownColumns.find(function (column) { return column.propertyName === joinColumn.referencedColumnName; }); // todo: can we also search in relations? if (!referencedColumn) throw new Error("Referenced column " + joinColumn.referencedColumnName + " was not found in entity " + relation.inverseEntityMetadata.name); return referencedColumn; }); } }; /** * Collects columns from the given join column args. */ RelationJoinColumnBuilder.prototype.collectColumns = function (joinColumns, relation, referencedColumns) { var _this = this; return referencedColumns.map(function (referencedColumn) { // in the case if relation has join column with only name set we need this check var joinColumnMetadataArg = joinColumns.find(function (joinColumn) { return (!joinColumn.referencedColumnName || joinColumn.referencedColumnName === referencedColumn.propertyName) && !!joinColumn.name; }); var joinColumnName = joinColumnMetadataArg ? joinColumnMetadataArg.name : _this.connection.namingStrategy.joinColumnName(relation.propertyName, referencedColumn.propertyName); var relationalColumn = relation.entityMetadata.ownColumns.find(function (column) { return column.databaseName === joinColumnName; }); if (!relationalColumn) { relationalColumn = new ColumnMetadata["a" /* ColumnMetadata */]({ connection: _this.connection, entityMetadata: relation.entityMetadata, args: { target: "", mode: "virtual", propertyName: relation.propertyName, options: { name: joinColumnName, type: referencedColumn.type, length: !referencedColumn.length && (_this.connection.driver instanceof BrowserDisabledDriversDummy["i" /* MysqlDriver */] || _this.connection.driver instanceof BrowserDisabledDriversDummy["a" /* AuroraDataApiDriver */]) && (referencedColumn.generationStrategy === "uuid" || referencedColumn.type === "uuid") ? "36" : referencedColumn.length, width: referencedColumn.width, charset: referencedColumn.charset, collation: referencedColumn.collation, precision: referencedColumn.precision, scale: referencedColumn.scale, zerofill: referencedColumn.zerofill, unsigned: referencedColumn.unsigned, comment: referencedColumn.comment, enum: referencedColumn.enum, enumName: referencedColumn.enumName, primary: relation.isPrimary, nullable: relation.isNullable, } } }); relation.entityMetadata.registerColumn(relationalColumn); } relationalColumn.referencedColumn = referencedColumn; // its important to set it here because we need to set referenced column for user defined join column relationalColumn.type = referencedColumn.type; // also since types of relational column and join column must be equal we override user defined column type relationalColumn.relationMetadata = relation; relationalColumn.build(_this.connection); return relationalColumn; }); }; return RelationJoinColumnBuilder; }()); //# sourceMappingURL=RelationJoinColumnBuilder.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/metadata/EntityListenerMetadata.js /** * This metadata contains all information about entity's listeners. */ var EntityListenerMetadata = /** @class */ (function () { // --------------------------------------------------------------------- // Constructor // --------------------------------------------------------------------- function EntityListenerMetadata(options) { this.entityMetadata = options.entityMetadata; this.embeddedMetadata = options.embeddedMetadata; this.target = options.args.target; this.propertyName = options.args.propertyName; this.type = options.args.type; } // --------------------------------------------------------------------- // Public Methods // --------------------------------------------------------------------- /** * Checks if entity listener is allowed to be executed on the given entity. */ EntityListenerMetadata.prototype.isAllowed = function (entity) { return this.entityMetadata.target === entity.constructor || // todo: .constructor won't work for entity schemas, but there are no entity listeners in schemas since there are no objects, right? (this.entityMetadata.target instanceof Function && entity.constructor.prototype instanceof this.entityMetadata.target); // todo: also need to implement entity schema inheritance }; /** * Executes listener method of the given entity. */ EntityListenerMetadata.prototype.execute = function (entity) { if (!this.embeddedMetadata) return entity[this.propertyName](); this.callEntityEmbeddedMethod(entity, this.embeddedMetadata.propertyPath.split(".")); }; // --------------------------------------------------------------------- // Protected Methods // --------------------------------------------------------------------- /** * Calls embedded entity listener method no matter how nested it is. */ EntityListenerMetadata.prototype.callEntityEmbeddedMethod = function (entity, propertyPaths) { var propertyPath = propertyPaths.shift(); if (!propertyPath || !entity[propertyPath]) return; if (propertyPaths.length === 0) { entity[propertyPath][this.propertyName](); } else { if (entity[propertyPath]) this.callEntityEmbeddedMethod(entity[propertyPath], propertyPaths); } }; return EntityListenerMetadata; }()); //# sourceMappingURL=EntityListenerMetadata.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/metadata/CheckMetadata.js /** * Check metadata contains all information about table's check constraints. */ var CheckMetadata = /** @class */ (function () { // --------------------------------------------------------------------- // Constructor // --------------------------------------------------------------------- function CheckMetadata(options) { this.entityMetadata = options.entityMetadata; if (options.args) { this.target = options.args.target; this.expression = options.args.expression; this.givenName = options.args.name; } } // --------------------------------------------------------------------- // Public Build Methods // --------------------------------------------------------------------- /** * Builds some depend check constraint properties. * Must be called after all entity metadata's properties map, columns and relations are built. */ CheckMetadata.prototype.build = function (namingStrategy) { this.name = this.givenName ? this.givenName : namingStrategy.checkConstraintName(this.entityMetadata.tablePath, this.expression); return this; }; return CheckMetadata; }()); //# sourceMappingURL=CheckMetadata.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/metadata/ExclusionMetadata.js /** * Exclusion metadata contains all information about table's exclusion constraints. */ var ExclusionMetadata = /** @class */ (function () { // --------------------------------------------------------------------- // Constructor // --------------------------------------------------------------------- function ExclusionMetadata(options) { this.entityMetadata = options.entityMetadata; if (options.args) { this.target = options.args.target; this.expression = options.args.expression; this.givenName = options.args.name; } } // --------------------------------------------------------------------- // Public Build Methods // --------------------------------------------------------------------- /** * Builds some depend exclusion constraint properties. * Must be called after all entity metadata's properties map, columns and relations are built. */ ExclusionMetadata.prototype.build = function (namingStrategy) { this.name = this.givenName ? this.givenName : namingStrategy.exclusionConstraintName(this.entityMetadata.tablePath, this.expression); return this; }; return ExclusionMetadata; }()); //# sourceMappingURL=ExclusionMetadata.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/metadata-builder/EntityMetadataBuilder.js /** * Builds EntityMetadata objects and all its sub-metadatas. */ var EntityMetadataBuilder_EntityMetadataBuilder = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function EntityMetadataBuilder(connection, metadataArgsStorage) { this.connection = connection; this.metadataArgsStorage = metadataArgsStorage; this.junctionEntityMetadataBuilder = new JunctionEntityMetadataBuilder_JunctionEntityMetadataBuilder(connection); this.closureJunctionEntityMetadataBuilder = new ClosureJunctionEntityMetadataBuilder_ClosureJunctionEntityMetadataBuilder(connection); this.relationJoinColumnBuilder = new RelationJoinColumnBuilder_RelationJoinColumnBuilder(connection); } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Builds a complete entity metadatas for the given entity classes. */ EntityMetadataBuilder.prototype.build = function (entityClasses) { var _this = this; // if entity classes to filter entities by are given then do filtering, otherwise use all var allTables = entityClasses ? this.metadataArgsStorage.filterTables(entityClasses) : this.metadataArgsStorage.tables; // filter out table metadata args for those we really create entity metadatas and tables in the db var realTables = allTables.filter(function (table) { return table.type === "regular" || table.type === "closure" || table.type === "entity-child" || table.type === "view"; }); // create entity metadatas for a user defined entities (marked with @Entity decorator or loaded from entity schemas) var entityMetadatas = realTables.map(function (tableArgs) { return _this.createEntityMetadata(tableArgs); }); // compute parent entity metadatas for table inheritance entityMetadatas.forEach(function (entityMetadata) { return _this.computeParentEntityMetadata(entityMetadatas, entityMetadata); }); // after all metadatas created we set child entity metadatas for table inheritance entityMetadatas.forEach(function (metadata) { metadata.childEntityMetadatas = entityMetadatas.filter(function (childMetadata) { return metadata.target instanceof Function && childMetadata.target instanceof Function && MetadataUtils.isInherited(childMetadata.target, metadata.target); }); }); // build entity metadata (step0), first for non-single-table-inherited entity metadatas (dependant) entityMetadatas .filter(function (entityMetadata) { return entityMetadata.tableType !== "entity-child"; }) .forEach(function (entityMetadata) { return entityMetadata.build(); }); // build entity metadata (step0), now for single-table-inherited entity metadatas (dependant) entityMetadatas .filter(function (entityMetadata) { return entityMetadata.tableType === "entity-child"; }) .forEach(function (entityMetadata) { return entityMetadata.build(); }); // compute entity metadata columns, relations, etc. first for the regular, non-single-table-inherited entity metadatas entityMetadatas .filter(function (entityMetadata) { return entityMetadata.tableType !== "entity-child"; }) .forEach(function (entityMetadata) { return _this.computeEntityMetadataStep1(entityMetadatas, entityMetadata); }); // then do it for single table inheritance children (since they are depend on their parents to be built) entityMetadatas .filter(function (entityMetadata) { return entityMetadata.tableType === "entity-child"; }) .forEach(function (entityMetadata) { return _this.computeEntityMetadataStep1(entityMetadatas, entityMetadata); }); // calculate entity metadata computed properties and all its sub-metadatas entityMetadatas.forEach(function (entityMetadata) { return _this.computeEntityMetadataStep2(entityMetadata); }); // calculate entity metadata's inverse properties entityMetadatas.forEach(function (entityMetadata) { return _this.computeInverseProperties(entityMetadata, entityMetadatas); }); // go through all entity metadatas and create foreign keys / junction entity metadatas for their relations entityMetadatas .filter(function (entityMetadata) { return entityMetadata.tableType !== "entity-child"; }) .forEach(function (entityMetadata) { // create entity's relations join columns (for many-to-one and one-to-one owner) entityMetadata.relations.filter(function (relation) { return relation.isOneToOne || relation.isManyToOne; }).forEach(function (relation) { var joinColumns = _this.metadataArgsStorage.filterJoinColumns(relation.target, relation.propertyName); var _a = _this.relationJoinColumnBuilder.build(joinColumns, relation), foreignKey = _a.foreignKey, columns = _a.columns, uniqueConstraint = _a.uniqueConstraint; // create a foreign key based on its metadata args if (foreignKey) { relation.registerForeignKeys(foreignKey); // push it to the relation and thus register there a join column entityMetadata.foreignKeys.push(foreignKey); } if (columns) { relation.registerJoinColumns(columns); } if (uniqueConstraint) { if (_this.connection.driver instanceof BrowserDisabledDriversDummy["i" /* MysqlDriver */] || _this.connection.driver instanceof BrowserDisabledDriversDummy["a" /* AuroraDataApiDriver */] || _this.connection.driver instanceof BrowserDisabledDriversDummy["m" /* SqlServerDriver */] || _this.connection.driver instanceof BrowserDisabledDriversDummy["l" /* SapDriver */]) { var index = new IndexMetadata({ entityMetadata: uniqueConstraint.entityMetadata, columns: uniqueConstraint.columns, args: { target: uniqueConstraint.target, name: uniqueConstraint.name, unique: true, synchronize: true } }); if (_this.connection.driver instanceof BrowserDisabledDriversDummy["m" /* SqlServerDriver */]) { index.where = index.columns.map(function (column) { return _this.connection.driver.escape(column.databaseName) + " IS NOT NULL"; }).join(" AND "); } if (relation.embeddedMetadata) { relation.embeddedMetadata.indices.push(index); } else { relation.entityMetadata.ownIndices.push(index); } _this.computeEntityMetadataStep2(entityMetadata); } else { if (relation.embeddedMetadata) { relation.embeddedMetadata.uniques.push(uniqueConstraint); } else { relation.entityMetadata.ownUniques.push(uniqueConstraint); } _this.computeEntityMetadataStep2(entityMetadata); } } if (foreignKey && _this.connection.driver instanceof BrowserDisabledDriversDummy["d" /* CockroachDriver */]) { var index = new IndexMetadata({ entityMetadata: relation.entityMetadata, columns: foreignKey.columns, args: { target: relation.entityMetadata.target, synchronize: true } }); if (relation.embeddedMetadata) { relation.embeddedMetadata.indices.push(index); } else { relation.entityMetadata.ownIndices.push(index); } _this.computeEntityMetadataStep2(entityMetadata); } }); // create junction entity metadatas for entity many-to-many relations entityMetadata.relations.filter(function (relation) { return relation.isManyToMany; }).forEach(function (relation) { var joinTable = _this.metadataArgsStorage.findJoinTable(relation.target, relation.propertyName); if (!joinTable) return; // no join table set - no need to do anything (it means this is many-to-many inverse side) // here we create a junction entity metadata for a new junction table of many-to-many relation var junctionEntityMetadata = _this.junctionEntityMetadataBuilder.build(relation, joinTable); relation.registerForeignKeys.apply(relation, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(junctionEntityMetadata.foreignKeys))); relation.registerJoinColumns(junctionEntityMetadata.ownIndices[0].columns, junctionEntityMetadata.ownIndices[1].columns); relation.registerJunctionEntityMetadata(junctionEntityMetadata); // compute new entity metadata properties and push it to entity metadatas pool _this.computeEntityMetadataStep2(junctionEntityMetadata); _this.computeInverseProperties(junctionEntityMetadata, entityMetadatas); entityMetadatas.push(junctionEntityMetadata); }); }); // update entity metadata depend properties entityMetadatas .forEach(function (entityMetadata) { entityMetadata.relationsWithJoinColumns = entityMetadata.relations.filter(function (relation) { return relation.isWithJoinColumn; }); entityMetadata.hasNonNullableRelations = entityMetadata.relationsWithJoinColumns.some(function (relation) { return !relation.isNullable || relation.isPrimary; }); }); // generate closure junction tables for all closure tables entityMetadatas .filter(function (metadata) { return metadata.treeType === "closure-table"; }) .forEach(function (entityMetadata) { var closureJunctionEntityMetadata = _this.closureJunctionEntityMetadataBuilder.build(entityMetadata); entityMetadata.closureJunctionTable = closureJunctionEntityMetadata; _this.computeEntityMetadataStep2(closureJunctionEntityMetadata); _this.computeInverseProperties(closureJunctionEntityMetadata, entityMetadatas); entityMetadatas.push(closureJunctionEntityMetadata); }); // generate keys for tables with single-table inheritance entityMetadatas .filter(function (metadata) { return metadata.inheritancePattern === "STI" && metadata.discriminatorColumn; }) .forEach(function (entityMetadata) { return _this.createKeysForTableInheritance(entityMetadata); }); // build all indices (need to do it after relations and their join columns are built) entityMetadatas.forEach(function (entityMetadata) { entityMetadata.indices.forEach(function (index) { return index.build(_this.connection.namingStrategy); }); }); // build all unique constraints (need to do it after relations and their join columns are built) entityMetadatas.forEach(function (entityMetadata) { entityMetadata.uniques.forEach(function (unique) { return unique.build(_this.connection.namingStrategy); }); }); // build all check constraints entityMetadatas.forEach(function (entityMetadata) { entityMetadata.checks.forEach(function (check) { return check.build(_this.connection.namingStrategy); }); }); // build all exclusion constraints entityMetadatas.forEach(function (entityMetadata) { entityMetadata.exclusions.forEach(function (exclusion) { return exclusion.build(_this.connection.namingStrategy); }); }); // add lazy initializer for entity relations entityMetadatas .filter(function (metadata) { return metadata.target instanceof Function; }) .forEach(function (entityMetadata) { entityMetadata.relations .filter(function (relation) { return relation.isLazy; }) .forEach(function (relation) { _this.connection.relationLoader.enableLazyLoad(relation, entityMetadata.target.prototype); }); }); entityMetadatas.forEach(function (entityMetadata) { entityMetadata.columns.forEach(function (column) { // const target = column.embeddedMetadata ? column.embeddedMetadata.type : column.target; var generated = _this.metadataArgsStorage.findGenerated(column.target, column.propertyName); if (generated) { column.isGenerated = true; column.generationStrategy = generated.strategy; if (generated.strategy === "uuid") { column.type = "uuid"; } else if (generated.strategy === "rowid") { column.type = "int"; } else { column.type = column.type || Number; } column.build(_this.connection); _this.computeEntityMetadataStep2(entityMetadata); } }); }); return entityMetadatas; }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Creates entity metadata from the given table args. * Creates column, relation, etc. metadatas for everything this entity metadata owns. */ EntityMetadataBuilder.prototype.createEntityMetadata = function (tableArgs) { // we take all "inheritance tree" from a target entity to collect all stored metadata args // (by decorators or inside entity schemas). For example for target Post < ContentModel < Unit // it will be an array of [Post, ContentModel, Unit] and we can then get all metadata args of those classes var inheritanceTree = tableArgs.target instanceof Function ? MetadataUtils.getInheritanceTree(tableArgs.target) : [tableArgs.target]; // todo: implement later here inheritance for string-targets var tableInheritance = this.metadataArgsStorage.findInheritanceType(tableArgs.target); var tableTree = this.metadataArgsStorage.findTree(tableArgs.target); // if single table inheritance used, we need to copy all children columns in to parent table var singleTableChildrenTargets; if ((tableInheritance && tableInheritance.pattern === "STI") || tableArgs.type === "entity-child") { singleTableChildrenTargets = this.metadataArgsStorage .filterSingleTableChildren(tableArgs.target) .map(function (args) { return args.target; }) .filter(function (target) { return target instanceof Function; }); inheritanceTree.push.apply(inheritanceTree, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(singleTableChildrenTargets))); } return new EntityMetadata["a" /* EntityMetadata */]({ connection: this.connection, args: tableArgs, inheritanceTree: inheritanceTree, tableTree: tableTree, inheritancePattern: tableInheritance ? tableInheritance.pattern : undefined }); }; EntityMetadataBuilder.prototype.computeParentEntityMetadata = function (allEntityMetadatas, entityMetadata) { // after all metadatas created we set parent entity metadata for table inheritance if (entityMetadata.tableType === "entity-child") { entityMetadata.parentEntityMetadata = allEntityMetadatas.find(function (allEntityMetadata) { return allEntityMetadata.inheritanceTree.indexOf(entityMetadata.target) !== -1 && allEntityMetadata.inheritancePattern === "STI"; }); } }; EntityMetadataBuilder.prototype.computeEntityMetadataStep1 = function (allEntityMetadatas, entityMetadata) { var _a, _b, _c; var _this = this; var entityInheritance = this.metadataArgsStorage.findInheritanceType(entityMetadata.target); var discriminatorValue = this.metadataArgsStorage.findDiscriminatorValue(entityMetadata.target); if (typeof discriminatorValue !== "undefined") { entityMetadata.discriminatorValue = discriminatorValue.value; } else { entityMetadata.discriminatorValue = entityMetadata.target.name; } // if single table inheritance is used, we need to mark all embedded columns as nullable entityMetadata.embeddeds = this.createEmbeddedsRecursively(entityMetadata, this.metadataArgsStorage.filterEmbeddeds(entityMetadata.inheritanceTree)) .map(function (embedded) { if (entityMetadata.inheritancePattern === "STI") { embedded.columns = embedded.columns.map(function (column) { column.isNullable = true; return column; }); } return embedded; }); entityMetadata.ownColumns = this.metadataArgsStorage .filterColumns(entityMetadata.inheritanceTree) .map(function (args) { // for single table children we reuse columns created for their parents if (entityMetadata.tableType === "entity-child") return entityMetadata.parentEntityMetadata.ownColumns.find(function (column) { return column.propertyName === args.propertyName; }); var column = new ColumnMetadata["a" /* ColumnMetadata */]({ connection: _this.connection, entityMetadata: entityMetadata, args: args }); // if single table inheritance used, we need to mark all inherit table columns as nullable var columnInSingleTableInheritedChild = allEntityMetadatas.find(function (otherEntityMetadata) { return otherEntityMetadata.tableType === "entity-child" && otherEntityMetadata.target === args.target; }); if (columnInSingleTableInheritedChild) column.isNullable = true; return column; }); // for table inheritance we need to add a discriminator column // if (entityInheritance && entityInheritance.column) { var discriminatorColumnName_1 = entityInheritance.column && entityInheritance.column.name ? entityInheritance.column.name : "type"; var discriminatorColumn = entityMetadata.ownColumns.find(function (column) { return column.propertyName === discriminatorColumnName_1; }); if (!discriminatorColumn) { discriminatorColumn = new ColumnMetadata["a" /* ColumnMetadata */]({ connection: this.connection, entityMetadata: entityMetadata, args: { target: entityMetadata.target, mode: "virtual", propertyName: discriminatorColumnName_1, options: entityInheritance.column || { name: discriminatorColumnName_1, type: "varchar", nullable: false } } }); discriminatorColumn.isVirtual = true; discriminatorColumn.isDiscriminator = true; entityMetadata.ownColumns.push(discriminatorColumn); } else { discriminatorColumn.isDiscriminator = true; } } // add discriminator column to the child entity metadatas // discriminator column will not be there automatically since we are creating it in the code above if (entityMetadata.tableType === "entity-child") { var discriminatorColumn_1 = entityMetadata.parentEntityMetadata.ownColumns.find(function (column) { return column.isDiscriminator; }); if (discriminatorColumn_1 && !entityMetadata.ownColumns.find(function (column) { return column === discriminatorColumn_1; })) { entityMetadata.ownColumns.push(discriminatorColumn_1); } } var namingStrategy = this.connection.namingStrategy; // check if tree is used then we need to add extra columns for specific tree types if (entityMetadata.treeType === "materialized-path") { entityMetadata.ownColumns.push(new ColumnMetadata["a" /* ColumnMetadata */]({ connection: this.connection, entityMetadata: entityMetadata, materializedPath: true, args: { target: entityMetadata.target, mode: "virtual", propertyName: "mpath", options: /*tree.column || */ { name: namingStrategy.materializedPathColumnName, type: "varchar", nullable: true, default: "" } } })); } else if (entityMetadata.treeType === "nested-set") { var _d = namingStrategy.nestedSetColumnNames, left = _d.left, right = _d.right; entityMetadata.ownColumns.push(new ColumnMetadata["a" /* ColumnMetadata */]({ connection: this.connection, entityMetadata: entityMetadata, nestedSetLeft: true, args: { target: entityMetadata.target, mode: "virtual", propertyName: left, options: /*tree.column || */ { name: left, type: "integer", nullable: false, default: 1 } } })); entityMetadata.ownColumns.push(new ColumnMetadata["a" /* ColumnMetadata */]({ connection: this.connection, entityMetadata: entityMetadata, nestedSetRight: true, args: { target: entityMetadata.target, mode: "virtual", propertyName: right, options: /*tree.column || */ { name: right, type: "integer", nullable: false, default: 2 } } })); } entityMetadata.ownRelations = this.metadataArgsStorage.filterRelations(entityMetadata.inheritanceTree).map(function (args) { // for single table children we reuse relations created for their parents if (entityMetadata.tableType === "entity-child") return entityMetadata.parentEntityMetadata.ownRelations.find(function (relation) { return relation.propertyName === args.propertyName; }); return new RelationMetadata_RelationMetadata({ entityMetadata: entityMetadata, args: args }); }); entityMetadata.relationIds = this.metadataArgsStorage.filterRelationIds(entityMetadata.inheritanceTree).map(function (args) { // for single table children we reuse relation ids created for their parents if (entityMetadata.tableType === "entity-child") return entityMetadata.parentEntityMetadata.relationIds.find(function (relationId) { return relationId.propertyName === args.propertyName; }); return new RelationIdMetadata({ entityMetadata: entityMetadata, args: args }); }); entityMetadata.relationCounts = this.metadataArgsStorage.filterRelationCounts(entityMetadata.inheritanceTree).map(function (args) { // for single table children we reuse relation counts created for their parents if (entityMetadata.tableType === "entity-child") return entityMetadata.parentEntityMetadata.relationCounts.find(function (relationCount) { return relationCount.propertyName === args.propertyName; }); return new RelationCountMetadata({ entityMetadata: entityMetadata, args: args }); }); entityMetadata.ownListeners = this.metadataArgsStorage.filterListeners(entityMetadata.inheritanceTree).map(function (args) { return new EntityListenerMetadata({ entityMetadata: entityMetadata, args: args }); }); entityMetadata.checks = this.metadataArgsStorage.filterChecks(entityMetadata.inheritanceTree).map(function (args) { return new CheckMetadata({ entityMetadata: entityMetadata, args: args }); }); // Only PostgreSQL supports exclusion constraints. if (this.connection.driver instanceof BrowserDisabledDriversDummy["k" /* PostgresDriver */]) { entityMetadata.exclusions = this.metadataArgsStorage.filterExclusions(entityMetadata.inheritanceTree).map(function (args) { return new ExclusionMetadata({ entityMetadata: entityMetadata, args: args }); }); } if (this.connection.driver instanceof BrowserDisabledDriversDummy["d" /* CockroachDriver */]) { entityMetadata.ownIndices = this.metadataArgsStorage.filterIndices(entityMetadata.inheritanceTree) .filter(function (args) { return !args.unique; }) .map(function (args) { return new IndexMetadata({ entityMetadata: entityMetadata, args: args }); }); var uniques = this.metadataArgsStorage.filterIndices(entityMetadata.inheritanceTree) .filter(function (args) { return args.unique; }) .map(function (args) { return new UniqueMetadata({ entityMetadata: entityMetadata, args: { target: args.target, name: args.name, columns: args.columns, } }); }); (_a = entityMetadata.ownUniques).push.apply(_a, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(uniques))); } else { entityMetadata.ownIndices = this.metadataArgsStorage.filterIndices(entityMetadata.inheritanceTree).map(function (args) { return new IndexMetadata({ entityMetadata: entityMetadata, args: args }); }); } // Mysql and SAP HANA stores unique constraints as unique indices. if (this.connection.driver instanceof BrowserDisabledDriversDummy["i" /* MysqlDriver */] || this.connection.driver instanceof BrowserDisabledDriversDummy["a" /* AuroraDataApiDriver */] || this.connection.driver instanceof BrowserDisabledDriversDummy["l" /* SapDriver */]) { var indices = this.metadataArgsStorage.filterUniques(entityMetadata.inheritanceTree).map(function (args) { return new IndexMetadata({ entityMetadata: entityMetadata, args: { target: args.target, name: args.name, columns: args.columns, unique: true, synchronize: true } }); }); (_b = entityMetadata.ownIndices).push.apply(_b, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(indices))); } else { var uniques = this.metadataArgsStorage.filterUniques(entityMetadata.inheritanceTree).map(function (args) { return new UniqueMetadata({ entityMetadata: entityMetadata, args: args }); }); (_c = entityMetadata.ownUniques).push.apply(_c, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(uniques))); } }; /** * Creates from the given embedded metadata args real embedded metadatas with its columns and relations, * and does the same for all its sub-embeddeds (goes recursively). */ EntityMetadataBuilder.prototype.createEmbeddedsRecursively = function (entityMetadata, embeddedArgs) { var _this = this; return embeddedArgs.map(function (embeddedArgs) { var embeddedMetadata = new EmbeddedMetadata_EmbeddedMetadata({ entityMetadata: entityMetadata, args: embeddedArgs }); var targets = MetadataUtils.getInheritanceTree(embeddedMetadata.type); embeddedMetadata.columns = _this.metadataArgsStorage.filterColumns(targets).map(function (args) { return new ColumnMetadata["a" /* ColumnMetadata */]({ connection: _this.connection, entityMetadata: entityMetadata, embeddedMetadata: embeddedMetadata, args: args }); }); embeddedMetadata.relations = _this.metadataArgsStorage.filterRelations(targets).map(function (args) { return new RelationMetadata_RelationMetadata({ entityMetadata: entityMetadata, embeddedMetadata: embeddedMetadata, args: args }); }); embeddedMetadata.listeners = _this.metadataArgsStorage.filterListeners(targets).map(function (args) { return new EntityListenerMetadata({ entityMetadata: entityMetadata, embeddedMetadata: embeddedMetadata, args: args }); }); embeddedMetadata.indices = _this.metadataArgsStorage.filterIndices(targets).map(function (args) { return new IndexMetadata({ entityMetadata: entityMetadata, embeddedMetadata: embeddedMetadata, args: args }); }); embeddedMetadata.uniques = _this.metadataArgsStorage.filterUniques(targets).map(function (args) { return new UniqueMetadata({ entityMetadata: entityMetadata, embeddedMetadata: embeddedMetadata, args: args }); }); embeddedMetadata.relationIds = _this.metadataArgsStorage.filterRelationIds(targets).map(function (args) { return new RelationIdMetadata({ entityMetadata: entityMetadata, args: args }); }); embeddedMetadata.relationCounts = _this.metadataArgsStorage.filterRelationCounts(targets).map(function (args) { return new RelationCountMetadata({ entityMetadata: entityMetadata, args: args }); }); embeddedMetadata.embeddeds = _this.createEmbeddedsRecursively(entityMetadata, _this.metadataArgsStorage.filterEmbeddeds(targets)); embeddedMetadata.embeddeds.forEach(function (subEmbedded) { return subEmbedded.parentEmbeddedMetadata = embeddedMetadata; }); entityMetadata.allEmbeddeds.push(embeddedMetadata); return embeddedMetadata; }); }; /** * Computes all entity metadata's computed properties, and all its sub-metadatas (relations, columns, embeds, etc). */ EntityMetadataBuilder.prototype.computeEntityMetadataStep2 = function (entityMetadata) { var _this = this; entityMetadata.embeddeds.forEach(function (embedded) { return embedded.build(_this.connection); }); entityMetadata.embeddeds.forEach(function (embedded) { embedded.columnsFromTree.forEach(function (column) { return column.build(_this.connection); }); embedded.relationsFromTree.forEach(function (relation) { return relation.build(); }); }); entityMetadata.ownColumns.forEach(function (column) { return column.build(_this.connection); }); entityMetadata.ownRelations.forEach(function (relation) { return relation.build(); }); entityMetadata.relations = entityMetadata.embeddeds.reduce(function (relations, embedded) { return relations.concat(embedded.relationsFromTree); }, entityMetadata.ownRelations); entityMetadata.eagerRelations = entityMetadata.relations.filter(function (relation) { return relation.isEager; }); entityMetadata.lazyRelations = entityMetadata.relations.filter(function (relation) { return relation.isLazy; }); entityMetadata.oneToOneRelations = entityMetadata.relations.filter(function (relation) { return relation.isOneToOne; }); entityMetadata.oneToManyRelations = entityMetadata.relations.filter(function (relation) { return relation.isOneToMany; }); entityMetadata.manyToOneRelations = entityMetadata.relations.filter(function (relation) { return relation.isManyToOne; }); entityMetadata.manyToManyRelations = entityMetadata.relations.filter(function (relation) { return relation.isManyToMany; }); entityMetadata.ownerOneToOneRelations = entityMetadata.relations.filter(function (relation) { return relation.isOneToOneOwner; }); entityMetadata.ownerManyToManyRelations = entityMetadata.relations.filter(function (relation) { return relation.isManyToManyOwner; }); entityMetadata.treeParentRelation = entityMetadata.relations.find(function (relation) { return relation.isTreeParent; }); entityMetadata.treeChildrenRelation = entityMetadata.relations.find(function (relation) { return relation.isTreeChildren; }); entityMetadata.columns = entityMetadata.embeddeds.reduce(function (columns, embedded) { return columns.concat(embedded.columnsFromTree); }, entityMetadata.ownColumns); entityMetadata.listeners = entityMetadata.embeddeds.reduce(function (columns, embedded) { return columns.concat(embedded.listenersFromTree); }, entityMetadata.ownListeners); entityMetadata.afterLoadListeners = entityMetadata.listeners.filter(function (listener) { return listener.type === EventListenerTypes.AFTER_LOAD; }); entityMetadata.afterInsertListeners = entityMetadata.listeners.filter(function (listener) { return listener.type === EventListenerTypes.AFTER_INSERT; }); entityMetadata.afterUpdateListeners = entityMetadata.listeners.filter(function (listener) { return listener.type === EventListenerTypes.AFTER_UPDATE; }); entityMetadata.afterRemoveListeners = entityMetadata.listeners.filter(function (listener) { return listener.type === EventListenerTypes.AFTER_REMOVE; }); entityMetadata.beforeInsertListeners = entityMetadata.listeners.filter(function (listener) { return listener.type === EventListenerTypes.BEFORE_INSERT; }); entityMetadata.beforeUpdateListeners = entityMetadata.listeners.filter(function (listener) { return listener.type === EventListenerTypes.BEFORE_UPDATE; }); entityMetadata.beforeRemoveListeners = entityMetadata.listeners.filter(function (listener) { return listener.type === EventListenerTypes.BEFORE_REMOVE; }); entityMetadata.indices = entityMetadata.embeddeds.reduce(function (columns, embedded) { return columns.concat(embedded.indicesFromTree); }, entityMetadata.ownIndices); entityMetadata.uniques = entityMetadata.embeddeds.reduce(function (columns, embedded) { return columns.concat(embedded.uniquesFromTree); }, entityMetadata.ownUniques); entityMetadata.primaryColumns = entityMetadata.columns.filter(function (column) { return column.isPrimary; }); entityMetadata.nonVirtualColumns = entityMetadata.columns.filter(function (column) { return !column.isVirtual; }); entityMetadata.ancestorColumns = entityMetadata.columns.filter(function (column) { return column.closureType === "ancestor"; }); entityMetadata.descendantColumns = entityMetadata.columns.filter(function (column) { return column.closureType === "descendant"; }); entityMetadata.hasMultiplePrimaryKeys = entityMetadata.primaryColumns.length > 1; entityMetadata.generatedColumns = entityMetadata.columns.filter(function (column) { return column.isGenerated || column.isObjectId; }); entityMetadata.hasUUIDGeneratedColumns = entityMetadata.columns.filter(function (column) { return column.isGenerated || column.generationStrategy === "uuid"; }).length > 0; entityMetadata.createDateColumn = entityMetadata.columns.find(function (column) { return column.isCreateDate; }); entityMetadata.updateDateColumn = entityMetadata.columns.find(function (column) { return column.isUpdateDate; }); entityMetadata.deleteDateColumn = entityMetadata.columns.find(function (column) { return column.isDeleteDate; }); entityMetadata.versionColumn = entityMetadata.columns.find(function (column) { return column.isVersion; }); entityMetadata.discriminatorColumn = entityMetadata.columns.find(function (column) { return column.isDiscriminator; }); entityMetadata.treeLevelColumn = entityMetadata.columns.find(function (column) { return column.isTreeLevel; }); entityMetadata.nestedSetLeftColumn = entityMetadata.columns.find(function (column) { return column.isNestedSetLeft; }); entityMetadata.nestedSetRightColumn = entityMetadata.columns.find(function (column) { return column.isNestedSetRight; }); entityMetadata.materializedPathColumn = entityMetadata.columns.find(function (column) { return column.isMaterializedPath; }); entityMetadata.objectIdColumn = entityMetadata.columns.find(function (column) { return column.isObjectId; }); entityMetadata.foreignKeys.forEach(function (foreignKey) { return foreignKey.build(_this.connection.namingStrategy); }); entityMetadata.propertiesMap = entityMetadata.createPropertiesMap(); entityMetadata.relationIds.forEach(function (relationId) { return relationId.build(); }); entityMetadata.relationCounts.forEach(function (relationCount) { return relationCount.build(); }); entityMetadata.embeddeds.forEach(function (embedded) { embedded.relationIdsFromTree.forEach(function (relationId) { return relationId.build(); }); embedded.relationCountsFromTree.forEach(function (relationCount) { return relationCount.build(); }); }); }; /** * Computes entity metadata's relations inverse side properties. */ EntityMetadataBuilder.prototype.computeInverseProperties = function (entityMetadata, entityMetadatas) { entityMetadata.relations.forEach(function (relation) { // compute inverse side (related) entity metadatas for all relation metadatas var inverseEntityMetadata = entityMetadatas.find(function (m) { return m.target === relation.type || (typeof relation.type === "string" && (m.targetName === relation.type || m.givenTableName === relation.type)); }); if (!inverseEntityMetadata) throw new Error("Entity metadata for " + entityMetadata.name + "#" + relation.propertyPath + " was not found. Check if you specified a correct entity object and if it's connected in the connection options."); relation.inverseEntityMetadata = inverseEntityMetadata; relation.inverseSidePropertyPath = relation.buildInverseSidePropertyPath(); // and compute inverse relation and mark if it has such relation.inverseRelation = inverseEntityMetadata.relations.find(function (foundRelation) { return foundRelation.propertyPath === relation.inverseSidePropertyPath; }); }); }; /** * Creates indices for the table of single table inheritance. */ EntityMetadataBuilder.prototype.createKeysForTableInheritance = function (entityMetadata) { entityMetadata.indices.push(new IndexMetadata({ entityMetadata: entityMetadata, columns: [entityMetadata.discriminatorColumn], args: { target: entityMetadata.target, unique: false } })); }; return EntityMetadataBuilder; }()); //# sourceMappingURL=EntityMetadataBuilder.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/metadata-args/MetadataArgsStorage.js /** * Storage all metadatas args of all available types: tables, columns, subscribers, relations, etc. * Each metadata args represents some specifications of what it represents. * MetadataArgs used to create a real Metadata objects. */ var MetadataArgsStorage_MetadataArgsStorage = /** @class */ (function () { function MetadataArgsStorage() { // ------------------------------------------------------------------------- // Properties // ------------------------------------------------------------------------- this.tables = []; this.trees = []; this.entityRepositories = []; this.transactionEntityManagers = []; this.transactionRepositories = []; this.namingStrategies = []; this.entitySubscribers = []; this.indices = []; this.uniques = []; this.checks = []; this.exclusions = []; this.columns = []; this.generations = []; this.relations = []; this.joinColumns = []; this.joinTables = []; this.entityListeners = []; this.relationCounts = []; this.relationIds = []; this.embeddeds = []; this.inheritances = []; this.discriminatorValues = []; } MetadataArgsStorage.prototype.filterTables = function (target) { return this.filterByTarget(this.tables, target); }; MetadataArgsStorage.prototype.filterColumns = function (target) { return this.filterByTargetAndWithoutDuplicateProperties(this.columns, target); }; MetadataArgsStorage.prototype.findGenerated = function (target, propertyName) { return this.generations.find(function (generated) { return (Array.isArray(target) ? target.indexOf(generated.target) !== -1 : generated.target === target) && generated.propertyName === propertyName; }); }; MetadataArgsStorage.prototype.findTree = function (target) { return this.trees.find(function (tree) { return (Array.isArray(target) ? target.indexOf(tree.target) !== -1 : tree.target === target); }); }; MetadataArgsStorage.prototype.filterRelations = function (target) { return this.filterByTargetAndWithoutDuplicateProperties(this.relations, target); }; MetadataArgsStorage.prototype.filterRelationIds = function (target) { return this.filterByTargetAndWithoutDuplicateProperties(this.relationIds, target); }; MetadataArgsStorage.prototype.filterRelationCounts = function (target) { return this.filterByTargetAndWithoutDuplicateProperties(this.relationCounts, target); }; MetadataArgsStorage.prototype.filterIndices = function (target) { // todo: implement parent-entity overrides? return this.indices.filter(function (index) { return Array.isArray(target) ? target.indexOf(index.target) !== -1 : index.target === target; }); }; MetadataArgsStorage.prototype.filterUniques = function (target) { return this.uniques.filter(function (unique) { return Array.isArray(target) ? target.indexOf(unique.target) !== -1 : unique.target === target; }); }; MetadataArgsStorage.prototype.filterChecks = function (target) { return this.checks.filter(function (check) { return Array.isArray(target) ? target.indexOf(check.target) !== -1 : check.target === target; }); }; MetadataArgsStorage.prototype.filterExclusions = function (target) { return this.exclusions.filter(function (exclusion) { return Array.isArray(target) ? target.indexOf(exclusion.target) !== -1 : exclusion.target === target; }); }; MetadataArgsStorage.prototype.filterListeners = function (target) { return this.filterByTarget(this.entityListeners, target); }; MetadataArgsStorage.prototype.filterEmbeddeds = function (target) { return this.filterByTargetAndWithoutDuplicateEmbeddedProperties(this.embeddeds, target); }; MetadataArgsStorage.prototype.findJoinTable = function (target, propertyName) { return this.joinTables.find(function (joinTable) { return joinTable.target === target && joinTable.propertyName === propertyName; }); }; MetadataArgsStorage.prototype.filterJoinColumns = function (target, propertyName) { // todo: implement parent-entity overrides? return this.joinColumns.filter(function (joinColumn) { return joinColumn.target === target && joinColumn.propertyName === propertyName; }); }; MetadataArgsStorage.prototype.filterSubscribers = function (target) { return this.filterByTarget(this.entitySubscribers, target); }; MetadataArgsStorage.prototype.filterNamingStrategies = function (target) { return this.filterByTarget(this.namingStrategies, target); }; MetadataArgsStorage.prototype.filterTransactionEntityManagers = function (target, propertyName) { return this.transactionEntityManagers.filter(function (transactionEm) { return (Array.isArray(target) ? target.indexOf(transactionEm.target) !== -1 : transactionEm.target === target) && transactionEm.methodName === propertyName; }); }; MetadataArgsStorage.prototype.filterTransactionRepository = function (target, propertyName) { return this.transactionRepositories.filter(function (transactionEm) { return (Array.isArray(target) ? target.indexOf(transactionEm.target) !== -1 : transactionEm.target === target) && transactionEm.methodName === propertyName; }); }; MetadataArgsStorage.prototype.filterSingleTableChildren = function (target) { return this.tables.filter(function (table) { return table.target instanceof Function && target instanceof Function && MetadataUtils.isInherited(table.target, target) && table.type === "entity-child"; }); }; MetadataArgsStorage.prototype.findInheritanceType = function (target) { return this.inheritances.find(function (inheritance) { return inheritance.target === target; }); }; MetadataArgsStorage.prototype.findDiscriminatorValue = function (target) { return this.discriminatorValues.find(function (discriminatorValue) { return discriminatorValue.target === target; }); }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Filters given array by a given target or targets. */ MetadataArgsStorage.prototype.filterByTarget = function (array, target) { return array.filter(function (table) { return Array.isArray(target) ? target.indexOf(table.target) !== -1 : table.target === target; }); }; /** * Filters given array by a given target or targets and prevents duplicate property names. */ MetadataArgsStorage.prototype.filterByTargetAndWithoutDuplicateProperties = function (array, target) { var newArray = []; array.forEach(function (item) { var sameTarget = Array.isArray(target) ? target.indexOf(item.target) !== -1 : item.target === target; if (sameTarget) { if (!newArray.find(function (newItem) { return newItem.propertyName === item.propertyName; })) newArray.push(item); } }); return newArray; }; /** * Filters given array by a given target or targets and prevents duplicate embedded property names. */ MetadataArgsStorage.prototype.filterByTargetAndWithoutDuplicateEmbeddedProperties = function (array, target) { var newArray = []; array.forEach(function (item) { var sameTarget = Array.isArray(target) ? target.indexOf(item.target) !== -1 : item.target === target; if (sameTarget) { var isDuplicateEmbeddedProperty = newArray.find(function (newItem) { return newItem.prefix === item.prefix && newItem.propertyName === item.propertyName; }); if (!isDuplicateEmbeddedProperty) newArray.push(item); } }); return newArray; }; return MetadataArgsStorage; }()); //# sourceMappingURL=MetadataArgsStorage.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/entity-schema/EntitySchemaTransformer.js /** * Transforms entity schema into metadata args storage. * The result will be just like entities read from decorators. */ var EntitySchemaTransformer_EntitySchemaTransformer = /** @class */ (function () { function EntitySchemaTransformer() { } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Transforms entity schema into new metadata args storage object. */ EntitySchemaTransformer.prototype.transform = function (schemas) { var metadataArgsStorage = new MetadataArgsStorage_MetadataArgsStorage(); schemas.forEach(function (entitySchema) { var options = entitySchema.options; // add table metadata args from the schema var tableMetadata = { target: options.target || options.name, name: options.tableName, database: options.database, schema: options.schema, type: options.type || "regular", orderBy: options.orderBy, synchronize: options.synchronize, expression: options.expression }; metadataArgsStorage.tables.push(tableMetadata); // add columns metadata args from the schema Object.keys(options.columns).forEach(function (columnName) { var column = options.columns[columnName]; var mode = "regular"; if (column.createDate) mode = "createDate"; if (column.updateDate) mode = "updateDate"; if (column.deleteDate) mode = "deleteDate"; if (column.version) mode = "version"; if (column.treeChildrenCount) mode = "treeChildrenCount"; if (column.treeLevel) mode = "treeLevel"; if (column.objectId) mode = "objectId"; var columnAgrs = { target: options.target || options.name, mode: mode, propertyName: columnName, options: { type: column.type, name: column.objectId ? "_id" : column.name, length: column.length, width: column.width, nullable: column.nullable, readonly: column.readonly, update: column.update, select: column.select, insert: column.insert, primary: column.primary, unique: column.unique, comment: column.comment, default: column.default, onUpdate: column.onUpdate, precision: column.precision, scale: column.scale, zerofill: column.zerofill, unsigned: column.unsigned, charset: column.charset, collation: column.collation, enum: column.enum, asExpression: column.asExpression, generatedType: column.generatedType, hstoreType: column.hstoreType, array: column.array, transformer: column.transformer, spatialFeatureType: column.spatialFeatureType, srid: column.srid } }; metadataArgsStorage.columns.push(columnAgrs); if (column.generated) { var generationArgs = { target: options.target || options.name, propertyName: columnName, strategy: typeof column.generated === "string" ? column.generated : "increment" }; metadataArgsStorage.generations.push(generationArgs); } if (column.unique) metadataArgsStorage.uniques.push({ target: options.target || options.name, columns: [columnName] }); }); // add relation metadata args from the schema if (options.relations) { Object.keys(options.relations).forEach(function (relationName) { var e_1, _a; var relationSchema = options.relations[relationName]; var relation = { target: options.target || options.name, propertyName: relationName, relationType: relationSchema.type, isLazy: relationSchema.lazy || false, type: relationSchema.target, inverseSideProperty: relationSchema.inverseSide, isTreeParent: relationSchema.treeParent, isTreeChildren: relationSchema.treeChildren, options: { eager: relationSchema.eager || false, cascade: relationSchema.cascade, nullable: relationSchema.nullable, onDelete: relationSchema.onDelete, onUpdate: relationSchema.onUpdate, deferrable: relationSchema.deferrable, primary: relationSchema.primary, persistence: relationSchema.persistence } }; metadataArgsStorage.relations.push(relation); // add join column if (relationSchema.joinColumn) { if (typeof relationSchema.joinColumn === "boolean") { var joinColumn = { target: options.target || options.name, propertyName: relationName }; metadataArgsStorage.joinColumns.push(joinColumn); } else { var joinColumnsOptions = Array.isArray(relationSchema.joinColumn) ? relationSchema.joinColumn : [relationSchema.joinColumn]; try { for (var joinColumnsOptions_1 = Object(tslib_es6["g" /* __values */])(joinColumnsOptions), joinColumnsOptions_1_1 = joinColumnsOptions_1.next(); !joinColumnsOptions_1_1.done; joinColumnsOptions_1_1 = joinColumnsOptions_1.next()) { var joinColumnOption = joinColumnsOptions_1_1.value; var joinColumn = { target: options.target || options.name, propertyName: relationName, name: joinColumnOption.name, referencedColumnName: joinColumnOption.referencedColumnName }; metadataArgsStorage.joinColumns.push(joinColumn); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (joinColumnsOptions_1_1 && !joinColumnsOptions_1_1.done && (_a = joinColumnsOptions_1.return)) _a.call(joinColumnsOptions_1); } finally { if (e_1) throw e_1.error; } } } } // add join table if (relationSchema.joinTable) { if (typeof relationSchema.joinTable === "boolean") { var joinTable = { target: options.target || options.name, propertyName: relationName }; metadataArgsStorage.joinTables.push(joinTable); } else { var joinTable = { target: options.target || options.name, propertyName: relationName, name: relationSchema.joinTable.name, database: relationSchema.joinTable.database, schema: relationSchema.joinTable.schema, joinColumns: (relationSchema.joinTable.joinColumn ? [relationSchema.joinTable.joinColumn] : relationSchema.joinTable.joinColumns), inverseJoinColumns: (relationSchema.joinTable.inverseJoinColumn ? [relationSchema.joinTable.inverseJoinColumn] : relationSchema.joinTable.inverseJoinColumns), }; metadataArgsStorage.joinTables.push(joinTable); } } }); } // add index metadata args from the schema if (options.indices) { options.indices.forEach(function (index) { var indexAgrs = { target: options.target || options.name, name: index.name, unique: index.unique === true ? true : false, spatial: index.spatial === true ? true : false, fulltext: index.fulltext === true ? true : false, parser: index.parser, synchronize: index.synchronize === false ? false : true, where: index.where, sparse: index.sparse, columns: index.columns }; metadataArgsStorage.indices.push(indexAgrs); }); } // add unique metadata args from the schema if (options.uniques) { options.uniques.forEach(function (unique) { var uniqueAgrs = { target: options.target || options.name, name: unique.name, columns: unique.columns }; metadataArgsStorage.uniques.push(uniqueAgrs); }); } // add check metadata args from the schema if (options.checks) { options.checks.forEach(function (check) { var checkAgrs = { target: options.target || options.name, name: check.name, expression: check.expression }; metadataArgsStorage.checks.push(checkAgrs); }); } // add exclusion metadata args from the schema if (options.exclusions) { options.exclusions.forEach(function (exclusion) { var exclusionArgs = { target: options.target || options.name, name: exclusion.name, expression: exclusion.expression }; metadataArgsStorage.exclusions.push(exclusionArgs); }); } }); return metadataArgsStorage; }; return EntitySchemaTransformer; }()); //# sourceMappingURL=EntitySchemaTransformer.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/entity-schema/EntitySchema.js var EntitySchema = __webpack_require__(74); // CONCATENATED MODULE: ./node_modules/typeorm/browser/connection/ConnectionMetadataBuilder.js /** * Builds migration instances, subscriber instances and entity metadatas for the given classes. */ var ConnectionMetadataBuilder_ConnectionMetadataBuilder = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function ConnectionMetadataBuilder(connection) { this.connection = connection; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Builds migration instances for the given classes or directories. */ ConnectionMetadataBuilder.prototype.buildMigrations = function (migrations) { var _a = Object(tslib_es6["e" /* __read */])(OrmUtils["a" /* OrmUtils */].splitClassesAndStrings(migrations), 2), migrationClasses = _a[0], migrationDirectories = _a[1]; var allMigrationClasses = Object(tslib_es6["f" /* __spreadArray */])(Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(migrationClasses)), Object(tslib_es6["e" /* __read */])(importClassesFromDirectories(this.connection.logger, migrationDirectories))); return allMigrationClasses.map(function (migrationClass) { return getFromContainer(migrationClass); }); }; /** * Builds subscriber instances for the given classes or directories. */ ConnectionMetadataBuilder.prototype.buildSubscribers = function (subscribers) { var _a = Object(tslib_es6["e" /* __read */])(OrmUtils["a" /* OrmUtils */].splitClassesAndStrings(subscribers || []), 2), subscriberClasses = _a[0], subscriberDirectories = _a[1]; var allSubscriberClasses = Object(tslib_es6["f" /* __spreadArray */])(Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(subscriberClasses)), Object(tslib_es6["e" /* __read */])(importClassesFromDirectories(this.connection.logger, subscriberDirectories))); return getMetadataArgsStorage() .filterSubscribers(allSubscriberClasses) .map(function (metadata) { return getFromContainer(metadata.target); }); }; /** * Builds entity metadatas for the given classes or directories. */ ConnectionMetadataBuilder.prototype.buildEntityMetadatas = function (entities) { // todo: instead we need to merge multiple metadata args storages var _a = Object(tslib_es6["e" /* __read */])(OrmUtils["a" /* OrmUtils */].splitClassesAndStrings(entities || []), 2), entityClassesOrSchemas = _a[0], entityDirectories = _a[1]; var entityClasses = entityClassesOrSchemas.filter(function (entityClass) { return (entityClass instanceof EntitySchema["a" /* EntitySchema */]) === false; }); var entitySchemas = entityClassesOrSchemas.filter(function (entityClass) { return entityClass instanceof EntitySchema["a" /* EntitySchema */]; }); var allEntityClasses = Object(tslib_es6["f" /* __spreadArray */])(Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(entityClasses)), Object(tslib_es6["e" /* __read */])(importClassesFromDirectories(this.connection.logger, entityDirectories))); allEntityClasses.forEach(function (entityClass) { if (entityClass instanceof EntitySchema["a" /* EntitySchema */]) { entitySchemas.push(entityClass); allEntityClasses.slice(allEntityClasses.indexOf(entityClass), 1); } }); var decoratorEntityMetadatas = new EntityMetadataBuilder_EntityMetadataBuilder(this.connection, getMetadataArgsStorage()).build(allEntityClasses); var metadataArgsStorageFromSchema = new EntitySchemaTransformer_EntitySchemaTransformer().transform(entitySchemas); var schemaEntityMetadatas = new EntityMetadataBuilder_EntityMetadataBuilder(this.connection, metadataArgsStorageFromSchema).build(); return Object(tslib_es6["f" /* __spreadArray */])(Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(decoratorEntityMetadatas)), Object(tslib_es6["e" /* __read */])(schemaEntityMetadatas)); }; return ConnectionMetadataBuilder; }()); //# sourceMappingURL=ConnectionMetadataBuilder.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/SelectQueryBuilder.js + 4 modules var SelectQueryBuilder = __webpack_require__(117); // CONCATENATED MODULE: ./node_modules/typeorm/browser/logger/SimpleConsoleLogger.js /** * Performs logging of the events in TypeORM. * This version of logger uses console to log events and does not use syntax highlighting. */ var SimpleConsoleLogger = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function SimpleConsoleLogger(options) { this.options = options; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Logs query and parameters used in it. */ SimpleConsoleLogger.prototype.logQuery = function (query, parameters, queryRunner) { if (this.options === "all" || this.options === true || (Array.isArray(this.options) && this.options.indexOf("query") !== -1)) { var sql = query + (parameters && parameters.length ? " -- PARAMETERS: " + this.stringifyParams(parameters) : ""); console.log("query" + ": " + sql); } }; /** * Logs query that is failed. */ SimpleConsoleLogger.prototype.logQueryError = function (error, query, parameters, queryRunner) { if (this.options === "all" || this.options === true || (Array.isArray(this.options) && this.options.indexOf("error") !== -1)) { var sql = query + (parameters && parameters.length ? " -- PARAMETERS: " + this.stringifyParams(parameters) : ""); console.log("query failed: " + sql); console.log("error:", error); } }; /** * Logs query that is slow. */ SimpleConsoleLogger.prototype.logQuerySlow = function (time, query, parameters, queryRunner) { var sql = query + (parameters && parameters.length ? " -- PARAMETERS: " + this.stringifyParams(parameters) : ""); console.log("query is slow: " + sql); console.log("execution time: " + time); }; /** * Logs events from the schema build process. */ SimpleConsoleLogger.prototype.logSchemaBuild = function (message, queryRunner) { if (this.options === "all" || (Array.isArray(this.options) && this.options.indexOf("schema") !== -1)) { console.log(message); } }; /** * Logs events from the migrations run process. */ SimpleConsoleLogger.prototype.logMigration = function (message, queryRunner) { console.log(message); }; /** * Perform logging using given logger, or by default to the console. * Log has its own level and message. */ SimpleConsoleLogger.prototype.log = function (level, message, queryRunner) { switch (level) { case "log": if (this.options === "all" || (Array.isArray(this.options) && this.options.indexOf("log") !== -1)) console.log(message); break; case "info": if (this.options === "all" || (Array.isArray(this.options) && this.options.indexOf("info") !== -1)) console.info(message); break; case "warn": if (this.options === "all" || (Array.isArray(this.options) && this.options.indexOf("warn") !== -1)) console.warn(message); break; } }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Converts parameters to a string. * Sometimes parameters can have circular objects and therefor we are handle this case too. */ SimpleConsoleLogger.prototype.stringifyParams = function (parameters) { try { return JSON.stringify(parameters); } catch (error) { // most probably circular objects in parameters return parameters; } }; return SimpleConsoleLogger; }()); //# sourceMappingURL=SimpleConsoleLogger.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/logger/AdvancedConsoleLogger.js /** * Performs logging of the events in TypeORM. * This version of logger uses console to log events and use syntax highlighting. */ var AdvancedConsoleLogger_AdvancedConsoleLogger = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function AdvancedConsoleLogger(options) { this.options = options; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Logs query and parameters used in it. */ AdvancedConsoleLogger.prototype.logQuery = function (query, parameters, queryRunner) { if (this.options === "all" || this.options === true || (Array.isArray(this.options) && this.options.indexOf("query") !== -1)) { var sql = query + (parameters && parameters.length ? " -- PARAMETERS: " + this.stringifyParams(parameters) : ""); BrowserPlatformTools["a" /* PlatformTools */].logInfo("query:", BrowserPlatformTools["a" /* PlatformTools */].highlightSql(sql)); } }; /** * Logs query that is failed. */ AdvancedConsoleLogger.prototype.logQueryError = function (error, query, parameters, queryRunner) { if (this.options === "all" || this.options === true || (Array.isArray(this.options) && this.options.indexOf("error") !== -1)) { var sql = query + (parameters && parameters.length ? " -- PARAMETERS: " + this.stringifyParams(parameters) : ""); BrowserPlatformTools["a" /* PlatformTools */].logError("query failed:", BrowserPlatformTools["a" /* PlatformTools */].highlightSql(sql)); BrowserPlatformTools["a" /* PlatformTools */].logError("error:", error); } }; /** * Logs query that is slow. */ AdvancedConsoleLogger.prototype.logQuerySlow = function (time, query, parameters, queryRunner) { var sql = query + (parameters && parameters.length ? " -- PARAMETERS: " + this.stringifyParams(parameters) : ""); BrowserPlatformTools["a" /* PlatformTools */].logWarn("query is slow:", BrowserPlatformTools["a" /* PlatformTools */].highlightSql(sql)); BrowserPlatformTools["a" /* PlatformTools */].logWarn("execution time:", time); }; /** * Logs events from the schema build process. */ AdvancedConsoleLogger.prototype.logSchemaBuild = function (message, queryRunner) { if (this.options === "all" || (Array.isArray(this.options) && this.options.indexOf("schema") !== -1)) { BrowserPlatformTools["a" /* PlatformTools */].log(message); } }; /** * Logs events from the migration run process. */ AdvancedConsoleLogger.prototype.logMigration = function (message, queryRunner) { BrowserPlatformTools["a" /* PlatformTools */].log(message); }; /** * Perform logging using given logger, or by default to the console. * Log has its own level and message. */ AdvancedConsoleLogger.prototype.log = function (level, message, queryRunner) { switch (level) { case "log": if (this.options === "all" || (Array.isArray(this.options) && this.options.indexOf("log") !== -1)) BrowserPlatformTools["a" /* PlatformTools */].log(message); break; case "info": if (this.options === "all" || (Array.isArray(this.options) && this.options.indexOf("info") !== -1)) BrowserPlatformTools["a" /* PlatformTools */].logInfo("INFO:", message); break; case "warn": if (this.options === "all" || (Array.isArray(this.options) && this.options.indexOf("warn") !== -1)) console.warn(BrowserPlatformTools["a" /* PlatformTools */].warn(message)); break; } }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Converts parameters to a string. * Sometimes parameters can have circular objects and therefor we are handle this case too. */ AdvancedConsoleLogger.prototype.stringifyParams = function (parameters) { try { return JSON.stringify(parameters); } catch (error) { // most probably circular objects in parameters return parameters; } }; return AdvancedConsoleLogger; }()); //# sourceMappingURL=AdvancedConsoleLogger.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/platform/BrowserFileLoggerDummy.js /** * Performs logging of the events in TypeORM. * This version of logger logs everything into ormlogs.log file. */ var DummyLogger = /** @class */ (function () { function DummyLogger() { } /** * Logs query and parameters used in it. */ DummyLogger.prototype.logQuery = function () { throw new Error('This logger is not applicable in a browser context'); }; /** * Logs query that is failed. */ DummyLogger.prototype.logQueryError = function () { throw new Error('This logger is not applicable in a browser context'); }; /** * Logs query that is slow. */ DummyLogger.prototype.logQuerySlow = function () { throw new Error('This logger is not applicable in a browser context'); }; /** * Logs events from the schema build process. */ DummyLogger.prototype.logSchemaBuild = function () { throw new Error('This logger is not applicable in a browser context'); }; /** * Logs events from the migrations run process. */ DummyLogger.prototype.logMigration = function () { throw new Error('This logger is not applicable in a browser context'); }; /** * Perform logging using given logger, or by default to the console. * Log has its own level and message. */ DummyLogger.prototype.log = function () { throw new Error('This logger is not applicable in a browser context'); }; return DummyLogger; }()); var BrowserFileLoggerDummy_FileLogger = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(FileLogger, _super); function FileLogger() { return _super !== null && _super.apply(this, arguments) || this; } return FileLogger; }(DummyLogger)); //# sourceMappingURL=BrowserFileLoggerDummy.js.map // EXTERNAL MODULE: ./node_modules/typeorm/node_modules/debug/src/browser.js var browser = __webpack_require__(81); var browser_default = /*#__PURE__*/__webpack_require__.n(browser); // CONCATENATED MODULE: ./node_modules/typeorm/browser/logger/DebugLogger.js /** * Performs logging of the events in TypeORM via debug library. */ var DebugLogger_DebugLogger = /** @class */ (function () { function DebugLogger() { this.debugQueryLog = browser_default()("typeorm:query:log"); this.debugQueryError = browser_default()("typeorm:query:error"); this.debugQuerySlow = browser_default()("typeorm:query:slow"); this.debugSchemaBuild = browser_default()("typeorm:schema"); this.debugMigration = browser_default()("typeorm:migration"); this.debugLog = browser_default()("typeorm:log"); this.debugInfo = browser_default()("typeorm:info"); this.debugWarn = browser_default()("typeorm:warn"); } /** * Logs query and parameters used in it. */ DebugLogger.prototype.logQuery = function (query, parameters, queryRunner) { if (this.debugQueryLog.enabled) { this.debugQueryLog(BrowserPlatformTools["a" /* PlatformTools */].highlightSql(query) + ";"); if (parameters && parameters.length) { this.debugQueryLog("parameters:", parameters); } } }; /** * Logs query that failed. */ DebugLogger.prototype.logQueryError = function (error, query, parameters, queryRunner) { if (this.debugQueryError.enabled) { this.debugQueryError(BrowserPlatformTools["a" /* PlatformTools */].highlightSql(query) + ";"); if (parameters && parameters.length) { this.debugQueryError("parameters:", parameters); } this.debugQueryError("error: ", error); } }; /** * Logs query that is slow. */ DebugLogger.prototype.logQuerySlow = function (time, query, parameters, queryRunner) { if (this.debugQuerySlow.enabled) { this.debugQuerySlow(BrowserPlatformTools["a" /* PlatformTools */].highlightSql(query) + ";"); if (parameters && parameters.length) { this.debugQuerySlow("parameters:", parameters); } this.debugQuerySlow("execution time:", time); } }; /** * Logs events from the schema build process. */ DebugLogger.prototype.logSchemaBuild = function (message, queryRunner) { if (this.debugSchemaBuild.enabled) { this.debugSchemaBuild(message); } }; /** * Logs events from the migration run process. */ DebugLogger.prototype.logMigration = function (message, queryRunner) { if (this.debugMigration.enabled) { this.debugMigration(message); } }; /** * Perform logging using given logger. * Log has its own level and message. */ DebugLogger.prototype.log = function (level, message, queryRunner) { switch (level) { case "log": if (this.debugLog.enabled) { this.debugLog(message); } break; case "info": if (this.debugInfo.enabled) { this.debugInfo(message); } break; case "warn": if (this.debugWarn.enabled) { this.debugWarn(message); } break; } }; return DebugLogger; }()); //# sourceMappingURL=DebugLogger.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/logger/LoggerFactory.js /** * Helps to create logger instances. */ var LoggerFactory_LoggerFactory = /** @class */ (function () { function LoggerFactory() { } /** * Creates a new logger depend on a given connection's driver. */ LoggerFactory.prototype.create = function (logger, options) { if (logger instanceof Object) return logger; if (logger) { switch (logger) { case "simple-console": return new SimpleConsoleLogger(options); case "file": return new BrowserFileLoggerDummy_FileLogger(options); case "advanced-console": return new AdvancedConsoleLogger_AdvancedConsoleLogger(options); case "debug": return new DebugLogger_DebugLogger(); } } return new AdvancedConsoleLogger_AdvancedConsoleLogger(options); }; return LoggerFactory; }()); //# sourceMappingURL=LoggerFactory.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/cache/RedisQueryResultCache.js /** * Caches query result into Redis database. */ var RedisQueryResultCache_RedisQueryResultCache = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function RedisQueryResultCache(connection, clientType) { this.connection = connection; this.clientType = clientType; this.redis = this.loadRedis(); } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Creates a connection with given cache provider. */ RedisQueryResultCache.prototype.connect = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var cacheOptions; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { cacheOptions = this.connection.options.cache; if (this.clientType === "redis") { if (cacheOptions && cacheOptions.options) { this.client = this.redis.createClient(cacheOptions.options); } else { this.client = this.redis.createClient(); } } else if (this.clientType === "ioredis") { if (cacheOptions && cacheOptions.options) { this.client = new this.redis(cacheOptions.options); } else { this.client = new this.redis(); } } else if (this.clientType === "ioredis/cluster") { if (cacheOptions && cacheOptions.options && Array.isArray(cacheOptions.options)) { this.client = new this.redis.Cluster(cacheOptions.options); } else if (cacheOptions && cacheOptions.options && cacheOptions.options.startupNodes) { this.client = new this.redis.Cluster(cacheOptions.options.startupNodes, cacheOptions.options.options); } else { throw new Error("options.startupNodes required for " + this.clientType + "."); } } return [2 /*return*/]; }); }); }; /** * Disconnects the connection */ RedisQueryResultCache.prototype.disconnect = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, new Promise(function (ok, fail) { _this.client.quit(function (err, result) { if (err) return fail(err); ok(); _this.client = undefined; }); })]; }); }); }; /** * Creates table for storing cache if it does not exist yet. */ RedisQueryResultCache.prototype.synchronize = function (queryRunner) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/]; }); }); }; /** * Caches given query result. * Returns cache result if found. * Returns undefined if result is not cached. */ RedisQueryResultCache.prototype.getFromCache = function (options, queryRunner) { var _this = this; return new Promise(function (ok, fail) { if (options.identifier) { _this.client.get(options.identifier, function (err, result) { if (err) return fail(err); ok(JSON.parse(result)); }); } else if (options.query) { _this.client.get(options.query, function (err, result) { if (err) return fail(err); ok(JSON.parse(result)); }); } else { ok(undefined); } }); }; /** * Checks if cache is expired or not. */ RedisQueryResultCache.prototype.isExpired = function (savedCache) { return (savedCache.time + savedCache.duration) < new Date().getTime(); }; /** * Stores given query result in the cache. */ RedisQueryResultCache.prototype.storeInCache = function (options, savedCache, queryRunner) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, new Promise(function (ok, fail) { if (options.identifier) { _this.client.set(options.identifier, JSON.stringify(options), "PX", options.duration, function (err, result) { if (err) return fail(err); ok(); }); } else if (options.query) { _this.client.set(options.query, JSON.stringify(options), "PX", options.duration, function (err, result) { if (err) return fail(err); ok(); }); } })]; }); }); }; /** * Clears everything stored in the cache. */ RedisQueryResultCache.prototype.clear = function (queryRunner) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, new Promise(function (ok, fail) { _this.client.flushdb(function (err, result) { if (err) return fail(err); ok(); }); })]; }); }); }; /** * Removes all cached results by given identifiers from cache. */ RedisQueryResultCache.prototype.remove = function (identifiers, queryRunner) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, Promise.all(identifiers.map(function (identifier) { return _this.deleteKey(identifier); }))]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Removes a single key from redis database. */ RedisQueryResultCache.prototype.deleteKey = function (key) { var _this = this; return new Promise(function (ok, fail) { _this.client.del(key, function (err, result) { if (err) return fail(err); ok(); }); }); }; /** * Loads redis dependency. */ RedisQueryResultCache.prototype.loadRedis = function () { try { if (this.clientType === "ioredis/cluster") { return BrowserPlatformTools["a" /* PlatformTools */].load("ioredis"); } else { return BrowserPlatformTools["a" /* PlatformTools */].load(this.clientType); } } catch (e) { throw new Error("Cannot use cache because " + this.clientType + " is not installed. Please run \"npm i " + this.clientType + " --save\"."); } }; return RedisQueryResultCache; }()); //# sourceMappingURL=RedisQueryResultCache.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/cache/DbQueryResultCache.js /** * Caches query result into current database, into separate table called "query-result-cache". */ var DbQueryResultCache_DbQueryResultCache = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function DbQueryResultCache(connection) { this.connection = connection; var options = this.connection.driver.options; var cacheOptions = typeof this.connection.options.cache === "object" ? this.connection.options.cache : {}; var cacheTableName = cacheOptions.tableName || "query-result-cache"; this.queryResultCacheTable = this.connection.driver.buildTableName(cacheTableName, options.schema, options.database); } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Creates a connection with given cache provider. */ DbQueryResultCache.prototype.connect = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/]; }); }); }; /** * Disconnects with given cache provider. */ DbQueryResultCache.prototype.disconnect = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/]; }); }); }; /** * Creates table for storing cache if it does not exist yet. */ DbQueryResultCache.prototype.synchronize = function (queryRunner) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var driver, tableExist; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: queryRunner = this.getQueryRunner(queryRunner); driver = this.connection.driver; return [4 /*yield*/, queryRunner.hasTable(this.queryResultCacheTable)]; case 1: tableExist = _a.sent(); if (tableExist) return [2 /*return*/]; return [4 /*yield*/, queryRunner.createTable(new Table["a" /* Table */]({ name: this.queryResultCacheTable, columns: [ { name: "id", isPrimary: true, isNullable: false, type: driver.normalizeType({ type: driver.mappedDataTypes.cacheId }), generationStrategy: "increment", isGenerated: true }, { name: "identifier", type: driver.normalizeType({ type: driver.mappedDataTypes.cacheIdentifier }), isNullable: true }, { name: "time", type: driver.normalizeType({ type: driver.mappedDataTypes.cacheTime }), isPrimary: false, isNullable: false }, { name: "duration", type: driver.normalizeType({ type: driver.mappedDataTypes.cacheDuration }), isPrimary: false, isNullable: false }, { name: "query", type: driver.normalizeType({ type: driver.mappedDataTypes.cacheQuery }), isPrimary: false, isNullable: false }, { name: "result", type: driver.normalizeType({ type: driver.mappedDataTypes.cacheResult }), isNullable: false }, ] }))]; case 2: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Caches given query result. * Returns cache result if found. * Returns undefined if result is not cached. */ DbQueryResultCache.prototype.getFromCache = function (options, queryRunner) { queryRunner = this.getQueryRunner(queryRunner); var qb = this.connection .createQueryBuilder(queryRunner) .select() .from(this.queryResultCacheTable, "cache"); if (options.identifier) { return qb .where(qb.escape("cache") + "." + qb.escape("identifier") + " = :identifier") .setParameters({ identifier: this.connection.driver instanceof BrowserDisabledDriversDummy["m" /* SqlServerDriver */] ? new MssqlParameter(options.identifier, "nvarchar") : options.identifier }) .getRawOne(); } else if (options.query) { if (this.connection.driver instanceof BrowserDisabledDriversDummy["j" /* OracleDriver */]) { return qb .where("dbms_lob.compare(" + qb.escape("cache") + "." + qb.escape("query") + ", :query) = 0", { query: options.query }) .getRawOne(); } return qb .where(qb.escape("cache") + "." + qb.escape("query") + " = :query") .setParameters({ query: this.connection.driver instanceof BrowserDisabledDriversDummy["m" /* SqlServerDriver */] ? new MssqlParameter(options.query, "nvarchar") : options.query }) .getRawOne(); } return Promise.resolve(undefined); }; /** * Checks if cache is expired or not. */ DbQueryResultCache.prototype.isExpired = function (savedCache) { var duration = typeof savedCache.duration === "string" ? parseInt(savedCache.duration) : savedCache.duration; return ((typeof savedCache.time === "string" ? parseInt(savedCache.time) : savedCache.time) + duration) < new Date().getTime(); }; /** * Stores given query result in the cache. */ DbQueryResultCache.prototype.storeInCache = function (options, savedCache, queryRunner) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var insertedValues, qb, qb; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: queryRunner = this.getQueryRunner(queryRunner); insertedValues = options; if (this.connection.driver instanceof BrowserDisabledDriversDummy["m" /* SqlServerDriver */]) { // todo: bad abstraction, re-implement this part, probably better if we create an entity metadata for cache table insertedValues = { identifier: new MssqlParameter(options.identifier, "nvarchar"), time: new MssqlParameter(options.time, "bigint"), duration: new MssqlParameter(options.duration, "int"), query: new MssqlParameter(options.query, "nvarchar"), result: new MssqlParameter(options.result, "nvarchar"), }; } if (!(savedCache && savedCache.identifier)) return [3 /*break*/, 2]; qb = queryRunner.manager .createQueryBuilder() .update(this.queryResultCacheTable) .set(insertedValues); qb.where(qb.escape("identifier") + " = :condition", { condition: insertedValues.identifier }); return [4 /*yield*/, qb.execute()]; case 1: _a.sent(); return [3 /*break*/, 6]; case 2: if (!(savedCache && savedCache.query)) return [3 /*break*/, 4]; qb = queryRunner.manager .createQueryBuilder() .update(this.queryResultCacheTable) .set(insertedValues); if (this.connection.driver instanceof BrowserDisabledDriversDummy["j" /* OracleDriver */]) { qb.where("dbms_lob.compare(\"query\", :condition) = 0", { condition: insertedValues.query }); } else { qb.where(qb.escape("query") + " = :condition", { condition: insertedValues.query }); } return [4 /*yield*/, qb.execute()]; case 3: _a.sent(); return [3 /*break*/, 6]; case 4: // otherwise insert return [4 /*yield*/, queryRunner.manager .createQueryBuilder() .insert() .into(this.queryResultCacheTable) .values(insertedValues) .execute()]; case 5: _a.sent(); _a.label = 6; case 6: return [2 /*return*/]; } }); }); }; /** * Clears everything stored in the cache. */ DbQueryResultCache.prototype.clear = function (queryRunner) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, this.getQueryRunner(queryRunner).clearTable(this.queryResultCacheTable)]; }); }); }; /** * Removes all cached results by given identifiers from cache. */ DbQueryResultCache.prototype.remove = function (identifiers, queryRunner) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, Promise.all(identifiers.map(function (identifier) { var qb = _this.getQueryRunner(queryRunner).manager.createQueryBuilder(); return qb.delete() .from(_this.queryResultCacheTable) .where(qb.escape("identifier") + " = :identifier", { identifier: identifier }) .execute(); }))]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Gets a query runner to work with. */ DbQueryResultCache.prototype.getQueryRunner = function (queryRunner) { if (queryRunner) return queryRunner; return this.connection.createQueryRunner(); }; return DbQueryResultCache; }()); //# sourceMappingURL=DbQueryResultCache.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/cache/QueryResultCacheFactory.js /** * Caches query result into Redis database. */ var QueryResultCacheFactory_QueryResultCacheFactory = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function QueryResultCacheFactory(connection) { this.connection = connection; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Creates a new query result cache based on connection options. */ QueryResultCacheFactory.prototype.create = function () { if (!this.connection.options.cache) throw new Error("To use cache you need to enable it in connection options by setting cache: true or providing some caching options. Example: { host: ..., username: ..., cache: true }"); var cache = this.connection.options.cache; if (cache.provider && typeof cache.provider === "function") { return cache.provider(this.connection); } if (cache.type === "redis" || cache.type === "ioredis" || cache.type === "ioredis/cluster") { return new RedisQueryResultCache_RedisQueryResultCache(this.connection, cache.type); } else { return new DbQueryResultCache_DbQueryResultCache(this.connection); } }; return QueryResultCacheFactory; }()); //# sourceMappingURL=QueryResultCacheFactory.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/query-builder/RelationLoader.js /** * Wraps entities and creates getters/setters for their relations * to be able to lazily load relations when accessing these relations. */ var RelationLoader_RelationLoader = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function RelationLoader(connection) { this.connection = connection; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Loads relation data for the given entity and its relation. */ RelationLoader.prototype.load = function (relation, entityOrEntities, queryRunner) { if (queryRunner && queryRunner.isReleased) queryRunner = undefined; // get new one if already closed if (relation.isManyToOne || relation.isOneToOneOwner) { return this.loadManyToOneOrOneToOneOwner(relation, entityOrEntities, queryRunner); } else if (relation.isOneToMany || relation.isOneToOneNotOwner) { return this.loadOneToManyOrOneToOneNotOwner(relation, entityOrEntities, queryRunner); } else if (relation.isManyToManyOwner) { return this.loadManyToManyOwner(relation, entityOrEntities, queryRunner); } else { // many-to-many non owner return this.loadManyToManyNotOwner(relation, entityOrEntities, queryRunner); } }; /** * Loads data for many-to-one and one-to-one owner relations. * * (ow) post.category<=>category.post * loaded: category from post * example: SELECT category.id AS category_id, category.name AS category_name FROM category category * INNER JOIN post Post ON Post.category=category.id WHERE Post.id=1 */ RelationLoader.prototype.loadManyToOneOrOneToOneOwner = function (relation, entityOrEntities, queryRunner) { var entities = Array.isArray(entityOrEntities) ? entityOrEntities : [entityOrEntities]; var columns = relation.entityMetadata.primaryColumns; var joinColumns = relation.isOwning ? relation.joinColumns : relation.inverseRelation.joinColumns; var conditions = joinColumns.map(function (joinColumn) { return relation.entityMetadata.name + "." + joinColumn.propertyName + " = " + relation.propertyName + "." + joinColumn.referencedColumn.propertyName; }).join(" AND "); var joinAliasName = relation.entityMetadata.name; var qb = this.connection .createQueryBuilder(queryRunner) .select(relation.propertyName) // category .from(relation.type, relation.propertyName) // Category, category .innerJoin(relation.entityMetadata.target, joinAliasName, conditions); if (columns.length === 1) { qb.where(joinAliasName + "." + columns[0].propertyPath + " IN (:..." + (joinAliasName + "_" + columns[0].propertyName) + ")"); qb.setParameter(joinAliasName + "_" + columns[0].propertyName, entities.map(function (entity) { return columns[0].getEntityValue(entity); })); } else { var condition = entities.map(function (entity, entityIndex) { return columns.map(function (column, columnIndex) { var paramName = joinAliasName + "_entity_" + entityIndex + "_" + columnIndex; qb.setParameter(paramName, column.getEntityValue(entity)); return joinAliasName + "." + column.propertyPath + " = :" + paramName; }).join(" AND "); }).map(function (condition) { return "(" + condition + ")"; }).join(" OR "); qb.where(condition); } return qb.getMany(); // return qb.getOne(); todo: fix all usages }; /** * Loads data for one-to-many and one-to-one not owner relations. * * SELECT post * FROM post post * WHERE post.[joinColumn.name] = entity[joinColumn.referencedColumn] */ RelationLoader.prototype.loadOneToManyOrOneToOneNotOwner = function (relation, entityOrEntities, queryRunner) { var entities = Array.isArray(entityOrEntities) ? entityOrEntities : [entityOrEntities]; var aliasName = relation.propertyName; var columns = relation.inverseRelation.joinColumns; var qb = this.connection .createQueryBuilder(queryRunner) .select(aliasName) .from(relation.inverseRelation.entityMetadata.target, aliasName); if (columns.length === 1) { qb.where(aliasName + "." + columns[0].propertyPath + " IN (:..." + (aliasName + "_" + columns[0].propertyName) + ")"); qb.setParameter(aliasName + "_" + columns[0].propertyName, entities.map(function (entity) { return columns[0].referencedColumn.getEntityValue(entity); })); } else { var condition = entities.map(function (entity, entityIndex) { return columns.map(function (column, columnIndex) { var paramName = aliasName + "_entity_" + entityIndex + "_" + columnIndex; qb.setParameter(paramName, column.referencedColumn.getEntityValue(entity)); return aliasName + "." + column.propertyPath + " = :" + paramName; }).join(" AND "); }).map(function (condition) { return "(" + condition + ")"; }).join(" OR "); qb.where(condition); } return qb.getMany(); // return relation.isOneToMany ? qb.getMany() : qb.getOne(); todo: fix all usages }; /** * Loads data for many-to-many owner relations. * * SELECT category * FROM category category * INNER JOIN post_categories post_categories * ON post_categories.postId = :postId * AND post_categories.categoryId = category.id */ RelationLoader.prototype.loadManyToManyOwner = function (relation, entityOrEntities, queryRunner) { var entities = Array.isArray(entityOrEntities) ? entityOrEntities : [entityOrEntities]; var mainAlias = relation.propertyName; var joinAlias = relation.junctionEntityMetadata.tableName; var joinColumnConditions = relation.joinColumns.map(function (joinColumn) { return joinAlias + "." + joinColumn.propertyName + " IN (:..." + joinColumn.propertyName + ")"; }); var inverseJoinColumnConditions = relation.inverseJoinColumns.map(function (inverseJoinColumn) { return joinAlias + "." + inverseJoinColumn.propertyName + "=" + mainAlias + "." + inverseJoinColumn.referencedColumn.propertyName; }); var parameters = relation.joinColumns.reduce(function (parameters, joinColumn) { parameters[joinColumn.propertyName] = entities.map(function (entity) { return joinColumn.referencedColumn.getEntityValue(entity); }); return parameters; }, {}); return this.connection .createQueryBuilder(queryRunner) .select(mainAlias) .from(relation.type, mainAlias) .innerJoin(joinAlias, joinAlias, Object(tslib_es6["f" /* __spreadArray */])(Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(joinColumnConditions)), Object(tslib_es6["e" /* __read */])(inverseJoinColumnConditions)).join(" AND ")) .setParameters(parameters) .getMany(); }; /** * Loads data for many-to-many not owner relations. * * SELECT post * FROM post post * INNER JOIN post_categories post_categories * ON post_categories.postId = post.id * AND post_categories.categoryId = post_categories.categoryId */ RelationLoader.prototype.loadManyToManyNotOwner = function (relation, entityOrEntities, queryRunner) { var entities = Array.isArray(entityOrEntities) ? entityOrEntities : [entityOrEntities]; var mainAlias = relation.propertyName; var joinAlias = relation.junctionEntityMetadata.tableName; var joinColumnConditions = relation.inverseRelation.joinColumns.map(function (joinColumn) { return joinAlias + "." + joinColumn.propertyName + " = " + mainAlias + "." + joinColumn.referencedColumn.propertyName; }); var inverseJoinColumnConditions = relation.inverseRelation.inverseJoinColumns.map(function (inverseJoinColumn) { return joinAlias + "." + inverseJoinColumn.propertyName + " IN (:..." + inverseJoinColumn.propertyName + ")"; }); var parameters = relation.inverseRelation.inverseJoinColumns.reduce(function (parameters, joinColumn) { parameters[joinColumn.propertyName] = entities.map(function (entity) { return joinColumn.referencedColumn.getEntityValue(entity); }); return parameters; }, {}); return this.connection .createQueryBuilder(queryRunner) .select(mainAlias) .from(relation.type, mainAlias) .innerJoin(joinAlias, joinAlias, Object(tslib_es6["f" /* __spreadArray */])(Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(joinColumnConditions)), Object(tslib_es6["e" /* __read */])(inverseJoinColumnConditions)).join(" AND ")) .setParameters(parameters) .getMany(); }; /** * Wraps given entity and creates getters/setters for its given relation * to be able to lazily load data when accessing this relation. */ RelationLoader.prototype.enableLazyLoad = function (relation, entity, queryRunner) { var relationLoader = this; var dataIndex = "__" + relation.propertyName + "__"; // in what property of the entity loaded data will be stored var promiseIndex = "__promise_" + relation.propertyName + "__"; // in what property of the entity loading promise will be stored var resolveIndex = "__has_" + relation.propertyName + "__"; // indicates if relation data already was loaded or not, we need this flag if loaded data is empty var setData = function (entity, value) { entity[dataIndex] = value; entity[resolveIndex] = true; delete entity[promiseIndex]; return value; }; var setPromise = function (entity, value) { delete entity[resolveIndex]; delete entity[dataIndex]; entity[promiseIndex] = value; value.then( // ensure different value is not assigned yet function (result) { return entity[promiseIndex] === value ? setData(entity, result) : result; }); return value; }; Object.defineProperty(entity, relation.propertyName, { get: function () { if (this[resolveIndex] === true || this[dataIndex] !== undefined) // if related data already was loaded then simply return it return Promise.resolve(this[dataIndex]); if (this[promiseIndex]) // if related data is loading then return a promise relationLoader loads it return this[promiseIndex]; // nothing is loaded yet, load relation data and save it in the model once they are loaded var loader = relationLoader.load(relation, this, queryRunner).then(function (result) { return relation.isOneToOne || relation.isManyToOne ? (result.length === 0 ? null : result[0]) : result; }); return setPromise(this, loader); }, set: function (value) { if (value instanceof Promise) { // if set data is a promise then wait for its resolve and save in the object setPromise(this, value); } else { // if its direct data set (non promise, probably not safe-typed) setData(this, value); } }, configurable: true }); }; return RelationLoader; }()); //# sourceMappingURL=RelationLoader.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/query-builder/RelationIdLoader.js /** * Loads relation ids for the given entities. */ var RelationIdLoader_RelationIdLoader = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function RelationIdLoader(connection) { this.connection = connection; } /** * Loads relation ids of the given entity or entities. */ RelationIdLoader.prototype.load = function (relationOrTarget, relationNameOrEntities, entitiesOrRelatedEntities, maybeRelatedEntities) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var relation, entities, relatedEntities, entityMetadata; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { if (relationOrTarget instanceof RelationMetadata_RelationMetadata) { relation = relationOrTarget; entities = Array.isArray(relationNameOrEntities) ? relationNameOrEntities : [relationNameOrEntities]; relatedEntities = Array.isArray(entitiesOrRelatedEntities) ? entitiesOrRelatedEntities : (entitiesOrRelatedEntities ? [entitiesOrRelatedEntities] : undefined); } else { entityMetadata = this.connection.getMetadata(relationOrTarget); relation = entityMetadata.findRelationWithPropertyPath(relationNameOrEntities); if (!relation) throw new Error("Relation \"" + relation + "\" was not found in \"" + entityMetadata.name + "\"."); entities = Array.isArray(entitiesOrRelatedEntities) ? entitiesOrRelatedEntities : [entitiesOrRelatedEntities]; relatedEntities = Array.isArray(maybeRelatedEntities) ? maybeRelatedEntities : (maybeRelatedEntities ? [maybeRelatedEntities] : undefined); } // load relation ids depend of relation type if (relation.isManyToMany) { return [2 /*return*/, this.loadForManyToMany(relation, entities, relatedEntities)]; } else if (relation.isManyToOne || relation.isOneToOneOwner) { return [2 /*return*/, this.loadForManyToOneAndOneToOneOwner(relation, entities, relatedEntities)]; } else { // if (relation.isOneToMany || relation.isOneToOneNotOwner) { return [2 /*return*/, this.loadForOneToManyAndOneToOneNotOwner(relation, entities, relatedEntities)]; } return [2 /*return*/]; }); }); }; /** * Loads relation ids of the given entities and groups them into the object with parent and children. * * todo: extract this method? */ RelationIdLoader.prototype.loadManyToManyRelationIdsAndGroup = function (relation, entitiesOrEntities, relatedEntityOrEntities) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var isMany, entities, relationIds, relatedEntities, columns, inverseColumns; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: isMany = relation.isManyToMany || relation.isOneToMany; entities = Array.isArray(entitiesOrEntities) ? entitiesOrEntities : [entitiesOrEntities]; if (!!relatedEntityOrEntities) return [3 /*break*/, 2]; return [4 /*yield*/, this.connection.relationLoader.load(relation, entitiesOrEntities)]; case 1: relatedEntityOrEntities = _a.sent(); if (!relatedEntityOrEntities.length) return [2 /*return*/, entities.map(function (entity) { return ({ entity: entity, related: isMany ? [] : undefined }); })]; _a.label = 2; case 2: return [4 /*yield*/, this.load(relation, entitiesOrEntities, relatedEntityOrEntities)]; case 3: relationIds = _a.sent(); relatedEntities = Array.isArray(relatedEntityOrEntities) ? relatedEntityOrEntities : [relatedEntityOrEntities]; if (relation.isManyToManyOwner) { columns = relation.junctionEntityMetadata.inverseColumns.map(function (column) { return column.referencedColumn; }); inverseColumns = relation.junctionEntityMetadata.ownerColumns.map(function (column) { return column.referencedColumn; }); } else if (relation.isManyToManyNotOwner) { columns = relation.junctionEntityMetadata.ownerColumns.map(function (column) { return column.referencedColumn; }); inverseColumns = relation.junctionEntityMetadata.inverseColumns.map(function (column) { return column.referencedColumn; }); } else if (relation.isManyToOne || relation.isOneToOneOwner) { columns = relation.joinColumns.map(function (column) { return column.referencedColumn; }); inverseColumns = relation.entityMetadata.primaryColumns; } else if (relation.isOneToMany || relation.isOneToOneNotOwner) { columns = relation.inverseRelation.entityMetadata.primaryColumns; inverseColumns = relation.inverseRelation.joinColumns.map(function (column) { return column.referencedColumn; }); } else { } return [2 /*return*/, entities.map(function (entity) { var group = { entity: entity, related: isMany ? [] : undefined }; relationIds.forEach(function (relationId) { var entityMatched = inverseColumns.every(function (column) { return column.getEntityValue(entity) === relationId[column.entityMetadata.name + "_" + column.propertyPath.replace(".", "_")]; }); if (entityMatched) { relatedEntities.forEach(function (relatedEntity) { var relatedEntityMatched = columns.every(function (column) { return column.getEntityValue(relatedEntity) === relationId[column.entityMetadata.name + "_" + relation.propertyPath.replace(".", "_") + "_" + column.propertyPath.replace(".", "_")]; }); if (relatedEntityMatched) { if (isMany) { group.related.push(relatedEntity); } else { group.related = relatedEntity; } } }); } }); return group; })]; } }); }); }; /** * Loads relation ids of the given entities and maps them into the given entity property. async loadManyToManyRelationIdsAndMap( relation: RelationMetadata, entityOrEntities: ObjectLiteral|ObjectLiteral[], mapToEntityOrEntities: ObjectLiteral|ObjectLiteral[], propertyName: string ): Promise { const relationIds = await this.loadManyToManyRelationIds(relation, entityOrEntities, mapToEntityOrEntities); const mapToEntities = mapToEntityOrEntities instanceof Array ? mapToEntityOrEntities : [mapToEntityOrEntities]; const junctionMetadata = relation.junctionEntityMetadata!; const mainAlias = junctionMetadata.name; const columns = relation.isOwning ? junctionMetadata.inverseColumns : junctionMetadata.ownerColumns; const inverseColumns = relation.isOwning ? junctionMetadata.ownerColumns : junctionMetadata.inverseColumns; mapToEntities.forEach(mapToEntity => { mapToEntity[propertyName] = []; relationIds.forEach(relationId => { const match = inverseColumns.every(column => { return column.referencedColumn!.getEntityValue(mapToEntity) === relationId[mainAlias + "_" + column.propertyName]; }); if (match) { if (columns.length === 1) { mapToEntity[propertyName].push(relationId[mainAlias + "_" + columns[0].propertyName]); } else { const value = {}; columns.forEach(column => { column.referencedColumn!.setEntityValue(value, relationId[mainAlias + "_" + column.propertyName]); }); mapToEntity[propertyName].push(value); } } }); }); }*/ // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Loads relation ids for the many-to-many relation. */ RelationIdLoader.prototype.loadForManyToMany = function (relation, entities, relatedEntities) { var junctionMetadata = relation.junctionEntityMetadata; var mainAlias = junctionMetadata.name; var columns = relation.isOwning ? junctionMetadata.ownerColumns : junctionMetadata.inverseColumns; var inverseColumns = relation.isOwning ? junctionMetadata.inverseColumns : junctionMetadata.ownerColumns; var qb = this.connection.createQueryBuilder(); // select all columns from junction table junctionMetadata.ownerColumns.forEach(function (column) { var columnName = column.referencedColumn.entityMetadata.name + "_" + column.referencedColumn.propertyPath.replace(".", "_"); qb.addSelect(mainAlias + "." + column.propertyPath, columnName); }); junctionMetadata.inverseColumns.forEach(function (column) { var columnName = column.referencedColumn.entityMetadata.name + "_" + relation.propertyPath.replace(".", "_") + "_" + column.referencedColumn.propertyPath.replace(".", "_"); qb.addSelect(mainAlias + "." + column.propertyPath, columnName); }); // add conditions for the given entities var condition1 = ""; if (columns.length === 1) { qb.setParameter("values1", entities.map(function (entity) { return columns[0].referencedColumn.getEntityValue(entity); })); condition1 = mainAlias + "." + columns[0].propertyPath + " IN (:...values1)"; // todo: use ANY for postgres } else { condition1 = "(" + entities.map(function (entity, entityIndex) { return columns.map(function (column) { var paramName = "entity1_" + entityIndex + "_" + column.propertyName; qb.setParameter(paramName, column.referencedColumn.getEntityValue(entity)); return mainAlias + "." + column.propertyPath + " = :" + paramName; }).join(" AND "); }).map(function (condition) { return "(" + condition + ")"; }).join(" OR ") + ")"; } // add conditions for the given inverse entities var condition2 = ""; if (relatedEntities) { if (inverseColumns.length === 1) { qb.setParameter("values2", relatedEntities.map(function (entity) { return inverseColumns[0].referencedColumn.getEntityValue(entity); })); condition2 = mainAlias + "." + inverseColumns[0].propertyPath + " IN (:...values2)"; // todo: use ANY for postgres } else { condition2 = "(" + relatedEntities.map(function (entity, entityIndex) { return inverseColumns.map(function (column) { var paramName = "entity2_" + entityIndex + "_" + column.propertyName; qb.setParameter(paramName, column.referencedColumn.getEntityValue(entity)); return mainAlias + "." + column.propertyPath + " = :" + paramName; }).join(" AND "); }).map(function (condition) { return "(" + condition + ")"; }).join(" OR ") + ")"; } } // execute query return qb .from(junctionMetadata.target, mainAlias) .where(condition1 + (condition2 ? " AND " + condition2 : "")) .getRawMany(); }; /** * Loads relation ids for the many-to-one and one-to-one owner relations. */ RelationIdLoader.prototype.loadForManyToOneAndOneToOneOwner = function (relation, entities, relatedEntities) { var mainAlias = relation.entityMetadata.targetName; // select all columns we need var qb = this.connection.createQueryBuilder(); relation.entityMetadata.primaryColumns.forEach(function (primaryColumn) { var columnName = primaryColumn.entityMetadata.name + "_" + primaryColumn.propertyPath.replace(".", "_"); qb.addSelect(mainAlias + "." + primaryColumn.propertyPath, columnName); }); relation.joinColumns.forEach(function (column) { var columnName = column.referencedColumn.entityMetadata.name + "_" + relation.propertyPath.replace(".", "_") + "_" + column.referencedColumn.propertyPath.replace(".", "_"); qb.addSelect(mainAlias + "." + column.propertyPath, columnName); }); // add condition for entities var condition = ""; if (relation.entityMetadata.primaryColumns.length === 1) { qb.setParameter("values", entities.map(function (entity) { return relation.entityMetadata.primaryColumns[0].getEntityValue(entity); })); condition = mainAlias + "." + relation.entityMetadata.primaryColumns[0].propertyPath + " IN (:...values)"; } else { condition = entities.map(function (entity, entityIndex) { return relation.entityMetadata.primaryColumns.map(function (column, columnIndex) { var paramName = "entity" + entityIndex + "_" + columnIndex; qb.setParameter(paramName, column.getEntityValue(entity)); return mainAlias + "." + column.propertyPath + " = :" + paramName; }).join(" AND "); }).map(function (condition) { return "(" + condition + ")"; }).join(" OR "); } // execute query return qb.from(relation.entityMetadata.target, mainAlias) .where(condition) .getRawMany(); }; /** * Loads relation ids for the one-to-many and one-to-one not owner relations. */ RelationIdLoader.prototype.loadForOneToManyAndOneToOneNotOwner = function (relation, entities, relatedEntities) { relation = relation.inverseRelation; var mainAlias = relation.entityMetadata.targetName; // select all columns we need var qb = this.connection.createQueryBuilder(); relation.entityMetadata.primaryColumns.forEach(function (primaryColumn) { var columnName = primaryColumn.entityMetadata.name + "_" + relation.inverseRelation.propertyPath.replace(".", "_") + "_" + primaryColumn.propertyPath.replace(".", "_"); qb.addSelect(mainAlias + "." + primaryColumn.propertyPath, columnName); }); relation.joinColumns.forEach(function (column) { var columnName = column.referencedColumn.entityMetadata.name + "_" + column.referencedColumn.propertyPath.replace(".", "_"); qb.addSelect(mainAlias + "." + column.propertyPath, columnName); }); // add condition for entities var condition = ""; if (relation.joinColumns.length === 1) { qb.setParameter("values", entities.map(function (entity) { return relation.joinColumns[0].referencedColumn.getEntityValue(entity); })); condition = mainAlias + "." + relation.joinColumns[0].propertyPath + " IN (:...values)"; } else { condition = entities.map(function (entity, entityIndex) { return relation.joinColumns.map(function (joinColumn, joinColumnIndex) { var paramName = "entity" + entityIndex + "_" + joinColumnIndex; qb.setParameter(paramName, joinColumn.referencedColumn.getEntityValue(entity)); return mainAlias + "." + joinColumn.propertyPath + " = :" + paramName; }).join(" AND "); }).map(function (condition) { return "(" + condition + ")"; }).join(" OR "); } // execute query return qb.from(relation.entityMetadata.target, mainAlias) .where(condition) .getRawMany(); }; return RelationIdLoader; }()); //# sourceMappingURL=RelationIdLoader.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/driver/DriverUtils.js var DriverUtils = __webpack_require__(21); // CONCATENATED MODULE: ./node_modules/typeorm/browser/connection/Connection.js /** * Connection is a single database ORM connection to a specific database. * Its not required to be a database connection, depend on database type it can create connection pool. * You can have multiple connections to multiple databases in your application. */ var Connection_Connection = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function Connection(options) { /** * Migration instances that are registered for this connection. */ this.migrations = []; /** * Entity subscriber instances that are registered for this connection. */ this.subscribers = []; /** * All entity metadatas that are registered for this connection. */ this.entityMetadatas = []; this.name = options.name || "default"; this.options = options; this.logger = new LoggerFactory_LoggerFactory().create(this.options.logger, this.options.logging); this.driver = new DriverFactory_DriverFactory().create(this); this.manager = this.createEntityManager(); this.namingStrategy = options.namingStrategy || new DefaultNamingStrategy_DefaultNamingStrategy(); this.queryResultCache = options.cache ? new QueryResultCacheFactory_QueryResultCacheFactory(this).create() : undefined; this.relationLoader = new RelationLoader_RelationLoader(this); this.relationIdLoader = new RelationIdLoader_RelationIdLoader(this); this.isConnected = false; } Object.defineProperty(Connection.prototype, "mongoManager", { // ------------------------------------------------------------------------- // Public Accessors // ------------------------------------------------------------------------- /** * Gets the mongodb entity manager that allows to perform mongodb-specific repository operations * with any entity in this connection. * * Available only in mongodb connections. */ get: function () { if (!(this.manager instanceof BrowserDisabledDriversDummy["f" /* MongoEntityManager */])) throw new Error("MongoEntityManager is only available for MongoDB databases."); return this.manager; }, enumerable: false, configurable: true }); Object.defineProperty(Connection.prototype, "sqljsManager", { /** * Gets a sql.js specific Entity Manager that allows to perform special load and save operations * * Available only in connection with the sqljs driver. */ get: function () { if (!(this.manager instanceof SqljsEntityManager_SqljsEntityManager)) throw new Error("SqljsEntityManager is only available for Sqljs databases."); return this.manager; }, enumerable: false, configurable: true }); // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Performs connection to the database. * This method should be called once on application bootstrap. * This method not necessarily creates database connection (depend on database type), * but it also can setup a connection pool with database to use. */ Connection.prototype.connect = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var error_1; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (this.isConnected) throw new CannotConnectAlreadyConnectedError_CannotConnectAlreadyConnectedError(this.name); // connect to the database via its driver return [4 /*yield*/, this.driver.connect()]; case 1: // connect to the database via its driver _a.sent(); if (!this.queryResultCache) return [3 /*break*/, 3]; return [4 /*yield*/, this.queryResultCache.connect()]; case 2: _a.sent(); _a.label = 3; case 3: // set connected status for the current connection ObjectUtils["a" /* ObjectUtils */].assign(this, { isConnected: true }); _a.label = 4; case 4: _a.trys.push([4, 12, , 14]); // build all metadatas registered in the current connection this.buildMetadatas(); return [4 /*yield*/, this.driver.afterConnect()]; case 5: _a.sent(); if (!this.options.dropSchema) return [3 /*break*/, 7]; return [4 /*yield*/, this.dropDatabase()]; case 6: _a.sent(); _a.label = 7; case 7: if (!this.options.synchronize) return [3 /*break*/, 9]; return [4 /*yield*/, this.synchronize()]; case 8: _a.sent(); _a.label = 9; case 9: if (!this.options.migrationsRun) return [3 /*break*/, 11]; return [4 /*yield*/, this.runMigrations({ transaction: this.options.migrationsTransactionMode })]; case 10: _a.sent(); _a.label = 11; case 11: return [3 /*break*/, 14]; case 12: error_1 = _a.sent(); // if for some reason build metadata fail (for example validation error during entity metadata check) // connection needs to be closed return [4 /*yield*/, this.close()]; case 13: // if for some reason build metadata fail (for example validation error during entity metadata check) // connection needs to be closed _a.sent(); throw error_1; case 14: return [2 /*return*/, this]; } }); }); }; /** * Closes connection with the database. * Once connection is closed, you cannot use repositories or perform any operations except opening connection again. */ Connection.prototype.close = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (!this.isConnected) throw new CannotExecuteNotConnectedError_CannotExecuteNotConnectedError(this.name); return [4 /*yield*/, this.driver.disconnect()]; case 1: _a.sent(); if (!this.queryResultCache) return [3 /*break*/, 3]; return [4 /*yield*/, this.queryResultCache.disconnect()]; case 2: _a.sent(); _a.label = 3; case 3: ObjectUtils["a" /* ObjectUtils */].assign(this, { isConnected: false }); return [2 /*return*/]; } }); }); }; /** * Creates database schema for all entities registered in this connection. * Can be used only after connection to the database is established. * * @param dropBeforeSync If set to true then it drops the database with all its tables and data */ Connection.prototype.synchronize = function (dropBeforeSync) { if (dropBeforeSync === void 0) { dropBeforeSync = false; } return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var schemaBuilder; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (!this.isConnected) throw new CannotExecuteNotConnectedError_CannotExecuteNotConnectedError(this.name); if (!dropBeforeSync) return [3 /*break*/, 2]; return [4 /*yield*/, this.dropDatabase()]; case 1: _a.sent(); _a.label = 2; case 2: schemaBuilder = this.driver.createSchemaBuilder(); return [4 /*yield*/, schemaBuilder.build()]; case 3: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Drops the database and all its data. * Be careful with this method on production since this method will erase all your database tables and their data. * Can be used only after connection to the database is established. */ // TODO rename Connection.prototype.dropDatabase = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var queryRunner, databases_2, databases_1, databases_1_1, database, e_1_1; var e_1, _a; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: queryRunner = this.createQueryRunner(); _b.label = 1; case 1: _b.trys.push([1, , 13, 15]); if (!(this.driver instanceof BrowserDisabledDriversDummy["m" /* SqlServerDriver */] || this.driver instanceof BrowserDisabledDriversDummy["i" /* MysqlDriver */] || this.driver instanceof BrowserDisabledDriversDummy["a" /* AuroraDataApiDriver */])) return [3 /*break*/, 10]; databases_2 = this.driver.database ? [this.driver.database] : []; this.entityMetadatas.forEach(function (metadata) { if (metadata.database && databases_2.indexOf(metadata.database) === -1) databases_2.push(metadata.database); }); _b.label = 2; case 2: _b.trys.push([2, 7, 8, 9]); databases_1 = Object(tslib_es6["g" /* __values */])(databases_2), databases_1_1 = databases_1.next(); _b.label = 3; case 3: if (!!databases_1_1.done) return [3 /*break*/, 6]; database = databases_1_1.value; return [4 /*yield*/, queryRunner.clearDatabase(database)]; case 4: _b.sent(); _b.label = 5; case 5: databases_1_1 = databases_1.next(); return [3 /*break*/, 3]; case 6: return [3 /*break*/, 9]; case 7: e_1_1 = _b.sent(); e_1 = { error: e_1_1 }; return [3 /*break*/, 9]; case 8: try { if (databases_1_1 && !databases_1_1.done && (_a = databases_1.return)) _a.call(databases_1); } finally { if (e_1) throw e_1.error; } return [7 /*endfinally*/]; case 9: return [3 /*break*/, 12]; case 10: return [4 /*yield*/, queryRunner.clearDatabase()]; case 11: _b.sent(); _b.label = 12; case 12: return [3 /*break*/, 15]; case 13: return [4 /*yield*/, queryRunner.release()]; case 14: _b.sent(); return [7 /*endfinally*/]; case 15: return [2 /*return*/]; } }); }); }; /** * Runs all pending migrations. * Can be used only after connection to the database is established. */ Connection.prototype.runMigrations = function (options) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var migrationExecutor, successMigrations; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (!this.isConnected) throw new CannotExecuteNotConnectedError_CannotExecuteNotConnectedError(this.name); migrationExecutor = new MigrationExecutor_MigrationExecutor(this); migrationExecutor.transaction = (options && options.transaction) || "all"; return [4 /*yield*/, migrationExecutor.executePendingMigrations()]; case 1: successMigrations = _a.sent(); return [2 /*return*/, successMigrations]; } }); }); }; /** * Reverts last executed migration. * Can be used only after connection to the database is established. */ Connection.prototype.undoLastMigration = function (options) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var migrationExecutor; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (!this.isConnected) throw new CannotExecuteNotConnectedError_CannotExecuteNotConnectedError(this.name); migrationExecutor = new MigrationExecutor_MigrationExecutor(this); migrationExecutor.transaction = (options && options.transaction) || "all"; return [4 /*yield*/, migrationExecutor.undoLastMigration()]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Lists all migrations and whether they have been run. * Returns true if there are pending migrations */ Connection.prototype.showMigrations = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var migrationExecutor; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (!this.isConnected) { throw new CannotExecuteNotConnectedError_CannotExecuteNotConnectedError(this.name); } migrationExecutor = new MigrationExecutor_MigrationExecutor(this); return [4 /*yield*/, migrationExecutor.showMigrations()]; case 1: return [2 /*return*/, _a.sent()]; } }); }); }; /** * Checks if entity metadata exist for the given entity class, target name or table name. */ Connection.prototype.hasMetadata = function (target) { return !!this.findMetadata(target); }; /** * Gets entity metadata for the given entity class or schema name. */ Connection.prototype.getMetadata = function (target) { var metadata = this.findMetadata(target); if (!metadata) throw new EntityMetadataNotFoundError_EntityMetadataNotFoundError(target); return metadata; }; /** * Gets repository for the given entity. */ Connection.prototype.getRepository = function (target) { return this.manager.getRepository(target); }; /** * Gets tree repository for the given entity class or name. * Only tree-type entities can have a TreeRepository, like ones decorated with @Tree decorator. */ Connection.prototype.getTreeRepository = function (target) { return this.manager.getTreeRepository(target); }; /** * Gets mongodb-specific repository for the given entity class or name. * Works only if connection is mongodb-specific. */ Connection.prototype.getMongoRepository = function (target) { if (!(this.driver instanceof BrowserDisabledDriversDummy["e" /* MongoDriver */])) throw new Error("You can use getMongoRepository only for MongoDB connections."); return this.manager.getRepository(target); }; /** * Gets custom entity repository marked with @EntityRepository decorator. */ Connection.prototype.getCustomRepository = function (customRepository) { return this.manager.getCustomRepository(customRepository); }; Connection.prototype.transaction = function (isolationOrRunInTransaction, runInTransactionParam) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, this.manager.transaction(isolationOrRunInTransaction, runInTransactionParam)]; }); }); }; /** * Executes raw SQL query and returns raw database results. */ Connection.prototype.query = function (query, parameters, queryRunner) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var usedQueryRunner; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (this instanceof BrowserDisabledDriversDummy["f" /* MongoEntityManager */]) throw new Error("Queries aren't supported by MongoDB."); if (queryRunner && queryRunner.isReleased) throw new QueryRunnerProviderAlreadyReleasedError_QueryRunnerProviderAlreadyReleasedError(); usedQueryRunner = queryRunner || this.createQueryRunner(); _a.label = 1; case 1: _a.trys.push([1, , 3, 6]); return [4 /*yield*/, usedQueryRunner.query(query, parameters)]; case 2: return [2 /*return*/, _a.sent()]; // await is needed here because we are using finally case 3: if (!!queryRunner) return [3 /*break*/, 5]; return [4 /*yield*/, usedQueryRunner.release()]; case 4: _a.sent(); _a.label = 5; case 5: return [7 /*endfinally*/]; case 6: return [2 /*return*/]; } }); }); }; /** * Creates a new query builder that can be used to build a sql query. */ Connection.prototype.createQueryBuilder = function (entityOrRunner, alias, queryRunner) { if (this instanceof BrowserDisabledDriversDummy["f" /* MongoEntityManager */]) throw new Error("Query Builder is not supported by MongoDB."); if (alias) { var metadata = this.getMetadata(entityOrRunner); return new SelectQueryBuilder["SelectQueryBuilder"](this, queryRunner) .select(alias) .from(metadata.target, alias); } else { return new SelectQueryBuilder["SelectQueryBuilder"](this, entityOrRunner); } }; /** * Creates a query runner used for perform queries on a single database connection. * Using query runners you can control your queries to execute using single database connection and * manually control your database transaction. * * Mode is used in replication mode and indicates whatever you want to connect * to master database or any of slave databases. * If you perform writes you must use master database, * if you perform reads you can use slave databases. */ Connection.prototype.createQueryRunner = function (mode) { if (mode === void 0) { mode = "master"; } var queryRunner = this.driver.createQueryRunner(mode); var manager = this.createEntityManager(queryRunner); Object.assign(queryRunner, { manager: manager }); return queryRunner; }; /** * Gets entity metadata of the junction table (many-to-many table). */ Connection.prototype.getManyToManyMetadata = function (entityTarget, relationPropertyPath) { var relationMetadata = this.getMetadata(entityTarget).findRelationWithPropertyPath(relationPropertyPath); if (!relationMetadata) throw new Error("Relation \"" + relationPropertyPath + "\" was not found in " + entityTarget + " entity."); if (!relationMetadata.isManyToMany) throw new Error("Relation \"" + entityTarget + "#" + relationPropertyPath + "\" does not have a many-to-many relationship." + "You can use this method only on many-to-many relations."); return relationMetadata.junctionEntityMetadata; }; /** * Creates an Entity Manager for the current connection with the help of the EntityManagerFactory. */ Connection.prototype.createEntityManager = function (queryRunner) { return new EntityManagerFactory_EntityManagerFactory().create(this, queryRunner); }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Finds exist entity metadata by the given entity class, target name or table name. */ Connection.prototype.findMetadata = function (target) { return this.entityMetadatas.find(function (metadata) { if (metadata.target === target) return true; if (target instanceof EntitySchema["a" /* EntitySchema */]) { return metadata.name === target.options.name; } if (typeof target === "string") { if (target.indexOf(".") !== -1) { return metadata.tablePath === target; } else { return metadata.name === target || metadata.tableName === target; } } return false; }); }; /** * Builds metadatas for all registered classes inside this connection. */ Connection.prototype.buildMetadatas = function () { var connectionMetadataBuilder = new ConnectionMetadataBuilder_ConnectionMetadataBuilder(this); var entityMetadataValidator = new EntityMetadataValidator_EntityMetadataValidator(); // create subscribers instances if they are not disallowed from high-level (for example they can disallowed from migrations run process) var subscribers = connectionMetadataBuilder.buildSubscribers(this.options.subscribers || []); ObjectUtils["a" /* ObjectUtils */].assign(this, { subscribers: subscribers }); // build entity metadatas var entityMetadatas = connectionMetadataBuilder.buildEntityMetadatas(this.options.entities || []); ObjectUtils["a" /* ObjectUtils */].assign(this, { entityMetadatas: entityMetadatas }); // create migration instances var migrations = connectionMetadataBuilder.buildMigrations(this.options.migrations || []); ObjectUtils["a" /* ObjectUtils */].assign(this, { migrations: migrations }); this.driver.database = this.getDatabaseName(); // validate all created entity metadatas to make sure user created entities are valid and correct entityMetadataValidator.validateMany(this.entityMetadatas.filter(function (metadata) { return metadata.tableType !== "view"; }), this.driver); }; // This database name property is nested for replication configs. Connection.prototype.getDatabaseName = function () { var options = this.options; switch (options.type) { case "mysql": case "mariadb": case "postgres": case "cockroachdb": case "mssql": case "oracle": return DriverUtils["a" /* DriverUtils */].buildDriverOptions(options.replication ? options.replication.master : options).database; case "mongodb": return DriverUtils["a" /* DriverUtils */].buildMongoDBDriverOptions(options).database; default: return DriverUtils["a" /* DriverUtils */].buildDriverOptions(options).database; } }; return Connection; }()); //# sourceMappingURL=Connection.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/ConnectionNotFoundError.js /** * Thrown when consumer tries to get connection that does not exist. */ var ConnectionNotFoundError_ConnectionNotFoundError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(ConnectionNotFoundError, _super); function ConnectionNotFoundError(name) { var _this = _super.call(this) || this; _this.name = "ConnectionNotFoundError"; Object.setPrototypeOf(_this, ConnectionNotFoundError.prototype); _this.message = "Connection \"" + name + "\" was not found."; return _this; } return ConnectionNotFoundError; }(Error)); //# sourceMappingURL=ConnectionNotFoundError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/AlreadyHasActiveConnectionError.js /** * Thrown when consumer tries to recreate connection with the same name, but previous connection was not closed yet. */ var AlreadyHasActiveConnectionError_AlreadyHasActiveConnectionError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(AlreadyHasActiveConnectionError, _super); function AlreadyHasActiveConnectionError(connectionName) { var _this = _super.call(this) || this; _this.name = "AlreadyHasActiveConnectionError"; Object.setPrototypeOf(_this, AlreadyHasActiveConnectionError.prototype); _this.message = "Cannot create a new connection named \"" + connectionName + "\", because connection with such name " + "already exist and it now has an active connection session."; return _this; } return AlreadyHasActiveConnectionError; }(Error)); //# sourceMappingURL=AlreadyHasActiveConnectionError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/connection/ConnectionManager.js /** * ConnectionManager is used to store and manage multiple orm connections. * It also provides useful factory methods to simplify connection creation. */ var ConnectionManager_ConnectionManager = /** @class */ (function () { function ConnectionManager() { // ------------------------------------------------------------------------- // Protected Properties // ------------------------------------------------------------------------- /** * List of connections registered in this connection manager. */ this.connections = []; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Checks if connection with the given name exist in the manager. */ ConnectionManager.prototype.has = function (name) { return !!this.connections.find(function (connection) { return connection.name === name; }); }; /** * Gets registered connection with the given name. * If connection name is not given then it will get a default connection. * Throws error if connection with the given name was not found. */ ConnectionManager.prototype.get = function (name) { if (name === void 0) { name = "default"; } var connection = this.connections.find(function (connection) { return connection.name === name; }); if (!connection) throw new ConnectionNotFoundError_ConnectionNotFoundError(name); return connection; }; /** * Creates a new connection based on the given connection options and registers it in the manager. * Connection won't be established, you'll need to manually call connect method to establish connection. */ ConnectionManager.prototype.create = function (options) { // check if such connection is already registered var existConnection = this.connections.find(function (connection) { return connection.name === (options.name || "default"); }); if (existConnection) { // if connection is registered and its not closed then throw an error if (existConnection.isConnected) throw new AlreadyHasActiveConnectionError_AlreadyHasActiveConnectionError(options.name || "default"); // if its registered but closed then simply remove it from the manager this.connections.splice(this.connections.indexOf(existConnection), 1); } // create a new connection var connection = new Connection_Connection(options); this.connections.push(connection); return connection; }; return ConnectionManager; }()); //# sourceMappingURL=ConnectionManager.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/platform/BrowserConnectionOptionsReaderDummy.js /** * Dummy class for replacement via `package.json` in browser builds. * * If we don't include these functions typeorm will throw an error on runtime * as well as during webpack builds. */ var BrowserConnectionOptionsReaderDummy_ConnectionOptionsEnvReader = /** @class */ (function () { function ConnectionOptionsEnvReader() { } ConnectionOptionsEnvReader.prototype.read = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { throw new Error("Cannot read connection options in a browser context."); }); }); }; return ConnectionOptionsEnvReader; }()); /** * Dummy class for replacement via `package.json` in browser builds. * * If we don't include these functions typeorm will throw an error on runtime * as well as during webpack builds. */ var BrowserConnectionOptionsReaderDummy_ConnectionOptionsXmlReader = /** @class */ (function () { function ConnectionOptionsXmlReader() { } ConnectionOptionsXmlReader.prototype.read = function (path) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { throw new Error("Cannot read connection options in a browser context."); }); }); }; return ConnectionOptionsXmlReader; }()); /** * Dummy class for replacement via `package.json` in browser builds. * * If we don't include these functions typeorm will throw an error on runtime * as well as during webpack builds. */ var BrowserConnectionOptionsReaderDummy_ConnectionOptionsYmlReader = /** @class */ (function () { function ConnectionOptionsYmlReader() { } ConnectionOptionsYmlReader.prototype.read = function (path) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { throw new Error("Cannot read connection options in a browser context."); }); }); }; return ConnectionOptionsYmlReader; }()); /** * Dummy class for replacement via `package.json` in browser builds. * * If we don't include these functions typeorm will throw an error on runtime * as well as during webpack builds. */ var BrowserConnectionOptionsReaderDummy_ConnectionOptionsReader = /** @class */ (function () { function ConnectionOptionsReader() { } ConnectionOptionsReader.prototype.all = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { throw new Error("Cannot read connection options in a browser context."); }); }); }; ConnectionOptionsReader.prototype.get = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { throw new Error("Cannot read connection options in a browser context."); }); }); }; ConnectionOptionsReader.prototype.has = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { throw new Error("Cannot read connection options in a browser context."); }); }); }; return ConnectionOptionsReader; }()); //# sourceMappingURL=BrowserConnectionOptionsReaderDummy.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/common/EntityTarget.js //# sourceMappingURL=EntityTarget.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/common/ObjectType.js //# sourceMappingURL=ObjectType.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/common/ObjectLiteral.js //# sourceMappingURL=ObjectLiteral.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/common/DeepPartial.js //# sourceMappingURL=DeepPartial.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/CannotReflectMethodParameterTypeError.js /** * Thrown when ORM cannot get method parameter's type. * Basically, when reflect-metadata is not available or tsconfig is not properly setup. */ var CannotReflectMethodParameterTypeError_CannotReflectMethodParameterTypeError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(CannotReflectMethodParameterTypeError, _super); function CannotReflectMethodParameterTypeError(target, methodName) { var _this = _super.call(this) || this; _this.name = "CannotReflectMethodParameterTypeError"; Object.setPrototypeOf(_this, CannotReflectMethodParameterTypeError.prototype); _this.message = "Cannot get reflected type for a \"" + methodName + "\" method's parameter of \"" + target.name + "\" class. " + "Make sure you have turned on an \"emitDecoratorMetadata\": true option in tsconfig.json. " + "Also make sure you have imported \"reflect-metadata\" on top of the main entry file in your application."; return _this; } return CannotReflectMethodParameterTypeError; }(Error)); //# sourceMappingURL=CannotReflectMethodParameterTypeError.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/LockNotSupportedOnGivenDriverError.js var LockNotSupportedOnGivenDriverError = __webpack_require__(86); // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/ConnectionIsNotSetError.js /** * Thrown when user tries to execute operation that requires connection to be established. */ var ConnectionIsNotSetError_ConnectionIsNotSetError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(ConnectionIsNotSetError, _super); function ConnectionIsNotSetError(dbType) { var _this = _super.call(this) || this; _this.name = "ConnectionIsNotSetError"; Object.setPrototypeOf(_this, ConnectionIsNotSetError.prototype); _this.message = "Connection with " + dbType + " database is not established. Check connection configuration."; return _this; } return ConnectionIsNotSetError; }(Error)); //# sourceMappingURL=ConnectionIsNotSetError.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/CannotCreateEntityIdMapError.js var CannotCreateEntityIdMapError = __webpack_require__(152); // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/MetadataAlreadyExistsError.js /** */ var MetadataAlreadyExistsError_MetadataAlreadyExistsError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(MetadataAlreadyExistsError, _super); function MetadataAlreadyExistsError(metadataType, constructor, propertyName) { var _this = _super.call(this) || this; _this.name = "MetadataAlreadyExistsError"; Object.setPrototypeOf(_this, MetadataAlreadyExistsError.prototype); _this.message = metadataType + " metadata already exists for the class constructor " + JSON.stringify(constructor) + (propertyName ? " on property " + propertyName : ". If you previously renamed or moved entity class, make sure" + " that compiled version of old entity class source wasn't left in the compiler output directory."); return _this; } return MetadataAlreadyExistsError; }(Error)); //# sourceMappingURL=MetadataAlreadyExistsError.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/UpdateValuesMissingError.js var UpdateValuesMissingError = __webpack_require__(101); // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/OptimisticLockVersionMismatchError.js var OptimisticLockVersionMismatchError = __webpack_require__(130); // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/LimitOnUpdateNotSupportedError.js var LimitOnUpdateNotSupportedError = __webpack_require__(116); // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/PrimaryColumnCannotBeNullableError.js var PrimaryColumnCannotBeNullableError_PrimaryColumnCannotBeNullableError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(PrimaryColumnCannotBeNullableError, _super); function PrimaryColumnCannotBeNullableError(object, propertyName) { var _this = _super.call(this) || this; _this.name = "PrimaryColumnCannotBeNullableError"; Object.setPrototypeOf(_this, PrimaryColumnCannotBeNullableError.prototype); _this.message = "Primary column " + object.constructor.name + "#" + propertyName + " cannot be nullable. " + "Its not allowed for primary keys. Try to remove nullable option."; return _this; } return PrimaryColumnCannotBeNullableError; }(Error)); //# sourceMappingURL=PrimaryColumnCannotBeNullableError.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/MissingDeleteDateColumnError.js var MissingDeleteDateColumnError = __webpack_require__(159); // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/NoConnectionForRepositoryError.js /** * Thrown when consumer tries to access repository before connection is established. */ var NoConnectionForRepositoryError_NoConnectionForRepositoryError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(NoConnectionForRepositoryError, _super); function NoConnectionForRepositoryError(connectionName) { var _this = _super.call(this) || this; _this.name = "NoConnectionForRepositoryError"; Object.setPrototypeOf(_this, NoConnectionForRepositoryError.prototype); _this.message = "Cannot get a Repository for \"" + connectionName + " connection, because connection with the database " + "is not established yet. Call connection#connect method to establish connection."; return _this; } return NoConnectionForRepositoryError; }(Error)); //# sourceMappingURL=NoConnectionForRepositoryError.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/ReturningStatementNotSupportedError.js var ReturningStatementNotSupportedError = __webpack_require__(72); // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/UsingJoinTableIsNotAllowedError.js /** */ var UsingJoinTableIsNotAllowedError_UsingJoinTableIsNotAllowedError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(UsingJoinTableIsNotAllowedError, _super); function UsingJoinTableIsNotAllowedError(entityMetadata, relation) { var _this = _super.call(this) || this; _this.name = "UsingJoinTableIsNotAllowedError"; Object.setPrototypeOf(_this, UsingJoinTableIsNotAllowedError.prototype); _this.message = "Using JoinTable on " + entityMetadata.name + "#" + relation.propertyName + " is wrong. " + (entityMetadata.name + "#" + relation.propertyName + " has " + relation.relationType + " relation, ") + "however you can use JoinTable only on many-to-many relations."; return _this; } return UsingJoinTableIsNotAllowedError; }(Error)); //# sourceMappingURL=UsingJoinTableIsNotAllowedError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/MissingJoinColumnError.js /** */ var MissingJoinColumnError_MissingJoinColumnError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(MissingJoinColumnError, _super); function MissingJoinColumnError(entityMetadata, relation) { var _this = _super.call(this) || this; _this.name = "MissingJoinColumnError"; Object.setPrototypeOf(_this, MissingJoinColumnError.prototype); if (relation.inverseRelation) { _this.message = "JoinColumn is missing on both sides of " + entityMetadata.name + "#" + relation.propertyName + " and " + (relation.inverseEntityMetadata.name + "#" + relation.inverseRelation.propertyName + " one-to-one relationship. ") + "You need to put JoinColumn decorator on one of the sides."; } else { _this.message = "JoinColumn is missing on " + entityMetadata.name + "#" + relation.propertyName + " one-to-one relationship. " + "You need to put JoinColumn decorator on it."; } return _this; } return MissingJoinColumnError; }(Error)); //# sourceMappingURL=MissingJoinColumnError.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/EntityColumnNotFound.js var EntityColumnNotFound = __webpack_require__(114); // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/CannotGetEntityManagerNotConnectedError.js /** * Thrown when consumer tries to access entity manager before connection is established. */ var CannotGetEntityManagerNotConnectedError_CannotGetEntityManagerNotConnectedError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(CannotGetEntityManagerNotConnectedError, _super); function CannotGetEntityManagerNotConnectedError(connectionName) { var _this = _super.call(this) || this; _this.name = "CannotGetEntityManagerNotConnectedError"; Object.setPrototypeOf(_this, CannotGetEntityManagerNotConnectedError.prototype); _this.message = "Cannot get entity manager for \"" + connectionName + "\" connection because connection is not yet established."; return _this; } return CannotGetEntityManagerNotConnectedError; }(Error)); //# sourceMappingURL=CannotGetEntityManagerNotConnectedError.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/NoVersionOrUpdateDateColumnError.js var NoVersionOrUpdateDateColumnError = __webpack_require__(154); // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/InsertValuesMissingError.js var InsertValuesMissingError = __webpack_require__(157); // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/OptimisticLockCanNotBeUsedError.js var OptimisticLockCanNotBeUsedError = __webpack_require__(102); // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/MetadataWithSuchNameAlreadyExistsError.js /** */ var MetadataWithSuchNameAlreadyExistsError_MetadataWithSuchNameAlreadyExistsError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(MetadataWithSuchNameAlreadyExistsError, _super); function MetadataWithSuchNameAlreadyExistsError(metadataType, name) { var _this = _super.call(this) || this; _this.name = "MetadataWithSuchNameAlreadyExistsError"; Object.setPrototypeOf(_this, MetadataWithSuchNameAlreadyExistsError.prototype); _this.message = metadataType + " metadata with such name " + name + " already exists. " + "Do you apply decorator twice? Or maybe try to change a name?"; return _this; } return MetadataWithSuchNameAlreadyExistsError; }(Error)); //# sourceMappingURL=MetadataWithSuchNameAlreadyExistsError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/NamingStrategyNotFoundError.js /** * Thrown when consumer tries to use naming strategy that does not exist. */ var NamingStrategyNotFoundError_NamingStrategyNotFoundError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(NamingStrategyNotFoundError, _super); function NamingStrategyNotFoundError(strategyName, connectionName) { var _this = _super.call(this) || this; _this.name = "NamingStrategyNotFoundError"; Object.setPrototypeOf(_this, NamingStrategyNotFoundError.prototype); var name = strategyName instanceof Function ? strategyName.name : strategyName; _this.message = "Naming strategy \"" + name + "\" was not found. Looks like this naming strategy does not " + ("exist or it was not registered in current \"" + connectionName + "\" connection?"); return _this; } return NamingStrategyNotFoundError; }(Error)); //# sourceMappingURL=NamingStrategyNotFoundError.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/PessimisticLockTransactionRequiredError.js var PessimisticLockTransactionRequiredError = __webpack_require__(153); // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/MissingJoinTableError.js /** */ var MissingJoinTableError_MissingJoinTableError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(MissingJoinTableError, _super); function MissingJoinTableError(entityMetadata, relation) { var _this = _super.call(this) || this; _this.name = "MissingJoinTableError"; Object.setPrototypeOf(_this, MissingJoinTableError.prototype); if (relation.inverseRelation) { _this.message = "JoinTable is missing on both sides of " + entityMetadata.name + "#" + relation.propertyName + " and " + (relation.inverseEntityMetadata.name + "#" + relation.inverseRelation.propertyName + " many-to-many relationship. ") + "You need to put decorator decorator on one of the sides."; } else { _this.message = "JoinTable is missing on " + entityMetadata.name + "#" + relation.propertyName + " many-to-many relationship. " + "You need to put JoinTable decorator on it."; } return _this; } return MissingJoinTableError; }(Error)); //# sourceMappingURL=MissingJoinTableError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js /** */ var UsingJoinColumnOnlyOnOneSideAllowedError_UsingJoinColumnOnlyOnOneSideAllowedError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(UsingJoinColumnOnlyOnOneSideAllowedError, _super); function UsingJoinColumnOnlyOnOneSideAllowedError(entityMetadata, relation) { var _this = _super.call(this) || this; _this.name = "UsingJoinColumnOnlyOnOneSideAllowedError"; Object.setPrototypeOf(_this, UsingJoinColumnOnlyOnOneSideAllowedError.prototype); _this.message = "Using JoinColumn is allowed only on one side of the one-to-one relationship. " + ("Both " + entityMetadata.name + "#" + relation.propertyName + " and " + relation.inverseEntityMetadata.name + "#" + relation.inverseRelation.propertyName + " ") + "has JoinTable decorators. Choose one of them and left JoinTable decorator only on it."; return _this; } return UsingJoinColumnOnlyOnOneSideAllowedError; }(Error)); //# sourceMappingURL=UsingJoinColumnOnlyOnOneSideAllowedError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js /** */ var UsingJoinTableOnlyOnOneSideAllowedError_UsingJoinTableOnlyOnOneSideAllowedError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(UsingJoinTableOnlyOnOneSideAllowedError, _super); function UsingJoinTableOnlyOnOneSideAllowedError(entityMetadata, relation) { var _this = _super.call(this) || this; _this.name = "UsingJoinTableOnlyOnOneSideAllowedError"; Object.setPrototypeOf(_this, UsingJoinTableOnlyOnOneSideAllowedError.prototype); _this.message = "Using JoinTable is allowed only on one side of the many-to-many relationship. " + ("Both " + entityMetadata.name + "#" + relation.propertyName + " and " + relation.inverseEntityMetadata.name + "#" + relation.inverseRelation.propertyName + " ") + "has JoinTable decorators. Choose one of them and left JoinColumn decorator only on it."; return _this; } return UsingJoinTableOnlyOnOneSideAllowedError; }(Error)); //# sourceMappingURL=UsingJoinTableOnlyOnOneSideAllowedError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/PersistedEntityNotFoundError.js /** * Thrown . Theoretically can't be thrown. */ var PersistedEntityNotFoundError_PersistedEntityNotFoundError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(PersistedEntityNotFoundError, _super); function PersistedEntityNotFoundError() { var _this = _super.call(this) || this; _this.name = "PersistedEntityNotFoundError"; Object.setPrototypeOf(_this, PersistedEntityNotFoundError.prototype); _this.message = "Internal error. Persisted entity was not found in the list of prepared operated entities."; return _this; } return PersistedEntityNotFoundError; }(Error)); //# sourceMappingURL=PersistedEntityNotFoundError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/UsingJoinColumnIsNotAllowedError.js /** */ var UsingJoinColumnIsNotAllowedError_UsingJoinColumnIsNotAllowedError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(UsingJoinColumnIsNotAllowedError, _super); function UsingJoinColumnIsNotAllowedError(entityMetadata, relation) { var _this = _super.call(this) || this; _this.name = "UsingJoinColumnIsNotAllowedError"; Object.setPrototypeOf(_this, UsingJoinColumnIsNotAllowedError.prototype); _this.message = "Using JoinColumn on " + entityMetadata.name + "#" + relation.propertyName + " is wrong. " + "You can use JoinColumn only on one-to-one and many-to-one relations."; return _this; } return UsingJoinColumnIsNotAllowedError; }(Error)); //# sourceMappingURL=UsingJoinColumnIsNotAllowedError.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/ColumnTypeUndefinedError.js /** * Thrown when ORM cannot get column's type automatically. * Basically, when reflect-metadata is not available or tsconfig is not properly setup. */ var ColumnTypeUndefinedError_ColumnTypeUndefinedError = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(ColumnTypeUndefinedError, _super); function ColumnTypeUndefinedError(object, propertyName) { var _this = _super.call(this) || this; _this.name = "ColumnTypeUndefinedError"; Object.setPrototypeOf(_this, ColumnTypeUndefinedError.prototype); _this.message = "Column type for " + object.constructor.name + "#" + propertyName + " is not defined and cannot be guessed. " + "Make sure you have turned on an \"emitDecoratorMetadata\": true option in tsconfig.json. " + "Also make sure you have imported \"reflect-metadata\" on top of the main entry file in your application (before any entity imported)." + "If you are using JavaScript instead of TypeScript you must explicitly provide a column type."; return _this; } return ColumnTypeUndefinedError; }(Error)); //# sourceMappingURL=ColumnTypeUndefinedError.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/OffsetWithoutLimitNotSupportedError.js var OffsetWithoutLimitNotSupportedError = __webpack_require__(160); // CONCATENATED MODULE: ./node_modules/typeorm/browser/error/index.js //# sourceMappingURL=index.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/columns/Column.js /** * Column decorator is used to mark a specific class property as a table column. * Only properties decorated with this decorator will be persisted to the database when entity be saved. */ function Column(typeOrOptions, options) { return function (object, propertyName) { // normalize parameters var type; if (typeof typeOrOptions === "string" || typeOrOptions instanceof Function) { type = typeOrOptions; } else if (typeOrOptions) { options = typeOrOptions; type = typeOrOptions.type; } if (!options) options = {}; // if type is not given explicitly then try to guess it var reflectMetadataType = Reflect && Reflect.getMetadata ? Reflect.getMetadata("design:type", object, propertyName) : undefined; if (!type && reflectMetadataType) // if type is not given explicitly then try to guess it type = reflectMetadataType; // check if there is no type in column options then set type from first function argument, or guessed one if (!options.type && type) options.type = type; // specify HSTORE type if column is HSTORE if (options.type === "hstore" && !options.hstoreType) options.hstoreType = reflectMetadataType === Object ? "object" : "string"; if (typeOrOptions instanceof Function) { // register an embedded getMetadataArgsStorage().embeddeds.push({ target: object.constructor, propertyName: propertyName, isArray: reflectMetadataType === Array || options.array === true, prefix: options.prefix !== undefined ? options.prefix : undefined, type: typeOrOptions }); } else { // register a regular column // if we still don't have a type then we need to give error to user that type is required if (!options.type) throw new ColumnTypeUndefinedError_ColumnTypeUndefinedError(object, propertyName); // create unique if (options.unique === true) getMetadataArgsStorage().uniques.push({ target: object.constructor, columns: [propertyName] }); getMetadataArgsStorage().columns.push({ target: object.constructor, propertyName: propertyName, mode: "regular", options: options }); if (options.generated) { getMetadataArgsStorage().generations.push({ target: object.constructor, propertyName: propertyName, strategy: typeof options.generated === "string" ? options.generated : "increment" }); } } }; } //# sourceMappingURL=Column.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/columns/CreateDateColumn.js /** * This column will store a creation date of the inserted object. * Creation date is generated and inserted only once, * at the first time when you create an object, the value is inserted into the table, and is never touched again. */ function CreateDateColumn(options) { return function (object, propertyName) { getMetadataArgsStorage().columns.push({ target: object.constructor, propertyName: propertyName, mode: "createDate", options: options || {} }); }; } //# sourceMappingURL=CreateDateColumn.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/columns/DeleteDateColumn.js /** * This column will store a delete date of the soft-deleted object. * This date is being updated each time you soft-delete the object. */ function DeleteDateColumn(options) { return function (object, propertyName) { getMetadataArgsStorage().columns.push({ target: object.constructor, propertyName: propertyName, mode: "deleteDate", options: options || {} }); }; } //# sourceMappingURL=DeleteDateColumn.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/columns/PrimaryGeneratedColumn.js /** * Column decorator is used to mark a specific class property as a table column. * Only properties decorated with this decorator will be persisted to the database when entity be saved. * This column creates an integer PRIMARY COLUMN with generated set to true. */ function PrimaryGeneratedColumn(strategyOrOptions, maybeOptions) { // normalize parameters var options = {}; var strategy; if (strategyOrOptions) { if (typeof strategyOrOptions === "string") strategy = strategyOrOptions; if (strategyOrOptions instanceof Object) { strategy = "increment"; Object.assign(options, strategyOrOptions); } } else { strategy = "increment"; } if (maybeOptions instanceof Object) Object.assign(options, maybeOptions); return function (object, propertyName) { // if column type is not explicitly set then determine it based on generation strategy if (!options.type) { if (strategy === "increment") { options.type = Number; } else if (strategy === "uuid") { options.type = "uuid"; } else if (strategy === "rowid") { options.type = "int"; } } // explicitly set a primary and generated to column options options.primary = true; // register column metadata args getMetadataArgsStorage().columns.push({ target: object.constructor, propertyName: propertyName, mode: "regular", options: options }); // register generated metadata args getMetadataArgsStorage().generations.push({ target: object.constructor, propertyName: propertyName, strategy: strategy }); }; } //# sourceMappingURL=PrimaryGeneratedColumn.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/columns/PrimaryColumn.js /** * Column decorator is used to mark a specific class property as a table column. * Only properties decorated with this decorator will be persisted to the database when entity be saved. * Primary columns also creates a PRIMARY KEY for this column in a db. */ function PrimaryColumn(typeOrOptions, options) { return function (object, propertyName) { // normalize parameters var type; if (typeof typeOrOptions === "string") { type = typeOrOptions; } else { options = Object.assign({}, typeOrOptions); } if (!options) options = {}; // if type is not given explicitly then try to guess it var reflectMetadataType = Reflect && Reflect.getMetadata ? Reflect.getMetadata("design:type", object, propertyName) : undefined; if (!type && reflectMetadataType) type = reflectMetadataType; // check if there is no type in column options then set type from first function argument, or guessed one if (!options.type && type) options.type = type; // if we still don't have a type then we need to give error to user that type is required if (!options.type) throw new ColumnTypeUndefinedError_ColumnTypeUndefinedError(object, propertyName); // check if column is not nullable, because we cannot allow a primary key to be nullable if (options.nullable) throw new PrimaryColumnCannotBeNullableError_PrimaryColumnCannotBeNullableError(object, propertyName); // explicitly set a primary to column options options.primary = true; // create and register a new column metadata getMetadataArgsStorage().columns.push({ target: object.constructor, propertyName: propertyName, mode: "regular", options: options }); if (options.generated) { getMetadataArgsStorage().generations.push({ target: object.constructor, propertyName: propertyName, strategy: typeof options.generated === "string" ? options.generated : "increment" }); } }; } //# sourceMappingURL=PrimaryColumn.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/columns/UpdateDateColumn.js /** * This column will store an update date of the updated object. * This date is being updated each time you persist the object. */ function UpdateDateColumn(options) { return function (object, propertyName) { getMetadataArgsStorage().columns.push({ target: object.constructor, propertyName: propertyName, mode: "updateDate", options: options ? options : {} }); }; } //# sourceMappingURL=UpdateDateColumn.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/columns/VersionColumn.js /** * This column will store a number - version of the entity. * Every time your entity will be persisted, this number will be increased by one - * so you can organize visioning and update strategies of your entity. */ function VersionColumn(options) { return function (object, propertyName) { getMetadataArgsStorage().columns.push({ target: object.constructor, propertyName: propertyName, mode: "version", options: options || {} }); }; } //# sourceMappingURL=VersionColumn.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/columns/ViewColumn.js /** * ViewColumn decorator is used to mark a specific class property as a view column. */ function ViewColumn(options) { return function (object, propertyName) { getMetadataArgsStorage().columns.push({ target: object.constructor, propertyName: propertyName, mode: "regular", options: options || {} }); }; } //# sourceMappingURL=ViewColumn.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/columns/ObjectIdColumn.js /** * Special type of column that is available only for MongoDB database. * Marks your entity's column to be an object id. */ function ObjectIdColumn(options) { return function (object, propertyName) { // if column options are not given then create a new empty options if (!options) options = {}; options.primary = true; if (!options.name) options.name = "_id"; // create and register a new column metadata getMetadataArgsStorage().columns.push({ target: object.constructor, propertyName: propertyName, mode: "objectId", options: options }); }; } //# sourceMappingURL=ObjectIdColumn.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/listeners/AfterInsert.js /** * Calls a method on which this decorator is applied after this entity insertion. */ function AfterInsert() { return function (object, propertyName) { getMetadataArgsStorage().entityListeners.push({ target: object.constructor, propertyName: propertyName, type: EventListenerTypes.AFTER_INSERT }); }; } //# sourceMappingURL=AfterInsert.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/listeners/AfterLoad.js /** * Calls a method on which this decorator is applied after entity is loaded. */ function AfterLoad() { return function (object, propertyName) { getMetadataArgsStorage().entityListeners.push({ target: object.constructor, propertyName: propertyName, type: EventListenerTypes.AFTER_LOAD }); }; } //# sourceMappingURL=AfterLoad.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/listeners/AfterRemove.js /** * Calls a method on which this decorator is applied after this entity removal. */ function AfterRemove() { return function (object, propertyName) { getMetadataArgsStorage().entityListeners.push({ target: object.constructor, propertyName: propertyName, type: EventListenerTypes.AFTER_REMOVE }); }; } //# sourceMappingURL=AfterRemove.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/listeners/AfterUpdate.js /** * Calls a method on which this decorator is applied after this entity update. */ function AfterUpdate() { return function (object, propertyName) { getMetadataArgsStorage().entityListeners.push({ target: object.constructor, propertyName: propertyName, type: EventListenerTypes.AFTER_UPDATE }); }; } //# sourceMappingURL=AfterUpdate.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/listeners/BeforeInsert.js /** * Calls a method on which this decorator is applied before this entity insertion. */ function BeforeInsert() { return function (object, propertyName) { getMetadataArgsStorage().entityListeners.push({ target: object.constructor, propertyName: propertyName, type: EventListenerTypes.BEFORE_INSERT }); }; } //# sourceMappingURL=BeforeInsert.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/listeners/BeforeRemove.js /** * Calls a method on which this decorator is applied before this entity removal. */ function BeforeRemove() { return function (object, propertyName) { getMetadataArgsStorage().entityListeners.push({ target: object.constructor, propertyName: propertyName, type: EventListenerTypes.BEFORE_REMOVE }); }; } //# sourceMappingURL=BeforeRemove.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/listeners/BeforeUpdate.js /** * Calls a method on which this decorator is applied before this entity update. */ function BeforeUpdate() { return function (object, propertyName) { getMetadataArgsStorage().entityListeners.push({ target: object.constructor, propertyName: propertyName, type: EventListenerTypes.BEFORE_UPDATE }); }; } //# sourceMappingURL=BeforeUpdate.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/listeners/EventSubscriber.js /** * Classes decorated with this decorator will listen to ORM events and their methods will be triggered when event * occurs. Those classes must implement EventSubscriberInterface interface. */ function EventSubscriber() { return function (target) { getMetadataArgsStorage().entitySubscribers.push({ target: target }); }; } //# sourceMappingURL=EventSubscriber.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/options/ColumnOptions.js //# sourceMappingURL=ColumnOptions.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/options/IndexOptions.js //# sourceMappingURL=IndexOptions.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/options/JoinColumnOptions.js //# sourceMappingURL=JoinColumnOptions.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/options/JoinTableOptions.js //# sourceMappingURL=JoinTableOptions.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/options/RelationOptions.js //# sourceMappingURL=RelationOptions.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/options/EntityOptions.js //# sourceMappingURL=EntityOptions.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/options/ValueTransformer.js //# sourceMappingURL=ValueTransformer.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/relations/JoinColumn.js /** * JoinColumn decorator used on one-to-one relations to specify owner side of relationship. * It also can be used on both one-to-one and many-to-one relations to specify custom column name * or custom referenced column. */ function JoinColumn(optionsOrOptionsArray) { return function (object, propertyName) { var options = Array.isArray(optionsOrOptionsArray) ? optionsOrOptionsArray : [optionsOrOptionsArray || {}]; options.forEach(function (options) { getMetadataArgsStorage().joinColumns.push({ target: object.constructor, propertyName: propertyName, name: options.name, referencedColumnName: options.referencedColumnName }); }); }; } //# sourceMappingURL=JoinColumn.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/relations/JoinTable.js /** * JoinTable decorator is used in many-to-many relationship to specify owner side of relationship. * Its also used to set a custom junction table's name, column names and referenced columns. */ function JoinTable(options) { return function (object, propertyName) { options = options || {}; getMetadataArgsStorage().joinTables.push({ target: object.constructor, propertyName: propertyName, name: options.name, joinColumns: (options && options.joinColumn ? [options.joinColumn] : options.joinColumns), inverseJoinColumns: (options && options.inverseJoinColumn ? [options.inverseJoinColumn] : options.inverseJoinColumns), schema: options && options.schema ? options.schema : undefined, database: options && options.database ? options.database : undefined, }); }; } //# sourceMappingURL=JoinTable.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/relations/ManyToMany.js /** * Many-to-many is a type of relationship when Entity1 can have multiple instances of Entity2, and Entity2 can have * multiple instances of Entity1. To achieve it, this type of relation creates a junction table, where it storage * entity1 and entity2 ids. This is owner side of the relationship. */ function ManyToMany(typeFunctionOrTarget, inverseSideOrOptions, options) { // normalize parameters var inverseSideProperty; if (typeof inverseSideOrOptions === "object") { options = inverseSideOrOptions; } else { inverseSideProperty = inverseSideOrOptions; } return function (object, propertyName) { if (!options) options = {}; // now try to determine it its lazy relation var isLazy = options.lazy === true; if (!isLazy && Reflect && Reflect.getMetadata) { // automatic determination var reflectedType = Reflect.getMetadata("design:type", object, propertyName); if (reflectedType && typeof reflectedType.name === "string" && reflectedType.name.toLowerCase() === "promise") isLazy = true; } getMetadataArgsStorage().relations.push({ target: object.constructor, propertyName: propertyName, // propertyType: reflectedType, relationType: "many-to-many", isLazy: isLazy, type: typeFunctionOrTarget, inverseSideProperty: inverseSideProperty, options: options }); }; } //# sourceMappingURL=ManyToMany.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/relations/ManyToOne.js /** * A many-to-one relation allows creating the type of relation where Entity1 can have a single instance of Entity2, but * Entity2 can have multiple instances of Entity1. Entity1 is the owner of the relationship, and stores the id of * Entity2 on its side of the relation. */ function ManyToOne(typeFunctionOrTarget, inverseSideOrOptions, options) { // Normalize parameters. var inverseSideProperty; if (typeof inverseSideOrOptions === "object") { options = inverseSideOrOptions; } else { inverseSideProperty = inverseSideOrOptions; } return function (object, propertyName) { if (!options) options = {}; // Now try to determine if it is a lazy relation. var isLazy = options && options.lazy === true ? true : false; if (!isLazy && Reflect && Reflect.getMetadata) { // automatic determination var reflectedType = Reflect.getMetadata("design:type", object, propertyName); if (reflectedType && typeof reflectedType.name === "string" && reflectedType.name.toLowerCase() === "promise") isLazy = true; } getMetadataArgsStorage().relations.push({ target: object.constructor, propertyName: propertyName, // propertyType: reflectedType, relationType: "many-to-one", isLazy: isLazy, type: typeFunctionOrTarget, inverseSideProperty: inverseSideProperty, options: options }); }; } //# sourceMappingURL=ManyToOne.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/relations/OneToMany.js /** * A one-to-many relation allows creating the type of relation where Entity1 can have multiple instances of Entity2, * but Entity2 has only one Entity1. Entity2 is the owner of the relationship, and stores the id of Entity1 on its * side of the relation. */ function OneToMany(typeFunctionOrTarget, inverseSide, options) { return function (object, propertyName) { if (!options) options = {}; // Now try to determine if it is a lazy relation. var isLazy = options && options.lazy === true ? true : false; if (!isLazy && Reflect && Reflect.getMetadata) { // automatic determination var reflectedType = Reflect.getMetadata("design:type", object, propertyName); if (reflectedType && typeof reflectedType.name === "string" && reflectedType.name.toLowerCase() === "promise") isLazy = true; } getMetadataArgsStorage().relations.push({ target: object.constructor, propertyName: propertyName, // propertyType: reflectedType, isLazy: isLazy, relationType: "one-to-many", type: typeFunctionOrTarget, inverseSideProperty: inverseSide, options: options }); }; } //# sourceMappingURL=OneToMany.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/relations/OneToOne.js /** * One-to-one relation allows to create direct relation between two entities. Entity1 have only one Entity2. * Entity1 is an owner of the relationship, and storages Entity1 id on its own side. */ function OneToOne(typeFunctionOrTarget, inverseSideOrOptions, options) { // normalize parameters var inverseSideProperty; if (typeof inverseSideOrOptions === "object") { options = inverseSideOrOptions; } else { inverseSideProperty = inverseSideOrOptions; } return function (object, propertyName) { if (!options) options = {}; // now try to determine it its lazy relation var isLazy = options && options.lazy === true ? true : false; if (!isLazy && Reflect && Reflect.getMetadata) { // automatic determination var reflectedType = Reflect.getMetadata("design:type", object, propertyName); if (reflectedType && typeof reflectedType.name === "string" && reflectedType.name.toLowerCase() === "promise") isLazy = true; } getMetadataArgsStorage().relations.push({ target: object.constructor, propertyName: propertyName, // propertyType: reflectedType, isLazy: isLazy, relationType: "one-to-one", type: typeFunctionOrTarget, inverseSideProperty: inverseSideProperty, options: options }); }; } //# sourceMappingURL=OneToOne.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/relations/RelationCount.js /** * Holds a number of children in the closure table of the column. * * @deprecated Do not use this decorator, it may be removed in the future versions */ function RelationCount(relation, alias, queryBuilderFactory) { return function (object, propertyName) { getMetadataArgsStorage().relationCounts.push({ target: object.constructor, propertyName: propertyName, relation: relation, alias: alias, queryBuilderFactory: queryBuilderFactory }); }; } //# sourceMappingURL=RelationCount.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/relations/RelationId.js /** * Special decorator used to extract relation id into separate entity property. * * @experimental */ function RelationId(relation, alias, queryBuilderFactory) { return function (object, propertyName) { getMetadataArgsStorage().relationIds.push({ target: object.constructor, propertyName: propertyName, relation: relation, alias: alias, queryBuilderFactory: queryBuilderFactory }); }; } //# sourceMappingURL=RelationId.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/entity/Entity.js /** * This decorator is used to mark classes that will be an entity (table or document depend on database type). * Database schema will be created for all classes decorated with it, and Repository can be retrieved and used for it. */ function Entity(nameOrOptions, maybeOptions) { var options = (typeof nameOrOptions === "object" ? nameOrOptions : maybeOptions) || {}; var name = typeof nameOrOptions === "string" ? nameOrOptions : options.name; return function (target) { getMetadataArgsStorage().tables.push({ target: target, name: name, type: "regular", orderBy: options.orderBy ? options.orderBy : undefined, engine: options.engine ? options.engine : undefined, database: options.database ? options.database : undefined, schema: options.schema ? options.schema : undefined, synchronize: options.synchronize, withoutRowid: options.withoutRowid }); }; } //# sourceMappingURL=Entity.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/entity/ChildEntity.js /** * Special type of the table used in the single-table inherited tables. */ function ChildEntity(discriminatorValue) { return function (target) { // register a table metadata getMetadataArgsStorage().tables.push({ target: target, type: "entity-child", }); // register discriminator value if it was provided if (typeof discriminatorValue !== 'undefined') { getMetadataArgsStorage().discriminatorValues.push({ target: target, value: discriminatorValue }); } }; } //# sourceMappingURL=ChildEntity.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/entity/TableInheritance.js /** * Sets for entity to use table inheritance pattern. */ function TableInheritance(options) { return function (target) { getMetadataArgsStorage().inheritances.push({ target: target, pattern: options && options.pattern ? options.pattern : "STI", column: options && options.column ? typeof options.column === "string" ? { name: options.column } : options.column : undefined }); }; } //# sourceMappingURL=TableInheritance.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/entity-view/ViewEntity.js /** * This decorator is used to mark classes that will be an entity view. * Database schema will be created for all classes decorated with it, and Repository can be retrieved and used for it. */ function ViewEntity(nameOrOptions, maybeOptions) { var options = (typeof nameOrOptions === "object" ? nameOrOptions : maybeOptions) || {}; var name = typeof nameOrOptions === "string" ? nameOrOptions : options.name; return function (target) { getMetadataArgsStorage().tables.push({ target: target, name: name, expression: options.expression, type: "view", database: options.database ? options.database : undefined, schema: options.schema ? options.schema : undefined, synchronize: options.synchronize === false ? false : true, materialized: !!options.materialized }); }; } //# sourceMappingURL=ViewEntity.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/transaction/Transaction.js function Transaction(connectionOrOptions) { return function (target, methodName, descriptor) { // save original method - we gonna need it var originalMethod = descriptor.value; // override method descriptor with proxy method descriptor.value = function () { var _this = this; var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var connectionName = "default"; var isolationLevel = undefined; if (connectionOrOptions) { if (typeof connectionOrOptions === "string") { connectionName = connectionOrOptions; } else { if (connectionOrOptions.connectionName) { connectionName = connectionOrOptions.connectionName; } if (connectionOrOptions.isolation) { isolationLevel = connectionOrOptions.isolation; } } } var transactionCallback = function (entityManager) { var argsWithInjectedTransactionManagerAndRepositories; // filter all @TransactionManager() and @TransactionRepository() decorator usages for this method var transactionEntityManagerMetadatas = getMetadataArgsStorage() .filterTransactionEntityManagers(target.constructor, methodName) .reverse(); var transactionRepositoryMetadatas = getMetadataArgsStorage() .filterTransactionRepository(target.constructor, methodName) .reverse(); // if there are @TransactionManager() decorator usages the inject them if (transactionEntityManagerMetadatas.length > 0) { argsWithInjectedTransactionManagerAndRepositories = Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(args)); // replace method params with injection of transactionEntityManager transactionEntityManagerMetadatas.forEach(function (metadata) { argsWithInjectedTransactionManagerAndRepositories.splice(metadata.index, 0, entityManager); }); } else if (transactionRepositoryMetadatas.length === 0) { // otherwise if there's no transaction repositories in use, inject it as a first parameter argsWithInjectedTransactionManagerAndRepositories = Object(tslib_es6["f" /* __spreadArray */])([entityManager], Object(tslib_es6["e" /* __read */])(args)); } else { argsWithInjectedTransactionManagerAndRepositories = Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(args)); } // for every usage of @TransactionRepository decorator transactionRepositoryMetadatas.forEach(function (metadata) { var repositoryInstance; // detect type of the repository and get instance from transaction entity manager switch (metadata.repositoryType) { case Repository_Repository: repositoryInstance = entityManager.getRepository(metadata.entityType); break; case BrowserDisabledDriversDummy["h" /* MongoRepository */]: repositoryInstance = entityManager.getMongoRepository(metadata.entityType); break; case TreeRepository_TreeRepository: repositoryInstance = entityManager.getTreeRepository(metadata.entityType); break; // if not the TypeORM's ones, there must be custom repository classes default: repositoryInstance = entityManager.getCustomRepository(metadata.repositoryType); } // replace method param with injection of repository instance argsWithInjectedTransactionManagerAndRepositories.splice(metadata.index, 0, repositoryInstance); }); return originalMethod.apply(_this, argsWithInjectedTransactionManagerAndRepositories); }; if (isolationLevel) { return getConnection(connectionName).manager.transaction(isolationLevel, transactionCallback); } else { return getConnection(connectionName).manager.transaction(transactionCallback); } }; }; } //# sourceMappingURL=Transaction.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/transaction/TransactionManager.js /** * Injects transaction's entity manager into the method wrapped with @Transaction decorator. */ function TransactionManager() { return function (object, methodName, index) { getMetadataArgsStorage().transactionEntityManagers.push({ target: object.constructor, methodName: methodName, index: index, }); }; } //# sourceMappingURL=TransactionManager.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/transaction/TransactionRepository.js /** * Injects transaction's repository into the method wrapped with @Transaction decorator. */ function TransactionRepository(entityType) { return function (object, methodName, index) { // get repository type var repositoryType; try { repositoryType = Reflect.getOwnMetadata("design:paramtypes", object, methodName)[index]; } catch (err) { throw new CannotReflectMethodParameterTypeError_CannotReflectMethodParameterTypeError(object.constructor, methodName); } getMetadataArgsStorage().transactionRepositories.push({ target: object.constructor, methodName: methodName, index: index, repositoryType: repositoryType, entityType: entityType, }); }; } //# sourceMappingURL=TransactionRepository.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/tree/TreeLevelColumn.js /** * Creates a "level"/"length" column to the table that holds a closure table. */ function TreeLevelColumn() { return function (object, propertyName) { getMetadataArgsStorage().columns.push({ target: object.constructor, propertyName: propertyName, mode: "treeLevel", options: {} }); }; } //# sourceMappingURL=TreeLevelColumn.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/tree/TreeParent.js /** * Marks a entity property as a parent of the tree. * "Tree parent" indicates who owns (is a parent) of this entity in tree structure. */ function TreeParent() { return function (object, propertyName) { // now try to determine it its lazy relation var reflectedType = Reflect && Reflect.getMetadata ? Reflect.getMetadata("design:type", object, propertyName) : undefined; var isLazy = (reflectedType && typeof reflectedType.name === "string" && reflectedType.name.toLowerCase() === "promise") || false; getMetadataArgsStorage().relations.push({ isTreeParent: true, target: object.constructor, propertyName: propertyName, isLazy: isLazy, relationType: "many-to-one", type: function () { return object.constructor; }, options: {} }); }; } //# sourceMappingURL=TreeParent.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/tree/TreeChildren.js /** * Marks a entity property as a children of the tree. * "Tree children" will contain all children (bind) of this entity. */ function TreeChildren(options) { return function (object, propertyName) { if (!options) options = {}; // now try to determine it its lazy relation var reflectedType = Reflect && Reflect.getMetadata ? Reflect.getMetadata("design:type", object, propertyName) : undefined; var isLazy = (reflectedType && typeof reflectedType.name === "string" && reflectedType.name.toLowerCase() === "promise") || false; // add one-to-many relation for this getMetadataArgsStorage().relations.push({ isTreeChildren: true, target: object.constructor, propertyName: propertyName, isLazy: isLazy, relationType: "one-to-many", type: function () { return object.constructor; }, options: options }); }; } //# sourceMappingURL=TreeChildren.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/tree/Tree.js /** * Marks entity to work like a tree. * Tree pattern that will be used for the tree entity should be specified. * @TreeParent decorator must be used in tree entities. * TreeRepository can be used to manipulate with tree entities. */ function Tree(type, options) { return function (target) { getMetadataArgsStorage().trees.push({ target: target, type: type, options: type === "closure-table" ? options : undefined }); }; } //# sourceMappingURL=Tree.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/Index.js /** * Creates a database index. * Can be used on entity property or on entity. * Can create indices with composite columns when used on entity. */ function Index(nameOrFieldsOrOptions, maybeFieldsOrOptions, maybeOptions) { // normalize parameters var name = typeof nameOrFieldsOrOptions === "string" ? nameOrFieldsOrOptions : undefined; var fields = typeof nameOrFieldsOrOptions === "string" ? maybeFieldsOrOptions : nameOrFieldsOrOptions; var options = (typeof nameOrFieldsOrOptions === "object" && !Array.isArray(nameOrFieldsOrOptions)) ? nameOrFieldsOrOptions : maybeOptions; if (!options) options = (typeof maybeFieldsOrOptions === "object" && !Array.isArray(maybeFieldsOrOptions)) ? maybeFieldsOrOptions : maybeOptions; return function (clsOrObject, propertyName) { getMetadataArgsStorage().indices.push({ target: propertyName ? clsOrObject.constructor : clsOrObject, name: name, columns: propertyName ? [propertyName] : fields, synchronize: options && options.synchronize === false ? false : true, where: options ? options.where : undefined, unique: options && options.unique ? true : false, spatial: options && options.spatial ? true : false, fulltext: options && options.fulltext ? true : false, parser: options ? options.parser : undefined, sparse: options && options.sparse ? true : false, background: options && options.background ? true : false, expireAfterSeconds: options ? options.expireAfterSeconds : undefined }); }; } //# sourceMappingURL=Index.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/Unique.js /** * Composite unique constraint must be set on entity classes and must specify entity's fields to be unique. */ function Unique(nameOrFields, maybeFields) { var name = typeof nameOrFields === "string" ? nameOrFields : undefined; var fields = typeof nameOrFields === "string" ? maybeFields : nameOrFields; return function (clsOrObject, propertyName) { var columns = fields; if (propertyName !== undefined) { switch (typeof (propertyName)) { case "string": columns = [propertyName]; break; case "symbol": columns = [propertyName.toString()]; break; } } var args = { target: propertyName ? clsOrObject.constructor : clsOrObject, name: name, columns: columns, }; getMetadataArgsStorage().uniques.push(args); }; } //# sourceMappingURL=Unique.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/Check.js /** * Creates a database check. * Can be used on entity property or on entity. * Can create checks with composite columns when used on entity. */ function Check(nameOrExpression, maybeExpression) { var name = maybeExpression ? nameOrExpression : undefined; var expression = maybeExpression ? maybeExpression : nameOrExpression; if (!expression) throw new Error("Check expression is required"); return function (clsOrObject, propertyName) { getMetadataArgsStorage().checks.push({ target: propertyName ? clsOrObject.constructor : clsOrObject, name: name, expression: expression }); }; } //# sourceMappingURL=Check.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/Exclusion.js /** * Creates a database exclusion. * Can be used on entity. * Can create exclusions with composite columns when used on entity. */ function Exclusion(nameOrExpression, maybeExpression) { var name = maybeExpression ? nameOrExpression : undefined; var expression = maybeExpression ? maybeExpression : nameOrExpression; if (!expression) throw new Error("Exclusion expression is required"); return function (clsOrObject, propertyName) { getMetadataArgsStorage().exclusions.push({ target: propertyName ? clsOrObject.constructor : clsOrObject, name: name, expression: expression }); }; } //# sourceMappingURL=Exclusion.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/Generated.js /** * Marks a column to generate a value on entity insertion. * There are three types of generation strategy - increment, uuid and rowid (cockroachdb only). * Increment uses a number which increases by one on each insertion. * Uuid generates a special UUID token. * Rowid supports only in CockroachDB and uses `unique_rowid()` function * * Note, some databases do not support non-primary generation columns. */ function Generated(strategy) { if (strategy === void 0) { strategy = "increment"; } return function (object, propertyName) { getMetadataArgsStorage().generations.push({ target: object.constructor, propertyName: propertyName, strategy: strategy }); }; } //# sourceMappingURL=Generated.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/decorator/EntityRepository.js /** * Used to declare a class as a custom repository. * Custom repository can manage some specific entity or just be generic. * Custom repository optionally can extend AbstractRepository, Repository or TreeRepository. */ function EntityRepository(entity) { return function (target) { getMetadataArgsStorage().entityRepositories.push({ target: target, entity: entity, }); }; } //# sourceMappingURL=EntityRepository.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/find-options/FindOperator.js var FindOperator = __webpack_require__(9); // CONCATENATED MODULE: ./node_modules/typeorm/browser/find-options/operator/Any.js /** * Find Options Operator. * Example: { someField: Any([...]) } */ function Any(value) { return new FindOperator["a" /* FindOperator */]("any", value); } //# sourceMappingURL=Any.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/find-options/operator/Between.js /** * Find Options Operator. * Example: { someField: Between(x, y) } */ function Between(from, to) { return new FindOperator["a" /* FindOperator */]("between", [from, to], true, true); } //# sourceMappingURL=Between.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/find-options/operator/Equal.js /** * Find Options Operator. * Example: { someField: Equal("value") } */ function Equal(value) { return new FindOperator["a" /* FindOperator */]("equal", value); } //# sourceMappingURL=Equal.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/find-options/operator/In.js var In = __webpack_require__(156); // CONCATENATED MODULE: ./node_modules/typeorm/browser/find-options/operator/IsNull.js /** * Find Options Operator. * Example: { someField: IsNull() } */ function IsNull() { return new FindOperator["a" /* FindOperator */]("isNull", undefined, false); } //# sourceMappingURL=IsNull.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/find-options/operator/LessThan.js /** * Find Options Operator. * Example: { someField: LessThan(10) } */ function LessThan(value) { return new FindOperator["a" /* FindOperator */]("lessThan", value); } //# sourceMappingURL=LessThan.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/find-options/operator/LessThanOrEqual.js /** * Find Options Operator. * Example: { someField: LessThanOrEqual(10) } */ function LessThanOrEqual(value) { return new FindOperator["a" /* FindOperator */]("lessThanOrEqual", value); } //# sourceMappingURL=LessThanOrEqual.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/find-options/operator/ILike.js /** * Find Options Operator. * Example: { someField: ILike("%SOME string%") } */ function ILike(value) { return new FindOperator["a" /* FindOperator */]("ilike", value); } //# sourceMappingURL=ILike.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/find-options/operator/Like.js /** * Find Options Operator. * Example: { someField: Like("%some sting%") } */ function Like(value) { return new FindOperator["a" /* FindOperator */]("like", value); } //# sourceMappingURL=Like.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/find-options/operator/MoreThan.js /** * Find Options Operator. * Example: { someField: MoreThan(10) } */ function MoreThan(value) { return new FindOperator["a" /* FindOperator */]("moreThan", value); } //# sourceMappingURL=MoreThan.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/find-options/operator/MoreThanOrEqual.js /** * Find Options Operator. * Example: { someField: MoreThanOrEqual(10) } */ function MoreThanOrEqual(value) { return new FindOperator["a" /* FindOperator */]("moreThanOrEqual", value); } //# sourceMappingURL=MoreThanOrEqual.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/find-options/operator/Not.js /** * Find Options Operator. * Used to negotiate expression. * Example: { title: not("hello") } will return entities where title not equal to "hello". */ function Not(value) { return new FindOperator["a" /* FindOperator */]("not", value); } //# sourceMappingURL=Not.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/find-options/operator/Raw.js function Raw(valueOrSqlGenerator, sqlGeneratorParameters) { if (typeof valueOrSqlGenerator !== 'function') { return new FindOperator["a" /* FindOperator */]("raw", valueOrSqlGenerator, false); } return new FindOperator["a" /* FindOperator */]("raw", [], true, true, valueOrSqlGenerator, sqlGeneratorParameters); } //# sourceMappingURL=Raw.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/find-options/FindConditions.js //# sourceMappingURL=FindConditions.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/find-options/FindManyOptions.js //# sourceMappingURL=FindManyOptions.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/find-options/FindOneOptions.js //# sourceMappingURL=FindOneOptions.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/find-options/FindOperatorType.js //# sourceMappingURL=FindOperatorType.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/find-options/JoinOptions.js //# sourceMappingURL=JoinOptions.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/find-options/OrderByCondition.js //# sourceMappingURL=OrderByCondition.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/logger/Logger.js //# sourceMappingURL=Logger.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/logger/LoggerOptions.js //# sourceMappingURL=LoggerOptions.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/repository/BaseEntity.js /** * Base abstract entity for all entities, used in ActiveRecord patterns. */ var BaseEntity_BaseEntity = /** @class */ (function () { function BaseEntity() { } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Checks if entity has an id. * If entity composite compose ids, it will check them all. */ BaseEntity.prototype.hasId = function () { return this.constructor.getRepository().hasId(this); }; /** * Saves current entity in the database. * If entity does not exist in the database then inserts, otherwise updates. */ BaseEntity.prototype.save = function (options) { return this.constructor.getRepository().save(this, options); }; /** * Removes current entity from the database. */ BaseEntity.prototype.remove = function (options) { return this.constructor.getRepository().remove(this, options); }; /** * Records the delete date of current entity. */ BaseEntity.prototype.softRemove = function (options) { return this.constructor.getRepository().softRemove(this, options); }; /** * Recovers a given entity in the database. */ BaseEntity.prototype.recover = function (options) { return this.constructor.getRepository().recover(this, options); }; /** * Reloads entity data from the database. */ BaseEntity.prototype.reload = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var base, newestEntity; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: base = this.constructor; return [4 /*yield*/, base.getRepository().findOneOrFail(base.getId(this))]; case 1: newestEntity = _a.sent(); ObjectUtils["a" /* ObjectUtils */].assign(this, newestEntity); return [2 /*return*/]; } }); }); }; // ------------------------------------------------------------------------- // Public Static Methods // ------------------------------------------------------------------------- /** * Sets connection to be used by entity. */ BaseEntity.useConnection = function (connection) { this.usedConnection = connection; }; /** * Gets current entity's Repository. */ BaseEntity.getRepository = function () { var connection = this.usedConnection || getConnection(); return connection.getRepository(this); }; Object.defineProperty(BaseEntity, "target", { /** * Returns object that is managed by this repository. * If this repository manages entity from schema, * then it returns a name of that schema instead. */ get: function () { return this.getRepository().target; }, enumerable: false, configurable: true }); /** * Checks entity has an id. * If entity composite compose ids, it will check them all. */ BaseEntity.hasId = function (entity) { return this.getRepository().hasId(entity); }; /** * Gets entity mixed id. */ BaseEntity.getId = function (entity) { return this.getRepository().getId(entity); }; /** * Creates a new query builder that can be used to build a sql query. */ BaseEntity.createQueryBuilder = function (alias) { return this.getRepository().createQueryBuilder(alias); }; /** * Creates a new entity instance and copies all entity properties from this object into a new entity. * Note that it copies only properties that present in entity schema. */ BaseEntity.create = function (entityOrEntities) { return this.getRepository().create(entityOrEntities); }; /** * Merges multiple entities (or entity-like objects) into a given entity. */ BaseEntity.merge = function (mergeIntoEntity) { var _a; var entityLikes = []; for (var _i = 1; _i < arguments.length; _i++) { entityLikes[_i - 1] = arguments[_i]; } return (_a = this.getRepository()).merge.apply(_a, Object(tslib_es6["f" /* __spreadArray */])([mergeIntoEntity], Object(tslib_es6["e" /* __read */])(entityLikes))); }; /** * Creates a new entity from the given plain javascript object. If entity already exist in the database, then * it loads it (and everything related to it), replaces all values with the new ones from the given object * and returns this new entity. This new entity is actually a loaded from the db entity with all properties * replaced from the new object. * * Note that given entity-like object must have an entity id / primary key to find entity by. * Returns undefined if entity with given id was not found. */ BaseEntity.preload = function (entityLike) { return this.getRepository().preload(entityLike); }; /** * Saves one or many given entities. */ BaseEntity.save = function (entityOrEntities, options) { return this.getRepository().save(entityOrEntities, options); }; /** * Removes one or many given entities. */ BaseEntity.remove = function (entityOrEntities, options) { return this.getRepository().remove(entityOrEntities, options); }; /** * Records the delete date of one or many given entities. */ BaseEntity.softRemove = function (entityOrEntities, options) { return this.getRepository().softRemove(entityOrEntities, options); }; /** * Inserts a given entity into the database. * Unlike save method executes a primitive operation without cascades, relations and other operations included. * Executes fast and efficient INSERT query. * Does not check if entity exist in the database, so query will fail if duplicate entity is being inserted. */ BaseEntity.insert = function (entity, options) { return this.getRepository().insert(entity, options); }; /** * Updates entity partially. Entity can be found by a given conditions. * Unlike save method executes a primitive operation without cascades, relations and other operations included. * Executes fast and efficient UPDATE query. * Does not check if entity exist in the database. */ BaseEntity.update = function (criteria, partialEntity, options) { return this.getRepository().update(criteria, partialEntity, options); }; /** * Deletes entities by a given criteria. * Unlike remove method executes a primitive operation without cascades, relations and other operations included. * Executes fast and efficient DELETE query. * Does not check if entity exist in the database. */ BaseEntity.delete = function (criteria, options) { return this.getRepository().delete(criteria, options); }; /** * Counts entities that match given find options or conditions. */ BaseEntity.count = function (optionsOrConditions) { return this.getRepository().count(optionsOrConditions); }; /** * Finds entities that match given find options or conditions. */ BaseEntity.find = function (optionsOrConditions) { return this.getRepository().find(optionsOrConditions); }; /** * Finds entities that match given find options or conditions. * Also counts all entities that match given conditions, * but ignores pagination settings (from and take options). */ BaseEntity.findAndCount = function (optionsOrConditions) { return this.getRepository().findAndCount(optionsOrConditions); }; /** * Finds entities by ids. * Optionally find options can be applied. */ BaseEntity.findByIds = function (ids, optionsOrConditions) { return this.getRepository().findByIds(ids, optionsOrConditions); }; /** * Finds first entity that matches given conditions. */ BaseEntity.findOne = function (optionsOrConditions, maybeOptions) { return this.getRepository().findOne(optionsOrConditions, maybeOptions); }; /** * Finds first entity that matches given conditions. */ BaseEntity.findOneOrFail = function (optionsOrConditions, maybeOptions) { return this.getRepository().findOneOrFail(optionsOrConditions, maybeOptions); }; /** * Executes a raw SQL query and returns a raw database results. * Raw query execution is supported only by relational databases (MongoDB is not supported). */ BaseEntity.query = function (query, parameters) { return this.getRepository().query(query, parameters); }; /** * Clears all the data from the given table/collection (truncates/drops it). */ BaseEntity.clear = function () { return this.getRepository().clear(); }; return BaseEntity; }()); //# sourceMappingURL=BaseEntity.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/repository/RemoveOptions.js //# sourceMappingURL=RemoveOptions.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/repository/SaveOptions.js //# sourceMappingURL=SaveOptions.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/driver/mongodb/typings.js //# sourceMappingURL=typings.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/driver/types/DatabaseType.js //# sourceMappingURL=DatabaseType.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/driver/types/ReplicationMode.js //# sourceMappingURL=ReplicationMode.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/QueryBuilder.js + 2 modules var QueryBuilder = __webpack_require__(40); // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/DeleteQueryBuilder.js var DeleteQueryBuilder = __webpack_require__(196); // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/InsertQueryBuilder.js var InsertQueryBuilder = __webpack_require__(194); // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/UpdateQueryBuilder.js var UpdateQueryBuilder = __webpack_require__(195); // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/RelationQueryBuilder.js + 2 modules var RelationQueryBuilder = __webpack_require__(206); // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/Brackets.js var Brackets = __webpack_require__(155); // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/result/InsertResult.js var InsertResult = __webpack_require__(131); // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/result/UpdateResult.js var UpdateResult = __webpack_require__(115); // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/result/DeleteResult.js var DeleteResult = __webpack_require__(158); // CONCATENATED MODULE: ./node_modules/typeorm/browser/index.js /*! */ // ------------------------------------------------------------------------- // Commonly Used exports // ------------------------------------------------------------------------- // ------------------------------------------------------------------------- // Deprecated // ------------------------------------------------------------------------- // ------------------------------------------------------------------------- // Commonly used functionality // ------------------------------------------------------------------------- /** * Gets metadata args storage. */ function getMetadataArgsStorage() { // we should store metadata storage in a global variable otherwise it brings too much problems // one of the problem is that if any entity (or any other) will be imported before consumer will call // useContainer method with his own container implementation, that entity will be registered in the // old old container (default one post probably) and consumer will his entity. // calling useContainer before he imports any entity (or any other) is not always convenient. // another reason is that when we run migrations typeorm is being called from a global package // and it may load entities which register decorators in typeorm of local package // this leads to impossibility of usage of entities in migrations and cli related operations var globalScope = BrowserPlatformTools["a" /* PlatformTools */].getGlobalVariable(); if (!globalScope.typeormMetadataArgsStorage) globalScope.typeormMetadataArgsStorage = new MetadataArgsStorage_MetadataArgsStorage(); return globalScope.typeormMetadataArgsStorage; } /** * Reads connection options stored in ormconfig configuration file. */ function getConnectionOptions(connectionName) { if (connectionName === void 0) { connectionName = "default"; } return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, new BrowserConnectionOptionsReaderDummy_ConnectionOptionsReader().get(connectionName)]; }); }); } /** * Gets a ConnectionManager which creates connections. */ function getConnectionManager() { return getFromContainer(ConnectionManager_ConnectionManager); } /** * Creates a new connection and registers it in the manager. * * If connection options were not specified, then it will try to create connection automatically, * based on content of ormconfig (json/js/yml/xml/env) file or environment variables. * Only one connection from ormconfig will be created (name "default" or connection without name). */ function createConnection(optionsOrName) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var connectionName, options, _a; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: connectionName = typeof optionsOrName === "string" ? optionsOrName : "default"; if (!(optionsOrName instanceof Object)) return [3 /*break*/, 1]; _a = optionsOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, getConnectionOptions(connectionName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: options = _a; return [2 /*return*/, getConnectionManager().create(options).connect()]; } }); }); } /** * Creates new connections and registers them in the manager. * * If connection options were not specified, then it will try to create connection automatically, * based on content of ormconfig (json/js/yml/xml/env) file or environment variables. * All connections from the ormconfig will be created. */ function createConnections(options) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var connections; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (!!options) return [3 /*break*/, 2]; return [4 /*yield*/, new BrowserConnectionOptionsReaderDummy_ConnectionOptionsReader().all()]; case 1: options = _a.sent(); _a.label = 2; case 2: connections = options.map(function (options) { return getConnectionManager().create(options); }); return [2 /*return*/, Promise.all(connections.map(function (connection) { return connection.connect(); }))]; } }); }); } /** * Gets connection from the connection manager. * If connection name wasn't specified, then "default" connection will be retrieved. */ function getConnection(connectionName) { if (connectionName === void 0) { connectionName = "default"; } return getConnectionManager().get(connectionName); } /** * Gets entity manager from the connection. * If connection name wasn't specified, then "default" connection will be retrieved. */ function getManager(connectionName) { if (connectionName === void 0) { connectionName = "default"; } return getConnectionManager().get(connectionName).manager; } /** * Gets MongoDB entity manager from the connection. * If connection name wasn't specified, then "default" connection will be retrieved. */ function getMongoManager(connectionName) { if (connectionName === void 0) { connectionName = "default"; } return getConnectionManager().get(connectionName).manager; } /** * Gets Sqljs entity manager from connection name. * "default" connection is used, when no name is specified. * Only works when Sqljs driver is used. */ function getSqljsManager(connectionName) { if (connectionName === void 0) { connectionName = "default"; } return getConnectionManager().get(connectionName).manager; } /** * Gets repository for the given entity class. */ function getRepository(entityClass, connectionName) { if (connectionName === void 0) { connectionName = "default"; } return getConnectionManager().get(connectionName).getRepository(entityClass); } /** * Gets tree repository for the given entity class. */ function getTreeRepository(entityClass, connectionName) { if (connectionName === void 0) { connectionName = "default"; } return getConnectionManager().get(connectionName).getTreeRepository(entityClass); } /** * Gets tree repository for the given entity class. */ function getCustomRepository(customRepository, connectionName) { if (connectionName === void 0) { connectionName = "default"; } return getConnectionManager().get(connectionName).getCustomRepository(customRepository); } /** * Gets mongodb repository for the given entity class or name. */ function getMongoRepository(entityClass, connectionName) { if (connectionName === void 0) { connectionName = "default"; } return getConnectionManager().get(connectionName).getMongoRepository(entityClass); } /** * Creates a new query builder. */ function createQueryBuilder(entityClass, alias, connectionName) { if (connectionName === void 0) { connectionName = "default"; } if (entityClass) { return getRepository(entityClass, connectionName).createQueryBuilder(alias); } return getConnection(connectionName).createQueryBuilder(); } //# sourceMappingURL=index.js.map /***/ }), /* 48 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TableForeignKey; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Foreign key from the database stored in this class. */ var TableForeignKey = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function TableForeignKey(options) { /** * Column names which included by this foreign key. */ this.columnNames = []; /** * Column names which included by this foreign key. */ this.referencedColumnNames = []; this.name = options.name; this.columnNames = options.columnNames; this.referencedColumnNames = options.referencedColumnNames; this.referencedTableName = options.referencedTableName; this.onDelete = options.onDelete; this.onUpdate = options.onUpdate; this.deferrable = options.deferrable; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Creates a new copy of this foreign key with exactly same properties. */ TableForeignKey.prototype.clone = function () { return new TableForeignKey({ name: this.name, columnNames: Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __spreadArray */ "f"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(this.columnNames)), referencedColumnNames: Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __spreadArray */ "f"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(this.referencedColumnNames)), referencedTableName: this.referencedTableName, onDelete: this.onDelete, onUpdate: this.onUpdate, deferrable: this.deferrable, }); }; // ------------------------------------------------------------------------- // Static Methods // ------------------------------------------------------------------------- /** * Creates a new table foreign key from the given foreign key metadata. */ TableForeignKey.create = function (metadata) { return new TableForeignKey({ name: metadata.name, columnNames: metadata.columnNames, referencedColumnNames: metadata.referencedColumnNames, referencedTableName: metadata.referencedTablePath, onDelete: metadata.onDelete, onUpdate: metadata.onUpdate, deferrable: metadata.deferrable, }); }; return TableForeignKey; }()); //# sourceMappingURL=TableForeignKey.js.map /***/ }), /* 49 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return camelCase; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return snakeCase; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return titleCase; }); /* unused harmony export abbreviate */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return shorten; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return hash; }); /* harmony import */ var sha_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(283); /* harmony import */ var sha_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(sha_js__WEBPACK_IMPORTED_MODULE_0__); /** * Converts string into camelCase. * * @see http://stackoverflow.com/questions/2970525/converting-any-string-into-camel-case */ function camelCase(str, firstCapital) { if (firstCapital === void 0) { firstCapital = false; } return str.replace(/^([A-Z])|[\s-_](\w)/g, function (match, p1, p2, offset) { if (firstCapital === true && offset === 0) return p1; if (p2) return p2.toUpperCase(); return p1.toLowerCase(); }); } /** * Converts string into snake_case. * * @see https://regex101.com/r/QeSm2I/1 */ function snakeCase(str) { return str.replace(/(?:([a-z])([A-Z]))|(?:((?!^)[A-Z])([a-z]))/g, "$1_$3$2$4").toLowerCase(); } /** * Converts string into Title Case. * * @see http://stackoverflow.com/questions/196972/convert-string-to-title-case-with-javascript */ function titleCase(str) { return str.replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }); } /** * Builds abbreviated string from given string; */ function abbreviate(str, abbrLettersCount) { if (abbrLettersCount === void 0) { abbrLettersCount = 1; } var words = str.replace(/([a-z\xE0-\xFF])([A-Z\xC0\xDF])/g, "$1 $2").split(" "); return words.reduce(function (res, word) { res += word.substr(0, abbrLettersCount); return res; }, ""); } /** * Shorten a given `input`. Useful for RDBMS imposing a limit on the * maximum length of aliases and column names in SQL queries. * * @param input String to be shortened. * @param options Default to `4` for segments length, `2` for terms length, `'__'` as a separator. * * @return Shortened `input`. * * @example * // returns: "UsShCa__orde__mark__dire" * shorten('UserShoppingCart__order__market__director') * * // returns: "cat_wit_ver_lon_nam_pos_wit_ver_lon_nam_pos_wit_ver_lon_nam" * shorten( * 'category_with_very_long_name_posts_with_very_long_name_post_with_very_long_name', * { separator: '_', segmentLength: 3 } * ) * * // equals: UsShCa__orde__mark_market_id * `${shorten('UserShoppingCart__order__market')}_market_id` */ function shorten(input, options) { if (options === void 0) { options = {}; } var _a = options.segmentLength, segmentLength = _a === void 0 ? 4 : _a, _b = options.separator, separator = _b === void 0 ? "__" : _b, _c = options.termLength, termLength = _c === void 0 ? 2 : _c; var segments = input.split(separator); var shortSegments = segments.reduce(function (acc, val) { // split the given segment into many terms based on an eventual camel cased name var segmentTerms = val.replace(/([a-z\xE0-\xFF])([A-Z\xC0-\xDF])/g, "$1 $2").split(" "); // "OrderItemList" becomes "OrItLi", while "company" becomes "comp" var length = segmentTerms.length > 1 ? termLength : segmentLength; var shortSegment = segmentTerms.map(function (term) { return term.substr(0, length); }).join(""); acc.push(shortSegment); return acc; }, []); return shortSegments.join(separator); } /** * Returns a hashed input. * * @param input String to be hashed. * @param options.length Optionally, shorten the output to desired length. */ function hash(input, options) { if (options === void 0) { options = {}; } var hashFunction = sha_js__WEBPACK_IMPORTED_MODULE_0___default()("sha256"); hashFunction.update(input, "utf8"); var hashedInput = hashFunction.digest("hex"); if (options.length) { return hashedInput.slice(0, options.length); } return hashedInput; } //# sourceMappingURL=StringUtils.js.map /***/ }), /* 50 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return QueryBuilderUtils; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Helper utility functions for QueryBuilder. */ var QueryBuilderUtils = /** @class */ (function () { function QueryBuilderUtils() { } /** * Checks if given value is a string representation of alias property, * e.g. "post.category" or "post.id". */ QueryBuilderUtils.isAliasProperty = function (str) { // alias property must be a string and must have a dot separator if (typeof str !== "string" || str.indexOf(".") === -1) return false; // extra alias and its property relation var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(str.split("."), 2), aliasName = _a[0], propertyName = _a[1]; // todo: what about relations in embedded? if (!aliasName || !propertyName) return false; // alias and property must be represented in a special format // const aliasNameRegexp = /^[a-zA-Z0-9_-]+$/; // if (!aliasNameRegexp.test(aliasName) || !aliasNameRegexp.test(propertyName)) // return false; // make sure string is not a subquery if (str.indexOf("(") !== -1 || str.indexOf(")") !== -1) return false; return true; }; return QueryBuilderUtils; }()); //# sourceMappingURL=QueryBuilderUtils.js.map /***/ }), /* 51 */ /***/ (function(module, exports) { var hasOwnProperty = {}.hasOwnProperty; module.exports = function (it, key) { return hasOwnProperty.call(it, key); }; /***/ }), /* 52 */ /***/ (function(module, exports, __webpack_require__) { var dP = __webpack_require__(29); var createDesc = __webpack_require__(87); module.exports = __webpack_require__(28) ? function (object, key, value) { return dP.f(object, key, createDesc(1, value)); } : function (object, key, value) { object[key] = value; return object; }; /***/ }), /* 53 */ /***/ (function(module, exports, __webpack_require__) { // to indexed object, toObject with fallback for non-array-like ES3 strings var IObject = __webpack_require__(122); var defined = __webpack_require__(76); module.exports = function (it) { return IObject(defined(it)); }; /***/ }), /* 54 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } Object.defineProperty(exports, "__esModule", { value: true }); exports.ViewInflater = void 0; var client_1 = __webpack_require__(147); var shared_1 = __webpack_require__(17); var DataManager_1 = __webpack_require__(59); /** * Singleton-Klasse genutzt zum laden von Views */ var ViewInflater = /*#__PURE__*/function () { function ViewInflater() { _classCallCheck(this, ViewInflater); this.loadingPromises = {}; } /** * Statische Funktion, um die Singleton-Instanz zu holen * * @returns {ViewInflater} */ _createClass(ViewInflater, [{ key: "load", value: /** * Lädt asynchron eine View anhand einer URL und lädt ebenso alle child-views * * Extra nicht async, damit Promise sofort in LoadingPromise hinzugefügt werden kann * * @param viewUrl * @param parentUrls * @returns {*} */ function load(viewUrl, parentUrls) { var _this = this; //Kopiere Elemente, damit originale parentURLS nicht verändert werden parentUrls = shared_1.JsonHelper.deepCopy(shared_1.Helper.nonNull(parentUrls, [])); //Detektiert eine Schleife in den Views if (parentUrls.indexOf(viewUrl) !== -1) { //Return Promise.reject => da View vorher schon einmal geladen, wird das Resultat ebenfalls in loadingPromises gespeichert für diese View return Promise.reject("views are in a circuit! cannot resolve view for url " + parentUrls[0] + "! url " + viewUrl + " is in stack before!"); } parentUrls.push(viewUrl); //Shortcut, falls die View schon geladen wurde. Muss nach Schleifenüberprüfung aufgerufen werden if (shared_1.Helper.isNotNull(this.loadingPromises[viewUrl])) { return this.loadingPromises[viewUrl].then(function (view) { return view.cloneNode(true); }); } var t; var resultPromise = Promise.resolve(t); if (viewUrl instanceof Element) { resultPromise = Promise.resolve(viewUrl); } else { resultPromise = DataManager_1.DataManager.loadAsset(viewUrl).then(function (htmlText) { var doc = new DOMParser().parseFromString(htmlText, "text/html"); //Parsing hat nicht geklappt, also per innerHTML if (shared_1.Helper.isNull(doc)) { doc = document.implementation.createHTMLDocument(''); doc.body.innerHTML = htmlText; } //Wrappe Elemente mit einem Span var spanElem = document.createElement("span"); spanElem.classList.add("injected-span"); return ViewInflater.moveChildren(doc.body, spanElem); }); } this.loadingPromises[viewUrl] = resultPromise.then(function (parentElement) { var promises = []; var childViews = parentElement.querySelectorAll("[data-view]"); //lade Kinder-Views childViews.forEach(function (childView) { promises.push(ViewInflater.getInstance().load(childView.dataset["view"], parentUrls).then(function (element) { childView.replaceWith(element); ViewInflater.replaceWithChildren(element); })); }); return Promise.all(promises).then(function () { return parentElement; }); }).catch(function (e) { console.error(e); _this.loadingPromises[viewUrl] = null; throw e; }); return this.loadingPromises[viewUrl].then(function (view) { return view.cloneNode(true); }); } /** * Statische Funktion, um Elemente aus einem String zu kreieren * * @param string * @returns {NodeListOf} */ }], [{ key: "getInstance", value: function getInstance() { if (shared_1.Helper.isNull(ViewInflater.instance)) { ViewInflater.instance = new ViewInflater(); } return ViewInflater.instance; } }, { key: "inflateElementsFromString", value: function inflateElementsFromString(string) { var template = document.createElement('template'); template.innerHTML = string; return template.content.childNodes; } /** * Kreiert ein Ladesymbol. Evtl entfernen * * @returns {HTMLDivElement} */ }, { key: "createLoadingSymbol", value: function createLoadingSymbol(loaderClass) { var svgNS = "http://www.w3.org/2000/svg"; var loader = document.createElement("div"); loader.classList.add('loader'); //LoaderClass darf nicht leer sein, da sonst HTML einen Felher schmeißt if (loaderClass) { loader.classList.add(loaderClass); } var svg = document.createElementNS(svgNS, "svg"); svg.setAttribute('viewBox', "0 0 32 32"); svg.setAttribute("width", "32"); svg.setAttribute("height", "32"); var circle = document.createElementNS(svgNS, "circle"); circle.setAttribute("class", "spinner"); circle.setAttribute("cx", "16"); circle.setAttribute("cy", "16"); circle.setAttribute("r", "14"); circle.setAttribute("fill", "none"); svg.appendChild(circle); loader.appendChild(svg); // let loader = document.createElement("div"); // loader.appendChild(document.createTextNode("LOADING...")); return loader; } /** * Moves the child-Nodes from one element to another * @param from * @param to * @returns {*} */ }, { key: "moveChildren", value: function moveChildren(from, to) { return client_1.ViewHelper.moveChildren(from, to); } /** * Ersetzt ein Element durch seine Kinder (entfernt das Element ohne die Kinder zu entfernen) * @param element */ }, { key: "replaceWithChildren", value: function replaceWithChildren(element) { var children = []; //Zwischenspeichern der Children, da removeChild die forEach-Schleife durcheinander bringt element.childNodes.forEach(function (child) { children.push(child); }); var parent = element.parentElement; children.forEach(function (child) { element.removeChild(child); parent.insertBefore(child, element); }); element.remove(); } }]); return ViewInflater; }(); exports.ViewInflater = ViewInflater; ViewInflater.instance = null; /***/ }), /* 55 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Broadcaster; }); /** * Broadcaster provides a helper methods to broadcast events to the subscribers. */ var Broadcaster = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function Broadcaster(queryRunner) { this.queryRunner = queryRunner; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Broadcasts "BEFORE_INSERT" event. * Before insert event is executed before entity is being inserted to the database for the first time. * All subscribers and entity listeners who listened to this event will be executed at this point. * Subscribers and entity listeners can return promises, it will wait until they are resolved. * * Note: this method has a performance-optimized code organization, do not change code structure. */ Broadcaster.prototype.broadcastBeforeInsertEvent = function (result, metadata, entity) { var _this = this; if (entity && metadata.beforeInsertListeners.length) { metadata.beforeInsertListeners.forEach(function (listener) { if (listener.isAllowed(entity)) { var executionResult = listener.execute(entity); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } if (this.queryRunner.connection.subscribers.length) { this.queryRunner.connection.subscribers.forEach(function (subscriber) { if (_this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.beforeInsert) { var executionResult = subscriber.beforeInsert({ connection: _this.queryRunner.connection, queryRunner: _this.queryRunner, manager: _this.queryRunner.manager, entity: entity, metadata: metadata }); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } }; /** * Broadcasts "BEFORE_UPDATE" event. * Before update event is executed before entity is being updated in the database. * All subscribers and entity listeners who listened to this event will be executed at this point. * Subscribers and entity listeners can return promises, it will wait until they are resolved. * * Note: this method has a performance-optimized code organization, do not change code structure. */ Broadcaster.prototype.broadcastBeforeUpdateEvent = function (result, metadata, entity, databaseEntity, updatedColumns, updatedRelations) { var _this = this; if (entity && metadata.beforeUpdateListeners.length) { metadata.beforeUpdateListeners.forEach(function (listener) { if (listener.isAllowed(entity)) { var executionResult = listener.execute(entity); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } if (this.queryRunner.connection.subscribers.length) { this.queryRunner.connection.subscribers.forEach(function (subscriber) { if (_this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.beforeUpdate) { var executionResult = subscriber.beforeUpdate({ connection: _this.queryRunner.connection, queryRunner: _this.queryRunner, manager: _this.queryRunner.manager, entity: entity, metadata: metadata, databaseEntity: databaseEntity, updatedColumns: updatedColumns || [], updatedRelations: updatedRelations || [] }); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } }; /** * Broadcasts "BEFORE_REMOVE" event. * Before remove event is executed before entity is being removed from the database. * All subscribers and entity listeners who listened to this event will be executed at this point. * Subscribers and entity listeners can return promises, it will wait until they are resolved. * * Note: this method has a performance-optimized code organization, do not change code structure. */ Broadcaster.prototype.broadcastBeforeRemoveEvent = function (result, metadata, entity, databaseEntity) { var _this = this; if (entity && metadata.beforeRemoveListeners.length) { metadata.beforeRemoveListeners.forEach(function (listener) { if (listener.isAllowed(entity)) { var executionResult = listener.execute(entity); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } if (this.queryRunner.connection.subscribers.length) { this.queryRunner.connection.subscribers.forEach(function (subscriber) { if (_this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.beforeRemove) { var executionResult = subscriber.beforeRemove({ connection: _this.queryRunner.connection, queryRunner: _this.queryRunner, manager: _this.queryRunner.manager, entity: entity, metadata: metadata, databaseEntity: databaseEntity, entityId: metadata.getEntityIdMixedMap(databaseEntity) }); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } }; /** * Broadcasts "AFTER_INSERT" event. * After insert event is executed after entity is being persisted to the database for the first time. * All subscribers and entity listeners who listened to this event will be executed at this point. * Subscribers and entity listeners can return promises, it will wait until they are resolved. * * Note: this method has a performance-optimized code organization, do not change code structure. */ Broadcaster.prototype.broadcastAfterInsertEvent = function (result, metadata, entity) { var _this = this; if (entity && metadata.afterInsertListeners.length) { metadata.afterInsertListeners.forEach(function (listener) { if (listener.isAllowed(entity)) { var executionResult = listener.execute(entity); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } if (this.queryRunner.connection.subscribers.length) { this.queryRunner.connection.subscribers.forEach(function (subscriber) { if (_this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.afterInsert) { var executionResult = subscriber.afterInsert({ connection: _this.queryRunner.connection, queryRunner: _this.queryRunner, manager: _this.queryRunner.manager, entity: entity, metadata: metadata }); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } }; /** * Broadcasts "BEFORE_TRANSACTION_START" event. */ Broadcaster.prototype.broadcastBeforeTransactionStartEvent = function (result) { var _this = this; if (this.queryRunner.connection.subscribers.length) { this.queryRunner.connection.subscribers.forEach(function (subscriber) { if (subscriber.beforeTransactionStart) { var executionResult = subscriber.beforeTransactionStart({ connection: _this.queryRunner.connection, queryRunner: _this.queryRunner, manager: _this.queryRunner.manager, }); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } }; /** * Broadcasts "AFTER_TRANSACTION_START" event. */ Broadcaster.prototype.broadcastAfterTransactionStartEvent = function (result) { var _this = this; if (this.queryRunner.connection.subscribers.length) { this.queryRunner.connection.subscribers.forEach(function (subscriber) { if (subscriber.afterTransactionStart) { var executionResult = subscriber.afterTransactionStart({ connection: _this.queryRunner.connection, queryRunner: _this.queryRunner, manager: _this.queryRunner.manager, }); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } }; /** * Broadcasts "BEFORE_TRANSACTION_COMMIT" event. */ Broadcaster.prototype.broadcastBeforeTransactionCommitEvent = function (result) { var _this = this; if (this.queryRunner.connection.subscribers.length) { this.queryRunner.connection.subscribers.forEach(function (subscriber) { if (subscriber.beforeTransactionCommit) { var executionResult = subscriber.beforeTransactionCommit({ connection: _this.queryRunner.connection, queryRunner: _this.queryRunner, manager: _this.queryRunner.manager, }); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } }; /** * Broadcasts "AFTER_TRANSACTION_COMMIT" event. */ Broadcaster.prototype.broadcastAfterTransactionCommitEvent = function (result) { var _this = this; if (this.queryRunner.connection.subscribers.length) { this.queryRunner.connection.subscribers.forEach(function (subscriber) { if (subscriber.afterTransactionCommit) { var executionResult = subscriber.afterTransactionCommit({ connection: _this.queryRunner.connection, queryRunner: _this.queryRunner, manager: _this.queryRunner.manager, }); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } }; /** * Broadcasts "BEFORE_TRANSACTION_ROLLBACK" event. */ Broadcaster.prototype.broadcastBeforeTransactionRollbackEvent = function (result) { var _this = this; if (this.queryRunner.connection.subscribers.length) { this.queryRunner.connection.subscribers.forEach(function (subscriber) { if (subscriber.beforeTransactionRollback) { var executionResult = subscriber.beforeTransactionRollback({ connection: _this.queryRunner.connection, queryRunner: _this.queryRunner, manager: _this.queryRunner.manager, }); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } }; /** * Broadcasts "AFTER_TRANSACTION_ROLLBACK" event. */ Broadcaster.prototype.broadcastAfterTransactionRollbackEvent = function (result) { var _this = this; if (this.queryRunner.connection.subscribers.length) { this.queryRunner.connection.subscribers.forEach(function (subscriber) { if (subscriber.afterTransactionRollback) { var executionResult = subscriber.afterTransactionRollback({ connection: _this.queryRunner.connection, queryRunner: _this.queryRunner, manager: _this.queryRunner.manager, }); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } }; /** * Broadcasts "AFTER_UPDATE" event. * After update event is executed after entity is being updated in the database. * All subscribers and entity listeners who listened to this event will be executed at this point. * Subscribers and entity listeners can return promises, it will wait until they are resolved. * * Note: this method has a performance-optimized code organization, do not change code structure. */ Broadcaster.prototype.broadcastAfterUpdateEvent = function (result, metadata, entity, databaseEntity, updatedColumns, updatedRelations) { var _this = this; if (entity && metadata.afterUpdateListeners.length) { metadata.afterUpdateListeners.forEach(function (listener) { if (listener.isAllowed(entity)) { var executionResult = listener.execute(entity); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } if (this.queryRunner.connection.subscribers.length) { this.queryRunner.connection.subscribers.forEach(function (subscriber) { if (_this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.afterUpdate) { var executionResult = subscriber.afterUpdate({ connection: _this.queryRunner.connection, queryRunner: _this.queryRunner, manager: _this.queryRunner.manager, entity: entity, metadata: metadata, databaseEntity: databaseEntity, updatedColumns: updatedColumns || [], updatedRelations: updatedRelations || [] }); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } }; /** * Broadcasts "AFTER_REMOVE" event. * After remove event is executed after entity is being removed from the database. * All subscribers and entity listeners who listened to this event will be executed at this point. * Subscribers and entity listeners can return promises, it will wait until they are resolved. * * Note: this method has a performance-optimized code organization, do not change code structure. */ Broadcaster.prototype.broadcastAfterRemoveEvent = function (result, metadata, entity, databaseEntity) { var _this = this; if (entity && metadata.afterRemoveListeners.length) { metadata.afterRemoveListeners.forEach(function (listener) { if (listener.isAllowed(entity)) { var executionResult = listener.execute(entity); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } if (this.queryRunner.connection.subscribers.length) { this.queryRunner.connection.subscribers.forEach(function (subscriber) { if (_this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.afterRemove) { var executionResult = subscriber.afterRemove({ connection: _this.queryRunner.connection, queryRunner: _this.queryRunner, manager: _this.queryRunner.manager, entity: entity, metadata: metadata, databaseEntity: databaseEntity, entityId: metadata.getEntityIdMixedMap(databaseEntity) }); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } }; /** * Broadcasts "AFTER_LOAD" event for all given entities, and their sub-entities. * After load event is executed after entity has been loaded from the database. * All subscribers and entity listeners who listened to this event will be executed at this point. * Subscribers and entity listeners can return promises, it will wait until they are resolved. * * Note: this method has a performance-optimized code organization, do not change code structure. */ Broadcaster.prototype.broadcastLoadEventsForAll = function (result, metadata, entities) { var _this = this; entities.forEach(function (entity) { if (entity instanceof Promise) // todo: check why need this? return; // collect load events for all children entities that were loaded with the main entity if (metadata.relations.length) { metadata.relations.forEach(function (relation) { // in lazy relations we cannot simply access to entity property because it will cause a getter and a database query if (relation.isLazy && !entity.hasOwnProperty(relation.propertyName)) return; var value = relation.getEntityValue(entity); if (value instanceof Object) _this.broadcastLoadEventsForAll(result, relation.inverseEntityMetadata, Array.isArray(value) ? value : [value]); }); } if (metadata.afterLoadListeners.length) { metadata.afterLoadListeners.forEach(function (listener) { if (listener.isAllowed(entity)) { var executionResult = listener.execute(entity); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } if (_this.queryRunner.connection.subscribers.length) { _this.queryRunner.connection.subscribers.forEach(function (subscriber) { if (_this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.afterLoad) { var executionResult = subscriber.afterLoad(entity, { connection: _this.queryRunner.connection, queryRunner: _this.queryRunner, manager: _this.queryRunner.manager, entity: entity, metadata: metadata }); if (executionResult instanceof Promise) result.promises.push(executionResult); result.count++; } }); } }); }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Checks if subscriber's methods can be executed by checking if its don't listen to the particular entity, * or listens our entity. */ Broadcaster.prototype.isAllowedSubscriber = function (subscriber, target) { return !subscriber.listenTo || !subscriber.listenTo() || subscriber.listenTo() === Object || subscriber.listenTo() === target || subscriber.listenTo().isPrototypeOf(target); }; return Broadcaster; }()); //# sourceMappingURL=Broadcaster.js.map /***/ }), /* 56 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Matomo = void 0; var js_helper_1 = __webpack_require__(17); var NativeStoragePromise_1 = __webpack_require__(42); var Matomo = /*#__PURE__*/function () { function Matomo() { _classCallCheck(this, Matomo); } _createClass(Matomo, null, [{ key: "init", value: function init() { var _this = this; Matomo.isTrackingPromise = new Promise(function (resolve) { return __awaiter(_this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var shouldTrack; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return NativeStoragePromise_1.NativeStoragePromise.getItem(Matomo.LOCAL_STORAGE_KEY, "1"); case 2: shouldTrack = _context.sent; if (!js_helper_1.Helper.isNull(shouldTrack)) { _context.next = 11; break; } _context.next = 6; return Matomo._askIsTracking(); case 6: shouldTrack = _context.sent; _context.next = 9; return NativeStoragePromise_1.NativeStoragePromise.setItem(Matomo.LOCAL_STORAGE_KEY, shouldTrack); case 9: _context.next = 14; break; case 11: shouldTrack = shouldTrack === "1"; _context.next = 14; return Matomo.setTrack(shouldTrack); case 14: resolve(shouldTrack); case 15: case "end": return _context.stop(); } } }, _callee); })); }); Matomo.isTrackingPromise.then(function () { Matomo.push(['trackPageView'], true); Matomo.push(['enableLinkTracking'], true); Matomo.push(['setTrackerUrl', Matomo.TRACK_SITE + '/piwik.php'], true); Matomo.push(['setSiteId', Matomo.SIDE_ID + ""], true); var d = document, g = d.createElement('script'), s = d.getElementsByTagName('head')[0]; g.type = 'text/javascript'; g.async = true; g.defer = true; g.src = Matomo.TRACK_SITE + '/piwik.js'; s.appendChild(g); }); } }, { key: "update", value: function update(title) { if (js_helper_1.Helper.nonNull(Matomo.currentUrl)) { Matomo.push(['setReferrerUrl', Matomo.currentUrl]); } Matomo.currentUrl = window.location.pathname + window.location.search; Matomo.push(['setCustomUrl', Matomo.currentUrl]); Matomo.push(['setDocumentTitle', title]); // remove all previously assigned custom variables, requires Matomo (formerly Piwik) 3.0.2 Matomo.push(['deleteCustomVariables', 'page']); Matomo.push(['setGenerationTimeMs', 0]); Matomo.push(['trackPageView']); // make Matomo aware of newly added content var content = document.getElementById('site-content'); Matomo.push(['MediaAnalytics::scanForMedia', content]); Matomo.push(['FormAnalytics::scanForForms', content]); Matomo.push(['trackContentImpressionsWithinNode', content]); Matomo.push(['enableLinkTracking']); } }, { key: "_askIsTracking", value: function _askIsTracking() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: Matomo.isTrackingPromise = new Promise(function (resolve) { Matomo.push([function () { resolve(!this["isUserOptedOut"]()); }]); }); return _context2.abrupt("return", Matomo.isTrackingPromise); case 2: case "end": return _context2.stop(); } } }, _callee2); })); } }, { key: "query", value: function query(method) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: return _context3.abrupt("return", fetch(Matomo.TRACK_SITE + Matomo.BASE_PATH + method, { "mode": "cors", "credentials": "include" }).then(function (res) { return res.text(); }).then(function (text) { return new window["DOMParser"]().parseFromString(text, "text/xml"); })); case 1: case "end": return _context3.stop(); } } }, _callee3); })); } }, { key: "getTrackingPromise", value: function getTrackingPromise() { return Matomo.isTrackingPromise; } }, { key: "setTrack", value: function setTrack(shouldTrack) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: Matomo.isTrackingPromise = Promise.resolve(shouldTrack); _context4.next = 3; return NativeStoragePromise_1.NativeStoragePromise.setItem(Matomo.LOCAL_STORAGE_KEY, shouldTrack === true ? "1" : "0"); case 3: if (!shouldTrack) { _context4.next = 8; break; } _context4.next = 6; return Matomo.push(["forgetUserOptOut"], true); case 6: _context4.next = 10; break; case 8: _context4.next = 10; return Matomo.push(["optUserOut"], true); case 10: case "end": return _context4.stop(); } } }, _callee4); })); } }, { key: "trackEvent", value: function trackEvent(event, name, label, value) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var ev; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: ev = ["trackEvent", event, name]; if (js_helper_1.Helper.isNotNull(label)) { ev.push(label); } if (js_helper_1.Helper.isNotNull(value) && !isNaN(parseFloat(value)) && isFinite(value)) { ev.push(value); } return _context5.abrupt("return", this.push(ev)); case 4: case "end": return _context5.stop(); } } }, _callee5, this); })); } //TODO Matomo }, { key: "push", value: function push(arr, force) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: case "end": return _context6.stop(); } } }, _callee6); })); } }]); return Matomo; }(); exports.Matomo = Matomo; Matomo.LOCAL_STORAGE_KEY = "matomoShouldTrack"; Matomo.TRACK_SITE = ""; Matomo.BASE_PATH = ""; Matomo.SIDE_ID = "1"; Matomo.currentUrl = null; Matomo.isTrackingPromise = null; /***/ }), /* 57 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return View; }); /** * View in the database represented in this class. */ var View = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function View(options) { if (options) { this.name = options.name; this.expression = options.expression; this.materialized = !!options.materialized; } } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Clones this table to a new table with all properties cloned. */ View.prototype.clone = function () { return new View({ name: this.name, expression: this.expression, materialized: this.materialized, }); }; // ------------------------------------------------------------------------- // Static Methods // ------------------------------------------------------------------------- /** * Creates view from a given entity metadata. */ View.create = function (entityMetadata, driver) { var options = { name: driver.buildTableName(entityMetadata.tableName, entityMetadata.schema, entityMetadata.database), expression: entityMetadata.expression, materialized: entityMetadata.tableMetadataArgs.materialized }; return new View(options); }; return View; }()); //# sourceMappingURL=View.js.map /***/ }), /* 58 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var fails = __webpack_require__(12); module.exports = function (method, arg) { return !!method && fails(function () { // eslint-disable-next-line no-useless-call arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null); }); }; /***/ }), /* 59 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DataManager = void 0; var Helper_1 = __webpack_require__(15); var NotOnlineError_1 = __webpack_require__(254); /** * Ein Manager, welches das Laden von Resourcen übernimmt. */ var DataManager = /*#__PURE__*/function () { function DataManager() { _classCallCheck(this, DataManager); } _createClass(DataManager, null, [{ key: "fetch", value: /** * Diese Funktion sollte anstelle von dem nativen "fetch" verwendet werden! * Das native Fetch kann keine file://, welches von Cordova unter Android (und whs iOS) verwendet wird * Daher wird heir auf XMLHttpRequest zurückgegriffen * * @param url * @param useArrayBuffer * @returns {Promise<*>} */ function fetch(url, useArrayBuffer) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: return _context.abrupt("return", new Promise(function (resolve, reject) { var xhr = new XMLHttpRequest(); useArrayBuffer = Helper_1.Helper.nonNull(useArrayBuffer, false); if (useArrayBuffer) { xhr.responseType = "arraybuffer"; } xhr.onload = function () { resolve(new Response(useArrayBuffer ? xhr.response : xhr.responseText, { status: xhr.status === 0 ? 200 : xhr.status })); }; xhr.onerror = function (e) { console.error(e); debugger; reject(new NotOnlineError_1.NotOnlineError("not-online", url)); }; xhr.open('GET', url); //set headers //set headers Object.keys(DataManager._additionalHeaders).forEach(function (header) { xhr.setRequestHeader(header, DataManager._additionalHeaders[header]); }); xhr.send(null); }).then(function (res) { if (DataManager.onlineCallback) { DataManager.onlineCallback(true); } return res; }).catch(function (e) { if (DataManager.onlineCallback) { DataManager.onlineCallback(false); } throw e; })); case 1: case "end": return _context.stop(); } } }, _callee); })); } }, { key: "fetchBlob", value: function fetchBlob(url) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", new Promise(function (resolve, reject) { var xhr = new XMLHttpRequest(); xhr.onload = function (e) { resolve(xhr.response); }; xhr.onerror = function (e) { console.error(e); debugger; reject(new NotOnlineError_1.NotOnlineError("not-online", url)); }; xhr.open('GET', url); xhr.responseType = "blob"; //set headers //set headers Object.keys(DataManager._additionalHeaders).forEach(function (header) { xhr.setRequestHeader(header, DataManager._additionalHeaders[header]); }); xhr.send(null); }).then(function (res) { if (DataManager.onlineCallback) { DataManager.onlineCallback(true); } return res; }).catch(function (e) { if (DataManager.onlineCallback) { DataManager.onlineCallback(false); } throw e; })); case 1: case "end": return _context2.stop(); } } }, _callee2); })); } /** * Vereinfachung von Laden von Resourcen. * Lädt per GET die angegebene URL und gibt diese als JSON oder Text zurück * * @param url * @param format * @param useBasePath * @returns {Promise<* | void>} */ }, { key: "load", value: function load(url, format, useBasePath) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: format = Helper_1.Helper.nonNull(format, true); if (format === true) { format = "json"; } else if (format === false) { format = "text"; } else if (format !== "json" && format !== "text") { format = "raw"; } useBasePath = Helper_1.Helper.nonNull(useBasePath, true); if (useBasePath === true) { useBasePath = DataManager._basePath; } else if (typeof useBasePath !== "string") { useBasePath = ""; } url = DataManager.basePath(url, useBasePath); return _context3.abrupt("return", DataManager.fetch(url, format === "raw").catch(function (e) { if (DataManager.onlineCallback) { DataManager.onlineCallback(false); } throw new NotOnlineError_1.NotOnlineError(e, url); }).then(function (res) { if (DataManager.onlineCallback) { DataManager.onlineCallback(true); } if (format === "json") { return res.json(); } else if (format === "text") { return res.text(); } else { return res; } })); case 6: case "end": return _context3.stop(); } } }, _callee3); })); } /** * Vereinfachung von Laden von Resourcen. * Lädt per GET das angegebene Asset und gibt diese als JSON oder Text zurück * * @param url * @param format * @returns {Promise<* | void>} */ }, { key: "loadAsset", value: function loadAsset(url, format) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var assetPath; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: assetPath = DataManager._assetBasePath; if (!url.startsWith("/") && assetPath.length > 0 && !assetPath.endsWith("/")) { assetPath += "/"; } return _context4.abrupt("return", this.load(url, Helper_1.Helper.nonNull(format, "text"), assetPath)); case 3: case "end": return _context4.stop(); } } }, _callee4, this); })); } /** * Wandelt ein Key-Value-Objekt in einen QueryString um * * @param values * @return {string} */ }, { key: "buildQuery", value: function buildQuery(values) { var queryStrings = []; for (var k in values) { queryStrings.push(encodeURIComponent(k) + "=" + encodeURIComponent(values[k])); } return "?" + queryStrings.join("&"); } /** * Wandelt ein Key-Value-Objekt in einen QueryString um * * @param values * @return {string} */ }, { key: "buildQueryWithoutNullValues", value: function buildQueryWithoutNullValues(values) { var queryValues = {}; for (var k in values) { if (Helper_1.Helper.isNotNull(values[k])) { queryValues[k] = values[k]; } } return this.buildQuery(queryValues); } }, { key: "send", value: function send(url, params) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var headers; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: url = DataManager.basePath(url); headers = {}; if (!(params instanceof FormData) && _typeof(params) === "object") { params = JSON.stringify(params); headers = { "Content-Type": "application/json" }; } Object.keys(DataManager._additionalHeaders).forEach(function (header) { headers[header] = DataManager._additionalHeaders[header]; }); return _context5.abrupt("return", fetch(url, { "credentials": "same-origin", "method": "POST", "headers": headers, "body": params }).then(function (res) { return res.json(); }).catch(function (e) { debugger; console.error("error", e); if (DataManager.onlineCallback) { DataManager.onlineCallback(false); } return { "success": false, "errors": ["not-online"] }; })); case 5: case "end": return _context5.stop(); } } }, _callee5); })); } }, { key: "basePath", value: function basePath(url, _basePath) { _basePath = Helper_1.Helper.nonNull(_basePath, DataManager._basePath); return _basePath + (url ? url : ""); } }, { key: "setHeader", value: function setHeader(header, value) { DataManager._additionalHeaders[header] = value; } }]); return DataManager; }(); exports.DataManager = DataManager; DataManager.onlineCallback = null; DataManager._additionalHeaders = {}; DataManager._basePath = ""; DataManager._assetBasePath = ""; /***/ }), /* 60 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TableExclusion; }); /** * Database's table exclusion constraint stored in this class. */ var TableExclusion = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function TableExclusion(options) { this.name = options.name; this.expression = options.expression; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Creates a new copy of this constraint with exactly same properties. */ TableExclusion.prototype.clone = function () { return new TableExclusion({ name: this.name, expression: this.expression, }); }; // ------------------------------------------------------------------------- // Static Methods // ------------------------------------------------------------------------- /** * Creates exclusions from the exclusion metadata object. */ TableExclusion.create = function (exclusionMetadata) { return new TableExclusion({ name: exclusionMetadata.name, expression: exclusionMetadata.expression }); }; return TableExclusion; }()); //# sourceMappingURL=TableExclusion.js.map /***/ }), /* 61 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ApplyValueTransformers; }); var ApplyValueTransformers = /** @class */ (function () { function ApplyValueTransformers() { } ApplyValueTransformers.transformFrom = function (transformer, databaseValue) { if (Array.isArray(transformer)) { var reverseTransformers = transformer.slice().reverse(); return reverseTransformers.reduce(function (transformedValue, _transformer) { return _transformer.from(transformedValue); }, databaseValue); } return transformer.from(databaseValue); }; ApplyValueTransformers.transformTo = function (transformer, entityValue) { if (Array.isArray(transformer)) { return transformer.reduce(function (transformedValue, _transformer) { return _transformer.to(transformedValue); }, entityValue); } return transformer.to(entityValue); }; return ApplyValueTransformers; }()); //# sourceMappingURL=ApplyValueTransformers.js.map /***/ }), /* 62 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return RandomGenerator; }); var RandomGenerator = /** @class */ (function () { function RandomGenerator() { } /** * discuss at: http://locutus.io/php/sha1/ * original by: Webtoolkit.info (http://www.webtoolkit.info/) * improved by: Michael White (http://getsprink.com) * improved by: Kevin van Zonneveld (http://kvz.io) * input by: Brett Zamir (http://brett-zamir.me) * note 1: Keep in mind that in accordance with PHP, the whole string is buffered and then * note 1: hashed. If available, we'd recommend using Node's native crypto modules directly * note 1: in a steaming fashion for faster and more efficient hashing * example 1: sha1('Kevin van Zonneveld') * returns 1: '54916d2e62f65b3afa6e192e6a601cdbe5cb5897' */ RandomGenerator.sha1 = function (str) { var _rotLeft = function (n, s) { var t4 = (n << s) | (n >>> (32 - s)); return t4; }; var _cvtHex = function (val) { var str = ""; var i; var v; for (i = 7; i >= 0; i--) { v = (val >>> (i * 4)) & 0x0f; str += v.toString(16); } return str; }; var blockstart; var i, j; var W = new Array(80); var H0 = 0x67452301; var H1 = 0xEFCDAB89; var H2 = 0x98BADCFE; var H3 = 0x10325476; var H4 = 0xC3D2E1F0; var A, B, C, D, E; var temp; // utf8_encode str = /*unescape*/ (encodeURIComponent(str)); var strLen = str.length; var wordArray = []; for (i = 0; i < strLen - 3; i += 4) { j = str.charCodeAt(i) << 24 | str.charCodeAt(i + 1) << 16 | str.charCodeAt(i + 2) << 8 | str.charCodeAt(i + 3); wordArray.push(j); } switch (strLen % 4) { case 0: i = 0x080000000; break; case 1: i = str.charCodeAt(strLen - 1) << 24 | 0x0800000; break; case 2: i = str.charCodeAt(strLen - 2) << 24 | str.charCodeAt(strLen - 1) << 16 | 0x08000; break; case 3: i = str.charCodeAt(strLen - 3) << 24 | str.charCodeAt(strLen - 2) << 16 | str.charCodeAt(strLen - 1) << 8 | 0x80; break; } wordArray.push(i); while ((wordArray.length % 16) !== 14) { wordArray.push(0); } wordArray.push(strLen >>> 29); wordArray.push((strLen << 3) & 0x0ffffffff); for (blockstart = 0; blockstart < wordArray.length; blockstart += 16) { for (i = 0; i < 16; i++) { W[i] = wordArray[blockstart + i]; } for (i = 16; i <= 79; i++) { W[i] = _rotLeft(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1); } A = H0; B = H1; C = H2; D = H3; E = H4; for (i = 0; i <= 19; i++) { temp = (_rotLeft(A, 5) + ((B & C) | (~B & D)) + E + W[i] + 0x5A827999) & 0x0ffffffff; E = D; D = C; C = _rotLeft(B, 30); B = A; A = temp; } for (i = 20; i <= 39; i++) { temp = (_rotLeft(A, 5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff; E = D; D = C; C = _rotLeft(B, 30); B = A; A = temp; } for (i = 40; i <= 59; i++) { temp = (_rotLeft(A, 5) + ((B & C) | (B & D) | (C & D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff; E = D; D = C; C = _rotLeft(B, 30); B = A; A = temp; } for (i = 60; i <= 79; i++) { temp = (_rotLeft(A, 5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff; E = D; D = C; C = _rotLeft(B, 30); B = A; A = temp; } H0 = (H0 + A) & 0x0ffffffff; H1 = (H1 + B) & 0x0ffffffff; H2 = (H2 + C) & 0x0ffffffff; H3 = (H3 + D) & 0x0ffffffff; H4 = (H4 + E) & 0x0ffffffff; } temp = _cvtHex(H0) + _cvtHex(H1) + _cvtHex(H2) + _cvtHex(H3) + _cvtHex(H4); return temp.toLowerCase(); }; /** * RFC4122 compliant UUID v4 generator. */ RandomGenerator.uuid4 = function () { return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) { var r = Math.random() * 16 | 0, v = c === "x" ? r : (r & 0x3 | 0x8); return v.toString(16); }); }; return RandomGenerator; }()); //# sourceMappingURL=RandomGenerator.js.map /***/ }), /* 63 */ /***/ (function(module, exports, __webpack_require__) { // optional / simple context binding var aFunction = __webpack_require__(64); module.exports = function (fn, that, length) { aFunction(fn); if (that === undefined) return fn; switch (length) { case 1: return function (a) { return fn.call(that, a); }; case 2: return function (a, b) { return fn.call(that, a, b); }; case 3: return function (a, b, c) { return fn.call(that, a, b, c); }; } return function (/* ...args */) { return fn.apply(that, arguments); }; }; /***/ }), /* 64 */ /***/ (function(module, exports) { module.exports = function (it) { if (typeof it != 'function') throw TypeError(it + ' is not a function!'); return it; }; /***/ }), /* 65 */ /***/ (function(module, exports) { // 7.1.4 ToInteger var ceil = Math.ceil; var floor = Math.floor; module.exports = function (it) { return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); }; /***/ }), /* 66 */ /***/ (function(module, exports, __webpack_require__) { var pIE = __webpack_require__(123); var createDesc = __webpack_require__(87); var toIObject = __webpack_require__(53); var toPrimitive = __webpack_require__(82); var has = __webpack_require__(51); var IE8_DOM_DEFINE = __webpack_require__(213); var gOPD = Object.getOwnPropertyDescriptor; exports.f = __webpack_require__(28) ? gOPD : function getOwnPropertyDescriptor(O, P) { O = toIObject(O); P = toPrimitive(P, true); if (IE8_DOM_DEFINE) try { return gOPD(O, P); } catch (e) { /* empty */ } if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); }; /***/ }), /* 67 */ /***/ (function(module, exports, __webpack_require__) { // most Object methods by ES6 should accept primitives var $export = __webpack_require__(3); var core = __webpack_require__(26); var fails = __webpack_require__(12); module.exports = function (KEY, exec) { var fn = (core.Object || {})[KEY] || Object[KEY]; var exp = {}; exp[KEY] = exec(fn); $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp); }; /***/ }), /* 68 */ /***/ (function(module, exports, __webpack_require__) { // 0 -> Array#forEach // 1 -> Array#map // 2 -> Array#filter // 3 -> Array#some // 4 -> Array#every // 5 -> Array#find // 6 -> Array#findIndex var ctx = __webpack_require__(63); var IObject = __webpack_require__(122); var toObject = __webpack_require__(36); var toLength = __webpack_require__(23); var asc = __webpack_require__(229); module.exports = function (TYPE, $create) { var IS_MAP = TYPE == 1; var IS_FILTER = TYPE == 2; var IS_SOME = TYPE == 3; var IS_EVERY = TYPE == 4; var IS_FIND_INDEX = TYPE == 6; var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; var create = $create || asc; return function ($this, callbackfn, that) { var O = toObject($this); var self = IObject(O); var f = ctx(callbackfn, that, 3); var length = toLength(self.length); var index = 0; var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; var val, res; for (;length > index; index++) if (NO_HOLES || index in self) { val = self[index]; res = f(val, index, O); if (TYPE) { if (IS_MAP) result[index] = res; // map else if (res) switch (TYPE) { case 3: return true; // some case 5: return val; // find case 6: return index; // findIndex case 2: result.push(val); // filter } else if (IS_EVERY) return false; // every } } return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; }; }; /***/ }), /* 69 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MenuSite = void 0; var TemplateSite_1 = __webpack_require__(198); var defaultMenuTemplate = __webpack_require__(511); var NavbarFragment_1 = __webpack_require__(161); var Context_1 = __webpack_require__(111); var Helper_1 = __webpack_require__(15); /** * Seite benutzt das menuTemplate, welches das ContainerTemplate includiert. * * Außerdem beinhaltet die MenuSite ein NavbarFragment, wo Menüelemente hinzugefügt werden können */ var MenuSite = /*#__PURE__*/function (_TemplateSite_1$Templ) { _inherits(MenuSite, _TemplateSite_1$Templ); var _super2 = _createSuper(MenuSite); /** * Constructor für eine MenuSite * * @param siteManager * @param view * @param menuTemplate */ function MenuSite(siteManager, view, menuTemplate) { var _this; _classCallCheck(this, MenuSite); _this = _super2.call(this, siteManager, view, Helper_1.Helper.nonNull(menuTemplate, defaultMenuTemplate), "#site-content"); _this._navbarFragment = new NavbarFragment_1.NavbarFragment(_assertThisInitialized(_this)); _this.addFragment("#navbar-fragment", _this._navbarFragment); return _this; } _createClass(MenuSite, [{ key: "getNavbarFragment", value: function getNavbarFragment() { return this._navbarFragment; } /** * Während des onConstructs werden die Menüelemente hinzugefügt => aufrufen des onCreateMenu * * @param constructParameters * @returns {Promise} */ }, { key: "onConstruct", value: function onConstruct(constructParameters) { var _this2 = this; var _super = Object.create(null, { onConstruct: { get: function get() { return _get(_getPrototypeOf(MenuSite.prototype), "onConstruct", _this2); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var res; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return _super.onConstruct.call(this, constructParameters); case 2: res = _context.sent; this.onCreateMenu(this._navbarFragment); return _context.abrupt("return", res); case 5: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "onMenuPressed", value: function onMenuPressed() { this._navbarFragment.openMenu(); } }, { key: "onViewLoaded", value: function onViewLoaded() { var _this3 = this; var _super = Object.create(null, { onViewLoaded: { get: function get() { return _get(_getPrototypeOf(MenuSite.prototype), "onViewLoaded", _this3); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var res; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: res = _super.onViewLoaded.call(this); this._navbarFragment.setScrollWidget(this.findBy("#main-content-container")); return _context2.abrupt("return", res); case 3: case "end": return _context2.stop(); } } }, _callee2, this); })); } /** * Überschreibt updateTtle, um Element in der Statusbar zu setzen * * @protected */ }, { key: "_updateTitle", value: function _updateTitle() { _get(_getPrototypeOf(MenuSite.prototype), "_updateTitle", this).call(this); if (this._title.element && this._state === Context_1.Context.STATE_RUNNING) { this._navbarFragment.setTitleElement(this._title.element); } } /** * Überschreiben durch Kinder-Klassen, um ein Menü zu erstellen * * @param {NavbarFragment} navbar */ }, { key: "onCreateMenu", value: function onCreateMenu(navbar) {} }]); return MenuSite; }(TemplateSite_1.TemplateSite); exports.MenuSite = MenuSite; /***/ }), /* 70 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TransactionAlreadyStartedError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Thrown when transaction is already started and user tries to run it again. */ var TransactionAlreadyStartedError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(TransactionAlreadyStartedError, _super); function TransactionAlreadyStartedError() { var _this = _super.call(this) || this; _this.name = "TransactionAlreadyStartedError"; Object.setPrototypeOf(_this, TransactionAlreadyStartedError.prototype); _this.message = "Transaction already started for the given connection, commit current transaction before starting a new one."; return _this; } return TransactionAlreadyStartedError; }(Error)); //# sourceMappingURL=TransactionAlreadyStartedError.js.map /***/ }), /* 71 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DriverPackageNotInstalledError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Thrown when required driver's package is not installed. */ var DriverPackageNotInstalledError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(DriverPackageNotInstalledError, _super); function DriverPackageNotInstalledError(driverName, packageName) { var _this = _super.call(this) || this; _this.name = "DriverPackageNotInstalledError"; Object.setPrototypeOf(_this, DriverPackageNotInstalledError.prototype); _this.message = driverName + " package has not been found installed. Try to install it: npm install " + packageName + " --save"; return _this; } return DriverPackageNotInstalledError; }(Error)); //# sourceMappingURL=DriverPackageNotInstalledError.js.map /***/ }), /* 72 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ReturningStatementNotSupportedError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Thrown when user tries to build a query with RETURNING / OUTPUT statement, * but used database does not support it. */ var ReturningStatementNotSupportedError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(ReturningStatementNotSupportedError, _super); function ReturningStatementNotSupportedError() { var _this = _super.call(this) || this; _this.name = "ReturningStatementNotSupportedError"; Object.setPrototypeOf(_this, ReturningStatementNotSupportedError.prototype); _this.message = "OUTPUT or RETURNING clause only supported by Microsoft SQL Server or PostgreSQL databases."; return _this; } return ReturningStatementNotSupportedError; }(Error)); //# sourceMappingURL=ReturningStatementNotSupportedError.js.map /***/ }), /* 73 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AbstractSqliteQueryRunner; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var _error_TransactionAlreadyStartedError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(70); /* harmony import */ var _error_TransactionNotStartedError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44); /* harmony import */ var _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(25); /* harmony import */ var _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(32); /* harmony import */ var _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5); /* harmony import */ var _schema_builder_table_TableIndex__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(38); /* harmony import */ var _schema_builder_table_TableForeignKey__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(48); /* harmony import */ var _schema_builder_view_View__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(57); /* harmony import */ var _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(8); /* harmony import */ var _Query__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(2); /* harmony import */ var _schema_builder_table_TableUnique__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(31); /* harmony import */ var _query_runner_BaseQueryRunner__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(163); /* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(6); /* harmony import */ var _schema_builder_table_TableCheck__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(43); /** * Runs queries on a single sqlite database connection. */ var AbstractSqliteQueryRunner = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(AbstractSqliteQueryRunner, _super); // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function AbstractSqliteQueryRunner() { return _super.call(this) || this; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Creates/uses database connection from the connection pool to perform further operations. * Returns obtained database connection. */ AbstractSqliteQueryRunner.prototype.connect = function () { return Promise.resolve(this.driver.databaseConnection); }; /** * Releases used database connection. * We just clear loaded tables and sql in memory, because sqlite do not support multiple connections thus query runners. */ AbstractSqliteQueryRunner.prototype.release = function () { this.loadedTables = []; this.clearSqlMemory(); return Promise.resolve(); }; /** * Starts transaction. */ AbstractSqliteQueryRunner.prototype.startTransaction = function (isolationLevel) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var beforeBroadcastResult, afterBroadcastResult; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: if (this.isTransactionActive) throw new _error_TransactionAlreadyStartedError__WEBPACK_IMPORTED_MODULE_1__[/* TransactionAlreadyStartedError */ "a"](); if (!isolationLevel) return [3 /*break*/, 4]; if (isolationLevel !== "READ UNCOMMITTED" && isolationLevel !== "SERIALIZABLE") { throw new Error("SQLite only supports SERIALIZABLE and READ UNCOMMITTED isolation"); } if (!(isolationLevel === "READ UNCOMMITTED")) return [3 /*break*/, 2]; return [4 /*yield*/, this.query("PRAGMA read_uncommitted = true")]; case 1: _a.sent(); return [3 /*break*/, 4]; case 2: return [4 /*yield*/, this.query("PRAGMA read_uncommitted = false")]; case 3: _a.sent(); _a.label = 4; case 4: beforeBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_9__[/* BroadcasterResult */ "a"](); this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult); if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 6]; return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)]; case 5: _a.sent(); _a.label = 6; case 6: this.isTransactionActive = true; return [4 /*yield*/, this.query("BEGIN TRANSACTION")]; case 7: _a.sent(); afterBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_9__[/* BroadcasterResult */ "a"](); this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult); if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 9]; return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)]; case 8: _a.sent(); _a.label = 9; case 9: return [2 /*return*/]; } }); }); }; /** * Commits transaction. * Error will be thrown if transaction was not started. */ AbstractSqliteQueryRunner.prototype.commitTransaction = function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var beforeBroadcastResult, afterBroadcastResult; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: if (!this.isTransactionActive) throw new _error_TransactionNotStartedError__WEBPACK_IMPORTED_MODULE_2__[/* TransactionNotStartedError */ "a"](); beforeBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_9__[/* BroadcasterResult */ "a"](); this.broadcaster.broadcastBeforeTransactionCommitEvent(beforeBroadcastResult); if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2]; return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)]; case 1: _a.sent(); _a.label = 2; case 2: return [4 /*yield*/, this.query("COMMIT")]; case 3: _a.sent(); this.isTransactionActive = false; afterBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_9__[/* BroadcasterResult */ "a"](); this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult); if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5]; return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)]; case 4: _a.sent(); _a.label = 5; case 5: return [2 /*return*/]; } }); }); }; /** * Rollbacks transaction. * Error will be thrown if transaction was not started. */ AbstractSqliteQueryRunner.prototype.rollbackTransaction = function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var beforeBroadcastResult, afterBroadcastResult; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: if (!this.isTransactionActive) throw new _error_TransactionNotStartedError__WEBPACK_IMPORTED_MODULE_2__[/* TransactionNotStartedError */ "a"](); beforeBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_9__[/* BroadcasterResult */ "a"](); this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult); if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2]; return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)]; case 1: _a.sent(); _a.label = 2; case 2: return [4 /*yield*/, this.query("ROLLBACK")]; case 3: _a.sent(); this.isTransactionActive = false; afterBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_9__[/* BroadcasterResult */ "a"](); this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult); if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5]; return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)]; case 4: _a.sent(); _a.label = 5; case 5: return [2 /*return*/]; } }); }); }; /** * Returns raw data stream. */ AbstractSqliteQueryRunner.prototype.stream = function (query, parameters, onEnd, onError) { throw new Error("Stream is not supported by sqlite driver."); }; /** * Returns all available database names including system databases. */ AbstractSqliteQueryRunner.prototype.getDatabases = function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { return [2 /*return*/, Promise.resolve([])]; }); }); }; /** * Returns all available schema names including system schemas. * If database parameter specified, returns schemas of that database. */ AbstractSqliteQueryRunner.prototype.getSchemas = function (database) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { return [2 /*return*/, Promise.resolve([])]; }); }); }; /** * Checks if database with the given name exist. */ AbstractSqliteQueryRunner.prototype.hasDatabase = function (database) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { return [2 /*return*/, Promise.resolve(false)]; }); }); }; /** * Checks if schema with the given name exist. */ AbstractSqliteQueryRunner.prototype.hasSchema = function (schema) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { throw new Error("This driver does not support table schemas"); }); }); }; /** * Checks if table with the given name exist in the database. */ AbstractSqliteQueryRunner.prototype.hasTable = function (tableOrName) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var tableName, sql, result; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: tableName = tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"] ? tableOrName.name : tableOrName; sql = "SELECT * FROM \"sqlite_master\" WHERE \"type\" = 'table' AND \"name\" = '" + tableName + "'"; return [4 /*yield*/, this.query(sql)]; case 1: result = _a.sent(); return [2 /*return*/, result.length ? true : false]; } }); }); }; /** * Checks if column with the given name exist in the given table. */ AbstractSqliteQueryRunner.prototype.hasColumn = function (tableOrName, columnName) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var tableName, sql, columns; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: tableName = tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"] ? tableOrName.name : tableOrName; sql = "PRAGMA table_info(\"" + tableName + "\")"; return [4 /*yield*/, this.query(sql)]; case 1: columns = _a.sent(); return [2 /*return*/, !!columns.find(function (column) { return column["name"] === columnName; })]; } }); }); }; /** * Creates a new database. */ AbstractSqliteQueryRunner.prototype.createDatabase = function (database, ifNotExist) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { return [2 /*return*/, Promise.resolve()]; }); }); }; /** * Drops database. */ AbstractSqliteQueryRunner.prototype.dropDatabase = function (database, ifExist) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { return [2 /*return*/, Promise.resolve()]; }); }); }; /** * Creates a new table schema. */ AbstractSqliteQueryRunner.prototype.createSchema = function (schema, ifNotExist) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { return [2 /*return*/, Promise.resolve()]; }); }); }; /** * Drops table schema. */ AbstractSqliteQueryRunner.prototype.dropSchema = function (schemaPath, ifExist) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { return [2 /*return*/, Promise.resolve()]; }); }); }; /** * Creates a new table. */ AbstractSqliteQueryRunner.prototype.createTable = function (table, ifNotExist, createForeignKeys, createIndices) { if (ifNotExist === void 0) { ifNotExist = false; } if (createForeignKeys === void 0) { createForeignKeys = true; } if (createIndices === void 0) { createIndices = true; } return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var upQueries, downQueries, isTableExist; var _this = this; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: upQueries = []; downQueries = []; if (!ifNotExist) return [3 /*break*/, 2]; return [4 /*yield*/, this.hasTable(table)]; case 1: isTableExist = _a.sent(); if (isTableExist) return [2 /*return*/, Promise.resolve()]; _a.label = 2; case 2: upQueries.push(this.createTableSql(table, createForeignKeys)); downQueries.push(this.dropTableSql(table)); if (createIndices) { table.indices.forEach(function (index) { // new index may be passed without name. In this case we generate index name manually. if (!index.name) index.name = _this.connection.namingStrategy.indexName(table.name, index.columnNames, index.where); upQueries.push(_this.createIndexSql(table, index)); downQueries.push(_this.dropIndexSql(index)); }); } return [4 /*yield*/, this.executeQueries(upQueries, downQueries)]; case 3: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Drops the table. */ AbstractSqliteQueryRunner.prototype.dropTable = function (tableOrName, ifExist, dropForeignKeys, dropIndices) { if (dropForeignKeys === void 0) { dropForeignKeys = true; } if (dropIndices === void 0) { dropIndices = true; } return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var isTableExist, createForeignKeys, table, _a, upQueries, downQueries; var _this = this; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!ifExist) return [3 /*break*/, 2]; return [4 /*yield*/, this.hasTable(tableOrName)]; case 1: isTableExist = _b.sent(); if (!isTableExist) return [2 /*return*/, Promise.resolve()]; _b.label = 2; case 2: createForeignKeys = dropForeignKeys; if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 3]; _a = tableOrName; return [3 /*break*/, 5]; case 3: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 4: _a = _b.sent(); _b.label = 5; case 5: table = _a; upQueries = []; downQueries = []; if (dropIndices) { table.indices.forEach(function (index) { upQueries.push(_this.dropIndexSql(index)); downQueries.push(_this.createIndexSql(table, index)); }); } upQueries.push(this.dropTableSql(table, ifExist)); downQueries.push(this.createTableSql(table, createForeignKeys)); return [4 /*yield*/, this.executeQueries(upQueries, downQueries)]; case 6: _b.sent(); return [2 /*return*/]; } }); }); }; /** * Creates a new view. */ AbstractSqliteQueryRunner.prototype.createView = function (view) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var upQueries, downQueries; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: upQueries = []; downQueries = []; upQueries.push(this.createViewSql(view)); upQueries.push(this.insertViewDefinitionSql(view)); downQueries.push(this.dropViewSql(view)); downQueries.push(this.deleteViewDefinitionSql(view)); return [4 /*yield*/, this.executeQueries(upQueries, downQueries)]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Drops the view. */ AbstractSqliteQueryRunner.prototype.dropView = function (target) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var viewName, view, upQueries, downQueries; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: viewName = target instanceof _schema_builder_view_View__WEBPACK_IMPORTED_MODULE_8__[/* View */ "a"] ? target.name : target; return [4 /*yield*/, this.getCachedView(viewName)]; case 1: view = _a.sent(); upQueries = []; downQueries = []; upQueries.push(this.deleteViewDefinitionSql(view)); upQueries.push(this.dropViewSql(view)); downQueries.push(this.insertViewDefinitionSql(view)); downQueries.push(this.createViewSql(view)); return [4 /*yield*/, this.executeQueries(upQueries, downQueries)]; case 2: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Renames the given table. */ AbstractSqliteQueryRunner.prototype.renameTable = function (oldTableOrName, newTableName) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var oldTable, _a, newTable, up, down; var _this = this; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(oldTableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = oldTableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(oldTableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: oldTable = _a; newTable = oldTable.clone(); newTable.name = newTableName; up = new _Query__WEBPACK_IMPORTED_MODULE_10__[/* Query */ "a"]("ALTER TABLE \"" + oldTable.name + "\" RENAME TO \"" + newTableName + "\""); down = new _Query__WEBPACK_IMPORTED_MODULE_10__[/* Query */ "a"]("ALTER TABLE \"" + newTableName + "\" RENAME TO \"" + oldTable.name + "\""); return [4 /*yield*/, this.executeQueries(up, down)]; case 4: _b.sent(); // rename old table; oldTable.name = newTable.name; // rename unique constraints newTable.uniques.forEach(function (unique) { unique.name = _this.connection.namingStrategy.uniqueConstraintName(newTable, unique.columnNames); }); // rename foreign key constraints newTable.foreignKeys.forEach(function (foreignKey) { foreignKey.name = _this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames); }); // rename indices newTable.indices.forEach(function (index) { index.name = _this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where); }); // recreate table with new constraint names return [4 /*yield*/, this.recreateTable(newTable, oldTable)]; case 5: // recreate table with new constraint names _b.sent(); return [2 /*return*/]; } }); }); }; /** * Creates a new column from the column in the table. */ AbstractSqliteQueryRunner.prototype.addColumn = function (tableOrName, column) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; return [2 /*return*/, this.addColumns(table, [column])]; } }); }); }; /** * Creates a new columns from the column in the table. */ AbstractSqliteQueryRunner.prototype.addColumns = function (tableOrName, columns) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a, changedTable; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; changedTable = table.clone(); columns.forEach(function (column) { return changedTable.addColumn(column); }); return [4 /*yield*/, this.recreateTable(changedTable, table)]; case 4: _b.sent(); return [2 /*return*/]; } }); }); }; /** * Renames column in the given table. */ AbstractSqliteQueryRunner.prototype.renameColumn = function (tableOrName, oldTableColumnOrName, newTableColumnOrName) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a, oldColumn, newColumn; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; oldColumn = oldTableColumnOrName instanceof _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_3__[/* TableColumn */ "a"] ? oldTableColumnOrName : table.columns.find(function (c) { return c.name === oldTableColumnOrName; }); if (!oldColumn) throw new Error("Column \"" + oldTableColumnOrName + "\" was not found in the \"" + table.name + "\" table."); newColumn = undefined; if (newTableColumnOrName instanceof _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_3__[/* TableColumn */ "a"]) { newColumn = newTableColumnOrName; } else { newColumn = oldColumn.clone(); newColumn.name = newTableColumnOrName; } return [2 /*return*/, this.changeColumn(table, oldColumn, newColumn)]; } }); }); }; /** * Changes a column in the table. */ AbstractSqliteQueryRunner.prototype.changeColumn = function (tableOrName, oldTableColumnOrName, newColumn) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a, oldColumn; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; oldColumn = oldTableColumnOrName instanceof _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_3__[/* TableColumn */ "a"] ? oldTableColumnOrName : table.columns.find(function (c) { return c.name === oldTableColumnOrName; }); if (!oldColumn) throw new Error("Column \"" + oldTableColumnOrName + "\" was not found in the \"" + table.name + "\" table."); return [4 /*yield*/, this.changeColumns(table, [{ oldColumn: oldColumn, newColumn: newColumn }])]; case 4: _b.sent(); return [2 /*return*/]; } }); }); }; /** * Changes a column in the table. * Changed column looses all its keys in the db. */ AbstractSqliteQueryRunner.prototype.changeColumns = function (tableOrName, changedColumns) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a, changedTable; var _this = this; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; changedTable = table.clone(); changedColumns.forEach(function (changedColumnSet) { if (changedColumnSet.newColumn.name !== changedColumnSet.oldColumn.name) { changedTable.findColumnUniques(changedColumnSet.oldColumn).forEach(function (unique) { unique.columnNames.splice(unique.columnNames.indexOf(changedColumnSet.oldColumn.name), 1); unique.columnNames.push(changedColumnSet.newColumn.name); unique.name = _this.connection.namingStrategy.uniqueConstraintName(changedTable, unique.columnNames); }); changedTable.findColumnForeignKeys(changedColumnSet.oldColumn).forEach(function (fk) { fk.columnNames.splice(fk.columnNames.indexOf(changedColumnSet.oldColumn.name), 1); fk.columnNames.push(changedColumnSet.newColumn.name); fk.name = _this.connection.namingStrategy.foreignKeyName(changedTable, fk.columnNames, fk.referencedTableName, fk.referencedColumnNames); }); changedTable.findColumnIndices(changedColumnSet.oldColumn).forEach(function (index) { index.columnNames.splice(index.columnNames.indexOf(changedColumnSet.oldColumn.name), 1); index.columnNames.push(changedColumnSet.newColumn.name); index.name = _this.connection.namingStrategy.indexName(changedTable, index.columnNames, index.where); }); } var originalColumn = changedTable.columns.find(function (column) { return column.name === changedColumnSet.oldColumn.name; }); if (originalColumn) changedTable.columns[changedTable.columns.indexOf(originalColumn)] = changedColumnSet.newColumn; }); return [4 /*yield*/, this.recreateTable(changedTable, table)]; case 4: _b.sent(); return [2 /*return*/]; } }); }); }; /** * Drops column in the table. */ AbstractSqliteQueryRunner.prototype.dropColumn = function (tableOrName, columnOrName) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a, column; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; column = columnOrName instanceof _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_3__[/* TableColumn */ "a"] ? columnOrName : table.findColumnByName(columnOrName); if (!column) throw new Error("Column \"" + columnOrName + "\" was not found in table \"" + table.name + "\""); return [4 /*yield*/, this.dropColumns(table, [column])]; case 4: _b.sent(); return [2 /*return*/]; } }); }); }; /** * Drops the columns in the table. */ AbstractSqliteQueryRunner.prototype.dropColumns = function (tableOrName, columns) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a, changedTable; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; changedTable = table.clone(); columns.forEach(function (column) { changedTable.removeColumn(column); changedTable.findColumnUniques(column).forEach(function (unique) { return changedTable.removeUniqueConstraint(unique); }); changedTable.findColumnIndices(column).forEach(function (index) { return changedTable.removeIndex(index); }); changedTable.findColumnForeignKeys(column).forEach(function (fk) { return changedTable.removeForeignKey(fk); }); }); return [4 /*yield*/, this.recreateTable(changedTable, table)]; case 4: _b.sent(); // remove column and its constraints from original table. columns.forEach(function (column) { table.removeColumn(column); table.findColumnUniques(column).forEach(function (unique) { return table.removeUniqueConstraint(unique); }); table.findColumnIndices(column).forEach(function (index) { return table.removeIndex(index); }); table.findColumnForeignKeys(column).forEach(function (fk) { return table.removeForeignKey(fk); }); }); return [2 /*return*/]; } }); }); }; /** * Creates a new primary key. */ AbstractSqliteQueryRunner.prototype.createPrimaryKey = function (tableOrName, columnNames) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a, changedTable; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; changedTable = table.clone(); changedTable.columns.forEach(function (column) { if (columnNames.find(function (columnName) { return columnName === column.name; })) column.isPrimary = true; }); return [4 /*yield*/, this.recreateTable(changedTable, table)]; case 4: _b.sent(); // mark columns as primary in original table table.columns.forEach(function (column) { if (columnNames.find(function (columnName) { return columnName === column.name; })) column.isPrimary = true; }); return [2 /*return*/]; } }); }); }; /** * Updates composite primary keys. */ AbstractSqliteQueryRunner.prototype.updatePrimaryKeys = function (tableOrName, columns) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, Promise.resolve()]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Drops a primary key. */ AbstractSqliteQueryRunner.prototype.dropPrimaryKey = function (tableOrName) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a, changedTable; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; changedTable = table.clone(); changedTable.primaryColumns.forEach(function (column) { column.isPrimary = false; }); return [4 /*yield*/, this.recreateTable(changedTable, table)]; case 4: _b.sent(); // mark primary columns as non-primary in original table table.primaryColumns.forEach(function (column) { column.isPrimary = false; }); return [2 /*return*/]; } }); }); }; /** * Creates a new unique constraint. */ AbstractSqliteQueryRunner.prototype.createUniqueConstraint = function (tableOrName, uniqueConstraint) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.createUniqueConstraints(tableOrName, [uniqueConstraint])]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Creates a new unique constraints. */ AbstractSqliteQueryRunner.prototype.createUniqueConstraints = function (tableOrName, uniqueConstraints) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a, changedTable; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; changedTable = table.clone(); uniqueConstraints.forEach(function (uniqueConstraint) { return changedTable.addUniqueConstraint(uniqueConstraint); }); return [4 /*yield*/, this.recreateTable(changedTable, table)]; case 4: _b.sent(); return [2 /*return*/]; } }); }); }; /** * Drops an unique constraint. */ AbstractSqliteQueryRunner.prototype.dropUniqueConstraint = function (tableOrName, uniqueOrName) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a, uniqueConstraint; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; uniqueConstraint = uniqueOrName instanceof _schema_builder_table_TableUnique__WEBPACK_IMPORTED_MODULE_11__[/* TableUnique */ "a"] ? uniqueOrName : table.uniques.find(function (u) { return u.name === uniqueOrName; }); if (!uniqueConstraint) throw new Error("Supplied unique constraint was not found in table " + table.name); return [4 /*yield*/, this.dropUniqueConstraints(table, [uniqueConstraint])]; case 4: _b.sent(); return [2 /*return*/]; } }); }); }; /** * Creates an unique constraints. */ AbstractSqliteQueryRunner.prototype.dropUniqueConstraints = function (tableOrName, uniqueConstraints) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a, changedTable; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; changedTable = table.clone(); uniqueConstraints.forEach(function (uniqueConstraint) { return changedTable.removeUniqueConstraint(uniqueConstraint); }); return [4 /*yield*/, this.recreateTable(changedTable, table)]; case 4: _b.sent(); return [2 /*return*/]; } }); }); }; /** * Creates new check constraint. */ AbstractSqliteQueryRunner.prototype.createCheckConstraint = function (tableOrName, checkConstraint) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.createCheckConstraints(tableOrName, [checkConstraint])]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Creates new check constraints. */ AbstractSqliteQueryRunner.prototype.createCheckConstraints = function (tableOrName, checkConstraints) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a, changedTable; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; changedTable = table.clone(); checkConstraints.forEach(function (checkConstraint) { return changedTable.addCheckConstraint(checkConstraint); }); return [4 /*yield*/, this.recreateTable(changedTable, table)]; case 4: _b.sent(); return [2 /*return*/]; } }); }); }; /** * Drops check constraint. */ AbstractSqliteQueryRunner.prototype.dropCheckConstraint = function (tableOrName, checkOrName) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a, checkConstraint; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; checkConstraint = checkOrName instanceof _schema_builder_table_TableCheck__WEBPACK_IMPORTED_MODULE_14__[/* TableCheck */ "a"] ? checkOrName : table.checks.find(function (c) { return c.name === checkOrName; }); if (!checkConstraint) throw new Error("Supplied check constraint was not found in table " + table.name); return [4 /*yield*/, this.dropCheckConstraints(table, [checkConstraint])]; case 4: _b.sent(); return [2 /*return*/]; } }); }); }; /** * Drops check constraints. */ AbstractSqliteQueryRunner.prototype.dropCheckConstraints = function (tableOrName, checkConstraints) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a, changedTable; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; changedTable = table.clone(); checkConstraints.forEach(function (checkConstraint) { return changedTable.removeCheckConstraint(checkConstraint); }); return [4 /*yield*/, this.recreateTable(changedTable, table)]; case 4: _b.sent(); return [2 /*return*/]; } }); }); }; /** * Creates a new exclusion constraint. */ AbstractSqliteQueryRunner.prototype.createExclusionConstraint = function (tableOrName, exclusionConstraint) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { throw new Error("Sqlite does not support exclusion constraints."); }); }); }; /** * Creates a new exclusion constraints. */ AbstractSqliteQueryRunner.prototype.createExclusionConstraints = function (tableOrName, exclusionConstraints) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { throw new Error("Sqlite does not support exclusion constraints."); }); }); }; /** * Drops exclusion constraint. */ AbstractSqliteQueryRunner.prototype.dropExclusionConstraint = function (tableOrName, exclusionOrName) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { throw new Error("Sqlite does not support exclusion constraints."); }); }); }; /** * Drops exclusion constraints. */ AbstractSqliteQueryRunner.prototype.dropExclusionConstraints = function (tableOrName, exclusionConstraints) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { throw new Error("Sqlite does not support exclusion constraints."); }); }); }; /** * Creates a new foreign key. */ AbstractSqliteQueryRunner.prototype.createForeignKey = function (tableOrName, foreignKey) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.createForeignKeys(tableOrName, [foreignKey])]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Creates a new foreign keys. */ AbstractSqliteQueryRunner.prototype.createForeignKeys = function (tableOrName, foreignKeys) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a, changedTable; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; changedTable = table.clone(); foreignKeys.forEach(function (foreignKey) { return changedTable.addForeignKey(foreignKey); }); return [4 /*yield*/, this.recreateTable(changedTable, table)]; case 4: _b.sent(); return [2 /*return*/]; } }); }); }; /** * Drops a foreign key from the table. */ AbstractSqliteQueryRunner.prototype.dropForeignKey = function (tableOrName, foreignKeyOrName) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a, foreignKey; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; foreignKey = foreignKeyOrName instanceof _schema_builder_table_TableForeignKey__WEBPACK_IMPORTED_MODULE_7__[/* TableForeignKey */ "a"] ? foreignKeyOrName : table.foreignKeys.find(function (fk) { return fk.name === foreignKeyOrName; }); if (!foreignKey) throw new Error("Supplied foreign key was not found in table " + table.name); return [4 /*yield*/, this.dropForeignKeys(tableOrName, [foreignKey])]; case 4: _b.sent(); return [2 /*return*/]; } }); }); }; /** * Drops a foreign keys from the table. */ AbstractSqliteQueryRunner.prototype.dropForeignKeys = function (tableOrName, foreignKeys) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a, changedTable; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; changedTable = table.clone(); foreignKeys.forEach(function (foreignKey) { return changedTable.removeForeignKey(foreignKey); }); return [4 /*yield*/, this.recreateTable(changedTable, table)]; case 4: _b.sent(); return [2 /*return*/]; } }); }); }; /** * Creates a new index. */ AbstractSqliteQueryRunner.prototype.createIndex = function (tableOrName, index) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a, up, down; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; // new index may be passed without name. In this case we generate index name manually. if (!index.name) index.name = this.connection.namingStrategy.indexName(table.name, index.columnNames, index.where); up = this.createIndexSql(table, index); down = this.dropIndexSql(index); return [4 /*yield*/, this.executeQueries(up, down)]; case 4: _b.sent(); table.addIndex(index); return [2 /*return*/]; } }); }); }; /** * Creates a new indices */ AbstractSqliteQueryRunner.prototype.createIndices = function (tableOrName, indices) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var promises; var _this = this; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: promises = indices.map(function (index) { return _this.createIndex(tableOrName, index); }); return [4 /*yield*/, Promise.all(promises)]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Drops an index from the table. */ AbstractSqliteQueryRunner.prototype.dropIndex = function (tableOrName, indexOrName) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var table, _a, index, up, down; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"])) return [3 /*break*/, 1]; _a = tableOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: table = _a; index = indexOrName instanceof _schema_builder_table_TableIndex__WEBPACK_IMPORTED_MODULE_6__[/* TableIndex */ "a"] ? indexOrName : table.indices.find(function (i) { return i.name === indexOrName; }); if (!index) throw new Error("Supplied index was not found in table " + table.name); up = this.dropIndexSql(index); down = this.createIndexSql(table, index); return [4 /*yield*/, this.executeQueries(up, down)]; case 4: _b.sent(); table.removeIndex(index); return [2 /*return*/]; } }); }); }; /** * Drops an indices from the table. */ AbstractSqliteQueryRunner.prototype.dropIndices = function (tableOrName, indices) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var promises; var _this = this; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: promises = indices.map(function (index) { return _this.dropIndex(tableOrName, index); }); return [4 /*yield*/, Promise.all(promises)]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Clears all table contents. * Note: this operation uses SQL's TRUNCATE query which cannot be reverted in transactions. */ AbstractSqliteQueryRunner.prototype.clearTable = function (tableName) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.query("DELETE FROM \"" + tableName + "\"")]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Removes all tables from the currently connected database. */ AbstractSqliteQueryRunner.prototype.clearDatabase = function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var selectViewDropsQuery, dropViewQueries, selectTableDropsQuery, dropTableQueries, error_1, rollbackError_1; var _this = this; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.query("PRAGMA foreign_keys = OFF;")]; case 1: _a.sent(); return [4 /*yield*/, this.startTransaction()]; case 2: _a.sent(); _a.label = 3; case 3: _a.trys.push([3, 9, 14, 16]); selectViewDropsQuery = "SELECT 'DROP VIEW \"' || name || '\";' as query FROM \"sqlite_master\" WHERE \"type\" = 'view'"; return [4 /*yield*/, this.query(selectViewDropsQuery)]; case 4: dropViewQueries = _a.sent(); return [4 /*yield*/, Promise.all(dropViewQueries.map(function (q) { return _this.query(q["query"]); }))]; case 5: _a.sent(); selectTableDropsQuery = "SELECT 'DROP TABLE \"' || name || '\";' as query FROM \"sqlite_master\" WHERE \"type\" = 'table' AND \"name\" != 'sqlite_sequence'"; return [4 /*yield*/, this.query(selectTableDropsQuery)]; case 6: dropTableQueries = _a.sent(); return [4 /*yield*/, Promise.all(dropTableQueries.map(function (q) { return _this.query(q["query"]); }))]; case 7: _a.sent(); return [4 /*yield*/, this.commitTransaction()]; case 8: _a.sent(); return [3 /*break*/, 16]; case 9: error_1 = _a.sent(); _a.label = 10; case 10: _a.trys.push([10, 12, , 13]); return [4 /*yield*/, this.rollbackTransaction()]; case 11: _a.sent(); return [3 /*break*/, 13]; case 12: rollbackError_1 = _a.sent(); return [3 /*break*/, 13]; case 13: throw error_1; case 14: return [4 /*yield*/, this.query("PRAGMA foreign_keys = ON;")]; case 15: _a.sent(); return [7 /*endfinally*/]; case 16: return [2 /*return*/]; } }); }); }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- AbstractSqliteQueryRunner.prototype.loadViews = function (viewNames) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var hasTable, viewNamesString, query, dbViews; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.hasTable(this.getTypeormMetadataTableName())]; case 1: hasTable = _a.sent(); if (!hasTable) return [2 /*return*/, Promise.resolve([])]; viewNamesString = viewNames.map(function (name) { return "'" + name + "'"; }).join(", "); query = "SELECT \"t\".* FROM \"" + this.getTypeormMetadataTableName() + "\" \"t\" INNER JOIN \"sqlite_master\" s ON \"s\".\"name\" = \"t\".\"name\" AND \"s\".\"type\" = 'view' WHERE \"t\".\"type\" = 'VIEW'"; if (viewNamesString.length > 0) query += " AND \"t\".\"name\" IN (" + viewNamesString + ")"; return [4 /*yield*/, this.query(query)]; case 2: dbViews = _a.sent(); return [2 /*return*/, dbViews.map(function (dbView) { var view = new _schema_builder_view_View__WEBPACK_IMPORTED_MODULE_8__[/* View */ "a"](); view.name = dbView["name"]; view.expression = dbView["value"]; return view; })]; } }); }); }; /** * Loads all tables (with given names) from the database and creates a Table from them. */ AbstractSqliteQueryRunner.prototype.loadTables = function (tableNames) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var tableNamesString, dbTables, dbIndicesDef; var _this = this; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: // if no tables given then no need to proceed if (!tableNames || !tableNames.length) return [2 /*return*/, []]; tableNamesString = tableNames.map(function (tableName) { return "'" + tableName + "'"; }).join(", "); return [4 /*yield*/, this.query("SELECT * FROM \"sqlite_master\" WHERE \"type\" = 'table' AND \"name\" IN (" + tableNamesString + ")")]; case 1: dbTables = _a.sent(); return [4 /*yield*/, this.query("SELECT * FROM \"sqlite_master\" WHERE \"type\" = 'index' AND \"tbl_name\" IN (" + tableNamesString + ")")]; case 2: dbIndicesDef = _a.sent(); // if tables were not found in the db, no need to proceed if (!dbTables || !dbTables.length) return [2 /*return*/, []]; // create table schemas for loaded tables return [2 /*return*/, Promise.all(dbTables.map(function (dbTable) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(_this, void 0, void 0, function () { var table, sql, _a, dbColumns, dbIndices, dbForeignKeys, autoIncrementColumnName, tableSql, autoIncrementIndex, comma, bracket, tableForeignKeyConstraints, tableUniquePromises, _b, result, regexp, indicesPromises, indices; var _this = this; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_c) { switch (_c.label) { case 0: table = new _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"]({ name: dbTable["name"] }); sql = dbTable["sql"]; return [4 /*yield*/, Promise.all([ this.query("PRAGMA table_info(\"" + dbTable["name"] + "\")"), this.query("PRAGMA index_list(\"" + dbTable["name"] + "\")"), this.query("PRAGMA foreign_key_list(\"" + dbTable["name"] + "\")"), ])]; case 1: _a = tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"].apply(void 0, [_c.sent(), 3]), dbColumns = _a[0], dbIndices = _a[1], dbForeignKeys = _a[2]; autoIncrementColumnName = undefined; tableSql = dbTable["sql"]; autoIncrementIndex = tableSql.toUpperCase().indexOf("AUTOINCREMENT"); if (autoIncrementIndex !== -1) { autoIncrementColumnName = tableSql.substr(0, autoIncrementIndex); comma = autoIncrementColumnName.lastIndexOf(","); bracket = autoIncrementColumnName.lastIndexOf("("); if (comma !== -1) { autoIncrementColumnName = autoIncrementColumnName.substr(comma); autoIncrementColumnName = autoIncrementColumnName.substr(0, autoIncrementColumnName.lastIndexOf("\"")); autoIncrementColumnName = autoIncrementColumnName.substr(autoIncrementColumnName.indexOf("\"") + 1); } else if (bracket !== -1) { autoIncrementColumnName = autoIncrementColumnName.substr(bracket); autoIncrementColumnName = autoIncrementColumnName.substr(0, autoIncrementColumnName.lastIndexOf("\"")); autoIncrementColumnName = autoIncrementColumnName.substr(autoIncrementColumnName.indexOf("\"") + 1); } } // create columns from the loaded columns table.columns = dbColumns.map(function (dbColumn) { var tableColumn = new _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_3__[/* TableColumn */ "a"](); tableColumn.name = dbColumn["name"]; tableColumn.type = dbColumn["type"].toLowerCase(); tableColumn.default = dbColumn["dflt_value"] !== null && dbColumn["dflt_value"] !== undefined ? dbColumn["dflt_value"] : undefined; tableColumn.isNullable = dbColumn["notnull"] === 0; // primary keys are numbered starting with 1, columns that aren't primary keys are marked with 0 tableColumn.isPrimary = dbColumn["pk"] > 0; tableColumn.comment = ""; // SQLite does not support column comments tableColumn.isGenerated = autoIncrementColumnName === dbColumn["name"]; if (tableColumn.isGenerated) { tableColumn.generationStrategy = "increment"; } if (tableColumn.type === "varchar") { // Check if this is an enum var enumMatch = sql.match(new RegExp("\"(" + tableColumn.name + ")\" varchar CHECK\\s*\\(\\s*\\1\\s+IN\\s*\\(('[^']+'(?:\\s*,\\s*'[^']+')+)\\s*\\)\\s*\\)")); if (enumMatch) { // This is an enum tableColumn.enum = enumMatch[2].substr(1, enumMatch[2].length - 2).split("','"); } } // parse datatype and attempt to retrieve length, precision and scale var pos = tableColumn.type.indexOf("("); if (pos !== -1) { var fullType = tableColumn.type; var dataType_1 = fullType.substr(0, pos); if (!!_this.driver.withLengthColumnTypes.find(function (col) { return col === dataType_1; })) { var len = parseInt(fullType.substring(pos + 1, fullType.length - 1)); if (len) { tableColumn.length = len.toString(); tableColumn.type = dataType_1; // remove the length part from the datatype } } if (!!_this.driver.withPrecisionColumnTypes.find(function (col) { return col === dataType_1; })) { var re = new RegExp("^" + dataType_1 + "\\((\\d+),?\\s?(\\d+)?\\)"); var matches = fullType.match(re); if (matches && matches[1]) { tableColumn.precision = +matches[1]; } if (!!_this.driver.withScaleColumnTypes.find(function (col) { return col === dataType_1; })) { if (matches && matches[2]) { tableColumn.scale = +matches[2]; } } tableColumn.type = dataType_1; // remove the precision/scale part from the datatype } } return tableColumn; }); tableForeignKeyConstraints = _util_OrmUtils__WEBPACK_IMPORTED_MODULE_13__[/* OrmUtils */ "a"].uniq(dbForeignKeys, function (dbForeignKey) { return dbForeignKey["id"]; }); table.foreignKeys = tableForeignKeyConstraints.map(function (foreignKey) { var ownForeignKeys = dbForeignKeys.filter(function (dbForeignKey) { return dbForeignKey["id"] === foreignKey["id"] && dbForeignKey["table"] === foreignKey["table"]; }); var columnNames = ownForeignKeys.map(function (dbForeignKey) { return dbForeignKey["from"]; }); var referencedColumnNames = ownForeignKeys.map(function (dbForeignKey) { return dbForeignKey["to"]; }); // build foreign key name, because we can not get it directly. var fkName = _this.connection.namingStrategy.foreignKeyName(table, columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames); return new _schema_builder_table_TableForeignKey__WEBPACK_IMPORTED_MODULE_7__[/* TableForeignKey */ "a"]({ name: fkName, columnNames: columnNames, referencedTableName: foreignKey["table"], referencedColumnNames: referencedColumnNames, onDelete: foreignKey["on_delete"], onUpdate: foreignKey["on_update"] }); }); tableUniquePromises = dbIndices .filter(function (dbIndex) { return dbIndex["origin"] === "u"; }) .map(function (dbIndex) { return dbIndex["name"]; }) .filter(function (value, index, self) { return self.indexOf(value) === index; }) .map(function (dbIndexName) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(_this, void 0, void 0, function () { var dbIndex, indexInfos, indexColumns, column; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: dbIndex = dbIndices.find(function (dbIndex) { return dbIndex["name"] === dbIndexName; }); return [4 /*yield*/, this.query("PRAGMA index_info(\"" + dbIndex["name"] + "\")")]; case 1: indexInfos = _a.sent(); indexColumns = indexInfos .sort(function (indexInfo1, indexInfo2) { return parseInt(indexInfo1["seqno"]) - parseInt(indexInfo2["seqno"]); }) .map(function (indexInfo) { return indexInfo["name"]; }); if (indexColumns.length === 1) { column = table.columns.find(function (column) { return !!indexColumns.find(function (indexColumn) { return indexColumn === column.name; }); }); if (column) column.isUnique = true; } // Sqlite does not store unique constraint name, so we generate its name manually. return [2 /*return*/, new _schema_builder_table_TableUnique__WEBPACK_IMPORTED_MODULE_11__[/* TableUnique */ "a"]({ name: this.connection.namingStrategy.uniqueConstraintName(table, indexColumns), columnNames: indexColumns })]; } }); }); }); _b = table; return [4 /*yield*/, Promise.all(tableUniquePromises)]; case 2: _b.uniques = (_c.sent()); regexp = /CONSTRAINT "([^"]*)" CHECK (\(.*?\))([,]|[)]$)/g; while (((result = regexp.exec(sql)) !== null)) { table.checks.push(new _schema_builder_table_TableCheck__WEBPACK_IMPORTED_MODULE_14__[/* TableCheck */ "a"]({ name: result[1], expression: result[2] })); } indicesPromises = dbIndices .filter(function (dbIndex) { return dbIndex["origin"] === "c"; }) .map(function (dbIndex) { return dbIndex["name"]; }) .filter(function (value, index, self) { return self.indexOf(value) === index; }) // unqiue .map(function (dbIndexName) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(_this, void 0, void 0, function () { var indexDef, condition, dbIndex, indexInfos, indexColumns, isUnique; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: indexDef = dbIndicesDef.find(function (dbIndexDef) { return dbIndexDef["name"] === dbIndexName; }); condition = /WHERE (.*)/.exec(indexDef["sql"]); dbIndex = dbIndices.find(function (dbIndex) { return dbIndex["name"] === dbIndexName; }); return [4 /*yield*/, this.query("PRAGMA index_info(\"" + dbIndex["name"] + "\")")]; case 1: indexInfos = _a.sent(); indexColumns = indexInfos .sort(function (indexInfo1, indexInfo2) { return parseInt(indexInfo1["seqno"]) - parseInt(indexInfo2["seqno"]); }) .map(function (indexInfo) { return indexInfo["name"]; }); isUnique = dbIndex["unique"] === "1" || dbIndex["unique"] === 1; return [2 /*return*/, new _schema_builder_table_TableIndex__WEBPACK_IMPORTED_MODULE_6__[/* TableIndex */ "a"]({ table: table, name: dbIndex["name"], columnNames: indexColumns, isUnique: isUnique, where: condition ? condition[1] : undefined })]; } }); }); }); return [4 /*yield*/, Promise.all(indicesPromises)]; case 3: indices = _c.sent(); table.indices = indices.filter(function (index) { return !!index; }); return [2 /*return*/, table]; } }); }); }))]; } }); }); }; /** * Builds create table sql. */ AbstractSqliteQueryRunner.prototype.createTableSql = function (table, createForeignKeys) { var _this = this; var primaryColumns = table.columns.filter(function (column) { return column.isPrimary; }); var hasAutoIncrement = primaryColumns.find(function (column) { return column.isGenerated && column.generationStrategy === "increment"; }); var skipPrimary = primaryColumns.length > 1; if (skipPrimary && hasAutoIncrement) throw new Error("Sqlite does not support AUTOINCREMENT on composite primary key"); var columnDefinitions = table.columns.map(function (column) { return _this.buildCreateColumnSql(column, skipPrimary); }).join(", "); var sql = "CREATE TABLE \"" + table.name + "\" (" + columnDefinitions; // need for `addColumn()` method, because it recreates table. table.columns .filter(function (column) { return column.isUnique; }) .forEach(function (column) { var isUniqueExist = table.uniques.some(function (unique) { return unique.columnNames.length === 1 && unique.columnNames[0] === column.name; }); if (!isUniqueExist) table.uniques.push(new _schema_builder_table_TableUnique__WEBPACK_IMPORTED_MODULE_11__[/* TableUnique */ "a"]({ name: _this.connection.namingStrategy.uniqueConstraintName(table.name, [column.name]), columnNames: [column.name] })); }); if (table.uniques.length > 0) { var uniquesSql = table.uniques.map(function (unique) { var uniqueName = unique.name ? unique.name : _this.connection.namingStrategy.uniqueConstraintName(table.name, unique.columnNames); var columnNames = unique.columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", "); return "CONSTRAINT \"" + uniqueName + "\" UNIQUE (" + columnNames + ")"; }).join(", "); sql += ", " + uniquesSql; } if (table.checks.length > 0) { var checksSql = table.checks.map(function (check) { var checkName = check.name ? check.name : _this.connection.namingStrategy.checkConstraintName(table.name, check.expression); return "CONSTRAINT \"" + checkName + "\" CHECK (" + check.expression + ")"; }).join(", "); sql += ", " + checksSql; } if (table.foreignKeys.length > 0 && createForeignKeys) { var foreignKeysSql = table.foreignKeys.map(function (fk) { var columnNames = fk.columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", "); if (!fk.name) fk.name = _this.connection.namingStrategy.foreignKeyName(table.name, fk.columnNames, fk.referencedTableName, fk.referencedColumnNames); var referencedColumnNames = fk.referencedColumnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", "); var constraint = "CONSTRAINT \"" + fk.name + "\" FOREIGN KEY (" + columnNames + ") REFERENCES \"" + fk.referencedTableName + "\" (" + referencedColumnNames + ")"; if (fk.onDelete) constraint += " ON DELETE " + fk.onDelete; if (fk.onUpdate) constraint += " ON UPDATE " + fk.onUpdate; return constraint; }).join(", "); sql += ", " + foreignKeysSql; } if (primaryColumns.length > 1) { var columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", "); sql += ", PRIMARY KEY (" + columnNames + ")"; } sql += ")"; var tableMetadata = this.connection.entityMetadatas.find(function (metadata) { return metadata.tableName === table.name; }); if (tableMetadata && tableMetadata.withoutRowid) { sql += " WITHOUT ROWID"; } return new _Query__WEBPACK_IMPORTED_MODULE_10__[/* Query */ "a"](sql); }; /** * Builds drop table sql. */ AbstractSqliteQueryRunner.prototype.dropTableSql = function (tableOrName, ifExist) { var tableName = tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[/* Table */ "a"] ? tableOrName.name : tableOrName; var query = ifExist ? "DROP TABLE IF EXISTS \"" + tableName + "\"" : "DROP TABLE \"" + tableName + "\""; return new _Query__WEBPACK_IMPORTED_MODULE_10__[/* Query */ "a"](query); }; AbstractSqliteQueryRunner.prototype.createViewSql = function (view) { if (typeof view.expression === "string") { return new _Query__WEBPACK_IMPORTED_MODULE_10__[/* Query */ "a"]("CREATE VIEW \"" + view.name + "\" AS " + view.expression); } else { return new _Query__WEBPACK_IMPORTED_MODULE_10__[/* Query */ "a"]("CREATE VIEW \"" + view.name + "\" AS " + view.expression(this.connection).getQuery()); } }; AbstractSqliteQueryRunner.prototype.insertViewDefinitionSql = function (view) { var expression = typeof view.expression === "string" ? view.expression.trim() : view.expression(this.connection).getQuery(); var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(this.connection.createQueryBuilder() .insert() .into(this.getTypeormMetadataTableName()) .values({ type: "VIEW", name: view.name, value: expression }) .getQueryAndParameters(), 2), query = _a[0], parameters = _a[1]; return new _Query__WEBPACK_IMPORTED_MODULE_10__[/* Query */ "a"](query, parameters); }; /** * Builds drop view sql. */ AbstractSqliteQueryRunner.prototype.dropViewSql = function (viewOrPath) { var viewName = viewOrPath instanceof _schema_builder_view_View__WEBPACK_IMPORTED_MODULE_8__[/* View */ "a"] ? viewOrPath.name : viewOrPath; return new _Query__WEBPACK_IMPORTED_MODULE_10__[/* Query */ "a"]("DROP VIEW \"" + viewName + "\""); }; /** * Builds remove view sql. */ AbstractSqliteQueryRunner.prototype.deleteViewDefinitionSql = function (viewOrPath) { var viewName = viewOrPath instanceof _schema_builder_view_View__WEBPACK_IMPORTED_MODULE_8__[/* View */ "a"] ? viewOrPath.name : viewOrPath; var qb = this.connection.createQueryBuilder(); var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(qb.delete() .from(this.getTypeormMetadataTableName()) .where(qb.escape("type") + " = 'VIEW'") .andWhere(qb.escape("name") + " = :name", { name: viewName }) .getQueryAndParameters(), 2), query = _a[0], parameters = _a[1]; return new _Query__WEBPACK_IMPORTED_MODULE_10__[/* Query */ "a"](query, parameters); }; /** * Builds create index sql. */ AbstractSqliteQueryRunner.prototype.createIndexSql = function (table, index) { var columns = index.columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", "); return new _Query__WEBPACK_IMPORTED_MODULE_10__[/* Query */ "a"]("CREATE " + (index.isUnique ? "UNIQUE " : "") + "INDEX \"" + index.name + "\" ON \"" + table.name + "\" (" + columns + ") " + (index.where ? "WHERE " + index.where : "")); }; /** * Builds drop index sql. */ AbstractSqliteQueryRunner.prototype.dropIndexSql = function (indexOrName) { var indexName = indexOrName instanceof _schema_builder_table_TableIndex__WEBPACK_IMPORTED_MODULE_6__[/* TableIndex */ "a"] ? indexOrName.name : indexOrName; return new _Query__WEBPACK_IMPORTED_MODULE_10__[/* Query */ "a"]("DROP INDEX \"" + indexName + "\""); }; /** * Builds a query for create column. */ AbstractSqliteQueryRunner.prototype.buildCreateColumnSql = function (column, skipPrimary) { var c = "\"" + column.name + "\""; if (column instanceof _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_4__[/* ColumnMetadata */ "a"]) { c += " " + this.driver.normalizeType(column); } else { c += " " + this.connection.driver.createFullType(column); } if (column.enum) c += " CHECK( " + column.name + " IN (" + column.enum.map(function (val) { return "'" + val + "'"; }).join(",") + ") )"; if (column.isPrimary && !skipPrimary) c += " PRIMARY KEY"; if (column.isGenerated === true && column.generationStrategy === "increment") // don't use skipPrimary here since updates can update already exist primary without auto inc. c += " AUTOINCREMENT"; if (column.collation) c += " COLLATE " + column.collation; if (column.isNullable !== true) c += " NOT NULL"; if (column.default !== undefined && column.default !== null) c += " DEFAULT (" + column.default + ")"; return c; }; AbstractSqliteQueryRunner.prototype.recreateTable = function (newTable, oldTable, migrateData) { if (migrateData === void 0) { migrateData = true; } return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var upQueries, downQueries, newColumnNames, oldColumnNames; var _this = this; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: upQueries = []; downQueries = []; // drop old table indices oldTable.indices.forEach(function (index) { upQueries.push(_this.dropIndexSql(index)); downQueries.push(_this.createIndexSql(oldTable, index)); }); // change table name into 'temporary_table' newTable.name = "temporary_" + newTable.name; // create new table upQueries.push(this.createTableSql(newTable, true)); downQueries.push(this.dropTableSql(newTable)); // migrate all data from the old table into new table if (migrateData) { newColumnNames = newTable.columns.map(function (column) { return "\"" + column.name + "\""; }).join(", "); oldColumnNames = oldTable.columns.map(function (column) { return "\"" + column.name + "\""; }).join(", "); if (oldTable.columns.length < newTable.columns.length) { newColumnNames = newTable.columns.filter(function (column) { return oldTable.columns.find(function (c) { return c.name === column.name; }); }).map(function (column) { return "\"" + column.name + "\""; }).join(", "); } else if (oldTable.columns.length > newTable.columns.length) { oldColumnNames = oldTable.columns.filter(function (column) { return newTable.columns.find(function (c) { return c.name === column.name; }); }).map(function (column) { return "\"" + column.name + "\""; }).join(", "); } upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_10__[/* Query */ "a"]("INSERT INTO \"" + newTable.name + "\"(" + newColumnNames + ") SELECT " + oldColumnNames + " FROM \"" + oldTable.name + "\"")); downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_10__[/* Query */ "a"]("INSERT INTO \"" + oldTable.name + "\"(" + oldColumnNames + ") SELECT " + newColumnNames + " FROM \"" + newTable.name + "\"")); } // drop old table upQueries.push(this.dropTableSql(oldTable)); downQueries.push(this.createTableSql(oldTable, true)); // rename old table upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_10__[/* Query */ "a"]("ALTER TABLE \"" + newTable.name + "\" RENAME TO \"" + oldTable.name + "\"")); downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_10__[/* Query */ "a"]("ALTER TABLE \"" + oldTable.name + "\" RENAME TO \"" + newTable.name + "\"")); newTable.name = oldTable.name; // recreate table indices newTable.indices.forEach(function (index) { // new index may be passed without name. In this case we generate index name manually. if (!index.name) index.name = _this.connection.namingStrategy.indexName(newTable.name, index.columnNames, index.where); upQueries.push(_this.createIndexSql(newTable, index)); downQueries.push(_this.dropIndexSql(index)); }); return [4 /*yield*/, this.executeQueries(upQueries, downQueries)]; case 1: _a.sent(); this.replaceCachedTable(oldTable, newTable); return [2 /*return*/]; } }); }); }; return AbstractSqliteQueryRunner; }(_query_runner_BaseQueryRunner__WEBPACK_IMPORTED_MODULE_12__[/* BaseQueryRunner */ "a"])); //# sourceMappingURL=AbstractSqliteQueryRunner.js.map /***/ }), /* 74 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return EntitySchema; }); /** * Interface for entity metadata mappings stored inside "schemas" instead of models decorated by decorators. */ var EntitySchema = /** @class */ (function () { function EntitySchema(options) { this.options = options; } return EntitySchema; }()); //# sourceMappingURL=EntitySchema.js.map /***/ }), /* 75 */ /***/ (function(module, exports) { var toString = {}.toString; module.exports = function (it) { return toString.call(it).slice(8, -1); }; /***/ }), /* 76 */ /***/ (function(module, exports) { // 7.2.1 RequireObjectCoercible(argument) module.exports = function (it) { if (it == undefined) throw TypeError("Can't call method on " + it); return it; }; /***/ }), /* 77 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; if (__webpack_require__(28)) { var LIBRARY = __webpack_require__(89); var global = __webpack_require__(11); var fails = __webpack_require__(12); var $export = __webpack_require__(3); var $typed = __webpack_require__(145); var $buffer = __webpack_require__(188); var ctx = __webpack_require__(63); var anInstance = __webpack_require__(107); var propertyDesc = __webpack_require__(87); var hide = __webpack_require__(52); var redefineAll = __webpack_require__(108); var toInteger = __webpack_require__(65); var toLength = __webpack_require__(23); var toIndex = __webpack_require__(240); var toAbsoluteIndex = __webpack_require__(91); var toPrimitive = __webpack_require__(82); var has = __webpack_require__(51); var classof = __webpack_require__(124); var isObject = __webpack_require__(14); var toObject = __webpack_require__(36); var isArrayIter = __webpack_require__(180); var create = __webpack_require__(92); var getPrototypeOf = __webpack_require__(94); var gOPN = __webpack_require__(93).f; var getIterFn = __webpack_require__(182); var uid = __webpack_require__(88); var wks = __webpack_require__(19); var createArrayMethod = __webpack_require__(68); var createArrayIncludes = __webpack_require__(135); var speciesConstructor = __webpack_require__(125); var ArrayIterators = __webpack_require__(184); var Iterators = __webpack_require__(105); var $iterDetect = __webpack_require__(138); var setSpecies = __webpack_require__(106); var arrayFill = __webpack_require__(183); var arrayCopyWithin = __webpack_require__(231); var $DP = __webpack_require__(29); var $GOPD = __webpack_require__(66); var dP = $DP.f; var gOPD = $GOPD.f; var RangeError = global.RangeError; var TypeError = global.TypeError; var Uint8Array = global.Uint8Array; var ARRAY_BUFFER = 'ArrayBuffer'; var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER; var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'; var PROTOTYPE = 'prototype'; var ArrayProto = Array[PROTOTYPE]; var $ArrayBuffer = $buffer.ArrayBuffer; var $DataView = $buffer.DataView; var arrayForEach = createArrayMethod(0); var arrayFilter = createArrayMethod(2); var arraySome = createArrayMethod(3); var arrayEvery = createArrayMethod(4); var arrayFind = createArrayMethod(5); var arrayFindIndex = createArrayMethod(6); var arrayIncludes = createArrayIncludes(true); var arrayIndexOf = createArrayIncludes(false); var arrayValues = ArrayIterators.values; var arrayKeys = ArrayIterators.keys; var arrayEntries = ArrayIterators.entries; var arrayLastIndexOf = ArrayProto.lastIndexOf; var arrayReduce = ArrayProto.reduce; var arrayReduceRight = ArrayProto.reduceRight; var arrayJoin = ArrayProto.join; var arraySort = ArrayProto.sort; var arraySlice = ArrayProto.slice; var arrayToString = ArrayProto.toString; var arrayToLocaleString = ArrayProto.toLocaleString; var ITERATOR = wks('iterator'); var TAG = wks('toStringTag'); var TYPED_CONSTRUCTOR = uid('typed_constructor'); var DEF_CONSTRUCTOR = uid('def_constructor'); var ALL_CONSTRUCTORS = $typed.CONSTR; var TYPED_ARRAY = $typed.TYPED; var VIEW = $typed.VIEW; var WRONG_LENGTH = 'Wrong length!'; var $map = createArrayMethod(1, function (O, length) { return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length); }); var LITTLE_ENDIAN = fails(function () { // eslint-disable-next-line no-undef return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1; }); var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () { new Uint8Array(1).set({}); }); var toOffset = function (it, BYTES) { var offset = toInteger(it); if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!'); return offset; }; var validate = function (it) { if (isObject(it) && TYPED_ARRAY in it) return it; throw TypeError(it + ' is not a typed array!'); }; var allocate = function (C, length) { if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) { throw TypeError('It is not a typed array constructor!'); } return new C(length); }; var speciesFromList = function (O, list) { return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list); }; var fromList = function (C, list) { var index = 0; var length = list.length; var result = allocate(C, length); while (length > index) result[index] = list[index++]; return result; }; var addGetter = function (it, key, internal) { dP(it, key, { get: function () { return this._d[internal]; } }); }; var $from = function from(source /* , mapfn, thisArg */) { var O = toObject(source); var aLen = arguments.length; var mapfn = aLen > 1 ? arguments[1] : undefined; var mapping = mapfn !== undefined; var iterFn = getIterFn(O); var i, length, values, result, step, iterator; if (iterFn != undefined && !isArrayIter(iterFn)) { for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) { values.push(step.value); } O = values; } if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2); for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) { result[i] = mapping ? mapfn(O[i], i) : O[i]; } return result; }; var $of = function of(/* ...items */) { var index = 0; var length = arguments.length; var result = allocate(this, length); while (length > index) result[index] = arguments[index++]; return result; }; // iOS Safari 6.x fails here var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); }); var $toLocaleString = function toLocaleString() { return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments); }; var proto = { copyWithin: function copyWithin(target, start /* , end */) { return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined); }, every: function every(callbackfn /* , thisArg */) { return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); }, fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars return arrayFill.apply(validate(this), arguments); }, filter: function filter(callbackfn /* , thisArg */) { return speciesFromList(this, arrayFilter(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined)); }, find: function find(predicate /* , thisArg */) { return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined); }, findIndex: function findIndex(predicate /* , thisArg */) { return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined); }, forEach: function forEach(callbackfn /* , thisArg */) { arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); }, indexOf: function indexOf(searchElement /* , fromIndex */) { return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); }, includes: function includes(searchElement /* , fromIndex */) { return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); }, join: function join(separator) { // eslint-disable-line no-unused-vars return arrayJoin.apply(validate(this), arguments); }, lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars return arrayLastIndexOf.apply(validate(this), arguments); }, map: function map(mapfn /* , thisArg */) { return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined); }, reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars return arrayReduce.apply(validate(this), arguments); }, reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars return arrayReduceRight.apply(validate(this), arguments); }, reverse: function reverse() { var that = this; var length = validate(that).length; var middle = Math.floor(length / 2); var index = 0; var value; while (index < middle) { value = that[index]; that[index++] = that[--length]; that[length] = value; } return that; }, some: function some(callbackfn /* , thisArg */) { return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); }, sort: function sort(comparefn) { return arraySort.call(validate(this), comparefn); }, subarray: function subarray(begin, end) { var O = validate(this); var length = O.length; var $begin = toAbsoluteIndex(begin, length); return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))( O.buffer, O.byteOffset + $begin * O.BYTES_PER_ELEMENT, toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin) ); } }; var $slice = function slice(start, end) { return speciesFromList(this, arraySlice.call(validate(this), start, end)); }; var $set = function set(arrayLike /* , offset */) { validate(this); var offset = toOffset(arguments[1], 1); var length = this.length; var src = toObject(arrayLike); var len = toLength(src.length); var index = 0; if (len + offset > length) throw RangeError(WRONG_LENGTH); while (index < len) this[offset + index] = src[index++]; }; var $iterators = { entries: function entries() { return arrayEntries.call(validate(this)); }, keys: function keys() { return arrayKeys.call(validate(this)); }, values: function values() { return arrayValues.call(validate(this)); } }; var isTAIndex = function (target, key) { return isObject(target) && target[TYPED_ARRAY] && typeof key != 'symbol' && key in target && String(+key) == String(key); }; var $getDesc = function getOwnPropertyDescriptor(target, key) { return isTAIndex(target, key = toPrimitive(key, true)) ? propertyDesc(2, target[key]) : gOPD(target, key); }; var $setDesc = function defineProperty(target, key, desc) { if (isTAIndex(target, key = toPrimitive(key, true)) && isObject(desc) && has(desc, 'value') && !has(desc, 'get') && !has(desc, 'set') // TODO: add validation descriptor w/o calling accessors && !desc.configurable && (!has(desc, 'writable') || desc.writable) && (!has(desc, 'enumerable') || desc.enumerable) ) { target[key] = desc.value; return target; } return dP(target, key, desc); }; if (!ALL_CONSTRUCTORS) { $GOPD.f = $getDesc; $DP.f = $setDesc; } $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', { getOwnPropertyDescriptor: $getDesc, defineProperty: $setDesc }); if (fails(function () { arrayToString.call({}); })) { arrayToString = arrayToLocaleString = function toString() { return arrayJoin.call(this); }; } var $TypedArrayPrototype$ = redefineAll({}, proto); redefineAll($TypedArrayPrototype$, $iterators); hide($TypedArrayPrototype$, ITERATOR, $iterators.values); redefineAll($TypedArrayPrototype$, { slice: $slice, set: $set, constructor: function () { /* noop */ }, toString: arrayToString, toLocaleString: $toLocaleString }); addGetter($TypedArrayPrototype$, 'buffer', 'b'); addGetter($TypedArrayPrototype$, 'byteOffset', 'o'); addGetter($TypedArrayPrototype$, 'byteLength', 'l'); addGetter($TypedArrayPrototype$, 'length', 'e'); dP($TypedArrayPrototype$, TAG, { get: function () { return this[TYPED_ARRAY]; } }); // eslint-disable-next-line max-statements module.exports = function (KEY, BYTES, wrapper, CLAMPED) { CLAMPED = !!CLAMPED; var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'; var GETTER = 'get' + KEY; var SETTER = 'set' + KEY; var TypedArray = global[NAME]; var Base = TypedArray || {}; var TAC = TypedArray && getPrototypeOf(TypedArray); var FORCED = !TypedArray || !$typed.ABV; var O = {}; var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE]; var getter = function (that, index) { var data = that._d; return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN); }; var setter = function (that, index, value) { var data = that._d; if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff; data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN); }; var addElement = function (that, index) { dP(that, index, { get: function () { return getter(this, index); }, set: function (value) { return setter(this, index, value); }, enumerable: true }); }; if (FORCED) { TypedArray = wrapper(function (that, data, $offset, $length) { anInstance(that, TypedArray, NAME, '_d'); var index = 0; var offset = 0; var buffer, byteLength, length, klass; if (!isObject(data)) { length = toIndex(data); byteLength = length * BYTES; buffer = new $ArrayBuffer(byteLength); } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) { buffer = data; offset = toOffset($offset, BYTES); var $len = data.byteLength; if ($length === undefined) { if ($len % BYTES) throw RangeError(WRONG_LENGTH); byteLength = $len - offset; if (byteLength < 0) throw RangeError(WRONG_LENGTH); } else { byteLength = toLength($length) * BYTES; if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH); } length = byteLength / BYTES; } else if (TYPED_ARRAY in data) { return fromList(TypedArray, data); } else { return $from.call(TypedArray, data); } hide(that, '_d', { b: buffer, o: offset, l: byteLength, e: length, v: new $DataView(buffer) }); while (index < length) addElement(that, index++); }); TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$); hide(TypedArrayPrototype, 'constructor', TypedArray); } else if (!fails(function () { TypedArray(1); }) || !fails(function () { new TypedArray(-1); // eslint-disable-line no-new }) || !$iterDetect(function (iter) { new TypedArray(); // eslint-disable-line no-new new TypedArray(null); // eslint-disable-line no-new new TypedArray(1.5); // eslint-disable-line no-new new TypedArray(iter); // eslint-disable-line no-new }, true)) { TypedArray = wrapper(function (that, data, $offset, $length) { anInstance(that, TypedArray, NAME); var klass; // `ws` module bug, temporarily remove validation length for Uint8Array // https://github.com/websockets/ws/pull/645 if (!isObject(data)) return new Base(toIndex(data)); if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) { return $length !== undefined ? new Base(data, toOffset($offset, BYTES), $length) : $offset !== undefined ? new Base(data, toOffset($offset, BYTES)) : new Base(data); } if (TYPED_ARRAY in data) return fromList(TypedArray, data); return $from.call(TypedArray, data); }); arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) { if (!(key in TypedArray)) hide(TypedArray, key, Base[key]); }); TypedArray[PROTOTYPE] = TypedArrayPrototype; if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray; } var $nativeIterator = TypedArrayPrototype[ITERATOR]; var CORRECT_ITER_NAME = !!$nativeIterator && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined); var $iterator = $iterators.values; hide(TypedArray, TYPED_CONSTRUCTOR, true); hide(TypedArrayPrototype, TYPED_ARRAY, NAME); hide(TypedArrayPrototype, VIEW, true); hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray); if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) { dP(TypedArrayPrototype, TAG, { get: function () { return NAME; } }); } O[NAME] = TypedArray; $export($export.G + $export.W + $export.F * (TypedArray != Base), O); $export($export.S, NAME, { BYTES_PER_ELEMENT: BYTES }); $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, { from: $from, of: $of }); if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES); $export($export.P, NAME, proto); setSpecies(NAME); $export($export.P + $export.F * FORCED_SET, NAME, { set: $set }); $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators); if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString; $export($export.P + $export.F * fails(function () { new TypedArray(1).slice(); }), NAME, { slice: $slice }); $export($export.P + $export.F * (fails(function () { return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString(); }) || !fails(function () { TypedArrayPrototype.toLocaleString.call([1, 2]); })), NAME, { toLocaleString: $toLocaleString }); Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator; if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator); }; } else module.exports = function () { /* empty */ }; /***/ }), /* 78 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.EasySyncBaseModel = void 0; var cordova_sites_database_1 = __webpack_require__(20); var shared_1 = __webpack_require__(17); var EasySyncBaseModel = /*#__PURE__*/function (_cordova_sites_databa) { _inherits(EasySyncBaseModel, _cordova_sites_databa); var _super = _createSuper(EasySyncBaseModel); function EasySyncBaseModel() { var _this; _classCallCheck(this, EasySyncBaseModel); _this = _super.call(this); _this._delegate = null; _this.createdAt = new Date(); _this.updatedAt = new Date(); _this.version = 1; _this.deleted = false; return _this; } _createClass(EasySyncBaseModel, [{ key: "toJSON", value: function toJSON(includeFull) { var _this2 = this; var relations = this.constructor.getRelationDefinitions(); var columns = this.constructor.getColumnDefinitions(); var obj = {}; Object.keys(columns).forEach(function (attribute) { obj[attribute] = _this2[attribute]; }); Object.keys(relations).forEach(function (relationName) { if (includeFull === true) { obj[relationName] = _this2[relationName]; } else { if (Array.isArray(_this2[relationName])) { var ids = []; _this2[relationName].forEach(function (child) { return child && ids.push(child.id); }); obj[relationName] = ids; } else if (_this2[relationName] instanceof cordova_sites_database_1.BaseModel) { obj[relationName] = _this2[relationName].id; } else { obj[relationName] = null; } } }); return obj; } }], [{ key: "getColumnDefinitions", value: function getColumnDefinitions() { var columns = _get(_getPrototypeOf(EasySyncBaseModel), "getColumnDefinitions", this).call(this); columns["createdAt"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.DATE }; columns["updatedAt"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.DATE }; columns["version"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER }; columns["deleted"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.BOOLEAN }; return columns; } }, { key: "_fromJson", value: function _fromJson(jsonObjects, entities, includeRelations) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var _this3 = this; var isArray, loadPromises, addLoadPromises; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: entities = entities || []; isArray = Array.isArray(jsonObjects); if (!isArray) { jsonObjects = [jsonObjects]; } if (!Array.isArray(entities)) { entities = [entities]; } loadPromises = []; addLoadPromises = []; jsonObjects.forEach(function (jsonObject, index) { addLoadPromises.push(new Promise(function (resolve) { return __awaiter(_this3, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var entity; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: entity = null; if (!(entities.length > index)) { _context.next = 5; break; } entity = entities[index]; _context.next = 9; break; case 5: if (!shared_1.Helper.isNotNull(jsonObject.id)) { _context.next = 9; break; } _context.next = 8; return this.findById(jsonObject.id, this.getRelations()); case 8: entity = _context.sent; case 9: if (entity === null) { entity = new this(); } if (!jsonObject.version && jsonObject.version !== 0) { jsonObject.version = 1; } entities[index] = Object.assign(entity, jsonObject); this._handleColumns(entities[index]); this._handleRelations(entities[index], includeRelations, loadPromises); resolve(); case 15: case "end": return _context.stop(); } } }, _callee, this); })); })); }); //addLoadPromises adds other loadPromises. Therefore wait until done, then wait for other _context2.next = 9; return Promise.all(addLoadPromises); case 9: _context2.next = 11; return Promise.all(loadPromises); case 11: if (!isArray) { entities = entities.length > 0 ? entities[0] : null; } return _context2.abrupt("return", entities); case 13: case "end": return _context2.stop(); } } }, _callee2); })); } }, { key: "_handleRelations", value: function _handleRelations(entity, includeRelations, loadPromises) { var relations = this.getRelationDefinitions(); Object.keys(relations).forEach(function (relationName) { var values = entity[relationName]; if (typeof values === "number" || Array.isArray(values) && values.length >= 1 && typeof values[0] === "number") { if (includeRelations === true) { var loadPromise = null; if (Array.isArray(values)) { loadPromise = cordova_sites_database_1.BaseDatabase.getModel(relations[relationName].target).findByIds(values); } else { loadPromise = cordova_sites_database_1.BaseDatabase.getModel(relations[relationName].target).findById(values); } loadPromises.push(loadPromise.then(function (value) { entity[relationName] = value; })); } else if (includeRelations === false) { if (relations[relationName].type === "many-to-many" || relations[relationName].type === "one-to-many") { entity[relationName] = []; } else { entity[relationName] = null; } } } }); } }, { key: "_handleColumns", value: function _handleColumns(entity) { var schemaDefinition = this.getSchemaDefinition(); var columns = schemaDefinition["columns"]; Object.keys(columns).forEach(function (columnName) { if (columns[columnName].escapeHTML) { entity[columnName] = shared_1.XSSHelper.escapeHTML(entity[columnName]); } if (columns[columnName].escapeJS) { entity[columnName] = shared_1.XSSHelper.escapeJS(entity[columnName]); } }); } }, { key: "prepareSync", value: function prepareSync(entities) { return entities; } }]); return EasySyncBaseModel; }(cordova_sites_database_1.BaseModel); exports.EasySyncBaseModel = EasySyncBaseModel; EasySyncBaseModel.delegateClass = null; EasySyncBaseModel.CAN_BE_SYNCED = true; /***/ }), /* 79 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AbstractFragment = void 0; var Context_1 = __webpack_require__(111); var Helper_1 = __webpack_require__(15); /** * Ein Fragment ist ein TeilView einer Ansicht. */ var AbstractFragment = /*#__PURE__*/function (_Context_1$Context) { _inherits(AbstractFragment, _Context_1$Context); var _super = _createSuper(AbstractFragment); /** * Erstellt ein neues Fragment * * @param site * @param view */ function AbstractFragment(site, view) { var _this; _classCallCheck(this, AbstractFragment); _this = _super.call(this, view); _this._site = site; _this._viewQuery = null; _this._active = true; return _this; } /** * Gibt die zugehörige Seite zurück * * @returns */ _createClass(AbstractFragment, [{ key: "getSite", value: function getSite() { if (this._site instanceof AbstractFragment) { return this._site.getSite(); } return this._site; } }, { key: "startSite", value: function startSite(site, args) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: return _context.abrupt("return", this._site.startSite(site, args)); case 1: case "end": return _context.stop(); } } }, _callee, this); })); } /** * Gibt zurück, ob das Fragment aktiv ist. Wenn nicht, wird es in der Seite nicht angezeigt * * @returns {boolean} */ }, { key: "isActive", value: function isActive() { return this._active; } }, { key: "setViewQuery", value: function setViewQuery(query) { this._viewQuery = query; } }, { key: "getViewQuery", value: function getViewQuery() { return this._viewQuery; } }, { key: "setActive", value: function setActive(active) { this._active = active; if (Helper_1.Helper.isNotNull(this._view)) { if (active) { this._view.classList.remove("hidden"); } else { this._view.classList.add("hidden"); } } } }]); return AbstractFragment; }(Context_1.Context); exports.AbstractFragment = AbstractFragment; /***/ }), /* 80 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } Object.defineProperty(exports, "__esModule", { value: true }); exports.MenuAction = void 0; var Helper_1 = __webpack_require__(15); /** * Container für verschiedene Eigenschaften */ var MenuAction = /*#__PURE__*/function () { /** * Erstellt eine MenuAction. * Außer name und action ist alles mit Default-werten vorbelegt * * @param name * @param action * @param showFor * @param order * @param icon */ function MenuAction(name, action, showFor, order, icon) { _classCallCheck(this, MenuAction); this._liClass = ""; this._shouldTranslate = true; this._visible = true; this._activated = true; this._copies = []; this._menu = null; this._name = name; this._action = action; this._showFor = Helper_1.Helper.nonNull(showFor, MenuAction.SHOW_FOR_MEDIUM); this._order = Helper_1.Helper.nonNull(order, 1000); this._icon = icon; this._id = MenuAction.lastId++; this._liClass = ""; this._shouldTranslate = true; this._visible = true; this._activated = true; this._menu = null; this._copies = []; } /** * Erstellt eine neue MenuAction auf grundlage dieser MenuAction. Alle Eigenschaften sind identisch, bis auf die ID * * @param action * @return {MenuAction} */ _createClass(MenuAction, [{ key: "copy", value: function copy(action) { var copiedAction = Helper_1.Helper.nonNull(action, new MenuAction()); copiedAction._name = this._name; copiedAction._action = this._action; copiedAction._showFor = this._showFor; copiedAction._order = this._order; copiedAction._liClass = this._liClass; copiedAction._shouldTranslate = this._shouldTranslate; copiedAction._visible = this._visible; copiedAction._activated = this._activated; copiedAction._icon = this._icon; copiedAction._id = MenuAction.lastId++; this._copies.push(copiedAction); return copiedAction; // return new MenuActionSlave(this); } // _triggerCopies(fn, args){ // this._copies.forEach(copy => { // copy[fn].apply(copy, args); // }) // } /** * Sorgt dafür, dass die Action neu gezeichnet wird */ }, { key: "redraw", value: function redraw() { if (Helper_1.Helper.isNotNull(this._menu)) { this._menu.redrawAction(this); } this._copies.forEach(function (copy) { return copy.redraw(); }); } /** * Sorgt dafür, dass die ActionElemente geupdatet wird */ }, { key: "update", value: function update() { this._menu.updateAction(this); this._copies.forEach(function (copy) { return copy.update(); }); } /** * Gibt die Order der MenuAction zurück. Die Order bestimmt die Reihenfolge in der die Elemente angezeigt werden. * Je kleiner die Order, desto weiter rechts/oben werden diese angezeigt * * @returns {*} */ }, { key: "getOrder", value: function getOrder() { return this._order; } /** * Gibt zurück, ob die MenuAction aktiv ist * * @returns {boolean} */ }, { key: "isActivated", value: function isActivated() { return this._activated; } /** * Gibt an, ob der Name übersetzt werden soll * * @returns {boolean} */ }, { key: "isShouldTranslate", value: function isShouldTranslate() { return this._shouldTranslate; } }, { key: "setShouldTranslate", value: function setShouldTranslate(shouldTranslate) { this._shouldTranslate = shouldTranslate === true; this.redraw(); } }, { key: "setVisibility", value: function setVisibility(visibility) { this._visible = visibility; this.redraw(); this._copies.forEach(function (copy) { return copy.setVisibility(visibility); }); } /** * Gibt an, ob die MenuAction sichtbar ist * * @returns {boolean} */ }, { key: "isVisible", value: function isVisible() { return this._visible; } /** * Gibt den Namen zurück * * @returns {*} */ }, { key: "getName", value: function getName() { return this._name; } }, { key: "setName", value: function setName(name) { this._name = name; this.redraw(); } /** * Gibt die Action, welche beim Click ausgeführt werden soll zurück * @returns {string|function} */ }, { key: "getAction", value: function getAction() { return this._action; } /** * Gibt die ID der MenuAction zurück * @returns {number} */ }, { key: "getId", value: function getId() { return this._id; } /** * Gibt das Icon der MenuAction zurück * @returns {string|null} */ }, { key: "getIcon", value: function getIcon() { return this._icon; } }, { key: "setIcon", value: function setIcon(icon) { this._icon = icon; this.redraw(); } /** * Gibt die View-Klasse der Action zurück * @returns {string} */ }, { key: "getShowFor", value: function getShowFor() { return this._showFor; } /** * Gibt eine odder mehrere extra Klasse zurück, die dem li-Element der Action hinzugefügt werden kann * @returns {string} */ }, { key: "getLiClass", value: function getLiClass() { return this._liClass; } }, { key: "setLiClass", value: function setLiClass(cssClass) { this._liClass = cssClass; this._copies.forEach(function (c) { return c.setLiClass(cssClass); }); this.redraw(); } /** * Gibt das zugehörige Menu zurück * * @returns {null} */ }, { key: "getMenu", value: function getMenu() { return this._menu; } /** * Setzt das zugehörige Menu * * @param menu */ }, { key: "setMenu", value: function setMenu(menu) { this._menu = menu; } }]); return MenuAction; }(); exports.MenuAction = MenuAction; /** * Letzte ID, die vergeben wurde. Wird beim Erstellen einer Acton um eins erhöht * @type {number} */ MenuAction.lastId = 0; /** * Die SHOW_ALWAYS-Visibility-Klasse * Das Element wird bei jeder Größe in der NavBar angezeigt * * @type {string} */ MenuAction.SHOW_ALWAYS = "always"; /** * Die SHOW_FOR_SMEDIUM-Visibility-Klasse * Das Element wird in der NavBar angezeigt, wenn der Bildschirm mindestens die Größe "SMedium" (zwischen Small und Medium) hat * * @type {string} */ MenuAction.SHOW_FOR_SMEDIUM = "smedium"; /** * Die SHOW_FOR_MEDIUM-Visibility-Klasse * Das Element wird in der NavBar angezeigt, wenn der Bildschirm mindestens die Größe "Medium" hat * * @type {string} */ MenuAction.SHOW_FOR_MEDIUM = "medium"; /** * Die SHOW_FOR_LARGE-Visibility-Klasse * Das Element wird in der NavBar angezeigt, wenn der Bildschirm mindestens die Größe "Large" hat * * @type {string} */ MenuAction.SHOW_FOR_LARGE = "large"; /** * Die SHOW_FOR_MEDIUM-Visibility-Klasse * Das Element wird nie in der NavBar angezeigt, sondern immer nur im aufklapbaren Menu * * @type {string} */ MenuAction.SHOW_NEVER = "never"; /***/ }), /* 81 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/* eslint-env browser */ /** * This is the web browser implementation of `debug()`. */ exports.formatArgs = formatArgs; exports.save = save; exports.load = load; exports.useColors = useColors; exports.storage = localstorage(); exports.destroy = (() => { let warned = false; return () => { if (!warned) { warned = true; console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); } }; })(); /** * Colors. */ exports.colors = [ '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33' ]; /** * Currently only WebKit-based Web Inspectors, Firefox >= v31, * and the Firebug extension (any Firefox version) are known * to support "%c" CSS customizations. * * TODO: add a `localStorage` variable to explicitly enable/disable colors */ // eslint-disable-next-line complexity function useColors() { // NB: In an Electron preload script, document will be defined but not fully // initialized. Since we know we're in Chrome, we'll just detect this case // explicitly if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { return true; } // Internet Explorer and Edge do not support colors. if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { return false; } // Is webkit? http://stackoverflow.com/a/16459606/376773 // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || // Is firebug? http://stackoverflow.com/a/398120/376773 (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || // Is firefox >= v31? // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || // Double check webkit in userAgent just in case we are in a worker (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); } /** * Colorize log arguments if enabled. * * @api public */ function formatArgs(args) { args[0] = (this.useColors ? '%c' : '') + this.namespace + (this.useColors ? ' %c' : ' ') + args[0] + (this.useColors ? '%c ' : ' ') + '+' + module.exports.humanize(this.diff); if (!this.useColors) { return; } const c = 'color: ' + this.color; args.splice(1, 0, c, 'color: inherit'); // The final "%c" is somewhat tricky, because there could be other // arguments passed either before or after the %c, so we need to // figure out the correct index to insert the CSS into let index = 0; let lastC = 0; args[0].replace(/%[a-zA-Z%]/g, match => { if (match === '%%') { return; } index++; if (match === '%c') { // We only are interested in the *last* %c // (the user may have provided their own) lastC = index; } }); args.splice(lastC, 0, c); } /** * Invokes `console.debug()` when available. * No-op when `console.debug` is not a "function". * If `console.debug` is not available, falls back * to `console.log`. * * @api public */ exports.log = console.debug || console.log || (() => {}); /** * Save `namespaces`. * * @param {String} namespaces * @api private */ function save(namespaces) { try { if (namespaces) { exports.storage.setItem('debug', namespaces); } else { exports.storage.removeItem('debug'); } } catch (error) { // Swallow // XXX (@Qix-) should we be logging these? } } /** * Load `namespaces`. * * @return {String} returns the previously persisted debug modes * @api private */ function load() { let r; try { r = exports.storage.getItem('debug'); } catch (error) { // Swallow // XXX (@Qix-) should we be logging these? } // If debug isn't set in LS, and we're in Electron, try to load $DEBUG if (!r && typeof process !== 'undefined' && 'env' in process) { r = process.env.DEBUG; } return r; } /** * Localstorage attempts to return the localstorage. * * This is necessary because safari throws * when a user disables cookies/localstorage * and you attempt to access it. * * @return {LocalStorage} * @api private */ function localstorage() { try { // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context // The Browser also has localStorage in the global context. return localStorage; } catch (error) { // Swallow // XXX (@Qix-) should we be logging these? } } module.exports = __webpack_require__(487)(exports); const {formatters} = module.exports; /** * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. */ formatters.j = function (v) { try { return JSON.stringify(v); } catch (error) { return '[UnexpectedJSONParseError]: ' + error.message; } }; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(247))) /***/ }), /* 82 */ /***/ (function(module, exports, __webpack_require__) { // 7.1.1 ToPrimitive(input [, PreferredType]) var isObject = __webpack_require__(14); // instead of the ES6 spec version, we didn't implement @@toPrimitive case // and the second argument - flag - preferred type is a string module.exports = function (it, S) { if (!isObject(it)) return it; var fn, val; if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; throw TypeError("Can't convert object to primitive value"); }; /***/ }), /* 83 */ /***/ (function(module, exports, __webpack_require__) { var META = __webpack_require__(88)('meta'); var isObject = __webpack_require__(14); var has = __webpack_require__(51); var setDesc = __webpack_require__(29).f; var id = 0; var isExtensible = Object.isExtensible || function () { return true; }; var FREEZE = !__webpack_require__(12)(function () { return isExtensible(Object.preventExtensions({})); }); var setMeta = function (it) { setDesc(it, META, { value: { i: 'O' + ++id, // object ID w: {} // weak collections IDs } }); }; var fastKey = function (it, create) { // return primitive with prefix if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; if (!has(it, META)) { // can't set metadata to uncaught frozen object if (!isExtensible(it)) return 'F'; // not necessary to add metadata if (!create) return 'E'; // add missing metadata setMeta(it); // return object ID } return it[META].i; }; var getWeak = function (it, create) { if (!has(it, META)) { // can't set metadata to uncaught frozen object if (!isExtensible(it)) return true; // not necessary to add metadata if (!create) return false; // add missing metadata setMeta(it); // return hash weak collections IDs } return it[META].w; }; // add metadata on freeze-family methods calling var onFreeze = function (it) { if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); return it; }; var meta = module.exports = { KEY: META, NEED: false, fastKey: fastKey, getWeak: getWeak, onFreeze: onFreeze }; /***/ }), /* 84 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Dialog = void 0; var Helper_1 = __webpack_require__(15); var Translator_1 = __webpack_require__(30); var ViewInflater_1 = __webpack_require__(54); var Dialog = /*#__PURE__*/function () { function Dialog(content, title) { var _this = this; _classCallCheck(this, Dialog); this._resolver = null; this._content = null; this._backgroundElement = null; this._cancelable = true; this._title = Helper_1.Helper.nonNull(title, ""); this._translatable = true; this._additionalClasses = ""; this._buttons = []; this._result = null; this._contentPromise = null; this._addedToDomePromise = new Promise(function (r) { _this._addedToDomePromiseResolver = r; }); if (Helper_1.Helper.isNotNull(content)) { this.setContent(content); } } _createClass(Dialog, [{ key: "setTitle", value: function setTitle(title) { this._title = title; return this; } }, { key: "setTranslatable", value: function setTranslatable(translatable) { this._translatable = translatable; } }, { key: "setAdditionalClasses", value: function setAdditionalClasses(classes) { this._additionalClasses = classes; } }, { key: "getTitle", value: function getTitle() { return this._title; } }, { key: "setCancelable", value: function setCancelable(cancelable) { this._cancelable = cancelable === true; return this; } }, { key: "setContent", value: function setContent(content) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (typeof content === "string" && content.endsWith(".html")) { content = ViewInflater_1.ViewInflater.getInstance().load(content); } this._contentPromise = Promise.resolve(content); _context.next = 4; return this._contentPromise; case 4: this._content = _context.sent; return _context.abrupt("return", this); case 6: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "addButton", value: function addButton(elementOrText, listenerOrResult, shouldClose) { shouldClose = Helper_1.Helper.nonNull(shouldClose, true); var button = null; if (typeof elementOrText === "string") { button = document.createElement("button"); button.classList.add("button"); button.classList.add("right"); button.appendChild(Translator_1.Translator.makePersistentTranslation(elementOrText)); } else { button = elementOrText; } var self = this; if (typeof listenerOrResult !== "function") { var result = listenerOrResult; listenerOrResult = function listenerOrResult() { self._result = result; }; } var callback = null; if (shouldClose) { callback = function callback(e) { if (Helper_1.Helper.isNotNull(listenerOrResult)) { listenerOrResult(e); } self.close(); }; } else { callback = listenerOrResult; } if (Helper_1.Helper.isNotNull(callback)) { button.addEventListener("click", callback); } this._buttons.push(button); } }, { key: "show", value: function show() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var _this2 = this; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return this._contentPromise; case 2: this._backgroundElement = this.createModalDialogElement(); this._backgroundElement.addEventListener("keyup", function (e) { if (e.key === "Escape" && _this2._cancelable) { _this2.close(); } }); document.body.appendChild(this._backgroundElement); _context2.next = 7; return Translator_1.Translator.getInstance().updateTranslations(); case 7: this._addedToDomePromiseResolver(); return _context2.abrupt("return", new Promise(function (resolve) { _this2._resolver = resolve; })); case 9: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "createModalDialogElement", value: function createModalDialogElement() { var _this3 = this; var titleElement = document.createElement("span"); titleElement.classList.add("title"); if (this._translatable && this._title !== "") { titleElement.appendChild(Translator_1.Translator.makePersistentTranslation(this._title)); } else { titleElement.innerHTML = this._title; } var titleBar = document.createElement("div"); titleBar.appendChild(titleElement); var contentContainer = document.createElement("div"); contentContainer.classList.add("content-container"); var modalDialog = document.createElement("div"); modalDialog.className = this._additionalClasses; modalDialog.classList.add("modal"); modalDialog.appendChild(titleBar); modalDialog.appendChild(contentContainer); var buttonBar = document.createElement("div"); buttonBar.classList.add("modal-button-container"); for (var i = 0, n = this._buttons.length; i < n; i++) { buttonBar.appendChild(this._buttons[i]); } if (!(this._content instanceof Node)) { this._content = this._translatable ? Translator_1.Translator.makePersistentTranslation(this._content) : document.createTextNode(this._content); } contentContainer.appendChild(this._content); this._backgroundElement = document.createElement("div"); this._backgroundElement.classList.add("background"); this._backgroundElement.style.display = "block"; this._backgroundElement.appendChild(modalDialog); this._backgroundElement.querySelector(".modal").appendChild(buttonBar); if (this._cancelable) { var closeButton = document.createElement("span"); closeButton.classList.add("close"); closeButton.innerHTML = "×"; titleBar.appendChild(closeButton); closeButton.addEventListener("click", function () { _this3.close(); }); window.addEventListener("click", function (e) { if (e.target === _this3._backgroundElement) { _this3.close(); } }); } return this._backgroundElement; } }, { key: "waitForAddedToDom", value: function waitForAddedToDom() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: return _context3.abrupt("return", this._addedToDomePromise); case 1: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "close", value: function close() { var _this4 = this; this.waitForAddedToDom().then(function () { if (Helper_1.Helper.isNotNull(_this4._backgroundElement)) { _this4._backgroundElement.style.display = "none"; _this4._backgroundElement.remove(); _this4._backgroundElement = null; } }); if (Helper_1.Helper.isNotNull(this._resolver)) { this._resolver(this._result); } } }]); return Dialog; }(); exports.Dialog = Dialog; /***/ }), /* 85 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Toast = void 0; var Helper_1 = __webpack_require__(15); var ToastManager_1 = __webpack_require__(259); var Toast = /*#__PURE__*/function () { function Toast(message, duration, shouldTranslateOrTranslationArgs) { _classCallCheck(this, Toast); this._message = message; this._duration = Helper_1.Helper.nonNull(duration, Toast.DEFAULT_DURATION); this._shouldTranslate = shouldTranslateOrTranslationArgs !== false; this._translationArgs = Helper_1.Helper.nonNull(shouldTranslateOrTranslationArgs, []); this._id = Toast.LAST_ID++; this._toastElement = null; } _createClass(Toast, [{ key: "getId", value: function getId() { return this._id; } }, { key: "getMessage", value: function getMessage() { return this._message; } }, { key: "getDuration", value: function getDuration() { return this._duration; } }, { key: "isShouldTranslate", value: function isShouldTranslate() { return this._shouldTranslate; } }, { key: "getTranslationArgs", value: function getTranslationArgs() { return this._translationArgs; } }, { key: "setToastElement", value: function setToastElement(element) { this._toastElement = element; } }, { key: "getToastElement", value: function getToastElement() { return this._toastElement; } }, { key: "show", value: function show() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: return _context.abrupt("return", ToastManager_1.ToastManager.getInstance().showToast(this)); case 1: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "hide", value: function hide() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", ToastManager_1.ToastManager.getInstance().hideToast(this)); case 1: case "end": return _context2.stop(); } } }, _callee2, this); })); } }]); return Toast; }(); exports.Toast = Toast; Toast.LAST_ID = 0; Toast.DEFAULT_DURATION = 2500; /***/ }), /* 86 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LockNotSupportedOnGivenDriverError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Thrown when selected sql driver does not supports locking. */ var LockNotSupportedOnGivenDriverError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(LockNotSupportedOnGivenDriverError, _super); function LockNotSupportedOnGivenDriverError() { var _this = _super.call(this) || this; _this.name = "LockNotSupportedOnGivenDriverError"; Object.setPrototypeOf(_this, LockNotSupportedOnGivenDriverError.prototype); _this.message = "Locking not supported on given driver."; return _this; } return LockNotSupportedOnGivenDriverError; }(Error)); //# sourceMappingURL=LockNotSupportedOnGivenDriverError.js.map /***/ }), /* 87 */ /***/ (function(module, exports) { module.exports = function (bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value: value }; }; /***/ }), /* 88 */ /***/ (function(module, exports) { var id = 0; var px = Math.random(); module.exports = function (key) { return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); }; /***/ }), /* 89 */ /***/ (function(module, exports) { module.exports = false; /***/ }), /* 90 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.14 / 15.2.3.14 Object.keys(O) var $keys = __webpack_require__(215); var enumBugKeys = __webpack_require__(167); module.exports = Object.keys || function keys(O) { return $keys(O, enumBugKeys); }; /***/ }), /* 91 */ /***/ (function(module, exports, __webpack_require__) { var toInteger = __webpack_require__(65); var max = Math.max; var min = Math.min; module.exports = function (index, length) { index = toInteger(index); return index < 0 ? max(index + length, 0) : min(index, length); }; /***/ }), /* 92 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) var anObject = __webpack_require__(13); var dPs = __webpack_require__(216); var enumBugKeys = __webpack_require__(167); var IE_PROTO = __webpack_require__(166)('IE_PROTO'); var Empty = function () { /* empty */ }; var PROTOTYPE = 'prototype'; // Create object with fake `null` prototype: use iframe Object with cleared prototype var createDict = function () { // Thrash, waste and sodomy: IE GC bug var iframe = __webpack_require__(164)('iframe'); var i = enumBugKeys.length; var lt = '<'; var gt = '>'; var iframeDocument; iframe.style.display = 'none'; __webpack_require__(168).appendChild(iframe); iframe.src = 'javascript:'; // eslint-disable-line no-script-url // createDict = iframe.contentWindow.Object; // html.removeChild(iframe); iframeDocument = iframe.contentWindow.document; iframeDocument.open(); iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); iframeDocument.close(); createDict = iframeDocument.F; while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; return createDict(); }; module.exports = Object.create || function create(O, Properties) { var result; if (O !== null) { Empty[PROTOTYPE] = anObject(O); result = new Empty(); Empty[PROTOTYPE] = null; // add "__proto__" for Object.getPrototypeOf polyfill result[IE_PROTO] = O; } else result = createDict(); return Properties === undefined ? result : dPs(result, Properties); }; /***/ }), /* 93 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) var $keys = __webpack_require__(215); var hiddenKeys = __webpack_require__(167).concat('length', 'prototype'); exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { return $keys(O, hiddenKeys); }; /***/ }), /* 94 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) var has = __webpack_require__(51); var toObject = __webpack_require__(36); var IE_PROTO = __webpack_require__(166)('IE_PROTO'); var ObjectProto = Object.prototype; module.exports = Object.getPrototypeOf || function (O) { O = toObject(O); if (has(O, IE_PROTO)) return O[IE_PROTO]; if (typeof O.constructor == 'function' && O instanceof O.constructor) { return O.constructor.prototype; } return O instanceof Object ? ObjectProto : null; }; /***/ }), /* 95 */ /***/ (function(module, exports, __webpack_require__) { // 22.1.3.31 Array.prototype[@@unscopables] var UNSCOPABLES = __webpack_require__(19)('unscopables'); var ArrayProto = Array.prototype; if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(52)(ArrayProto, UNSCOPABLES, {}); module.exports = function (key) { ArrayProto[UNSCOPABLES][key] = true; }; /***/ }), /* 96 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(14); module.exports = function (it, TYPE) { if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); return it; }; /***/ }), /* 97 */ /***/ (function(module, exports, __webpack_require__) { /* eslint-disable node/no-deprecated-api */ var buffer = __webpack_require__(98) var Buffer = buffer.Buffer // alternative to using Object.keys for old browsers function copyProps (src, dst) { for (var key in src) { dst[key] = src[key] } } if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { module.exports = buffer } else { // Copy properties from require('buffer') copyProps(buffer, exports) exports.Buffer = SafeBuffer } function SafeBuffer (arg, encodingOrOffset, length) { return Buffer(arg, encodingOrOffset, length) } // Copy static methods from Buffer copyProps(Buffer, SafeBuffer) SafeBuffer.from = function (arg, encodingOrOffset, length) { if (typeof arg === 'number') { throw new TypeError('Argument must not be a number') } return Buffer(arg, encodingOrOffset, length) } SafeBuffer.alloc = function (size, fill, encoding) { if (typeof size !== 'number') { throw new TypeError('Argument must be a number') } var buf = Buffer(size) if (fill !== undefined) { if (typeof encoding === 'string') { buf.fill(fill, encoding) } else { buf.fill(fill) } } else { buf.fill(0) } return buf } SafeBuffer.allocUnsafe = function (size) { if (typeof size !== 'number') { throw new TypeError('Argument must be a number') } return Buffer(size) } SafeBuffer.allocUnsafeSlow = function (size) { if (typeof size !== 'number') { throw new TypeError('Argument must be a number') } return buffer.SlowBuffer(size) } /***/ }), /* 98 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) {/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ /* eslint-disable no-proto */ var base64 = __webpack_require__(481) var ieee754 = __webpack_require__(482) var isArray = __webpack_require__(483) exports.Buffer = Buffer exports.SlowBuffer = SlowBuffer exports.INSPECT_MAX_BYTES = 50 /** * If `Buffer.TYPED_ARRAY_SUPPORT`: * === true Use Uint8Array implementation (fastest) * === false Use Object implementation (most compatible, even IE6) * * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, * Opera 11.6+, iOS 4.2+. * * Due to various browser bugs, sometimes the Object implementation will be used even * when the browser supports typed arrays. * * Note: * * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. * * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. * * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of * incorrect length in some situations. * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they * get the Object implementation, which is slower but behaves correctly. */ Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport() /* * Export kMaxLength after typed array support is determined. */ exports.kMaxLength = kMaxLength() function typedArraySupport () { try { var arr = new Uint8Array(1) arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} return arr.foo() === 42 && // typed array instances can be augmented typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` } catch (e) { return false } } function kMaxLength () { return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff } function createBuffer (that, length) { if (kMaxLength() < length) { throw new RangeError('Invalid typed array length') } if (Buffer.TYPED_ARRAY_SUPPORT) { // Return an augmented `Uint8Array` instance, for best performance that = new Uint8Array(length) that.__proto__ = Buffer.prototype } else { // Fallback: Return an object instance of the Buffer class if (that === null) { that = new Buffer(length) } that.length = length } return that } /** * The Buffer constructor returns instances of `Uint8Array` that have their * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of * `Uint8Array`, so the returned instances will have all the node `Buffer` methods * and the `Uint8Array` methods. Square bracket notation works as expected -- it * returns a single octet. * * The `Uint8Array` prototype remains unmodified. */ function Buffer (arg, encodingOrOffset, length) { if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { return new Buffer(arg, encodingOrOffset, length) } // Common case. if (typeof arg === 'number') { if (typeof encodingOrOffset === 'string') { throw new Error( 'If encoding is specified then the first argument must be a string' ) } return allocUnsafe(this, arg) } return from(this, arg, encodingOrOffset, length) } Buffer.poolSize = 8192 // not used by this implementation // TODO: Legacy, not needed anymore. Remove in next major version. Buffer._augment = function (arr) { arr.__proto__ = Buffer.prototype return arr } function from (that, value, encodingOrOffset, length) { if (typeof value === 'number') { throw new TypeError('"value" argument must not be a number') } if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { return fromArrayBuffer(that, value, encodingOrOffset, length) } if (typeof value === 'string') { return fromString(that, value, encodingOrOffset) } return fromObject(that, value) } /** * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError * if value is a number. * Buffer.from(str[, encoding]) * Buffer.from(array) * Buffer.from(buffer) * Buffer.from(arrayBuffer[, byteOffset[, length]]) **/ Buffer.from = function (value, encodingOrOffset, length) { return from(null, value, encodingOrOffset, length) } if (Buffer.TYPED_ARRAY_SUPPORT) { Buffer.prototype.__proto__ = Uint8Array.prototype Buffer.__proto__ = Uint8Array if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) { // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 Object.defineProperty(Buffer, Symbol.species, { value: null, configurable: true }) } } function assertSize (size) { if (typeof size !== 'number') { throw new TypeError('"size" argument must be a number') } else if (size < 0) { throw new RangeError('"size" argument must not be negative') } } function alloc (that, size, fill, encoding) { assertSize(size) if (size <= 0) { return createBuffer(that, size) } if (fill !== undefined) { // Only pay attention to encoding if it's a string. This // prevents accidentally sending in a number that would // be interpretted as a start offset. return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill) } return createBuffer(that, size) } /** * Creates a new filled Buffer instance. * alloc(size[, fill[, encoding]]) **/ Buffer.alloc = function (size, fill, encoding) { return alloc(null, size, fill, encoding) } function allocUnsafe (that, size) { assertSize(size) that = createBuffer(that, size < 0 ? 0 : checked(size) | 0) if (!Buffer.TYPED_ARRAY_SUPPORT) { for (var i = 0; i < size; ++i) { that[i] = 0 } } return that } /** * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. * */ Buffer.allocUnsafe = function (size) { return allocUnsafe(null, size) } /** * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. */ Buffer.allocUnsafeSlow = function (size) { return allocUnsafe(null, size) } function fromString (that, string, encoding) { if (typeof encoding !== 'string' || encoding === '') { encoding = 'utf8' } if (!Buffer.isEncoding(encoding)) { throw new TypeError('"encoding" must be a valid string encoding') } var length = byteLength(string, encoding) | 0 that = createBuffer(that, length) var actual = that.write(string, encoding) if (actual !== length) { // Writing a hex string, for example, that contains invalid characters will // cause everything after the first invalid character to be ignored. (e.g. // 'abxxcd' will be treated as 'ab') that = that.slice(0, actual) } return that } function fromArrayLike (that, array) { var length = array.length < 0 ? 0 : checked(array.length) | 0 that = createBuffer(that, length) for (var i = 0; i < length; i += 1) { that[i] = array[i] & 255 } return that } function fromArrayBuffer (that, array, byteOffset, length) { array.byteLength // this throws if `array` is not a valid ArrayBuffer if (byteOffset < 0 || array.byteLength < byteOffset) { throw new RangeError('\'offset\' is out of bounds') } if (array.byteLength < byteOffset + (length || 0)) { throw new RangeError('\'length\' is out of bounds') } if (byteOffset === undefined && length === undefined) { array = new Uint8Array(array) } else if (length === undefined) { array = new Uint8Array(array, byteOffset) } else { array = new Uint8Array(array, byteOffset, length) } if (Buffer.TYPED_ARRAY_SUPPORT) { // Return an augmented `Uint8Array` instance, for best performance that = array that.__proto__ = Buffer.prototype } else { // Fallback: Return an object instance of the Buffer class that = fromArrayLike(that, array) } return that } function fromObject (that, obj) { if (Buffer.isBuffer(obj)) { var len = checked(obj.length) | 0 that = createBuffer(that, len) if (that.length === 0) { return that } obj.copy(that, 0, 0, len) return that } if (obj) { if ((typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer) || 'length' in obj) { if (typeof obj.length !== 'number' || isnan(obj.length)) { return createBuffer(that, 0) } return fromArrayLike(that, obj) } if (obj.type === 'Buffer' && isArray(obj.data)) { return fromArrayLike(that, obj.data) } } throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') } function checked (length) { // Note: cannot use `length < kMaxLength()` here because that fails when // length is NaN (which is otherwise coerced to zero.) if (length >= kMaxLength()) { throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes') } return length | 0 } function SlowBuffer (length) { if (+length != length) { // eslint-disable-line eqeqeq length = 0 } return Buffer.alloc(+length) } Buffer.isBuffer = function isBuffer (b) { return !!(b != null && b._isBuffer) } Buffer.compare = function compare (a, b) { if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { throw new TypeError('Arguments must be Buffers') } if (a === b) return 0 var x = a.length var y = b.length for (var i = 0, len = Math.min(x, y); i < len; ++i) { if (a[i] !== b[i]) { x = a[i] y = b[i] break } } if (x < y) return -1 if (y < x) return 1 return 0 } Buffer.isEncoding = function isEncoding (encoding) { switch (String(encoding).toLowerCase()) { case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'latin1': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return true default: return false } } Buffer.concat = function concat (list, length) { if (!isArray(list)) { throw new TypeError('"list" argument must be an Array of Buffers') } if (list.length === 0) { return Buffer.alloc(0) } var i if (length === undefined) { length = 0 for (i = 0; i < list.length; ++i) { length += list[i].length } } var buffer = Buffer.allocUnsafe(length) var pos = 0 for (i = 0; i < list.length; ++i) { var buf = list[i] if (!Buffer.isBuffer(buf)) { throw new TypeError('"list" argument must be an Array of Buffers') } buf.copy(buffer, pos) pos += buf.length } return buffer } function byteLength (string, encoding) { if (Buffer.isBuffer(string)) { return string.length } if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { return string.byteLength } if (typeof string !== 'string') { string = '' + string } var len = string.length if (len === 0) return 0 // Use a for loop to avoid recursion var loweredCase = false for (;;) { switch (encoding) { case 'ascii': case 'latin1': case 'binary': return len case 'utf8': case 'utf-8': case undefined: return utf8ToBytes(string).length case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return len * 2 case 'hex': return len >>> 1 case 'base64': return base64ToBytes(string).length default: if (loweredCase) return utf8ToBytes(string).length // assume utf8 encoding = ('' + encoding).toLowerCase() loweredCase = true } } } Buffer.byteLength = byteLength function slowToString (encoding, start, end) { var loweredCase = false // No need to verify that "this.length <= MAX_UINT32" since it's a read-only // property of a typed array. // This behaves neither like String nor Uint8Array in that we set start/end // to their upper/lower bounds if the value passed is out of range. // undefined is handled specially as per ECMA-262 6th Edition, // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. if (start === undefined || start < 0) { start = 0 } // Return early if start > this.length. Done here to prevent potential uint32 // coercion fail below. if (start > this.length) { return '' } if (end === undefined || end > this.length) { end = this.length } if (end <= 0) { return '' } // Force coersion to uint32. This will also coerce falsey/NaN values to 0. end >>>= 0 start >>>= 0 if (end <= start) { return '' } if (!encoding) encoding = 'utf8' while (true) { switch (encoding) { case 'hex': return hexSlice(this, start, end) case 'utf8': case 'utf-8': return utf8Slice(this, start, end) case 'ascii': return asciiSlice(this, start, end) case 'latin1': case 'binary': return latin1Slice(this, start, end) case 'base64': return base64Slice(this, start, end) case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return utf16leSlice(this, start, end) default: if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) encoding = (encoding + '').toLowerCase() loweredCase = true } } } // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect // Buffer instances. Buffer.prototype._isBuffer = true function swap (b, n, m) { var i = b[n] b[n] = b[m] b[m] = i } Buffer.prototype.swap16 = function swap16 () { var len = this.length if (len % 2 !== 0) { throw new RangeError('Buffer size must be a multiple of 16-bits') } for (var i = 0; i < len; i += 2) { swap(this, i, i + 1) } return this } Buffer.prototype.swap32 = function swap32 () { var len = this.length if (len % 4 !== 0) { throw new RangeError('Buffer size must be a multiple of 32-bits') } for (var i = 0; i < len; i += 4) { swap(this, i, i + 3) swap(this, i + 1, i + 2) } return this } Buffer.prototype.swap64 = function swap64 () { var len = this.length if (len % 8 !== 0) { throw new RangeError('Buffer size must be a multiple of 64-bits') } for (var i = 0; i < len; i += 8) { swap(this, i, i + 7) swap(this, i + 1, i + 6) swap(this, i + 2, i + 5) swap(this, i + 3, i + 4) } return this } Buffer.prototype.toString = function toString () { var length = this.length | 0 if (length === 0) return '' if (arguments.length === 0) return utf8Slice(this, 0, length) return slowToString.apply(this, arguments) } Buffer.prototype.equals = function equals (b) { if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') if (this === b) return true return Buffer.compare(this, b) === 0 } Buffer.prototype.inspect = function inspect () { var str = '' var max = exports.INSPECT_MAX_BYTES if (this.length > 0) { str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') if (this.length > max) str += ' ... ' } return '' } Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { if (!Buffer.isBuffer(target)) { throw new TypeError('Argument must be a Buffer') } if (start === undefined) { start = 0 } if (end === undefined) { end = target ? target.length : 0 } if (thisStart === undefined) { thisStart = 0 } if (thisEnd === undefined) { thisEnd = this.length } if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { throw new RangeError('out of range index') } if (thisStart >= thisEnd && start >= end) { return 0 } if (thisStart >= thisEnd) { return -1 } if (start >= end) { return 1 } start >>>= 0 end >>>= 0 thisStart >>>= 0 thisEnd >>>= 0 if (this === target) return 0 var x = thisEnd - thisStart var y = end - start var len = Math.min(x, y) var thisCopy = this.slice(thisStart, thisEnd) var targetCopy = target.slice(start, end) for (var i = 0; i < len; ++i) { if (thisCopy[i] !== targetCopy[i]) { x = thisCopy[i] y = targetCopy[i] break } } if (x < y) return -1 if (y < x) return 1 return 0 } // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, // OR the last index of `val` in `buffer` at offset <= `byteOffset`. // // Arguments: // - buffer - a Buffer to search // - val - a string, Buffer, or number // - byteOffset - an index into `buffer`; will be clamped to an int32 // - encoding - an optional encoding, relevant is val is a string // - dir - true for indexOf, false for lastIndexOf function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { // Empty buffer means no match if (buffer.length === 0) return -1 // Normalize byteOffset if (typeof byteOffset === 'string') { encoding = byteOffset byteOffset = 0 } else if (byteOffset > 0x7fffffff) { byteOffset = 0x7fffffff } else if (byteOffset < -0x80000000) { byteOffset = -0x80000000 } byteOffset = +byteOffset // Coerce to Number. if (isNaN(byteOffset)) { // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer byteOffset = dir ? 0 : (buffer.length - 1) } // Normalize byteOffset: negative offsets start from the end of the buffer if (byteOffset < 0) byteOffset = buffer.length + byteOffset if (byteOffset >= buffer.length) { if (dir) return -1 else byteOffset = buffer.length - 1 } else if (byteOffset < 0) { if (dir) byteOffset = 0 else return -1 } // Normalize val if (typeof val === 'string') { val = Buffer.from(val, encoding) } // Finally, search either indexOf (if dir is true) or lastIndexOf if (Buffer.isBuffer(val)) { // Special case: looking for empty string/buffer always fails if (val.length === 0) { return -1 } return arrayIndexOf(buffer, val, byteOffset, encoding, dir) } else if (typeof val === 'number') { val = val & 0xFF // Search for a byte value [0-255] if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') { if (dir) { return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) } else { return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) } } return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) } throw new TypeError('val must be string, number or Buffer') } function arrayIndexOf (arr, val, byteOffset, encoding, dir) { var indexSize = 1 var arrLength = arr.length var valLength = val.length if (encoding !== undefined) { encoding = String(encoding).toLowerCase() if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') { if (arr.length < 2 || val.length < 2) { return -1 } indexSize = 2 arrLength /= 2 valLength /= 2 byteOffset /= 2 } } function read (buf, i) { if (indexSize === 1) { return buf[i] } else { return buf.readUInt16BE(i * indexSize) } } var i if (dir) { var foundIndex = -1 for (i = byteOffset; i < arrLength; i++) { if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { if (foundIndex === -1) foundIndex = i if (i - foundIndex + 1 === valLength) return foundIndex * indexSize } else { if (foundIndex !== -1) i -= i - foundIndex foundIndex = -1 } } } else { if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength for (i = byteOffset; i >= 0; i--) { var found = true for (var j = 0; j < valLength; j++) { if (read(arr, i + j) !== read(val, j)) { found = false break } } if (found) return i } } return -1 } Buffer.prototype.includes = function includes (val, byteOffset, encoding) { return this.indexOf(val, byteOffset, encoding) !== -1 } Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { return bidirectionalIndexOf(this, val, byteOffset, encoding, true) } Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { return bidirectionalIndexOf(this, val, byteOffset, encoding, false) } function hexWrite (buf, string, offset, length) { offset = Number(offset) || 0 var remaining = buf.length - offset if (!length) { length = remaining } else { length = Number(length) if (length > remaining) { length = remaining } } // must be an even number of digits var strLen = string.length if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') if (length > strLen / 2) { length = strLen / 2 } for (var i = 0; i < length; ++i) { var parsed = parseInt(string.substr(i * 2, 2), 16) if (isNaN(parsed)) return i buf[offset + i] = parsed } return i } function utf8Write (buf, string, offset, length) { return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) } function asciiWrite (buf, string, offset, length) { return blitBuffer(asciiToBytes(string), buf, offset, length) } function latin1Write (buf, string, offset, length) { return asciiWrite(buf, string, offset, length) } function base64Write (buf, string, offset, length) { return blitBuffer(base64ToBytes(string), buf, offset, length) } function ucs2Write (buf, string, offset, length) { return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) } Buffer.prototype.write = function write (string, offset, length, encoding) { // Buffer#write(string) if (offset === undefined) { encoding = 'utf8' length = this.length offset = 0 // Buffer#write(string, encoding) } else if (length === undefined && typeof offset === 'string') { encoding = offset length = this.length offset = 0 // Buffer#write(string, offset[, length][, encoding]) } else if (isFinite(offset)) { offset = offset | 0 if (isFinite(length)) { length = length | 0 if (encoding === undefined) encoding = 'utf8' } else { encoding = length length = undefined } // legacy write(string, encoding, offset, length) - remove in v0.13 } else { throw new Error( 'Buffer.write(string, encoding, offset[, length]) is no longer supported' ) } var remaining = this.length - offset if (length === undefined || length > remaining) length = remaining if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { throw new RangeError('Attempt to write outside buffer bounds') } if (!encoding) encoding = 'utf8' var loweredCase = false for (;;) { switch (encoding) { case 'hex': return hexWrite(this, string, offset, length) case 'utf8': case 'utf-8': return utf8Write(this, string, offset, length) case 'ascii': return asciiWrite(this, string, offset, length) case 'latin1': case 'binary': return latin1Write(this, string, offset, length) case 'base64': // Warning: maxLength not taken into account in base64Write return base64Write(this, string, offset, length) case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return ucs2Write(this, string, offset, length) default: if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) encoding = ('' + encoding).toLowerCase() loweredCase = true } } } Buffer.prototype.toJSON = function toJSON () { return { type: 'Buffer', data: Array.prototype.slice.call(this._arr || this, 0) } } function base64Slice (buf, start, end) { if (start === 0 && end === buf.length) { return base64.fromByteArray(buf) } else { return base64.fromByteArray(buf.slice(start, end)) } } function utf8Slice (buf, start, end) { end = Math.min(buf.length, end) var res = [] var i = start while (i < end) { var firstByte = buf[i] var codePoint = null var bytesPerSequence = (firstByte > 0xEF) ? 4 : (firstByte > 0xDF) ? 3 : (firstByte > 0xBF) ? 2 : 1 if (i + bytesPerSequence <= end) { var secondByte, thirdByte, fourthByte, tempCodePoint switch (bytesPerSequence) { case 1: if (firstByte < 0x80) { codePoint = firstByte } break case 2: secondByte = buf[i + 1] if ((secondByte & 0xC0) === 0x80) { tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) if (tempCodePoint > 0x7F) { codePoint = tempCodePoint } } break case 3: secondByte = buf[i + 1] thirdByte = buf[i + 2] if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { codePoint = tempCodePoint } } break case 4: secondByte = buf[i + 1] thirdByte = buf[i + 2] fourthByte = buf[i + 3] if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { codePoint = tempCodePoint } } } } if (codePoint === null) { // we did not generate a valid codePoint so insert a // replacement char (U+FFFD) and advance only 1 byte codePoint = 0xFFFD bytesPerSequence = 1 } else if (codePoint > 0xFFFF) { // encode to utf16 (surrogate pair dance) codePoint -= 0x10000 res.push(codePoint >>> 10 & 0x3FF | 0xD800) codePoint = 0xDC00 | codePoint & 0x3FF } res.push(codePoint) i += bytesPerSequence } return decodeCodePointsArray(res) } // Based on http://stackoverflow.com/a/22747272/680742, the browser with // the lowest limit is Chrome, with 0x10000 args. // We go 1 magnitude less, for safety var MAX_ARGUMENTS_LENGTH = 0x1000 function decodeCodePointsArray (codePoints) { var len = codePoints.length if (len <= MAX_ARGUMENTS_LENGTH) { return String.fromCharCode.apply(String, codePoints) // avoid extra slice() } // Decode in chunks to avoid "call stack size exceeded". var res = '' var i = 0 while (i < len) { res += String.fromCharCode.apply( String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) ) } return res } function asciiSlice (buf, start, end) { var ret = '' end = Math.min(buf.length, end) for (var i = start; i < end; ++i) { ret += String.fromCharCode(buf[i] & 0x7F) } return ret } function latin1Slice (buf, start, end) { var ret = '' end = Math.min(buf.length, end) for (var i = start; i < end; ++i) { ret += String.fromCharCode(buf[i]) } return ret } function hexSlice (buf, start, end) { var len = buf.length if (!start || start < 0) start = 0 if (!end || end < 0 || end > len) end = len var out = '' for (var i = start; i < end; ++i) { out += toHex(buf[i]) } return out } function utf16leSlice (buf, start, end) { var bytes = buf.slice(start, end) var res = '' for (var i = 0; i < bytes.length; i += 2) { res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) } return res } Buffer.prototype.slice = function slice (start, end) { var len = this.length start = ~~start end = end === undefined ? len : ~~end if (start < 0) { start += len if (start < 0) start = 0 } else if (start > len) { start = len } if (end < 0) { end += len if (end < 0) end = 0 } else if (end > len) { end = len } if (end < start) end = start var newBuf if (Buffer.TYPED_ARRAY_SUPPORT) { newBuf = this.subarray(start, end) newBuf.__proto__ = Buffer.prototype } else { var sliceLen = end - start newBuf = new Buffer(sliceLen, undefined) for (var i = 0; i < sliceLen; ++i) { newBuf[i] = this[i + start] } } return newBuf } /* * Need to make sure that buffer isn't trying to write out of bounds. */ function checkOffset (offset, ext, length) { if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') } Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { offset = offset | 0 byteLength = byteLength | 0 if (!noAssert) checkOffset(offset, byteLength, this.length) var val = this[offset] var mul = 1 var i = 0 while (++i < byteLength && (mul *= 0x100)) { val += this[offset + i] * mul } return val } Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { offset = offset | 0 byteLength = byteLength | 0 if (!noAssert) { checkOffset(offset, byteLength, this.length) } var val = this[offset + --byteLength] var mul = 1 while (byteLength > 0 && (mul *= 0x100)) { val += this[offset + --byteLength] * mul } return val } Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { if (!noAssert) checkOffset(offset, 1, this.length) return this[offset] } Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { if (!noAssert) checkOffset(offset, 2, this.length) return this[offset] | (this[offset + 1] << 8) } Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { if (!noAssert) checkOffset(offset, 2, this.length) return (this[offset] << 8) | this[offset + 1] } Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { if (!noAssert) checkOffset(offset, 4, this.length) return ((this[offset]) | (this[offset + 1] << 8) | (this[offset + 2] << 16)) + (this[offset + 3] * 0x1000000) } Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { if (!noAssert) checkOffset(offset, 4, this.length) return (this[offset] * 0x1000000) + ((this[offset + 1] << 16) | (this[offset + 2] << 8) | this[offset + 3]) } Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { offset = offset | 0 byteLength = byteLength | 0 if (!noAssert) checkOffset(offset, byteLength, this.length) var val = this[offset] var mul = 1 var i = 0 while (++i < byteLength && (mul *= 0x100)) { val += this[offset + i] * mul } mul *= 0x80 if (val >= mul) val -= Math.pow(2, 8 * byteLength) return val } Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { offset = offset | 0 byteLength = byteLength | 0 if (!noAssert) checkOffset(offset, byteLength, this.length) var i = byteLength var mul = 1 var val = this[offset + --i] while (i > 0 && (mul *= 0x100)) { val += this[offset + --i] * mul } mul *= 0x80 if (val >= mul) val -= Math.pow(2, 8 * byteLength) return val } Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { if (!noAssert) checkOffset(offset, 1, this.length) if (!(this[offset] & 0x80)) return (this[offset]) return ((0xff - this[offset] + 1) * -1) } Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { if (!noAssert) checkOffset(offset, 2, this.length) var val = this[offset] | (this[offset + 1] << 8) return (val & 0x8000) ? val | 0xFFFF0000 : val } Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { if (!noAssert) checkOffset(offset, 2, this.length) var val = this[offset + 1] | (this[offset] << 8) return (val & 0x8000) ? val | 0xFFFF0000 : val } Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { if (!noAssert) checkOffset(offset, 4, this.length) return (this[offset]) | (this[offset + 1] << 8) | (this[offset + 2] << 16) | (this[offset + 3] << 24) } Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { if (!noAssert) checkOffset(offset, 4, this.length) return (this[offset] << 24) | (this[offset + 1] << 16) | (this[offset + 2] << 8) | (this[offset + 3]) } Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { if (!noAssert) checkOffset(offset, 4, this.length) return ieee754.read(this, offset, true, 23, 4) } Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { if (!noAssert) checkOffset(offset, 4, this.length) return ieee754.read(this, offset, false, 23, 4) } Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { if (!noAssert) checkOffset(offset, 8, this.length) return ieee754.read(this, offset, true, 52, 8) } Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { if (!noAssert) checkOffset(offset, 8, this.length) return ieee754.read(this, offset, false, 52, 8) } function checkInt (buf, value, offset, ext, max, min) { if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') if (offset + ext > buf.length) throw new RangeError('Index out of range') } Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { value = +value offset = offset | 0 byteLength = byteLength | 0 if (!noAssert) { var maxBytes = Math.pow(2, 8 * byteLength) - 1 checkInt(this, value, offset, byteLength, maxBytes, 0) } var mul = 1 var i = 0 this[offset] = value & 0xFF while (++i < byteLength && (mul *= 0x100)) { this[offset + i] = (value / mul) & 0xFF } return offset + byteLength } Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { value = +value offset = offset | 0 byteLength = byteLength | 0 if (!noAssert) { var maxBytes = Math.pow(2, 8 * byteLength) - 1 checkInt(this, value, offset, byteLength, maxBytes, 0) } var i = byteLength - 1 var mul = 1 this[offset + i] = value & 0xFF while (--i >= 0 && (mul *= 0x100)) { this[offset + i] = (value / mul) & 0xFF } return offset + byteLength } Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) this[offset] = (value & 0xff) return offset + 1 } function objectWriteUInt16 (buf, value, offset, littleEndian) { if (value < 0) value = 0xffff + value + 1 for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> (littleEndian ? i : 1 - i) * 8 } } Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value & 0xff) this[offset + 1] = (value >>> 8) } else { objectWriteUInt16(this, value, offset, true) } return offset + 2 } Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value >>> 8) this[offset + 1] = (value & 0xff) } else { objectWriteUInt16(this, value, offset, false) } return offset + 2 } function objectWriteUInt32 (buf, value, offset, littleEndian) { if (value < 0) value = 0xffffffff + value + 1 for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff } } Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset + 3] = (value >>> 24) this[offset + 2] = (value >>> 16) this[offset + 1] = (value >>> 8) this[offset] = (value & 0xff) } else { objectWriteUInt32(this, value, offset, true) } return offset + 4 } Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value >>> 24) this[offset + 1] = (value >>> 16) this[offset + 2] = (value >>> 8) this[offset + 3] = (value & 0xff) } else { objectWriteUInt32(this, value, offset, false) } return offset + 4 } Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { value = +value offset = offset | 0 if (!noAssert) { var limit = Math.pow(2, 8 * byteLength - 1) checkInt(this, value, offset, byteLength, limit - 1, -limit) } var i = 0 var mul = 1 var sub = 0 this[offset] = value & 0xFF while (++i < byteLength && (mul *= 0x100)) { if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { sub = 1 } this[offset + i] = ((value / mul) >> 0) - sub & 0xFF } return offset + byteLength } Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { value = +value offset = offset | 0 if (!noAssert) { var limit = Math.pow(2, 8 * byteLength - 1) checkInt(this, value, offset, byteLength, limit - 1, -limit) } var i = byteLength - 1 var mul = 1 var sub = 0 this[offset + i] = value & 0xFF while (--i >= 0 && (mul *= 0x100)) { if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { sub = 1 } this[offset + i] = ((value / mul) >> 0) - sub & 0xFF } return offset + byteLength } Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) if (value < 0) value = 0xff + value + 1 this[offset] = (value & 0xff) return offset + 1 } Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value & 0xff) this[offset + 1] = (value >>> 8) } else { objectWriteUInt16(this, value, offset, true) } return offset + 2 } Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value >>> 8) this[offset + 1] = (value & 0xff) } else { objectWriteUInt16(this, value, offset, false) } return offset + 2 } Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value & 0xff) this[offset + 1] = (value >>> 8) this[offset + 2] = (value >>> 16) this[offset + 3] = (value >>> 24) } else { objectWriteUInt32(this, value, offset, true) } return offset + 4 } Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) if (value < 0) value = 0xffffffff + value + 1 if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value >>> 24) this[offset + 1] = (value >>> 16) this[offset + 2] = (value >>> 8) this[offset + 3] = (value & 0xff) } else { objectWriteUInt32(this, value, offset, false) } return offset + 4 } function checkIEEE754 (buf, value, offset, ext, max, min) { if (offset + ext > buf.length) throw new RangeError('Index out of range') if (offset < 0) throw new RangeError('Index out of range') } function writeFloat (buf, value, offset, littleEndian, noAssert) { if (!noAssert) { checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) } ieee754.write(buf, value, offset, littleEndian, 23, 4) return offset + 4 } Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { return writeFloat(this, value, offset, true, noAssert) } Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { return writeFloat(this, value, offset, false, noAssert) } function writeDouble (buf, value, offset, littleEndian, noAssert) { if (!noAssert) { checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) } ieee754.write(buf, value, offset, littleEndian, 52, 8) return offset + 8 } Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { return writeDouble(this, value, offset, true, noAssert) } Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { return writeDouble(this, value, offset, false, noAssert) } // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) Buffer.prototype.copy = function copy (target, targetStart, start, end) { if (!start) start = 0 if (!end && end !== 0) end = this.length if (targetStart >= target.length) targetStart = target.length if (!targetStart) targetStart = 0 if (end > 0 && end < start) end = start // Copy 0 bytes; we're done if (end === start) return 0 if (target.length === 0 || this.length === 0) return 0 // Fatal error conditions if (targetStart < 0) { throw new RangeError('targetStart out of bounds') } if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') if (end < 0) throw new RangeError('sourceEnd out of bounds') // Are we oob? if (end > this.length) end = this.length if (target.length - targetStart < end - start) { end = target.length - targetStart + start } var len = end - start var i if (this === target && start < targetStart && targetStart < end) { // descending copy from end for (i = len - 1; i >= 0; --i) { target[i + targetStart] = this[i + start] } } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { // ascending copy from start for (i = 0; i < len; ++i) { target[i + targetStart] = this[i + start] } } else { Uint8Array.prototype.set.call( target, this.subarray(start, start + len), targetStart ) } return len } // Usage: // buffer.fill(number[, offset[, end]]) // buffer.fill(buffer[, offset[, end]]) // buffer.fill(string[, offset[, end]][, encoding]) Buffer.prototype.fill = function fill (val, start, end, encoding) { // Handle string cases: if (typeof val === 'string') { if (typeof start === 'string') { encoding = start start = 0 end = this.length } else if (typeof end === 'string') { encoding = end end = this.length } if (val.length === 1) { var code = val.charCodeAt(0) if (code < 256) { val = code } } if (encoding !== undefined && typeof encoding !== 'string') { throw new TypeError('encoding must be a string') } if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { throw new TypeError('Unknown encoding: ' + encoding) } } else if (typeof val === 'number') { val = val & 255 } // Invalid ranges are not set to a default, so can range check early. if (start < 0 || this.length < start || this.length < end) { throw new RangeError('Out of range index') } if (end <= start) { return this } start = start >>> 0 end = end === undefined ? this.length : end >>> 0 if (!val) val = 0 var i if (typeof val === 'number') { for (i = start; i < end; ++i) { this[i] = val } } else { var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString()) var len = bytes.length for (i = 0; i < end - start; ++i) { this[i + start] = bytes[i % len] } } return this } // HELPER FUNCTIONS // ================ var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g function base64clean (str) { // Node strips out invalid characters like \n and \t from the string, base64-js does not str = stringtrim(str).replace(INVALID_BASE64_RE, '') // Node converts strings with length < 2 to '' if (str.length < 2) return '' // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not while (str.length % 4 !== 0) { str = str + '=' } return str } function stringtrim (str) { if (str.trim) return str.trim() return str.replace(/^\s+|\s+$/g, '') } function toHex (n) { if (n < 16) return '0' + n.toString(16) return n.toString(16) } function utf8ToBytes (string, units) { units = units || Infinity var codePoint var length = string.length var leadSurrogate = null var bytes = [] for (var i = 0; i < length; ++i) { codePoint = string.charCodeAt(i) // is surrogate component if (codePoint > 0xD7FF && codePoint < 0xE000) { // last char was a lead if (!leadSurrogate) { // no lead yet if (codePoint > 0xDBFF) { // unexpected trail if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) continue } else if (i + 1 === length) { // unpaired lead if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) continue } // valid lead leadSurrogate = codePoint continue } // 2 leads in a row if (codePoint < 0xDC00) { if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) leadSurrogate = codePoint continue } // valid surrogate pair codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 } else if (leadSurrogate) { // valid bmp char, but last char was a lead if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) } leadSurrogate = null // encode utf8 if (codePoint < 0x80) { if ((units -= 1) < 0) break bytes.push(codePoint) } else if (codePoint < 0x800) { if ((units -= 2) < 0) break bytes.push( codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80 ) } else if (codePoint < 0x10000) { if ((units -= 3) < 0) break bytes.push( codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80 ) } else if (codePoint < 0x110000) { if ((units -= 4) < 0) break bytes.push( codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80 ) } else { throw new Error('Invalid code point') } } return bytes } function asciiToBytes (str) { var byteArray = [] for (var i = 0; i < str.length; ++i) { // Node's code seems to be doing this and not & 0x7F.. byteArray.push(str.charCodeAt(i) & 0xFF) } return byteArray } function utf16leToBytes (str, units) { var c, hi, lo var byteArray = [] for (var i = 0; i < str.length; ++i) { if ((units -= 2) < 0) break c = str.charCodeAt(i) hi = c >> 8 lo = c % 256 byteArray.push(lo) byteArray.push(hi) } return byteArray } function base64ToBytes (str) { return base64.toByteArray(base64clean(str)) } function blitBuffer (src, dst, offset, length) { for (var i = 0; i < length; ++i) { if ((i + offset >= dst.length) || (i >= src.length)) break dst[i + offset] = src[i] } return i } function isnan (val) { return val !== val // eslint-disable-line no-self-compare } /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(193))) /***/ }), /* 99 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.OpenSubmenuAction = void 0; var MenuAction_1 = __webpack_require__(80); var Helper_1 = __webpack_require__(15); /** * Action, welche ein Untermenü öffnet */ var OpenSubmenuAction = /*#__PURE__*/function (_MenuAction_1$MenuAct) { _inherits(OpenSubmenuAction, _MenuAction_1$MenuAct); var _super = _createSuper(OpenSubmenuAction); /** * Bekommt ein submenu anstelle einer Action übergeben. * Erstellt automatisch die action zum öffnen/schließen des Menüs * * @param title * @param menu * @param showFor * @param order * @param icon */ function OpenSubmenuAction(title, menu, showFor, order, icon) { var _this; _classCallCheck(this, OpenSubmenuAction); //Erstellt die action zum schließen/öffnen des Submenüs _this = _super.call(this, title, function (action) { action.getSubmenu().toggle(); action.update(); }, showFor, order, icon); _this._submenu = menu; menu.setParentAction(_assertThisInitialized(_this)); return _this; } /** * Erstellt eine neue MenuAction auf grundlage dieser MenuAction. Alle Eigenschaften sind identisch, bis auf die ID * und das Submenu, welches ebenfalls kopiert wird * * @param action * @return {MenuAction} */ _createClass(OpenSubmenuAction, [{ key: "copy", value: function copy(action) { action = Helper_1.Helper.nonNull(action, new OpenSubmenuAction(null, this._submenu.copy())); action = _get(_getPrototypeOf(OpenSubmenuAction.prototype), "copy", this).call(this, action); action._submenu.setParentAction(action); return action; } /** * Gibt das Submenu zurück * * @returns {*} */ }, { key: "getSubmenu", value: function getSubmenu() { return this._submenu; } }]); return OpenSubmenuAction; }(MenuAction_1.MenuAction); exports.OpenSubmenuAction = OpenSubmenuAction; /***/ }), /* 100 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.UserManager = void 0; var client_1 = __webpack_require__(4); var User_1 = __webpack_require__(112); var UserManager = /*#__PURE__*/function () { function UserManager() { _classCallCheck(this, UserManager); this._defaultUserData = { id: null, loggedIn: false, online: false, username: null, email: null, accesses: UserManager.OFFLINE_ACCESSES }; this._userData = this._defaultUserData; this._lastLoginChangeCallbackId = -1; this._loginChangeCallbacks = {}; this._getMePromise = null; } _createClass(UserManager, [{ key: "addLoginChangeCallback", value: function addLoginChangeCallback(callback, callImmediately) { this._lastLoginChangeCallbackId++; this._loginChangeCallbacks[this._lastLoginChangeCallbackId] = callback; if (client_1.Helper.nonNull(callImmediately, false)) { callback(this._userData.loggedIn, this); } return this._lastLoginChangeCallbackId; } }, { key: "hasAccess", value: function hasAccess(access) { return this._userData.accesses.indexOf(access) !== -1; } }, { key: "_checkChangedLogin", value: function _checkChangedLogin(before) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!(this._userData.loggedIn !== before.loggedIn || this._userData.loggedIn === true && this._userData.id !== before.id)) { _context.next = 3; break; } _context.next = 3; return this._callLoginChangeCallbacks(); case 3: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "_callLoginChangeCallbacks", value: function _callLoginChangeCallbacks() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var _this = this; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return client_1.Helper.asyncForEach(Object.keys(this._loginChangeCallbacks), function (callbackId) { _this._loginChangeCallbacks[callbackId](_this._userData.loggedIn, _this); }, true); case 2: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "getUserData", value: function getUserData() { return this._userData; } }, { key: "getMe", value: function getMe() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var _this2 = this; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: this._getMePromise = new Promise(function (r) { return __awaiter(_this2, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var before, res; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: before = this._userData; _context3.next = 3; return this._doGetMe(); case 3: res = _context3.sent; _context3.next = 6; return this._checkChangedLogin(before); case 6: r(res); case 7: case "end": return _context3.stop(); } } }, _callee3, this); })); }); return _context4.abrupt("return", this._getMePromise); case 2: case "end": return _context4.stop(); } } }, _callee4, this); })); } }, { key: "waitForGetMe", value: function waitForGetMe() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: if (this._getMePromise === null) { this.getMe(); } _context5.next = 3; return this._getMePromise; case 3: case "end": return _context5.stop(); } } }, _callee5, this); })); } }, { key: "login", value: function login(email, password, saveLogin) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var _this3 = this; var before, res; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: before = this._userData; _context6.next = 3; return this._doLogin(email, password, saveLogin); case 3: res = _context6.sent; //do it after the result is returned setTimeout(function () { _this3._checkChangedLogin(before); }, 1); return _context6.abrupt("return", res); case 6: case "end": return _context6.stop(); } } }, _callee6, this); })); } }, { key: "logout", value: function logout() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { var before, res; return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: before = this._userData; _context7.next = 3; return this._doLogout(); case 3: res = _context7.sent; _context7.next = 6; return this._checkChangedLogin(before); case 6: if (this._userData.loggedIn) { _context7.next = 9; break; } _context7.next = 9; return new client_1.Toast("goodbye").show(); case 9: return _context7.abrupt("return", res); case 10: case "end": return _context7.stop(); } } }, _callee7, this); })); } }, { key: "register", value: function register(email, username, password) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { var before, res; return regeneratorRuntime.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: before = this._userData; _context8.next = 3; return this._doRegister(email, username, password); case 3: res = _context8.sent; _context8.next = 6; return this._checkChangedLogin(before); case 6: return _context8.abrupt("return", res); case 7: case "end": return _context8.stop(); } } }, _callee8, this); })); } }, { key: "_doGetMe", value: function _doGetMe() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { var data; return regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _context9.next = 2; return UserManager.updateHeaders(); case 2: _context9.next = 4; return client_1.DataManager.load("user"); case 4: data = _context9.sent; if (!client_1.Helper.isSet(data, "userData")) { _context9.next = 11; break; } _context9.next = 8; return client_1.NativeStoragePromise.setItem("user-data", data.userData); case 8: this._userData = data.userData; _context9.next = 12; break; case 11: this._userData = this._defaultUserData; case 12: this._updateAccessClasses(); if (!client_1.Helper.isSet(data, "token")) { _context9.next = 23; break; } client_1.DataManager.setHeader("Authorization", "Bearer " + data.token); sessionStorage.setItem("auth-token", data.token); _context9.t0 = client_1.Helper; _context9.next = 19; return client_1.NativeStoragePromise.getItem("auth-token"); case 19: _context9.t1 = _context9.sent; if (!_context9.t0.isNotNull.call(_context9.t0, _context9.t1)) { _context9.next = 23; break; } _context9.next = 23; return client_1.NativeStoragePromise.setItem("auth-token", data.token); case 23: case "end": return _context9.stop(); } } }, _callee9, this); })); } }, { key: "_doLogin", value: function _doLogin(email, password, saveLogin) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee10() { var data; return regeneratorRuntime.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: _context10.next = 2; return client_1.DataManager.send("user/login", { "email": email, "password": password }); case 2: data = _context10.sent; if (!data.success) { _context10.next = 14; break; } client_1.DataManager.setHeader("Authorization", "Bearer " + data.token); sessionStorage.setItem("auth-token", data.token); _context10.next = 8; return this._doGetMe(); case 8: if (!saveLogin) { _context10.next = 11; break; } _context10.next = 11; return client_1.NativeStoragePromise.setItem("auth-token", data.token); case 11: return _context10.abrupt("return", true); case 14: client_1.DataManager.setHeader("Authorization", ""); sessionStorage.setItem("auth-token", ""); _context10.next = 18; return client_1.NativeStoragePromise.setItem("auth-token", ""); case 18: _context10.next = 20; return new client_1.Toast(data.message).show(); case 20: return _context10.abrupt("return", false); case 21: case "end": return _context10.stop(); } } }, _callee10, this); })); } }, { key: "_doLogout", value: function _doLogout() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee11() { return regeneratorRuntime.wrap(function _callee11$(_context11) { while (1) { switch (_context11.prev = _context11.next) { case 0: client_1.DataManager.setHeader("Authorization", ""); sessionStorage.setItem("auth-token", ""); _context11.next = 4; return client_1.NativeStoragePromise.setItem("auth-token", ""); case 4: _context11.next = 6; return this._doGetMe(); case 6: return _context11.abrupt("return", true); case 7: case "end": return _context11.stop(); } } }, _callee11, this); })); } }, { key: "_doRegister", value: function _doRegister(email, username, password) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee12() { var data; return regeneratorRuntime.wrap(function _callee12$(_context12) { while (1) { switch (_context12.prev = _context12.next) { case 0: _context12.next = 2; return client_1.DataManager.send("user/register", { "email": email, "username": username, "password": password }); case 2: data = _context12.sent; if (!data.success) { _context12.next = 11; break; } client_1.DataManager.setHeader("Authorization", "Bearer " + data.token); sessionStorage.setItem("auth-token", data.token); _context12.next = 8; return this._doGetMe(); case 8: return _context12.abrupt("return", true); case 11: client_1.DataManager.setHeader("Authorization", ""); sessionStorage.setItem("auth-token", ""); _context12.next = 15; return client_1.NativeStoragePromise.setItem("auth-token", ""); case 15: _context12.next = 17; return new client_1.Toast(data.message).show(); case 17: return _context12.abrupt("return", false); case 18: case "end": return _context12.stop(); } } }, _callee12, this); })); } /** * @returns {UserManager} */ }, { key: "_updateAccessClasses", value: function _updateAccessClasses() { document.body.classList.forEach(function (cl) { if (cl.startsWith(UserManager.ACCESS_CLASS_PREFIX)) { document.body.classList.remove(cl); } }); this._userData.accesses.forEach(function (access) { document.body.classList.add(UserManager.ACCESS_CLASS_PREFIX + access); }); } }, { key: "hasOfflineAccess", value: function hasOfflineAccess(access) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee13() { var offlineData; return regeneratorRuntime.wrap(function _callee13$(_context13) { while (1) { switch (_context13.prev = _context13.next) { case 0: if (!this.isOnline()) { _context13.next = 2; break; } return _context13.abrupt("return", false); case 2: _context13.t0 = client_1.Helper; _context13.next = 5; return client_1.NativeStoragePromise.getItem("user-data"); case 5: _context13.t1 = _context13.sent; _context13.t2 = { accesses: UserManager.OFFLINE_ACCESSES }; offlineData = _context13.t0.nonNull.call(_context13.t0, _context13.t1, _context13.t2); return _context13.abrupt("return", offlineData.accesses.indexOf(access) !== -1); case 9: case "end": return _context13.stop(); } } }, _callee13, this); })); } }, { key: "sendForgotPasswordEmail", value: function sendForgotPasswordEmail(email) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee14() { var data; return regeneratorRuntime.wrap(function _callee14$(_context14) { while (1) { switch (_context14.prev = _context14.next) { case 0: _context14.next = 2; return client_1.DataManager.send("user/forgotPW", { email: email }); case 2: data = _context14.sent; return _context14.abrupt("return", data.success); case 4: case "end": return _context14.stop(); } } }, _callee14); })); } }, { key: "resetPassword", value: function resetPassword(token, password) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee15() { var data; return regeneratorRuntime.wrap(function _callee15$(_context15) { while (1) { switch (_context15.prev = _context15.next) { case 0: _context15.next = 2; return client_1.DataManager.send("user/forgotPW/2", { token: token, password: password }); case 2: data = _context15.sent; return _context15.abrupt("return", data.success); case 4: case "end": return _context15.stop(); } } }, _callee15); })); } }, { key: "isOnline", value: function isOnline() { return this._userData.online; } }, { key: "isLoggedIn", value: function isLoggedIn() { return this._userData.loggedIn; } }], [{ key: "getInstance", value: function getInstance() { if (!UserManager._instance) { UserManager._instance = new UserManager(); } return UserManager._instance; } }, { key: "updateHeaders", value: function updateHeaders() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee16() { var token; return regeneratorRuntime.wrap(function _callee16$(_context16) { while (1) { switch (_context16.prev = _context16.next) { case 0: _context16.t0 = client_1.Helper; _context16.t1 = sessionStorage.getItem("auth-token"); _context16.next = 4; return client_1.NativeStoragePromise.getItem("auth-token"); case 4: _context16.t2 = _context16.sent; token = _context16.t0.nonNull.call(_context16.t0, _context16.t1, _context16.t2); if (token) { client_1.DataManager.setHeader("Authorization", "Bearer " + token); } case 7: case "end": return _context16.stop(); } } }, _callee16); })); } }, { key: "syncParamFor", value: function syncParamFor(model) { return { model: model, where: { user: { id: this.getInstance().getUserData().id } } }; } }, { key: "userSyncParam", value: function userSyncParam() { return { model: User_1.User, where: { id: this.getInstance().getUserData().id } }; } }]); return UserManager; }(); exports.UserManager = UserManager; UserManager.ACCESS_CLASS_PREFIX = "access-"; UserManager.OFFLINE_ACCESSES = ["offline"]; /***/ }), /* 101 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return UpdateValuesMissingError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Thrown when user tries to update using QueryBuilder but do not specify what to update. */ var UpdateValuesMissingError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(UpdateValuesMissingError, _super); function UpdateValuesMissingError() { var _this = _super.call(this) || this; _this.name = "UpdateValuesMissingError"; Object.setPrototypeOf(_this, UpdateValuesMissingError.prototype); _this.message = "Cannot perform update query because update values are not defined. Call \"qb.set(...)\" method to specify updated values."; return _this; } return UpdateValuesMissingError; }(Error)); //# sourceMappingURL=UpdateValuesMissingError.js.map /***/ }), /* 102 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return OptimisticLockCanNotBeUsedError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Thrown when an optimistic lock cannot be used in query builder. */ var OptimisticLockCanNotBeUsedError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(OptimisticLockCanNotBeUsedError, _super); function OptimisticLockCanNotBeUsedError() { var _this = _super.call(this) || this; _this.name = "OptimisticLockCanNotBeUsedError"; Object.setPrototypeOf(_this, OptimisticLockCanNotBeUsedError.prototype); _this.message = "The optimistic lock can be used only with getOne() method."; return _this; } return OptimisticLockCanNotBeUsedError; }(Error)); //# sourceMappingURL=OptimisticLockCanNotBeUsedError.js.map /***/ }), /* 103 */ /***/ (function(module, exports, __webpack_require__) { var def = __webpack_require__(29).f; var has = __webpack_require__(51); var TAG = __webpack_require__(19)('toStringTag'); module.exports = function (it, tag, stat) { if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); }; /***/ }), /* 104 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(3); var defined = __webpack_require__(76); var fails = __webpack_require__(12); var spaces = __webpack_require__(170); var space = '[' + spaces + ']'; var non = '\u200b\u0085'; var ltrim = RegExp('^' + space + space + '*'); var rtrim = RegExp(space + space + '*$'); var exporter = function (KEY, exec, ALIAS) { var exp = {}; var FORCE = fails(function () { return !!spaces[KEY]() || non[KEY]() != non; }); var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY]; if (ALIAS) exp[ALIAS] = fn; $export($export.P + $export.F * FORCE, 'String', exp); }; // 1 -> String#trimLeft // 2 -> String#trimRight // 3 -> String#trim var trim = exporter.trim = function (string, TYPE) { string = String(defined(string)); if (TYPE & 1) string = string.replace(ltrim, ''); if (TYPE & 2) string = string.replace(rtrim, ''); return string; }; module.exports = exporter; /***/ }), /* 105 */ /***/ (function(module, exports) { module.exports = {}; /***/ }), /* 106 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(11); var dP = __webpack_require__(29); var DESCRIPTORS = __webpack_require__(28); var SPECIES = __webpack_require__(19)('species'); module.exports = function (KEY) { var C = global[KEY]; if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { configurable: true, get: function () { return this; } }); }; /***/ }), /* 107 */ /***/ (function(module, exports) { module.exports = function (it, Constructor, name, forbiddenField) { if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) { throw TypeError(name + ': incorrect invocation!'); } return it; }; /***/ }), /* 108 */ /***/ (function(module, exports, __webpack_require__) { var redefine = __webpack_require__(45); module.exports = function (target, src, safe) { for (var key in src) redefine(target, key, src[key], safe); return target; }; /***/ }), /* 109 */ /***/ (function(module, exports) { if (typeof Object.create === 'function') { // implementation from standard node.js 'util' module module.exports = function inherits(ctor, superCtor) { if (superCtor) { ctor.super_ = superCtor ctor.prototype = Object.create(superCtor.prototype, { constructor: { value: ctor, enumerable: false, writable: true, configurable: true } }) } }; } else { // old school shim for old browsers module.exports = function inherits(ctor, superCtor) { if (superCtor) { ctor.super_ = superCtor var TempCtor = function () {} TempCtor.prototype = superCtor.prototype ctor.prototype = new TempCtor() ctor.prototype.constructor = ctor } } } /***/ }), /* 110 */ /***/ (function(module, exports, __webpack_require__) { var Buffer = __webpack_require__(97).Buffer // prototype class for hash functions function Hash (blockSize, finalSize) { this._block = Buffer.alloc(blockSize) this._finalSize = finalSize this._blockSize = blockSize this._len = 0 } Hash.prototype.update = function (data, enc) { if (typeof data === 'string') { enc = enc || 'utf8' data = Buffer.from(data, enc) } var block = this._block var blockSize = this._blockSize var length = data.length var accum = this._len for (var offset = 0; offset < length;) { var assigned = accum % blockSize var remainder = Math.min(length - offset, blockSize - assigned) for (var i = 0; i < remainder; i++) { block[assigned + i] = data[offset + i] } accum += remainder offset += remainder if ((accum % blockSize) === 0) { this._update(block) } } this._len += length return this } Hash.prototype.digest = function (enc) { var rem = this._len % this._blockSize this._block[rem] = 0x80 // zero (rem + 1) trailing bits, where (rem + 1) is the smallest // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize this._block.fill(0, rem + 1) if (rem >= this._finalSize) { this._update(this._block) this._block.fill(0) } var bits = this._len * 8 // uint32 if (bits <= 0xffffffff) { this._block.writeUInt32BE(bits, this._blockSize - 4) // uint64 } else { var lowBits = (bits & 0xffffffff) >>> 0 var highBits = (bits - lowBits) / 0x100000000 this._block.writeUInt32BE(highBits, this._blockSize - 8) this._block.writeUInt32BE(lowBits, this._blockSize - 4) } this._update(this._block) var hash = this._hash() return enc ? hash.toString(enc) : hash } Hash.prototype._update = function () { throw new Error('_update must be implemented by subclass') } module.exports = Hash /***/ }), /* 111 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Context = void 0; var Helper_1 = __webpack_require__(15); var ViewInflater_1 = __webpack_require__(54); /** * Basis-Klasse für Seiten und Fragmente */ var Context = /*#__PURE__*/function () { /** * Erstellt einen neuen Context. Erwartet den Link zu einem HTML-File, welches vom ViewInflater geladen werden kann. * Im Constructor sollten fragmente hinzugefügt werden (nachdem super.constructor(<>) aufgerufen wurde) * * @param view */ function Context(view) { var _this = this; _classCallCheck(this, Context); this.onViewLoadedCalled = false; this._pauseParameters = []; this._view = null; this._fragments = []; this._state = Context.STATE_CREATED; this._viewLoadedPromise = Helper_1.Helper.newPromiseWithResolve(); this._viewPromise = ViewInflater_1.ViewInflater.getInstance().load(view).then(function (siteContent) { _this._view = siteContent; return siteContent; }).catch(function (e) { // @ts-ignore _this._viewLoadedPromise.reject(e); }); } _createClass(Context, [{ key: "getState", value: function getState() { return this._state; } /** * Wird von SiteManager aufgerufen, wenn Klasse erstellt wird. Das ViewPromise ist noch nicht zwangsweise geladen! * Gibt ein Promise zurück. onViewLoaded wird erst aufgerufen, wenn onConstruct-Promise und view-Promise fullfilled sind. * * @param constructParameters, Object|Null * @returns {Promise} */ }, { key: "onConstruct", value: function onConstruct(constructParameters) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var onConstructPromises, k; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: this._state = Context.STATE_CONSTRUCTED; this.constructParameters = constructParameters; onConstructPromises = []; for (k in this._fragments) { onConstructPromises.push(this._fragments[k].onConstruct.apply(this._fragments[k], [constructParameters])); onConstructPromises.push(this._fragments[k]._viewPromise); } return _context.abrupt("return", Promise.all(onConstructPromises)); case 5: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "callOnViewLoaded", value: function callOnViewLoaded() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var res; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: if (this.onViewLoadedCalled) { _context2.next = 6; break; } this.onViewLoadedCalled = true; _context2.next = 4; return this.onViewLoaded(); case 4: res = _context2.sent; // @ts-ignore this._viewLoadedPromise.resolve(res); case 6: return _context2.abrupt("return", this._viewLoadedPromise); case 7: case "end": return _context2.stop(); } } }, _callee2, this); })); } /** * Methode wird aufgerufen, sobald onConstruct-Promise und view-Promise fullfilled sind. * View ist hier noch nicht im Dokument hinzugefügt. * * Benutze diese Methode, um die View beim starten zu manipulieren. */ }, { key: "onViewLoaded", value: function onViewLoaded() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var _this2 = this; var onViewLoadedPromises, _loop, k; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: this._state = Context.STATE_VIEW_LOADED; onViewLoadedPromises = []; _loop = function _loop(k) { onViewLoadedPromises.push(_this2._fragments[k]._viewPromise.then(function () { return _this2._fragments[k].callOnViewLoaded(); }).then(function () { return _this2._fragments[k]._viewLoadedPromise.resolve(); })); }; for (k in this._fragments) { _loop(k); } return _context3.abrupt("return", Promise.all(onViewLoadedPromises)); case 5: case "end": return _context3.stop(); } } }, _callee3, this); })); } /** * onViewLoaded-Promise ist erfüllt => View wird dem Document hinzugefügt => onStart wird aufgerufen * * Seite wird pausiert => onPause wird aufgerufen => View wird aus dem Document entfernt => - etwas passiert - * => Seite wird fortgesetzt => View wird dem Document hinzugefügt => onStart wird mit dem Rückgabewert von onPause ausgeführt * * Zurückgegebenes Promise wird ignoriert! * @param pauseArguments, Object|NULL */ }, { key: "onStart", value: function onStart(pauseArguments) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var _this3 = this; var _loop2, k; return regeneratorRuntime.wrap(function _callee4$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: this._state = Context.STATE_RUNNING; _loop2 = /*#__PURE__*/regeneratorRuntime.mark(function _loop2(k) { var fragment; return regeneratorRuntime.wrap(function _loop2$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: fragment = _this3._fragments[k]; _context4.t0 = fragment.onStart; _context4.t1 = _this3._fragments[k]; _context4.next = 5; return _this3._fragments[k]._pauseParameters; case 5: _context4.t2 = _context4.sent; _context4.t3 = [_context4.t2]; _context4.t0.apply.call(_context4.t0, _context4.t1, _context4.t3); _this3._fragments[k]._viewPromise.then(function (fragmentView) { if (fragment.isActive()) { fragmentView.classList.remove("hidden"); } else { fragmentView.classList.add("hidden"); } }); case 9: case "end": return _context4.stop(); } } }, _loop2); }); _context5.t0 = regeneratorRuntime.keys(this._fragments); case 3: if ((_context5.t1 = _context5.t0()).done) { _context5.next = 8; break; } k = _context5.t1.value; return _context5.delegateYield(_loop2(k), "t2", 6); case 6: _context5.next = 3; break; case 8: case "end": return _context5.stop(); } } }, _callee4, this); })); } /** * Seite wird pausiet => onPause wird ausgeführt => View wird aus dem Document entfernt * Seite wird beendet => onPause wird ausgeführt (falls State === running) => View wird aus dem Document entfernt * => onDestroy wird ausgeführt * * Rückgabe-Promise wird als Pause-Parameter gespeichert und wird beim Fortsetzen der Seite ausgeführt * @returns {Promise} */ }, { key: "onPause", value: function onPause() { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var k, pauseParameters; return regeneratorRuntime.wrap(function _callee5$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: this._state = Context.STATE_PAUSED; for (k in this._fragments) { pauseParameters = this._fragments[k].onPause.apply(this._fragments[k], args); this._fragments[k].setPauseParameters(pauseParameters); } case 2: case "end": return _context6.stop(); } } }, _callee5, this); })); } /** * Seite wird beendet => onPause wird ausgeführt (falls State === running) => View wird aus dem Document entfernt * => onDestroy wird ausgeführt * * Rückgabe-Promise wird ignoriert */ }, { key: "onDestroy", value: function onDestroy() { for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var k; return regeneratorRuntime.wrap(function _callee6$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: this._state = Context.STATE_DESTROYED; for (k in this._fragments) { this._fragments[k].onDestroy.apply(this._fragments[k], args); } case 2: case "end": return _context7.stop(); } } }, _callee6, this); })); } }, { key: "isShowing", value: function isShowing() { return this._state === Context.STATE_RUNNING; } /** * Fügt ein neues Fragment hinzu. * * @param viewQuery * @param fragment */ }, { key: "addFragment", value: function addFragment(viewQuery, fragment) { var _this4 = this; this._fragments.push(fragment); fragment.setViewQuery(viewQuery); this._viewPromise = Promise.all([this._viewPromise, fragment._viewPromise]).then(function (res) { res[0].querySelector(viewQuery).appendChild(res[1]); return res[0]; }).catch(function (e) { return console.error(e); }); if (this._state >= Context.STATE_CONSTRUCTED) { fragment.onConstruct(this.constructParameters); } if (this._state >= Context.STATE_VIEW_LOADED) { Promise.all([this._viewLoadedPromise, fragment.getViewPromise()]).then(function () { return fragment.callOnViewLoaded(); }); } if (this._state >= Context.STATE_RUNNING) { fragment._viewLoadedPromise.then(function () { if (_this4._state >= Context.STATE_RUNNING) { fragment.onStart(); } }); } } /** * Entfernt ein Fragment. * * @param fragment */ }, { key: "removeFragment", value: function removeFragment(fragment) { var index = this._fragments.indexOf(fragment); if (index !== -1) { this._fragments.splice(index, 1); } fragment._viewPromise.then(function (res) { return res.remove(); }); this._fragments.push(fragment); if (this._state < Context.STATE_PAUSED) { fragment.onPause(); } if (this._state < Context.STATE_DESTROYING) { fragment.onDestroy(); } } /** * Findet ein Element anhand eines Selectors * * Wenn all = true, werden alle gefundenen Elemente zurückgegeben * * Wenn asPromise = true, wird das Ergebnis als Promise zurückgegeben. Hier wird gewartet, bis das _viewPromise fullfilled ist * Nutze das, um die View in onConstruct zu manipulieren. Evtl entfernen * * @param query * @param all * @param asPromise * @returns {*} */ }, { key: "findBy", value: function findBy(query, all, asPromise) { all = Helper_1.Helper.nonNull(all, false); asPromise = Helper_1.Helper.nonNull(asPromise, false); var getVal = function getVal(root) { var res = null; if (all) { res = root.querySelectorAll(query); if (root.matches(query)) { res.push(root); } } else { if (root.matches(query)) { res = root; } else { res = root.querySelector(query); } } return res; }; if (asPromise) { return this._viewPromise.then(function (rootView) { return getVal(rootView); }); } return getVal(this._view); } }, { key: "find", value: function find(selector) { if (this._view.matches(selector)) { return this._view; } else { return this._view.querySelector(selector); } } }, { key: "findAll", value: function findAll(selector) { var res = this._view.querySelectorAll(selector); if (this._view.matches(selector)) { res.push(this._view); } return res; } /** * Setzt die PauseParameters * @param pauseParameters */ }, { key: "setPauseParameters", value: function setPauseParameters(pauseParameters) { this._pauseParameters = pauseParameters; } /** * Gibt das ViewPromise zurück * @returns {*} */ }, { key: "getViewPromise", value: function getViewPromise() { return this._viewPromise; } }]); return Context; }(); exports.Context = Context; Context.STATE_CREATED = 0; Context.STATE_CONSTRUCTED = 1; Context.STATE_VIEW_LOADED = 2; Context.STATE_RUNNING = 3; Context.STATE_PAUSED = 4; Context.STATE_DESTROYING = 5; Context.STATE_DESTROYED = 6; /***/ }), /* 112 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.User = void 0; var shared_1 = __webpack_require__(127); var cordova_sites_database_1 = __webpack_require__(20); var Role_1 = __webpack_require__(203); var User = /*#__PURE__*/function (_shared_1$EasySyncBas) { _inherits(User, _shared_1$EasySyncBas); var _super = _createSuper(User); function User() { var _this; _classCallCheck(this, User); _this = _super.call(this); _this.username = null; _this.email = null; _this.password = null; _this.roles = null; _this.activated = false; _this.blocked = false; _this.salt = null; return _this; } _createClass(User, [{ key: "toJSON", value: function toJSON() { return { id: this.id, username: this.username }; } }], [{ key: "getColumnDefinitions", value: function getColumnDefinitions() { var columns = _get(_getPrototypeOf(User), "getColumnDefinitions", this).call(this); columns["username"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.STRING, unique: true }; columns["email"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.STRING, unique: true }; columns["password"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.STRING }; columns["activated"] = cordova_sites_database_1.BaseDatabase.TYPES.BOOLEAN; columns["blocked"] = cordova_sites_database_1.BaseDatabase.TYPES.BOOLEAN; columns["salt"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.STRING }; return columns; } }, { key: "getRelationDefinitions", value: function getRelationDefinitions() { var relations = _get(_getPrototypeOf(User), "getRelationDefinitions", this).call(this); relations["roles"] = { target: Role_1.Role.getSchemaName(), type: "many-to-many", joinTable: { name: "userRole" }, cascade: false }; return relations; } }, { key: "prepareSync", value: function prepareSync(entities) { var jsonEntities = []; entities.forEach(function (entity) { var jsonEntity = {}; jsonEntity.id = entity.id; jsonEntity.createdAt = new Date(); jsonEntity.updatedAt = new Date(); jsonEntity.username = ""; jsonEntity.email = ""; jsonEntity.password = ""; jsonEntity.salt = ""; jsonEntity.activated = 1; jsonEntity.blocked = 1; jsonEntity.version = 1; jsonEntity.deleted = 0; jsonEntities.push(jsonEntity); }); return jsonEntities; } }]); return User; }(shared_1.EasySyncBaseModel); exports.User = User; cordova_sites_database_1.BaseDatabase.addModel(User); /***/ }), /* 113 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return EntityNotFoundError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(47); /** * Thrown when no result could be found in methods which are not allowed to return undefined or an empty set. */ var EntityNotFoundError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(EntityNotFoundError, _super); function EntityNotFoundError(entityClass, criteria) { var _this = _super.call(this) || this; _this.name = "EntityNotFound"; Object.setPrototypeOf(_this, EntityNotFoundError.prototype); var targetName; if (entityClass instanceof _index__WEBPACK_IMPORTED_MODULE_1__["EntitySchema"]) { targetName = entityClass.options.name; } else if (typeof entityClass === "function") { targetName = entityClass.name; } else if (typeof entityClass === "object" && "name" in entityClass) { targetName = entityClass.name; } else { targetName = entityClass; } var criteriaString = _this.stringifyCriteria(criteria); _this.message = "Could not find any entity of type \"" + targetName + "\" matching: " + criteriaString; return _this; } EntityNotFoundError.prototype.stringifyCriteria = function (criteria) { try { return JSON.stringify(criteria, null, 4); } catch (e) { } return "" + criteria; }; return EntityNotFoundError; }(Error)); //# sourceMappingURL=EntityNotFoundError.js.map /***/ }), /* 114 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return EntityColumnNotFound; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * */ var EntityColumnNotFound = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(EntityColumnNotFound, _super); function EntityColumnNotFound(propertyPath) { var _this = _super.call(this) || this; _this.name = "EntityColumnNotFound"; Object.setPrototypeOf(_this, EntityColumnNotFound.prototype); _this.message = "No entity column \"" + propertyPath + "\" was found."; return _this; } return EntityColumnNotFound; }(Error)); //# sourceMappingURL=EntityColumnNotFound.js.map /***/ }), /* 115 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return UpdateResult; }); /** * Result object returned by UpdateQueryBuilder execution. */ var UpdateResult = /** @class */ (function () { function UpdateResult() { /** * Contains inserted entity id. * Has entity-like structure (not just column database name and values). */ // identifier: ObjectLiteral[] = []; /** * Generated values returned by a database. * Has entity-like structure (not just column database name and values). */ this.generatedMaps = []; } return UpdateResult; }()); //# sourceMappingURL=UpdateResult.js.map /***/ }), /* 116 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LimitOnUpdateNotSupportedError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Thrown when user tries to build an UPDATE query with LIMIT but the database does not support it. */ var LimitOnUpdateNotSupportedError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(LimitOnUpdateNotSupportedError, _super); function LimitOnUpdateNotSupportedError() { var _this = _super.call(this) || this; _this.name = "LimitOnUpdateNotSupportedError"; Object.setPrototypeOf(_this, LimitOnUpdateNotSupportedError.prototype); _this.message = "Your database does not support LIMIT on UPDATE statements."; return _this; } return LimitOnUpdateNotSupportedError; }(Error)); //# sourceMappingURL=LimitOnUpdateNotSupportedError.js.map /***/ }), /* 117 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, "SelectQueryBuilder", function() { return /* binding */ SelectQueryBuilder_SelectQueryBuilder; }); // EXTERNAL MODULE: ./node_modules/typeorm/node_modules/tslib/tslib.es6.js var tslib_es6 = __webpack_require__(0); // EXTERNAL MODULE: ./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js var BrowserDisabledDriversDummy = __webpack_require__(1); // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js var RawSqlResultsToEntityTransformer = __webpack_require__(287); // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/PessimisticLockTransactionRequiredError.js var PessimisticLockTransactionRequiredError = __webpack_require__(153); // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/NoVersionOrUpdateDateColumnError.js var NoVersionOrUpdateDateColumnError = __webpack_require__(154); // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/OptimisticLockVersionMismatchError.js var OptimisticLockVersionMismatchError = __webpack_require__(130); // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/OptimisticLockCanNotBeUsedError.js var OptimisticLockCanNotBeUsedError = __webpack_require__(102); // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/JoinAttribute.js var JoinAttribute = __webpack_require__(162); // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/relation-id/RelationIdAttribute.js var RelationIdAttribute = __webpack_require__(118); // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/relation-count/RelationCountAttribute.js var RelationCountAttribute = __webpack_require__(119); // EXTERNAL MODULE: ./node_modules/typeorm/browser/driver/DriverUtils.js var DriverUtils = __webpack_require__(21); // CONCATENATED MODULE: ./node_modules/typeorm/browser/query-builder/relation-id/RelationIdLoader.js var RelationIdLoader_RelationIdLoader = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function RelationIdLoader(connection, queryRunner, relationIdAttributes) { this.connection = connection; this.queryRunner = queryRunner; this.relationIdAttributes = relationIdAttributes; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- RelationIdLoader.prototype.load = function (rawEntities) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var promises; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { promises = this.relationIdAttributes.map(function (relationIdAttr) { return Object(tslib_es6["b" /* __awaiter */])(_this, void 0, void 0, function () { var duplicates_1, results, relation_1, joinColumns_1, table, tableName, tableAlias_1, duplicates_2, parameters_1, condition, qb_1, results, relation, joinColumns_2, inverseJoinColumns_1, junctionAlias_1, inverseSideTableName, inverseSideTableAlias_1, junctionTableName, mappedColumns, parameters_2, duplicates_3, joinColumnConditions, inverseJoinColumnCondition_1, condition, qb_2, results; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (!(relationIdAttr.relation.isManyToOne || relationIdAttr.relation.isOneToOneOwner)) return [3 /*break*/, 1]; // example: Post and Tag // loadRelationIdAndMap("post.tagId", "post.tag") // we expect it to load id of tag if (relationIdAttr.queryBuilderFactory) throw new Error("Additional condition can not be used with ManyToOne or OneToOne owner relations."); duplicates_1 = []; results = rawEntities.map(function (rawEntity) { var result = {}; var duplicateParts = []; relationIdAttr.relation.joinColumns.forEach(function (joinColumn) { result[joinColumn.databaseName] = _this.connection.driver.prepareHydratedValue(rawEntity[DriverUtils["a" /* DriverUtils */].buildColumnAlias(_this.connection.driver, relationIdAttr.parentAlias, joinColumn.databaseName)], joinColumn.referencedColumn); var duplicatePart = joinColumn.databaseName + ":" + result[joinColumn.databaseName]; if (duplicateParts.indexOf(duplicatePart) === -1) { duplicateParts.push(duplicatePart); } }); relationIdAttr.relation.entityMetadata.primaryColumns.forEach(function (primaryColumn) { result[primaryColumn.databaseName] = _this.connection.driver.prepareHydratedValue(rawEntity[DriverUtils["a" /* DriverUtils */].buildColumnAlias(_this.connection.driver, relationIdAttr.parentAlias, primaryColumn.databaseName)], primaryColumn); var duplicatePart = primaryColumn.databaseName + ":" + result[primaryColumn.databaseName]; if (duplicateParts.indexOf(duplicatePart) === -1) { duplicateParts.push(duplicatePart); } }); duplicateParts.sort(); var duplicate = duplicateParts.join("::"); if (duplicates_1.indexOf(duplicate) !== -1) { return null; } duplicates_1.push(duplicate); return result; }).filter(function (v) { return v; }); return [2 /*return*/, { relationIdAttribute: relationIdAttr, results: results }]; case 1: if (!(relationIdAttr.relation.isOneToMany || relationIdAttr.relation.isOneToOneNotOwner)) return [3 /*break*/, 3]; relation_1 = relationIdAttr.relation; joinColumns_1 = relation_1.isOwning ? relation_1.joinColumns : relation_1.inverseRelation.joinColumns; table = relation_1.inverseEntityMetadata.target; tableName = relation_1.inverseEntityMetadata.tableName; tableAlias_1 = relationIdAttr.alias || tableName; duplicates_2 = []; parameters_1 = {}; condition = rawEntities.map(function (rawEntity, index) { var duplicateParts = []; var parameterParts = {}; var queryPart = joinColumns_1.map(function (joinColumn) { var parameterName = joinColumn.databaseName + index; var parameterValue = rawEntity[DriverUtils["a" /* DriverUtils */].buildColumnAlias(_this.connection.driver, relationIdAttr.parentAlias, joinColumn.referencedColumn.databaseName)]; var duplicatePart = tableAlias_1 + ":" + joinColumn.propertyPath + ":" + parameterValue; if (duplicateParts.indexOf(duplicatePart) !== -1) { return ""; } duplicateParts.push(duplicatePart); parameterParts[parameterName] = parameterValue; return tableAlias_1 + "." + joinColumn.propertyPath + " = :" + parameterName; }).filter(function (v) { return v; }).join(" AND "); duplicateParts.sort(); var duplicate = duplicateParts.join("::"); if (duplicates_2.indexOf(duplicate) !== -1) { return ""; } duplicates_2.push(duplicate); Object.assign(parameters_1, parameterParts); return queryPart; }).filter(function (v) { return v; }).map(function (condition) { return "(" + condition + ")"; }) .join(" OR "); // ensure we won't perform redundant queries for joined data which was not found in selection // example: if post.category was not found in db then no need to execute query for category.imageIds if (!condition) return [2 /*return*/, { relationIdAttribute: relationIdAttr, results: [] }]; qb_1 = this.connection.createQueryBuilder(this.queryRunner); joinColumns_1.forEach(function (joinColumn) { qb_1.addSelect(tableAlias_1 + "." + joinColumn.propertyPath, joinColumn.databaseName); }); relation_1.inverseRelation.entityMetadata.primaryColumns.forEach(function (primaryColumn) { qb_1.addSelect(tableAlias_1 + "." + primaryColumn.propertyPath, primaryColumn.databaseName); }); qb_1.from(table, tableAlias_1) .where("(" + condition + ")") // need brackets because if we have additional condition and no brackets, it looks like (a = 1) OR (a = 2) AND b = 1, that is incorrect .setParameters(parameters_1); // apply condition (custom query builder factory) if (relationIdAttr.queryBuilderFactory) relationIdAttr.queryBuilderFactory(qb_1); return [4 /*yield*/, qb_1.getRawMany()]; case 2: results = _a.sent(); results.forEach(function (result) { joinColumns_1.forEach(function (column) { result[column.databaseName] = _this.connection.driver.prepareHydratedValue(result[column.databaseName], column.referencedColumn); }); relation_1.inverseRelation.entityMetadata.primaryColumns.forEach(function (column) { result[column.databaseName] = _this.connection.driver.prepareHydratedValue(result[column.databaseName], column); }); }); return [2 /*return*/, { relationIdAttribute: relationIdAttr, results: results }]; case 3: relation = relationIdAttr.relation; joinColumns_2 = relation.isOwning ? relation.joinColumns : relation.inverseRelation.inverseJoinColumns; inverseJoinColumns_1 = relation.isOwning ? relation.inverseJoinColumns : relation.inverseRelation.joinColumns; junctionAlias_1 = relationIdAttr.junctionAlias; inverseSideTableName = relationIdAttr.joinInverseSideMetadata.tableName; inverseSideTableAlias_1 = relationIdAttr.alias || inverseSideTableName; junctionTableName = relation.isOwning ? relation.junctionEntityMetadata.tableName : relation.inverseRelation.junctionEntityMetadata.tableName; mappedColumns = rawEntities.map(function (rawEntity) { return joinColumns_2.reduce(function (map, joinColumn) { map[joinColumn.propertyPath] = rawEntity[DriverUtils["a" /* DriverUtils */].buildColumnAlias(_this.connection.driver, relationIdAttr.parentAlias, joinColumn.referencedColumn.databaseName)]; return map; }, {}); }); // ensure we won't perform redundant queries for joined data which was not found in selection // example: if post.category was not found in db then no need to execute query for category.imageIds if (mappedColumns.length === 0) return [2 /*return*/, { relationIdAttribute: relationIdAttr, results: [] }]; parameters_2 = {}; duplicates_3 = []; joinColumnConditions = mappedColumns.map(function (mappedColumn, index) { var duplicateParts = []; var parameterParts = {}; var queryPart = Object.keys(mappedColumn).map(function (key) { var parameterName = key + index; var parameterValue = mappedColumn[key]; var duplicatePart = junctionAlias_1 + ":" + key + ":" + parameterValue; if (duplicateParts.indexOf(duplicatePart) !== -1) { return ""; } duplicateParts.push(duplicatePart); parameterParts[parameterName] = parameterValue; return junctionAlias_1 + "." + key + " = :" + parameterName; }).filter(function (s) { return s; }).join(" AND "); duplicateParts.sort(); var duplicate = duplicateParts.join("::"); if (duplicates_3.indexOf(duplicate) !== -1) { return ""; } duplicates_3.push(duplicate); Object.assign(parameters_2, parameterParts); return queryPart; }).filter(function (s) { return s; }); inverseJoinColumnCondition_1 = inverseJoinColumns_1.map(function (joinColumn) { return junctionAlias_1 + "." + joinColumn.propertyPath + " = " + inverseSideTableAlias_1 + "." + joinColumn.referencedColumn.propertyPath; }).join(" AND "); condition = joinColumnConditions.map(function (condition) { return "(" + condition + " AND " + inverseJoinColumnCondition_1 + ")"; }).join(" OR "); qb_2 = this.connection.createQueryBuilder(this.queryRunner); inverseJoinColumns_1.forEach(function (joinColumn) { qb_2.addSelect(junctionAlias_1 + "." + joinColumn.propertyPath, joinColumn.databaseName) .addOrderBy(junctionAlias_1 + "." + joinColumn.propertyPath); }); joinColumns_2.forEach(function (joinColumn) { qb_2.addSelect(junctionAlias_1 + "." + joinColumn.propertyPath, joinColumn.databaseName) .addOrderBy(junctionAlias_1 + "." + joinColumn.propertyPath); }); qb_2.from(inverseSideTableName, inverseSideTableAlias_1) .innerJoin(junctionTableName, junctionAlias_1, condition) .setParameters(parameters_2); // apply condition (custom query builder factory) if (relationIdAttr.queryBuilderFactory) relationIdAttr.queryBuilderFactory(qb_2); return [4 /*yield*/, qb_2.getRawMany()]; case 4: results = _a.sent(); results.forEach(function (result) { Object(tslib_es6["f" /* __spreadArray */])(Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(joinColumns_2)), Object(tslib_es6["e" /* __read */])(inverseJoinColumns_1)).forEach(function (column) { result[column.databaseName] = _this.connection.driver.prepareHydratedValue(result[column.databaseName], column.referencedColumn); }); }); return [2 /*return*/, { relationIdAttribute: relationIdAttr, results: results }]; } }); }); }); return [2 /*return*/, Promise.all(promises)]; }); }); }; return RelationIdLoader; }()); //# sourceMappingURL=RelationIdLoader.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js var RelationIdMetadataToAttributeTransformer_RelationIdMetadataToAttributeTransformer = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function RelationIdMetadataToAttributeTransformer(expressionMap) { this.expressionMap = expressionMap; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- RelationIdMetadataToAttributeTransformer.prototype.transform = function () { // by example: // post has relation id: // @RelationId(post => post.categories) categoryIds // category has relation id // @RelationId(category => category.images) imageIds // we load post and join category // we expect post.categoryIds and post.category.imageIds to have relation ids var _this = this; // first create relation id attributes for all relation id metadatas of the main selected object (post from example) if (this.expressionMap.mainAlias) { this.expressionMap.mainAlias.metadata.relationIds.forEach(function (relationId) { var attribute = _this.metadataToAttribute(_this.expressionMap.mainAlias.name, relationId); _this.expressionMap.relationIdAttributes.push(attribute); }); } // second create relation id attributes for all relation id metadatas of all joined objects (category from example) this.expressionMap.joinAttributes.forEach(function (join) { // ensure this join has a metadata, because relation id can only work for real orm entities if (!join.metadata || join.metadata.isJunction) return; join.metadata.relationIds.forEach(function (relationId) { var attribute = _this.metadataToAttribute(join.alias.name, relationId); _this.expressionMap.relationIdAttributes.push(attribute); }); }); }; // ------------------------------------------------------------------------- // Private Methods // ------------------------------------------------------------------------- RelationIdMetadataToAttributeTransformer.prototype.metadataToAttribute = function (parentAliasName, relationId) { return new RelationIdAttribute["a" /* RelationIdAttribute */](this.expressionMap, { relationName: parentAliasName + "." + relationId.relation.propertyName, mapToProperty: parentAliasName + "." + relationId.propertyName, alias: relationId.alias, queryBuilderFactory: relationId.queryBuilderFactory }); }; return RelationIdMetadataToAttributeTransformer; }()); //# sourceMappingURL=RelationIdMetadataToAttributeTransformer.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/query-builder/relation-count/RelationCountLoader.js var RelationCountLoader_RelationCountLoader = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function RelationCountLoader(connection, queryRunner, relationCountAttributes) { this.connection = connection; this.queryRunner = queryRunner; this.relationCountAttributes = relationCountAttributes; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- RelationCountLoader.prototype.load = function (rawEntities) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var onlyUnique, promises; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { onlyUnique = function (value, index, self) { return self.indexOf(value) === index; }; promises = this.relationCountAttributes.map(function (relationCountAttr) { return Object(tslib_es6["b" /* __awaiter */])(_this, void 0, void 0, function () { var relation, inverseRelation, referenceColumnName_1, inverseSideTable, inverseSideTableName, inverseSideTableAlias, inverseSidePropertyName, referenceColumnValues, qb, joinTableColumnName_1, inverseJoinColumnName, firstJunctionColumn, secondJunctionColumn, referenceColumnValues, junctionAlias, inverseSideTableName, inverseSideTableAlias, junctionTableName, condition, qb; var _a, _b; return Object(tslib_es6["d" /* __generator */])(this, function (_c) { switch (_c.label) { case 0: if (!relationCountAttr.relation.isOneToMany) return [3 /*break*/, 2]; relation = relationCountAttr.relation; inverseRelation = relation.inverseRelation; referenceColumnName_1 = inverseRelation.joinColumns[0].referencedColumn.propertyName; inverseSideTable = relation.inverseEntityMetadata.target; inverseSideTableName = relation.inverseEntityMetadata.tableName; inverseSideTableAlias = relationCountAttr.alias || inverseSideTableName; inverseSidePropertyName = inverseRelation.propertyName; referenceColumnValues = rawEntities .map(function (rawEntity) { return rawEntity[relationCountAttr.parentAlias + "_" + referenceColumnName_1]; }) .filter(function (value) { return !!value; }); referenceColumnValues = referenceColumnValues.filter(onlyUnique); // ensure we won't perform redundant queries for joined data which was not found in selection // example: if post.category was not found in db then no need to execute query for category.imageIds if (referenceColumnValues.length === 0) return [2 /*return*/, { relationCountAttribute: relationCountAttr, results: [] }]; qb = this.connection.createQueryBuilder(this.queryRunner); qb.select(inverseSideTableAlias + "." + inverseSidePropertyName, "parentId") .addSelect("COUNT(*)", "cnt") .from(inverseSideTable, inverseSideTableAlias) .where(inverseSideTableAlias + "." + inverseSidePropertyName + " IN (:...ids)") .addGroupBy(inverseSideTableAlias + "." + inverseSidePropertyName) .setParameter("ids", referenceColumnValues); // apply condition (custom query builder factory) if (relationCountAttr.queryBuilderFactory) relationCountAttr.queryBuilderFactory(qb); _a = { relationCountAttribute: relationCountAttr }; return [4 /*yield*/, qb.getRawMany()]; case 1: return [2 /*return*/, (_a.results = _c.sent(), _a)]; case 2: inverseJoinColumnName = void 0; firstJunctionColumn = void 0; secondJunctionColumn = void 0; if (relationCountAttr.relation.isOwning) { // todo fix joinColumns[0] and inverseJoinColumns[0]. joinTableColumnName_1 = relationCountAttr.relation.joinColumns[0].referencedColumn.databaseName; inverseJoinColumnName = relationCountAttr.relation.inverseJoinColumns[0].referencedColumn.databaseName; firstJunctionColumn = relationCountAttr.relation.junctionEntityMetadata.columns[0]; secondJunctionColumn = relationCountAttr.relation.junctionEntityMetadata.columns[1]; } else { joinTableColumnName_1 = relationCountAttr.relation.inverseRelation.inverseJoinColumns[0].referencedColumn.databaseName; inverseJoinColumnName = relationCountAttr.relation.inverseRelation.joinColumns[0].referencedColumn.databaseName; firstJunctionColumn = relationCountAttr.relation.junctionEntityMetadata.columns[1]; secondJunctionColumn = relationCountAttr.relation.junctionEntityMetadata.columns[0]; } referenceColumnValues = rawEntities .map(function (rawEntity) { return rawEntity[relationCountAttr.parentAlias + "_" + joinTableColumnName_1]; }) .filter(function (value) { return !!value; }); referenceColumnValues = referenceColumnValues.filter(onlyUnique); // ensure we won't perform redundant queries for joined data which was not found in selection // example: if post.category was not found in db then no need to execute query for category.imageIds if (referenceColumnValues.length === 0) return [2 /*return*/, { relationCountAttribute: relationCountAttr, results: [] }]; junctionAlias = relationCountAttr.junctionAlias; inverseSideTableName = relationCountAttr.joinInverseSideMetadata.tableName; inverseSideTableAlias = relationCountAttr.alias || inverseSideTableName; junctionTableName = relationCountAttr.relation.junctionEntityMetadata.tableName; condition = junctionAlias + "." + firstJunctionColumn.propertyName + " IN (" + referenceColumnValues.map(function (vals) { return isNaN(vals) ? "'" + vals + "'" : vals; }) + ")" + " AND " + junctionAlias + "." + secondJunctionColumn.propertyName + " = " + inverseSideTableAlias + "." + inverseJoinColumnName; qb = this.connection.createQueryBuilder(this.queryRunner); qb.select(junctionAlias + "." + firstJunctionColumn.propertyName, "parentId") .addSelect("COUNT(" + qb.escape(inverseSideTableAlias) + "." + qb.escape(inverseJoinColumnName) + ")", "cnt") .from(inverseSideTableName, inverseSideTableAlias) .innerJoin(junctionTableName, junctionAlias, condition) .addGroupBy(junctionAlias + "." + firstJunctionColumn.propertyName); // apply condition (custom query builder factory) if (relationCountAttr.queryBuilderFactory) relationCountAttr.queryBuilderFactory(qb); _b = { relationCountAttribute: relationCountAttr }; return [4 /*yield*/, qb.getRawMany()]; case 3: return [2 /*return*/, (_b.results = _c.sent(), _b)]; } }); }); }); return [2 /*return*/, Promise.all(promises)]; }); }); }; return RelationCountLoader; }()); //# sourceMappingURL=RelationCountLoader.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js var RelationCountMetadataToAttributeTransformer_RelationCountMetadataToAttributeTransformer = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function RelationCountMetadataToAttributeTransformer(expressionMap) { this.expressionMap = expressionMap; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- RelationCountMetadataToAttributeTransformer.prototype.transform = function () { // by example: // post has relation count: // @RelationCount(post => post.categories) categoryCount // category has relation count // @RelationCount(category => category.images) imageCount // we load post and join category // we expect post.categoryCount and post.category.imageCount to have relation counts var _this = this; // first create relation count attributes for all relation count metadatas of the main selected object (post from example) if (this.expressionMap.mainAlias) { this.expressionMap.mainAlias.metadata.relationCounts.forEach(function (relationCount) { var attribute = _this.metadataToAttribute(_this.expressionMap.mainAlias.name, relationCount); _this.expressionMap.relationCountAttributes.push(attribute); }); } // second create relation count attributes for all relation count metadatas of all joined objects (category from example) this.expressionMap.joinAttributes.forEach(function (join) { // ensure this join has a metadata, because relation count can only work for real orm entities if (!join.metadata || join.metadata.isJunction) return; join.metadata.relationCounts.forEach(function (relationCount) { var attribute = _this.metadataToAttribute(join.alias.name, relationCount); _this.expressionMap.relationCountAttributes.push(attribute); }); }); }; // ------------------------------------------------------------------------- // Private Methods // ------------------------------------------------------------------------- RelationCountMetadataToAttributeTransformer.prototype.metadataToAttribute = function (parentAliasName, relationCount) { return new RelationCountAttribute["a" /* RelationCountAttribute */](this.expressionMap, { relationName: parentAliasName + "." + relationCount.relation.propertyName, mapToProperty: parentAliasName + "." + relationCount.propertyName, alias: relationCount.alias, queryBuilderFactory: relationCount.queryBuilderFactory }); }; return RelationCountMetadataToAttributeTransformer; }()); //# sourceMappingURL=RelationCountMetadataToAttributeTransformer.js.map // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/QueryBuilder.js + 2 modules var QueryBuilder = __webpack_require__(40); // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/LockNotSupportedOnGivenDriverError.js var LockNotSupportedOnGivenDriverError = __webpack_require__(86); // EXTERNAL MODULE: ./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteDriver.js + 1 modules var AbstractSqliteDriver = __webpack_require__(16); // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/OffsetWithoutLimitNotSupportedError.js var OffsetWithoutLimitNotSupportedError = __webpack_require__(160); // EXTERNAL MODULE: ./node_modules/typeorm/browser/subscriber/BroadcasterResult.js var BroadcasterResult = __webpack_require__(8); // EXTERNAL MODULE: ./node_modules/typeorm/browser/util/ObjectUtils.js var ObjectUtils = __webpack_require__(24); // EXTERNAL MODULE: ./node_modules/typeorm/browser/error/EntityNotFoundError.js var EntityNotFoundError = __webpack_require__(113); // CONCATENATED MODULE: ./node_modules/typeorm/browser/query-builder/SelectQueryBuilder.js /** * Allows to build complex sql queries in a fashion way and execute those queries. */ var SelectQueryBuilder_SelectQueryBuilder = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(SelectQueryBuilder, _super); function SelectQueryBuilder() { return _super !== null && _super.apply(this, arguments) || this; } // ------------------------------------------------------------------------- // Public Implemented Methods // ------------------------------------------------------------------------- /** * Gets generated sql query without parameters being replaced. */ SelectQueryBuilder.prototype.getQuery = function () { var sql = this.createComment(); sql += this.createSelectExpression(); sql += this.createJoinExpression(); sql += this.createWhereExpression(); sql += this.createGroupByExpression(); sql += this.createHavingExpression(); sql += this.createOrderByExpression(); sql += this.createLimitOffsetExpression(); sql += this.createLockExpression(); sql = sql.trim(); if (this.expressionMap.subQuery) sql = "(" + sql + ")"; return sql; }; // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Creates a subquery - query that can be used inside other queries. */ SelectQueryBuilder.prototype.subQuery = function () { var qb = this.createQueryBuilder(); qb.expressionMap.subQuery = true; qb.expressionMap.parentQueryBuilder = this; return qb; }; /** * Creates SELECT query and selects given data. * Replaces all previous selections if they exist. */ SelectQueryBuilder.prototype.select = function (selection, selectionAliasName) { this.expressionMap.queryType = "select"; if (Array.isArray(selection)) { this.expressionMap.selects = selection.map(function (selection) { return ({ selection: selection }); }); } else if (selection instanceof Function) { var subQueryBuilder = selection(this.subQuery()); this.setParameters(subQueryBuilder.getParameters()); this.expressionMap.selects.push({ selection: subQueryBuilder.getQuery(), aliasName: selectionAliasName }); } else if (selection) { this.expressionMap.selects = [{ selection: selection, aliasName: selectionAliasName }]; } return this; }; /** * Adds new selection to the SELECT query. */ SelectQueryBuilder.prototype.addSelect = function (selection, selectionAliasName) { if (!selection) return this; if (Array.isArray(selection)) { this.expressionMap.selects = this.expressionMap.selects.concat(selection.map(function (selection) { return ({ selection: selection }); })); } else if (selection instanceof Function) { var subQueryBuilder = selection(this.subQuery()); this.setParameters(subQueryBuilder.getParameters()); this.expressionMap.selects.push({ selection: subQueryBuilder.getQuery(), aliasName: selectionAliasName }); } else if (selection) { this.expressionMap.selects.push({ selection: selection, aliasName: selectionAliasName }); } return this; }; /** * Sets whether the selection is DISTINCT. */ SelectQueryBuilder.prototype.distinct = function (distinct) { if (distinct === void 0) { distinct = true; } this.expressionMap.selectDistinct = distinct; return this; }; /** * Sets the distinct on clause for Postgres. */ SelectQueryBuilder.prototype.distinctOn = function (distinctOn) { this.expressionMap.selectDistinctOn = distinctOn; return this; }; /** * Specifies FROM which entity's table select/update/delete will be executed. * Also sets a main string alias of the selection data. * Removes all previously set from-s. */ SelectQueryBuilder.prototype.from = function (entityTarget, aliasName) { var mainAlias = this.createFromAlias(entityTarget, aliasName); this.expressionMap.setMainAlias(mainAlias); return this; }; /** * Specifies FROM which entity's table select/update/delete will be executed. * Also sets a main string alias of the selection data. */ SelectQueryBuilder.prototype.addFrom = function (entityTarget, aliasName) { var alias = this.createFromAlias(entityTarget, aliasName); if (!this.expressionMap.mainAlias) this.expressionMap.setMainAlias(alias); return this; }; /** * INNER JOINs (without selection). * You also need to specify an alias of the joined data. * Optionally, you can add condition and parameters used in condition. */ SelectQueryBuilder.prototype.innerJoin = function (entityOrProperty, alias, condition, parameters) { if (condition === void 0) { condition = ""; } this.join("INNER", entityOrProperty, alias, condition, parameters); return this; }; /** * LEFT JOINs (without selection). * You also need to specify an alias of the joined data. * Optionally, you can add condition and parameters used in condition. */ SelectQueryBuilder.prototype.leftJoin = function (entityOrProperty, alias, condition, parameters) { if (condition === void 0) { condition = ""; } this.join("LEFT", entityOrProperty, alias, condition, parameters); return this; }; /** * INNER JOINs and adds all selection properties to SELECT. * You also need to specify an alias of the joined data. * Optionally, you can add condition and parameters used in condition. */ SelectQueryBuilder.prototype.innerJoinAndSelect = function (entityOrProperty, alias, condition, parameters) { if (condition === void 0) { condition = ""; } this.addSelect(alias); this.innerJoin(entityOrProperty, alias, condition, parameters); return this; }; /** * LEFT JOINs and adds all selection properties to SELECT. * You also need to specify an alias of the joined data. * Optionally, you can add condition and parameters used in condition. */ SelectQueryBuilder.prototype.leftJoinAndSelect = function (entityOrProperty, alias, condition, parameters) { if (condition === void 0) { condition = ""; } this.addSelect(alias); this.leftJoin(entityOrProperty, alias, condition, parameters); return this; }; /** * INNER JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property. * This is extremely useful when you want to select some data and map it to some virtual property. * It will assume that there are multiple rows of selecting data, and mapped result will be an array. * You also need to specify an alias of the joined data. * Optionally, you can add condition and parameters used in condition. */ SelectQueryBuilder.prototype.innerJoinAndMapMany = function (mapToProperty, entityOrProperty, alias, condition, parameters) { if (condition === void 0) { condition = ""; } this.addSelect(alias); this.join("INNER", entityOrProperty, alias, condition, parameters, mapToProperty, true); return this; }; /** * INNER JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property. * This is extremely useful when you want to select some data and map it to some virtual property. * It will assume that there is a single row of selecting data, and mapped result will be a single selected value. * You also need to specify an alias of the joined data. * Optionally, you can add condition and parameters used in condition. */ SelectQueryBuilder.prototype.innerJoinAndMapOne = function (mapToProperty, entityOrProperty, alias, condition, parameters) { if (condition === void 0) { condition = ""; } this.addSelect(alias); this.join("INNER", entityOrProperty, alias, condition, parameters, mapToProperty, false); return this; }; /** * LEFT JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property. * This is extremely useful when you want to select some data and map it to some virtual property. * It will assume that there are multiple rows of selecting data, and mapped result will be an array. * You also need to specify an alias of the joined data. * Optionally, you can add condition and parameters used in condition. */ SelectQueryBuilder.prototype.leftJoinAndMapMany = function (mapToProperty, entityOrProperty, alias, condition, parameters) { if (condition === void 0) { condition = ""; } this.addSelect(alias); this.join("LEFT", entityOrProperty, alias, condition, parameters, mapToProperty, true); return this; }; /** * LEFT JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property. * This is extremely useful when you want to select some data and map it to some virtual property. * It will assume that there is a single row of selecting data, and mapped result will be a single selected value. * You also need to specify an alias of the joined data. * Optionally, you can add condition and parameters used in condition. */ SelectQueryBuilder.prototype.leftJoinAndMapOne = function (mapToProperty, entityOrProperty, alias, condition, parameters) { if (condition === void 0) { condition = ""; } this.addSelect(alias); this.join("LEFT", entityOrProperty, alias, condition, parameters, mapToProperty, false); return this; }; /** * LEFT JOINs relation id and maps it into some entity's property. * Optionally, you can add condition and parameters used in condition. */ SelectQueryBuilder.prototype.loadRelationIdAndMap = function (mapToProperty, relationName, aliasNameOrOptions, queryBuilderFactory) { var relationIdAttribute = new RelationIdAttribute["a" /* RelationIdAttribute */](this.expressionMap); relationIdAttribute.mapToProperty = mapToProperty; relationIdAttribute.relationName = relationName; if (typeof aliasNameOrOptions === "string") relationIdAttribute.alias = aliasNameOrOptions; if (aliasNameOrOptions instanceof Object && aliasNameOrOptions.disableMixedMap) relationIdAttribute.disableMixedMap = true; relationIdAttribute.queryBuilderFactory = queryBuilderFactory; this.expressionMap.relationIdAttributes.push(relationIdAttribute); if (relationIdAttribute.relation.junctionEntityMetadata) { this.expressionMap.createAlias({ type: "other", name: relationIdAttribute.junctionAlias, metadata: relationIdAttribute.relation.junctionEntityMetadata }); } return this; }; /** * Counts number of entities of entity's relation and maps the value into some entity's property. * Optionally, you can add condition and parameters used in condition. */ SelectQueryBuilder.prototype.loadRelationCountAndMap = function (mapToProperty, relationName, aliasName, queryBuilderFactory) { var relationCountAttribute = new RelationCountAttribute["a" /* RelationCountAttribute */](this.expressionMap); relationCountAttribute.mapToProperty = mapToProperty; relationCountAttribute.relationName = relationName; relationCountAttribute.alias = aliasName; relationCountAttribute.queryBuilderFactory = queryBuilderFactory; this.expressionMap.relationCountAttributes.push(relationCountAttribute); this.expressionMap.createAlias({ type: "other", name: relationCountAttribute.junctionAlias }); if (relationCountAttribute.relation.junctionEntityMetadata) { this.expressionMap.createAlias({ type: "other", name: relationCountAttribute.junctionAlias, metadata: relationCountAttribute.relation.junctionEntityMetadata }); } return this; }; /** * Loads all relation ids for all relations of the selected entity. * All relation ids will be mapped to relation property themself. * If array of strings is given then loads only relation ids of the given properties. */ SelectQueryBuilder.prototype.loadAllRelationIds = function (options) { var _this = this; this.expressionMap.mainAlias.metadata.relations.forEach(function (relation) { if (options !== undefined && options.relations !== undefined && options.relations.indexOf(relation.propertyPath) === -1) return; _this.loadRelationIdAndMap(_this.expressionMap.mainAlias.name + "." + relation.propertyPath, _this.expressionMap.mainAlias.name + "." + relation.propertyPath, options); }); return this; }; /** * Sets WHERE condition in the query builder. * If you had previously WHERE expression defined, * calling this function will override previously set WHERE conditions. * Additionally you can add parameters used in where expression. */ SelectQueryBuilder.prototype.where = function (where, parameters) { this.expressionMap.wheres = []; // don't move this block below since computeWhereParameter can add where expressions var condition = this.computeWhereParameter(where); if (condition) this.expressionMap.wheres = [{ type: "simple", condition: condition }]; if (parameters) this.setParameters(parameters); return this; }; /** * Adds new AND WHERE condition in the query builder. * Additionally you can add parameters used in where expression. */ SelectQueryBuilder.prototype.andWhere = function (where, parameters) { this.expressionMap.wheres.push({ type: "and", condition: this.computeWhereParameter(where) }); if (parameters) this.setParameters(parameters); return this; }; /** * Adds new OR WHERE condition in the query builder. * Additionally you can add parameters used in where expression. */ SelectQueryBuilder.prototype.orWhere = function (where, parameters) { this.expressionMap.wheres.push({ type: "or", condition: this.computeWhereParameter(where) }); if (parameters) this.setParameters(parameters); return this; }; /** * Adds new AND WHERE with conditions for the given ids. * * Ids are mixed. * It means if you have single primary key you can pass a simple id values, for example [1, 2, 3]. * If you have multiple primary keys you need to pass object with property names and values specified, * for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...] */ SelectQueryBuilder.prototype.whereInIds = function (ids) { return this.where(this.createWhereIdsExpression(ids)); }; /** * Adds new AND WHERE with conditions for the given ids. * * Ids are mixed. * It means if you have single primary key you can pass a simple id values, for example [1, 2, 3]. * If you have multiple primary keys you need to pass object with property names and values specified, * for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...] */ SelectQueryBuilder.prototype.andWhereInIds = function (ids) { return this.andWhere(this.createWhereIdsExpression(ids)); }; /** * Adds new OR WHERE with conditions for the given ids. * * Ids are mixed. * It means if you have single primary key you can pass a simple id values, for example [1, 2, 3]. * If you have multiple primary keys you need to pass object with property names and values specified, * for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...] */ SelectQueryBuilder.prototype.orWhereInIds = function (ids) { return this.orWhere(this.createWhereIdsExpression(ids)); }; /** * Sets HAVING condition in the query builder. * If you had previously HAVING expression defined, * calling this function will override previously set HAVING conditions. * Additionally you can add parameters used in where expression. */ SelectQueryBuilder.prototype.having = function (having, parameters) { this.expressionMap.havings.push({ type: "simple", condition: having }); if (parameters) this.setParameters(parameters); return this; }; /** * Adds new AND HAVING condition in the query builder. * Additionally you can add parameters used in where expression. */ SelectQueryBuilder.prototype.andHaving = function (having, parameters) { this.expressionMap.havings.push({ type: "and", condition: having }); if (parameters) this.setParameters(parameters); return this; }; /** * Adds new OR HAVING condition in the query builder. * Additionally you can add parameters used in where expression. */ SelectQueryBuilder.prototype.orHaving = function (having, parameters) { this.expressionMap.havings.push({ type: "or", condition: having }); if (parameters) this.setParameters(parameters); return this; }; /** * Sets GROUP BY condition in the query builder. * If you had previously GROUP BY expression defined, * calling this function will override previously set GROUP BY conditions. */ SelectQueryBuilder.prototype.groupBy = function (groupBy) { if (groupBy) { this.expressionMap.groupBys = [groupBy]; } else { this.expressionMap.groupBys = []; } return this; }; /** * Adds GROUP BY condition in the query builder. */ SelectQueryBuilder.prototype.addGroupBy = function (groupBy) { this.expressionMap.groupBys.push(groupBy); return this; }; /** * Sets ORDER BY condition in the query builder. * If you had previously ORDER BY expression defined, * calling this function will override previously set ORDER BY conditions. */ SelectQueryBuilder.prototype.orderBy = function (sort, order, nulls) { var _a, _b; if (order === void 0) { order = "ASC"; } if (order !== undefined && order !== "ASC" && order !== "DESC") throw new Error("SelectQueryBuilder.addOrderBy \"order\" can accept only \"ASC\" and \"DESC\" values."); if (nulls !== undefined && nulls !== "NULLS FIRST" && nulls !== "NULLS LAST") throw new Error("SelectQueryBuilder.addOrderBy \"nulls\" can accept only \"NULLS FIRST\" and \"NULLS LAST\" values."); if (sort) { if (sort instanceof Object) { this.expressionMap.orderBys = sort; } else { if (nulls) { this.expressionMap.orderBys = (_a = {}, _a[sort] = { order: order, nulls: nulls }, _a); } else { this.expressionMap.orderBys = (_b = {}, _b[sort] = order, _b); } } } else { this.expressionMap.orderBys = {}; } return this; }; /** * Adds ORDER BY condition in the query builder. */ SelectQueryBuilder.prototype.addOrderBy = function (sort, order, nulls) { if (order === void 0) { order = "ASC"; } if (order !== undefined && order !== "ASC" && order !== "DESC") throw new Error("SelectQueryBuilder.addOrderBy \"order\" can accept only \"ASC\" and \"DESC\" values."); if (nulls !== undefined && nulls !== "NULLS FIRST" && nulls !== "NULLS LAST") throw new Error("SelectQueryBuilder.addOrderBy \"nulls\" can accept only \"NULLS FIRST\" and \"NULLS LAST\" values."); if (nulls) { this.expressionMap.orderBys[sort] = { order: order, nulls: nulls }; } else { this.expressionMap.orderBys[sort] = order; } return this; }; /** * Set's LIMIT - maximum number of rows to be selected. * NOTE that it may not work as you expect if you are using joins. * If you want to implement pagination, and you are having join in your query, * then use instead take method instead. */ SelectQueryBuilder.prototype.limit = function (limit) { this.expressionMap.limit = this.normalizeNumber(limit); if (this.expressionMap.limit !== undefined && isNaN(this.expressionMap.limit)) throw new Error("Provided \"limit\" value is not a number. Please provide a numeric value."); return this; }; /** * Set's OFFSET - selection offset. * NOTE that it may not work as you expect if you are using joins. * If you want to implement pagination, and you are having join in your query, * then use instead skip method instead. */ SelectQueryBuilder.prototype.offset = function (offset) { this.expressionMap.offset = this.normalizeNumber(offset); if (this.expressionMap.offset !== undefined && isNaN(this.expressionMap.offset)) throw new Error("Provided \"offset\" value is not a number. Please provide a numeric value."); return this; }; /** * Sets maximal number of entities to take. */ SelectQueryBuilder.prototype.take = function (take) { this.expressionMap.take = this.normalizeNumber(take); if (this.expressionMap.take !== undefined && isNaN(this.expressionMap.take)) throw new Error("Provided \"take\" value is not a number. Please provide a numeric value."); return this; }; /** * Sets number of entities to skip. */ SelectQueryBuilder.prototype.skip = function (skip) { this.expressionMap.skip = this.normalizeNumber(skip); if (this.expressionMap.skip !== undefined && isNaN(this.expressionMap.skip)) throw new Error("Provided \"skip\" value is not a number. Please provide a numeric value."); return this; }; /** * Sets locking mode. */ SelectQueryBuilder.prototype.setLock = function (lockMode, lockVersion, lockTables) { this.expressionMap.lockMode = lockMode; this.expressionMap.lockVersion = lockVersion; this.expressionMap.lockTables = lockTables; return this; }; /** * Disables the global condition of "non-deleted" for the entity with delete date columns. */ SelectQueryBuilder.prototype.withDeleted = function () { this.expressionMap.withDeleted = true; return this; }; /** * Gets first raw result returned by execution of generated query builder sql. */ SelectQueryBuilder.prototype.getRawOne = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.getRawMany()]; case 1: return [2 /*return*/, (_a.sent())[0]]; } }); }); }; /** * Gets all raw results returned by execution of generated query builder sql. */ SelectQueryBuilder.prototype.getRawMany = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var queryRunner, transactionStartedByUs, results, error_1, rollbackError_1; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (this.expressionMap.lockMode === "optimistic") throw new OptimisticLockCanNotBeUsedError["a" /* OptimisticLockCanNotBeUsedError */](); this.expressionMap.queryEntity = false; queryRunner = this.obtainQueryRunner(); transactionStartedByUs = false; _a.label = 1; case 1: _a.trys.push([1, 7, 12, 15]); if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3]; return [4 /*yield*/, queryRunner.startTransaction()]; case 2: _a.sent(); transactionStartedByUs = true; _a.label = 3; case 3: return [4 /*yield*/, this.loadRawResults(queryRunner)]; case 4: results = _a.sent(); if (!transactionStartedByUs) return [3 /*break*/, 6]; return [4 /*yield*/, queryRunner.commitTransaction()]; case 5: _a.sent(); _a.label = 6; case 6: return [2 /*return*/, results]; case 7: error_1 = _a.sent(); if (!transactionStartedByUs) return [3 /*break*/, 11]; _a.label = 8; case 8: _a.trys.push([8, 10, , 11]); return [4 /*yield*/, queryRunner.rollbackTransaction()]; case 9: _a.sent(); return [3 /*break*/, 11]; case 10: rollbackError_1 = _a.sent(); return [3 /*break*/, 11]; case 11: throw error_1; case 12: if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 14]; return [4 /*yield*/, queryRunner.release()]; case 13: _a.sent(); _a.label = 14; case 14: return [7 /*endfinally*/]; case 15: return [2 /*return*/]; } }); }); }; /** * Executes sql generated by query builder and returns object with raw results and entities created from them. */ SelectQueryBuilder.prototype.getRawAndEntities = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var queryRunner, transactionStartedByUs, results, error_2, rollbackError_2; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: queryRunner = this.obtainQueryRunner(); transactionStartedByUs = false; _a.label = 1; case 1: _a.trys.push([1, 7, 12, 15]); if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3]; return [4 /*yield*/, queryRunner.startTransaction()]; case 2: _a.sent(); transactionStartedByUs = true; _a.label = 3; case 3: this.expressionMap.queryEntity = true; return [4 /*yield*/, this.executeEntitiesAndRawResults(queryRunner)]; case 4: results = _a.sent(); if (!transactionStartedByUs) return [3 /*break*/, 6]; return [4 /*yield*/, queryRunner.commitTransaction()]; case 5: _a.sent(); _a.label = 6; case 6: return [2 /*return*/, results]; case 7: error_2 = _a.sent(); if (!transactionStartedByUs) return [3 /*break*/, 11]; _a.label = 8; case 8: _a.trys.push([8, 10, , 11]); return [4 /*yield*/, queryRunner.rollbackTransaction()]; case 9: _a.sent(); return [3 /*break*/, 11]; case 10: rollbackError_2 = _a.sent(); return [3 /*break*/, 11]; case 11: throw error_2; case 12: if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 14]; return [4 /*yield*/, queryRunner.release()]; case 13: _a.sent(); _a.label = 14; case 14: return [7 /*endfinally*/]; case 15: return [2 /*return*/]; } }); }); }; /** * Gets single entity returned by execution of generated query builder sql. */ SelectQueryBuilder.prototype.getOne = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var results, result, metadata, actualVersion, actualVersion; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.getRawAndEntities()]; case 1: results = _a.sent(); result = results.entities[0]; if (result && this.expressionMap.lockMode === "optimistic" && this.expressionMap.lockVersion) { metadata = this.expressionMap.mainAlias.metadata; if (this.expressionMap.lockVersion instanceof Date) { actualVersion = metadata.updateDateColumn.getEntityValue(result); if (actualVersion.getTime() !== this.expressionMap.lockVersion.getTime()) throw new OptimisticLockVersionMismatchError["a" /* OptimisticLockVersionMismatchError */](metadata.name, this.expressionMap.lockVersion, actualVersion); } else { actualVersion = metadata.versionColumn.getEntityValue(result); if (actualVersion !== this.expressionMap.lockVersion) throw new OptimisticLockVersionMismatchError["a" /* OptimisticLockVersionMismatchError */](metadata.name, this.expressionMap.lockVersion, actualVersion); } } return [2 /*return*/, result]; } }); }); }; /** * Gets the first entity returned by execution of generated query builder sql or rejects the returned promise on error. */ SelectQueryBuilder.prototype.getOneOrFail = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var entity; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.getOne()]; case 1: entity = _a.sent(); if (!entity) { throw new EntityNotFoundError["a" /* EntityNotFoundError */](this.expressionMap.mainAlias.target, this); } return [2 /*return*/, entity]; } }); }); }; /** * Gets entities returned by execution of generated query builder sql. */ SelectQueryBuilder.prototype.getMany = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var results; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (this.expressionMap.lockMode === "optimistic") throw new OptimisticLockCanNotBeUsedError["a" /* OptimisticLockCanNotBeUsedError */](); return [4 /*yield*/, this.getRawAndEntities()]; case 1: results = _a.sent(); return [2 /*return*/, results.entities]; } }); }); }; /** * Gets count - number of entities selected by sql generated by this query builder. * Count excludes all limitations set by setFirstResult and setMaxResults methods call. */ SelectQueryBuilder.prototype.getCount = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var queryRunner, transactionStartedByUs, results, error_3, rollbackError_3; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (this.expressionMap.lockMode === "optimistic") throw new OptimisticLockCanNotBeUsedError["a" /* OptimisticLockCanNotBeUsedError */](); queryRunner = this.obtainQueryRunner(); transactionStartedByUs = false; _a.label = 1; case 1: _a.trys.push([1, 7, 12, 15]); if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3]; return [4 /*yield*/, queryRunner.startTransaction()]; case 2: _a.sent(); transactionStartedByUs = true; _a.label = 3; case 3: this.expressionMap.queryEntity = false; return [4 /*yield*/, this.executeCountQuery(queryRunner)]; case 4: results = _a.sent(); if (!transactionStartedByUs) return [3 /*break*/, 6]; return [4 /*yield*/, queryRunner.commitTransaction()]; case 5: _a.sent(); _a.label = 6; case 6: return [2 /*return*/, results]; case 7: error_3 = _a.sent(); if (!transactionStartedByUs) return [3 /*break*/, 11]; _a.label = 8; case 8: _a.trys.push([8, 10, , 11]); return [4 /*yield*/, queryRunner.rollbackTransaction()]; case 9: _a.sent(); return [3 /*break*/, 11]; case 10: rollbackError_3 = _a.sent(); return [3 /*break*/, 11]; case 11: throw error_3; case 12: if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 14]; return [4 /*yield*/, queryRunner.release()]; case 13: _a.sent(); _a.label = 14; case 14: return [7 /*endfinally*/]; case 15: return [2 /*return*/]; } }); }); }; /** * Executes built SQL query and returns entities and overall entities count (without limitation). * This method is useful to build pagination. */ SelectQueryBuilder.prototype.getManyAndCount = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var queryRunner, transactionStartedByUs, entitiesAndRaw, count, results, error_4, rollbackError_4; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: if (this.expressionMap.lockMode === "optimistic") throw new OptimisticLockCanNotBeUsedError["a" /* OptimisticLockCanNotBeUsedError */](); queryRunner = this.obtainQueryRunner(); transactionStartedByUs = false; _a.label = 1; case 1: _a.trys.push([1, 8, 13, 16]); if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3]; return [4 /*yield*/, queryRunner.startTransaction()]; case 2: _a.sent(); transactionStartedByUs = true; _a.label = 3; case 3: this.expressionMap.queryEntity = true; return [4 /*yield*/, this.executeEntitiesAndRawResults(queryRunner)]; case 4: entitiesAndRaw = _a.sent(); this.expressionMap.queryEntity = false; return [4 /*yield*/, this.executeCountQuery(queryRunner)]; case 5: count = _a.sent(); results = [entitiesAndRaw.entities, count]; if (!transactionStartedByUs) return [3 /*break*/, 7]; return [4 /*yield*/, queryRunner.commitTransaction()]; case 6: _a.sent(); _a.label = 7; case 7: return [2 /*return*/, results]; case 8: error_4 = _a.sent(); if (!transactionStartedByUs) return [3 /*break*/, 12]; _a.label = 9; case 9: _a.trys.push([9, 11, , 12]); return [4 /*yield*/, queryRunner.rollbackTransaction()]; case 10: _a.sent(); return [3 /*break*/, 12]; case 11: rollbackError_4 = _a.sent(); return [3 /*break*/, 12]; case 12: throw error_4; case 13: if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 15]; return [4 /*yield*/, queryRunner.release()]; case 14: _a.sent(); _a.label = 15; case 15: return [7 /*endfinally*/]; case 16: return [2 /*return*/]; } }); }); }; /** * Executes built SQL query and returns raw data stream. */ SelectQueryBuilder.prototype.stream = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _a, sql, parameters, queryRunner, transactionStartedByUs, releaseFn, results, error_5, rollbackError_5; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: this.expressionMap.queryEntity = false; _a = Object(tslib_es6["e" /* __read */])(this.getQueryAndParameters(), 2), sql = _a[0], parameters = _a[1]; queryRunner = this.obtainQueryRunner(); transactionStartedByUs = false; _b.label = 1; case 1: _b.trys.push([1, 6, , 11]); if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3]; return [4 /*yield*/, queryRunner.startTransaction()]; case 2: _b.sent(); transactionStartedByUs = true; _b.label = 3; case 3: releaseFn = function () { if (queryRunner !== _this.queryRunner) // means we created our own query runner return queryRunner.release(); return; }; results = queryRunner.stream(sql, parameters, releaseFn, releaseFn); if (!transactionStartedByUs) return [3 /*break*/, 5]; return [4 /*yield*/, queryRunner.commitTransaction()]; case 4: _b.sent(); _b.label = 5; case 5: return [2 /*return*/, results]; case 6: error_5 = _b.sent(); if (!transactionStartedByUs) return [3 /*break*/, 10]; _b.label = 7; case 7: _b.trys.push([7, 9, , 10]); return [4 /*yield*/, queryRunner.rollbackTransaction()]; case 8: _b.sent(); return [3 /*break*/, 10]; case 9: rollbackError_5 = _b.sent(); return [3 /*break*/, 10]; case 10: throw error_5; case 11: return [2 /*return*/]; } }); }); }; /** * Enables or disables query result caching. */ SelectQueryBuilder.prototype.cache = function (enabledOrMillisecondsOrId, maybeMilliseconds) { if (typeof enabledOrMillisecondsOrId === "boolean") { this.expressionMap.cache = enabledOrMillisecondsOrId; } else if (typeof enabledOrMillisecondsOrId === "number") { this.expressionMap.cache = true; this.expressionMap.cacheDuration = enabledOrMillisecondsOrId; } else if (typeof enabledOrMillisecondsOrId === "string" || typeof enabledOrMillisecondsOrId === "number") { this.expressionMap.cache = true; this.expressionMap.cacheId = enabledOrMillisecondsOrId; } if (maybeMilliseconds) { this.expressionMap.cacheDuration = maybeMilliseconds; } return this; }; /** * Sets extra options that can be used to configure how query builder works. */ SelectQueryBuilder.prototype.setOption = function (option) { this.expressionMap.options.push(option); return this; }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- SelectQueryBuilder.prototype.join = function (direction, entityOrProperty, aliasName, condition, parameters, mapToProperty, isMappingMany) { this.setParameters(parameters || {}); var joinAttribute = new JoinAttribute["a" /* JoinAttribute */](this.connection, this.expressionMap); joinAttribute.direction = direction; joinAttribute.mapToProperty = mapToProperty; joinAttribute.isMappingMany = isMappingMany; joinAttribute.entityOrProperty = entityOrProperty; // relationName joinAttribute.condition = condition; // joinInverseSideCondition // joinAttribute.junctionAlias = joinAttribute.relation.isOwning ? parentAlias + "_" + destinationTableAlias : destinationTableAlias + "_" + parentAlias; this.expressionMap.joinAttributes.push(joinAttribute); if (joinAttribute.metadata) { if (joinAttribute.metadata.deleteDateColumn && !this.expressionMap.withDeleted) { var conditionDeleteColumn = aliasName + "." + joinAttribute.metadata.deleteDateColumn.propertyName + " IS NULL"; joinAttribute.condition += joinAttribute.condition ? " AND " + conditionDeleteColumn : "" + conditionDeleteColumn; } // todo: find and set metadata right there? joinAttribute.alias = this.expressionMap.createAlias({ type: "join", name: aliasName, metadata: joinAttribute.metadata }); if (joinAttribute.relation && joinAttribute.relation.junctionEntityMetadata) { this.expressionMap.createAlias({ type: "join", name: joinAttribute.junctionAlias, metadata: joinAttribute.relation.junctionEntityMetadata }); } } else { var subQuery = ""; if (entityOrProperty instanceof Function) { var subQueryBuilder = entityOrProperty(this.subQuery()); this.setParameters(subQueryBuilder.getParameters()); subQuery = subQueryBuilder.getQuery(); } else { subQuery = entityOrProperty; } var isSubQuery = entityOrProperty instanceof Function || entityOrProperty.substr(0, 1) === "(" && entityOrProperty.substr(-1) === ")"; joinAttribute.alias = this.expressionMap.createAlias({ type: "join", name: aliasName, tablePath: isSubQuery === false ? entityOrProperty : undefined, subQuery: isSubQuery === true ? subQuery : undefined, }); } }; /** * Creates "SELECT FROM" part of SQL query. */ SelectQueryBuilder.prototype.createSelectExpression = function () { var _this = this; if (!this.expressionMap.mainAlias) throw new Error("Cannot build query because main alias is not set (call qb#from method)"); // todo throw exception if selects or from is missing var allSelects = []; var excludedSelects = []; if (this.expressionMap.mainAlias.hasMetadata) { var metadata = this.expressionMap.mainAlias.metadata; allSelects.push.apply(allSelects, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(this.buildEscapedEntityColumnSelects(this.expressionMap.mainAlias.name, metadata)))); excludedSelects.push.apply(excludedSelects, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(this.findEntityColumnSelects(this.expressionMap.mainAlias.name, metadata)))); } // add selects from joins this.expressionMap.joinAttributes .forEach(function (join) { if (join.metadata) { allSelects.push.apply(allSelects, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(_this.buildEscapedEntityColumnSelects(join.alias.name, join.metadata)))); excludedSelects.push.apply(excludedSelects, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(_this.findEntityColumnSelects(join.alias.name, join.metadata)))); } else { var hasMainAlias = _this.expressionMap.selects.some(function (select) { return select.selection === join.alias.name; }); if (hasMainAlias) { allSelects.push({ selection: _this.escape(join.alias.name) + ".*" }); var excludedSelect = _this.expressionMap.selects.find(function (select) { return select.selection === join.alias.name; }); excludedSelects.push(excludedSelect); } } }); // add all other selects this.expressionMap.selects .filter(function (select) { return excludedSelects.indexOf(select) === -1; }) .forEach(function (select) { return allSelects.push({ selection: _this.replacePropertyNames(select.selection), aliasName: select.aliasName }); }); // if still selection is empty, then simply set it to all (*) if (allSelects.length === 0) allSelects.push({ selection: "*" }); var lock = ""; if (this.connection.driver instanceof BrowserDisabledDriversDummy["m" /* SqlServerDriver */]) { switch (this.expressionMap.lockMode) { case "pessimistic_read": lock = " WITH (HOLDLOCK, ROWLOCK)"; break; case "pessimistic_write": lock = " WITH (UPDLOCK, ROWLOCK)"; break; case "dirty_read": lock = " WITH (NOLOCK)"; break; } } // create a selection query var froms = this.expressionMap.aliases .filter(function (alias) { return alias.type === "from" && (alias.tablePath || alias.subQuery); }) .map(function (alias) { if (alias.subQuery) return alias.subQuery + " " + _this.escape(alias.name); return _this.getTableName(alias.tablePath) + " " + _this.escape(alias.name); }); var select = this.createSelectDistinctExpression(); var selection = allSelects.map(function (select) { return select.selection + (select.aliasName ? " AS " + _this.escape(select.aliasName) : ""); }).join(", "); return select + selection + " FROM " + froms.join(", ") + lock; }; /** * Creates select | select distinct part of SQL query. */ SelectQueryBuilder.prototype.createSelectDistinctExpression = function () { var _this = this; var _a = this.expressionMap, selectDistinct = _a.selectDistinct, selectDistinctOn = _a.selectDistinctOn; var driver = this.connection.driver; var select = "SELECT "; if (driver instanceof BrowserDisabledDriversDummy["k" /* PostgresDriver */] && selectDistinctOn.length > 0) { var selectDistinctOnMap = selectDistinctOn.map(function (on) { return _this.replacePropertyNames(on); }).join(", "); select = "SELECT DISTINCT ON (" + selectDistinctOnMap + ") "; } else if (selectDistinct) { select = "SELECT DISTINCT "; } return select; }; /** * Creates "JOIN" part of SQL query. */ SelectQueryBuilder.prototype.createJoinExpression = function () { // examples: // select from owning side // qb.select("post") // .leftJoinAndSelect("post.category", "category"); // select from non-owning side // qb.select("category") // .leftJoinAndSelect("category.post", "post"); var _this = this; var joins = this.expressionMap.joinAttributes.map(function (joinAttr) { var relation = joinAttr.relation; var destinationTableName = joinAttr.tablePath; var destinationTableAlias = joinAttr.alias.name; var appendedCondition = joinAttr.condition ? " AND (" + joinAttr.condition + ")" : ""; var parentAlias = joinAttr.parentAlias; // if join was build without relation (e.g. without "post.category") then it means that we have direct // table to join, without junction table involved. This means we simply join direct table. if (!parentAlias || !relation) { var destinationJoin = joinAttr.alias.subQuery ? joinAttr.alias.subQuery : _this.getTableName(destinationTableName); return " " + joinAttr.direction + " JOIN " + destinationJoin + " " + _this.escape(destinationTableAlias) + (joinAttr.condition ? " ON " + _this.replacePropertyNames(joinAttr.condition) : ""); } // if real entity relation is involved if (relation.isManyToOne || relation.isOneToOneOwner) { // JOIN `category` `category` ON `category`.`id` = `post`.`categoryId` var condition = relation.joinColumns.map(function (joinColumn) { return destinationTableAlias + "." + joinColumn.referencedColumn.propertyPath + "=" + parentAlias + "." + relation.propertyPath + "." + joinColumn.referencedColumn.propertyPath; }).join(" AND "); return " " + joinAttr.direction + " JOIN " + _this.getTableName(destinationTableName) + " " + _this.escape(destinationTableAlias) + " ON " + _this.replacePropertyNames(condition + appendedCondition); } else if (relation.isOneToMany || relation.isOneToOneNotOwner) { // JOIN `post` `post` ON `post`.`categoryId` = `category`.`id` var condition = relation.inverseRelation.joinColumns.map(function (joinColumn) { if (relation.inverseEntityMetadata.tableType === "entity-child" && relation.inverseEntityMetadata.discriminatorColumn) { appendedCondition += " AND " + destinationTableAlias + "." + relation.inverseEntityMetadata.discriminatorColumn.databaseName + "='" + relation.inverseEntityMetadata.discriminatorValue + "'"; } return destinationTableAlias + "." + relation.inverseRelation.propertyPath + "." + joinColumn.referencedColumn.propertyPath + "=" + parentAlias + "." + joinColumn.referencedColumn.propertyPath; }).join(" AND "); return " " + joinAttr.direction + " JOIN " + _this.getTableName(destinationTableName) + " " + _this.escape(destinationTableAlias) + " ON " + _this.replacePropertyNames(condition + appendedCondition); } else { // means many-to-many var junctionTableName = relation.junctionEntityMetadata.tablePath; var junctionAlias_1 = joinAttr.junctionAlias; var junctionCondition = "", destinationCondition = ""; if (relation.isOwning) { junctionCondition = relation.joinColumns.map(function (joinColumn) { // `post_category`.`postId` = `post`.`id` return junctionAlias_1 + "." + joinColumn.propertyPath + "=" + parentAlias + "." + joinColumn.referencedColumn.propertyPath; }).join(" AND "); destinationCondition = relation.inverseJoinColumns.map(function (joinColumn) { // `category`.`id` = `post_category`.`categoryId` return destinationTableAlias + "." + joinColumn.referencedColumn.propertyPath + "=" + junctionAlias_1 + "." + joinColumn.propertyPath; }).join(" AND "); } else { junctionCondition = relation.inverseRelation.inverseJoinColumns.map(function (joinColumn) { // `post_category`.`categoryId` = `category`.`id` return junctionAlias_1 + "." + joinColumn.propertyPath + "=" + parentAlias + "." + joinColumn.referencedColumn.propertyPath; }).join(" AND "); destinationCondition = relation.inverseRelation.joinColumns.map(function (joinColumn) { // `post`.`id` = `post_category`.`postId` return destinationTableAlias + "." + joinColumn.referencedColumn.propertyPath + "=" + junctionAlias_1 + "." + joinColumn.propertyPath; }).join(" AND "); } return " " + joinAttr.direction + " JOIN " + _this.getTableName(junctionTableName) + " " + _this.escape(junctionAlias_1) + " ON " + _this.replacePropertyNames(junctionCondition) + " " + joinAttr.direction + " JOIN " + _this.getTableName(destinationTableName) + " " + _this.escape(destinationTableAlias) + " ON " + _this.replacePropertyNames(destinationCondition + appendedCondition); } }); return joins.join(" "); }; /** * Creates "GROUP BY" part of SQL query. */ SelectQueryBuilder.prototype.createGroupByExpression = function () { if (!this.expressionMap.groupBys || !this.expressionMap.groupBys.length) return ""; return " GROUP BY " + this.replacePropertyNames(this.expressionMap.groupBys.join(", ")); }; /** * Creates "ORDER BY" part of SQL query. */ SelectQueryBuilder.prototype.createOrderByExpression = function () { var _this = this; var orderBys = this.expressionMap.allOrderBys; if (Object.keys(orderBys).length > 0) return " ORDER BY " + Object.keys(orderBys) .map(function (columnName) { if (typeof orderBys[columnName] === "string") { return _this.replacePropertyNames(columnName) + " " + orderBys[columnName]; } else { return _this.replacePropertyNames(columnName) + " " + orderBys[columnName].order + " " + orderBys[columnName].nulls; } }) .join(", "); return ""; }; /** * Creates "LIMIT" and "OFFSET" parts of SQL query. */ SelectQueryBuilder.prototype.createLimitOffsetExpression = function () { // in the case if nothing is joined in the query builder we don't need to make two requests to get paginated results // we can use regular limit / offset, that's why we add offset and limit construction here based on skip and take values var offset = this.expressionMap.offset, limit = this.expressionMap.limit; if (!offset && !limit && this.expressionMap.joinAttributes.length === 0) { offset = this.expressionMap.skip; limit = this.expressionMap.take; } if (this.connection.driver instanceof BrowserDisabledDriversDummy["m" /* SqlServerDriver */]) { // Due to a limitation in SQL Server's parser implementation it does not support using // OFFSET or FETCH NEXT without an ORDER BY clause being provided. In cases where the // user does not request one we insert a dummy ORDER BY that does nothing and should // have no effect on the query planner or on the order of the results returned. // https://dba.stackexchange.com/a/193799 var prefix = ""; if ((limit || offset) && Object.keys(this.expressionMap.allOrderBys).length <= 0) { prefix = " ORDER BY (SELECT NULL)"; } if (limit && offset) return prefix + " OFFSET " + offset + " ROWS FETCH NEXT " + limit + " ROWS ONLY"; if (limit) return prefix + " OFFSET 0 ROWS FETCH NEXT " + limit + " ROWS ONLY"; if (offset) return prefix + " OFFSET " + offset + " ROWS"; } else if (this.connection.driver instanceof BrowserDisabledDriversDummy["i" /* MysqlDriver */] || this.connection.driver instanceof BrowserDisabledDriversDummy["a" /* AuroraDataApiDriver */] || this.connection.driver instanceof BrowserDisabledDriversDummy["l" /* SapDriver */]) { if (limit && offset) return " LIMIT " + limit + " OFFSET " + offset; if (limit) return " LIMIT " + limit; if (offset) throw new OffsetWithoutLimitNotSupportedError["a" /* OffsetWithoutLimitNotSupportedError */](); } else if (this.connection.driver instanceof AbstractSqliteDriver["a" /* AbstractSqliteDriver */]) { if (limit && offset) return " LIMIT " + limit + " OFFSET " + offset; if (limit) return " LIMIT " + limit; if (offset) return " LIMIT -1 OFFSET " + offset; } else if (this.connection.driver instanceof BrowserDisabledDriversDummy["j" /* OracleDriver */]) { if (limit && offset) return " OFFSET " + offset + " ROWS FETCH NEXT " + limit + " ROWS ONLY"; if (limit) return " FETCH NEXT " + limit + " ROWS ONLY"; if (offset) return " OFFSET " + offset + " ROWS"; } else { if (limit && offset) return " LIMIT " + limit + " OFFSET " + offset; if (limit) return " LIMIT " + limit; if (offset) return " OFFSET " + offset; } return ""; }; /** * Creates "LOCK" part of SQL query. */ SelectQueryBuilder.prototype.createLockExpression = function () { var driver = this.connection.driver; var lockTablesClause = ""; if (this.expressionMap.lockTables) { if (!(driver instanceof BrowserDisabledDriversDummy["k" /* PostgresDriver */])) { throw new Error("Lock tables not supported in selected driver"); } if (this.expressionMap.lockTables.length < 1) { throw new Error("lockTables cannot be an empty array"); } lockTablesClause = " OF " + this.expressionMap.lockTables.join(", "); } switch (this.expressionMap.lockMode) { case "pessimistic_read": if (driver instanceof BrowserDisabledDriversDummy["i" /* MysqlDriver */] || driver instanceof BrowserDisabledDriversDummy["a" /* AuroraDataApiDriver */]) { return " LOCK IN SHARE MODE"; } else if (driver instanceof BrowserDisabledDriversDummy["k" /* PostgresDriver */]) { return " FOR SHARE" + lockTablesClause; } else if (driver instanceof BrowserDisabledDriversDummy["j" /* OracleDriver */]) { return " FOR UPDATE"; } else if (driver instanceof BrowserDisabledDriversDummy["m" /* SqlServerDriver */]) { return ""; } else { throw new LockNotSupportedOnGivenDriverError["a" /* LockNotSupportedOnGivenDriverError */](); } case "pessimistic_write": if (driver instanceof BrowserDisabledDriversDummy["i" /* MysqlDriver */] || driver instanceof BrowserDisabledDriversDummy["a" /* AuroraDataApiDriver */] || driver instanceof BrowserDisabledDriversDummy["j" /* OracleDriver */]) { return " FOR UPDATE"; } else if (driver instanceof BrowserDisabledDriversDummy["k" /* PostgresDriver */]) { return " FOR UPDATE" + lockTablesClause; } else if (driver instanceof BrowserDisabledDriversDummy["m" /* SqlServerDriver */]) { return ""; } else { throw new LockNotSupportedOnGivenDriverError["a" /* LockNotSupportedOnGivenDriverError */](); } case "pessimistic_partial_write": if (driver instanceof BrowserDisabledDriversDummy["k" /* PostgresDriver */]) { return " FOR UPDATE" + lockTablesClause + " SKIP LOCKED"; } else if (driver instanceof BrowserDisabledDriversDummy["i" /* MysqlDriver */]) { return " FOR UPDATE SKIP LOCKED"; } else { throw new LockNotSupportedOnGivenDriverError["a" /* LockNotSupportedOnGivenDriverError */](); } case "pessimistic_write_or_fail": if (driver instanceof BrowserDisabledDriversDummy["k" /* PostgresDriver */]) { return " FOR UPDATE" + lockTablesClause + " NOWAIT"; } else if (driver instanceof BrowserDisabledDriversDummy["i" /* MysqlDriver */]) { return " FOR UPDATE NOWAIT"; } else { throw new LockNotSupportedOnGivenDriverError["a" /* LockNotSupportedOnGivenDriverError */](); } case "for_no_key_update": if (driver instanceof BrowserDisabledDriversDummy["k" /* PostgresDriver */]) { return " FOR NO KEY UPDATE" + lockTablesClause; } else { throw new LockNotSupportedOnGivenDriverError["a" /* LockNotSupportedOnGivenDriverError */](); } default: return ""; } }; /** * Creates "HAVING" part of SQL query. */ SelectQueryBuilder.prototype.createHavingExpression = function () { var _this = this; if (!this.expressionMap.havings || !this.expressionMap.havings.length) return ""; var conditions = this.expressionMap.havings.map(function (having, index) { switch (having.type) { case "and": return (index > 0 ? "AND " : "") + _this.replacePropertyNames(having.condition); case "or": return (index > 0 ? "OR " : "") + _this.replacePropertyNames(having.condition); default: return _this.replacePropertyNames(having.condition); } }).join(" "); if (!conditions.length) return ""; return " HAVING " + conditions; }; SelectQueryBuilder.prototype.buildEscapedEntityColumnSelects = function (aliasName, metadata) { var _this = this; var hasMainAlias = this.expressionMap.selects.some(function (select) { return select.selection === aliasName; }); var columns = []; if (hasMainAlias) { columns.push.apply(columns, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(metadata.columns.filter(function (column) { return column.isSelect === true; })))); } columns.push.apply(columns, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(metadata.columns.filter(function (column) { return _this.expressionMap.selects.some(function (select) { return select.selection === aliasName + "." + column.propertyPath; }); })))); // if user used partial selection and did not select some primary columns which are required to be selected // we select those primary columns and mark them as "virtual". Later virtual column values will be removed from final entity // to make entity contain exactly what user selected if (columns.length === 0) // however not in the case when nothing (even partial) was selected from this target (for example joins without selection) return []; var nonSelectedPrimaryColumns = this.expressionMap.queryEntity ? metadata.primaryColumns.filter(function (primaryColumn) { return columns.indexOf(primaryColumn) === -1; }) : []; var allColumns = Object(tslib_es6["f" /* __spreadArray */])(Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(columns)), Object(tslib_es6["e" /* __read */])(nonSelectedPrimaryColumns)); return allColumns.map(function (column) { var selection = _this.expressionMap.selects.find(function (select) { return select.selection === aliasName + "." + column.propertyPath; }); var selectionPath = _this.escape(aliasName) + "." + _this.escape(column.databaseName); if (_this.connection.driver.spatialTypes.indexOf(column.type) !== -1) { if (_this.connection.driver instanceof BrowserDisabledDriversDummy["i" /* MysqlDriver */] || _this.connection.driver instanceof BrowserDisabledDriversDummy["a" /* AuroraDataApiDriver */]) { var useLegacy = _this.connection.driver.options.legacySpatialSupport; var asText = useLegacy ? "AsText" : "ST_AsText"; selectionPath = asText + "(" + selectionPath + ")"; } if (_this.connection.driver instanceof BrowserDisabledDriversDummy["k" /* PostgresDriver */]) // cast to JSON to trigger parsing in the driver if (column.precision) { selectionPath = "ST_AsGeoJSON(" + selectionPath + ", " + column.precision + ")::json"; } else { selectionPath = "ST_AsGeoJSON(" + selectionPath + ")::json"; } if (_this.connection.driver instanceof BrowserDisabledDriversDummy["m" /* SqlServerDriver */]) selectionPath = selectionPath + ".ToString()"; } return { selection: selectionPath, aliasName: selection && selection.aliasName ? selection.aliasName : DriverUtils["a" /* DriverUtils */].buildColumnAlias(_this.connection.driver, aliasName, column.databaseName), // todo: need to keep in mind that custom selection.aliasName breaks hydrator. fix it later! virtual: selection ? selection.virtual === true : (hasMainAlias ? false : true), }; }); }; SelectQueryBuilder.prototype.findEntityColumnSelects = function (aliasName, metadata) { var mainSelect = this.expressionMap.selects.find(function (select) { return select.selection === aliasName; }); if (mainSelect) return [mainSelect]; return this.expressionMap.selects.filter(function (select) { return metadata.columns.some(function (column) { return select.selection === aliasName + "." + column.propertyPath; }); }); }; SelectQueryBuilder.prototype.computeCountExpression = function () { var _this = this; var mainAlias = this.expressionMap.mainAlias.name; // todo: will this work with "fromTableName"? var metadata = this.expressionMap.mainAlias.metadata; var primaryColumns = metadata.primaryColumns; var distinctAlias = this.escape(mainAlias); // If we aren't doing anything that will create a join, we can use a simpler `COUNT` instead // so we prevent poor query patterns in the most likely cases if (this.expressionMap.joinAttributes.length === 0 && this.expressionMap.relationIdAttributes.length === 0 && this.expressionMap.relationCountAttributes.length === 0) { return "COUNT(1)"; } // For everything else, we'll need to do some hackery to get the correct count values. if (this.connection.driver instanceof BrowserDisabledDriversDummy["d" /* CockroachDriver */] || this.connection.driver instanceof BrowserDisabledDriversDummy["k" /* PostgresDriver */]) { // Postgres and CockroachDB can pass multiple parameters to the `DISTINCT` function // https://www.postgresql.org/docs/9.5/sql-select.html#SQL-DISTINCT return "COUNT(DISTINCT(" + primaryColumns.map(function (c) { return distinctAlias + "." + _this.escape(c.databaseName); }).join(", ") + "))"; } if (this.connection.driver instanceof BrowserDisabledDriversDummy["i" /* MysqlDriver */]) { // MySQL & MariaDB can pass multiple parameters to the `DISTINCT` language construct // https://mariadb.com/kb/en/count-distinct/ return "COUNT(DISTINCT " + primaryColumns.map(function (c) { return distinctAlias + "." + _this.escape(c.databaseName); }).join(", ") + ")"; } if (this.connection.driver instanceof BrowserDisabledDriversDummy["m" /* SqlServerDriver */]) { // SQL Server has gotta be different from everyone else. They don't support // distinct counting multiple columns & they don't have the same operator // characteristic for concatenating, so we gotta use the `CONCAT` function. // However, If it's exactly 1 column we can omit the `CONCAT` for better performance. var columnsExpression = primaryColumns.map(function (primaryColumn) { return distinctAlias + "." + _this.escape(primaryColumn.databaseName); }).join(", '|;|', "); if (primaryColumns.length === 1) { return "COUNT(DISTINCT(" + columnsExpression + "))"; } return "COUNT(DISTINCT(CONCAT(" + columnsExpression + ")))"; } // If all else fails, fall back to a `COUNT` and `DISTINCT` across all the primary columns concatenated. // Per the SQL spec, this is the canonical string concatenation mechanism which is most // likely to work across servers implementing the SQL standard. // Please note, if there is only one primary column that the concatenation does not occur in this // query and the query is a standard `COUNT DISTINCT` in that case. return "COUNT(DISTINCT(" + primaryColumns.map(function (c) { return distinctAlias + "." + _this.escape(c.databaseName); }).join(" || '|;|' || ") + "))"; }; SelectQueryBuilder.prototype.executeCountQuery = function (queryRunner) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var countSql, results; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: countSql = this.computeCountExpression(); return [4 /*yield*/, this.clone() .orderBy() .groupBy() .offset(undefined) .limit(undefined) .skip(undefined) .take(undefined) .select(countSql, "cnt") .setOption("disable-global-order") .loadRawResults(queryRunner)]; case 1: results = _a.sent(); if (!results || !results[0] || !results[0]["cnt"]) return [2 /*return*/, 0]; return [2 /*return*/, parseInt(results[0]["cnt"])]; } }); }); }; /** * Executes sql generated by query builder and returns object with raw results and entities created from them. */ SelectQueryBuilder.prototype.executeEntitiesAndRawResults = function (queryRunner) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var metadata, relationIdLoader, relationCountLoader, relationIdMetadataTransformer, relationCountMetadataTransformer, rawResults, entities, _a, selects, orderBys_1, metadata_1, mainAliasName_1, querySelects, condition, parameters_1, alias_1, ids, areAllNumbers, rawRelationIdResults, rawRelationCountResults, transformer, broadcastResult; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: if (!this.expressionMap.mainAlias) throw new Error("Alias is not set. Use \"from\" method to set an alias."); if ((this.expressionMap.lockMode === "pessimistic_read" || this.expressionMap.lockMode === "pessimistic_write" || this.expressionMap.lockMode === "pessimistic_partial_write" || this.expressionMap.lockMode === "pessimistic_write_or_fail" || this.expressionMap.lockMode === "for_no_key_update") && !queryRunner.isTransactionActive) throw new PessimisticLockTransactionRequiredError["a" /* PessimisticLockTransactionRequiredError */](); if (this.expressionMap.lockMode === "optimistic") { metadata = this.expressionMap.mainAlias.metadata; if (!metadata.versionColumn && !metadata.updateDateColumn) throw new NoVersionOrUpdateDateColumnError["a" /* NoVersionOrUpdateDateColumnError */](metadata.name); } relationIdLoader = new RelationIdLoader_RelationIdLoader(this.connection, queryRunner, this.expressionMap.relationIdAttributes); relationCountLoader = new RelationCountLoader_RelationCountLoader(this.connection, queryRunner, this.expressionMap.relationCountAttributes); relationIdMetadataTransformer = new RelationIdMetadataToAttributeTransformer_RelationIdMetadataToAttributeTransformer(this.expressionMap); relationIdMetadataTransformer.transform(); relationCountMetadataTransformer = new RelationCountMetadataToAttributeTransformer_RelationCountMetadataToAttributeTransformer(this.expressionMap); relationCountMetadataTransformer.transform(); rawResults = [], entities = []; if (!((this.expressionMap.skip || this.expressionMap.take) && this.expressionMap.joinAttributes.length > 0)) return [3 /*break*/, 4]; _a = Object(tslib_es6["e" /* __read */])(this.createOrderByCombinedWithSelectExpression("distinctAlias"), 2), selects = _a[0], orderBys_1 = _a[1]; metadata_1 = this.expressionMap.mainAlias.metadata; mainAliasName_1 = this.expressionMap.mainAlias.name; querySelects = metadata_1.primaryColumns.map(function (primaryColumn) { var distinctAlias = _this.escape("distinctAlias"); var columnAlias = _this.escape(DriverUtils["a" /* DriverUtils */].buildColumnAlias(_this.connection.driver, mainAliasName_1, primaryColumn.databaseName)); if (!orderBys_1[columnAlias]) // make sure we aren't overriding user-defined order in inverse direction orderBys_1[columnAlias] = "ASC"; var alias = DriverUtils["a" /* DriverUtils */].buildColumnAlias(_this.connection.driver, "ids_" + mainAliasName_1, primaryColumn.databaseName); return distinctAlias + "." + columnAlias + " as \"" + alias + "\""; }); return [4 /*yield*/, new SelectQueryBuilder(this.connection, queryRunner) .select("DISTINCT " + querySelects.join(", ")) .addSelect(selects) .from("(" + this.clone().orderBy().getQuery() + ")", "distinctAlias") .offset(this.expressionMap.skip) .limit(this.expressionMap.take) .orderBy(orderBys_1) .cache(this.expressionMap.cache ? this.expressionMap.cache : this.expressionMap.cacheId, this.expressionMap.cacheDuration) .setParameters(this.getParameters()) .setNativeParameters(this.expressionMap.nativeParameters) .getRawMany()]; case 1: rawResults = _b.sent(); if (!(rawResults.length > 0)) return [3 /*break*/, 3]; condition = ""; parameters_1 = {}; if (metadata_1.hasMultiplePrimaryKeys) { condition = rawResults.map(function (result, index) { return metadata_1.primaryColumns.map(function (primaryColumn) { var paramKey = "orm_distinct_ids_" + index + "_" + primaryColumn.databaseName; parameters_1[paramKey] = result["ids_" + mainAliasName_1 + "_" + primaryColumn.databaseName]; return mainAliasName_1 + "." + primaryColumn.propertyPath + "=:" + paramKey; }).join(" AND "); }).join(" OR "); } else { alias_1 = DriverUtils["a" /* DriverUtils */].buildColumnAlias(this.connection.driver, "ids_" + mainAliasName_1, metadata_1.primaryColumns[0].databaseName); ids = rawResults.map(function (result) { return result[alias_1]; }); areAllNumbers = ids.every(function (id) { return typeof id === "number"; }); if (areAllNumbers) { // fixes #190. if all numbers then its safe to perform query without parameter condition = mainAliasName_1 + "." + metadata_1.primaryColumns[0].propertyPath + " IN (" + ids.join(", ") + ")"; } else { parameters_1["orm_distinct_ids"] = ids; condition = mainAliasName_1 + "." + metadata_1.primaryColumns[0].propertyPath + " IN (:...orm_distinct_ids)"; } } return [4 /*yield*/, this.clone() .mergeExpressionMap({ extraAppendedAndWhereCondition: condition }) .setParameters(parameters_1) .loadRawResults(queryRunner)]; case 2: rawResults = _b.sent(); _b.label = 3; case 3: return [3 /*break*/, 6]; case 4: return [4 /*yield*/, this.loadRawResults(queryRunner)]; case 5: rawResults = _b.sent(); _b.label = 6; case 6: if (!(rawResults.length > 0)) return [3 /*break*/, 10]; return [4 /*yield*/, relationIdLoader.load(rawResults)]; case 7: rawRelationIdResults = _b.sent(); return [4 /*yield*/, relationCountLoader.load(rawResults)]; case 8: rawRelationCountResults = _b.sent(); transformer = new RawSqlResultsToEntityTransformer["a" /* RawSqlResultsToEntityTransformer */](this.expressionMap, this.connection.driver, rawRelationIdResults, rawRelationCountResults, this.queryRunner); entities = transformer.transform(rawResults, this.expressionMap.mainAlias); if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 10]; broadcastResult = new BroadcasterResult["a" /* BroadcasterResult */](); queryRunner.broadcaster.broadcastLoadEventsForAll(broadcastResult, this.expressionMap.mainAlias.metadata, entities); if (!(broadcastResult.promises.length > 0)) return [3 /*break*/, 10]; return [4 /*yield*/, Promise.all(broadcastResult.promises)]; case 9: _b.sent(); _b.label = 10; case 10: return [2 /*return*/, { raw: rawResults, entities: entities, }]; } }); }); }; SelectQueryBuilder.prototype.createOrderByCombinedWithSelectExpression = function (parentAlias) { var _this = this; // if table has a default order then apply it var orderBys = this.expressionMap.allOrderBys; var selectString = Object.keys(orderBys) .map(function (orderCriteria) { if (orderCriteria.indexOf(".") !== -1) { var criteriaParts = orderCriteria.split("."); var aliasName = criteriaParts[0]; var propertyPath = criteriaParts.slice(1).join("."); var alias = _this.expressionMap.findAliasByName(aliasName); var column = alias.metadata.findColumnWithPropertyPath(propertyPath); return _this.escape(parentAlias) + "." + _this.escape(DriverUtils["a" /* DriverUtils */].buildColumnAlias(_this.connection.driver, aliasName, column.databaseName)); } else { if (_this.expressionMap.selects.find(function (select) { return select.selection === orderCriteria || select.aliasName === orderCriteria; })) return _this.escape(parentAlias) + "." + orderCriteria; return ""; } }) .join(", "); var orderByObject = {}; Object.keys(orderBys).forEach(function (orderCriteria) { if (orderCriteria.indexOf(".") !== -1) { var criteriaParts = orderCriteria.split("."); var aliasName = criteriaParts[0]; var propertyPath = criteriaParts.slice(1).join("."); var alias = _this.expressionMap.findAliasByName(aliasName); var column = alias.metadata.findColumnWithPropertyPath(propertyPath); orderByObject[_this.escape(parentAlias) + "." + _this.escape(DriverUtils["a" /* DriverUtils */].buildColumnAlias(_this.connection.driver, aliasName, column.databaseName))] = orderBys[orderCriteria]; } else { if (_this.expressionMap.selects.find(function (select) { return select.selection === orderCriteria || select.aliasName === orderCriteria; })) { orderByObject[_this.escape(parentAlias) + "." + orderCriteria] = orderBys[orderCriteria]; } else { orderByObject[orderCriteria] = orderBys[orderCriteria]; } } }); return [selectString, orderByObject]; }; /** * Loads raw results from the database. */ SelectQueryBuilder.prototype.loadRawResults = function (queryRunner) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _a, sql, parameters, queryId, cacheOptions, savedQueryResultCacheOptions, results; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: _a = Object(tslib_es6["e" /* __read */])(this.getQueryAndParameters(), 2), sql = _a[0], parameters = _a[1]; queryId = sql + " -- PARAMETERS: " + JSON.stringify(parameters); cacheOptions = typeof this.connection.options.cache === "object" ? this.connection.options.cache : {}; savedQueryResultCacheOptions = undefined; if (!(this.connection.queryResultCache && (this.expressionMap.cache || cacheOptions.alwaysEnabled))) return [3 /*break*/, 2]; return [4 /*yield*/, this.connection.queryResultCache.getFromCache({ identifier: this.expressionMap.cacheId, query: queryId, duration: this.expressionMap.cacheDuration || cacheOptions.duration || 1000 }, queryRunner)]; case 1: savedQueryResultCacheOptions = _b.sent(); if (savedQueryResultCacheOptions && !this.connection.queryResultCache.isExpired(savedQueryResultCacheOptions)) return [2 /*return*/, JSON.parse(savedQueryResultCacheOptions.result)]; _b.label = 2; case 2: return [4 /*yield*/, queryRunner.query(sql, parameters)]; case 3: results = _b.sent(); if (!(this.connection.queryResultCache && (this.expressionMap.cache || cacheOptions.alwaysEnabled))) return [3 /*break*/, 5]; return [4 /*yield*/, this.connection.queryResultCache.storeInCache({ identifier: this.expressionMap.cacheId, query: queryId, time: new Date().getTime(), duration: this.expressionMap.cacheDuration || cacheOptions.duration || 1000, result: JSON.stringify(results) }, savedQueryResultCacheOptions, queryRunner)]; case 4: _b.sent(); _b.label = 5; case 5: return [2 /*return*/, results]; } }); }); }; /** * Merges into expression map given expression map properties. */ SelectQueryBuilder.prototype.mergeExpressionMap = function (expressionMap) { ObjectUtils["a" /* ObjectUtils */].assign(this.expressionMap, expressionMap); return this; }; /** * Normalizes a give number - converts to int if possible. */ SelectQueryBuilder.prototype.normalizeNumber = function (num) { if (typeof num === "number" || num === undefined || num === null) return num; return Number(num); }; /** * Creates a query builder used to execute sql queries inside this query builder. */ SelectQueryBuilder.prototype.obtainQueryRunner = function () { return this.queryRunner || this.connection.createQueryRunner("slave"); }; return SelectQueryBuilder; }(QueryBuilder["a" /* QueryBuilder */])); //# sourceMappingURL=SelectQueryBuilder.js.map /***/ }), /* 118 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return RelationIdAttribute; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var _QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50); /* harmony import */ var _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24); /** * Stores all join relation id attributes which will be used to build a JOIN query. */ var RelationIdAttribute = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function RelationIdAttribute(queryExpressionMap, relationIdAttribute) { this.queryExpressionMap = queryExpressionMap; /** * Indicates if relation id should NOT be loaded as id map. */ this.disableMixedMap = false; _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_2__[/* ObjectUtils */ "a"].assign(this, relationIdAttribute || {}); } Object.defineProperty(RelationIdAttribute.prototype, "joinInverseSideMetadata", { // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- get: function () { return this.relation.inverseEntityMetadata; }, enumerable: false, configurable: true }); Object.defineProperty(RelationIdAttribute.prototype, "parentAlias", { /** * Alias of the parent of this join. * For example, if we join ("post.category", "categoryAlias") then "post" is a parent alias. * This value is extracted from entityOrProperty value. * This is available when join was made using "post.category" syntax. */ get: function () { if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[/* QueryBuilderUtils */ "a"].isAliasProperty(this.relationName)) throw new Error("Given value must be a string representation of alias property"); return this.relationName.substr(0, this.relationName.indexOf(".")); }, enumerable: false, configurable: true }); Object.defineProperty(RelationIdAttribute.prototype, "relationPropertyPath", { /** * Relation property name of the parent. * This is used to understand what is joined. * For example, if we join ("post.category", "categoryAlias") then "category" is a relation property. * This value is extracted from entityOrProperty value. * This is available when join was made using "post.category" syntax. */ get: function () { if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[/* QueryBuilderUtils */ "a"].isAliasProperty(this.relationName)) throw new Error("Given value must be a string representation of alias property"); return this.relationName.substr(this.relationName.indexOf(".") + 1); }, enumerable: false, configurable: true }); Object.defineProperty(RelationIdAttribute.prototype, "relation", { /** * Relation of the parent. * This is used to understand what is joined. * This is available when join was made using "post.category" syntax. */ get: function () { if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[/* QueryBuilderUtils */ "a"].isAliasProperty(this.relationName)) throw new Error("Given value must be a string representation of alias property"); var relationOwnerSelection = this.queryExpressionMap.findAliasByName(this.parentAlias); var relation = relationOwnerSelection.metadata.findRelationWithPropertyPath(this.relationPropertyPath); if (!relation) throw new Error("Relation with property path " + this.relationPropertyPath + " in entity was not found."); return relation; }, enumerable: false, configurable: true }); Object.defineProperty(RelationIdAttribute.prototype, "junctionAlias", { /** * Generates alias of junction table, whose ids we get. */ get: function () { var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(this.relationName.split("."), 2), parentAlias = _a[0], relationProperty = _a[1]; return parentAlias + "_" + relationProperty + "_rid"; }, enumerable: false, configurable: true }); Object.defineProperty(RelationIdAttribute.prototype, "junctionMetadata", { /** * Metadata of the joined entity. * If extra condition without entity was joined, then it will return undefined. */ get: function () { return this.relation.junctionEntityMetadata; }, enumerable: false, configurable: true }); Object.defineProperty(RelationIdAttribute.prototype, "mapToPropertyParentAlias", { get: function () { return this.mapToProperty.substr(0, this.mapToProperty.indexOf(".")); }, enumerable: false, configurable: true }); Object.defineProperty(RelationIdAttribute.prototype, "mapToPropertyPropertyPath", { get: function () { return this.mapToProperty.substr(this.mapToProperty.indexOf(".") + 1); }, enumerable: false, configurable: true }); return RelationIdAttribute; }()); //# sourceMappingURL=RelationIdAttribute.js.map /***/ }), /* 119 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return RelationCountAttribute; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var _QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50); /* harmony import */ var _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24); var RelationCountAttribute = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function RelationCountAttribute(expressionMap, relationCountAttribute) { this.expressionMap = expressionMap; _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_2__[/* ObjectUtils */ "a"].assign(this, relationCountAttribute || {}); } Object.defineProperty(RelationCountAttribute.prototype, "joinInverseSideMetadata", { // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- get: function () { return this.relation.inverseEntityMetadata; }, enumerable: false, configurable: true }); Object.defineProperty(RelationCountAttribute.prototype, "parentAlias", { /** * Alias of the parent of this join. * For example, if we join ("post.category", "categoryAlias") then "post" is a parent alias. * This value is extracted from entityOrProperty value. * This is available when join was made using "post.category" syntax. */ get: function () { if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[/* QueryBuilderUtils */ "a"].isAliasProperty(this.relationName)) throw new Error("Given value must be a string representation of alias property"); return this.relationName.split(".")[0]; }, enumerable: false, configurable: true }); Object.defineProperty(RelationCountAttribute.prototype, "relationProperty", { /** * Relation property name of the parent. * This is used to understand what is joined. * For example, if we join ("post.category", "categoryAlias") then "category" is a relation property. * This value is extracted from entityOrProperty value. * This is available when join was made using "post.category" syntax. */ get: function () { if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[/* QueryBuilderUtils */ "a"].isAliasProperty(this.relationName)) throw new Error("Given value is a string representation of alias property"); return this.relationName.split(".")[1]; }, enumerable: false, configurable: true }); Object.defineProperty(RelationCountAttribute.prototype, "junctionAlias", { get: function () { var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(this.relationName.split("."), 2), parentAlias = _a[0], relationProperty = _a[1]; return parentAlias + "_" + relationProperty + "_rc"; }, enumerable: false, configurable: true }); Object.defineProperty(RelationCountAttribute.prototype, "relation", { /** * Relation of the parent. * This is used to understand what is joined. * This is available when join was made using "post.category" syntax. */ get: function () { if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[/* QueryBuilderUtils */ "a"].isAliasProperty(this.relationName)) throw new Error("Given value is a string representation of alias property"); var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(this.relationName.split("."), 2), parentAlias = _a[0], propertyPath = _a[1]; var relationOwnerSelection = this.expressionMap.findAliasByName(parentAlias); var relation = relationOwnerSelection.metadata.findRelationWithPropertyPath(propertyPath); if (!relation) throw new Error("Relation with property path " + propertyPath + " in entity was not found."); return relation; }, enumerable: false, configurable: true }); Object.defineProperty(RelationCountAttribute.prototype, "metadata", { /** * Metadata of the joined entity. * If table without entity was joined, then it will return undefined. */ get: function () { if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[/* QueryBuilderUtils */ "a"].isAliasProperty(this.relationName)) throw new Error("Given value is a string representation of alias property"); var parentAlias = this.relationName.split(".")[0]; var selection = this.expressionMap.findAliasByName(parentAlias); return selection.metadata; }, enumerable: false, configurable: true }); Object.defineProperty(RelationCountAttribute.prototype, "mapToPropertyPropertyName", { get: function () { return this.mapToProperty.split(".")[1]; }, enumerable: false, configurable: true }); return RelationCountAttribute; }()); //# sourceMappingURL=RelationCountAttribute.js.map /***/ }), /* 120 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ReturningResultsEntityUpdator; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6); /* harmony import */ var _driver_oracle_OracleDriver__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /** * Updates entity with returning results in the entity insert and update operations. */ var ReturningResultsEntityUpdator = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function ReturningResultsEntityUpdator(queryRunner, expressionMap) { this.queryRunner = queryRunner; this.expressionMap = expressionMap; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Updates entities with a special columns after updation query execution. */ ReturningResultsEntityUpdator.prototype.update = function (updateResult, entities) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var metadata; var _this = this; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: metadata = this.expressionMap.mainAlias.metadata; return [4 /*yield*/, Promise.all(entities.map(function (entity, entityIndex) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(_this, void 0, void 0, function () { var result, returningColumns, updationColumns, entityId, loadedReturningColumns; var _this = this; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: if (!this.queryRunner.connection.driver.isReturningSqlSupported()) return [3 /*break*/, 1]; if (this.queryRunner.connection.driver instanceof _driver_oracle_OracleDriver__WEBPACK_IMPORTED_MODULE_2__[/* OracleDriver */ "j"] && Array.isArray(updateResult.raw) && this.expressionMap.extraReturningColumns.length > 0) { updateResult.raw = updateResult.raw.reduce(function (newRaw, rawItem, rawItemIndex) { newRaw[_this.expressionMap.extraReturningColumns[rawItemIndex].databaseName] = rawItem[0]; return newRaw; }, {}); } result = Array.isArray(updateResult.raw) ? updateResult.raw[entityIndex] : updateResult.raw; returningColumns = this.queryRunner.connection.driver.createGeneratedMap(metadata, result); if (returningColumns) { this.queryRunner.manager.merge(metadata.target, entity, returningColumns); updateResult.generatedMaps.push(returningColumns); } return [3 /*break*/, 3]; case 1: updationColumns = this.getUpdationReturningColumns(); if (!(updationColumns.length > 0)) return [3 /*break*/, 3]; entityId = this.expressionMap.mainAlias.metadata.getEntityIdMap(entity); if (!entityId) throw new Error("Cannot update entity because entity id is not set in the entity."); return [4 /*yield*/, this.queryRunner.manager .createQueryBuilder() .select(metadata.primaryColumns.map(function (column) { return metadata.targetName + "." + column.propertyPath; })) .addSelect(this.getUpdationReturningColumns().map(function (column) { return metadata.targetName + "." + column.propertyPath; })) .from(metadata.target, metadata.targetName) .where(entityId) .setOption("create-pojo") // use POJO because created object can contain default values, e.g. property = null and those properties maight be overridden by merge process .getOne()]; case 2: loadedReturningColumns = _a.sent(); if (loadedReturningColumns) { this.queryRunner.manager.merge(metadata.target, entity, loadedReturningColumns); updateResult.generatedMaps.push(loadedReturningColumns); } _a.label = 3; case 3: return [2 /*return*/]; } }); }); }))]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Updates entities with a special columns after insertion query execution. */ ReturningResultsEntityUpdator.prototype.insert = function (insertResult, entities) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var metadata, insertionColumns, generatedMaps, entityIds, returningResult_1; var _this = this; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: metadata = this.expressionMap.mainAlias.metadata; insertionColumns = this.getInsertionReturningColumns(); generatedMaps = entities.map(function (entity, entityIndex) { if (_this.queryRunner.connection.driver instanceof _driver_oracle_OracleDriver__WEBPACK_IMPORTED_MODULE_2__[/* OracleDriver */ "j"] && Array.isArray(insertResult.raw) && _this.expressionMap.extraReturningColumns.length > 0) { insertResult.raw = insertResult.raw.reduce(function (newRaw, rawItem, rawItemIndex) { newRaw[_this.expressionMap.extraReturningColumns[rawItemIndex].databaseName] = rawItem[0]; return newRaw; }, {}); } // get all values generated by a database for us var result = Array.isArray(insertResult.raw) ? insertResult.raw[entityIndex] : insertResult.raw; var generatedMap = _this.queryRunner.connection.driver.createGeneratedMap(metadata, result, entityIndex, entities.length) || {}; // if database does not support uuid generation we need to get uuid values // generated by orm and set them to the generatedMap if (_this.queryRunner.connection.driver.isUUIDGenerationSupported() === false) { metadata.generatedColumns.forEach(function (generatedColumn) { if (generatedColumn.generationStrategy === "uuid") { // uuid can be defined by user in a model, that's why first we get it var uuid = generatedColumn.getEntityValue(entity); if (!uuid) // if it was not defined by a user then InsertQueryBuilder generates it by its own, get this generated uuid value uuid = _this.expressionMap.nativeParameters["uuid_" + generatedColumn.databaseName + entityIndex]; _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[/* OrmUtils */ "a"].mergeDeep(generatedMap, generatedColumn.createValueMap(uuid)); } }); } _this.queryRunner.manager.merge(metadata.target, entity, generatedMap); // todo: this should not be here, but problem with below line return generatedMap; }); if (!(this.queryRunner.connection.driver.isReturningSqlSupported() === false && insertionColumns.length > 0)) return [3 /*break*/, 2]; entityIds = entities.map(function (entity) { var entityId = metadata.getEntityIdMap(entity); // We have to check for an empty `entityId` - if we don't, the query against the database // effectively drops the `where` clause entirely and the first record will be returned - // not what we want at all. if (!entityId) throw new Error("Cannot update entity because entity id is not set in the entity."); return entityId; }); return [4 /*yield*/, this.queryRunner.manager .createQueryBuilder() .select(metadata.primaryColumns.map(function (column) { return metadata.targetName + "." + column.propertyPath; })) .addSelect(insertionColumns.map(function (column) { return metadata.targetName + "." + column.propertyPath; })) .from(metadata.target, metadata.targetName) .where(entityIds) .setOption("create-pojo") // use POJO because created object can contain default values, e.g. property = null and those properties maight be overridden by merge process .getMany()]; case 1: returningResult_1 = _a.sent(); entities.forEach(function (entity, entityIndex) { _this.queryRunner.manager.merge(metadata.target, generatedMaps[entityIndex], returningResult_1[entityIndex]); }); _a.label = 2; case 2: entities.forEach(function (entity, entityIndex) { var entityId = metadata.getEntityIdMap(entity); insertResult.identifiers.push(entityId); insertResult.generatedMaps.push(generatedMaps[entityIndex]); _this.queryRunner.manager.merge(_this.expressionMap.mainAlias.metadata.target, entity, generatedMaps[entityIndex], generatedMaps[entityIndex]); // todo: why twice?! }); return [2 /*return*/]; } }); }); }; /** * Columns we need to be returned from the database when we insert entity. */ ReturningResultsEntityUpdator.prototype.getInsertionReturningColumns = function () { // for databases which support returning statement we need to return extra columns like id // for other databases we don't need to return id column since its returned by a driver already var needToCheckGenerated = this.queryRunner.connection.driver.isReturningSqlSupported(); // filter out the columns of which we need database inserted values to update our entity return this.expressionMap.mainAlias.metadata.columns.filter(function (column) { return column.default !== undefined || (needToCheckGenerated && column.isGenerated) || column.isCreateDate || column.isUpdateDate || column.isDeleteDate || column.isVersion; }); }; /** * Columns we need to be returned from the database when we update entity. */ ReturningResultsEntityUpdator.prototype.getUpdationReturningColumns = function () { return this.expressionMap.mainAlias.metadata.columns.filter(function (column) { return column.isUpdateDate || column.isVersion; }); }; return ReturningResultsEntityUpdator; }()); //# sourceMappingURL=ReturningResultsEntityUpdator.js.map /***/ }), /* 121 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TableUtils; }); var TableUtils = /** @class */ (function () { function TableUtils() { } TableUtils.createTableColumnOptions = function (columnMetadata, driver) { return { name: columnMetadata.databaseName, length: columnMetadata.length, width: columnMetadata.width, charset: columnMetadata.charset, collation: columnMetadata.collation, precision: columnMetadata.precision, scale: columnMetadata.scale, zerofill: columnMetadata.zerofill, unsigned: columnMetadata.unsigned, asExpression: columnMetadata.asExpression, generatedType: columnMetadata.generatedType, default: driver.normalizeDefault(columnMetadata), onUpdate: columnMetadata.onUpdate, comment: columnMetadata.comment, isGenerated: columnMetadata.isGenerated, generationStrategy: columnMetadata.generationStrategy, isNullable: columnMetadata.isNullable, type: driver.normalizeType(columnMetadata), isPrimary: columnMetadata.isPrimary, isUnique: driver.normalizeIsUnique(columnMetadata), isArray: columnMetadata.isArray || false, enum: columnMetadata.enum ? columnMetadata.enum.map(function (val) { return val + ""; }) : columnMetadata.enum, enumName: columnMetadata.enumName, spatialFeatureType: columnMetadata.spatialFeatureType, srid: columnMetadata.srid }; }; return TableUtils; }()); //# sourceMappingURL=TableUtils.js.map /***/ }), /* 122 */ /***/ (function(module, exports, __webpack_require__) { // fallback for non-array-like ES3 and non-enumerable old V8 strings var cof = __webpack_require__(75); // eslint-disable-next-line no-prototype-builtins module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { return cof(it) == 'String' ? it.split('') : Object(it); }; /***/ }), /* 123 */ /***/ (function(module, exports) { exports.f = {}.propertyIsEnumerable; /***/ }), /* 124 */ /***/ (function(module, exports, __webpack_require__) { // getting tag from 19.1.3.6 Object.prototype.toString() var cof = __webpack_require__(75); var TAG = __webpack_require__(19)('toStringTag'); // ES3 wrong here var ARG = cof(function () { return arguments; }()) == 'Arguments'; // fallback for IE11 Script Access Denied error var tryGet = function (it, key) { try { return it[key]; } catch (e) { /* empty */ } }; module.exports = function (it) { var O, T, B; return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T // builtinTag case : ARG ? cof(O) // ES3 arguments fallback : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; }; /***/ }), /* 125 */ /***/ (function(module, exports, __webpack_require__) { // 7.3.20 SpeciesConstructor(O, defaultConstructor) var anObject = __webpack_require__(13); var aFunction = __webpack_require__(64); var SPECIES = __webpack_require__(19)('species'); module.exports = function (O, D) { var C = anObject(O).constructor; var S; return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); }; /***/ }), /* 126 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.UserSite = void 0; var shared_1 = __webpack_require__(17); var client_1 = __webpack_require__(4); var UserManager_1 = __webpack_require__(100); var LoginSite_1 = __webpack_require__(149); var NotAllowedSite_1 = __webpack_require__(273); var UserSite = /*#__PURE__*/function (_client_1$DelegateSit) { _inherits(UserSite, _client_1$DelegateSit); var _super2 = _createSuper(UserSite); function UserSite(site, access, allowOfflineAccess) { var _this; _classCallCheck(this, UserSite); _this = _super2.call(this, site); _this._access = access; _this._allowOfflineAccess = shared_1.Helper.nonNull(allowOfflineAccess, false); return _this; } _createClass(UserSite, [{ key: "onConstruct", value: function onConstruct(constructParameters) { var _this2 = this; var _super = Object.create(null, { onConstruct: { get: function get() { return _get(_getPrototypeOf(UserSite.prototype), "onConstruct", _this2); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var _this3 = this; var res; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return UserManager_1.UserManager.getInstance().waitForGetMe(); case 2: _context2.next = 4; return this._checkRights(); case 4: if (!_context2.sent) { _context2.next = 10; break; } _context2.next = 7; return _super.onConstruct.call(this, constructParameters); case 7: res = _context2.sent; UserManager_1.UserManager.getInstance().addLoginChangeCallback(function () { return __awaiter(_this3, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return this._checkRights(); case 2: case "end": return _context.stop(); } } }, _callee, this); })); }, false); return _context2.abrupt("return", res); case 10: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "_checkRights", value: function _checkRights() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.t0 = UserManager_1.UserManager.getInstance().hasAccess(this._access); if (_context3.t0) { _context3.next = 8; break; } _context3.t1 = this._allowOfflineAccess; if (!_context3.t1) { _context3.next = 7; break; } _context3.next = 6; return UserManager_1.UserManager.getInstance().hasOfflineAccess(this._access); case 6: _context3.t1 = _context3.sent; case 7: _context3.t0 = _context3.t1; case 8: if (_context3.t0) { _context3.next = 21; break; } if (!(UserManager_1.UserManager.getInstance().isOnline() && !UserManager_1.UserManager.getInstance().isLoggedIn() && !(this._site instanceof LoginSite_1.LoginSite))) { _context3.next = 13; break; } this.startSite(LoginSite_1.LoginSite, { deepLink: this._site._siteManager.getDeepLinkFor(this._site), args: this._site.getParameters() }); _context3.next = 17; break; case 13: if (!(this._site._siteManager.getCurrentSite() === this._site && !this.isDestroying())) { _context3.next = 17; break; } new client_1.Toast("wrong rights").show(); _context3.next = 17; return this.startSite(NotAllowedSite_1.NotAllowedSite); case 17: if (this.isDestroying()) { _context3.next = 20; break; } _context3.next = 20; return this.finish(); case 20: return _context3.abrupt("return", false); case 21: return _context3.abrupt("return", true); case 22: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "onStart", value: function onStart(args) { var _this4 = this; var _super = Object.create(null, { onStart: { get: function get() { return _get(_getPrototypeOf(UserSite.prototype), "onStart", _this4); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return this._checkRights(); case 2: if (!_context4.sent) { _context4.next = 5; break; } _context4.next = 5; return _super.onStart.call(this, args); case 5: case "end": return _context4.stop(); } } }, _callee4, this); })); } }]); return UserSite; }(client_1.DelegateSite); exports.UserSite = UserSite; /***/ }), /* 127 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function get() { return m[k]; } }); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); var __exportStar = this && this.__exportStar || function (m, exports) { for (var p in m) { if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); } }; Object.defineProperty(exports, "__esModule", { value: true }); __exportStar(__webpack_require__(78), exports); __exportStar(__webpack_require__(201), exports); __exportStar(__webpack_require__(202), exports); /***/ }), /* 128 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.EasySyncClientDb = void 0; var client_1 = __webpack_require__(4); var cordova_sites_database_1 = __webpack_require__(20); var ClientModel_1 = __webpack_require__(277); var EasySyncBaseModel_1 = __webpack_require__(78); var EasySyncPartialModel_1 = __webpack_require__(201); var ClientPartialModel_1 = __webpack_require__(278); var FileMedium_1 = __webpack_require__(202); var ClientFileMedium_1 = __webpack_require__(151); var EasySyncClientDb = /*#__PURE__*/function (_cordova_sites_databa) { _inherits(EasySyncClientDb, _cordova_sites_databa); var _super = _createSuper(EasySyncClientDb); function EasySyncClientDb(dbName) { _classCallCheck(this, EasySyncClientDb); return _super.call(this, dbName || "EasySync"); } _createClass(EasySyncClientDb, [{ key: "_createConnectionOptions", value: function _createConnectionOptions(database) { JSObject.setPrototypeOf(EasySyncBaseModel_1.EasySyncBaseModel, ClientModel_1.ClientModel); JSObject.setPrototypeOf(EasySyncPartialModel_1.EasySyncPartialModel, ClientPartialModel_1.ClientPartialModel); JSObject.setPrototypeOf(EasySyncBaseModel_1.EasySyncBaseModel.prototype, ClientModel_1.ClientModel.prototype); JSObject.setPrototypeOf(EasySyncPartialModel_1.EasySyncPartialModel.prototype, ClientPartialModel_1.ClientPartialModel.prototype); JSObject.setPrototypeOf(FileMedium_1.FileMedium, ClientFileMedium_1.ClientFileMedium); JSObject.setPrototypeOf(FileMedium_1.FileMedium.prototype, ClientFileMedium_1.ClientFileMedium.prototype); var options = _get(_getPrototypeOf(EasySyncClientDb.prototype), "_createConnectionOptions", this).call(this, database); options["migrationsTableName"] = "migrations"; return options; } }]); return EasySyncClientDb; }(cordova_sites_database_1.BaseDatabase); exports.EasySyncClientDb = EasySyncClientDb; EasySyncClientDb.BASE_MODEL = null; client_1.App.addInitialization(function () { return __awaiter(void 0, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return EasySyncClientDb.getInstance()._connectionPromise.catch(function (e) { if (typeof EasySyncClientDb.errorListener === "function") { return EasySyncClientDb.errorListener.apply(EasySyncClientDb, arguments); } else { throw e; } }); case 2: case "end": return _context.stop(); } } }, _callee); })); }); /***/ }), /* 129 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.LastSyncDates = void 0; var cordova_sites_database_1 = __webpack_require__(20); var LastSyncDates = /*#__PURE__*/function (_cordova_sites_databa) { _inherits(LastSyncDates, _cordova_sites_databa); var _super = _createSuper(LastSyncDates); function LastSyncDates() { var _this; _classCallCheck(this, LastSyncDates); _this = _super.call(this); _this.model = ""; _this.lastSynced = 0; _this.where = {}; return _this; } _createClass(LastSyncDates, [{ key: "getModel", value: function getModel() { return this.model; } }, { key: "setModel", value: function setModel(model) { this.model = model; } }, { key: "getLastSynced", value: function getLastSynced() { return this.lastSynced; } }, { key: "setLastSynced", value: function setLastSynced(lastSynced) { this.lastSynced = lastSynced; } }], [{ key: "getColumnDefinitions", value: function getColumnDefinitions() { var columns = _get(_getPrototypeOf(LastSyncDates), "getColumnDefinitions", this).call(this); columns["model"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.STRING, nullable: true }; columns["lastSynced"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER, nullable: true }; columns["where"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.SIMPLE_JSON }; return columns; } }]); return LastSyncDates; }(cordova_sites_database_1.BaseModel); exports.LastSyncDates = LastSyncDates; LastSyncDates.SCHEMA_NAME = "easy-sync-last-sync-dates"; cordova_sites_database_1.BaseDatabase.addModel(LastSyncDates); /***/ }), /* 130 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return OptimisticLockVersionMismatchError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Thrown when a version check on an object that uses optimistic locking through a version field fails. */ var OptimisticLockVersionMismatchError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(OptimisticLockVersionMismatchError, _super); function OptimisticLockVersionMismatchError(entity, expectedVersion, actualVersion) { var _this = _super.call(this) || this; _this.name = "OptimisticLockVersionMismatchError"; Object.setPrototypeOf(_this, OptimisticLockVersionMismatchError.prototype); _this.message = "The optimistic lock on entity " + entity + " failed, version " + expectedVersion + " was expected, but is actually " + actualVersion + "."; return _this; } return OptimisticLockVersionMismatchError; }(Error)); //# sourceMappingURL=OptimisticLockVersionMismatchError.js.map /***/ }), /* 131 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return InsertResult; }); /** * Result object returned by InsertQueryBuilder execution. */ var InsertResult = /** @class */ (function () { function InsertResult() { /** * Contains inserted entity id. * Has entity-like structure (not just column database name and values). */ this.identifiers = []; /** * Generated values returned by a database. * Has entity-like structure (not just column database name and values). */ this.generatedMaps = []; } return InsertResult; }()); //# sourceMappingURL=InsertResult.js.map /***/ }), /* 132 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function get() { return m[k]; } }); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); var __exportStar = this && this.__exportStar || function (m, exports) { for (var p in m) { if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); } }; Object.defineProperty(exports, "__esModule", { value: true }); __exportStar(__webpack_require__(151), exports); __exportStar(__webpack_require__(277), exports); __exportStar(__webpack_require__(278), exports); __exportStar(__webpack_require__(128), exports); __exportStar(__webpack_require__(205), exports); __exportStar(__webpack_require__(275), exports); __exportStar(__webpack_require__(276), exports); __exportStar(__webpack_require__(129), exports); __exportStar(__webpack_require__(209), exports); __exportStar(__webpack_require__(533), exports); __exportStar(__webpack_require__(534), exports); __exportStar(__webpack_require__(535), exports); /***/ }), /* 133 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function get() { return m[k]; } }); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); var __exportStar = this && this.__exportStar || function (m, exports) { for (var p in m) { if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); } }; Object.defineProperty(exports, "__esModule", { value: true }); __exportStar(__webpack_require__(126), exports); __exportStar(__webpack_require__(274), exports); __exportStar(__webpack_require__(204), exports); __exportStar(__webpack_require__(150), exports); __exportStar(__webpack_require__(532), exports); __exportStar(__webpack_require__(536), exports); __exportStar(__webpack_require__(272), exports); __exportStar(__webpack_require__(149), exports); __exportStar(__webpack_require__(273), exports); __exportStar(__webpack_require__(538), exports); __exportStar(__webpack_require__(100), exports); __exportStar(__webpack_require__(270), exports); /***/ }), /* 134 */ /***/ (function(module, exports, __webpack_require__) { var core = __webpack_require__(26); var global = __webpack_require__(11); var SHARED = '__core-js_shared__'; var store = global[SHARED] || (global[SHARED] = {}); (module.exports = function (key, value) { return store[key] || (store[key] = value !== undefined ? value : {}); })('versions', []).push({ version: core.version, mode: __webpack_require__(89) ? 'pure' : 'global', copyright: '© 2020 Denis Pushkarev (zloirock.ru)' }); /***/ }), /* 135 */ /***/ (function(module, exports, __webpack_require__) { // false -> Array#indexOf // true -> Array#includes var toIObject = __webpack_require__(53); var toLength = __webpack_require__(23); var toAbsoluteIndex = __webpack_require__(91); module.exports = function (IS_INCLUDES) { return function ($this, el, fromIndex) { var O = toIObject($this); var length = toLength(O.length); var index = toAbsoluteIndex(fromIndex, length); var value; // Array#includes uses SameValueZero equality algorithm // eslint-disable-next-line no-self-compare if (IS_INCLUDES && el != el) while (length > index) { value = O[index++]; // eslint-disable-next-line no-self-compare if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not } else for (;length > index; index++) if (IS_INCLUDES || index in O) { if (O[index] === el) return IS_INCLUDES || index || 0; } return !IS_INCLUDES && -1; }; }; /***/ }), /* 136 */ /***/ (function(module, exports) { exports.f = Object.getOwnPropertySymbols; /***/ }), /* 137 */ /***/ (function(module, exports, __webpack_require__) { // 7.2.2 IsArray(argument) var cof = __webpack_require__(75); module.exports = Array.isArray || function isArray(arg) { return cof(arg) == 'Array'; }; /***/ }), /* 138 */ /***/ (function(module, exports, __webpack_require__) { var ITERATOR = __webpack_require__(19)('iterator'); var SAFE_CLOSING = false; try { var riter = [7][ITERATOR](); riter['return'] = function () { SAFE_CLOSING = true; }; // eslint-disable-next-line no-throw-literal Array.from(riter, function () { throw 2; }); } catch (e) { /* empty */ } module.exports = function (exec, skipClosing) { if (!skipClosing && !SAFE_CLOSING) return false; var safe = false; try { var arr = [7]; var iter = arr[ITERATOR](); iter.next = function () { return { done: safe = true }; }; arr[ITERATOR] = function () { return iter; }; exec(arr); } catch (e) { /* empty */ } return safe; }; /***/ }), /* 139 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 21.2.5.3 get RegExp.prototype.flags var anObject = __webpack_require__(13); module.exports = function () { var that = anObject(this); var result = ''; if (that.global) result += 'g'; if (that.ignoreCase) result += 'i'; if (that.multiline) result += 'm'; if (that.unicode) result += 'u'; if (that.sticky) result += 'y'; return result; }; /***/ }), /* 140 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var classof = __webpack_require__(124); var builtinExec = RegExp.prototype.exec; // `RegExpExec` abstract operation // https://tc39.github.io/ecma262/#sec-regexpexec module.exports = function (R, S) { var exec = R.exec; if (typeof exec === 'function') { var result = exec.call(R, S); if (typeof result !== 'object') { throw new TypeError('RegExp exec method returned something other than an Object or null'); } return result; } if (classof(R) !== 'RegExp') { throw new TypeError('RegExp#exec called on incompatible receiver'); } return builtinExec.call(R, S); }; /***/ }), /* 141 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; __webpack_require__(233); var redefine = __webpack_require__(45); var hide = __webpack_require__(52); var fails = __webpack_require__(12); var defined = __webpack_require__(76); var wks = __webpack_require__(19); var regexpExec = __webpack_require__(185); var SPECIES = wks('species'); var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { // #replace needs built-in support for named groups. // #match works fine because it just return the exec results, even if it has // a "grops" property. var re = /./; re.exec = function () { var result = []; result.groups = { a: '7' }; return result; }; return ''.replace(re, '$') !== '7'; }); var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () { // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec var re = /(?:)/; var originalExec = re.exec; re.exec = function () { return originalExec.apply(this, arguments); }; var result = 'ab'.split(re); return result.length === 2 && result[0] === 'a' && result[1] === 'b'; })(); module.exports = function (KEY, length, exec) { var SYMBOL = wks(KEY); var DELEGATES_TO_SYMBOL = !fails(function () { // String methods call symbol-named RegEp methods var O = {}; O[SYMBOL] = function () { return 7; }; return ''[KEY](O) != 7; }); var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () { // Symbol-named RegExp methods call .exec var execCalled = false; var re = /a/; re.exec = function () { execCalled = true; return null; }; if (KEY === 'split') { // RegExp[@@split] doesn't call the regex's exec method, but first creates // a new one. We need to return the patched regex when creating the new one. re.constructor = {}; re.constructor[SPECIES] = function () { return re; }; } re[SYMBOL](''); return !execCalled; }) : undefined; if ( !DELEGATES_TO_SYMBOL || !DELEGATES_TO_EXEC || (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) || (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) ) { var nativeRegExpMethod = /./[SYMBOL]; var fns = exec( defined, SYMBOL, ''[KEY], function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) { if (regexp.exec === regexpExec) { if (DELEGATES_TO_SYMBOL && !forceStringMethod) { // The native String method already delegates to @@method (this // polyfilled function), leasing to infinite recursion. // We avoid it by directly calling the native @@method method. return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) }; } return { done: true, value: nativeMethod.call(str, regexp, arg2) }; } return { done: false }; } ); var strfn = fns[0]; var rxfn = fns[1]; redefine(String.prototype, KEY, strfn); hide(RegExp.prototype, SYMBOL, length == 2 // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) // 21.2.5.11 RegExp.prototype[@@split](string, limit) ? function (string, arg) { return rxfn.call(string, this, arg); } // 21.2.5.6 RegExp.prototype[@@match](string) // 21.2.5.9 RegExp.prototype[@@search](string) : function (string) { return rxfn.call(string, this); } ); } }; /***/ }), /* 142 */ /***/ (function(module, exports, __webpack_require__) { var ctx = __webpack_require__(63); var call = __webpack_require__(228); var isArrayIter = __webpack_require__(180); var anObject = __webpack_require__(13); var toLength = __webpack_require__(23); var getIterFn = __webpack_require__(182); var BREAK = {}; var RETURN = {}; var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable); var f = ctx(fn, that, entries ? 2 : 1); var index = 0; var length, step, iterator, result; if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); // fast case for arrays with default iterator if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); if (result === BREAK || result === RETURN) return result; } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { result = call(iterator, f, step.value, entries); if (result === BREAK || result === RETURN) return result; } }; exports.BREAK = BREAK; exports.RETURN = RETURN; /***/ }), /* 143 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(11); var navigator = global.navigator; module.exports = navigator && navigator.userAgent || ''; /***/ }), /* 144 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(11); var $export = __webpack_require__(3); var redefine = __webpack_require__(45); var redefineAll = __webpack_require__(108); var meta = __webpack_require__(83); var forOf = __webpack_require__(142); var anInstance = __webpack_require__(107); var isObject = __webpack_require__(14); var fails = __webpack_require__(12); var $iterDetect = __webpack_require__(138); var setToStringTag = __webpack_require__(103); var inheritIfRequired = __webpack_require__(171); module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { var Base = global[NAME]; var C = Base; var ADDER = IS_MAP ? 'set' : 'add'; var proto = C && C.prototype; var O = {}; var fixMethod = function (KEY) { var fn = proto[KEY]; redefine(proto, KEY, KEY == 'delete' ? function (a) { return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); } : KEY == 'has' ? function has(a) { return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); } : KEY == 'get' ? function get(a) { return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; } : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; } ); }; if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { new C().entries().next(); }))) { // create collection constructor C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); redefineAll(C.prototype, methods); meta.NEED = true; } else { var instance = new C(); // early implementations not supports chaining var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); // most early implementations doesn't supports iterables, most modern - not close it correctly var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new // for early implementations -0 and +0 not the same var BUGGY_ZERO = !IS_WEAK && fails(function () { // V8 ~ Chromium 42- fails only with 5+ elements var $instance = new C(); var index = 5; while (index--) $instance[ADDER](index, index); return !$instance.has(-0); }); if (!ACCEPT_ITERABLES) { C = wrapper(function (target, iterable) { anInstance(target, C, NAME); var that = inheritIfRequired(new Base(), target, C); if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); return that; }); C.prototype = proto; proto.constructor = C; } if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { fixMethod('delete'); fixMethod('has'); IS_MAP && fixMethod('get'); } if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); // weak collections should not contains .clear method if (IS_WEAK && proto.clear) delete proto.clear; } setToStringTag(C, NAME); O[NAME] = C; $export($export.G + $export.W + $export.F * (C != Base), O); if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); return C; }; /***/ }), /* 145 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(11); var hide = __webpack_require__(52); var uid = __webpack_require__(88); var TYPED = uid('typed_array'); var VIEW = uid('view'); var ABV = !!(global.ArrayBuffer && global.DataView); var CONSTR = ABV; var i = 0; var l = 9; var Typed; var TypedArrayConstructors = ( 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array' ).split(','); while (i < l) { if (Typed = global[TypedArrayConstructors[i++]]) { hide(Typed.prototype, TYPED, true); hide(Typed.prototype, VIEW, true); } else CONSTR = false; } module.exports = { ABV: ABV, CONSTR: CONSTR, TYPED: TYPED, VIEW: VIEW }; /***/ }), /* 146 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AbstractSite = void 0; var Context_1 = __webpack_require__(111); var Helper_1 = __webpack_require__(15); var Translator_1 = __webpack_require__(30); var ViewInflater_1 = __webpack_require__(54); var EventManager_1 = __webpack_require__(197); /** * Basisklasse für eine Seite */ var AbstractSite = /*#__PURE__*/function (_Context_1$Context) { _inherits(AbstractSite, _Context_1$Context); var _super2 = _createSuper(AbstractSite); /** * Construktor für eine Seite, sollte überladen werden und view sollte definiert werden. Seitenkonstruktoren bekommen NUR den siteManager übergebn * @param siteManager * @param view */ function AbstractSite(siteManager, view) { var _this; _classCallCheck(this, AbstractSite); _this = _super2.call(this, view); _this._isDestroying = false; _this._isDestroying = false; //Promise und Resolver, welches erfüllt wird, wenn Seite beendet wird _this._finishPromiseResolver = { resolve: null, reject: null }; _this._finishPromise = new Promise(function (resolve, reject) { _this._finishPromiseResolver = { resolve: resolve, reject: reject }; }); //Promise, welches erfüllt wird, wenn onConstruct-Promsise erfüllt wurde. Wird für onDestroy gebraucht _this._onConstructPromise = null; _this._parameters = {}; _this._result = null; _this._siteManager = siteManager; _this._title = { element: null, text: null }; _this._loadingSymbol = null; //Wird zum speichern der zugehörigen HistoryID genutzt _this._historyId = null; return _this; } _createClass(AbstractSite, [{ key: "getTitle", value: function getTitle() { return this._title; } }, { key: "onConstruct", value: function onConstruct(constructParameters) { var _this2 = this; var _super = Object.create(null, { onConstruct: { get: function get() { return _get(_getPrototypeOf(AbstractSite.prototype), "onConstruct", _this2); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var res; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: res = _super.onConstruct.call(this, constructParameters); this.setParameters(Helper_1.Helper.nonNull(constructParameters, {})); EventManager_1.EventManager.trigger(AbstractSite.EVENT.ON_CONSTRUCT, { site: this, params: constructParameters }); return _context.abrupt("return", res); case 4: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "onStart", value: function onStart(pauseArguments) { var _this3 = this; var _super = Object.create(null, { onStart: { get: function get() { return _get(_getPrototypeOf(AbstractSite.prototype), "onStart", _this3); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return _super.onStart.call(this, pauseArguments); case 2: this._updateTitle(); this.updateUrl(this._parameters); EventManager_1.EventManager.trigger(AbstractSite.EVENT.ON_START, { site: this, params: pauseArguments }); case 5: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "onViewLoaded", value: function onViewLoaded() { var _this4 = this; var _super = Object.create(null, { onViewLoaded: { get: function get() { return _get(_getPrototypeOf(AbstractSite.prototype), "onViewLoaded", _this4); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var res; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: res = _super.onViewLoaded.call(this); EventManager_1.EventManager.trigger(AbstractSite.EVENT.ON_VIEW_LOADED, { site: this }); return _context3.abrupt("return", res); case 3: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "onPause", value: function onPause() { var _this5 = this; var _super = Object.create(null, { onPause: { get: function get() { return _get(_getPrototypeOf(AbstractSite.prototype), "onPause", _this5); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var res; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: res = _super.onPause.call(this); EventManager_1.EventManager.trigger(AbstractSite.EVENT.ON_PAUSE, { site: this }); return _context4.abrupt("return", res); case 3: case "end": return _context4.stop(); } } }, _callee4, this); })); } }, { key: "onDestroy", value: function onDestroy() { var _this6 = this; var _super = Object.create(null, { onDestroy: { get: function get() { return _get(_getPrototypeOf(AbstractSite.prototype), "onDestroy", _this6); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var res; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: res = _super.onDestroy.call(this); EventManager_1.EventManager.trigger(AbstractSite.EVENT.ON_DESTROY, { site: this }); return _context5.abrupt("return", res); case 3: case "end": return _context5.stop(); } } }, _callee5, this); })); } /** * Setzt den Titel der Website * * @param titleElement * @param title */ }, { key: "setTitle", value: function setTitle(titleElement, title) { if (typeof titleElement === "string") { var args = title; title = titleElement; titleElement = Translator_1.Translator.makePersistentTranslation(title, args); } title = Helper_1.Helper.nonNull(title, titleElement.textContent); this._title = { element: titleElement, text: title }; this._updateTitle(); } }, { key: "setParameter", value: function setParameter(name, value) { this._parameters[name] = value; this.updateUrl(this._parameters); } }, { key: "setParameters", value: function setParameters(parameters) { this._parameters = parameters; this.updateUrl(this._parameters); } }, { key: "getParameters", value: function getParameters() { return this._parameters; } }, { key: "showLoadingSymbol", value: function showLoadingSymbol() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var view; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: if (!Helper_1.Helper.isNull(this._loadingSymbol)) { _context6.next = 6; break; } this._loadingSymbol = ViewInflater_1.ViewInflater.createLoadingSymbol("overlay"); _context6.next = 4; return this.getViewPromise(); case 4: view = _context6.sent; if (Helper_1.Helper.isNotNull(this._loadingSymbol)) { view.appendChild(this._loadingSymbol); } case 6: case "end": return _context6.stop(); } } }, _callee6, this); })); } }, { key: "removeLoadingSymbol", value: function removeLoadingSymbol() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: if (Helper_1.Helper.isNotNull(this._loadingSymbol)) { this._loadingSymbol.remove(); this._loadingSymbol = null; } case 1: case "end": return _context7.stop(); } } }, _callee7, this); })); } }, { key: "onBeforeUnload", value: function onBeforeUnload(e) { return null; } /** * Updatet den Title der Webseite * @protected */ }, { key: "_updateTitle", value: function _updateTitle() { if (this._state === Context_1.Context.STATE_RUNNING) { this._siteManager.updateTitle(this._title.text); } } }, { key: "updateUrl", value: function updateUrl(args) { if (this._state === Context_1.Context.STATE_RUNNING) { this._siteManager.updateUrl(this, args); } } /** * Startet eine andere Seite mit den angegebenen Parametern * * @param site * @param args * @returns {*|Promise<*>} */ }, { key: "startSite", value: function startSite(site, args) { return this._siteManager.startSite(site, args); } /** * Alias für * this.startSite(...); * this.finish(...); * * @param site * @param args * @param result * @returns {*|Promise<*>} */ }, { key: "finishAndStartSite", value: function finishAndStartSite(site, args, result) { var res = this.startSite(site, args); this.finish(result); return res; } /** * Beendet die aktuelle Seite. Kann ein Ergebnis setzen * * @param result */ }, { key: "finish", value: function finish(result) { if (!(this._isDestroying || this._state === Context_1.Context.STATE_DESTROYED)) { this._isDestroying = true; if (Helper_1.Helper.isNotNull(result)) { this.setResult(result); } return this._siteManager.endSite(this); } } }, { key: "goBack", value: function goBack() { if (this._state === Context_1.Context.STATE_RUNNING) { this._siteManager.goBack(); } } /** * Wird aufgerufen, falls zurück gedrückt wird. Gib false zurück, um das beenden der Seite zu verhindern */ }, { key: "onBackPressed", value: function onBackPressed() {} /** * TODO Einbauen */ }, { key: "onMenuPressed", value: function onMenuPressed() {} /** * TODO Einbauen */ }, { key: "onSearchPressed", value: function onSearchPressed() {} /** * Gibt das FinishPromise zurück * @returns {Promise} */ }, { key: "getFinishPromise", value: function getFinishPromise() { return this._finishPromise; } /** * Setzt das Resultat. Letztes Setzen gilt * @param result */ }, { key: "setResult", value: function setResult(result) { this._result = result; } /** * Gibt den FinishResolver zurück. Genutzt, um FinishPromise zu resolven order rejecten * @returns {*} */ }, { key: "getFinishResolver", value: function getFinishResolver() { return this._finishPromiseResolver; } }, { key: "addEventListener", value: function addEventListener(siteEvent, listener) { var _this7 = this; return EventManager_1.EventManager.getInstance().addListener(siteEvent, function (data) { if (data.site && data.site instanceof _this7.constructor) { listener(data); } }); } }, { key: "isDestroying", value: function isDestroying() { return this._isDestroying; } }]); return AbstractSite; }(Context_1.Context); exports.AbstractSite = AbstractSite; AbstractSite.EVENT = { ON_CONSTRUCT: "abstract-site-on-construct", ON_VIEW_LOADED: "abstract-site-on-view-loaded", ON_START: "abstract-site-on-start", ON_PAUSE: "abstract-site-on-pause", ON_DESTROY: "abstract-site-on-destroy" }; /***/ }), /* 147 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); __exportStar(__webpack_require__(492), exports); __exportStar(__webpack_require__(253), exports); __exportStar(__webpack_require__(493), exports); __exportStar(__webpack_require__(494), exports); __exportStar(__webpack_require__(27), exports); //# sourceMappingURL=client.js.map /***/ }), /* 148 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); var _typeorm = __webpack_require__(47); var typeorm = _typeorm; var BaseDatabase = /*#__PURE__*/function () { function BaseDatabase(database) { _classCallCheck(this, BaseDatabase); var options = this._createConnectionOptions(database); this._connectionPromise = this._createConnection(options); } _createClass(BaseDatabase, [{ key: "_createConnection", value: function _createConnection(options) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!(options.type === "sqljs")) { _context.next = 4; break; } _context.next = 3; return window["initSqlJs"](); case 3: window["SQL"] = _context.sent; case 4: return _context.abrupt("return", typeorm.createConnection(options).catch(function (e) { console.error(e); return Promise.reject(e); })); case 5: case "end": return _context.stop(); } } }, _callee); })); } }, { key: "_createConnectionOptions", value: function _createConnectionOptions(database) { var options = BaseDatabase.CONNECTION_OPTIONS; if (typeof device === "undefined" || device.platform !== "browser") { options.type = "cordova"; options.database = database; } else { var saveTimeout = null; options.type = "sqljs"; options.location = database; options.autoSave = true; options.useLocalForage = true; //Deactivated delay of saving since PRAGMA foreign_keys = ON is not saved with delay (why ever!) // options.autoSaveCallback = function () { // clearTimeout(saveTimeout); // saveTimeout = setTimeout(() => { // typeorm.getSqljsManager().saveDatabase(); // }, 150); // } } options.entities = this.getEntityDefinitions(); // options.migrations = this.constructor._migrations; return options; } }, { key: "getEntityDefinitions", value: function getEntityDefinitions() { var _this = this; var entities = []; Object.keys(BaseDatabase._models).forEach(function (modelName) { BaseDatabase._models[modelName]._database = _this; entities.push(new typeorm.EntitySchema(BaseDatabase._models[modelName].getSchemaDefinition())); }); // console.log("entities", entities); return entities; } }, { key: "saveEntity", value: function saveEntity(entity) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var repository; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: repository = null; if (!Array.isArray(entity)) { _context2.next = 9; break; } if (!(entity.length === 0)) { _context2.next = 4; break; } return _context2.abrupt("return", entity); case 4: _context2.next = 6; return this._getRepository(entity[0].constructor); case 6: repository = _context2.sent; _context2.next = 12; break; case 9: _context2.next = 11; return this._getRepository(entity.constructor); case 11: repository = _context2.sent; case 12: return _context2.abrupt("return", repository.save(entity)); case 13: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "findEntities", value: function findEntities(model, where, order, limit, offset, relations) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var repository; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return this._getRepository(model); case 2: repository = _context3.sent; return _context3.abrupt("return", BaseDatabase._setLoaded(repository.find(BaseDatabase._buildQuery(where, order, limit, offset, relations)))); case 4: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "findAndCountEntities", value: function findAndCountEntities(model, where, order, limit, offset, relations) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var repository; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return this._getRepository(model); case 2: repository = _context4.sent; return _context4.abrupt("return", BaseDatabase._setLoaded(repository.findAndCount(BaseDatabase._buildQuery(where, order, limit, offset, relations)))); case 4: case "end": return _context4.stop(); } } }, _callee4, this); })); } }, { key: "findOneEntity", value: function findOneEntity(model, where, order, offset, relations) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var repository; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _context5.next = 2; return this._getRepository(model); case 2: repository = _context5.sent; return _context5.abrupt("return", BaseDatabase._setLoaded(repository.findOne(BaseDatabase._buildQuery(where, order, undefined, offset, relations)))); case 4: case "end": return _context5.stop(); } } }, _callee5, this); })); } }, { key: "findById", value: function findById(model, id, relations) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var repository; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _context6.next = 2; return this._getRepository(model); case 2: repository = _context6.sent; return _context6.abrupt("return", BaseDatabase._setLoaded(repository.findOne(id, BaseDatabase._buildQuery(undefined, undefined, undefined, undefined, relations)))); case 4: case "end": return _context6.stop(); } } }, _callee6, this); })); } }, { key: "findByIds", value: function findByIds(model, ids, relations) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { var repository; return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: _context7.next = 2; return this._getRepository(model); case 2: repository = _context7.sent; return _context7.abrupt("return", BaseDatabase._setLoaded(repository.findByIds(ids, BaseDatabase._buildQuery(undefined, undefined, undefined, undefined, relations)))); case 4: case "end": return _context7.stop(); } } }, _callee7, this); })); } }, { key: "clearModel", value: function clearModel(model) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { var repository; return regeneratorRuntime.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: _context8.next = 2; return this._getRepository(model); case 2: repository = _context8.sent; return _context8.abrupt("return", repository.clear()); case 4: case "end": return _context8.stop(); } } }, _callee8, this); })); } }, { key: "_getRepository", value: function _getRepository(model) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { var connection; return regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _context9.next = 2; return this._connectionPromise; case 2: connection = _context9.sent; return _context9.abrupt("return", connection.getRepository(model)); case 4: case "end": return _context9.stop(); } } }, _callee9, this); })); } }, { key: "createQueryBuilder", value: function createQueryBuilder(model) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee10() { var repo, connection; return regeneratorRuntime.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: if (!model) { _context10.next = 7; break; } _context10.next = 3; return this._getRepository(model); case 3: repo = _context10.sent; return _context10.abrupt("return", repo.createQueryBuilder(model.getSchemaName())); case 7: _context10.next = 9; return this._connectionPromise; case 9: connection = _context10.sent; return _context10.abrupt("return", connection.createQueryBuilder()); case 11: case "end": return _context10.stop(); } } }, _callee10, this); })); } }, { key: "createQueryRunner", value: function createQueryRunner() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee11() { var connection; return regeneratorRuntime.wrap(function _callee11$(_context11) { while (1) { switch (_context11.prev = _context11.next) { case 0: _context11.next = 2; return this._connectionPromise; case 2: connection = _context11.sent; return _context11.abrupt("return", connection.createQueryRunner()); case 4: case "end": return _context11.stop(); } } }, _callee11, this); })); } }, { key: "deleteEntity", value: function deleteEntity(entity, model) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee12() { var ids, repository; return regeneratorRuntime.wrap(function _callee12$(_context12) { while (1) { switch (_context12.prev = _context12.next) { case 0: if (!Array.isArray(entity)) { _context12.next = 7; break; } if (!(entity.length === 0)) { _context12.next = 3; break; } return _context12.abrupt("return", entity); case 3: if (!model) { model = entity[0].constructor; } if (typeof entity[0] !== "number") { ids = []; entity.forEach(function (ent) { return ids.push(ent.id); }); entity = ids; } _context12.next = 9; break; case 7: if (!model) { model = entity.constructor; } if (typeof entity !== "number") { entity = entity.id; } case 9: _context12.next = 11; return this._getRepository(model); case 11: repository = _context12.sent; return _context12.abrupt("return", repository.delete(entity)); case 13: case "end": return _context12.stop(); } } }, _callee12, this); })); } }, { key: "rawQuery", value: function rawQuery(sql, params) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee13() { return regeneratorRuntime.wrap(function _callee13$(_context13) { while (1) { switch (_context13.prev = _context13.next) { case 0: _context13.next = 2; return this._connectionPromise; case 2: return _context13.abrupt("return", _context13.sent.query(sql, params)); case 3: case "end": return _context13.stop(); } } }, _callee13, this); })); } }, { key: "waitForConnection", value: function waitForConnection() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee14() { return regeneratorRuntime.wrap(function _callee14$(_context14) { while (1) { switch (_context14.prev = _context14.next) { case 0: return _context14.abrupt("return", this._connectionPromise); case 1: case "end": return _context14.stop(); } } }, _callee14, this); })); } /** * @return {BaseDatabase} */ }], [{ key: "_buildQuery", value: function _buildQuery(where, order, limit, offset, relations) { var query = {}; if (where) { query["where"] = where; } if (order) { query["order"] = order; } if (limit) { query["take"] = limit; } if (offset) { query["skip"] = offset; } if (relations) { query["relations"] = relations; } return query; } }, { key: "_setLoaded", value: function _setLoaded(models) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee15() { var isArray; return regeneratorRuntime.wrap(function _callee15$(_context15) { while (1) { switch (_context15.prev = _context15.next) { case 0: _context15.next = 2; return models; case 2: models = _context15.sent; if (!(models === null || models === undefined)) { _context15.next = 5; break; } return _context15.abrupt("return", null); case 5: isArray = Array.isArray(models); if (!isArray) { models = [models]; } models.forEach(function (models) { return models.setLoaded(true); }); return _context15.abrupt("return", isArray ? models : models[0]); case 9: case "end": return _context15.stop(); } } }, _callee15); })); } }, { key: "getInstance", value: function getInstance() { if (!this.instance) { this.instance = new this(); } return this.instance; } }, { key: "addModel", value: function addModel(model) { BaseDatabase._models[model.getSchemaName()] = model; } }, { key: "getModel", value: function getModel(modelName) { if (modelName) { return this._models[modelName]; } else { return this._models; } } }]); return BaseDatabase; }(); exports.BaseDatabase = BaseDatabase; BaseDatabase._models = {}; BaseDatabase.CONNECTION_OPTIONS = { location: "default", // autoSave: true, logging: ["error", "warn"], synchronize: true }; BaseDatabase.TYPES = { INTEGER: "int", FLOAT: "float", DATE: "datetime", STRING: "varchar", TEXT: "text", MEDIUMTEXT: "mediumtext", BOOLEAN: "boolean", JSON: "json", SIMPLE_JSON: "simple-json", MY_JSON: "my-json" }; /***/ }), /* 149 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.LoginSite = void 0; var UserSite_1 = __webpack_require__(126); var client_1 = __webpack_require__(4); var view = __webpack_require__(528); var StartUserSiteMenuAction_1 = __webpack_require__(204); var UserManager_1 = __webpack_require__(100); var UserMenuAction_1 = __webpack_require__(150); var ForgotPasswordSite_1 = __webpack_require__(272); var LoginSite = /*#__PURE__*/function (_client_1$MenuSite) { _inherits(LoginSite, _client_1$MenuSite); var _super2 = _createSuper(LoginSite); function LoginSite(siteManager) { var _this; _classCallCheck(this, LoginSite); _this = _super2.call(this, siteManager, view); _this.addDelegate(new UserSite_1.UserSite(_assertThisInitialized(_this), LoginSite.ACCESS)); return _this; } _createClass(LoginSite, [{ key: "onViewLoaded", value: function onViewLoaded() { var _this2 = this; var _super = Object.create(null, { onViewLoaded: { get: function get() { return _get(_getPrototypeOf(LoginSite.prototype), "onViewLoaded", _this2); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var _this3 = this; var res, form, listener; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: res = _super.onViewLoaded.call(this); form = new client_1.Form(this.findBy("#login-form"), function (data) { return __awaiter(_this3, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return UserManager_1.UserManager.getInstance().login(data["email"], data["password"], client_1.Helper.isNotNull(data["saveLogin"])); case 2: if (!_context.sent) { _context.next = 8; break; } new client_1.Toast("welcome back").show(); _context.next = 6; return this.finish(); case 6: _context.next = 9; break; case 8: form.setErrors({ "email": "email or password is wrong" }); // await this.removeLoadingSymbol(); case 9: case "end": return _context.stop(); } } }, _callee, this); })); }); listener = function listener() { return form.clearErrors(); }; this.findBy("#login-form [name=email]").addEventListener("keydown", listener); this.findBy("#login-form [name=password]").addEventListener("keydown", listener); this.findBy("#forgot-pw").addEventListener("click", function () { return __awaiter(_this3, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: this.startSite(ForgotPasswordSite_1.ForgotPasswordSite); case 1: case "end": return _context2.stop(); } } }, _callee2, this); })); }); return _context3.abrupt("return", res); case 7: case "end": return _context3.stop(); } } }, _callee3, this); })); } }]); return LoginSite; }(client_1.MenuSite); exports.LoginSite = LoginSite; LoginSite.ACCESS = "loggedOut"; LoginSite.LOGOUT_ACCESS = "loggedIn"; LoginSite.ADD_LOGIN_ACTION = true; LoginSite.ADD_LOGOUT_ACTION = true; client_1.App.addInitialization(function (app) { if (LoginSite.ADD_LOGIN_ACTION) { client_1.NavbarFragment.defaultActions.push(new StartUserSiteMenuAction_1.StartUserSiteMenuAction("login", LoginSite.ACCESS, LoginSite)); } if (LoginSite.ADD_LOGOUT_ACTION) { client_1.NavbarFragment.defaultActions.push(new UserMenuAction_1.UserMenuAction("logout", LoginSite.LOGOUT_ACCESS, function () { return __awaiter(void 0, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return UserManager_1.UserManager.getInstance().logout(); case 2: case "end": return _context4.stop(); } } }, _callee4); })); })); } app.addDeepLink("login", LoginSite); }); /***/ }), /* 150 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.UserMenuAction = void 0; var client_1 = __webpack_require__(4); var UserManager_1 = __webpack_require__(100); var Helper_1 = __webpack_require__(7); var UserMenuAction = /*#__PURE__*/function (_client_1$MenuAction) { _inherits(UserMenuAction, _client_1$MenuAction); var _super = _createSuper(UserMenuAction); function UserMenuAction(name, access, action, showFor, order, icon) { var _this; _classCallCheck(this, UserMenuAction); _this = _super.call(this, name, action, showFor, order, icon); _this._access = access; _this._loginChangedCallbackId = UserManager_1.UserManager.getInstance().addLoginChangeCallback(function () { _this.redraw(); }); return _this; } _createClass(UserMenuAction, [{ key: "isVisible", value: function isVisible() { return _get(_getPrototypeOf(UserMenuAction.prototype), "isVisible", this).call(this) && UserManager_1.UserManager.getInstance().hasAccess(this._access); } }, { key: "isActivated", value: function isActivated() { return _get(_getPrototypeOf(UserMenuAction.prototype), "isActivated", this).call(this) && UserManager_1.UserManager.getInstance().hasAccess(this._access); } }, { key: "copy", value: function copy(action) { var copiedAction = Helper_1.Helper.nonNull(action, new UserMenuAction()); copiedAction._access = this._access; return _get(_getPrototypeOf(UserMenuAction.prototype), "copy", this).call(this, copiedAction); } }]); return UserMenuAction; }(client_1.MenuAction); exports.UserMenuAction = UserMenuAction; /***/ }), /* 151 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ClientFileMedium = void 0; var EasySyncBaseModel_1 = __webpack_require__(78); var FileTransferPromise_1 = __webpack_require__(275); var Helper_1 = __webpack_require__(7); var FilePromise_1 = __webpack_require__(205); var ClientFileMedium = /*#__PURE__*/function (_EasySyncBaseModel_1$) { _inherits(ClientFileMedium, _EasySyncBaseModel_1$); var _super2 = _createSuper(ClientFileMedium); function ClientFileMedium() { var _this; _classCallCheck(this, ClientFileMedium); _this = _super2.apply(this, arguments); _this.saveOffline = true; _this._isDownloaded = true; return _this; } _createClass(ClientFileMedium, [{ key: "setLoaded", value: function setLoaded(isLoaded) { var _this2 = this; // @ts-ignore _get(_getPrototypeOf(ClientFileMedium.prototype), "setLoaded", this).call(this, isLoaded); this._isDownloaded = true; FilePromise_1.FilePromise.open(this.src, { create: false }).then(function () { return _this2._isDownloaded = true; }).catch(function (e) { console.log("not downloaded, yet!"); _this2._isDownloaded = false; ClientFileMedium._handleImages(_this2); }); } }, { key: "save", value: function save() { var _this3 = this; var _super = Object.create(null, { save: { get: function get() { return _get(_getPrototypeOf(ClientFileMedium.prototype), "save", _this3); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return ClientFileMedium._handleImages(this); case 2: return _context.abrupt("return", _super.save.call(this)); case 3: case "end": return _context.stop(); } } }, _callee, this); })); } }], [{ key: "saveMany", value: function saveMany(entities) { var _this4 = this; var _super = Object.create(null, { saveMany: { get: function get() { return _get(_getPrototypeOf(ClientFileMedium), "saveMany", _this4); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return ClientFileMedium._handleImages(entities); case 2: return _context2.abrupt("return", _super.saveMany.call(this, entities)); case 3: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "_handleImages", value: function _handleImages(entities) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var _this5 = this; var isArray; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: isArray = Array.isArray(entities); if (!isArray) { entities = [entities]; } _context4.next = 4; return Helper_1.Helper.asyncForEach(entities, function (entity) { return __awaiter(_this5, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: if (!(entity.saveOffline && device.platform !== "browser" && !entity.src.startsWith("data") && !entity.src.startsWith("http") && !entity.src.startsWith("//"))) { _context3.next = 4; break; } _context3.next = 3; return new FileTransferPromise_1.FileTransferPromise(entity.getServerUrl(false), entity.src).download().catch(function (e) { return console.log(e); }); case 3: entity._isDownloaded = true; case 4: case "end": return _context3.stop(); } } }, _callee3); })); }, true); case 4: case "end": return _context4.stop(); } } }, _callee4); })); } }]); return ClientFileMedium; }(EasySyncBaseModel_1.EasySyncBaseModel); exports.ClientFileMedium = ClientFileMedium; /***/ }), /* 152 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CannotCreateEntityIdMapError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Thrown when user tries to create entity id map from the mixed id value, * but id value is a single value when entity requires multiple values. */ var CannotCreateEntityIdMapError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(CannotCreateEntityIdMapError, _super); function CannotCreateEntityIdMapError(metadata, id) { var _this = _super.call(this) || this; _this.name = "CannotCreateEntityIdMapError"; Object.setPrototypeOf(_this, CannotCreateEntityIdMapError.prototype); var objectExample = metadata.primaryColumns.reduce(function (object, column, index) { column.setEntityValue(object, index + 1); return object; }, {}); _this.message = "Cannot use given entity id \"" + id + "\" because \"" + metadata.targetName + "\" contains multiple primary columns, you must provide object in following form: " + JSON.stringify(objectExample) + " as an id."; return _this; } return CannotCreateEntityIdMapError; }(Error)); //# sourceMappingURL=CannotCreateEntityIdMapError.js.map /***/ }), /* 153 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return PessimisticLockTransactionRequiredError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Thrown when a transaction is required for the current operation, but there is none open. */ var PessimisticLockTransactionRequiredError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(PessimisticLockTransactionRequiredError, _super); function PessimisticLockTransactionRequiredError() { var _this = _super.call(this) || this; _this.name = "PessimisticLockTransactionRequiredError"; Object.setPrototypeOf(_this, PessimisticLockTransactionRequiredError.prototype); _this.message = "An open transaction is required for pessimistic lock."; return _this; } return PessimisticLockTransactionRequiredError; }(Error)); //# sourceMappingURL=PessimisticLockTransactionRequiredError.js.map /***/ }), /* 154 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return NoVersionOrUpdateDateColumnError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Thrown when an entity does not have no version and no update date column. */ var NoVersionOrUpdateDateColumnError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(NoVersionOrUpdateDateColumnError, _super); function NoVersionOrUpdateDateColumnError(entity) { var _this = _super.call(this) || this; _this.name = "NoVersionOrUpdateDateColumnError"; Object.setPrototypeOf(_this, NoVersionOrUpdateDateColumnError.prototype); _this.message = "Entity " + entity + " does not have version or update date columns."; return _this; } return NoVersionOrUpdateDateColumnError; }(Error)); //# sourceMappingURL=NoVersionOrUpdateDateColumnError.js.map /***/ }), /* 155 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Brackets; }); /** * Syntax sugar. * Allows to use brackets in WHERE expressions for better syntax. */ var Brackets = /** @class */ (function () { /** * Given WHERE query builder that will build a WHERE expression that will be taken into brackets. */ function Brackets(whereFactory) { this.whereFactory = whereFactory; } return Brackets; }()); //# sourceMappingURL=Brackets.js.map /***/ }), /* 156 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return In; }); /* harmony import */ var _FindOperator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9); /** * Find Options Operator. * Example: { someField: In([...]) } */ function In(value) { return new _FindOperator__WEBPACK_IMPORTED_MODULE_0__[/* FindOperator */ "a"]("in", value, true, true); } //# sourceMappingURL=In.js.map /***/ }), /* 157 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return InsertValuesMissingError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Thrown when user tries to insert using QueryBuilder but do not specify what to insert. */ var InsertValuesMissingError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(InsertValuesMissingError, _super); function InsertValuesMissingError() { var _this = _super.call(this) || this; _this.name = "InsertValuesMissingError"; Object.setPrototypeOf(_this, InsertValuesMissingError.prototype); _this.message = "Cannot perform insert query because values are not defined. Call \"qb.values(...)\" method to specify inserted values."; return _this; } return InsertValuesMissingError; }(Error)); //# sourceMappingURL=InsertValuesMissingError.js.map /***/ }), /* 158 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DeleteResult; }); /** * Result object returned by DeleteQueryBuilder execution. */ var DeleteResult = /** @class */ (function () { function DeleteResult() { } return DeleteResult; }()); //# sourceMappingURL=DeleteResult.js.map /***/ }), /* 159 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MissingDeleteDateColumnError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** */ var MissingDeleteDateColumnError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(MissingDeleteDateColumnError, _super); function MissingDeleteDateColumnError(entityMetadata) { var _this = _super.call(this) || this; _this.name = "MissingDeleteDateColumnError"; Object.setPrototypeOf(_this, MissingDeleteDateColumnError.prototype); _this.message = "Entity \"" + entityMetadata.name + "\" does not have delete date columns."; return _this; } return MissingDeleteDateColumnError; }(Error)); //# sourceMappingURL=MissingDeleteDateColumnError.js.map /***/ }), /* 160 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return OffsetWithoutLimitNotSupportedError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /** * Thrown when user tries to build SELECT query using OFFSET without LIMIT applied but database does not support it. */ var OffsetWithoutLimitNotSupportedError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(OffsetWithoutLimitNotSupportedError, _super); function OffsetWithoutLimitNotSupportedError() { var _this = _super.call(this) || this; _this.name = "OffsetWithoutLimitNotSupportedError"; Object.setPrototypeOf(_this, OffsetWithoutLimitNotSupportedError.prototype); _this.message = "RDBMS does not support OFFSET without LIMIT in SELECT statements. You must use limit in conjunction with offset function (or take in conjunction with skip function if you are using pagination)."; return _this; } return OffsetWithoutLimitNotSupportedError; }(Error)); //# sourceMappingURL=OffsetWithoutLimitNotSupportedError.js.map /***/ }), /* 161 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.NavbarFragment = void 0; var AbstractFragment_1 = __webpack_require__(79); var defaultViewNavbar = __webpack_require__(510); var MenuAction_1 = __webpack_require__(80); var Helper_1 = __webpack_require__(15); var Context_1 = __webpack_require__(111); var Menu_1 = __webpack_require__(199); var OpenSubmenuAction_1 = __webpack_require__(99); var DropdownRenderer_1 = __webpack_require__(260); var AccordionRenderer_1 = __webpack_require__(200); var ColorIndicator_1 = __webpack_require__(256); var App_1 = __webpack_require__(33); /** * Fragment, welches ein Menü in der Navbar anzeigt und hinzufügt. * * Technisch gesehen wird das gleiche Menü zwei mal gerendert und hinzugefügt. Einmal das Menü in der Navbar, welches * immer sichtbar ist und einmal das versteckte Menü, welches durch einen Toggle-Button angezeigt werden kann. * Dabei hat jede MenuAction eine Sichtbarkeitsklasse. Anhand der Sichtbarkeitsklasse und der Bildschirmgröße wird * entweder das eine oder das andere Element sichtbar, jedoch niemals beide. */ var NavbarFragment = /*#__PURE__*/function (_AbstractFragment_1$A) { _inherits(NavbarFragment, _AbstractFragment_1$A); var _super2 = _createSuper(NavbarFragment); /** * Erstellt das Fragment * @param site * @param {string|Node|null} viewNavbar */ function NavbarFragment(site, viewNavbar) { var _this; _classCallCheck(this, NavbarFragment); _this = _super2.call(this, site, Helper_1.Helper.nonNull(viewNavbar, defaultViewNavbar)); _this._menu = null; _this._responsiveMenu = null; _this._backgroundImage = ""; _this._menuActions = []; NavbarFragment.defaultActions.forEach(function (action) { _this._menuActions.push(action.copy()); }); _this._scrollWidget = null; _this._canGoBack = true; _this._logo = App_1.App.getLogo(); return _this; } _createClass(NavbarFragment, [{ key: "setLogo", value: function setLogo(logo) { this._logo = logo; if (this._view) { if (Helper_1.Helper.isNotNull(this._logo)) { this.findBy(".logo").classList.remove("hidden"); this.findBy(".logo-img").src = this._logo; } else { this.findBy(".logo").classList.add("hidden"); } } } }, { key: "setCanGoBack", value: function setCanGoBack(canGoBack) { this._canGoBack = canGoBack; if (this._view) { if (this._canGoBack) { this.findBy(".back-button").classList.remove("hidden"); } else { this.findBy(".back-button").classList.add("hidden"); } } } }, { key: "setScrollWidget", value: function setScrollWidget(scrollWidget) { var _this2 = this; this._scrollWidget = scrollWidget; if (this._view && this._scrollWidget) { var nav = this.findBy(".top-bar > span"); var background = this.findBy(".background-img"); var listener = function listener() { var navbarElem = _this2.findBy("nav.top-bar"); if (nav.getBoundingClientRect().bottom >= background.getBoundingClientRect().bottom) { navbarElem.classList.add("solid"); } else { navbarElem.classList.remove("solid"); } }; background.addEventListener("load", listener); scrollWidget.addEventListener("scroll", listener); requestAnimationFrame(listener); } } }, { key: "setBackgroundImage", value: function setBackgroundImage(backgroundImage) { var _this3 = this; this._backgroundImage = backgroundImage; if (this._view) { var navbarElem = this.findBy("nav.top-bar"); if (Helper_1.Helper.isNotNull(this._backgroundImage)) { var imgElem = this.findBy(".background-img"); var colorIndicator = ColorIndicator_1.ColorIndicator.getInstance(); // navbarElem.classList.add("color-black"); imgElem.addEventListener("load", function () { if (_this3._backgroundImage !== "") { var color = colorIndicator.getAverageImgColor(imgElem, undefined, 150); var textColor = colorIndicator.invertColorBW(color); if (textColor.r === 0 && textColor.g === 0 && textColor.b === 0) { navbarElem.classList.remove("color-white"); navbarElem.classList.add("color-black"); } else { navbarElem.classList.remove("color-black"); navbarElem.classList.add("color-white"); } } else { navbarElem.classList.remove("color-black"); navbarElem.classList.remove("color-white"); } }); requestAnimationFrame(function () { var heightElement = navbarElem.querySelector(".grid-container"); navbarElem.style = "min-height:" + heightElement.getBoundingClientRect().height + "px"; if ("ResizeObserver" in window) { // @ts-ignore var resizeObserver = new ResizeObserver(function (entries) { entries.forEach(function (entry) { if (entry.borderBoxSize) { navbarElem.style = "min-height:" + entry.borderBoxSize[0].blockSize + "px"; } else if (entry.contentRect) { navbarElem.style = "min-height:" + entry.contentRect.height + "px"; } else { console.log("entry", entry); } }); }); resizeObserver.observe(heightElement); } setTimeout(function () { navbarElem.style = "min-height:" + heightElement.getBoundingClientRect().height + "px"; }, 500); setTimeout(function () { navbarElem.style = "min-height:" + heightElement.getBoundingClientRect().height + "px"; }, 1000); setTimeout(function () { navbarElem.style = "min-height:" + heightElement.getBoundingClientRect().height + "px"; }, 1500); }); imgElem.src = this._backgroundImage; navbarElem.classList.add("with-image"); } else { navbarElem.classList.remove("with-image"); } } } /** * Wird aufgerufen, sobald die View geladen ist * @returns {Promise<*>} */ }, { key: "onViewLoaded", value: function onViewLoaded() { var _this4 = this; var _super = Object.create(null, { onViewLoaded: { get: function get() { return _get(_getPrototypeOf(NavbarFragment.prototype), "onViewLoaded", _this4); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var _this5 = this; var res, renderers, oldListener, navbarFragment; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: res = _super.onViewLoaded.call(this); this.setTitleElement(document.createTextNode(NavbarFragment.title)); //Erstelle die Renderers und das Menü renderers = []; renderers.push(new DropdownRenderer_1.DropdownRenderer(this.findBy("#navbar-menu-visible"))); renderers.push(new AccordionRenderer_1.AccordionRenderer(this.findBy("#navbar-menu-hidden"))); this._menu = new Menu_1.Menu(renderers, this._menuActions); this._closeListenerContainer = this.findBy("#navbar-close-listener-container"); //Falls im visible-submenu eine Submenu-Action zu sehen ist this._menu.setOpenSubmenuListener(function () { _this5._showCloseListener(); }); //Falls ein Element im Menü angeklickt wird, sollte das Menü geschlossen werden, //außer dadurch wird ein Untermenü geöffnet/geschlossen oldListener = this._menu.getOnClickListener(); this._menu.setOnClickListener(function (e) { if (!(oldListener(e) instanceof OpenSubmenuAction_1.OpenSubmenuAction)) { _this5.closeMenu(); } }); //Fügt close/open-Listener für den Toggle-Button hinzu this._responsiveMenu = this.findBy("#responsive-menu"); this.findBy("#responsive-menu-toggle").onclick = function () { if (_this5._responsiveMenu.classList.contains("visible")) { _this5.closeMenu(); } else { _this5.openMenu(); } }; //Wenn das "versteckte" Menü geöffnet ist, sollte jeder Click nicht auf das Menü dieses wieder schließen //Dazu gibt es den navbar-close-listener der sich vor allen (außer dem Menü) befindet. Er wird nur angezeigt, //wenn das Menü offen ist navbarFragment = this; this.findBy("#navbar-close-listener").addEventListener("click", function (e) { if (e.target === this) { navbarFragment.closeMenu(); } }); //Wenn die größe des Fenster geändert wird, muss nachgeschaut werden, ob der Menü-Button für das hidden-Menü noch angezeigt werden muss window.addEventListener('resize', function () { //Reicht aus, wenn Seite im Vordergrund, da bei jedem Start (durch onStart) der toggleButton geupdatet wird if (_this5._state === Context_1.Context.STATE_RUNNING) { _this5.updateToggleButton(); } }); //Rendere das Menü this.drawMenu(); this.findBy(".back-button").addEventListener("click", function () { _this5.goBack(); }); this.findBy(".logo").addEventListener("click", function () { if (NavbarFragment.onLogoClickListener) { NavbarFragment.onLogoClickListener(_this5.getSite()); } }); this.setCanGoBack(this._canGoBack); this.setBackgroundImage(this._backgroundImage); this.setScrollWidget(this._scrollWidget); this.setLogo(this._logo); return _context.abrupt("return", res); case 23: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "goBack", value: function goBack() { if (this._canGoBack) { this.getSite().goBack(); } } /** * Jedes mal, wenn die Seite startet, update den toggleButton * * @param pauseArguments * @returns {Promise} */ }, { key: "onStart", value: function onStart(pauseArguments) { var _this6 = this; var _super = Object.create(null, { onStart: { get: function get() { return _get(_getPrototypeOf(NavbarFragment.prototype), "onStart", _this6); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _super.onStart.call(this, pauseArguments); this.updateToggleButton(); case 2: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "_showCloseListener", value: function _showCloseListener() { if (this._closeListenerContainer) { this._closeListenerContainer.style.display = 'block'; } } /** * Schließe das Menü */ }, { key: "closeMenu", value: function closeMenu() { if (Helper_1.Helper.isNotNull(this._responsiveMenu)) { this._responsiveMenu.classList.remove("visible"); this._view.classList.remove("navbar-is-open"); } if (this._closeListenerContainer) { this._closeListenerContainer.style.display = 'none'; } if (this._menu) { this._menu.close(); } } /** * Öffne das Menü */ }, { key: "openMenu", value: function openMenu() { if (Helper_1.Helper.isNotNull(this._responsiveMenu)) { // this._responsiveMenu.style.display = 'block'; this._responsiveMenu.classList.add("visible"); this._view.classList.add("navbar-is-open"); } this._showCloseListener(); } /** * rendere das Menü */ }, { key: "drawMenu", value: function drawMenu() { if (Helper_1.Helper.isNotNull(this._menu)) { this._menu.draw(); } } /** * Update die Sichtbarkeit des MenüButtons für das "versteckte" Menü */ }, { key: "updateToggleButton", value: function updateToggleButton() { //Bekomme die aktuelle Bildschirm-größe als Foundation-Klasse var size = NavbarFragment._getCurrentSize(); //schaue hier nach den enthaltenen Elementen. Evtl sollte das direkt an den MenüActions gemacht werden var firstParentElement = this.findBy("#navbar-menu-visible"); if ( //Es existieren Elemente für large und Bildschirmgröße ist kleiner large => ToggleButton muss angezeigt werden (size === "medium" || size === "smedium" || size === "small") && firstParentElement.querySelectorAll("." + MenuAction_1.MenuAction.SHOW_FOR_LARGE + ":not(.hidden)").length > 0 || //Es existieren Elemente für medium und Bildschirmgröße ist kleiner medium=> ToggleButton muss angezeigt werden (size === "smedium" || size === "small") && firstParentElement.querySelectorAll("." + MenuAction_1.MenuAction.SHOW_FOR_MEDIUM + ":not(.hidden)").length > 0 || //Es existieren Elemente für smedium und Bildschirmgröße ist kleiner medium=> ToggleButton muss angezeigt werden size === "small" && firstParentElement.querySelectorAll("." + MenuAction_1.MenuAction.SHOW_FOR_SMEDIUM + ":not(.hidden)").length > 0 || //Es existieren Elemente, welche nie angezeigt werden sollen => ToggleButton muss angezeigt werden firstParentElement.querySelectorAll("." + MenuAction_1.MenuAction.SHOW_NEVER + ":not(.hidden)").length > 0) { document.getElementById("responsive-menu-toggle").style.display = 'block'; } else { document.getElementById("responsive-menu-toggle").style.display = 'none'; //schließe Menü, falls es offen war this.closeMenu(); } } /** * Funktion zum hinzufügen von Actions * @param action */ }, { key: "addAction", value: function addAction(action) { this._menuActions.push(action); //Falls Menü schon existiert, füge Elemente hinzu if (Helper_1.Helper.isNotNull(this._menu)) { this._menu.addAction(action); } } /** * Funktion zum hinzufügen von Actions * @param redraw */ }, { key: "removeAllActions", value: function removeAllActions(redraw) { this._menuActions = []; //Falls Menü schon existiert, füge Elemente hinzu if (Helper_1.Helper.isNotNull(this._menu)) { this._menu.removeAllActions(redraw); } } /** * Updatet das Title-Element * @param titleElement */ }, { key: "setTitleElement", value: function setTitleElement(titleElement) { Helper_1.Helper.removeAllChildren(this.findBy("#title-element-container")).appendChild(titleElement); } /** * Gibt die aktuelle Size zurück * * @returns {*} * @private */ }], [{ key: "_getCurrentSize", value: function _getCurrentSize() { var matched; //Queries sind paare von css-selektoren auf die Mindest-Breite und Namen //Queries sind so geordnet, dass größter zum schluss kommt var queries = NavbarFragment._getViewQueries(); for (var i = 0; i < queries.length; i++) { var query = queries[i]; //Letzter sollte matchen, daher noch nicht breaken if (matchMedia(query._value).matches) { matched = query; } } if (_typeof(matched) === 'object') { return matched._name; } else { return matched; } } /** * Gibt die ViewQueries zurück, triggert die Berechnung der ViewQueries, falls das noch nicht geschehen ist * * @returns {Array} * @private */ }, { key: "_getViewQueries", value: function _getViewQueries() { if (NavbarFragment.queries.length === 0) { NavbarFragment.queries = NavbarFragment._calculateViewQueries(); } return NavbarFragment.queries; } /** * Berechnet die ViewQueries, bzw liest diese aus Foundation/CSS ein * Eine Veränderung der Werte in SASS, verändert daher auch hier die Werte * * @returns {*} * @private */ }, { key: "_calculateViewQueries", value: function _calculateViewQueries() { //Hilfs-Funktion zum Parsen der Bildschirmgröße function parseStyleToObject(str) { var styleObject = {}; if (typeof str !== 'string') { return styleObject; } str = str.trim().slice(1, -1); // browsers re-quote string style values if (!str) { return styleObject; } styleObject = str.split('&').reduce(function (ret, param) { var parts = param.replace(/\+/g, ' ').split('='); var key = parts[0]; var val = parts[1]; key = decodeURIComponent(key); // missing `=` should be `null`: // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters val = val === undefined ? null : decodeURIComponent(val); if (!ret.hasOwnProperty(key)) { ret[key] = val; } else if (Array.isArray(ret[key])) { ret[key].push(val); } else { ret[key] = [ret[key], val]; } return ret; }, {}); return styleObject; } //die Font-Family ist reiner Text. Daher übergibt Foundation die Bildchirmgröße mit den dazugehörigen Namen als // Font-Family in einem Element im Head var cssStyle = document.getElementsByClassName('foundation-mq'); if (cssStyle.length === 0) { return; } var queries = []; //Lade Bildschirmgrößen und speichere diese als Query in einem Array var cssStyleElements = parseStyleToObject(window.getComputedStyle(cssStyle[0]).getPropertyValue('font-family')); for (var key in cssStyleElements) { if (cssStyleElements.hasOwnProperty(key)) { //Erstelle aus der Bildschirmgröße die Queries queries.push({ _name: key, _value: 'only screen and (min-width: ' + cssStyleElements[key] + ')' }); } } return queries; } /** * Setzt den Listener, welcher ausgeführt wird, wenn auf das Logo geklickt wird * * @param listener */ }, { key: "setOnLogoClickListener", value: function setOnLogoClickListener(listener) { this.onLogoClickListener = listener; } }]); return NavbarFragment; }(AbstractFragment_1.AbstractFragment); exports.NavbarFragment = NavbarFragment; NavbarFragment.queries = []; NavbarFragment.onLogoClickListener = function () { return App_1.App.addInitialization(function (app) { return app.startStartingSite(); }); }; NavbarFragment.title = "MeinBerufBau"; NavbarFragment.defaultActions = []; /***/ }), /* 162 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return JoinAttribute; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var _QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50); /* harmony import */ var _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24); /** * Stores all join attributes which will be used to build a JOIN query. */ var JoinAttribute = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function JoinAttribute(connection, queryExpressionMap, joinAttribute) { this.connection = connection; this.queryExpressionMap = queryExpressionMap; this.isSelectedEvaluated = false; this.relationEvaluated = false; _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_2__[/* ObjectUtils */ "a"].assign(this, joinAttribute || {}); } Object.defineProperty(JoinAttribute.prototype, "isMany", { // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- get: function () { if (this.isMappingMany !== undefined) return this.isMappingMany; if (this.relation) return this.relation.isManyToMany || this.relation.isOneToMany; return false; }, enumerable: false, configurable: true }); Object.defineProperty(JoinAttribute.prototype, "isSelected", { /** * Indicates if this join is selected. */ get: function () { var _this = this; if (!this.isSelectedEvaluated) { var getValue = function () { var e_1, _a; var _loop_1 = function (select) { if (select.selection === _this.alias.name) return { value: true }; if (_this.metadata && !!_this.metadata.columns.find(function (column) { return select.selection === _this.alias.name + "." + column.propertyPath; })) return { value: true }; }; try { for (var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __values */ "g"])(_this.queryExpressionMap.selects), _c = _b.next(); !_c.done; _c = _b.next()) { var select = _c.value; var state_1 = _loop_1(select); if (typeof state_1 === "object") return state_1.value; } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_1) throw e_1.error; } } return false; }; this.isSelectedCache = getValue(); this.isSelectedEvaluated = true; } return this.isSelectedCache; }, enumerable: false, configurable: true }); Object.defineProperty(JoinAttribute.prototype, "tablePath", { /** * Name of the table which we should join. */ get: function () { return this.metadata ? this.metadata.tablePath : this.entityOrProperty; }, enumerable: false, configurable: true }); Object.defineProperty(JoinAttribute.prototype, "parentAlias", { /** * Alias of the parent of this join. * For example, if we join ("post.category", "categoryAlias") then "post" is a parent alias. * This value is extracted from entityOrProperty value. * This is available when join was made using "post.category" syntax. */ get: function () { if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[/* QueryBuilderUtils */ "a"].isAliasProperty(this.entityOrProperty)) return undefined; return this.entityOrProperty.substr(0, this.entityOrProperty.indexOf(".")); }, enumerable: false, configurable: true }); Object.defineProperty(JoinAttribute.prototype, "relationPropertyPath", { /** * Relation property name of the parent. * This is used to understand what is joined. * For example, if we join ("post.category", "categoryAlias") then "category" is a relation property. * This value is extracted from entityOrProperty value. * This is available when join was made using "post.category" syntax. */ get: function () { if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[/* QueryBuilderUtils */ "a"].isAliasProperty(this.entityOrProperty)) return undefined; return this.entityOrProperty.substr(this.entityOrProperty.indexOf(".") + 1); }, enumerable: false, configurable: true }); Object.defineProperty(JoinAttribute.prototype, "relation", { /** * Relation of the parent. * This is used to understand what is joined. * This is available when join was made using "post.category" syntax. * Relation can be undefined if entityOrProperty is regular entity or custom table. */ get: function () { var _this = this; if (!this.relationEvaluated) { var getValue = function () { if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[/* QueryBuilderUtils */ "a"].isAliasProperty(_this.entityOrProperty)) return undefined; var relationOwnerSelection = _this.queryExpressionMap.findAliasByName(_this.parentAlias); var relation = relationOwnerSelection.metadata.findRelationWithPropertyPath(_this.relationPropertyPath); if (relation) { return relation; } if (relationOwnerSelection.metadata.parentEntityMetadata) { relation = relationOwnerSelection.metadata.parentEntityMetadata.findRelationWithPropertyPath(_this.relationPropertyPath); if (relation) { return relation; } } throw new Error("Relation with property path " + _this.relationPropertyPath + " in entity was not found."); }; this.relationCache = getValue.bind(this)(); this.relationEvaluated = true; } return this.relationCache; }, enumerable: false, configurable: true }); Object.defineProperty(JoinAttribute.prototype, "metadata", { /** * Metadata of the joined entity. * If table without entity was joined, then it will return undefined. */ get: function () { // entityOrProperty is relation, e.g. "post.category" if (this.relation) return this.relation.inverseEntityMetadata; // entityOrProperty is Entity class if (this.connection.hasMetadata(this.entityOrProperty)) return this.connection.getMetadata(this.entityOrProperty); return undefined; /*if (typeof this.entityOrProperty === "string") { // entityOrProperty is a custom table // first try to find entity with such name, this is needed when entity does not have a target class, // and its target is a string name (scenario when plain old javascript is used or entity schema is loaded from files) const metadata = this.connection.entityMetadatas.find(metadata => metadata.name === this.entityOrProperty); if (metadata) return metadata; // check if we have entity with such table name, and use its metadata if found return this.connection.entityMetadatas.find(metadata => metadata.tableName === this.entityOrProperty); }*/ }, enumerable: false, configurable: true }); Object.defineProperty(JoinAttribute.prototype, "junctionAlias", { /** * Generates alias of junction table, whose ids we get. */ get: function () { if (!this.relation) throw new Error("Cannot get junction table for join without relation."); return this.relation.isOwning ? this.parentAlias + "_" + this.alias.name : this.alias.name + "_" + this.parentAlias; }, enumerable: false, configurable: true }); Object.defineProperty(JoinAttribute.prototype, "mapToPropertyParentAlias", { get: function () { if (!this.mapToProperty) return undefined; return this.mapToProperty.split(".")[0]; }, enumerable: false, configurable: true }); Object.defineProperty(JoinAttribute.prototype, "mapToPropertyPropertyName", { get: function () { if (!this.mapToProperty) return undefined; return this.mapToProperty.split(".")[1]; }, enumerable: false, configurable: true }); return JoinAttribute; }()); //# sourceMappingURL=JoinAttribute.js.map /***/ }), /* 163 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ BaseQueryRunner_BaseQueryRunner; }); // EXTERNAL MODULE: ./node_modules/typeorm/node_modules/tslib/tslib.es6.js var tslib_es6 = __webpack_require__(0); // EXTERNAL MODULE: ./node_modules/typeorm/browser/driver/Query.js var Query = __webpack_require__(2); // CONCATENATED MODULE: ./node_modules/typeorm/browser/driver/SqlInMemory.js /** * This class stores up and down queries needed for migrations functionality. */ var SqlInMemory = /** @class */ (function () { function SqlInMemory() { this.upQueries = []; this.downQueries = []; } return SqlInMemory; }()); //# sourceMappingURL=SqlInMemory.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/query-runner/BaseQueryRunner.js var BaseQueryRunner_BaseQueryRunner = /** @class */ (function () { function BaseQueryRunner() { // ------------------------------------------------------------------------- // Public Properties // ------------------------------------------------------------------------- /** * Indicates if connection for this query runner is released. * Once its released, query runner cannot run queries anymore. */ this.isReleased = false; /** * Indicates if transaction is in progress. */ this.isTransactionActive = false; /** * Stores temporarily user data. * Useful for sharing data with subscribers. */ this.data = {}; /** * All synchronized tables in the database. */ this.loadedTables = []; /** * All synchronized views in the database. */ this.loadedViews = []; /** * Indicates if special query runner mode in which sql queries won't be executed is enabled. */ this.sqlMemoryMode = false; /** * Sql-s stored if "sql in memory" mode is enabled. */ this.sqlInMemory = new SqlInMemory(); } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Loads given table's data from the database. */ BaseQueryRunner.prototype.getTable = function (tablePath) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _a; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: _a = this; return [4 /*yield*/, this.loadTables([tablePath])]; case 1: _a.loadedTables = _b.sent(); return [2 /*return*/, this.loadedTables.length > 0 ? this.loadedTables[0] : undefined]; } }); }); }; /** * Loads all tables (with given names) from the database. */ BaseQueryRunner.prototype.getTables = function (tableNames) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _a; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: _a = this; return [4 /*yield*/, this.loadTables(tableNames)]; case 1: _a.loadedTables = _b.sent(); return [2 /*return*/, this.loadedTables]; } }); }); }; /** * Loads given view's data from the database. */ BaseQueryRunner.prototype.getView = function (viewPath) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _a; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: _a = this; return [4 /*yield*/, this.loadViews([viewPath])]; case 1: _a.loadedViews = _b.sent(); return [2 /*return*/, this.loadedViews.length > 0 ? this.loadedViews[0] : undefined]; } }); }); }; /** * Loads given view's data from the database. */ BaseQueryRunner.prototype.getViews = function (viewPaths) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _a; return Object(tslib_es6["d" /* __generator */])(this, function (_b) { switch (_b.label) { case 0: _a = this; return [4 /*yield*/, this.loadViews(viewPaths)]; case 1: _a.loadedViews = _b.sent(); return [2 /*return*/, this.loadedViews]; } }); }); }; /** * Enables special query runner mode in which sql queries won't be executed, * instead they will be memorized into a special variable inside query runner. * You can get memorized sql using getMemorySql() method. */ BaseQueryRunner.prototype.enableSqlMemory = function () { this.sqlInMemory = new SqlInMemory(); this.sqlMemoryMode = true; }; /** * Disables special query runner mode in which sql queries won't be executed * started by calling enableSqlMemory() method. * * Previously memorized sql will be flushed. */ BaseQueryRunner.prototype.disableSqlMemory = function () { this.sqlInMemory = new SqlInMemory(); this.sqlMemoryMode = false; }; /** * Flushes all memorized sqls. */ BaseQueryRunner.prototype.clearSqlMemory = function () { this.sqlInMemory = new SqlInMemory(); }; /** * Gets sql stored in the memory. Parameters in the sql are already replaced. */ BaseQueryRunner.prototype.getMemorySql = function () { return this.sqlInMemory; }; /** * Executes up sql queries. */ BaseQueryRunner.prototype.executeMemoryUpSql = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _a, _b, _c, query, parameters, e_1_1; var e_1, _d; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: _e.trys.push([0, 5, 6, 7]); _a = Object(tslib_es6["g" /* __values */])(this.sqlInMemory.upQueries), _b = _a.next(); _e.label = 1; case 1: if (!!_b.done) return [3 /*break*/, 4]; _c = _b.value, query = _c.query, parameters = _c.parameters; return [4 /*yield*/, this.query(query, parameters)]; case 2: _e.sent(); _e.label = 3; case 3: _b = _a.next(); return [3 /*break*/, 1]; case 4: return [3 /*break*/, 7]; case 5: e_1_1 = _e.sent(); e_1 = { error: e_1_1 }; return [3 /*break*/, 7]; case 6: try { if (_b && !_b.done && (_d = _a.return)) _d.call(_a); } finally { if (e_1) throw e_1.error; } return [7 /*endfinally*/]; case 7: return [2 /*return*/]; } }); }); }; /** * Executes down sql queries. */ BaseQueryRunner.prototype.executeMemoryDownSql = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var _a, _b, _c, query, parameters, e_2_1; var e_2, _d; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: _e.trys.push([0, 5, 6, 7]); _a = Object(tslib_es6["g" /* __values */])(this.sqlInMemory.downQueries.reverse()), _b = _a.next(); _e.label = 1; case 1: if (!!_b.done) return [3 /*break*/, 4]; _c = _b.value, query = _c.query, parameters = _c.parameters; return [4 /*yield*/, this.query(query, parameters)]; case 2: _e.sent(); _e.label = 3; case 3: _b = _a.next(); return [3 /*break*/, 1]; case 4: return [3 /*break*/, 7]; case 5: e_2_1 = _e.sent(); e_2 = { error: e_2_1 }; return [3 /*break*/, 7]; case 6: try { if (_b && !_b.done && (_d = _a.return)) _d.call(_a); } finally { if (e_2) throw e_2.error; } return [7 /*endfinally*/]; case 7: return [2 /*return*/]; } }); }); }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Gets view from previously loaded views, otherwise loads it from database. */ BaseQueryRunner.prototype.getCachedView = function (viewName) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var view, foundViews; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: view = this.loadedViews.find(function (view) { return view.name === viewName; }); if (view) return [2 /*return*/, view]; return [4 /*yield*/, this.loadViews([viewName])]; case 1: foundViews = _a.sent(); if (foundViews.length > 0) { this.loadedViews.push(foundViews[0]); return [2 /*return*/, foundViews[0]]; } else { throw new Error("View \"" + viewName + "\" does not exist."); } return [2 /*return*/]; } }); }); }; /** * Gets table from previously loaded tables, otherwise loads it from database. */ BaseQueryRunner.prototype.getCachedTable = function (tableName) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var table, foundTables; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: table = this.loadedTables.find(function (table) { return table.name === tableName; }); if (table) return [2 /*return*/, table]; return [4 /*yield*/, this.loadTables([tableName])]; case 1: foundTables = _a.sent(); if (foundTables.length > 0) { this.loadedTables.push(foundTables[0]); return [2 /*return*/, foundTables[0]]; } else { throw new Error("Table \"" + tableName + "\" does not exist."); } return [2 /*return*/]; } }); }); }; /** * Replaces loaded table with given changed table. */ BaseQueryRunner.prototype.replaceCachedTable = function (table, changedTable) { var foundTable = this.loadedTables.find(function (loadedTable) { return loadedTable.name === table.name; }); if (foundTable) { foundTable.name = changedTable.name; foundTable.columns = changedTable.columns; foundTable.indices = changedTable.indices; foundTable.foreignKeys = changedTable.foreignKeys; foundTable.uniques = changedTable.uniques; foundTable.checks = changedTable.checks; foundTable.justCreated = changedTable.justCreated; foundTable.engine = changedTable.engine; } }; BaseQueryRunner.prototype.getTypeormMetadataTableName = function () { var options = this.connection.driver.options; return this.connection.driver.buildTableName("typeorm_metadata", options.schema, options.database); }; /** * Checks if at least one of column properties was changed. * Does not checks column type, length and autoincrement, because these properties changes separately. */ BaseQueryRunner.prototype.isColumnChanged = function (oldColumn, newColumn, checkDefault, checkComment) { // this logs need to debug issues in column change detection. Do not delete it! // console.log("charset ---------------"); // console.log(oldColumn.charset !== newColumn.charset); // console.log(oldColumn.charset, newColumn.charset); // console.log("collation ---------------"); // console.log(oldColumn.collation !== newColumn.collation); // console.log(oldColumn.collation, newColumn.collation); // console.log("precision ---------------"); // console.log(oldColumn.precision !== newColumn.precision); // console.log(oldColumn.precision, newColumn.precision); // console.log("scale ---------------"); // console.log(oldColumn.scale !== newColumn.scale); // console.log(oldColumn.scale, newColumn.scale); // console.log("default ---------------"); // console.log((checkDefault && oldColumn.default !== newColumn.default)); // console.log(oldColumn.default, newColumn.default); // console.log("isNullable ---------------"); // console.log(oldColumn.isNullable !== newColumn.isNullable); // console.log(oldColumn.isNullable, newColumn.isNullable); // console.log("comment ---------------"); // console.log((checkComment && oldColumn.comment !== newColumn.comment)); // console.log(oldColumn.comment, newColumn.comment); // console.log("enum ---------------"); // console.log(oldColumn.enum !== newColumn.enum); // console.log(oldColumn.enum, newColumn.enum); return oldColumn.charset !== newColumn.charset || oldColumn.collation !== newColumn.collation || oldColumn.precision !== newColumn.precision || oldColumn.scale !== newColumn.scale || oldColumn.width !== newColumn.width // MySQL only || oldColumn.zerofill !== newColumn.zerofill // MySQL only || oldColumn.unsigned !== newColumn.unsigned // MySQL only || oldColumn.asExpression !== newColumn.asExpression // MySQL only || (checkDefault && oldColumn.default !== newColumn.default) || oldColumn.onUpdate !== newColumn.onUpdate // MySQL only || oldColumn.isNullable !== newColumn.isNullable || (checkComment && oldColumn.comment !== newColumn.comment) || oldColumn.enum !== newColumn.enum; }; /** * Checks if column length is by default. */ BaseQueryRunner.prototype.isDefaultColumnLength = function (table, column, length) { // if table have metadata, we check if length is specified in column metadata if (this.connection.hasMetadata(table.name)) { var metadata = this.connection.getMetadata(table.name); var columnMetadata = metadata.findColumnWithDatabaseName(column.name); if (columnMetadata && columnMetadata.length) return false; } if (this.connection.driver.dataTypeDefaults && this.connection.driver.dataTypeDefaults[column.type] && this.connection.driver.dataTypeDefaults[column.type].length) { return this.connection.driver.dataTypeDefaults[column.type].length.toString() === length.toString(); } return false; }; /** * Checks if column precision is by default. */ BaseQueryRunner.prototype.isDefaultColumnPrecision = function (table, column, precision) { // if table have metadata, we check if length is specified in column metadata if (this.connection.hasMetadata(table.name)) { var metadata = this.connection.getMetadata(table.name); var columnMetadata = metadata.findColumnWithDatabaseName(column.name); if (columnMetadata && columnMetadata.precision !== null && columnMetadata.precision !== undefined) return false; } if (this.connection.driver.dataTypeDefaults && this.connection.driver.dataTypeDefaults[column.type] && this.connection.driver.dataTypeDefaults[column.type].precision !== null && this.connection.driver.dataTypeDefaults[column.type].precision !== undefined) return this.connection.driver.dataTypeDefaults[column.type].precision === precision; return false; }; /** * Checks if column scale is by default. */ BaseQueryRunner.prototype.isDefaultColumnScale = function (table, column, scale) { // if table have metadata, we check if length is specified in column metadata if (this.connection.hasMetadata(table.name)) { var metadata = this.connection.getMetadata(table.name); var columnMetadata = metadata.findColumnWithDatabaseName(column.name); if (columnMetadata && columnMetadata.scale !== null && columnMetadata.scale !== undefined) return false; } if (this.connection.driver.dataTypeDefaults && this.connection.driver.dataTypeDefaults[column.type] && this.connection.driver.dataTypeDefaults[column.type].scale !== null && this.connection.driver.dataTypeDefaults[column.type].scale !== undefined) return this.connection.driver.dataTypeDefaults[column.type].scale === scale; return false; }; /** * Executes sql used special for schema build. */ BaseQueryRunner.prototype.executeQueries = function (upQueries, downQueries) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var upQueries_1, upQueries_1_1, _a, query, parameters, e_3_1; var _b, _c, e_3, _d; return Object(tslib_es6["d" /* __generator */])(this, function (_e) { switch (_e.label) { case 0: if (upQueries instanceof Query["a" /* Query */]) upQueries = [upQueries]; if (downQueries instanceof Query["a" /* Query */]) downQueries = [downQueries]; (_b = this.sqlInMemory.upQueries).push.apply(_b, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(upQueries))); (_c = this.sqlInMemory.downQueries).push.apply(_c, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(downQueries))); // if sql-in-memory mode is enabled then simply store sql in memory and return if (this.sqlMemoryMode === true) return [2 /*return*/, Promise.resolve()]; _e.label = 1; case 1: _e.trys.push([1, 6, 7, 8]); upQueries_1 = Object(tslib_es6["g" /* __values */])(upQueries), upQueries_1_1 = upQueries_1.next(); _e.label = 2; case 2: if (!!upQueries_1_1.done) return [3 /*break*/, 5]; _a = upQueries_1_1.value, query = _a.query, parameters = _a.parameters; return [4 /*yield*/, this.query(query, parameters)]; case 3: _e.sent(); _e.label = 4; case 4: upQueries_1_1 = upQueries_1.next(); return [3 /*break*/, 2]; case 5: return [3 /*break*/, 8]; case 6: e_3_1 = _e.sent(); e_3 = { error: e_3_1 }; return [3 /*break*/, 8]; case 7: try { if (upQueries_1_1 && !upQueries_1_1.done && (_d = upQueries_1.return)) _d.call(upQueries_1); } finally { if (e_3) throw e_3.error; } return [7 /*endfinally*/]; case 8: return [2 /*return*/]; } }); }); }; return BaseQueryRunner; }()); //# sourceMappingURL=BaseQueryRunner.js.map /***/ }), /* 164 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(14); var document = __webpack_require__(11).document; // typeof document.createElement is 'object' in old IE var is = isObject(document) && isObject(document.createElement); module.exports = function (it) { return is ? document.createElement(it) : {}; }; /***/ }), /* 165 */ /***/ (function(module, exports, __webpack_require__) { exports.f = __webpack_require__(19); /***/ }), /* 166 */ /***/ (function(module, exports, __webpack_require__) { var shared = __webpack_require__(134)('keys'); var uid = __webpack_require__(88); module.exports = function (key) { return shared[key] || (shared[key] = uid(key)); }; /***/ }), /* 167 */ /***/ (function(module, exports) { // IE 8- don't enum bug keys module.exports = ( 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' ).split(','); /***/ }), /* 168 */ /***/ (function(module, exports, __webpack_require__) { var document = __webpack_require__(11).document; module.exports = document && document.documentElement; /***/ }), /* 169 */ /***/ (function(module, exports, __webpack_require__) { // Works with __proto__ only. Old v8 can't work with null proto objects. /* eslint-disable no-proto */ var isObject = __webpack_require__(14); var anObject = __webpack_require__(13); var check = function (O, proto) { anObject(O); if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); }; module.exports = { set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line function (test, buggy, set) { try { set = __webpack_require__(63)(Function.call, __webpack_require__(66).f(Object.prototype, '__proto__').set, 2); set(test, []); buggy = !(test instanceof Array); } catch (e) { buggy = true; } return function setPrototypeOf(O, proto) { check(O, proto); if (buggy) O.__proto__ = proto; else set(O, proto); return O; }; }({}, false) : undefined), check: check }; /***/ }), /* 170 */ /***/ (function(module, exports) { module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' + '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; /***/ }), /* 171 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(14); var setPrototypeOf = __webpack_require__(169).set; module.exports = function (that, target, C) { var S = target.constructor; var P; if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { setPrototypeOf(that, P); } return that; }; /***/ }), /* 172 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var toInteger = __webpack_require__(65); var defined = __webpack_require__(76); module.exports = function repeat(count) { var str = String(defined(this)); var res = ''; var n = toInteger(count); if (n < 0 || n == Infinity) throw RangeError("Count can't be negative"); for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str; return res; }; /***/ }), /* 173 */ /***/ (function(module, exports) { // 20.2.2.28 Math.sign(x) module.exports = Math.sign || function sign(x) { // eslint-disable-next-line no-self-compare return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1; }; /***/ }), /* 174 */ /***/ (function(module, exports) { // 20.2.2.14 Math.expm1(x) var $expm1 = Math.expm1; module.exports = (!$expm1 // Old FF bug || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168 // Tor Browser bug || $expm1(-2e-17) != -2e-17 ) ? function expm1(x) { return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1; } : $expm1; /***/ }), /* 175 */ /***/ (function(module, exports, __webpack_require__) { var toInteger = __webpack_require__(65); var defined = __webpack_require__(76); // true -> String#at // false -> String#codePointAt module.exports = function (TO_STRING) { return function (that, pos) { var s = String(defined(that)); var i = toInteger(pos); var l = s.length; var a, b; if (i < 0 || i >= l) return TO_STRING ? '' : undefined; a = s.charCodeAt(i); return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; }; }; /***/ }), /* 176 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var LIBRARY = __webpack_require__(89); var $export = __webpack_require__(3); var redefine = __webpack_require__(45); var hide = __webpack_require__(52); var Iterators = __webpack_require__(105); var $iterCreate = __webpack_require__(227); var setToStringTag = __webpack_require__(103); var getPrototypeOf = __webpack_require__(94); var ITERATOR = __webpack_require__(19)('iterator'); var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` var FF_ITERATOR = '@@iterator'; var KEYS = 'keys'; var VALUES = 'values'; var returnThis = function () { return this; }; module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { $iterCreate(Constructor, NAME, next); var getMethod = function (kind) { if (!BUGGY && kind in proto) return proto[kind]; switch (kind) { case KEYS: return function keys() { return new Constructor(this, kind); }; case VALUES: return function values() { return new Constructor(this, kind); }; } return function entries() { return new Constructor(this, kind); }; }; var TAG = NAME + ' Iterator'; var DEF_VALUES = DEFAULT == VALUES; var VALUES_BUG = false; var proto = Base.prototype; var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; var $default = $native || getMethod(DEFAULT); var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; var methods, key, IteratorPrototype; // Fix native if ($anyNative) { IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { // Set @@toStringTag to native iterators setToStringTag(IteratorPrototype, TAG, true); // fix for some old engines if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); } } // fix Array#{values, @@iterator}.name in V8 / FF if (DEF_VALUES && $native && $native.name !== VALUES) { VALUES_BUG = true; $default = function values() { return $native.call(this); }; } // Define iterator if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { hide(proto, ITERATOR, $default); } // Plug for library Iterators[NAME] = $default; Iterators[TAG] = returnThis; if (DEFAULT) { methods = { values: DEF_VALUES ? $default : getMethod(VALUES), keys: IS_SET ? $default : getMethod(KEYS), entries: $entries }; if (FORCED) for (key in methods) { if (!(key in proto)) redefine(proto, key, methods[key]); } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); } return methods; }; /***/ }), /* 177 */ /***/ (function(module, exports, __webpack_require__) { // helper for String#{startsWith, endsWith, includes} var isRegExp = __webpack_require__(178); var defined = __webpack_require__(76); module.exports = function (that, searchString, NAME) { if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); return String(defined(that)); }; /***/ }), /* 178 */ /***/ (function(module, exports, __webpack_require__) { // 7.2.8 IsRegExp(argument) var isObject = __webpack_require__(14); var cof = __webpack_require__(75); var MATCH = __webpack_require__(19)('match'); module.exports = function (it) { var isRegExp; return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); }; /***/ }), /* 179 */ /***/ (function(module, exports, __webpack_require__) { var MATCH = __webpack_require__(19)('match'); module.exports = function (KEY) { var re = /./; try { '/./'[KEY](re); } catch (e) { try { re[MATCH] = false; return !'/./'[KEY](re); } catch (f) { /* empty */ } } return true; }; /***/ }), /* 180 */ /***/ (function(module, exports, __webpack_require__) { // check on default Array iterator var Iterators = __webpack_require__(105); var ITERATOR = __webpack_require__(19)('iterator'); var ArrayProto = Array.prototype; module.exports = function (it) { return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); }; /***/ }), /* 181 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $defineProperty = __webpack_require__(29); var createDesc = __webpack_require__(87); module.exports = function (object, index, value) { if (index in object) $defineProperty.f(object, index, createDesc(0, value)); else object[index] = value; }; /***/ }), /* 182 */ /***/ (function(module, exports, __webpack_require__) { var classof = __webpack_require__(124); var ITERATOR = __webpack_require__(19)('iterator'); var Iterators = __webpack_require__(105); module.exports = __webpack_require__(26).getIteratorMethod = function (it) { if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)]; }; /***/ }), /* 183 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) var toObject = __webpack_require__(36); var toAbsoluteIndex = __webpack_require__(91); var toLength = __webpack_require__(23); module.exports = function fill(value /* , start = 0, end = @length */) { var O = toObject(this); var length = toLength(O.length); var aLen = arguments.length; var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length); var end = aLen > 2 ? arguments[2] : undefined; var endPos = end === undefined ? length : toAbsoluteIndex(end, length); while (endPos > index) O[index++] = value; return O; }; /***/ }), /* 184 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var addToUnscopables = __webpack_require__(95); var step = __webpack_require__(232); var Iterators = __webpack_require__(105); var toIObject = __webpack_require__(53); // 22.1.3.4 Array.prototype.entries() // 22.1.3.13 Array.prototype.keys() // 22.1.3.29 Array.prototype.values() // 22.1.3.30 Array.prototype[@@iterator]() module.exports = __webpack_require__(176)(Array, 'Array', function (iterated, kind) { this._t = toIObject(iterated); // target this._i = 0; // next index this._k = kind; // kind // 22.1.5.2.1 %ArrayIteratorPrototype%.next() }, function () { var O = this._t; var kind = this._k; var index = this._i++; if (!O || index >= O.length) { this._t = undefined; return step(1); } if (kind == 'keys') return step(0, index); if (kind == 'values') return step(0, O[index]); return step(0, [index, O[index]]); }, 'values'); // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) Iterators.Arguments = Iterators.Array; addToUnscopables('keys'); addToUnscopables('values'); addToUnscopables('entries'); /***/ }), /* 185 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var regexpFlags = __webpack_require__(139); var nativeExec = RegExp.prototype.exec; // This always refers to the native implementation, because the // String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js, // which loads this file before patching the method. var nativeReplace = String.prototype.replace; var patchedExec = nativeExec; var LAST_INDEX = 'lastIndex'; var UPDATES_LAST_INDEX_WRONG = (function () { var re1 = /a/, re2 = /b*/g; nativeExec.call(re1, 'a'); nativeExec.call(re2, 'a'); return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0; })(); // nonparticipating capturing group, copied from es5-shim's String#split patch. var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED; if (PATCH) { patchedExec = function exec(str) { var re = this; var lastIndex, reCopy, match, i; if (NPCG_INCLUDED) { reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re)); } if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX]; match = nativeExec.call(re, str); if (UPDATES_LAST_INDEX_WRONG && match) { re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex; } if (NPCG_INCLUDED && match && match.length > 1) { // Fix browsers whose `exec` methods don't consistently return `undefined` // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ // eslint-disable-next-line no-loop-func nativeReplace.call(match[0], reCopy, function () { for (i = 1; i < arguments.length - 2; i++) { if (arguments[i] === undefined) match[i] = undefined; } }); } return match; }; } module.exports = patchedExec; /***/ }), /* 186 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var at = __webpack_require__(175)(true); // `AdvanceStringIndex` abstract operation // https://tc39.github.io/ecma262/#sec-advancestringindex module.exports = function (S, index, unicode) { return index + (unicode ? at(S, index).length : 1); }; /***/ }), /* 187 */ /***/ (function(module, exports, __webpack_require__) { var ctx = __webpack_require__(63); var invoke = __webpack_require__(221); var html = __webpack_require__(168); var cel = __webpack_require__(164); var global = __webpack_require__(11); var process = global.process; var setTask = global.setImmediate; var clearTask = global.clearImmediate; var MessageChannel = global.MessageChannel; var Dispatch = global.Dispatch; var counter = 0; var queue = {}; var ONREADYSTATECHANGE = 'onreadystatechange'; var defer, channel, port; var run = function () { var id = +this; // eslint-disable-next-line no-prototype-builtins if (queue.hasOwnProperty(id)) { var fn = queue[id]; delete queue[id]; fn(); } }; var listener = function (event) { run.call(event.data); }; // Node.js 0.9+ & IE10+ has setImmediate, otherwise: if (!setTask || !clearTask) { setTask = function setImmediate(fn) { var args = []; var i = 1; while (arguments.length > i) args.push(arguments[i++]); queue[++counter] = function () { // eslint-disable-next-line no-new-func invoke(typeof fn == 'function' ? fn : Function(fn), args); }; defer(counter); return counter; }; clearTask = function clearImmediate(id) { delete queue[id]; }; // Node.js 0.8- if (__webpack_require__(75)(process) == 'process') { defer = function (id) { process.nextTick(ctx(run, id, 1)); }; // Sphere (JS game engine) Dispatch API } else if (Dispatch && Dispatch.now) { defer = function (id) { Dispatch.now(ctx(run, id, 1)); }; // Browsers with MessageChannel, includes WebWorkers } else if (MessageChannel) { channel = new MessageChannel(); port = channel.port2; channel.port1.onmessage = listener; defer = ctx(port.postMessage, port, 1); // Browsers with postMessage, skip WebWorkers // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { defer = function (id) { global.postMessage(id + '', '*'); }; global.addEventListener('message', listener, false); // IE8- } else if (ONREADYSTATECHANGE in cel('script')) { defer = function (id) { html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { html.removeChild(this); run.call(id); }; }; // Rest old browsers } else { defer = function (id) { setTimeout(ctx(run, id, 1), 0); }; } } module.exports = { set: setTask, clear: clearTask }; /***/ }), /* 188 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(11); var DESCRIPTORS = __webpack_require__(28); var LIBRARY = __webpack_require__(89); var $typed = __webpack_require__(145); var hide = __webpack_require__(52); var redefineAll = __webpack_require__(108); var fails = __webpack_require__(12); var anInstance = __webpack_require__(107); var toInteger = __webpack_require__(65); var toLength = __webpack_require__(23); var toIndex = __webpack_require__(240); var gOPN = __webpack_require__(93).f; var dP = __webpack_require__(29).f; var arrayFill = __webpack_require__(183); var setToStringTag = __webpack_require__(103); var ARRAY_BUFFER = 'ArrayBuffer'; var DATA_VIEW = 'DataView'; var PROTOTYPE = 'prototype'; var WRONG_LENGTH = 'Wrong length!'; var WRONG_INDEX = 'Wrong index!'; var $ArrayBuffer = global[ARRAY_BUFFER]; var $DataView = global[DATA_VIEW]; var Math = global.Math; var RangeError = global.RangeError; // eslint-disable-next-line no-shadow-restricted-names var Infinity = global.Infinity; var BaseBuffer = $ArrayBuffer; var abs = Math.abs; var pow = Math.pow; var floor = Math.floor; var log = Math.log; var LN2 = Math.LN2; var BUFFER = 'buffer'; var BYTE_LENGTH = 'byteLength'; var BYTE_OFFSET = 'byteOffset'; var $BUFFER = DESCRIPTORS ? '_b' : BUFFER; var $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH; var $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET; // IEEE754 conversions based on https://github.com/feross/ieee754 function packIEEE754(value, mLen, nBytes) { var buffer = new Array(nBytes); var eLen = nBytes * 8 - mLen - 1; var eMax = (1 << eLen) - 1; var eBias = eMax >> 1; var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0; var i = 0; var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; var e, m, c; value = abs(value); // eslint-disable-next-line no-self-compare if (value != value || value === Infinity) { // eslint-disable-next-line no-self-compare m = value != value ? 1 : 0; e = eMax; } else { e = floor(log(value) / LN2); if (value * (c = pow(2, -e)) < 1) { e--; c *= 2; } if (e + eBias >= 1) { value += rt / c; } else { value += rt * pow(2, 1 - eBias); } if (value * c >= 2) { e++; c /= 2; } if (e + eBias >= eMax) { m = 0; e = eMax; } else if (e + eBias >= 1) { m = (value * c - 1) * pow(2, mLen); e = e + eBias; } else { m = value * pow(2, eBias - 1) * pow(2, mLen); e = 0; } } for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8); e = e << mLen | m; eLen += mLen; for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8); buffer[--i] |= s * 128; return buffer; } function unpackIEEE754(buffer, mLen, nBytes) { var eLen = nBytes * 8 - mLen - 1; var eMax = (1 << eLen) - 1; var eBias = eMax >> 1; var nBits = eLen - 7; var i = nBytes - 1; var s = buffer[i--]; var e = s & 127; var m; s >>= 7; for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8); m = e & (1 << -nBits) - 1; e >>= -nBits; nBits += mLen; for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8); if (e === 0) { e = 1 - eBias; } else if (e === eMax) { return m ? NaN : s ? -Infinity : Infinity; } else { m = m + pow(2, mLen); e = e - eBias; } return (s ? -1 : 1) * m * pow(2, e - mLen); } function unpackI32(bytes) { return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0]; } function packI8(it) { return [it & 0xff]; } function packI16(it) { return [it & 0xff, it >> 8 & 0xff]; } function packI32(it) { return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff]; } function packF64(it) { return packIEEE754(it, 52, 8); } function packF32(it) { return packIEEE754(it, 23, 4); } function addGetter(C, key, internal) { dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } }); } function get(view, bytes, index, isLittleEndian) { var numIndex = +index; var intIndex = toIndex(numIndex); if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX); var store = view[$BUFFER]._b; var start = intIndex + view[$OFFSET]; var pack = store.slice(start, start + bytes); return isLittleEndian ? pack : pack.reverse(); } function set(view, bytes, index, conversion, value, isLittleEndian) { var numIndex = +index; var intIndex = toIndex(numIndex); if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX); var store = view[$BUFFER]._b; var start = intIndex + view[$OFFSET]; var pack = conversion(+value); for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1]; } if (!$typed.ABV) { $ArrayBuffer = function ArrayBuffer(length) { anInstance(this, $ArrayBuffer, ARRAY_BUFFER); var byteLength = toIndex(length); this._b = arrayFill.call(new Array(byteLength), 0); this[$LENGTH] = byteLength; }; $DataView = function DataView(buffer, byteOffset, byteLength) { anInstance(this, $DataView, DATA_VIEW); anInstance(buffer, $ArrayBuffer, DATA_VIEW); var bufferLength = buffer[$LENGTH]; var offset = toInteger(byteOffset); if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!'); byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH); this[$BUFFER] = buffer; this[$OFFSET] = offset; this[$LENGTH] = byteLength; }; if (DESCRIPTORS) { addGetter($ArrayBuffer, BYTE_LENGTH, '_l'); addGetter($DataView, BUFFER, '_b'); addGetter($DataView, BYTE_LENGTH, '_l'); addGetter($DataView, BYTE_OFFSET, '_o'); } redefineAll($DataView[PROTOTYPE], { getInt8: function getInt8(byteOffset) { return get(this, 1, byteOffset)[0] << 24 >> 24; }, getUint8: function getUint8(byteOffset) { return get(this, 1, byteOffset)[0]; }, getInt16: function getInt16(byteOffset /* , littleEndian */) { var bytes = get(this, 2, byteOffset, arguments[1]); return (bytes[1] << 8 | bytes[0]) << 16 >> 16; }, getUint16: function getUint16(byteOffset /* , littleEndian */) { var bytes = get(this, 2, byteOffset, arguments[1]); return bytes[1] << 8 | bytes[0]; }, getInt32: function getInt32(byteOffset /* , littleEndian */) { return unpackI32(get(this, 4, byteOffset, arguments[1])); }, getUint32: function getUint32(byteOffset /* , littleEndian */) { return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0; }, getFloat32: function getFloat32(byteOffset /* , littleEndian */) { return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4); }, getFloat64: function getFloat64(byteOffset /* , littleEndian */) { return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8); }, setInt8: function setInt8(byteOffset, value) { set(this, 1, byteOffset, packI8, value); }, setUint8: function setUint8(byteOffset, value) { set(this, 1, byteOffset, packI8, value); }, setInt16: function setInt16(byteOffset, value /* , littleEndian */) { set(this, 2, byteOffset, packI16, value, arguments[2]); }, setUint16: function setUint16(byteOffset, value /* , littleEndian */) { set(this, 2, byteOffset, packI16, value, arguments[2]); }, setInt32: function setInt32(byteOffset, value /* , littleEndian */) { set(this, 4, byteOffset, packI32, value, arguments[2]); }, setUint32: function setUint32(byteOffset, value /* , littleEndian */) { set(this, 4, byteOffset, packI32, value, arguments[2]); }, setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) { set(this, 4, byteOffset, packF32, value, arguments[2]); }, setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) { set(this, 8, byteOffset, packF64, value, arguments[2]); } }); } else { if (!fails(function () { $ArrayBuffer(1); }) || !fails(function () { new $ArrayBuffer(-1); // eslint-disable-line no-new }) || fails(function () { new $ArrayBuffer(); // eslint-disable-line no-new new $ArrayBuffer(1.5); // eslint-disable-line no-new new $ArrayBuffer(NaN); // eslint-disable-line no-new return $ArrayBuffer.name != ARRAY_BUFFER; })) { $ArrayBuffer = function ArrayBuffer(length) { anInstance(this, $ArrayBuffer); return new BaseBuffer(toIndex(length)); }; var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE]; for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) { if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]); } if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer; } // iOS Safari 7.x bug var view = new $DataView(new $ArrayBuffer(2)); var $setInt8 = $DataView[PROTOTYPE].setInt8; view.setInt8(0, 2147483648); view.setInt8(1, 2147483649); if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], { setInt8: function setInt8(byteOffset, value) { $setInt8.call(this, byteOffset, value << 24 >> 24); }, setUint8: function setUint8(byteOffset, value) { $setInt8.call(this, byteOffset, value << 24 >> 24); } }, true); } setToStringTag($ArrayBuffer, ARRAY_BUFFER); setToStringTag($DataView, DATA_VIEW); hide($DataView[PROTOTYPE], $typed.VIEW, true); exports[ARRAY_BUFFER] = $ArrayBuffer; exports[DATA_VIEW] = $DataView; /***/ }), /* 189 */ /***/ (function(module, exports) { // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self // eslint-disable-next-line no-new-func : Function('return this')(); if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef /***/ }), /* 190 */ /***/ (function(module, exports) { module.exports = function (it) { return typeof it === 'object' ? it !== null : typeof it === 'function'; }; /***/ }), /* 191 */ /***/ (function(module, exports, __webpack_require__) { // Thank's IE8 for his funny defineProperty module.exports = !__webpack_require__(245)(function () { return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; }); /***/ }), /* 192 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.JsonHelper = void 0; const Helper_1 = __webpack_require__(7); class JsonHelper { static deepEqual(a, b) { if (a === b) { return true; } if (a === null || b === null) { return false; } // array deepEqual if (a instanceof Array && b instanceof Array && a.length === b.length) { return a["every"]((obj, i) => { return JsonHelper.deepEqual(obj, b[i]); }); } //date deepEqual if (a instanceof Date && b instanceof Date) { return a.getTime() === b.getTime(); } // object deep copy if (typeof a === "object" && typeof b === "object") { let aKeys = Object.keys(a); let bKeys = Object.keys(b); return aKeys.length === bKeys.length && aKeys["every"]((key) => { return Helper_1.Helper.isNotNull(b[key]) && JsonHelper.deepEqual(a[key], b[key]); }); } //else is false (or not handled) return false; } /** * Deepcopies JSON * * @param obj * @returns {*} */ static deepCopy(obj) { // https://stackoverflow.com/questions/4120475/how-to-create-and-clone-a-json-object/17502990#17502990 let i; // basic type deep copy if (Helper_1.Helper.isNull(obj) || typeof obj !== 'object') { return obj; } // array deep copy if (obj instanceof Array) { let cloneA = []; for (i = 0; i < obj.length; ++i) { cloneA[i] = JsonHelper.deepCopy(obj[i]); } return cloneA; } if (obj instanceof Date) { return new Date(obj.getTime()); } // object deep copy let cloneO = {}; for (i in obj) { cloneO[i] = JsonHelper.deepCopy(obj[i]); } return cloneO; } static deepAssign(...objects) { if (objects.length > 0 && Array.isArray(objects)) { const result = []; objects.forEach(arr => result.push(...arr)); return result; } const resultObj = {}; objects.forEach(obj => { for (let i in obj) { if (resultObj[i] && typeof obj[i] === "object" && typeof resultObj[i] === "object") { resultObj[i] = JsonHelper.deepAssign(resultObj[i], obj[i]); } else { resultObj[i] = obj[i]; } } }); return resultObj; } static getDiff(a, b) { const result = { changed: {}, added: {}, removed: [], }; // if (Array.isArray(a) && Array.isArray(b)){ // const lengthA = a.length; // const lengthB = b.length; // // const minLength = Math.min(lengthA, lengthB); // for (let i = 0; i < minLength; i++){ // const // } // } if ((typeof a !== "object" || typeof b !== "object") && (!Array.isArray(a) && !Array.isArray(b))) { if (a === b) { return null; } else { return { value: b }; } } let hasChanged = false; let hasRemoved = false; let hasAdded = false; for (let i in a) { if (i in b) { const newVal = JsonHelper.getDiff(a[i], b[i]); if (newVal !== null) { result.changed[i] = newVal; hasChanged = true; } } else { result.removed.push(i); hasRemoved = true; } } for (let i in b) { if (!(i in a)) { result.added[i] = b[i]; hasAdded = true; } } if (hasRemoved || hasAdded || hasChanged) { return result; } else { return null; } } static applyDiff(obj, diff) { if (!Array.isArray(diff.removed)) { debugger; } Object.keys(diff.changed).forEach(key => { if ("value" in diff.changed[key]) { obj[key] = diff.changed[key].value; } else { obj[key] = JsonHelper.applyDiff(obj[key], diff.changed[key]); } }); Object.keys(diff.added).forEach(key => obj[key] = diff.added[key]); if (Array.isArray(obj)) { diff.removed.sort((a, b) => (parseInt(b) - parseInt(a))).forEach(index => { obj.splice(parseInt(index), 1); }); } else { diff.removed.forEach(rem => delete obj[rem]); } return obj; } } exports.JsonHelper = JsonHelper; //# sourceMappingURL=JsonHelper.js.map /***/ }), /* 193 */ /***/ (function(module, exports) { var g; // This works in non-strict mode g = (function() { return this; })(); try { // This works if eval is allowed (see CSP) g = g || new Function("return this")(); } catch (e) { // This works if the window reference is available if (typeof window === "object") g = window; } // g can still be undefined, but nothing to do about it... // We return undefined, instead of nothing here, so it's // easier to handle this case. if(!global) { ...} module.exports = g; /***/ }), /* 194 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InsertQueryBuilder", function() { return InsertQueryBuilder; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var _QueryBuilder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(40); /* harmony import */ var _util_RandomGenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(62); /* harmony import */ var _result_InsertResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(131); /* harmony import */ var _error_ReturningStatementNotSupportedError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(72); /* harmony import */ var _error_InsertValuesMissingError__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(157); /* harmony import */ var _ReturningResultsEntityUpdator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(120); /* harmony import */ var _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(16); /* harmony import */ var _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(41); /* harmony import */ var _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(8); /* harmony import */ var _entity_schema_EntitySchema__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(74); /** * Allows to build complex sql queries in a fashion way and execute those queries. */ var InsertQueryBuilder = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(InsertQueryBuilder, _super); function InsertQueryBuilder() { return _super !== null && _super.apply(this, arguments) || this; } // ------------------------------------------------------------------------- // Public Implemented Methods // ------------------------------------------------------------------------- /** * Gets generated sql query without parameters being replaced. */ InsertQueryBuilder.prototype.getQuery = function () { var sql = this.createComment(); sql += this.createInsertExpression(); return sql.trim(); }; /** * Executes sql generated by query builder and returns raw database results. */ InsertQueryBuilder.prototype.execute = function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var valueSets, queryRunner, transactionStartedByUs, broadcastResult_1, declareSql, selectOutputSql, returningResultsEntityUpdator, _a, insertSql, parameters, insertResult, statements, _b, broadcastResult_2, error_1, rollbackError_1; var _this = this; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_c) { switch (_c.label) { case 0: valueSets = this.getValueSets(); // console.timeEnd(".value sets"); // If user passed empty array of entities then we don't need to do // anything. // // Fixes GitHub issues #3111 and #5734. If we were to let this through // we would run into problems downstream, like subscribers getting // invoked with the empty array where they expect an entity, and SQL // queries with an empty VALUES clause. if (valueSets.length === 0) return [2 /*return*/, new _result_InsertResult__WEBPACK_IMPORTED_MODULE_4__[/* InsertResult */ "a"]()]; queryRunner = this.obtainQueryRunner(); transactionStartedByUs = false; _c.label = 1; case 1: _c.trys.push([1, 13, 18, 23]); if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3]; return [4 /*yield*/, queryRunner.startTransaction()]; case 2: _c.sent(); transactionStartedByUs = true; _c.label = 3; case 3: if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 5]; broadcastResult_1 = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_10__[/* BroadcasterResult */ "a"](); valueSets.forEach(function (valueSet) { queryRunner.broadcaster.broadcastBeforeInsertEvent(broadcastResult_1, _this.expressionMap.mainAlias.metadata, valueSet); }); if (!(broadcastResult_1.promises.length > 0)) return [3 /*break*/, 5]; return [4 /*yield*/, Promise.all(broadcastResult_1.promises)]; case 4: _c.sent(); _c.label = 5; case 5: declareSql = null; selectOutputSql = null; returningResultsEntityUpdator = new _ReturningResultsEntityUpdator__WEBPACK_IMPORTED_MODULE_7__[/* ReturningResultsEntityUpdator */ "a"](queryRunner, this.expressionMap); if (this.expressionMap.updateEntity === true && this.expressionMap.mainAlias.hasMetadata) { if (!(valueSets.length > 1 && this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* OracleDriver */ "j"])) { this.expressionMap.extraReturningColumns = returningResultsEntityUpdator.getInsertionReturningColumns(); } if (this.expressionMap.extraReturningColumns.length > 0 && this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SqlServerDriver */ "m"]) { declareSql = this.connection.driver.buildTableVariableDeclaration("@OutputTable", this.expressionMap.extraReturningColumns); selectOutputSql = "SELECT * FROM @OutputTable"; } } _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(this.getQueryAndParameters(), 2), insertSql = _a[0], parameters = _a[1]; insertResult = new _result_InsertResult__WEBPACK_IMPORTED_MODULE_4__[/* InsertResult */ "a"](); statements = [declareSql, insertSql, selectOutputSql]; _b = insertResult; return [4 /*yield*/, queryRunner.query(statements.filter(function (sql) { return sql != null; }).join(";\n\n"), parameters)]; case 6: _b.raw = _c.sent(); if (!(this.expressionMap.updateEntity === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 8]; // console.time(".updating entity"); return [4 /*yield*/, returningResultsEntityUpdator.insert(insertResult, valueSets)]; case 7: // console.time(".updating entity"); _c.sent(); _c.label = 8; case 8: if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 10]; broadcastResult_2 = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_10__[/* BroadcasterResult */ "a"](); valueSets.forEach(function (valueSet) { queryRunner.broadcaster.broadcastAfterInsertEvent(broadcastResult_2, _this.expressionMap.mainAlias.metadata, valueSet); }); if (!(broadcastResult_2.promises.length > 0)) return [3 /*break*/, 10]; return [4 /*yield*/, Promise.all(broadcastResult_2.promises)]; case 9: _c.sent(); _c.label = 10; case 10: if (!transactionStartedByUs) return [3 /*break*/, 12]; return [4 /*yield*/, queryRunner.commitTransaction()]; case 11: _c.sent(); _c.label = 12; case 12: // console.timeEnd(".commit"); return [2 /*return*/, insertResult]; case 13: error_1 = _c.sent(); if (!transactionStartedByUs) return [3 /*break*/, 17]; _c.label = 14; case 14: _c.trys.push([14, 16, , 17]); return [4 /*yield*/, queryRunner.rollbackTransaction()]; case 15: _c.sent(); return [3 /*break*/, 17]; case 16: rollbackError_1 = _c.sent(); return [3 /*break*/, 17]; case 17: throw error_1; case 18: if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 20]; return [4 /*yield*/, queryRunner.release()]; case 19: _c.sent(); _c.label = 20; case 20: if (!(this.connection.driver instanceof _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_9__[/* SqljsDriver */ "a"] && !queryRunner.isTransactionActive)) return [3 /*break*/, 22]; return [4 /*yield*/, this.connection.driver.autoSave()]; case 21: _c.sent(); _c.label = 22; case 22: return [7 /*endfinally*/]; case 23: return [2 /*return*/]; } }); }); }; // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Specifies INTO which entity's table insertion will be executed. */ InsertQueryBuilder.prototype.into = function (entityTarget, columns) { entityTarget = entityTarget instanceof _entity_schema_EntitySchema__WEBPACK_IMPORTED_MODULE_11__[/* EntitySchema */ "a"] ? entityTarget.options.name : entityTarget; var mainAlias = this.createFromAlias(entityTarget); this.expressionMap.setMainAlias(mainAlias); this.expressionMap.insertColumns = columns || []; return this; }; /** * Values needs to be inserted into table. */ InsertQueryBuilder.prototype.values = function (values) { this.expressionMap.valuesSet = values; return this; }; /** * Optional returning/output clause. */ InsertQueryBuilder.prototype.output = function (output) { return this.returning(output); }; /** * Optional returning/output clause. */ InsertQueryBuilder.prototype.returning = function (returning) { // not all databases support returning/output cause if (!this.connection.driver.isReturningSqlSupported()) throw new _error_ReturningStatementNotSupportedError__WEBPACK_IMPORTED_MODULE_5__[/* ReturningStatementNotSupportedError */ "a"](); this.expressionMap.returning = returning; return this; }; /** * Indicates if entity must be updated after insertion operations. * This may produce extra query or use RETURNING / OUTPUT statement (depend on database). * Enabled by default. */ InsertQueryBuilder.prototype.updateEntity = function (enabled) { this.expressionMap.updateEntity = enabled; return this; }; /** * Adds additional ON CONFLICT statement supported in postgres and cockroach. */ InsertQueryBuilder.prototype.onConflict = function (statement) { this.expressionMap.onConflict = statement; return this; }; /** * Adds additional ignore statement supported in databases. */ InsertQueryBuilder.prototype.orIgnore = function (statement) { if (statement === void 0) { statement = true; } this.expressionMap.onIgnore = statement; return this; }; /** * Adds additional update statement supported in databases. */ InsertQueryBuilder.prototype.orUpdate = function (statement) { var _this = this; this.expressionMap.onUpdate = {}; if (statement && Array.isArray(statement.conflict_target)) this.expressionMap.onUpdate.conflict = " ( " + statement.conflict_target.map(function (columnName) { return _this.escape(columnName); }).join(", ") + " ) "; if (statement && typeof statement.conflict_target === "string") this.expressionMap.onUpdate.conflict = " ON CONSTRAINT " + this.escape(statement.conflict_target) + " "; if (statement && Array.isArray(statement.columns)) this.expressionMap.onUpdate.columns = statement.columns.map(function (column) { return _this.escape(column) + " = :" + column; }).join(", "); if (statement && Array.isArray(statement.overwrite)) { if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* MysqlDriver */ "i"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* AuroraDataApiDriver */ "a"]) { this.expressionMap.onUpdate.overwrite = statement.overwrite.map(function (column) { return column + " = VALUES(" + column + ")"; }).join(", "); } else if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* PostgresDriver */ "k"] || this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_8__[/* AbstractSqliteDriver */ "a"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* CockroachDriver */ "d"]) { this.expressionMap.onUpdate.overwrite = statement.overwrite.map(function (column) { return _this.escape(column) + " = EXCLUDED." + _this.escape(column); }).join(", "); } } return this; }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Creates INSERT express used to perform insert query. */ InsertQueryBuilder.prototype.createInsertExpression = function () { var _this = this; var tableName = this.getTableName(this.getMainTableName()); var valuesExpression = this.createValuesExpression(); // its important to get values before returning expression because oracle rely on native parameters and ordering of them is important var returningExpression = (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* OracleDriver */ "j"] && this.getValueSets().length > 1) ? null : this.createReturningExpression(); // oracle doesnt support returning with multi-row insert var columnsExpression = this.createColumnNamesExpression(); var query = "INSERT "; if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* MysqlDriver */ "i"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* AuroraDataApiDriver */ "a"]) { query += "" + (this.expressionMap.onIgnore ? " IGNORE " : ""); } query += "INTO " + tableName; // add columns expression if (columnsExpression) { query += "(" + columnsExpression + ")"; } else { if (!valuesExpression && (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* MysqlDriver */ "i"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* AuroraDataApiDriver */ "a"])) // special syntax for mysql DEFAULT VALUES insertion query += "()"; } // add OUTPUT expression if (returningExpression && this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SqlServerDriver */ "m"]) { query += " OUTPUT " + returningExpression; } // add VALUES expression if (valuesExpression) { if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* OracleDriver */ "j"] && this.getValueSets().length > 1) { query += " " + valuesExpression; } else { query += " VALUES " + valuesExpression; } } else { if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* MysqlDriver */ "i"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* AuroraDataApiDriver */ "a"]) { // special syntax for mysql DEFAULT VALUES insertion query += " VALUES ()"; } else { query += " DEFAULT VALUES"; } } if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* PostgresDriver */ "k"] || this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_8__[/* AbstractSqliteDriver */ "a"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* CockroachDriver */ "d"]) { query += "" + (this.expressionMap.onIgnore ? " ON CONFLICT DO NOTHING " : ""); query += "" + (this.expressionMap.onConflict ? " ON CONFLICT " + this.expressionMap.onConflict : ""); if (this.expressionMap.onUpdate) { var _a = this.expressionMap.onUpdate, overwrite = _a.overwrite, columns = _a.columns, conflict = _a.conflict; query += "" + (columns ? " ON CONFLICT " + conflict + " DO UPDATE SET " + columns : ""); query += "" + (overwrite ? " ON CONFLICT " + conflict + " DO UPDATE SET " + overwrite : ""); } } else if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* MysqlDriver */ "i"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* AuroraDataApiDriver */ "a"]) { if (this.expressionMap.onUpdate) { var _b = this.expressionMap.onUpdate, overwrite = _b.overwrite, columns = _b.columns; query += "" + (columns ? " ON DUPLICATE KEY UPDATE " + columns : ""); query += "" + (overwrite ? " ON DUPLICATE KEY UPDATE " + overwrite : ""); } } // add RETURNING expression if (returningExpression && (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* PostgresDriver */ "k"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* OracleDriver */ "j"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* CockroachDriver */ "d"])) { query += " RETURNING " + returningExpression; } // Inserting a specific value for an auto-increment primary key in mssql requires enabling IDENTITY_INSERT // IDENTITY_INSERT can only be enabled for tables where there is an IDENTITY column and only if there is a value to be inserted (i.e. supplying DEFAULT is prohibited if IDENTITY_INSERT is enabled) if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SqlServerDriver */ "m"] && this.expressionMap.mainAlias.hasMetadata && this.expressionMap.mainAlias.metadata.columns .filter(function (column) { return _this.expressionMap.insertColumns.length > 0 ? _this.expressionMap.insertColumns.indexOf(column.propertyPath) !== -1 : column.isInsert; }) .some(function (column) { return _this.isOverridingAutoIncrementBehavior(column); })) { query = "SET IDENTITY_INSERT " + tableName + " ON; " + query + "; SET IDENTITY_INSERT " + tableName + " OFF"; } return query; }; /** * Gets list of columns where values must be inserted to. */ InsertQueryBuilder.prototype.getInsertedColumns = function () { var _this = this; if (!this.expressionMap.mainAlias.hasMetadata) return []; return this.expressionMap.mainAlias.metadata.columns.filter(function (column) { // if user specified list of columns he wants to insert to, then we filter only them if (_this.expressionMap.insertColumns.length) return _this.expressionMap.insertColumns.indexOf(column.propertyPath) !== -1; // skip columns the user doesn't want included by default if (!column.isInsert) { return false; } // if user did not specified such list then return all columns except auto-increment one // for Oracle we return auto-increment column as well because Oracle does not support DEFAULT VALUES expression if (column.isGenerated && column.generationStrategy === "increment" && !(_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* OracleDriver */ "j"]) && !(_this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_8__[/* AbstractSqliteDriver */ "a"]) && !(_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* MysqlDriver */ "i"]) && !(_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* AuroraDataApiDriver */ "a"]) && !(_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SqlServerDriver */ "m"] && _this.isOverridingAutoIncrementBehavior(column))) return false; return true; }); }; /** * Creates a columns string where values must be inserted to for INSERT INTO expression. */ InsertQueryBuilder.prototype.createColumnNamesExpression = function () { var _this = this; var columns = this.getInsertedColumns(); if (columns.length > 0) return columns.map(function (column) { return _this.escape(column.databaseName); }).join(", "); // in the case if there are no insert columns specified and table without metadata used // we get columns from the inserted value map, in the case if only one inserted map is specified if (!this.expressionMap.mainAlias.hasMetadata && !this.expressionMap.insertColumns.length) { var valueSets = this.getValueSets(); if (valueSets.length === 1) return Object.keys(valueSets[0]).map(function (columnName) { return _this.escape(columnName); }).join(", "); } // get a table name and all column database names return this.expressionMap.insertColumns.map(function (columnName) { return _this.escape(columnName); }).join(", "); }; /** * Creates list of values needs to be inserted in the VALUES expression. */ InsertQueryBuilder.prototype.createValuesExpression = function () { var _this = this; var valueSets = this.getValueSets(); var columns = this.getInsertedColumns(); // if column metadatas are given then apply all necessary operations with values if (columns.length > 0) { var expression_1 = ""; var parametersCount_1 = Object.keys(this.expressionMap.nativeParameters).length; valueSets.forEach(function (valueSet, valueSetIndex) { columns.forEach(function (column, columnIndex) { if (columnIndex === 0) { if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* OracleDriver */ "j"] && valueSets.length > 1) { expression_1 += " SELECT "; } else { expression_1 += "("; } } var paramName = "i" + valueSetIndex + "_" + column.databaseName; // extract real value from the entity var value = column.getEntityValue(valueSet); // if column is relational and value is an object then get real referenced column value from this object // for example column value is { question: { id: 1 } }, value will be equal to { id: 1 } // and we extract "1" from this object /*if (column.referencedColumn && value instanceof Object && !(value instanceof Function)) { // todo: check if we still need it since getEntityValue already has similar code value = column.referencedColumn.getEntityValue(value); }*/ if (!(value instanceof Function)) { // make sure our value is normalized by a driver value = _this.connection.driver.preparePersistentValue(value, column); } // newly inserted entities always have a version equal to 1 (first version) // also, user-specified version must be empty if (column.isVersion && value === undefined) { expression_1 += "1"; // } else if (column.isNestedSetLeft) { // const tableName = this.connection.driver.escape(column.entityMetadata.tablePath); // const rightColumnName = this.connection.driver.escape(column.entityMetadata.nestedSetRightColumn!.databaseName); // const subQuery = `(SELECT c.max + 1 FROM (SELECT MAX(${rightColumnName}) as max from ${tableName}) c)`; // expression += subQuery; // // } else if (column.isNestedSetRight) { // const tableName = this.connection.driver.escape(column.entityMetadata.tablePath); // const rightColumnName = this.connection.driver.escape(column.entityMetadata.nestedSetRightColumn!.databaseName); // const subQuery = `(SELECT c.max + 2 FROM (SELECT MAX(${rightColumnName}) as max from ${tableName}) c)`; // expression += subQuery; } else if (column.isDiscriminator) { _this.expressionMap.nativeParameters["discriminator_value_" + parametersCount_1] = _this.expressionMap.mainAlias.metadata.discriminatorValue; expression_1 += _this.connection.driver.createParameter("discriminator_value_" + parametersCount_1, parametersCount_1); parametersCount_1++; // return "1"; // for create and update dates we insert current date // no, we don't do it because this constant is already in "default" value of the column // with extended timestamp functionality, like CURRENT_TIMESTAMP(6) for example // } else if (column.isCreateDate || column.isUpdateDate) { // return "CURRENT_TIMESTAMP"; // if column is generated uuid and database does not support its generation and custom generated value was not provided by a user - we generate a new uuid value for insertion } else if (column.isGenerated && column.generationStrategy === "uuid" && !_this.connection.driver.isUUIDGenerationSupported() && value === undefined) { var paramName_1 = "uuid_" + column.databaseName + valueSetIndex; value = _util_RandomGenerator__WEBPACK_IMPORTED_MODULE_3__[/* RandomGenerator */ "a"].uuid4(); _this.expressionMap.nativeParameters[paramName_1] = value; expression_1 += _this.connection.driver.createParameter(paramName_1, parametersCount_1); parametersCount_1++; // if value for this column was not provided then insert default value } else if (value === undefined) { if ((_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* OracleDriver */ "j"] && valueSets.length > 1) || _this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_8__[/* AbstractSqliteDriver */ "a"] || _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SapDriver */ "l"]) { // unfortunately sqlite does not support DEFAULT expression in INSERT queries if (column.default !== undefined && column.default !== null) { // try to use default defined in the column expression_1 += _this.connection.driver.normalizeDefault(column); } else { expression_1 += "NULL"; // otherwise simply use NULL and pray if column is nullable } } else { expression_1 += "DEFAULT"; } // support for SQL expressions in queries } else if (value instanceof Function) { expression_1 += value(); // just any other regular value } else { if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SqlServerDriver */ "m"]) value = _this.connection.driver.parametrizeValue(column, value); // we need to store array values in a special class to make sure parameter replacement will work correctly // if (value instanceof Array) // value = new ArrayParameter(value); _this.expressionMap.nativeParameters[paramName] = value; if ((_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* MysqlDriver */ "i"] || _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* AuroraDataApiDriver */ "a"]) && _this.connection.driver.spatialTypes.indexOf(column.type) !== -1) { var useLegacy = _this.connection.driver.options.legacySpatialSupport; var geomFromText = useLegacy ? "GeomFromText" : "ST_GeomFromText"; if (column.srid != null) { expression_1 += geomFromText + "(" + _this.connection.driver.createParameter(paramName, parametersCount_1) + ", " + column.srid + ")"; } else { expression_1 += geomFromText + "(" + _this.connection.driver.createParameter(paramName, parametersCount_1) + ")"; } } else if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* PostgresDriver */ "k"] && _this.connection.driver.spatialTypes.indexOf(column.type) !== -1) { if (column.srid != null) { expression_1 += "ST_SetSRID(ST_GeomFromGeoJSON(" + _this.connection.driver.createParameter(paramName, parametersCount_1) + "), " + column.srid + ")::" + column.type; } else { expression_1 += "ST_GeomFromGeoJSON(" + _this.connection.driver.createParameter(paramName, parametersCount_1) + ")::" + column.type; } } else if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SqlServerDriver */ "m"] && _this.connection.driver.spatialTypes.indexOf(column.type) !== -1) { expression_1 += column.type + "::STGeomFromText(" + _this.connection.driver.createParameter(paramName, parametersCount_1) + ", " + (column.srid || "0") + ")"; } else { expression_1 += _this.connection.driver.createParameter(paramName, parametersCount_1); } parametersCount_1++; } if (columnIndex === columns.length - 1) { if (valueSetIndex === valueSets.length - 1) { if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* OracleDriver */ "j"] && valueSets.length > 1) { expression_1 += " FROM DUAL "; } else { expression_1 += ")"; } } else { if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* OracleDriver */ "j"] && valueSets.length > 1) { expression_1 += " FROM DUAL UNION ALL "; } else { expression_1 += "), "; } } } else { expression_1 += ", "; } }); }); if (expression_1 === "()") return ""; return expression_1; } else { // for tables without metadata // get values needs to be inserted var expression_2 = ""; var parametersCount_2 = Object.keys(this.expressionMap.nativeParameters).length; valueSets.forEach(function (valueSet, insertionIndex) { var columns = Object.keys(valueSet); columns.forEach(function (columnName, columnIndex) { if (columnIndex === 0) { expression_2 += "("; } var paramName = "i" + insertionIndex + "_" + columnName; var value = valueSet[columnName]; // support for SQL expressions in queries if (value instanceof Function) { expression_2 += value(); // if value for this column was not provided then insert default value } else if (value === undefined) { if (_this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_8__[/* AbstractSqliteDriver */ "a"] || _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SapDriver */ "l"]) { expression_2 += "NULL"; } else { expression_2 += "DEFAULT"; } // just any other regular value } else { _this.expressionMap.nativeParameters[paramName] = value; expression_2 += _this.connection.driver.createParameter(paramName, parametersCount_2); parametersCount_2++; } if (columnIndex === Object.keys(valueSet).length - 1) { if (insertionIndex === valueSets.length - 1) { expression_2 += ")"; } else { expression_2 += "), "; } } else { expression_2 += ", "; } }); }); if (expression_2 === "()") return ""; return expression_2; } }; /** * Gets array of values need to be inserted into the target table. */ InsertQueryBuilder.prototype.getValueSets = function () { if (Array.isArray(this.expressionMap.valuesSet)) return this.expressionMap.valuesSet; if (this.expressionMap.valuesSet instanceof Object) return [this.expressionMap.valuesSet]; throw new _error_InsertValuesMissingError__WEBPACK_IMPORTED_MODULE_6__[/* InsertValuesMissingError */ "a"](); }; /** * Checks if column is an auto-generated primary key, but the current insertion specifies a value for it. * * @param column */ InsertQueryBuilder.prototype.isOverridingAutoIncrementBehavior = function (column) { return column.isPrimary && column.isGenerated && column.generationStrategy === "increment" && this.getValueSets().some(function (valueSet) { return column.getEntityValue(valueSet) !== undefined && column.getEntityValue(valueSet) !== null; }); }; return InsertQueryBuilder; }(_QueryBuilder__WEBPACK_IMPORTED_MODULE_2__[/* QueryBuilder */ "a"])); //# sourceMappingURL=InsertQueryBuilder.js.map /***/ }), /* 195 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UpdateQueryBuilder", function() { return UpdateQueryBuilder; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var _QueryBuilder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(40); /* harmony import */ var _metadata_EntityMetadata__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(35); /* harmony import */ var _result_UpdateResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(115); /* harmony import */ var _error_ReturningStatementNotSupportedError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(72); /* harmony import */ var _ReturningResultsEntityUpdator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(120); /* harmony import */ var _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(41); /* harmony import */ var _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(8); /* harmony import */ var _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(16); /* harmony import */ var _error_LimitOnUpdateNotSupportedError__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(116); /* harmony import */ var _error_UpdateValuesMissingError__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(101); /* harmony import */ var _error_EntityColumnNotFound__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(114); /** * Allows to build complex sql queries in a fashion way and execute those queries. */ var UpdateQueryBuilder = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(UpdateQueryBuilder, _super); // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function UpdateQueryBuilder(connectionOrQueryBuilder, queryRunner) { var _this = _super.call(this, connectionOrQueryBuilder, queryRunner) || this; _this.expressionMap.aliasNamePrefixingEnabled = false; return _this; } // ------------------------------------------------------------------------- // Public Implemented Methods // ------------------------------------------------------------------------- /** * Gets generated sql query without parameters being replaced. */ UpdateQueryBuilder.prototype.getQuery = function () { var sql = this.createComment(); sql += this.createUpdateExpression(); sql += this.createOrderByExpression(); sql += this.createLimitExpression(); return sql.trim(); }; /** * Executes sql generated by query builder and returns raw database results. */ UpdateQueryBuilder.prototype.execute = function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var queryRunner, transactionStartedByUs, broadcastResult, declareSql, selectOutputSql, returningResultsEntityUpdator, _a, updateSql, parameters, updateResult, statements, result, broadcastResult, error_1, rollbackError_1; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: queryRunner = this.obtainQueryRunner(); transactionStartedByUs = false; _b.label = 1; case 1: _b.trys.push([1, 13, 18, 23]); if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3]; return [4 /*yield*/, queryRunner.startTransaction()]; case 2: _b.sent(); transactionStartedByUs = true; _b.label = 3; case 3: if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 5]; broadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_8__[/* BroadcasterResult */ "a"](); queryRunner.broadcaster.broadcastBeforeUpdateEvent(broadcastResult, this.expressionMap.mainAlias.metadata, this.expressionMap.valuesSet); if (!(broadcastResult.promises.length > 0)) return [3 /*break*/, 5]; return [4 /*yield*/, Promise.all(broadcastResult.promises)]; case 4: _b.sent(); _b.label = 5; case 5: declareSql = null; selectOutputSql = null; returningResultsEntityUpdator = new _ReturningResultsEntityUpdator__WEBPACK_IMPORTED_MODULE_6__[/* ReturningResultsEntityUpdator */ "a"](queryRunner, this.expressionMap); if (this.expressionMap.updateEntity === true && this.expressionMap.mainAlias.hasMetadata && this.expressionMap.whereEntities.length > 0) { this.expressionMap.extraReturningColumns = returningResultsEntityUpdator.getUpdationReturningColumns(); if (this.expressionMap.extraReturningColumns.length > 0 && this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SqlServerDriver */ "m"]) { declareSql = this.connection.driver.buildTableVariableDeclaration("@OutputTable", this.expressionMap.extraReturningColumns); selectOutputSql = "SELECT * FROM @OutputTable"; } } _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(this.getQueryAndParameters(), 2), updateSql = _a[0], parameters = _a[1]; updateResult = new _result_UpdateResult__WEBPACK_IMPORTED_MODULE_4__[/* UpdateResult */ "a"](); statements = [declareSql, updateSql, selectOutputSql]; return [4 /*yield*/, queryRunner.query(statements.filter(function (sql) { return sql != null; }).join(";\n\n"), parameters)]; case 6: result = _b.sent(); if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* PostgresDriver */ "k"]) { updateResult.raw = result[0]; updateResult.affected = result[1]; } else if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* MysqlDriver */ "i"]) { updateResult.raw = result; updateResult.affected = result.affectedRows; } else if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* AuroraDataApiDriver */ "a"]) { updateResult.raw = result; updateResult.affected = result.numberOfRecordsUpdated; } else if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* BetterSqlite3Driver */ "c"]) { // only works for better-sqlite3 updateResult.raw = result; updateResult.affected = result.changes; } else { updateResult.raw = result; } if (!(this.expressionMap.updateEntity === true && this.expressionMap.mainAlias.hasMetadata && this.expressionMap.whereEntities.length > 0)) return [3 /*break*/, 8]; return [4 /*yield*/, returningResultsEntityUpdator.update(updateResult, this.expressionMap.whereEntities)]; case 7: _b.sent(); _b.label = 8; case 8: if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 10]; broadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_8__[/* BroadcasterResult */ "a"](); queryRunner.broadcaster.broadcastAfterUpdateEvent(broadcastResult, this.expressionMap.mainAlias.metadata); if (!(broadcastResult.promises.length > 0)) return [3 /*break*/, 10]; return [4 /*yield*/, Promise.all(broadcastResult.promises)]; case 9: _b.sent(); _b.label = 10; case 10: if (!transactionStartedByUs) return [3 /*break*/, 12]; return [4 /*yield*/, queryRunner.commitTransaction()]; case 11: _b.sent(); _b.label = 12; case 12: return [2 /*return*/, updateResult]; case 13: error_1 = _b.sent(); if (!transactionStartedByUs) return [3 /*break*/, 17]; _b.label = 14; case 14: _b.trys.push([14, 16, , 17]); return [4 /*yield*/, queryRunner.rollbackTransaction()]; case 15: _b.sent(); return [3 /*break*/, 17]; case 16: rollbackError_1 = _b.sent(); return [3 /*break*/, 17]; case 17: throw error_1; case 18: if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 20]; return [4 /*yield*/, queryRunner.release()]; case 19: _b.sent(); _b.label = 20; case 20: if (!(this.connection.driver instanceof _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_7__[/* SqljsDriver */ "a"] && !queryRunner.isTransactionActive)) return [3 /*break*/, 22]; return [4 /*yield*/, this.connection.driver.autoSave()]; case 21: _b.sent(); _b.label = 22; case 22: return [7 /*endfinally*/]; case 23: return [2 /*return*/]; } }); }); }; // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Values needs to be updated. */ UpdateQueryBuilder.prototype.set = function (values) { this.expressionMap.valuesSet = values; return this; }; /** * Sets WHERE condition in the query builder. * If you had previously WHERE expression defined, * calling this function will override previously set WHERE conditions. * Additionally you can add parameters used in where expression. */ UpdateQueryBuilder.prototype.where = function (where, parameters) { this.expressionMap.wheres = []; // don't move this block below since computeWhereParameter can add where expressions var condition = this.computeWhereParameter(where); if (condition) this.expressionMap.wheres = [{ type: "simple", condition: condition }]; if (parameters) this.setParameters(parameters); return this; }; /** * Adds new AND WHERE condition in the query builder. * Additionally you can add parameters used in where expression. */ UpdateQueryBuilder.prototype.andWhere = function (where, parameters) { this.expressionMap.wheres.push({ type: "and", condition: this.computeWhereParameter(where) }); if (parameters) this.setParameters(parameters); return this; }; /** * Adds new OR WHERE condition in the query builder. * Additionally you can add parameters used in where expression. */ UpdateQueryBuilder.prototype.orWhere = function (where, parameters) { this.expressionMap.wheres.push({ type: "or", condition: this.computeWhereParameter(where) }); if (parameters) this.setParameters(parameters); return this; }; /** * Adds new AND WHERE with conditions for the given ids. */ UpdateQueryBuilder.prototype.whereInIds = function (ids) { return this.where(this.createWhereIdsExpression(ids)); }; /** * Adds new AND WHERE with conditions for the given ids. */ UpdateQueryBuilder.prototype.andWhereInIds = function (ids) { return this.andWhere(this.createWhereIdsExpression(ids)); }; /** * Adds new OR WHERE with conditions for the given ids. */ UpdateQueryBuilder.prototype.orWhereInIds = function (ids) { return this.orWhere(this.createWhereIdsExpression(ids)); }; /** * Optional returning/output clause. */ UpdateQueryBuilder.prototype.output = function (output) { return this.returning(output); }; /** * Optional returning/output clause. */ UpdateQueryBuilder.prototype.returning = function (returning) { // not all databases support returning/output cause if (!this.connection.driver.isReturningSqlSupported()) throw new _error_ReturningStatementNotSupportedError__WEBPACK_IMPORTED_MODULE_5__[/* ReturningStatementNotSupportedError */ "a"](); this.expressionMap.returning = returning; return this; }; /** * Sets ORDER BY condition in the query builder. * If you had previously ORDER BY expression defined, * calling this function will override previously set ORDER BY conditions. */ UpdateQueryBuilder.prototype.orderBy = function (sort, order, nulls) { var _a, _b; if (order === void 0) { order = "ASC"; } if (sort) { if (sort instanceof Object) { this.expressionMap.orderBys = sort; } else { if (nulls) { this.expressionMap.orderBys = (_a = {}, _a[sort] = { order: order, nulls: nulls }, _a); } else { this.expressionMap.orderBys = (_b = {}, _b[sort] = order, _b); } } } else { this.expressionMap.orderBys = {}; } return this; }; /** * Adds ORDER BY condition in the query builder. */ UpdateQueryBuilder.prototype.addOrderBy = function (sort, order, nulls) { if (order === void 0) { order = "ASC"; } if (nulls) { this.expressionMap.orderBys[sort] = { order: order, nulls: nulls }; } else { this.expressionMap.orderBys[sort] = order; } return this; }; /** * Sets LIMIT - maximum number of rows to be selected. */ UpdateQueryBuilder.prototype.limit = function (limit) { this.expressionMap.limit = limit; return this; }; /** * Indicates if entity must be updated after update operation. * This may produce extra query or use RETURNING / OUTPUT statement (depend on database). * Enabled by default. */ UpdateQueryBuilder.prototype.whereEntity = function (entity) { var _this = this; if (!this.expressionMap.mainAlias.hasMetadata) throw new Error(".whereEntity method can only be used on queries which update real entity table."); this.expressionMap.wheres = []; var entities = Array.isArray(entity) ? entity : [entity]; entities.forEach(function (entity) { var entityIdMap = _this.expressionMap.mainAlias.metadata.getEntityIdMap(entity); if (!entityIdMap) throw new Error("Provided entity does not have ids set, cannot perform operation."); _this.orWhereInIds(entityIdMap); }); this.expressionMap.whereEntities = entities; return this; }; /** * Indicates if entity must be updated after update operation. * This may produce extra query or use RETURNING / OUTPUT statement (depend on database). * Enabled by default. */ UpdateQueryBuilder.prototype.updateEntity = function (enabled) { this.expressionMap.updateEntity = enabled; return this; }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Creates UPDATE express used to perform insert query. */ UpdateQueryBuilder.prototype.createUpdateExpression = function () { var _this = this; var valuesSet = this.getValueSet(); var metadata = this.expressionMap.mainAlias.hasMetadata ? this.expressionMap.mainAlias.metadata : undefined; // prepare columns and values to be updated var updateColumnAndValues = []; var updatedColumns = []; var newParameters = {}; var parametersCount = this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* MysqlDriver */ "i"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* AuroraDataApiDriver */ "a"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* OracleDriver */ "j"] || this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_9__[/* AbstractSqliteDriver */ "a"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SapDriver */ "l"] ? 0 : Object.keys(this.expressionMap.nativeParameters).length; if (metadata) { _metadata_EntityMetadata__WEBPACK_IMPORTED_MODULE_3__[/* EntityMetadata */ "a"].createPropertyPath(metadata, valuesSet).forEach(function (propertyPath) { // todo: make this and other query builder to work with properly with tables without metadata var columns = metadata.findColumnsWithPropertyPath(propertyPath); if (columns.length <= 0) { throw new _error_EntityColumnNotFound__WEBPACK_IMPORTED_MODULE_12__[/* EntityColumnNotFound */ "a"](propertyPath); } columns.forEach(function (column) { if (!column.isUpdate) { return; } updatedColumns.push(column); var paramName = "upd_" + column.databaseName; // var value = column.getEntityValue(valuesSet); if (column.referencedColumn && value instanceof Object) { value = column.referencedColumn.getEntityValue(value); } else if (!(value instanceof Function)) { value = _this.connection.driver.preparePersistentValue(value, column); } // todo: duplication zone if (value instanceof Function) { // support for SQL expressions in update query updateColumnAndValues.push(_this.escape(column.databaseName) + " = " + value()); } else if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SapDriver */ "l"] && value === null) { updateColumnAndValues.push(_this.escape(column.databaseName) + " = NULL"); } else { if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SqlServerDriver */ "m"]) { value = _this.connection.driver.parametrizeValue(column, value); // } else if (value instanceof Array) { // value = new ArrayParameter(value); } if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* MysqlDriver */ "i"] || _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* AuroraDataApiDriver */ "a"] || _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* OracleDriver */ "j"] || _this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_9__[/* AbstractSqliteDriver */ "a"] || _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SapDriver */ "l"]) { newParameters[paramName] = value; } else { _this.expressionMap.nativeParameters[paramName] = value; } var expression = null; if ((_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* MysqlDriver */ "i"] || _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* AuroraDataApiDriver */ "a"]) && _this.connection.driver.spatialTypes.indexOf(column.type) !== -1) { var useLegacy = _this.connection.driver.options.legacySpatialSupport; var geomFromText = useLegacy ? "GeomFromText" : "ST_GeomFromText"; if (column.srid != null) { expression = geomFromText + "(" + _this.connection.driver.createParameter(paramName, parametersCount) + ", " + column.srid + ")"; } else { expression = geomFromText + "(" + _this.connection.driver.createParameter(paramName, parametersCount) + ")"; } } else if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* PostgresDriver */ "k"] && _this.connection.driver.spatialTypes.indexOf(column.type) !== -1) { if (column.srid != null) { expression = "ST_SetSRID(ST_GeomFromGeoJSON(" + _this.connection.driver.createParameter(paramName, parametersCount) + "), " + column.srid + ")::" + column.type; } else { expression = "ST_GeomFromGeoJSON(" + _this.connection.driver.createParameter(paramName, parametersCount) + ")::" + column.type; } } else if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SqlServerDriver */ "m"] && _this.connection.driver.spatialTypes.indexOf(column.type) !== -1) { expression = column.type + "::STGeomFromText(" + _this.connection.driver.createParameter(paramName, parametersCount) + ", " + (column.srid || "0") + ")"; } else { expression = _this.connection.driver.createParameter(paramName, parametersCount); } updateColumnAndValues.push(_this.escape(column.databaseName) + " = " + expression); parametersCount++; } }); }); if (metadata.versionColumn && updatedColumns.indexOf(metadata.versionColumn) === -1) updateColumnAndValues.push(this.escape(metadata.versionColumn.databaseName) + " = " + this.escape(metadata.versionColumn.databaseName) + " + 1"); if (metadata.updateDateColumn && updatedColumns.indexOf(metadata.updateDateColumn) === -1) updateColumnAndValues.push(this.escape(metadata.updateDateColumn.databaseName) + " = CURRENT_TIMESTAMP"); // todo: fix issue with CURRENT_TIMESTAMP(6) being used, can "DEFAULT" be used?! } else { Object.keys(valuesSet).map(function (key) { var value = valuesSet[key]; // todo: duplication zone if (value instanceof Function) { // support for SQL expressions in update query updateColumnAndValues.push(_this.escape(key) + " = " + value()); } else if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SapDriver */ "l"] && value === null) { updateColumnAndValues.push(_this.escape(key) + " = NULL"); } else { // we need to store array values in a special class to make sure parameter replacement will work correctly // if (value instanceof Array) // value = new ArrayParameter(value); if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* MysqlDriver */ "i"] || _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* AuroraDataApiDriver */ "a"] || _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* OracleDriver */ "j"] || _this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_9__[/* AbstractSqliteDriver */ "a"] || _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SapDriver */ "l"]) { newParameters[key] = value; } else { _this.expressionMap.nativeParameters[key] = value; } updateColumnAndValues.push(_this.escape(key) + " = " + _this.connection.driver.createParameter(key, parametersCount)); parametersCount++; } }); } if (updateColumnAndValues.length <= 0) { throw new _error_UpdateValuesMissingError__WEBPACK_IMPORTED_MODULE_11__[/* UpdateValuesMissingError */ "a"](); } // we re-write parameters this way because we want our "UPDATE ... SET" parameters to be first in the list of "nativeParameters" // because some drivers like mysql depend on order of parameters if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* MysqlDriver */ "i"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* AuroraDataApiDriver */ "a"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* OracleDriver */ "j"] || this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_9__[/* AbstractSqliteDriver */ "a"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SapDriver */ "l"]) { this.expressionMap.nativeParameters = Object.assign(newParameters, this.expressionMap.nativeParameters); } // get a table name and all column database names var whereExpression = this.createWhereExpression(); var returningExpression = this.createReturningExpression(); // generate and return sql update query if (returningExpression && (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* PostgresDriver */ "k"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* OracleDriver */ "j"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* CockroachDriver */ "d"])) { return "UPDATE " + this.getTableName(this.getMainTableName()) + " SET " + updateColumnAndValues.join(", ") + whereExpression + " RETURNING " + returningExpression; } else if (returningExpression && this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SqlServerDriver */ "m"]) { return "UPDATE " + this.getTableName(this.getMainTableName()) + " SET " + updateColumnAndValues.join(", ") + " OUTPUT " + returningExpression + whereExpression; } else { return "UPDATE " + this.getTableName(this.getMainTableName()) + " SET " + updateColumnAndValues.join(", ") + whereExpression; // todo: how do we replace aliases in where to nothing? } }; /** * Creates "ORDER BY" part of SQL query. */ UpdateQueryBuilder.prototype.createOrderByExpression = function () { var _this = this; var orderBys = this.expressionMap.orderBys; if (Object.keys(orderBys).length > 0) return " ORDER BY " + Object.keys(orderBys) .map(function (columnName) { if (typeof orderBys[columnName] === "string") { return _this.replacePropertyNames(columnName) + " " + orderBys[columnName]; } else { return _this.replacePropertyNames(columnName) + " " + orderBys[columnName].order + " " + orderBys[columnName].nulls; } }) .join(", "); return ""; }; /** * Creates "LIMIT" parts of SQL query. */ UpdateQueryBuilder.prototype.createLimitExpression = function () { var limit = this.expressionMap.limit; if (limit) { if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* MysqlDriver */ "i"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* AuroraDataApiDriver */ "a"]) { return " LIMIT " + limit; } else { throw new _error_LimitOnUpdateNotSupportedError__WEBPACK_IMPORTED_MODULE_10__[/* LimitOnUpdateNotSupportedError */ "a"](); } } return ""; }; /** * Gets array of values need to be inserted into the target table. */ UpdateQueryBuilder.prototype.getValueSet = function () { if (this.expressionMap.valuesSet instanceof Object) return this.expressionMap.valuesSet; throw new _error_UpdateValuesMissingError__WEBPACK_IMPORTED_MODULE_11__[/* UpdateValuesMissingError */ "a"](); }; return UpdateQueryBuilder; }(_QueryBuilder__WEBPACK_IMPORTED_MODULE_2__[/* QueryBuilder */ "a"])); //# sourceMappingURL=UpdateQueryBuilder.js.map /***/ }), /* 196 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DeleteQueryBuilder", function() { return DeleteQueryBuilder; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var _QueryBuilder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(40); /* harmony import */ var _result_DeleteResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(158); /* harmony import */ var _error_ReturningStatementNotSupportedError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(72); /* harmony import */ var _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(41); /* harmony import */ var _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(8); /* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(47); /** * Allows to build complex sql queries in a fashion way and execute those queries. */ var DeleteQueryBuilder = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(DeleteQueryBuilder, _super); // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function DeleteQueryBuilder(connectionOrQueryBuilder, queryRunner) { var _this = _super.call(this, connectionOrQueryBuilder, queryRunner) || this; _this.expressionMap.aliasNamePrefixingEnabled = false; return _this; } // ------------------------------------------------------------------------- // Public Implemented Methods // ------------------------------------------------------------------------- /** * Gets generated sql query without parameters being replaced. */ DeleteQueryBuilder.prototype.getQuery = function () { var sql = this.createComment(); sql += this.createDeleteExpression(); return sql.trim(); }; /** * Executes sql generated by query builder and returns raw database results. */ DeleteQueryBuilder.prototype.execute = function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var _a, sql, parameters, queryRunner, transactionStartedByUs, broadcastResult, deleteResult, result, driver, broadcastResult, error_1, rollbackError_1; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(this.getQueryAndParameters(), 2), sql = _a[0], parameters = _a[1]; queryRunner = this.obtainQueryRunner(); transactionStartedByUs = false; _b.label = 1; case 1: _b.trys.push([1, 11, 16, 21]); if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3]; return [4 /*yield*/, queryRunner.startTransaction()]; case 2: _b.sent(); transactionStartedByUs = true; _b.label = 3; case 3: if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 5]; broadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_6__[/* BroadcasterResult */ "a"](); queryRunner.broadcaster.broadcastBeforeRemoveEvent(broadcastResult, this.expressionMap.mainAlias.metadata); if (!(broadcastResult.promises.length > 0)) return [3 /*break*/, 5]; return [4 /*yield*/, Promise.all(broadcastResult.promises)]; case 4: _b.sent(); _b.label = 5; case 5: deleteResult = new _result_DeleteResult__WEBPACK_IMPORTED_MODULE_3__[/* DeleteResult */ "a"](); return [4 /*yield*/, queryRunner.query(sql, parameters)]; case 6: result = _b.sent(); driver = queryRunner.connection.driver; if (driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* MysqlDriver */ "i"]) { deleteResult.raw = result; deleteResult.affected = result.affectedRows; } else if (driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* AuroraDataApiDriver */ "a"]) { deleteResult.raw = result; deleteResult.affected = result.numberOfRecordsUpdated; } else if (driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SqlServerDriver */ "m"] || driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* PostgresDriver */ "k"] || driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* CockroachDriver */ "d"]) { deleteResult.raw = result[0] ? result[0] : null; // don't return 0 because it could confuse. null means that we did not receive this value deleteResult.affected = typeof result[1] === "number" ? result[1] : null; } else if (driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* OracleDriver */ "j"]) { deleteResult.affected = result; } else if (driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* BetterSqlite3Driver */ "c"]) { // only works for better-sqlite3 deleteResult.raw = result; deleteResult.affected = result.changes; } else { deleteResult.raw = result; } if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 8]; broadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_6__[/* BroadcasterResult */ "a"](); queryRunner.broadcaster.broadcastAfterRemoveEvent(broadcastResult, this.expressionMap.mainAlias.metadata); if (!(broadcastResult.promises.length > 0)) return [3 /*break*/, 8]; return [4 /*yield*/, Promise.all(broadcastResult.promises)]; case 7: _b.sent(); _b.label = 8; case 8: if (!transactionStartedByUs) return [3 /*break*/, 10]; return [4 /*yield*/, queryRunner.commitTransaction()]; case 9: _b.sent(); _b.label = 10; case 10: return [2 /*return*/, deleteResult]; case 11: error_1 = _b.sent(); if (!transactionStartedByUs) return [3 /*break*/, 15]; _b.label = 12; case 12: _b.trys.push([12, 14, , 15]); return [4 /*yield*/, queryRunner.rollbackTransaction()]; case 13: _b.sent(); return [3 /*break*/, 15]; case 14: rollbackError_1 = _b.sent(); return [3 /*break*/, 15]; case 15: throw error_1; case 16: if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 18]; return [4 /*yield*/, queryRunner.release()]; case 17: _b.sent(); _b.label = 18; case 18: if (!(this.connection.driver instanceof _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_5__[/* SqljsDriver */ "a"] && !queryRunner.isTransactionActive)) return [3 /*break*/, 20]; return [4 /*yield*/, this.connection.driver.autoSave()]; case 19: _b.sent(); _b.label = 20; case 20: return [7 /*endfinally*/]; case 21: return [2 /*return*/]; } }); }); }; // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Specifies FROM which entity's table select/update/delete will be executed. * Also sets a main string alias of the selection data. */ DeleteQueryBuilder.prototype.from = function (entityTarget, aliasName) { entityTarget = entityTarget instanceof _index__WEBPACK_IMPORTED_MODULE_7__["EntitySchema"] ? entityTarget.options.name : entityTarget; var mainAlias = this.createFromAlias(entityTarget, aliasName); this.expressionMap.setMainAlias(mainAlias); return this; }; /** * Sets WHERE condition in the query builder. * If you had previously WHERE expression defined, * calling this function will override previously set WHERE conditions. * Additionally you can add parameters used in where expression. */ DeleteQueryBuilder.prototype.where = function (where, parameters) { this.expressionMap.wheres = []; // don't move this block below since computeWhereParameter can add where expressions var condition = this.computeWhereParameter(where); if (condition) this.expressionMap.wheres = [{ type: "simple", condition: condition }]; if (parameters) this.setParameters(parameters); return this; }; /** * Adds new AND WHERE condition in the query builder. * Additionally you can add parameters used in where expression. */ DeleteQueryBuilder.prototype.andWhere = function (where, parameters) { this.expressionMap.wheres.push({ type: "and", condition: this.computeWhereParameter(where) }); if (parameters) this.setParameters(parameters); return this; }; /** * Adds new OR WHERE condition in the query builder. * Additionally you can add parameters used in where expression. */ DeleteQueryBuilder.prototype.orWhere = function (where, parameters) { this.expressionMap.wheres.push({ type: "or", condition: this.computeWhereParameter(where) }); if (parameters) this.setParameters(parameters); return this; }; /** * Adds new AND WHERE with conditions for the given ids. */ DeleteQueryBuilder.prototype.whereInIds = function (ids) { return this.where(this.createWhereIdsExpression(ids)); }; /** * Adds new AND WHERE with conditions for the given ids. */ DeleteQueryBuilder.prototype.andWhereInIds = function (ids) { return this.andWhere(this.createWhereIdsExpression(ids)); }; /** * Adds new OR WHERE with conditions for the given ids. */ DeleteQueryBuilder.prototype.orWhereInIds = function (ids) { return this.orWhere(this.createWhereIdsExpression(ids)); }; /** * Optional returning/output clause. */ DeleteQueryBuilder.prototype.output = function (output) { return this.returning(output); }; /** * Optional returning/output clause. */ DeleteQueryBuilder.prototype.returning = function (returning) { // not all databases support returning/output cause if (!this.connection.driver.isReturningSqlSupported()) throw new _error_ReturningStatementNotSupportedError__WEBPACK_IMPORTED_MODULE_4__[/* ReturningStatementNotSupportedError */ "a"](); this.expressionMap.returning = returning; return this; }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Creates DELETE express used to perform query. */ DeleteQueryBuilder.prototype.createDeleteExpression = function () { var tableName = this.getTableName(this.getMainTableName()); var whereExpression = this.createWhereExpression(); var returningExpression = this.createReturningExpression(); if (returningExpression && (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* PostgresDriver */ "k"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* CockroachDriver */ "d"])) { return "DELETE FROM " + tableName + whereExpression + " RETURNING " + returningExpression; } else if (returningExpression !== "" && this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SqlServerDriver */ "m"]) { return "DELETE FROM " + tableName + " OUTPUT " + returningExpression + whereExpression; } else { return "DELETE FROM " + tableName + whereExpression; } }; return DeleteQueryBuilder; }(_QueryBuilder__WEBPACK_IMPORTED_MODULE_2__[/* QueryBuilder */ "a"])); //# sourceMappingURL=DeleteQueryBuilder.js.map /***/ }), /* 197 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.EventManager = void 0; var cs_event_manager_1 = __webpack_require__(495); var EventManager = /*#__PURE__*/function (_cs_event_manager_1$E) { _inherits(EventManager, _cs_event_manager_1$E); var _super = _createSuper(EventManager); function EventManager() { _classCallCheck(this, EventManager); return _super.apply(this, arguments); } return EventManager; }(cs_event_manager_1.EventManager); exports.EventManager = EventManager; /***/ }), /* 198 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.TemplateSite = void 0; var ViewInflater_1 = __webpack_require__(54); var MasterSite_1 = __webpack_require__(258); /** * Die Seite bekommt ein Template übergeben und ersetzt in diesem Template das mit dem Selector gefundene * Element mit der angebenen View */ var TemplateSite = /*#__PURE__*/function (_MasterSite_1$MasterS) { _inherits(TemplateSite, _MasterSite_1$MasterS); var _super = _createSuper(TemplateSite); /** * Constructor für eine TemplateSite * * @param siteManager * @param view * @param template * @param selectorToReplace */ function TemplateSite(siteManager, view, template, selectorToReplace) { var _this; _classCallCheck(this, TemplateSite); _this = _super.call(this, siteManager, template); _this._viewPromise = Promise.all([_this._viewPromise, ViewInflater_1.ViewInflater.getInstance().load(view)]).then(function (res) { res[0].querySelector(selectorToReplace).replaceWith(res[1]); ViewInflater_1.ViewInflater.replaceWithChildren(res[1]); _this._view = res[0]; return res[0]; }).catch(function (e) { return console.error(e); }); return _this; } return TemplateSite; }(MasterSite_1.MasterSite); exports.TemplateSite = TemplateSite; /***/ }), /* 199 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } Object.defineProperty(exports, "__esModule", { value: true }); exports.Menu = void 0; var Helper_1 = __webpack_require__(15); var MenuAction_1 = __webpack_require__(80); var OpenSubmenuAction_1 = __webpack_require__(99); /** * Klasse für ein Menü, was im Prinzip nichts anderes als eine Collection für MenuActions ist * Ein Menü hat einen oder mehrere Renderer, die für die Anzeige zuständig sind */ var Menu = /*#__PURE__*/function () { /** * Setzt die Renderer und die initialen Actions * * @param renderer * @param actions */ function Menu(renderer, actions) { var _this = this; _classCallCheck(this, Menu); this._actions = []; this._renderers = []; this._submenus = []; if (Array.isArray(renderer)) { this._renderers = renderer; } else { this._renderers = [renderer]; } //Initialisiert onClickListener this._onClickListener = this._generateOnClickListener(); //Setze die Actions so, um einzelne Actions noch zu überprüfen Helper_1.Helper.nonNull(actions, []).forEach(function (action) { _this.addAction(action, false); }); this._openSubmenuListener = null; } /** * Erstellt ein neues Menu auf grundlage dieses Menüs. Alle Actions & Submenüs werden ebenfalls kopiert * @param menu * @return {Menu} */ _createClass(Menu, [{ key: "copy", value: function copy(menu) { menu = Helper_1.Helper.nonNull(menu, new Menu()); menu._actions = []; this._actions.forEach(function (action) { menu.addAction(action.copy()); }); menu._renderers = this._renderers; menu._onClickListener = this._onClickListener; return menu; } /** * Schließt das Menü, hauptsächlich hier zum Schließen der Submenüs. * Zum öffnen wird nicht so eine Funktion gebraucht, da beim öffnen nicht die untermenüs geöffnet werden sollen */ }, { key: "close", value: function close() { this._submenus.forEach(function (submenu) { submenu.close(); }); } /** * Fügt eine Action dem Menü hinzu * * @param action * @param redraw */ }, { key: "addAction", value: function addAction(action, redraw) { //Überprüfung, ob es die richtige Klasse ist und ob die Action nicht schon hinzugefügt wurde if (action instanceof MenuAction_1.MenuAction && this._actions.indexOf(action) === -1) { //Falls es sich um ein Submenu handelt, füge dieses hinzu if (action instanceof OpenSubmenuAction_1.OpenSubmenuAction) { this._submenus.push(action.getSubmenu()); } this._actions.push(action); action.setMenu(this); //Falls redraw true (oder nicht angegeben, redraw) if (Helper_1.Helper.nonNull(redraw, true)) { this.redraw(); } } } }, { key: "removeAllActions", value: function removeAllActions(redraw) { this._actions.forEach(function (action) { return action.setMenu(null); }); this._actions = []; this._submenus = []; //Falls redraw true (oder nicht angegeben, redraw) if (Helper_1.Helper.nonNull(redraw, true)) { this.redraw(); } } /** * Sortiert die Actions und sagt danach den Renderern, dass diese das Menü zeuchnen sollen */ }, { key: "draw", value: function draw() { var _this2 = this; try { this.sortActions(); this._renderers.forEach(function (renderer) { renderer.render(_this2); }); } catch (e) { console.error(e); } } /** * Sortiert die Actions der Order nach */ }, { key: "sortActions", value: function sortActions() { this._actions = this._actions.sort(function (first, second) { return first.getOrder() - second.getOrder(); }); } }, { key: "openSubmenu", value: function openSubmenu(submenu) { if (this._openSubmenuListener) { this._openSubmenuListener(submenu); } } }, { key: "setOpenSubmenuListener", value: function setOpenSubmenuListener(listener) { this._openSubmenuListener = listener; } /** * Generiert den defaultmäßigen onclick-listener. * @returns {Function} * @private */ }, { key: "_generateOnClickListener", value: function _generateOnClickListener() { var _this3 = this; return function (event) { var _element = event.target; //Falls es eine Action oder ein Unterlement einer Action war... if (_element.matches('li') || _element.matches('li *')) { //...finde das zugehörige Element und lese ID aus _element = _element.closest("li"); var actionId = parseInt(_element.dataset["id"]); //Schaue nach, welche Action angeklickt wurde for (var i = 0, n = _this3._actions.length; i < n; i++) { if (_this3._actions[i].getId() === actionId) { //Falls action eine Funktion (und kein Link), sowie aktiv ist, führe action aus if (typeof _this3._actions[i].getAction() === 'function' && _this3._actions[i].isActivated()) { _this3._actions[i].getAction()(_this3._actions[i], event); event.preventDefault(); } //Gebe gefundene Action zurück return _this3._actions[i]; } } //Falls action nicht gefunden (da noch nicht beendet), suche in den submenüs nach der Action for (var _i = 0, _n = _this3._submenus.length; _i < _n; _i++) { var action = _this3._submenus[_i].click(actionId, event); if (action) { return action; } } } return null; }; } /** * Setzt den OnClickListener * * @param listener */ }, { key: "setOnClickListener", value: function setOnClickListener(listener) { this._onClickListener = listener; } /** * Gibt den OnClickListener zurück * * @returns {*} */ }, { key: "getOnClickListener", value: function getOnClickListener() { return this._onClickListener; } /** * Gibt die Actions zurück * @returns {Array} */ }, { key: "getActions", value: function getActions() { return this._actions; } /** * Triggert ein neues Rendern für eine Action. Das entsprechende ActionElement wird ausgetauscht * @param action */ }, { key: "redrawAction", value: function redrawAction(action) { this._renderers.forEach(function (renderer) { renderer._triggerRenderAction(action); }); } /** * Updated das entsprechende ActionElement abhängig vom Renderer. Das Element wird nicht ausgetauscht * @param action */ }, { key: "updateAction", value: function updateAction(action) { this._renderers.forEach(function (renderer) { renderer.updateAction(action); }); } /** * alias für draw */ }, { key: "redraw", value: function redraw() { this.draw(); } }]); return Menu; }(); exports.Menu = Menu; /***/ }), /* 200 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.AccordionRenderer = void 0; var OpenSubmenuAction_1 = __webpack_require__(99); var MenuRenderer_1 = __webpack_require__(261); var Helper_1 = __webpack_require__(15); var Translator_1 = __webpack_require__(30); /** * Leitet von DropdownRenderer ab, da Funktionalität fast gleich ist */ var AccordionRenderer = /*#__PURE__*/function (_MenuRenderer_1$MenuR) { _inherits(AccordionRenderer, _MenuRenderer_1$MenuR); var _super = _createSuper(AccordionRenderer); function AccordionRenderer() { _classCallCheck(this, AccordionRenderer); return _super.apply(this, arguments); } _createClass(AccordionRenderer, [{ key: "renderAction", value: /** * Rendert eine Action * * @param action * @returns {HTMLLIElement} */ function renderAction(action) { var linkElement = this.renderLinkElement(action); var liElement = this.renderLiElement(action); liElement.insertBefore(linkElement, liElement.firstChild); return liElement; } /** * Rendert das AnchorElement für eine Action * @param action * @returns {HTMLAnchorElement} */ }, { key: "renderLinkElement", value: function renderLinkElement(action) { var aElement = document.createElement("a"); if (typeof action.getAction() === 'string') { aElement.href = action.getAction(); } if (Helper_1.Helper.isNotNull(action.getIcon())) { var iconElement = document.createElement("img"); iconElement.src = action.getIcon(); iconElement.classList.add('action-image'); if (action.isShouldTranslate()) { iconElement.dataset["translationTitle"] = action.getName(); iconElement.classList.add(Translator_1.Translator.getInstance().getTranslationClass()); } else { iconElement.title = action.getName(); } aElement.appendChild(iconElement); } var name = action.getName(); // debugger; if (action.isShouldTranslate()) { name = Translator_1.Translator.makePersistentTranslation(name); } else { name = document.createTextNode(name); } aElement.appendChild(name); return aElement; } /** * Render das LI-Element für eine Action * * @param action * @returns {HTMLLIElement} */ }, { key: "renderLiElement", value: function renderLiElement(action) { var liElement = document.createElement("li"); if (action.getLiClass().trim() !== "") { var _liElement$classList; (_liElement$classList = liElement.classList).add.apply(_liElement$classList, _toConsumableArray(action.getLiClass().split(" "))); } // liElement.appendChild(aElement); liElement.dataset["id"] = action.getId(); if (Helper_1.Helper.isNotNull(action.getIcon())) { liElement.classList.add("img"); } if (!action.isVisible()) { liElement.classList.add("hidden"); } liElement.classList.add(action.getShowFor()); return liElement; } /** * Da abgeleitet von DropdownRenderer, muss eine Klasse wieder entfernt werden * * @param action * @returns {*} */ }, { key: "renderSubmenuAction", value: function renderSubmenuAction(action) { var submenuActionElement = _get(_getPrototypeOf(AccordionRenderer.prototype), "renderSubmenuAction", this).call(this, action); submenuActionElement.classList.remove('is-dropdown-submenu-parent'); submenuActionElement.classList.add('is-accordion-submenu-parent'); return submenuActionElement; } /** * erstellt ein SubmenuParent für Accordion * @param action * @returns {HTMLUListElement} */ }, { key: "createSubmenuParentElement", value: function createSubmenuParentElement(action) { var menuElement = document.createElement("ul"); menuElement.classList.add("menu"); menuElement.classList.add("vertical"); menuElement.classList.add("submenu"); menuElement.classList.add("accordion-menu"); menuElement.classList.add("is-accordion-submenu"); menuElement.classList.add("first-sub"); return menuElement; } /** * Updatet ein ActionElement * @param action */ }, { key: "updateAction", value: function updateAction(action) { if (action instanceof OpenSubmenuAction_1.OpenSubmenuAction) { var submenuElement = this.getElementForAction(action).querySelector(".submenu"); if (action.getSubmenu().isOpen()) { this.getElementForAction(action).setAttribute("aria-expanded", true); submenuElement.classList.add("js-active"); submenuElement.style = ""; } else { this.getElementForAction(action).removeAttribute("aria-expanded"); submenuElement.classList.remove("js-activ"); submenuElement.style = "display:none;"; } } } }]); return AccordionRenderer; }(MenuRenderer_1.MenuRenderer); exports.AccordionRenderer = AccordionRenderer; /***/ }), /* 201 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.EasySyncPartialModel = void 0; var EasySyncBaseModel_1 = __webpack_require__(78); var _typeorm = __webpack_require__(47); var Helper_1 = __webpack_require__(7); var XSSHelper_1 = __webpack_require__(251); var cordova_sites_database_1 = __webpack_require__(20); var typeorm = _typeorm; // if (typeorm.default) { // typeorm = typeorm.default; // } var EasySyncPartialModel = /*#__PURE__*/function (_EasySyncBaseModel_1$) { _inherits(EasySyncPartialModel, _EasySyncBaseModel_1$); var _super2 = _createSuper(EasySyncPartialModel); function EasySyncPartialModel() { _classCallCheck(this, EasySyncPartialModel); return _super2.apply(this, arguments); } _createClass(EasySyncPartialModel, [{ key: "toJSON", value: function toJSON(includeFull) { var _this = this; var relations = this.constructor.getRelationDefinitions(); var columns = this.constructor.getColumnDefinitions(); var obj = {}; Object.keys(columns).forEach(function (attribute) { if (attribute !== "clientId") { obj[attribute] = _this[attribute]; } }); Object.keys(relations).forEach(function (relationName) { if (includeFull === true) { obj[relationName] = _this[relationName]; } else { if (Array.isArray(_this[relationName])) { var ids = []; _this[relationName].forEach(function (child) { return child && ids.push(child.id); }); obj[relationName] = ids; } else if (_this[relationName] instanceof cordova_sites_database_1.BaseModel) { obj[relationName] = _this[relationName].id; } else { obj[relationName] = null; } } }); return obj; } }], [{ key: "findByIds", value: function findByIds(ids, relations) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: return _context.abrupt("return", this.find({ "id": typeorm.In(ids) }, null, null, null, relations)); case 1: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "findById", value: function findById(id, relations) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", this.findOne({ "id": id }, null, null, relations)); case 1: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "findByClientId", value: function findByClientId(id, relations) { var _this2 = this; var _super = Object.create(null, { findById: { get: function get() { return _get(_getPrototypeOf(EasySyncPartialModel), "findById", _this2); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: return _context3.abrupt("return", _super.findById.call(this, id, relations)); case 1: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "findByClientIds", value: function findByClientIds(ids, relations) { var _this3 = this; var _super = Object.create(null, { findById: { get: function get() { return _get(_getPrototypeOf(EasySyncPartialModel), "findById", _this3); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: return _context4.abrupt("return", _super.findById.call(this, ids, relations)); case 1: case "end": return _context4.stop(); } } }, _callee4, this); })); } }, { key: "_fromJson", value: function _fromJson(jsonObjects, entities, includeRelations) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var _this4 = this; var isArray, loadPromises, addLoadPromises; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: entities = entities || []; isArray = Array.isArray(jsonObjects); if (!isArray) { jsonObjects = [jsonObjects]; } if (!Array.isArray(entities)) { entities = [entities]; } loadPromises = []; addLoadPromises = []; jsonObjects.forEach(function (jsonObject, index) { addLoadPromises.push(new Promise(function (resolve) { return __awaiter(_this4, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var entity; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: entity = null; if (!(entities.length > index)) { _context5.next = 5; break; } entity = entities[index]; _context5.next = 9; break; case 5: if (!Helper_1.Helper.isNotNull(jsonObject.id)) { _context5.next = 9; break; } _context5.next = 8; return this.findById(jsonObject.id, this.getRelations()); case 8: entity = _context5.sent; case 9: if (entity === null) { entity = new this(); } if (!jsonObject.version) { jsonObject.version = 1; } entities[index] = Object.assign(entity, jsonObject); this._handleColumns_(entities[index]); this._handleRelations_(entities[index], includeRelations, loadPromises); resolve(); case 15: case "end": return _context5.stop(); } } }, _callee5, this); })); })); }); //addLoadPromises adds other loadPromises. Therefore wait until done, then wait for other _context6.next = 9; return Promise.all(addLoadPromises); case 9: _context6.next = 11; return Promise.all(loadPromises); case 11: if (!isArray) { entities = entities.length > 0 ? entities[0] : null; } return _context6.abrupt("return", entities); case 13: case "end": return _context6.stop(); } } }, _callee6); })); } }, { key: "_handleRelations_", value: function _handleRelations_(entity, includeRelations, loadPromises) { var relations = this.getRelationDefinitions(); Object.keys(relations).forEach(function (relationName) { var values = entity[relationName]; if (typeof values === "number" || Array.isArray(values) && values.length >= 1 && typeof values[0] === "number") { if (includeRelations === true) { var loadPromise = null; if (Array.isArray(values)) { loadPromise = cordova_sites_database_1.BaseDatabase.getModel(relations[relationName].target).findByIds(values); } else { loadPromise = cordova_sites_database_1.BaseDatabase.getModel(relations[relationName].target).findById(values); } loadPromises.push(loadPromise.then(function (value) { entity[relationName] = value; })); } else if (includeRelations === false) { if (relations[relationName].type === "many-to-many" || relations[relationName].type === "one-to-many") { entity[relationName] = []; } else { entity[relationName] = null; } } } }); } }, { key: "_handleColumns_", value: function _handleColumns_(entity) { var schemaDefinition = this.getSchemaDefinition(); var columns = schemaDefinition["columns"]; Object.keys(columns).forEach(function (columnName) { if (columns[columnName].escapeHTML) { entity[columnName] = XSSHelper_1.XSSHelper.escapeHTML(entity[columnName]); } if (columns[columnName].escapeJS) { entity[columnName] = XSSHelper_1.XSSHelper.escapeJS(entity[columnName]); } }); } }]); return EasySyncPartialModel; }(EasySyncBaseModel_1.EasySyncBaseModel); exports.EasySyncPartialModel = EasySyncPartialModel; EasySyncPartialModel.CAN_BE_SYNCED = true; /***/ }), /* 202 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.FileMedium = void 0; var EasySyncBaseModel_1 = __webpack_require__(78); var BaseDatabase_1 = __webpack_require__(148); var Helper_1 = __webpack_require__(7); var FileMedium = /*#__PURE__*/function (_EasySyncBaseModel_1$) { _inherits(FileMedium, _EasySyncBaseModel_1$); var _super = _createSuper(FileMedium); function FileMedium() { var _this; _classCallCheck(this, FileMedium); _this = _super.apply(this, arguments); _this.saveOffline = true; _this._isDownloaded = true; return _this; } _createClass(FileMedium, [{ key: "getServerUrl", value: function getServerUrl(appendDate) { appendDate = Helper_1.Helper.nonNull(appendDate, true); if (!this.src.startsWith("http") && !this.src.startsWith("//") && !this.src.startsWith("data")) { var path = FileMedium.PUBLIC_PATH + this.src; if (appendDate) { path += "?t=" + new Date(this.updatedAt).getTime(); } return path; } return this.src; } }, { key: "getUrl", value: function getUrl() { if (device.platform !== "browser" && this.saveOffline && this._isDownloaded && Helper_1.Helper.isNotNull(this.id) && !this.src.startsWith("data") && !this.src.startsWith("http")) { return "cdvfile://localhost/persistent/" + this.src; } else { return this.getServerUrl(); } } }, { key: "toString", value: function toString() { console.warn("to string called on FileMedium. Only for dependency. Please look inside your sourcecode"); return this.getUrl(); } }], [{ key: "getColumnDefinitions", value: function getColumnDefinitions() { var columns = _get(_getPrototypeOf(FileMedium), "getColumnDefinitions", this).call(this); columns["src"] = BaseDatabase_1.BaseDatabase.TYPES.MEDIUMTEXT; columns["saveOffline"] = { type: BaseDatabase_1.BaseDatabase.TYPES.BOOLEAN, default: 1 }; return columns; } }]); return FileMedium; }(EasySyncBaseModel_1.EasySyncBaseModel); exports.FileMedium = FileMedium; FileMedium.PUBLIC_PATH = "./"; FileMedium.SCHEMA_NAME = "FileMedium"; BaseDatabase_1.BaseDatabase.addModel(FileMedium); /***/ }), /* 203 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.Role = void 0; var shared_1 = __webpack_require__(127); var cordova_sites_database_1 = __webpack_require__(20); var Access_1 = __webpack_require__(271); var Role = /*#__PURE__*/function (_shared_1$EasySyncBas) { _inherits(Role, _shared_1$EasySyncBas); var _super = _createSuper(Role); function Role() { var _this; _classCallCheck(this, Role); _this = _super.call(this); _this.name = null; _this.description = null; _this.accesses = null; _this.parents = null; _this.children = null; return _this; } _createClass(Role, null, [{ key: "getColumnDefinitions", value: function getColumnDefinitions() { var columns = _get(_getPrototypeOf(Role), "getColumnDefinitions", this).call(this); columns["name"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.STRING }; columns["description"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.STRING }; return columns; } }, { key: "getRelationDefinitions", value: function getRelationDefinitions() { var relations = _get(_getPrototypeOf(Role), "getRelationDefinitions", this).call(this); relations["accesses"] = { target: Access_1.Access.getSchemaName(), type: "many-to-many", joinTable: { name: "roleAccess" }, cascade: false }; relations["parents"] = { target: Role.getSchemaName(), type: "many-to-many", joinTable: { name: "roleChildren", joinColumn: { name: "childId", referencedColumnName: "id" }, inverseJoinColumn: { name: "parentId", referencedColumnName: "id" } }, cascade: false }; relations["children"] = { target: Role.getSchemaName(), type: "many-to-many", joinTable: { name: "roleChildren", joinColumn: { name: "parentId", referencedColumnName: "id" }, inverseJoinColumn: { name: "childId", referencedColumnName: "id" } }, cascade: false }; return relations; } }]); return Role; }(shared_1.EasySyncBaseModel); exports.Role = Role; Role.CAN_BE_SYNCED = false; cordova_sites_database_1.BaseDatabase.addModel(Role); /***/ }), /* 204 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.StartUserSiteMenuAction = void 0; var UserMenuAction_1 = __webpack_require__(150); var client_1 = __webpack_require__(4); var StartUserSiteMenuAction = /*#__PURE__*/function (_UserMenuAction_1$Use) { _inherits(StartUserSiteMenuAction, _UserMenuAction_1$Use); var _super = _createSuper(StartUserSiteMenuAction); function StartUserSiteMenuAction(name, access, site, showFor, order, icon) { _classCallCheck(this, StartUserSiteMenuAction); return _super.call(this, name, access, function () { if (client_1.StartSiteMenuAction._app) { if (Array.isArray(site) && site.length >= 2) { client_1.StartSiteMenuAction._app.startSite(site[0], site[1]); } else { client_1.StartSiteMenuAction._app.startSite(site); } } }, showFor, order, icon); } return StartUserSiteMenuAction; }(UserMenuAction_1.UserMenuAction); exports.StartUserSiteMenuAction = StartUserSiteMenuAction; /***/ }), /* 205 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.FilePromise = void 0; var Helper_1 = __webpack_require__(7); var FileWriterPromise_1 = __webpack_require__(276); var FilePromise = /*#__PURE__*/function () { function FilePromise(fileEntry) { _classCallCheck(this, FilePromise); this.fileEntry = fileEntry; } _createClass(FilePromise, [{ key: "createWriter", value: function createWriter() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var _this = this; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: return _context.abrupt("return", new Promise(function (res) { _this.fileEntry.createWriter(function (writer) { res(new FileWriterPromise_1.FileWriterPromise(writer)); }); })); case 1: case "end": return _context.stop(); } } }, _callee); })); } }], [{ key: "open", value: function open(file, options) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: options = Helper_1.Helper.nonNull(options, { create: true, exclusive: false }); return _context2.abrupt("return", new Promise(function (r, rej) { window["resolveLocalFileSystemURL"]("cdvfile://localhost/persistent/", function (dirEntry) { dirEntry.getFile(file, options, function (fileEntry) { r(new FilePromise(fileEntry)); }, rej); }, rej); })); case 2: case "end": return _context2.stop(); } } }, _callee2); })); } }]); return FilePromise; }(); exports.FilePromise = FilePromise; /***/ }), /* 206 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, "RelationQueryBuilder", function() { return /* binding */ RelationQueryBuilder_RelationQueryBuilder; }); // EXTERNAL MODULE: ./node_modules/typeorm/node_modules/tslib/tslib.es6.js var tslib_es6 = __webpack_require__(0); // EXTERNAL MODULE: ./node_modules/typeorm/browser/query-builder/QueryBuilder.js + 2 modules var QueryBuilder = __webpack_require__(40); // EXTERNAL MODULE: ./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js var BrowserDisabledDriversDummy = __webpack_require__(1); // CONCATENATED MODULE: ./node_modules/typeorm/browser/query-builder/RelationUpdater.js /** * Allows to work with entity relations and perform specific operations with those relations. * * todo: add transactions everywhere */ var RelationUpdater_RelationUpdater = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function RelationUpdater(queryBuilder, expressionMap) { this.queryBuilder = queryBuilder; this.expressionMap = expressionMap; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Performs set or add operation on a relation. */ RelationUpdater.prototype.update = function (value) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var relation, updateSet, updateSet_1, ofs, parameters_1, conditions_1, condition, of_1, updateSet, junctionMetadata_1, ofs, values, firstColumnValues, secondColumnValues_1, bulkInserted_1; var _this = this; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: relation = this.expressionMap.relationMetadata; if (!(relation.isManyToOne || relation.isOneToOneOwner)) return [3 /*break*/, 2]; updateSet = relation.joinColumns.reduce(function (updateSet, joinColumn) { var relationValue = value instanceof Object ? joinColumn.referencedColumn.getEntityValue(value) : value; joinColumn.setEntityValue(updateSet, relationValue); return updateSet; }, {}); if (!this.expressionMap.of || (Array.isArray(this.expressionMap.of) && !this.expressionMap.of.length)) return [2 /*return*/]; return [4 /*yield*/, this.queryBuilder .createQueryBuilder() .update(relation.entityMetadata.target) .set(updateSet) .whereInIds(this.expressionMap.of) .execute()]; case 1: _a.sent(); return [3 /*break*/, 10]; case 2: if (!((relation.isOneToOneNotOwner || relation.isOneToMany) && value === null)) return [3 /*break*/, 4]; updateSet_1 = {}; relation.inverseRelation.joinColumns.forEach(function (column) { updateSet_1[column.propertyName] = null; }); ofs = Array.isArray(this.expressionMap.of) ? this.expressionMap.of : [this.expressionMap.of]; parameters_1 = {}; conditions_1 = []; ofs.forEach(function (of, ofIndex) { relation.inverseRelation.joinColumns.map(function (column, columnIndex) { var parameterName = "joinColumn_" + ofIndex + "_" + columnIndex; parameters_1[parameterName] = of instanceof Object ? column.referencedColumn.getEntityValue(of) : of; conditions_1.push(column.propertyPath + " = :" + parameterName); }); }); condition = conditions_1.map(function (str) { return "(" + str + ")"; }).join(" OR "); if (!condition) return [2 /*return*/]; return [4 /*yield*/, this.queryBuilder .createQueryBuilder() .update(relation.inverseEntityMetadata.target) .set(updateSet_1) .where(condition) .setParameters(parameters_1) .execute()]; case 3: _a.sent(); return [3 /*break*/, 10]; case 4: if (!(relation.isOneToOneNotOwner || relation.isOneToMany)) return [3 /*break*/, 6]; if (Array.isArray(this.expressionMap.of)) throw new Error("You cannot update relations of multiple entities with the same related object. Provide a single entity into .of method."); of_1 = this.expressionMap.of; updateSet = relation.inverseRelation.joinColumns.reduce(function (updateSet, joinColumn) { var relationValue = of_1 instanceof Object ? joinColumn.referencedColumn.getEntityValue(of_1) : of_1; joinColumn.setEntityValue(updateSet, relationValue); return updateSet; }, {}); if (!value || (Array.isArray(value) && !value.length)) return [2 /*return*/]; return [4 /*yield*/, this.queryBuilder .createQueryBuilder() .update(relation.inverseEntityMetadata.target) .set(updateSet) .whereInIds(value) .execute()]; case 5: _a.sent(); return [3 /*break*/, 10]; case 6: junctionMetadata_1 = relation.junctionEntityMetadata; ofs = Array.isArray(this.expressionMap.of) ? this.expressionMap.of : [this.expressionMap.of]; values = Array.isArray(value) ? value : [value]; firstColumnValues = relation.isManyToManyOwner ? ofs : values; secondColumnValues_1 = relation.isManyToManyOwner ? values : ofs; bulkInserted_1 = []; firstColumnValues.forEach(function (firstColumnVal) { secondColumnValues_1.forEach(function (secondColumnVal) { var inserted = {}; junctionMetadata_1.ownerColumns.forEach(function (column) { inserted[column.databaseName] = firstColumnVal instanceof Object ? column.referencedColumn.getEntityValue(firstColumnVal) : firstColumnVal; }); junctionMetadata_1.inverseColumns.forEach(function (column) { inserted[column.databaseName] = secondColumnVal instanceof Object ? column.referencedColumn.getEntityValue(secondColumnVal) : secondColumnVal; }); bulkInserted_1.push(inserted); }); }); if (!bulkInserted_1.length) return [2 /*return*/]; if (!(this.queryBuilder.connection.driver instanceof BrowserDisabledDriversDummy["j" /* OracleDriver */] || this.queryBuilder.connection.driver instanceof BrowserDisabledDriversDummy["l" /* SapDriver */])) return [3 /*break*/, 8]; return [4 /*yield*/, Promise.all(bulkInserted_1.map(function (value) { return _this.queryBuilder .createQueryBuilder() .insert() .into(junctionMetadata_1.tableName) .values(value) .execute(); }))]; case 7: _a.sent(); return [3 /*break*/, 10]; case 8: return [4 /*yield*/, this.queryBuilder .createQueryBuilder() .insert() .into(junctionMetadata_1.tableName) .values(bulkInserted_1) .execute()]; case 9: _a.sent(); _a.label = 10; case 10: return [2 /*return*/]; } }); }); }; return RelationUpdater; }()); //# sourceMappingURL=RelationUpdater.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/query-builder/RelationRemover.js /** * Allows to work with entity relations and perform specific operations with those relations. * * todo: add transactions everywhere */ var RelationRemover_RelationRemover = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function RelationRemover(queryBuilder, expressionMap) { this.queryBuilder = queryBuilder; this.expressionMap = expressionMap; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Performs remove operation on a relation. */ RelationRemover.prototype.remove = function (value) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var relation, ofs, values_1, updateSet_1, parameters_1, conditions_1, condition, junctionMetadata_1, ofs, values, firstColumnValues, secondColumnValues_1, parameters_2, conditions_2, condition; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: relation = this.expressionMap.relationMetadata; if (!relation.isOneToMany) return [3 /*break*/, 2]; ofs = Array.isArray(this.expressionMap.of) ? this.expressionMap.of : [this.expressionMap.of]; values_1 = Array.isArray(value) ? value : [value]; updateSet_1 = {}; relation.inverseRelation.joinColumns.forEach(function (column) { updateSet_1[column.propertyName] = null; }); parameters_1 = {}; conditions_1 = []; ofs.forEach(function (of, ofIndex) { conditions_1.push.apply(conditions_1, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(values_1.map(function (value, valueIndex) { return Object(tslib_es6["f" /* __spreadArray */])(Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(relation.inverseRelation.joinColumns.map(function (column, columnIndex) { var parameterName = "joinColumn_" + ofIndex + "_" + valueIndex + "_" + columnIndex; parameters_1[parameterName] = of instanceof Object ? column.referencedColumn.getEntityValue(of) : of; return column.propertyPath + " = :" + parameterName; }))), Object(tslib_es6["e" /* __read */])(relation.inverseRelation.entityMetadata.primaryColumns.map(function (column, columnIndex) { var parameterName = "primaryColumn_" + valueIndex + "_" + valueIndex + "_" + columnIndex; parameters_1[parameterName] = value instanceof Object ? column.getEntityValue(value) : value; return column.propertyPath + " = :" + parameterName; }))).join(" AND "); })))); }); condition = conditions_1.map(function (str) { return "(" + str + ")"; }).join(" OR "); if (!condition) return [2 /*return*/]; return [4 /*yield*/, this.queryBuilder .createQueryBuilder() .update(relation.inverseEntityMetadata.target) .set(updateSet_1) .where(condition) .setParameters(parameters_1) .execute()]; case 1: _a.sent(); return [3 /*break*/, 4]; case 2: junctionMetadata_1 = relation.junctionEntityMetadata; ofs = Array.isArray(this.expressionMap.of) ? this.expressionMap.of : [this.expressionMap.of]; values = Array.isArray(value) ? value : [value]; firstColumnValues = relation.isManyToManyOwner ? ofs : values; secondColumnValues_1 = relation.isManyToManyOwner ? values : ofs; parameters_2 = {}; conditions_2 = []; firstColumnValues.forEach(function (firstColumnVal, firstColumnValIndex) { conditions_2.push.apply(conditions_2, Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(secondColumnValues_1.map(function (secondColumnVal, secondColumnValIndex) { return Object(tslib_es6["f" /* __spreadArray */])(Object(tslib_es6["f" /* __spreadArray */])([], Object(tslib_es6["e" /* __read */])(junctionMetadata_1.ownerColumns.map(function (column, columnIndex) { var parameterName = "firstValue_" + firstColumnValIndex + "_" + secondColumnValIndex + "_" + columnIndex; parameters_2[parameterName] = firstColumnVal instanceof Object ? column.referencedColumn.getEntityValue(firstColumnVal) : firstColumnVal; return column.databaseName + " = :" + parameterName; }))), Object(tslib_es6["e" /* __read */])(junctionMetadata_1.inverseColumns.map(function (column, columnIndex) { var parameterName = "secondValue_" + firstColumnValIndex + "_" + secondColumnValIndex + "_" + columnIndex; parameters_2[parameterName] = secondColumnVal instanceof Object ? column.referencedColumn.getEntityValue(secondColumnVal) : secondColumnVal; return column.databaseName + " = :" + parameterName; }))).join(" AND "); })))); }); condition = conditions_2.map(function (str) { return "(" + str + ")"; }).join(" OR "); return [4 /*yield*/, this.queryBuilder .createQueryBuilder() .delete() .from(junctionMetadata_1.tableName) .where(condition) .setParameters(parameters_2) .execute()]; case 3: _a.sent(); _a.label = 4; case 4: return [2 /*return*/]; } }); }); }; return RelationRemover; }()); //# sourceMappingURL=RelationRemover.js.map // CONCATENATED MODULE: ./node_modules/typeorm/browser/query-builder/RelationQueryBuilder.js /** * Allows to work with entity relations and perform specific operations with those relations. * * todo: add transactions everywhere */ var RelationQueryBuilder_RelationQueryBuilder = /** @class */ (function (_super) { Object(tslib_es6["c" /* __extends */])(RelationQueryBuilder, _super); function RelationQueryBuilder() { return _super !== null && _super.apply(this, arguments) || this; } // ------------------------------------------------------------------------- // Public Implemented Methods // ------------------------------------------------------------------------- /** * Gets generated sql query without parameters being replaced. */ RelationQueryBuilder.prototype.getQuery = function () { return ""; }; // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Sets entity (target) which relations will be updated. */ RelationQueryBuilder.prototype.of = function (entity) { this.expressionMap.of = entity; return this; }; /** * Sets entity relation's value. * Value can be entity, entity id or entity id map (if entity has composite ids). * Works only for many-to-one and one-to-one relations. * For many-to-many and one-to-many relations use #add and #remove methods instead. */ RelationQueryBuilder.prototype.set = function (value) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var relation, updater; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { relation = this.expressionMap.relationMetadata; if (!this.expressionMap.of) // todo: move this check before relation query builder creation? throw new Error("Entity whose relation needs to be set is not set. Use .of method to define whose relation you want to set."); if (relation.isManyToMany || relation.isOneToMany) throw new Error("Set operation is only supported for many-to-one and one-to-one relations. " + ("However given \"" + relation.propertyPath + "\" has " + relation.relationType + " relation. ") + "Use .add() method instead."); // if there are multiple join columns then user must send id map as "value" argument. check if he really did it if (relation.joinColumns && relation.joinColumns.length > 1 && (!(value instanceof Object) || Object.keys(value).length < relation.joinColumns.length)) throw new Error("Value to be set into the relation must be a map of relation ids, for example: .set({ firstName: \"...\", lastName: \"...\" })"); updater = new RelationUpdater_RelationUpdater(this, this.expressionMap); return [2 /*return*/, updater.update(value)]; }); }); }; /** * Adds (binds) given value to entity relation. * Value can be entity, entity id or entity id map (if entity has composite ids). * Value also can be array of entities, array of entity ids or array of entity id maps (if entity has composite ids). * Works only for many-to-many and one-to-many relations. * For many-to-one and one-to-one use #set method instead. */ RelationQueryBuilder.prototype.add = function (value) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var relation, updater; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { if (Array.isArray(value) && value.length === 0) return [2 /*return*/]; relation = this.expressionMap.relationMetadata; if (!this.expressionMap.of) // todo: move this check before relation query builder creation? throw new Error("Entity whose relation needs to be set is not set. Use .of method to define whose relation you want to set."); if (relation.isManyToOne || relation.isOneToOne) throw new Error("Add operation is only supported for many-to-many and one-to-many relations. " + ("However given \"" + relation.propertyPath + "\" has " + relation.relationType + " relation. ") + "Use .set() method instead."); // if there are multiple join columns then user must send id map as "value" argument. check if he really did it if (relation.joinColumns && relation.joinColumns.length > 1 && (!(value instanceof Object) || Object.keys(value).length < relation.joinColumns.length)) throw new Error("Value to be set into the relation must be a map of relation ids, for example: .set({ firstName: \"...\", lastName: \"...\" })"); updater = new RelationUpdater_RelationUpdater(this, this.expressionMap); return [2 /*return*/, updater.update(value)]; }); }); }; /** * Removes (unbinds) given value from entity relation. * Value can be entity, entity id or entity id map (if entity has composite ids). * Value also can be array of entities, array of entity ids or array of entity id maps (if entity has composite ids). * Works only for many-to-many and one-to-many relations. * For many-to-one and one-to-one use #set method instead. */ RelationQueryBuilder.prototype.remove = function (value) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var relation, remover; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { if (Array.isArray(value) && value.length === 0) return [2 /*return*/]; relation = this.expressionMap.relationMetadata; if (!this.expressionMap.of) // todo: move this check before relation query builder creation? throw new Error("Entity whose relation needs to be set is not set. Use .of method to define whose relation you want to set."); if (relation.isManyToOne || relation.isOneToOne) throw new Error("Add operation is only supported for many-to-many and one-to-many relations. " + ("However given \"" + relation.propertyPath + "\" has " + relation.relationType + " relation. ") + "Use .set(null) method instead."); remover = new RelationRemover_RelationRemover(this, this.expressionMap); return [2 /*return*/, remover.remove(value)]; }); }); }; /** * Adds (binds) and removes (unbinds) given values to/from entity relation. * Value can be entity, entity id or entity id map (if entity has composite ids). * Value also can be array of entities, array of entity ids or array of entity id maps (if entity has composite ids). * Works only for many-to-many and one-to-many relations. * For many-to-one and one-to-one use #set method instead. */ RelationQueryBuilder.prototype.addAndRemove = function (added, removed) { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.remove(removed)]; case 1: _a.sent(); return [4 /*yield*/, this.add(added)]; case 2: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Gets entity's relation id. async getId(): Promise { }*/ /** * Gets entity's relation ids. async getIds(): Promise { return []; }*/ /** * Loads a single entity (relational) from the relation. * You can also provide id of relational entity to filter by. */ RelationQueryBuilder.prototype.loadOne = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { return Object(tslib_es6["d" /* __generator */])(this, function (_a) { return [2 /*return*/, this.loadMany().then(function (results) { return results[0]; })]; }); }); }; /** * Loads many entities (relational) from the relation. * You can also provide ids of relational entities to filter by. */ RelationQueryBuilder.prototype.loadMany = function () { return Object(tslib_es6["b" /* __awaiter */])(this, void 0, void 0, function () { var of, metadata; return Object(tslib_es6["d" /* __generator */])(this, function (_a) { of = this.expressionMap.of; if (!(of instanceof Object)) { metadata = this.expressionMap.mainAlias.metadata; if (metadata.hasMultiplePrimaryKeys) throw new Error("Cannot load entity because only one primary key was specified, however entity contains multiple primary keys"); of = metadata.primaryColumns[0].createValueMap(of); } return [2 /*return*/, this.connection.relationLoader.load(this.expressionMap.relationMetadata, of, this.queryRunner)]; }); }); }; return RelationQueryBuilder; }(QueryBuilder["a" /* QueryBuilder */])); //# sourceMappingURL=RelationQueryBuilder.js.map /***/ }), /* 207 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } Object.defineProperty(exports, "__esModule", { value: true }); exports.ShareManager = void 0; var ShareDialog_1 = __webpack_require__(267); var ShareManager = /*#__PURE__*/function () { function ShareManager() { _classCallCheck(this, ShareManager); } _createClass(ShareManager, [{ key: "share", value: function share(text) { if (device.platform === "browser") { this._shareBrowser(text); } else { this._shareMobile(text); } } }, { key: "_shareMobile", value: function _shareMobile(text) { navigator["share"](text); } }, { key: "_shareBrowser", value: function _shareBrowser(text) { new ShareDialog_1.ShareDialog(text).show(); } }]); return ShareManager; }(); exports.ShareManager = ShareManager; /***/ }), /* 208 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); var BaseDatabase_1 = __webpack_require__(148); var BaseModel = /*#__PURE__*/function () { function BaseModel() { _classCallCheck(this, BaseModel); this.id = null; this._isLoaded = false; } _createClass(BaseModel, [{ key: "getId", value: function getId() { return this.id; } }, { key: "setId", value: function setId(id) { this.id = id; } }, { key: "setLoaded", value: function setLoaded(isLoaded) { this._isLoaded = isLoaded; } }, { key: "save", value: function save() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: return _context.abrupt("return", this.constructor._database.saveEntity(this)); case 1: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "delete", value: function _delete() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", this.constructor._database.deleteEntity(this)); case 1: case "end": return _context2.stop(); } } }, _callee2, this); })); } }], [{ key: "getColumnDefinitions", value: function getColumnDefinitions() { return { id: { primary: true, type: BaseDatabase_1.BaseDatabase.TYPES.INTEGER, generated: true } }; } }, { key: "getRelationDefinitions", value: function getRelationDefinitions() { return {}; } }, { key: "getRelations", value: function getRelations() { return Object.keys(this.getRelationDefinitions()); } }, { key: "getSchemaDefinition", value: function getSchemaDefinition() { var columns = this.getColumnDefinitions(); Object.keys(columns).forEach(function (column) { if (typeof columns[column] === "string") { columns[column] = { type: columns[column] }; } if (columns[column].type === BaseDatabase_1.BaseDatabase.TYPES.MY_JSON && !columns[column].transformer) { columns[column].type = BaseDatabase_1.BaseDatabase.TYPES.MEDIUMTEXT; columns[column].transformer = { from: function from(text) { return text ? JSON.parse(text) : null; }, to: function to(json) { return json ? JSON.stringify(json) : ""; } }; } }); return { name: this.getSchemaName(), target: this, columns: columns, relations: this.getRelationDefinitions() }; } }, { key: "getSchemaName", value: function getSchemaName() { if (!this.SCHEMA_NAME) { this.SCHEMA_NAME = this.name; } return this.SCHEMA_NAME; } }, { key: "deleteMany", value: function deleteMany(entities) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: return _context3.abrupt("return", this._database.deleteEntity(entities)); case 1: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "saveMany", value: function saveMany(entities) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: return _context4.abrupt("return", this._database.saveEntity(entities)); case 1: case "end": return _context4.stop(); } } }, _callee4, this); })); } }, { key: "find", value: function find(where, order, limit, offset, relations) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: return _context5.abrupt("return", this._database.findEntities(this, where, order, limit, offset, relations)); case 1: case "end": return _context5.stop(); } } }, _callee5, this); })); } }, { key: "findAndCount", value: function findAndCount(where, order, limit, offset, relations) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: return _context6.abrupt("return", this._database.findAndCountEntities(this, where, order, limit, offset, relations)); case 1: case "end": return _context6.stop(); } } }, _callee6, this); })); } }, { key: "findOne", value: function findOne(where, order, offset, relations) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: return _context7.abrupt("return", this._database.findOneEntity(this, where, order, offset, relations)); case 1: case "end": return _context7.stop(); } } }, _callee7, this); })); } }, { key: "findById", value: function findById(id, relations) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { return regeneratorRuntime.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: return _context8.abrupt("return", this._database.findById(this, id, relations)); case 1: case "end": return _context8.stop(); } } }, _callee8, this); })); } }, { key: "findByIds", value: function findByIds(ids, relations) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { return regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: return _context9.abrupt("return", this._database.findByIds(this, ids, relations)); case 1: case "end": return _context9.stop(); } } }, _callee9, this); })); } }, { key: "clear", value: function clear() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee10() { return regeneratorRuntime.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: return _context10.abrupt("return", this._database.clearModel(this)); case 1: case "end": return _context10.stop(); } } }, _callee10, this); })); } }, { key: "equals", value: function equals(a, b) { var _this = this; if (a === b) { return true; } if (a === null || b === null) { return false; } if (Array.isArray(a) && Array.isArray(b) && a.length === b.length) { return a.every(function (subA, index) { _this.equals(subA, b[index]); }); } else if (a instanceof this && b instanceof this) { return a.constructor === b.constructor && a.getId() === b.getId(); } } }]); return BaseModel; }(); exports.BaseModel = BaseModel; /** * @type {null | BaseDatabase} * @private */ BaseModel._database = null; BaseModel.RELATION = { MANY_TO_MANY: "many-to-many", MANY_TO_ONE: "many-to-one", ONE_TO_MANY: "one-to-many", ONE_TO_ONE: "one-to-one" }; /***/ }), /* 209 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SyncJob = void 0; var LastSyncDates_1 = __webpack_require__(129); var client_1 = __webpack_require__(4); var shared_1 = __webpack_require__(17); var EasySyncClientDb_1 = __webpack_require__(128); var typeorm = __webpack_require__(47); var EasySyncBaseModel_1 = __webpack_require__(78); var ClientFileMedium_1 = __webpack_require__(151); var FileMedium_1 = __webpack_require__(202); var BaseDatabase_1 = __webpack_require__(148); var SyncJob = /*#__PURE__*/function () { function SyncJob() { _classCallCheck(this, SyncJob); this._syncedModels = {}; this._modelNames = []; this._relationshipModels = {}; this._lastSyncDates = {}; this._keyedModelClasses = {}; this._savePromise = Promise.resolve(); this._queryRunner = null; this._finalRes = {}; this._manyToManyRelations = {}; } _createClass(SyncJob, [{ key: "syncInBackgroundIfDataExists", value: function syncInBackgroundIfDataExists(queries) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var copiedQuery, requestQueries; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: this._keyedModelClasses = EasySyncClientDb_1.EasySyncClientDb.getModel(); copiedQuery = shared_1.JsonHelper.deepCopy(queries); requestQueries = this._buildRequestQuery(copiedQuery); _context.next = 5; return this._getLastSyncModels(this._modelNames, requestQueries); case 5: this._lastSyncDates = _context.sent; this._syncPromise = this.sync(queries); if (!Object["values"](this._lastSyncDates).some(function (lastSync) { return lastSync["getLastSynced"]() === 0; })) { _context.next = 10; break; } _context.next = 10; return this._syncPromise; case 10: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "getSyncPromise", value: function getSyncPromise() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", this._syncPromise); case 1: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "sync", value: function sync(queries) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var _this = this; var requestQueries, lastSyncPromises; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: this._keyedModelClasses = EasySyncClientDb_1.EasySyncClientDb.getModel(); requestQueries = this._buildRequestQuery(queries); if (!(Object.keys(this._lastSyncDates).length === 0)) { _context3.next = 6; break; } _context3.next = 5; return this._getLastSyncModels(this._modelNames, requestQueries); case 5: this._lastSyncDates = _context3.sent; case 6: _context3.next = 8; return this._doRuns(requestQueries); case 8: //Save new lastSync models lastSyncPromises = []; Object.keys(this._lastSyncDates).forEach(function (model) { lastSyncPromises.push(_this._lastSyncDates[model].save()); }); _context3.next = 12; return Promise.all(lastSyncPromises); case 12: _context3.next = 14; return EasySyncClientDb_1.EasySyncClientDb.getInstance().rawQuery("PRAGMA foreign_keys = ON;"); case 14: if (!(this._finalRes["FileMedium"] && this._finalRes["FileMedium"]["changed"])) { _context3.next = 21; break; } _context3.t0 = ClientFileMedium_1.ClientFileMedium; _context3.next = 18; return FileMedium_1.FileMedium.findByIds(this._finalRes["FileMedium"]["changed"]); case 18: _context3.t1 = _context3.sent; _context3.next = 21; return _context3.t0._handleImages.call(_context3.t0, _context3.t1); case 21: return _context3.abrupt("return", this._finalRes); case 22: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "_doRuns", value: function _doRuns(requestQueries) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { var _this2 = this; var newLastSynced, response, offset, shouldAskAgain, _loop; return regeneratorRuntime.wrap(function _callee7$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: //Initialize some variables newLastSynced = null; response = null; offset = 0; //startTransaction maybe allow read, but not write? _context8.next = 5; return EasySyncClientDb_1.EasySyncClientDb.getInstance().createQueryRunner(); case 5: this._queryRunner = _context8.sent; this._savePromise = this._queryRunner.query("PRAGMA foreign_keys = OFF;").then(function () { return _this2._queryRunner.startTransaction(); }); //Ask for next run until no more runs needed _loop = /*#__PURE__*/regeneratorRuntime.mark(function _loop() { var newRequestQueries; return regeneratorRuntime.wrap(function _loop$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: shouldAskAgain = false; _context7.next = 3; return SyncJob._fetchModel(requestQueries, offset); case 3: response = _context7.sent; offset = response["nextOffset"]; //Update newLastSynced if (shared_1.Helper.isNull(newLastSynced)) { newLastSynced = parseInt(response["newLastSynced"]); Object.keys(_this2._lastSyncDates).forEach(function (key) { _this2._lastSyncDates[key].setLastSynced(newLastSynced); }); } //create new request query and save changes newRequestQueries = []; response.results.forEach(function (res, i) { if (res && res.shouldAskAgain) { shouldAskAgain = true; newRequestQueries.push(requestQueries[i]); } //Extract entities _this2._extractEntities(res); }); requestQueries = newRequestQueries; case 9: case "end": return _context7.stop(); } } }, _loop); }); case 8: return _context8.delegateYield(_loop(), "t0", 9); case 9: if (shouldAskAgain) { _context8.next = 8; break; } case 10: _context8.next = 12; return this._handleManyToManyRelations(); case 12: return _context8.abrupt("return", this._savePromise.then(function () { return __awaiter(_this2, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return this._queryRunner.commitTransaction(); case 2: case "end": return _context4.stop(); } } }, _callee4, this); })); }).catch(function (e) { return __awaiter(_this2, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: console.error(e); _context5.next = 3; return this._queryRunner.rollbackTransaction(); case 3: case "end": return _context5.stop(); } } }, _callee5, this); })); }).finally(function () { return __awaiter(_this2, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _context6.next = 2; return this._queryRunner.release(); case 2: case "end": return _context6.stop(); } } }, _callee6, this); })); })); case 13: case "end": return _context8.stop(); } } }, _callee7, this); })); } /** * Extract the Entities and saves them(?) for one model * * @param modelRes * @private */ }, { key: "_extractEntities", value: function _extractEntities(modelRes) { var _this3 = this, _this$_finalRes$model, _this$_finalRes$model2; if (!modelRes) { return; } var modelClass = this._keyedModelClasses[modelRes["model"]]; var modelName = modelClass.getSchemaName(); var deletedModelsIds = []; var changedEntities = []; //split result into deleted and changed/new entities modelRes["entities"].forEach(function (entity) { if (entity.deleted) { deletedModelsIds.push(entity.id); } else { changedEntities.push(entity); } }); this._syncedModels[modelName] = shared_1.Helper.nonNull(this._syncedModels[modelName], {}); //convert json to entity and save it var schemaDefinition = modelClass.getSchemaDefinition(); var relations = schemaDefinition["relations"]; var columns = schemaDefinition["columns"]; var changedEntityIds = []; changedEntities.forEach(function (entity) { Object.keys(relations).forEach(function (relation) { if (relations[relation].type === "many-to-many" && Array.isArray(entity[relation])) { var table = relations[relation].joinTable; var ownName; if (table.joinColumn && table.joinColumn.name) { ownName = table.joinColumn.name; } else { ownName = modelClass.getSchemaName(); ownName = ownName.substr(0, 1).toLowerCase() + ownName.substr(1) + "Id"; } var otherName; if (table.inverseJoinColumn && table.inverseJoinColumn.name) { otherName = table.inverseJoinColumn.name; } else { otherName = relations[relation].target; otherName = otherName.substr(0, 1).toLowerCase() + otherName.substr(1) + "Id"; } _this3._manyToManyRelations[table.name] = shared_1.Helper.nonNull(_this3._manyToManyRelations[table.name], {}); _this3._manyToManyRelations[table.name]["values"] = shared_1.Helper.nonNull(_this3._manyToManyRelations[table.name]["values"], []); _this3._manyToManyRelations[table.name]["delete_" + ownName] = shared_1.Helper.nonNull(_this3._manyToManyRelations[table.name]["delete_" + ownName], []); _this3._manyToManyRelations[table.name]["delete_" + ownName].push(entity.id); var otherIdsAlreadyInserted = []; var insertedRelations = _this3._manyToManyRelations[table.name]["values"].filter(function (relValue) { return relValue[ownName] === entity.id; }); insertedRelations.forEach(function (relValue) { return otherIdsAlreadyInserted.push(relValue[otherName]); }); entity[relation].forEach(function (otherId) { var index = otherIdsAlreadyInserted.indexOf(otherId); if (index === -1) { var value = {}; value[ownName] = entity.id; value[otherName] = otherId; _this3._manyToManyRelations[table.name]["values"].push(value); } }); } else if (relations[relation].type === "many-to-one" || relations[relation].type === "one-to-one" && relations[relation].joinColumn) //DO not check for a value of the relation here. Else If the first entity has no value set, the field // will not be set and therefore ignored for all other entites too { var fieldName; if (relations[relation].joinColumn && relations[relation].joinColumn.name) { fieldName = relations[relation].joinColumn.name; } else { fieldName = relation + "Id"; } entity[fieldName] = entity[relation]; } delete entity[relation]; }); Object.keys(columns).forEach(function (columnName) { if (columns[columnName].escapeHTML) { entity[columnName] = shared_1.XSSHelper.escapeHTML(entity[columnName]); } if (columns[columnName].escapeJS) { entity[columnName] = shared_1.XSSHelper.escapeJS(entity[columnName]); } }); changedEntityIds.push(entity.id); }); this._savePromise = this._savePromise.then(function () { return __awaiter(_this3, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { return regeneratorRuntime.wrap(function _callee8$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _context9.next = 2; return this._insertOrReplace(modelClass, changedEntities); case 2: return _context9.abrupt("return", _context9.sent); case 3: case "end": return _context9.stop(); } } }, _callee8, this); })); }); this._savePromise = this._savePromise.then(function () { return __awaiter(_this3, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { return regeneratorRuntime.wrap(function _callee9$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: _context10.next = 2; return this._deleteModels(modelClass, deletedModelsIds); case 2: return _context10.abrupt("return", _context10.sent); case 3: case "end": return _context10.stop(); } } }, _callee9, this); })); }); this._finalRes[modelName] = shared_1.Helper.nonNull(this._finalRes[modelName], { "deleted": [], "changed": [] }); (_this$_finalRes$model = this._finalRes[modelName]["deleted"]).push.apply(_this$_finalRes$model, deletedModelsIds); (_this$_finalRes$model2 = this._finalRes[modelName]["changed"]).push.apply(_this$_finalRes$model2, changedEntityIds); } }, { key: "_buildRequestQuery", value: function _buildRequestQuery(queries) { var _this4 = this; var requestQueries = []; //initializing query queries.forEach(function (query) { if (query.prototype instanceof EasySyncBaseModel_1.EasySyncBaseModel) { query = { model: query, where: {} }; } query.model = query.model.getSchemaName(); _this4._modelNames.push(query.model); requestQueries.push(query); var key = "" + query.model + JSON.stringify(query.where); if (shared_1.Helper.isNotNull(_this4._lastSyncDates[key])) { query["lastSynced"] = _this4._lastSyncDates[key].getLastSynced(); } }); return requestQueries; } }, { key: "_getLastSyncModels", value: function _getLastSyncModels(modelNames, requestQueries) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee10() { var lastSyncModelsArray, lastSyncDates; return regeneratorRuntime.wrap(function _callee10$(_context11) { while (1) { switch (_context11.prev = _context11.next) { case 0: _context11.next = 2; return LastSyncDates_1.LastSyncDates.find({ "model": typeorm.In(modelNames) }); case 2: lastSyncModelsArray = _context11.sent; lastSyncDates = shared_1.Helper.arrayToObject(lastSyncModelsArray, function (model) { return "" + model.getModel() + JSON.stringify(model.where); }); requestQueries.forEach(function (query) { var key = "" + query.model + JSON.stringify(query.where); if (shared_1.Helper.isNull(lastSyncDates[key])) { var lastSyncDate = new LastSyncDates_1.LastSyncDates(); lastSyncDate.setModel(query.model); lastSyncDate.where = query.where; lastSyncDate.setLastSynced(0); lastSyncDates[key] = lastSyncDate; } query["lastSynced"] = lastSyncDates[key].getLastSynced(); }); return _context11.abrupt("return", lastSyncDates); case 6: case "end": return _context11.stop(); } } }, _callee10); })); } }, { key: "_insertOrReplace", value: function _insertOrReplace(modelClass, changedEntities) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee12() { var _this5 = this; var MAX_INSERT_IN_ONE_GO, schemaDefinition, tableName, columns, fields, values, valueStrings, sql; return regeneratorRuntime.wrap(function _callee12$(_context13) { while (1) { switch (_context13.prev = _context13.next) { case 0: MAX_INSERT_IN_ONE_GO = 300; if (!(changedEntities.length === 0)) { _context13.next = 3; break; } return _context13.abrupt("return"); case 3: schemaDefinition = modelClass.getSchemaDefinition(); tableName = schemaDefinition.name; tableName = shared_1.Helper.toSnakeCase(tableName); columns = schemaDefinition.columns; //Get fields from entity for including relation fields fields = Object.keys(changedEntities[0]); values = []; valueStrings = []; _context13.next = 12; return shared_1.Helper.asyncForEach(changedEntities, function (entity) { return __awaiter(_this5, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee11() { var valueString, sql; return regeneratorRuntime.wrap(function _callee11$(_context12) { while (1) { switch (_context12.prev = _context12.next) { case 0: valueString = []; //Stellt die reihenfolge sicher //Stellt die reihenfolge sicher fields.forEach(function (field) { var val = entity[field]; if (columns[field] && columns[field].transformer) { val = columns[field].transformer.to(val); } if (columns[field] && columns[field].type === BaseDatabase_1.BaseDatabase.TYPES.SIMPLE_JSON) { val = JSON.stringify(val); } values.push(val); valueString.push("?"); }); valueStrings.push("(" + valueString.join(",") + ")"); if (!(valueStrings.length >= MAX_INSERT_IN_ONE_GO)) { _context12.next = 9; break; } sql = "INSERT OR REPLACE INTO " + tableName + " (" + fields.join(",") + ") VALUES " + valueStrings.join(","); _context12.next = 7; return this._queryRunner.query(sql, values); case 7: valueStrings = []; values = []; case 9: case "end": return _context12.stop(); } } }, _callee11, this); })); }); case 12: if (!(valueStrings.length > 0)) { _context13.next = 16; break; } sql = "INSERT OR REPLACE INTO " + tableName + " (" + fields.join(",") + ") VALUES " + valueStrings.join(","); _context13.next = 16; return this._queryRunner.query(sql, values); case 16: case "end": return _context13.stop(); } } }, _callee12, this); })); } }, { key: "_deleteModels", value: function _deleteModels(modelClass, deletedModelsIds) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee14() { var _this6 = this; var MAX_DELETES_IN_ONE_GO, tableName, ids, valueStrings, sql; return regeneratorRuntime.wrap(function _callee14$(_context15) { while (1) { switch (_context15.prev = _context15.next) { case 0: MAX_DELETES_IN_ONE_GO = 300; if (!(deletedModelsIds.length === 0)) { _context15.next = 3; break; } return _context15.abrupt("return"); case 3: tableName = modelClass.getSchemaName(); tableName = shared_1.Helper.toSnakeCase(tableName); ids = []; valueStrings = []; _context15.next = 9; return shared_1.Helper.asyncForEach(deletedModelsIds, function (entityId) { return __awaiter(_this6, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee13() { var sql; return regeneratorRuntime.wrap(function _callee13$(_context14) { while (1) { switch (_context14.prev = _context14.next) { case 0: ids.push(entityId); valueStrings.push("?"); if (!(valueStrings.length >= MAX_DELETES_IN_ONE_GO)) { _context14.next = 8; break; } sql = "DELETE FROM " + tableName + " WHERE id IN (" + ids.join(",") + ")"; _context14.next = 6; return this._queryRunner.query(sql); case 6: valueStrings = []; ids = []; case 8: case "end": return _context14.stop(); } } }, _callee13, this); })); }); case 9: if (!(valueStrings.length > 0)) { _context15.next = 13; break; } sql = "DELETE FROM " + tableName + " WHERE id IN (" + ids.join(",") + ")"; _context15.next = 13; return this._queryRunner.query(sql); case 13: case "end": return _context15.stop(); } } }, _callee14, this); })); } }, { key: "_handleManyToManyRelations", value: function _handleManyToManyRelations() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee15() { var _this7 = this; var promises; return regeneratorRuntime.wrap(function _callee15$(_context16) { while (1) { switch (_context16.prev = _context16.next) { case 0: _context16.next = 2; return this._savePromise; case 2: promises = []; Object.keys(this._manyToManyRelations).forEach(function (table) { var sql = "DELETE FROM " + table + " WHERE "; var deleteSqls = []; Object.keys(_this7._manyToManyRelations[table]).forEach(function (field) { if (field.startsWith("delete_")) { deleteSqls.push(field.substr(7) + " IN (" + _this7._manyToManyRelations[table][field].join(",") + ")"); } }); sql += deleteSqls.join(" OR ") + ";"; promises.push(_this7._queryRunner.query(sql).then(function () { if (_this7._manyToManyRelations[table].values.length > 0) { var fields = Object.keys(_this7._manyToManyRelations[table].values[0]); var valueStrings = []; _this7._manyToManyRelations[table].values.forEach(function (valuePair) { var values = []; fields.forEach(function (field) { values.push(valuePair[field]); }); valueStrings.push("(" + values.join(",") + ")"); }); var _sql = "INSERT OR REPLACE INTO " + table + "(" + fields.join(",") + ") VALUES " + valueStrings.join(",") + ";"; return _this7._queryRunner.query(_sql); } })); }); _context16.next = 6; return Promise.all(promises); case 6: case "end": return _context16.stop(); } } }, _callee15, this); })); } }], [{ key: "_fetchModel", value: function _fetchModel(query, offset) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee16() { return regeneratorRuntime.wrap(function _callee16$(_context17) { while (1) { switch (_context17.prev = _context17.next) { case 0: _context17.next = 2; return client_1.DataManager.load(SyncJob.SYNC_PATH_PREFIX + client_1.DataManager.buildQuery({ "queries": JSON.stringify(query), "offset": offset })); case 2: return _context17.abrupt("return", _context17.sent); case 3: case "end": return _context17.stop(); } } }, _callee16); })); } }]); return SyncJob; }(); exports.SyncJob = SyncJob; SyncJob.SYNC_PATH_PREFIX = "sync"; /***/ }), /* 210 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Form = void 0; var DataManager_1 = __webpack_require__(59); var Helper_1 = __webpack_require__(15); var Translator_1 = __webpack_require__(30); var Toast_1 = __webpack_require__(85); var Form = /*#__PURE__*/function () { function Form(formElem, urlOrCallback, method) { var _this = this; _classCallCheck(this, Form); this._formElem = formElem; this._method = Helper_1.Helper.nonNull(method, formElem["method"], "POST"); this._elementChangeListener = null; this._validators = []; this._isBusy = false; if (typeof urlOrCallback === "string") { this._submitHandler = function (values) { if (_this._method.toLowerCase() === "get") { return DataManager_1.DataManager.load(urlOrCallback + DataManager_1.DataManager.buildQuery(values)); } else {//TODO, wenn Serververbindung kommt // return (DataManager.send(urlOrCallback, values)); } }; } else { this._submitHandler = urlOrCallback; } this._editors = []; this._submitCallback = null; this.errorCallback = function (errors) { return __awaiter(_this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return this.setErrors(errors); case 2: case "end": return _context.stop(); } } }, _callee, this); })); }; formElem.addEventListener("submit", function (e) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: e.preventDefault(); _context2.next = 3; return self.doSubmit(e); case 3: case "end": return _context2.stop(); } } }, _callee2); })); }); var self = this; _toConsumableArray(formElem.elements).forEach(function (element) { element.addEventListener("change", function () { if (this.value.trim() !== "") { this.classList.add("notEmpty"); } else { this.classList.remove("notEmpty"); } this.setCustomValidity(""); if (Helper_1.Helper.isNotNull(self._elementChangeListener)) { self._elementChangeListener(element, this); } this.setCustomValidity(""); if (element.accept && element.accept.indexOf("image") !== -1) { if (element.files && element.files[0]) { var reader = new FileReader(); reader.onload = function (e) { var previewElem = formElem.querySelector("." + element.name + "-preview"); if (previewElem) { previewElem.src = e.target["result"]; } }; reader.readAsDataURL(element.files[0]); } else { formElem.querySelector("." + element.name + "-preview").src = ""; } } }); element.addEventListener("keydown", function () { this.setCustomValidity(""); }); }); } _createClass(Form, [{ key: "addValidator", value: function addValidator(validatorCallback) { this._validators.push(validatorCallback); } }, { key: "onError", value: function onError(errorHandler) { this.errorCallback = errorHandler; } }, { key: "addEditor", value: function addEditor(e) { this._editors.push(e); } }, { key: "doSubmit", value: function doSubmit(e) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var res; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: if (this._isBusy) { _context3.next = 5; break; } _context3.next = 3; return this.submit(); case 3: res = _context3.sent; return _context3.abrupt("return", res); case 5: return _context3.abrupt("return", false); case 6: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "setValues", value: function setValues(valuePromise) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var values, k, options, val, option, previewImage; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: this.setIsBusy(true); _context4.next = 3; return Promise.resolve(valuePromise); case 3: values = _context4.sent; this.setIsBusy(false); for (k in values) { if (Helper_1.Helper.isNotNull(this._formElem.elements[k])) { if (Helper_1.Helper.isNotNull(this._formElem.elements[k].options) && Helper_1.Helper.isNotNull(values[k + "Options"])) { options = this._formElem.elements[k].options; for (val in values[k + "Options"]) { option = document.createElement("option"); option.value = val; option.innerText = values[k + "Options"][val]; options.add(option); } } if (this._formElem.elements[k].type && (this._formElem.elements[k].type === "checkbox" || this._formElem.elements[k].type === "radio")) { this._formElem.elements[k].checked = this._formElem.elements[k].value == values[k]; } else if (this._formElem.elements[k].type && this._formElem.elements[k].type === "file") { if (this._formElem.elements[k + "-hidden"]) { this._formElem.elements[k + "-hidden"].value = values[k]; } if (this._formElem.elements[k].accept && this._formElem.elements[k].accept.indexOf("image") !== -1) { previewImage = this._formElem.querySelector("." + k + "-preview"); if (previewImage) { previewImage.src = values[k]; } } } else { this._formElem.elements[k].value = Helper_1.Helper.htmlspecialcharsDecode(values[k]); if (this._formElem.elements[k].classList) { if (Helper_1.Helper.isNotNull(values[k]) && ("" + values[k]).trim() !== "") { this._formElem.elements[k].classList.add("notEmpty"); } else { this._formElem.elements[k].classList.remove("notEmpty"); } } } } } return _context4.abrupt("return", this); case 7: case "end": return _context4.stop(); } } }, _callee4, this); })); } }, { key: "getValues", value: function getValues(filesToBase64) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var valuesFormData, values; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: valuesFormData = new FormData(this._formElem); values = Array.from(valuesFormData["entries"]()).reduce(function (memo, pair) { return Object.assign(Object.assign({}, memo), _defineProperty({}, pair[0], pair[1])); }, {}); if (!Helper_1.Helper.nonNull(filesToBase64, true)) { _context5.next = 6; break; } _context5.next = 5; return Form.filesToBase64(values); case 5: values = _context5.sent; case 6: return _context5.abrupt("return", values); case 7: case "end": return _context5.stop(); } } }, _callee5, this); })); } }, { key: "setElementChangeListener", value: function setElementChangeListener(listener) { this._elementChangeListener = listener; } }, { key: "clearErrors", value: function clearErrors() { var _this2 = this; Object.keys(this._formElem.elements).forEach(function (elemKey) { _this2._formElem.elements[elemKey].setCustomValidity(""); }); } }, { key: "setErrors", value: function setErrors(errors) { var hasElem = false; var firstError = null; // let notCatchedErrors = []; for (var k in errors) { if (Helper_1.Helper.isNotNull(this._formElem.elements[k]) && this._formElem.elements[k].type !== "hidden" && Helper_1.Helper.isNull(this._formElem.elements[k].readonly) && (Helper_1.Helper.isNull(this._formElem.elements[k].disabled) || !this._formElem.elements[k].disabled)) { this._formElem.elements[k].setCustomValidity(Translator_1.Translator.translate(Helper_1.Helper.nonNull(errors[k], "form-default-error"))); hasElem = true; } else { new Toast_1.Toast(Helper_1.Helper.nonNull(errors[k], "form-default-error")).show(); } // if (Helper.isNull(firstError)) { // firstError = ; // } } // if (!hasElem && Helper.isNotNull(firstError)) { // for (let k in this._formElem.elements) { // if (this._formElem.elements[k].type !== "hidden") { // this._formElem.elements[k].setCustomValidity(Translator.translate(firstError)); // hasElem = true; // break; // } // } // } if (hasElem) { "reportValidity" in this._formElem && this._formElem.reportValidity(); } } }, { key: "setIsBusy", value: function setIsBusy(isBusy) { this._isBusy = isBusy; if (this._isBusy) { this._formElem.classList.add("sending"); } else { this._formElem.classList.remove("sending"); } } }, { key: "submit", value: function submit() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var res; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: this._editors.forEach(function (e) { return e.updateSourceElement(); }); this.setIsBusy(true); _context6.next = 4; return this.validate(); case 4: if (!_context6.sent) { _context6.next = 24; break; } res = false; _context6.prev = 6; _context6.t0 = this; _context6.next = 10; return this.getValues(); case 10: _context6.t1 = _context6.sent; _context6.t2 = this; _context6.next = 14; return _context6.t0._submitHandler.call(_context6.t0, _context6.t1, _context6.t2); case 14: res = _context6.sent; _context6.next = 20; break; case 17: _context6.prev = 17; _context6.t3 = _context6["catch"](6); console.error(_context6.t3); case 20: _context6.prev = 20; this.setIsBusy(false); return _context6.finish(20); case 23: return _context6.abrupt("return", res); case 24: this.setIsBusy(false); return _context6.abrupt("return", false); case 26: case "end": return _context6.stop(); } } }, _callee6, this, [[6, 17, 20, 23]]); })); } }, { key: "validate", value: function validate() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { var _this3 = this; var values, res, hasErrors, errors; return regeneratorRuntime.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: if (!("reportValidity" in this._formElem && !this._formElem.reportValidity())) { _context8.next = 2; break; } return _context8.abrupt("return", false); case 2: _context8.next = 4; return this.getValues(); case 4: values = _context8.sent; _context8.next = 7; return Helper_1.Helper.asyncForEach(this._validators, function (validator) { return __awaiter(_this3, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: return _context7.abrupt("return", validator(values, this)); case 1: case "end": return _context7.stop(); } } }, _callee7, this); })); }, true); case 7: res = _context8.sent; hasErrors = false; errors = {}; res.forEach(function (value) { if (value !== true) { hasErrors = true; if (_typeof(value) === "object") { for (var k in value) { errors[k] = value[k]; } } } }); if (!hasErrors) { _context8.next = 15; break; } _context8.next = 14; return this.setErrors(errors); case 14: return _context8.abrupt("return", false); case 15: return _context8.abrupt("return", true); case 16: case "end": return _context8.stop(); } } }, _callee8, this); })); } }, { key: "onSubmit", value: function onSubmit(callback) { this._submitCallback = callback; } }, { key: "getFormElement", value: function getFormElement() { return this._formElem; } }], [{ key: "filesToBase64", value: function filesToBase64(values) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { var filePromises; return regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: filePromises = []; Object.keys(values).forEach(function (key) { if (values[key] instanceof Blob) { filePromises.push(new Promise(function (resolve, reject) { var reader = new FileReader(); reader.onload = function () { return resolve(reader.result); }; reader.onerror = function (error) { return reject(error); }; reader.readAsDataURL(values[key]); }).then(function (base64) { return values[key] = base64; })); } }); _context9.next = 4; return Promise.all(filePromises); case 4: return _context9.abrupt("return", values); case 5: case "end": return _context9.stop(); } } }, _callee9); })); } }]); return Form; }(); exports.Form = Form; /***/ }), /* 211 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DeleteUserManagement1000000000000 = void 0; var DeleteUserManagement1000000000000 = /*#__PURE__*/function () { function DeleteUserManagement1000000000000() { _classCallCheck(this, DeleteUserManagement1000000000000); } _createClass(DeleteUserManagement1000000000000, [{ key: "_isServer", value: function _isServer() { return (typeof document === "undefined" ? "undefined" : _typeof(document)) !== "object"; } }, { key: "up", value: function up(queryRunner) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return queryRunner.dropTable("roleAccess", true); case 2: _context.next = 4; return queryRunner.dropTable("roleChildren", true); case 4: _context.next = 6; return queryRunner.dropTable("userRole", true); case 6: if (!this._isServer()) { _context.next = 9; break; } _context.next = 9; return queryRunner.dropTable("user_access", true); case 9: _context.next = 11; return queryRunner.dropTable("access", true); case 11: _context.next = 13; return queryRunner.dropTable("role", true); case 13: _context.next = 15; return queryRunner.dropTable("user", true); case 15: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "down", value: function down(queryRunner) { return undefined; } }]); return DeleteUserManagement1000000000000; }(); exports.DeleteUserManagement1000000000000 = DeleteUserManagement1000000000000; /***/ }), /* 212 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SetupUserManagement1000000001000 = void 0; var typeorm_1 = __webpack_require__(47); var cordova_sites_database_1 = __webpack_require__(20); var SetupUserManagement1000000001000 = /*#__PURE__*/function () { function SetupUserManagement1000000001000() { _classCallCheck(this, SetupUserManagement1000000001000); } _createClass(SetupUserManagement1000000001000, [{ key: "_isServer", value: function _isServer() { return (typeof document === "undefined" ? "undefined" : _typeof(document)) !== "object"; } }, { key: "up", value: function up(queryRunner) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return this._addAccess(queryRunner); case 2: _context.next = 4; return this._addRole(queryRunner); case 4: _context.next = 6; return this._addUser(queryRunner); case 6: _context.next = 8; return this._addRoleAccess(queryRunner); case 8: _context.next = 10; return this._addRoleChildren(queryRunner); case 10: _context.next = 12; return this._addUserRole(queryRunner); case 12: if (!this._isServer()) { _context.next = 15; break; } _context.next = 15; return this._addUserAccess(queryRunner); case 15: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "_addAccess", value: function _addAccess(queryRunner) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var accessTable; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: accessTable = new typeorm_1.Table({ name: "access", columns: [{ name: "id", isPrimary: true, type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER, isGenerated: this._isServer(), generationStrategy: "increment" }, { name: "createdAt", type: cordova_sites_database_1.BaseDatabase.TYPES.DATE }, { name: "updatedAt", type: cordova_sites_database_1.BaseDatabase.TYPES.DATE }, { name: "version", type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER }, { name: "deleted", type: cordova_sites_database_1.BaseDatabase.TYPES.BOOLEAN }, { name: "name", type: cordova_sites_database_1.BaseDatabase.TYPES.STRING, isUnique: true }, { name: "description", type: cordova_sites_database_1.BaseDatabase.TYPES.STRING }] }); _context2.next = 3; return queryRunner.createTable(accessTable, true); case 3: return _context2.abrupt("return", _context2.sent); case 4: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "_addRole", value: function _addRole(queryRunner) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var roleTable; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: roleTable = new typeorm_1.Table({ name: "role", columns: [{ name: "id", isPrimary: true, type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER, isGenerated: this._isServer(), generationStrategy: "increment" }, { name: "createdAt", type: cordova_sites_database_1.BaseDatabase.TYPES.DATE }, { name: "updatedAt", type: cordova_sites_database_1.BaseDatabase.TYPES.DATE }, { name: "version", type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER }, { name: "deleted", type: cordova_sites_database_1.BaseDatabase.TYPES.BOOLEAN }, { name: "name", type: cordova_sites_database_1.BaseDatabase.TYPES.STRING }, { name: "description", type: cordova_sites_database_1.BaseDatabase.TYPES.STRING }] }); _context3.next = 3; return queryRunner.createTable(roleTable, true); case 3: return _context3.abrupt("return", _context3.sent); case 4: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "_addUser", value: function _addUser(queryRunner) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var userTable; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: userTable = new typeorm_1.Table({ name: "user", columns: [{ name: "id", isPrimary: true, type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER, isGenerated: this._isServer(), generationStrategy: "increment" }, { name: "createdAt", type: cordova_sites_database_1.BaseDatabase.TYPES.DATE }, { name: "updatedAt", type: cordova_sites_database_1.BaseDatabase.TYPES.DATE }, { name: "version", type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER }, { name: "deleted", type: cordova_sites_database_1.BaseDatabase.TYPES.BOOLEAN }, { name: "username", type: cordova_sites_database_1.BaseDatabase.TYPES.STRING, isUnique: true }, { name: "email", type: cordova_sites_database_1.BaseDatabase.TYPES.STRING, isUnique: true }, { name: "password", type: cordova_sites_database_1.BaseDatabase.TYPES.STRING }, { name: "activated", type: cordova_sites_database_1.BaseDatabase.TYPES.BOOLEAN }, { name: "blocked", type: cordova_sites_database_1.BaseDatabase.TYPES.BOOLEAN }, { name: "salt", type: cordova_sites_database_1.BaseDatabase.TYPES.STRING }] }); _context4.next = 3; return queryRunner.createTable(userTable, true); case 3: return _context4.abrupt("return", _context4.sent); case 4: case "end": return _context4.stop(); } } }, _callee4, this); })); } }, { key: "_addRoleAccess", value: function _addRoleAccess(queryRunner) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var roleAccessTable; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: roleAccessTable = new typeorm_1.Table({ name: "roleAccess", columns: [{ name: "roleId", isPrimary: true, type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER }, { name: "accessId", isPrimary: true, type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER }], indices: [{ name: "IDX_38300dd4683a436f8db90b42bd", columnNames: ["roleId"] }, { name: "IDX_bd55fc382ad2480f75a17e33cb", columnNames: ["accessId"] }], foreignKeys: [{ name: "FK_38300dd4683a436f8db90b42bd9", columnNames: ["roleId"], referencedTableName: "role", referencedColumnNames: ["id"], onDelete: "cascade" }, { name: "FK_bd55fc382ad2480f75a17e33cb5", columnNames: ["accessId"], referencedTableName: "access", referencedColumnNames: ["id"], onDelete: "cascade" }] }); _context5.next = 3; return queryRunner.createTable(roleAccessTable, true); case 3: return _context5.abrupt("return", _context5.sent); case 4: case "end": return _context5.stop(); } } }, _callee5); })); } }, { key: "_addRoleChildren", value: function _addRoleChildren(queryRunner) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var roleChildrenTable; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: roleChildrenTable = new typeorm_1.Table({ name: "roleChildren", columns: [{ name: "childId", isPrimary: true, type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER }, { name: "parentId", isPrimary: true, type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER }], indices: [{ name: "IDX_030234c342756c67cefa480687", columnNames: ["childId"] }, { name: "IDX_35741f2d68a65c2765047705f8", columnNames: ["parentId"] }], foreignKeys: [{ name: "FK_roleChildren_childId", columnNames: ["childId"], referencedTableName: "role", referencedColumnNames: ["id"], onDelete: "cascade" }, { name: "FK_roleChildren_parentId", columnNames: ["parentId"], referencedTableName: "role", referencedColumnNames: ["id"], onDelete: "cascade" }] }); _context6.next = 3; return queryRunner.createTable(roleChildrenTable, true); case 3: return _context6.abrupt("return", _context6.sent); case 4: case "end": return _context6.stop(); } } }, _callee6); })); } }, { key: "_addUserRole", value: function _addUserRole(queryRunner) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { var userRoleTable; return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: userRoleTable = new typeorm_1.Table({ name: "userRole", columns: [{ name: "userId", isPrimary: true, type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER }, { name: "roleId", isPrimary: true, type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER }], indices: [{ name: "IDX_userRole_userId", columnNames: ["userId"] }, { name: "IDX_userRole_roleId", columnNames: ["roleId"] }], foreignKeys: [{ name: "FK_userRole_userId", columnNames: ["userId"], referencedTableName: "user", referencedColumnNames: ["id"], onDelete: "cascade" }, { name: "FK_userRole_roleId", columnNames: ["roleId"], referencedTableName: "role", referencedColumnNames: ["id"], onDelete: "cascade" }] }); _context7.next = 3; return queryRunner.createTable(userRoleTable, true); case 3: return _context7.abrupt("return", _context7.sent); case 4: case "end": return _context7.stop(); } } }, _callee7); })); } }, { key: "_addUserAccess", value: function _addUserAccess(queryRunner) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { var userRoleTable; return regeneratorRuntime.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: userRoleTable = new typeorm_1.Table({ name: "user_access", columns: [{ name: "id", isPrimary: true, isGenerated: this._isServer(), generationStrategy: "increment", type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER }, { name: "userId", type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER, isNullable: true }, { name: "accessId", type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER, isNullable: true }], indices: [{ name: "IDX_userAccess_userId", columnNames: ["userId"] }, { name: "IDX_userAccess_accessId", columnNames: ["accessId"] }], foreignKeys: [{ name: "FK_userAccess_userId", columnNames: ["userId"], referencedTableName: "user", referencedColumnNames: ["id"], onDelete: "cascade" }, { name: "FK_userAccess_accessId", columnNames: ["accessId"], referencedTableName: "access", referencedColumnNames: ["id"], onDelete: "cascade" }] }); _context8.next = 3; return queryRunner.createTable(userRoleTable, true); case 3: return _context8.abrupt("return", _context8.sent); case 4: case "end": return _context8.stop(); } } }, _callee8, this); })); } }, { key: "down", value: function down(queryRunner) { return undefined; } }]); return SetupUserManagement1000000001000; }(); exports.SetupUserManagement1000000001000 = SetupUserManagement1000000001000; /***/ }), /* 213 */ /***/ (function(module, exports, __webpack_require__) { module.exports = !__webpack_require__(28) && !__webpack_require__(12)(function () { return Object.defineProperty(__webpack_require__(164)('div'), 'a', { get: function () { return 7; } }).a != 7; }); /***/ }), /* 214 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(11); var core = __webpack_require__(26); var LIBRARY = __webpack_require__(89); var wksExt = __webpack_require__(165); var defineProperty = __webpack_require__(29).f; module.exports = function (name) { var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); }; /***/ }), /* 215 */ /***/ (function(module, exports, __webpack_require__) { var has = __webpack_require__(51); var toIObject = __webpack_require__(53); var arrayIndexOf = __webpack_require__(135)(false); var IE_PROTO = __webpack_require__(166)('IE_PROTO'); module.exports = function (object, names) { var O = toIObject(object); var i = 0; var result = []; var key; for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); // Don't enum bug & hidden keys while (names.length > i) if (has(O, key = names[i++])) { ~arrayIndexOf(result, key) || result.push(key); } return result; }; /***/ }), /* 216 */ /***/ (function(module, exports, __webpack_require__) { var dP = __webpack_require__(29); var anObject = __webpack_require__(13); var getKeys = __webpack_require__(90); module.exports = __webpack_require__(28) ? Object.defineProperties : function defineProperties(O, Properties) { anObject(O); var keys = getKeys(Properties); var length = keys.length; var i = 0; var P; while (length > i) dP.f(O, P = keys[i++], Properties[P]); return O; }; /***/ }), /* 217 */ /***/ (function(module, exports, __webpack_require__) { // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window var toIObject = __webpack_require__(53); var gOPN = __webpack_require__(93).f; var toString = {}.toString; var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; var getWindowNames = function (it) { try { return gOPN(it); } catch (e) { return windowNames.slice(); } }; module.exports.f = function getOwnPropertyNames(it) { return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); }; /***/ }), /* 218 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 19.1.2.1 Object.assign(target, source, ...) var DESCRIPTORS = __webpack_require__(28); var getKeys = __webpack_require__(90); var gOPS = __webpack_require__(136); var pIE = __webpack_require__(123); var toObject = __webpack_require__(36); var IObject = __webpack_require__(122); var $assign = Object.assign; // should work with symbols and should have deterministic property order (V8 bug) module.exports = !$assign || __webpack_require__(12)(function () { var A = {}; var B = {}; // eslint-disable-next-line no-undef var S = Symbol(); var K = 'abcdefghijklmnopqrst'; A[S] = 7; K.split('').forEach(function (k) { B[k] = k; }); return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; }) ? function assign(target, source) { // eslint-disable-line no-unused-vars var T = toObject(target); var aLen = arguments.length; var index = 1; var getSymbols = gOPS.f; var isEnum = pIE.f; while (aLen > index) { var S = IObject(arguments[index++]); var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); var length = keys.length; var j = 0; var key; while (length > j) { key = keys[j++]; if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key]; } } return T; } : $assign; /***/ }), /* 219 */ /***/ (function(module, exports) { // 7.2.9 SameValue(x, y) module.exports = Object.is || function is(x, y) { // eslint-disable-next-line no-self-compare return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; }; /***/ }), /* 220 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var aFunction = __webpack_require__(64); var isObject = __webpack_require__(14); var invoke = __webpack_require__(221); var arraySlice = [].slice; var factories = {}; var construct = function (F, len, args) { if (!(len in factories)) { for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']'; // eslint-disable-next-line no-new-func factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')'); } return factories[len](F, args); }; module.exports = Function.bind || function bind(that /* , ...args */) { var fn = aFunction(this); var partArgs = arraySlice.call(arguments, 1); var bound = function (/* args... */) { var args = partArgs.concat(arraySlice.call(arguments)); return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that); }; if (isObject(fn.prototype)) bound.prototype = fn.prototype; return bound; }; /***/ }), /* 221 */ /***/ (function(module, exports) { // fast apply, http://jsperf.lnkit.com/fast-apply/5 module.exports = function (fn, args, that) { var un = that === undefined; switch (args.length) { case 0: return un ? fn() : fn.call(that); case 1: return un ? fn(args[0]) : fn.call(that, args[0]); case 2: return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]); case 3: return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]); case 4: return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]); } return fn.apply(that, args); }; /***/ }), /* 222 */ /***/ (function(module, exports, __webpack_require__) { var $parseInt = __webpack_require__(11).parseInt; var $trim = __webpack_require__(104).trim; var ws = __webpack_require__(170); var hex = /^[-+]?0[xX]/; module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) { var string = $trim(String(str), 3); return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10)); } : $parseInt; /***/ }), /* 223 */ /***/ (function(module, exports, __webpack_require__) { var $parseFloat = __webpack_require__(11).parseFloat; var $trim = __webpack_require__(104).trim; module.exports = 1 / $parseFloat(__webpack_require__(170) + '-0') !== -Infinity ? function parseFloat(str) { var string = $trim(String(str), 3); var result = $parseFloat(string); return result === 0 && string.charAt(0) == '-' ? -0 : result; } : $parseFloat; /***/ }), /* 224 */ /***/ (function(module, exports, __webpack_require__) { var cof = __webpack_require__(75); module.exports = function (it, msg) { if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg); return +it; }; /***/ }), /* 225 */ /***/ (function(module, exports, __webpack_require__) { // 20.1.2.3 Number.isInteger(number) var isObject = __webpack_require__(14); var floor = Math.floor; module.exports = function isInteger(it) { return !isObject(it) && isFinite(it) && floor(it) === it; }; /***/ }), /* 226 */ /***/ (function(module, exports) { // 20.2.2.20 Math.log1p(x) module.exports = Math.log1p || function log1p(x) { return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x); }; /***/ }), /* 227 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var create = __webpack_require__(92); var descriptor = __webpack_require__(87); var setToStringTag = __webpack_require__(103); var IteratorPrototype = {}; // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() __webpack_require__(52)(IteratorPrototype, __webpack_require__(19)('iterator'), function () { return this; }); module.exports = function (Constructor, NAME, next) { Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); setToStringTag(Constructor, NAME + ' Iterator'); }; /***/ }), /* 228 */ /***/ (function(module, exports, __webpack_require__) { // call something on iterator step with safe closing on error var anObject = __webpack_require__(13); module.exports = function (iterator, fn, value, entries) { try { return entries ? fn(anObject(value)[0], value[1]) : fn(value); // 7.4.6 IteratorClose(iterator, completion) } catch (e) { var ret = iterator['return']; if (ret !== undefined) anObject(ret.call(iterator)); throw e; } }; /***/ }), /* 229 */ /***/ (function(module, exports, __webpack_require__) { // 9.4.2.3 ArraySpeciesCreate(originalArray, length) var speciesConstructor = __webpack_require__(384); module.exports = function (original, length) { return new (speciesConstructor(original))(length); }; /***/ }), /* 230 */ /***/ (function(module, exports, __webpack_require__) { var aFunction = __webpack_require__(64); var toObject = __webpack_require__(36); var IObject = __webpack_require__(122); var toLength = __webpack_require__(23); module.exports = function (that, callbackfn, aLen, memo, isRight) { aFunction(callbackfn); var O = toObject(that); var self = IObject(O); var length = toLength(O.length); var index = isRight ? length - 1 : 0; var i = isRight ? -1 : 1; if (aLen < 2) for (;;) { if (index in self) { memo = self[index]; index += i; break; } index += i; if (isRight ? index < 0 : length <= index) { throw TypeError('Reduce of empty array with no initial value'); } } for (;isRight ? index >= 0 : length > index; index += i) if (index in self) { memo = callbackfn(memo, self[index], index, O); } return memo; }; /***/ }), /* 231 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) var toObject = __webpack_require__(36); var toAbsoluteIndex = __webpack_require__(91); var toLength = __webpack_require__(23); module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) { var O = toObject(this); var len = toLength(O.length); var to = toAbsoluteIndex(target, len); var from = toAbsoluteIndex(start, len); var end = arguments.length > 2 ? arguments[2] : undefined; var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); var inc = 1; if (from < to && to < from + count) { inc = -1; from += count - 1; to += count - 1; } while (count-- > 0) { if (from in O) O[to] = O[from]; else delete O[to]; to += inc; from += inc; } return O; }; /***/ }), /* 232 */ /***/ (function(module, exports) { module.exports = function (done, value) { return { value: value, done: !!done }; }; /***/ }), /* 233 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var regexpExec = __webpack_require__(185); __webpack_require__(3)({ target: 'RegExp', proto: true, forced: regexpExec !== /./.exec }, { exec: regexpExec }); /***/ }), /* 234 */ /***/ (function(module, exports, __webpack_require__) { // 21.2.5.3 get RegExp.prototype.flags() if (__webpack_require__(28) && /./g.flags != 'g') __webpack_require__(29).f(RegExp.prototype, 'flags', { configurable: true, get: __webpack_require__(139) }); /***/ }), /* 235 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var LIBRARY = __webpack_require__(89); var global = __webpack_require__(11); var ctx = __webpack_require__(63); var classof = __webpack_require__(124); var $export = __webpack_require__(3); var isObject = __webpack_require__(14); var aFunction = __webpack_require__(64); var anInstance = __webpack_require__(107); var forOf = __webpack_require__(142); var speciesConstructor = __webpack_require__(125); var task = __webpack_require__(187).set; var microtask = __webpack_require__(404)(); var newPromiseCapabilityModule = __webpack_require__(236); var perform = __webpack_require__(405); var userAgent = __webpack_require__(143); var promiseResolve = __webpack_require__(237); var PROMISE = 'Promise'; var TypeError = global.TypeError; var process = global.process; var versions = process && process.versions; var v8 = versions && versions.v8 || ''; var $Promise = global[PROMISE]; var isNode = classof(process) == 'process'; var empty = function () { /* empty */ }; var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; var USE_NATIVE = !!function () { try { // correct subclassing with @@species support var promise = $Promise.resolve(1); var FakePromise = (promise.constructor = {})[__webpack_require__(19)('species')] = function (exec) { exec(empty, empty); }; // unhandled rejections tracking support, NodeJS Promise without it fails @@species test return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 // we can't detect it synchronously, so just check versions && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1; } catch (e) { /* empty */ } }(); // helpers var isThenable = function (it) { var then; return isObject(it) && typeof (then = it.then) == 'function' ? then : false; }; var notify = function (promise, isReject) { if (promise._n) return; promise._n = true; var chain = promise._c; microtask(function () { var value = promise._v; var ok = promise._s == 1; var i = 0; var run = function (reaction) { var handler = ok ? reaction.ok : reaction.fail; var resolve = reaction.resolve; var reject = reaction.reject; var domain = reaction.domain; var result, then, exited; try { if (handler) { if (!ok) { if (promise._h == 2) onHandleUnhandled(promise); promise._h = 1; } if (handler === true) result = value; else { if (domain) domain.enter(); result = handler(value); // may throw if (domain) { domain.exit(); exited = true; } } if (result === reaction.promise) { reject(TypeError('Promise-chain cycle')); } else if (then = isThenable(result)) { then.call(result, resolve, reject); } else resolve(result); } else reject(value); } catch (e) { if (domain && !exited) domain.exit(); reject(e); } }; while (chain.length > i) run(chain[i++]); // variable length - can't use forEach promise._c = []; promise._n = false; if (isReject && !promise._h) onUnhandled(promise); }); }; var onUnhandled = function (promise) { task.call(global, function () { var value = promise._v; var unhandled = isUnhandled(promise); var result, handler, console; if (unhandled) { result = perform(function () { if (isNode) { process.emit('unhandledRejection', value, promise); } else if (handler = global.onunhandledrejection) { handler({ promise: promise, reason: value }); } else if ((console = global.console) && console.error) { console.error('Unhandled promise rejection', value); } }); // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should promise._h = isNode || isUnhandled(promise) ? 2 : 1; } promise._a = undefined; if (unhandled && result.e) throw result.v; }); }; var isUnhandled = function (promise) { return promise._h !== 1 && (promise._a || promise._c).length === 0; }; var onHandleUnhandled = function (promise) { task.call(global, function () { var handler; if (isNode) { process.emit('rejectionHandled', promise); } else if (handler = global.onrejectionhandled) { handler({ promise: promise, reason: promise._v }); } }); }; var $reject = function (value) { var promise = this; if (promise._d) return; promise._d = true; promise = promise._w || promise; // unwrap promise._v = value; promise._s = 2; if (!promise._a) promise._a = promise._c.slice(); notify(promise, true); }; var $resolve = function (value) { var promise = this; var then; if (promise._d) return; promise._d = true; promise = promise._w || promise; // unwrap try { if (promise === value) throw TypeError("Promise can't be resolved itself"); if (then = isThenable(value)) { microtask(function () { var wrapper = { _w: promise, _d: false }; // wrap try { then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); } catch (e) { $reject.call(wrapper, e); } }); } else { promise._v = value; promise._s = 1; notify(promise, false); } } catch (e) { $reject.call({ _w: promise, _d: false }, e); // wrap } }; // constructor polyfill if (!USE_NATIVE) { // 25.4.3.1 Promise(executor) $Promise = function Promise(executor) { anInstance(this, $Promise, PROMISE, '_h'); aFunction(executor); Internal.call(this); try { executor(ctx($resolve, this, 1), ctx($reject, this, 1)); } catch (err) { $reject.call(this, err); } }; // eslint-disable-next-line no-unused-vars Internal = function Promise(executor) { this._c = []; // <- awaiting reactions this._a = undefined; // <- checked in isUnhandled reactions this._s = 0; // <- state this._d = false; // <- done this._v = undefined; // <- value this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled this._n = false; // <- notify }; Internal.prototype = __webpack_require__(108)($Promise.prototype, { // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected) then: function then(onFulfilled, onRejected) { var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; reaction.fail = typeof onRejected == 'function' && onRejected; reaction.domain = isNode ? process.domain : undefined; this._c.push(reaction); if (this._a) this._a.push(reaction); if (this._s) notify(this, false); return reaction.promise; }, // 25.4.5.1 Promise.prototype.catch(onRejected) 'catch': function (onRejected) { return this.then(undefined, onRejected); } }); OwnPromiseCapability = function () { var promise = new Internal(); this.promise = promise; this.resolve = ctx($resolve, promise, 1); this.reject = ctx($reject, promise, 1); }; newPromiseCapabilityModule.f = newPromiseCapability = function (C) { return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); }; } $export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise }); __webpack_require__(103)($Promise, PROMISE); __webpack_require__(106)(PROMISE); Wrapper = __webpack_require__(26)[PROMISE]; // statics $export($export.S + $export.F * !USE_NATIVE, PROMISE, { // 25.4.4.5 Promise.reject(r) reject: function reject(r) { var capability = newPromiseCapability(this); var $$reject = capability.reject; $$reject(r); return capability.promise; } }); $export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { // 25.4.4.6 Promise.resolve(x) resolve: function resolve(x) { return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); } }); $export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(138)(function (iter) { $Promise.all(iter)['catch'](empty); })), PROMISE, { // 25.4.4.1 Promise.all(iterable) all: function all(iterable) { var C = this; var capability = newPromiseCapability(C); var resolve = capability.resolve; var reject = capability.reject; var result = perform(function () { var values = []; var index = 0; var remaining = 1; forOf(iterable, false, function (promise) { var $index = index++; var alreadyCalled = false; values.push(undefined); remaining++; C.resolve(promise).then(function (value) { if (alreadyCalled) return; alreadyCalled = true; values[$index] = value; --remaining || resolve(values); }, reject); }); --remaining || resolve(values); }); if (result.e) reject(result.v); return capability.promise; }, // 25.4.4.4 Promise.race(iterable) race: function race(iterable) { var C = this; var capability = newPromiseCapability(C); var reject = capability.reject; var result = perform(function () { forOf(iterable, false, function (promise) { C.resolve(promise).then(capability.resolve, reject); }); }); if (result.e) reject(result.v); return capability.promise; } }); /***/ }), /* 236 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 25.4.1.5 NewPromiseCapability(C) var aFunction = __webpack_require__(64); function PromiseCapability(C) { var resolve, reject; this.promise = new C(function ($$resolve, $$reject) { if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); resolve = $$resolve; reject = $$reject; }); this.resolve = aFunction(resolve); this.reject = aFunction(reject); } module.exports.f = function (C) { return new PromiseCapability(C); }; /***/ }), /* 237 */ /***/ (function(module, exports, __webpack_require__) { var anObject = __webpack_require__(13); var isObject = __webpack_require__(14); var newPromiseCapability = __webpack_require__(236); module.exports = function (C, x) { anObject(C); if (isObject(x) && x.constructor === C) return x; var promiseCapability = newPromiseCapability.f(C); var resolve = promiseCapability.resolve; resolve(x); return promiseCapability.promise; }; /***/ }), /* 238 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var dP = __webpack_require__(29).f; var create = __webpack_require__(92); var redefineAll = __webpack_require__(108); var ctx = __webpack_require__(63); var anInstance = __webpack_require__(107); var forOf = __webpack_require__(142); var $iterDefine = __webpack_require__(176); var step = __webpack_require__(232); var setSpecies = __webpack_require__(106); var DESCRIPTORS = __webpack_require__(28); var fastKey = __webpack_require__(83).fastKey; var validate = __webpack_require__(96); var SIZE = DESCRIPTORS ? '_s' : 'size'; var getEntry = function (that, key) { // fast case var index = fastKey(key); var entry; if (index !== 'F') return that._i[index]; // frozen object case for (entry = that._f; entry; entry = entry.n) { if (entry.k == key) return entry; } }; module.exports = { getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { var C = wrapper(function (that, iterable) { anInstance(that, C, NAME, '_i'); that._t = NAME; // collection type that._i = create(null); // index that._f = undefined; // first entry that._l = undefined; // last entry that[SIZE] = 0; // size if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); }); redefineAll(C.prototype, { // 23.1.3.1 Map.prototype.clear() // 23.2.3.2 Set.prototype.clear() clear: function clear() { for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) { entry.r = true; if (entry.p) entry.p = entry.p.n = undefined; delete data[entry.i]; } that._f = that._l = undefined; that[SIZE] = 0; }, // 23.1.3.3 Map.prototype.delete(key) // 23.2.3.4 Set.prototype.delete(value) 'delete': function (key) { var that = validate(this, NAME); var entry = getEntry(that, key); if (entry) { var next = entry.n; var prev = entry.p; delete that._i[entry.i]; entry.r = true; if (prev) prev.n = next; if (next) next.p = prev; if (that._f == entry) that._f = next; if (that._l == entry) that._l = prev; that[SIZE]--; } return !!entry; }, // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) forEach: function forEach(callbackfn /* , that = undefined */) { validate(this, NAME); var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); var entry; while (entry = entry ? entry.n : this._f) { f(entry.v, entry.k, this); // revert to the last existing entry while (entry && entry.r) entry = entry.p; } }, // 23.1.3.7 Map.prototype.has(key) // 23.2.3.7 Set.prototype.has(value) has: function has(key) { return !!getEntry(validate(this, NAME), key); } }); if (DESCRIPTORS) dP(C.prototype, 'size', { get: function () { return validate(this, NAME)[SIZE]; } }); return C; }, def: function (that, key, value) { var entry = getEntry(that, key); var prev, index; // change existing entry if (entry) { entry.v = value; // create new entry } else { that._l = entry = { i: index = fastKey(key, true), // <- index k: key, // <- key v: value, // <- value p: prev = that._l, // <- previous entry n: undefined, // <- next entry r: false // <- removed }; if (!that._f) that._f = entry; if (prev) prev.n = entry; that[SIZE]++; // add to index if (index !== 'F') that._i[index] = entry; } return that; }, getEntry: getEntry, setStrong: function (C, NAME, IS_MAP) { // add .keys, .values, .entries, [@@iterator] // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 $iterDefine(C, NAME, function (iterated, kind) { this._t = validate(iterated, NAME); // target this._k = kind; // kind this._l = undefined; // previous }, function () { var that = this; var kind = that._k; var entry = that._l; // revert to the last existing entry while (entry && entry.r) entry = entry.p; // get next entry if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) { // or finish the iteration that._t = undefined; return step(1); } // return step by kind if (kind == 'keys') return step(0, entry.k); if (kind == 'values') return step(0, entry.v); return step(0, [entry.k, entry.v]); }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); // add [@@species], 23.1.2.2, 23.2.2.2 setSpecies(NAME); } }; /***/ }), /* 239 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var redefineAll = __webpack_require__(108); var getWeak = __webpack_require__(83).getWeak; var anObject = __webpack_require__(13); var isObject = __webpack_require__(14); var anInstance = __webpack_require__(107); var forOf = __webpack_require__(142); var createArrayMethod = __webpack_require__(68); var $has = __webpack_require__(51); var validate = __webpack_require__(96); var arrayFind = createArrayMethod(5); var arrayFindIndex = createArrayMethod(6); var id = 0; // fallback for uncaught frozen keys var uncaughtFrozenStore = function (that) { return that._l || (that._l = new UncaughtFrozenStore()); }; var UncaughtFrozenStore = function () { this.a = []; }; var findUncaughtFrozen = function (store, key) { return arrayFind(store.a, function (it) { return it[0] === key; }); }; UncaughtFrozenStore.prototype = { get: function (key) { var entry = findUncaughtFrozen(this, key); if (entry) return entry[1]; }, has: function (key) { return !!findUncaughtFrozen(this, key); }, set: function (key, value) { var entry = findUncaughtFrozen(this, key); if (entry) entry[1] = value; else this.a.push([key, value]); }, 'delete': function (key) { var index = arrayFindIndex(this.a, function (it) { return it[0] === key; }); if (~index) this.a.splice(index, 1); return !!~index; } }; module.exports = { getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { var C = wrapper(function (that, iterable) { anInstance(that, C, NAME, '_i'); that._t = NAME; // collection type that._i = id++; // collection id that._l = undefined; // leak store for uncaught frozen objects if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); }); redefineAll(C.prototype, { // 23.3.3.2 WeakMap.prototype.delete(key) // 23.4.3.3 WeakSet.prototype.delete(value) 'delete': function (key) { if (!isObject(key)) return false; var data = getWeak(key); if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); return data && $has(data, this._i) && delete data[this._i]; }, // 23.3.3.4 WeakMap.prototype.has(key) // 23.4.3.4 WeakSet.prototype.has(value) has: function has(key) { if (!isObject(key)) return false; var data = getWeak(key); if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); return data && $has(data, this._i); } }); return C; }, def: function (that, key, value) { var data = getWeak(anObject(key), true); if (data === true) uncaughtFrozenStore(that).set(key, value); else data[that._i] = value; return that; }, ufstore: uncaughtFrozenStore }; /***/ }), /* 240 */ /***/ (function(module, exports, __webpack_require__) { // https://tc39.github.io/ecma262/#sec-toindex var toInteger = __webpack_require__(65); var toLength = __webpack_require__(23); module.exports = function (it) { if (it === undefined) return 0; var number = toInteger(it); var length = toLength(number); if (number !== length) throw RangeError('Wrong length!'); return length; }; /***/ }), /* 241 */ /***/ (function(module, exports, __webpack_require__) { // all object keys, includes non-enumerable and symbols var gOPN = __webpack_require__(93); var gOPS = __webpack_require__(136); var anObject = __webpack_require__(13); var Reflect = __webpack_require__(11).Reflect; module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) { var keys = gOPN.f(anObject(it)); var getSymbols = gOPS.f; return getSymbols ? keys.concat(getSymbols(it)) : keys; }; /***/ }), /* 242 */ /***/ (function(module, exports, __webpack_require__) { // https://github.com/tc39/proposal-string-pad-start-end var toLength = __webpack_require__(23); var repeat = __webpack_require__(172); var defined = __webpack_require__(76); module.exports = function (that, maxLength, fillString, left) { var S = String(defined(that)); var stringLength = S.length; var fillStr = fillString === undefined ? ' ' : String(fillString); var intMaxLength = toLength(maxLength); if (intMaxLength <= stringLength || fillStr == '') return S; var fillLen = intMaxLength - stringLength; var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length)); if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen); return left ? stringFiller + S : S + stringFiller; }; /***/ }), /* 243 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(28); var getKeys = __webpack_require__(90); var toIObject = __webpack_require__(53); var isEnum = __webpack_require__(123).f; module.exports = function (isEntries) { return function (it) { var O = toIObject(it); var keys = getKeys(O); var length = keys.length; var i = 0; var result = []; var key; while (length > i) { key = keys[i++]; if (!DESCRIPTORS || isEnum.call(O, key)) { result.push(isEntries ? [key, O[key]] : O[key]); } } return result; }; }; /***/ }), /* 244 */ /***/ (function(module, exports) { var core = module.exports = { version: '2.6.12' }; if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef /***/ }), /* 245 */ /***/ (function(module, exports) { module.exports = function (exec) { try { return !!exec(); } catch (e) { return true; } }; /***/ }), /* 246 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } Object.defineProperty(exports, "__esModule", { value: true }); exports.Translator = void 0; var shared_1 = __webpack_require__(17); /** * Singleton-Klasse zum Übersetzen von Text-Inhalten */ var Translator = /*#__PURE__*/function () { /** * Erstellt einen neuen Translator * @param config */ function Translator() { var _this = this; var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { translations: {}, fallbackLanguage: "en", markUntranslatedTranslations: true, markTranslations: false, logMissingTranslations: true }; _classCallCheck(this, Translator); this._dynamicKey = 0; this._translations = {}; this.addDynamicTranslations(Translator._translations); this.addDynamicTranslations(config.translations); this._fallbackLanguage = config.fallbackLanguage; this._markUntranslatedTranslations = config.markUntranslatedTranslations; this._markTranslations = config.markTranslations; if (config.logMissingTranslations === true) { this._logMissingTranslationsFunction = function (missingTranslation, language) { if (language === _this._fallbackLanguage) { console.error("missing base translation for key " + missingTranslation); } else { console.warn("missing translation for language >" + language + "< and key >" + missingTranslation + "<"); } }; } else if (typeof config.logMissingTranslations === "function") { this._logMissingTranslationsFunction = config.logMissingTranslations; } else { this._logMissingTranslationsFunction = null; } this._translationCallbacks = new Map(); this._lastTranslationCallbackId = 0; } _createClass(Translator, [{ key: "createDynamicKey", value: function createDynamicKey() { this._dynamicKey++; return "translator-dynamic-" + new Date().getTime() + "-" + this._dynamicKey; } /** * Übersetzt sofort einen Key in die aktuelle Sprache * @param key * @param args * @param language * @returns {*} */ }, { key: "translate", value: function translate(key, args, language) { if (shared_1.Helper.isNull(key)) { return ""; } language = shared_1.Helper.nonNull(language, args, this._fallbackLanguage); var translation = null; key = key.toLowerCase(); if (shared_1.Helper.isNotNull(this._translations[language]) && shared_1.Helper.isNotNull(this._translations[language][key])) { translation = this._translations[language][key]; } if (!Translator._isValid(translation)) { if (this._logMissingTranslationsFunction !== null) { this._logMissingTranslationsFunction(key, language); } if (this._translations[this._fallbackLanguage]) { translation = this._translations[this._fallbackLanguage][key]; } if (!Translator._isValid(translation)) { if (this._logMissingTranslationsFunction !== null) { this._logMissingTranslationsFunction(key, language); } translation = key; } if (this._markUntranslatedTranslations) { translation = ">>" + translation + "<<"; } } if (this._markTranslations) { translation = "$" + translation + "$"; } if (args !== undefined) { translation = Translator._format(translation, args); } return translation; } /** * Fügt neue Übersetzungen hinzu * @param trans */ }, { key: "addDynamicTranslations", value: function addDynamicTranslations(trans) { for (var lang in trans) { if (!this._translations[lang]) { this._translations[lang] = {}; } for (var key in trans[lang]) { this._translations[lang][key.toLowerCase()] = trans[lang][key]; } } } }, { key: "getLanguages", value: function getLanguages() { return Object.keys(this._translations); } }, { key: "getFallbackLanguage", value: function getFallbackLanguage() { return this._fallbackLanguage; } }], [{ key: "translate", value: function translate(key, args, language) { var instance = Translator.getInstance(); if (instance) { return instance.translate(key, args, language); } return ""; } }, { key: "addDynamicTranslations", value: function addDynamicTranslations(trans) { var instance = Translator.getInstance(); if (instance) { return instance.addDynamicTranslations(trans); } else { Object.keys(trans).forEach(function (lang) { if (shared_1.Helper.isNull(Translator._translations[lang])) { Translator._translations[lang] = {}; } Object.assign(Translator._translations[lang], trans[lang]); }); } } }, { key: "init", value: function init(config) { Translator.instance = new Translator(config); } /** * @returns {Translator|null} */ }, { key: "getInstance", value: function getInstance() { return Translator.instance; } }, { key: "_isValid", value: function _isValid(translation) { return typeof translation === "string"; } }, { key: "_format", value: function _format(translation, args) { return translation.replace(/{(\d+)}/g, function (match, number) { return args[number] !== undefined ? args[number] : match; }); } }]); return Translator; }(); exports.Translator = Translator; Translator._translations = {}; Translator.instance = null; /***/ }), /* 247 */ /***/ (function(module, exports) { // shim for using process in browser var process = module.exports = {}; // cached from whatever global is present so that test runners that stub it // don't break things. But we need to wrap it in a try catch in case it is // wrapped in strict mode code which doesn't define any globals. It's inside a // function because try/catches deoptimize in certain engines. var cachedSetTimeout; var cachedClearTimeout; function defaultSetTimout() { throw new Error('setTimeout has not been defined'); } function defaultClearTimeout () { throw new Error('clearTimeout has not been defined'); } (function () { try { if (typeof setTimeout === 'function') { cachedSetTimeout = setTimeout; } else { cachedSetTimeout = defaultSetTimout; } } catch (e) { cachedSetTimeout = defaultSetTimout; } try { if (typeof clearTimeout === 'function') { cachedClearTimeout = clearTimeout; } else { cachedClearTimeout = defaultClearTimeout; } } catch (e) { cachedClearTimeout = defaultClearTimeout; } } ()) function runTimeout(fun) { if (cachedSetTimeout === setTimeout) { //normal enviroments in sane situations return setTimeout(fun, 0); } // if setTimeout wasn't available but was latter defined if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { cachedSetTimeout = setTimeout; return setTimeout(fun, 0); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedSetTimeout(fun, 0); } catch(e){ try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedSetTimeout.call(null, fun, 0); } catch(e){ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error return cachedSetTimeout.call(this, fun, 0); } } } function runClearTimeout(marker) { if (cachedClearTimeout === clearTimeout) { //normal enviroments in sane situations return clearTimeout(marker); } // if clearTimeout wasn't available but was latter defined if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { cachedClearTimeout = clearTimeout; return clearTimeout(marker); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedClearTimeout(marker); } catch (e){ try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedClearTimeout.call(null, marker); } catch (e){ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. // Some versions of I.E. have different rules for clearTimeout vs setTimeout return cachedClearTimeout.call(this, marker); } } } var queue = []; var draining = false; var currentQueue; var queueIndex = -1; function cleanUpNextTick() { if (!draining || !currentQueue) { return; } draining = false; if (currentQueue.length) { queue = currentQueue.concat(queue); } else { queueIndex = -1; } if (queue.length) { drainQueue(); } } function drainQueue() { if (draining) { return; } var timeout = runTimeout(cleanUpNextTick); draining = true; var len = queue.length; while(len) { currentQueue = queue; queue = []; while (++queueIndex < len) { if (currentQueue) { currentQueue[queueIndex].run(); } } queueIndex = -1; len = queue.length; } currentQueue = null; draining = false; runClearTimeout(timeout); } process.nextTick = function (fun) { var args = new Array(arguments.length - 1); if (arguments.length > 1) { for (var i = 1; i < arguments.length; i++) { args[i - 1] = arguments[i]; } } queue.push(new Item(fun, args)); if (queue.length === 1 && !draining) { runTimeout(drainQueue); } }; // v8 likes predictible objects function Item(fun, array) { this.fun = fun; this.array = array; } Item.prototype.run = function () { this.fun.apply(null, this.array); }; process.title = 'browser'; process.browser = true; process.env = {}; process.argv = []; process.version = ''; // empty string to avoid regexp issues process.versions = {}; function noop() {} process.on = noop; process.addListener = noop; process.once = noop; process.off = noop; process.removeListener = noop; process.removeAllListeners = noop; process.emit = noop; process.prependListener = noop; process.prependOnceListener = noop; process.listeners = function (name) { return [] } process.binding = function (name) { throw new Error('process.binding is not supported'); }; process.cwd = function () { return '/' }; process.chdir = function (dir) { throw new Error('process.chdir is not supported'); }; process.umask = function() { return 0; }; /***/ }), /* 248 */ /***/ (function(module, exports, __webpack_require__) { /** * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined * in FIPS 180-2 * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet * */ var inherits = __webpack_require__(109) var Hash = __webpack_require__(110) var Buffer = __webpack_require__(97).Buffer var K = [ 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967, 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2 ] var W = new Array(64) function Sha256 () { this.init() this._w = W // new Array(64) Hash.call(this, 64, 56) } inherits(Sha256, Hash) Sha256.prototype.init = function () { this._a = 0x6a09e667 this._b = 0xbb67ae85 this._c = 0x3c6ef372 this._d = 0xa54ff53a this._e = 0x510e527f this._f = 0x9b05688c this._g = 0x1f83d9ab this._h = 0x5be0cd19 return this } function ch (x, y, z) { return z ^ (x & (y ^ z)) } function maj (x, y, z) { return (x & y) | (z & (x | y)) } function sigma0 (x) { return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10) } function sigma1 (x) { return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7) } function gamma0 (x) { return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3) } function gamma1 (x) { return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10) } Sha256.prototype._update = function (M) { var W = this._w var a = this._a | 0 var b = this._b | 0 var c = this._c | 0 var d = this._d | 0 var e = this._e | 0 var f = this._f | 0 var g = this._g | 0 var h = this._h | 0 for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4) for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0 for (var j = 0; j < 64; ++j) { var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0 var T2 = (sigma0(a) + maj(a, b, c)) | 0 h = g g = f f = e e = (d + T1) | 0 d = c c = b b = a a = (T1 + T2) | 0 } this._a = (a + this._a) | 0 this._b = (b + this._b) | 0 this._c = (c + this._c) | 0 this._d = (d + this._d) | 0 this._e = (e + this._e) | 0 this._f = (f + this._f) | 0 this._g = (g + this._g) | 0 this._h = (h + this._h) | 0 } Sha256.prototype._hash = function () { var H = Buffer.allocUnsafe(32) H.writeInt32BE(this._a, 0) H.writeInt32BE(this._b, 4) H.writeInt32BE(this._c, 8) H.writeInt32BE(this._d, 12) H.writeInt32BE(this._e, 16) H.writeInt32BE(this._f, 20) H.writeInt32BE(this._g, 24) H.writeInt32BE(this._h, 28) return H } module.exports = Sha256 /***/ }), /* 249 */ /***/ (function(module, exports, __webpack_require__) { var inherits = __webpack_require__(109) var Hash = __webpack_require__(110) var Buffer = __webpack_require__(97).Buffer var K = [ 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817 ] var W = new Array(160) function Sha512 () { this.init() this._w = W Hash.call(this, 128, 112) } inherits(Sha512, Hash) Sha512.prototype.init = function () { this._ah = 0x6a09e667 this._bh = 0xbb67ae85 this._ch = 0x3c6ef372 this._dh = 0xa54ff53a this._eh = 0x510e527f this._fh = 0x9b05688c this._gh = 0x1f83d9ab this._hh = 0x5be0cd19 this._al = 0xf3bcc908 this._bl = 0x84caa73b this._cl = 0xfe94f82b this._dl = 0x5f1d36f1 this._el = 0xade682d1 this._fl = 0x2b3e6c1f this._gl = 0xfb41bd6b this._hl = 0x137e2179 return this } function Ch (x, y, z) { return z ^ (x & (y ^ z)) } function maj (x, y, z) { return (x & y) | (z & (x | y)) } function sigma0 (x, xl) { return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25) } function sigma1 (x, xl) { return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23) } function Gamma0 (x, xl) { return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7) } function Gamma0l (x, xl) { return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25) } function Gamma1 (x, xl) { return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6) } function Gamma1l (x, xl) { return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26) } function getCarry (a, b) { return (a >>> 0) < (b >>> 0) ? 1 : 0 } Sha512.prototype._update = function (M) { var W = this._w var ah = this._ah | 0 var bh = this._bh | 0 var ch = this._ch | 0 var dh = this._dh | 0 var eh = this._eh | 0 var fh = this._fh | 0 var gh = this._gh | 0 var hh = this._hh | 0 var al = this._al | 0 var bl = this._bl | 0 var cl = this._cl | 0 var dl = this._dl | 0 var el = this._el | 0 var fl = this._fl | 0 var gl = this._gl | 0 var hl = this._hl | 0 for (var i = 0; i < 32; i += 2) { W[i] = M.readInt32BE(i * 4) W[i + 1] = M.readInt32BE(i * 4 + 4) } for (; i < 160; i += 2) { var xh = W[i - 15 * 2] var xl = W[i - 15 * 2 + 1] var gamma0 = Gamma0(xh, xl) var gamma0l = Gamma0l(xl, xh) xh = W[i - 2 * 2] xl = W[i - 2 * 2 + 1] var gamma1 = Gamma1(xh, xl) var gamma1l = Gamma1l(xl, xh) // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16] var Wi7h = W[i - 7 * 2] var Wi7l = W[i - 7 * 2 + 1] var Wi16h = W[i - 16 * 2] var Wi16l = W[i - 16 * 2 + 1] var Wil = (gamma0l + Wi7l) | 0 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0 Wil = (Wil + gamma1l) | 0 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0 Wil = (Wil + Wi16l) | 0 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0 W[i] = Wih W[i + 1] = Wil } for (var j = 0; j < 160; j += 2) { Wih = W[j] Wil = W[j + 1] var majh = maj(ah, bh, ch) var majl = maj(al, bl, cl) var sigma0h = sigma0(ah, al) var sigma0l = sigma0(al, ah) var sigma1h = sigma1(eh, el) var sigma1l = sigma1(el, eh) // t1 = h + sigma1 + ch + K[j] + W[j] var Kih = K[j] var Kil = K[j + 1] var chh = Ch(eh, fh, gh) var chl = Ch(el, fl, gl) var t1l = (hl + sigma1l) | 0 var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0 t1l = (t1l + chl) | 0 t1h = (t1h + chh + getCarry(t1l, chl)) | 0 t1l = (t1l + Kil) | 0 t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0 t1l = (t1l + Wil) | 0 t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0 // t2 = sigma0 + maj var t2l = (sigma0l + majl) | 0 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0 hh = gh hl = gl gh = fh gl = fl fh = eh fl = el el = (dl + t1l) | 0 eh = (dh + t1h + getCarry(el, dl)) | 0 dh = ch dl = cl ch = bh cl = bl bh = ah bl = al al = (t1l + t2l) | 0 ah = (t1h + t2h + getCarry(al, t1l)) | 0 } this._al = (this._al + al) | 0 this._bl = (this._bl + bl) | 0 this._cl = (this._cl + cl) | 0 this._dl = (this._dl + dl) | 0 this._el = (this._el + el) | 0 this._fl = (this._fl + fl) | 0 this._gl = (this._gl + gl) | 0 this._hl = (this._hl + hl) | 0 this._ah = (this._ah + ah + getCarry(this._al, al)) | 0 this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0 this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0 this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0 this._eh = (this._eh + eh + getCarry(this._el, el)) | 0 this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0 this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0 this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0 } Sha512.prototype._hash = function () { var H = Buffer.allocUnsafe(64) function writeInt64BE (h, l, offset) { H.writeInt32BE(h, offset) H.writeInt32BE(l, offset + 4) } writeInt64BE(this._ah, this._al, 0) writeInt64BE(this._bh, this._bl, 8) writeInt64BE(this._ch, this._cl, 16) writeInt64BE(this._dh, this._dl, 24) writeInt64BE(this._eh, this._el, 32) writeInt64BE(this._fh, this._fl, 40) writeInt64BE(this._gh, this._gl, 48) writeInt64BE(this._hh, this._hl, 56) return H } module.exports = Sha512 /***/ }), /* 250 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SoftDeleteQueryBuilder", function() { return SoftDeleteQueryBuilder; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var _QueryBuilder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(40); /* harmony import */ var _result_UpdateResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(115); /* harmony import */ var _error_ReturningStatementNotSupportedError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(72); /* harmony import */ var _ReturningResultsEntityUpdator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(120); /* harmony import */ var _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41); /* harmony import */ var _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(8); /* harmony import */ var _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(16); /* harmony import */ var _error_LimitOnUpdateNotSupportedError__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(116); /* harmony import */ var _error_MissingDeleteDateColumnError__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(159); /* harmony import */ var _error_UpdateValuesMissingError__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(101); /* harmony import */ var _entity_schema_EntitySchema__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(74); /** * Allows to build complex sql queries in a fashion way and execute those queries. */ var SoftDeleteQueryBuilder = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(SoftDeleteQueryBuilder, _super); // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function SoftDeleteQueryBuilder(connectionOrQueryBuilder, queryRunner) { var _this = _super.call(this, connectionOrQueryBuilder, queryRunner) || this; _this.expressionMap.aliasNamePrefixingEnabled = false; return _this; } // ------------------------------------------------------------------------- // Public Implemented Methods // ------------------------------------------------------------------------- /** * Gets generated sql query without parameters being replaced. */ SoftDeleteQueryBuilder.prototype.getQuery = function () { var sql = this.createUpdateExpression(); sql += this.createOrderByExpression(); sql += this.createLimitExpression(); return sql.trim(); }; /** * Executes sql generated by query builder and returns raw database results. */ SoftDeleteQueryBuilder.prototype.execute = function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var queryRunner, transactionStartedByUs, broadcastResult, returningResultsEntityUpdator, _a, sql, parameters, updateResult, result, driver, broadcastResult, error_1, rollbackError_1; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_b) { switch (_b.label) { case 0: queryRunner = this.obtainQueryRunner(); transactionStartedByUs = false; _b.label = 1; case 1: _b.trys.push([1, 13, 18, 23]); if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3]; return [4 /*yield*/, queryRunner.startTransaction()]; case 2: _b.sent(); transactionStartedByUs = true; _b.label = 3; case 3: if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 5]; broadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_7__[/* BroadcasterResult */ "a"](); queryRunner.broadcaster.broadcastBeforeUpdateEvent(broadcastResult, this.expressionMap.mainAlias.metadata); if (!(broadcastResult.promises.length > 0)) return [3 /*break*/, 5]; return [4 /*yield*/, Promise.all(broadcastResult.promises)]; case 4: _b.sent(); _b.label = 5; case 5: returningResultsEntityUpdator = new _ReturningResultsEntityUpdator__WEBPACK_IMPORTED_MODULE_5__[/* ReturningResultsEntityUpdator */ "a"](queryRunner, this.expressionMap); if (this.expressionMap.updateEntity === true && this.expressionMap.mainAlias.hasMetadata && this.expressionMap.whereEntities.length > 0) { this.expressionMap.extraReturningColumns = returningResultsEntityUpdator.getUpdationReturningColumns(); } _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(this.getQueryAndParameters(), 2), sql = _a[0], parameters = _a[1]; updateResult = new _result_UpdateResult__WEBPACK_IMPORTED_MODULE_3__[/* UpdateResult */ "a"](); return [4 /*yield*/, queryRunner.query(sql, parameters)]; case 6: result = _b.sent(); driver = queryRunner.connection.driver; if (driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* PostgresDriver */ "k"]) { updateResult.raw = result[0]; updateResult.affected = result[1]; } else { updateResult.raw = result; } if (!(this.expressionMap.updateEntity === true && this.expressionMap.mainAlias.hasMetadata && this.expressionMap.whereEntities.length > 0)) return [3 /*break*/, 8]; return [4 /*yield*/, returningResultsEntityUpdator.update(updateResult, this.expressionMap.whereEntities)]; case 7: _b.sent(); _b.label = 8; case 8: if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 10]; broadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_7__[/* BroadcasterResult */ "a"](); queryRunner.broadcaster.broadcastAfterUpdateEvent(broadcastResult, this.expressionMap.mainAlias.metadata); if (!(broadcastResult.promises.length > 0)) return [3 /*break*/, 10]; return [4 /*yield*/, Promise.all(broadcastResult.promises)]; case 9: _b.sent(); _b.label = 10; case 10: if (!transactionStartedByUs) return [3 /*break*/, 12]; return [4 /*yield*/, queryRunner.commitTransaction()]; case 11: _b.sent(); _b.label = 12; case 12: return [2 /*return*/, updateResult]; case 13: error_1 = _b.sent(); if (!transactionStartedByUs) return [3 /*break*/, 17]; _b.label = 14; case 14: _b.trys.push([14, 16, , 17]); return [4 /*yield*/, queryRunner.rollbackTransaction()]; case 15: _b.sent(); return [3 /*break*/, 17]; case 16: rollbackError_1 = _b.sent(); return [3 /*break*/, 17]; case 17: throw error_1; case 18: if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 20]; return [4 /*yield*/, queryRunner.release()]; case 19: _b.sent(); _b.label = 20; case 20: if (!(this.connection.driver instanceof _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_6__[/* SqljsDriver */ "a"] && !queryRunner.isTransactionActive)) return [3 /*break*/, 22]; return [4 /*yield*/, this.connection.driver.autoSave()]; case 21: _b.sent(); _b.label = 22; case 22: return [7 /*endfinally*/]; case 23: return [2 /*return*/]; } }); }); }; // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Specifies FROM which entity's table select/update/delete/soft-delete will be executed. * Also sets a main string alias of the selection data. */ SoftDeleteQueryBuilder.prototype.from = function (entityTarget, aliasName) { entityTarget = entityTarget instanceof _entity_schema_EntitySchema__WEBPACK_IMPORTED_MODULE_12__[/* EntitySchema */ "a"] ? entityTarget.options.name : entityTarget; var mainAlias = this.createFromAlias(entityTarget, aliasName); this.expressionMap.setMainAlias(mainAlias); return this; }; /** * Sets WHERE condition in the query builder. * If you had previously WHERE expression defined, * calling this function will override previously set WHERE conditions. * Additionally you can add parameters used in where expression. */ SoftDeleteQueryBuilder.prototype.where = function (where, parameters) { this.expressionMap.wheres = []; // don't move this block below since computeWhereParameter can add where expressions var condition = this.computeWhereParameter(where); if (condition) this.expressionMap.wheres = [{ type: "simple", condition: condition }]; if (parameters) this.setParameters(parameters); return this; }; /** * Adds new AND WHERE condition in the query builder. * Additionally you can add parameters used in where expression. */ SoftDeleteQueryBuilder.prototype.andWhere = function (where, parameters) { this.expressionMap.wheres.push({ type: "and", condition: this.computeWhereParameter(where) }); if (parameters) this.setParameters(parameters); return this; }; /** * Adds new OR WHERE condition in the query builder. * Additionally you can add parameters used in where expression. */ SoftDeleteQueryBuilder.prototype.orWhere = function (where, parameters) { this.expressionMap.wheres.push({ type: "or", condition: this.computeWhereParameter(where) }); if (parameters) this.setParameters(parameters); return this; }; /** * Adds new AND WHERE with conditions for the given ids. */ SoftDeleteQueryBuilder.prototype.whereInIds = function (ids) { return this.where(this.createWhereIdsExpression(ids)); }; /** * Adds new AND WHERE with conditions for the given ids. */ SoftDeleteQueryBuilder.prototype.andWhereInIds = function (ids) { return this.andWhere(this.createWhereIdsExpression(ids)); }; /** * Adds new OR WHERE with conditions for the given ids. */ SoftDeleteQueryBuilder.prototype.orWhereInIds = function (ids) { return this.orWhere(this.createWhereIdsExpression(ids)); }; /** * Optional returning/output clause. */ SoftDeleteQueryBuilder.prototype.output = function (output) { return this.returning(output); }; /** * Optional returning/output clause. */ SoftDeleteQueryBuilder.prototype.returning = function (returning) { // not all databases support returning/output cause if (!this.connection.driver.isReturningSqlSupported()) throw new _error_ReturningStatementNotSupportedError__WEBPACK_IMPORTED_MODULE_4__[/* ReturningStatementNotSupportedError */ "a"](); this.expressionMap.returning = returning; return this; }; /** * Sets ORDER BY condition in the query builder. * If you had previously ORDER BY expression defined, * calling this function will override previously set ORDER BY conditions. */ SoftDeleteQueryBuilder.prototype.orderBy = function (sort, order, nulls) { var _a, _b; if (order === void 0) { order = "ASC"; } if (sort) { if (sort instanceof Object) { this.expressionMap.orderBys = sort; } else { if (nulls) { this.expressionMap.orderBys = (_a = {}, _a[sort] = { order: order, nulls: nulls }, _a); } else { this.expressionMap.orderBys = (_b = {}, _b[sort] = order, _b); } } } else { this.expressionMap.orderBys = {}; } return this; }; /** * Adds ORDER BY condition in the query builder. */ SoftDeleteQueryBuilder.prototype.addOrderBy = function (sort, order, nulls) { if (order === void 0) { order = "ASC"; } if (nulls) { this.expressionMap.orderBys[sort] = { order: order, nulls: nulls }; } else { this.expressionMap.orderBys[sort] = order; } return this; }; /** * Sets LIMIT - maximum number of rows to be selected. */ SoftDeleteQueryBuilder.prototype.limit = function (limit) { this.expressionMap.limit = limit; return this; }; /** * Indicates if entity must be updated after update operation. * This may produce extra query or use RETURNING / OUTPUT statement (depend on database). * Enabled by default. */ SoftDeleteQueryBuilder.prototype.whereEntity = function (entity) { var _this = this; if (!this.expressionMap.mainAlias.hasMetadata) throw new Error(".whereEntity method can only be used on queries which update real entity table."); this.expressionMap.wheres = []; var entities = Array.isArray(entity) ? entity : [entity]; entities.forEach(function (entity) { var entityIdMap = _this.expressionMap.mainAlias.metadata.getEntityIdMap(entity); if (!entityIdMap) throw new Error("Provided entity does not have ids set, cannot perform operation."); _this.orWhereInIds(entityIdMap); }); this.expressionMap.whereEntities = entities; return this; }; /** * Indicates if entity must be updated after update operation. * This may produce extra query or use RETURNING / OUTPUT statement (depend on database). * Enabled by default. */ SoftDeleteQueryBuilder.prototype.updateEntity = function (enabled) { this.expressionMap.updateEntity = enabled; return this; }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Creates UPDATE express used to perform insert query. */ SoftDeleteQueryBuilder.prototype.createUpdateExpression = function () { var metadata = this.expressionMap.mainAlias.hasMetadata ? this.expressionMap.mainAlias.metadata : undefined; if (!metadata) throw new Error("Cannot get entity metadata for the given alias \"" + this.expressionMap.mainAlias + "\""); if (!metadata.deleteDateColumn) { throw new _error_MissingDeleteDateColumnError__WEBPACK_IMPORTED_MODULE_10__[/* MissingDeleteDateColumnError */ "a"](metadata); } // prepare columns and values to be updated var updateColumnAndValues = []; var newParameters = {}; switch (this.expressionMap.queryType) { case "soft-delete": updateColumnAndValues.push(this.escape(metadata.deleteDateColumn.databaseName) + " = CURRENT_TIMESTAMP"); break; case "restore": updateColumnAndValues.push(this.escape(metadata.deleteDateColumn.databaseName) + " = NULL"); break; default: throw new Error("The queryType must be \"soft-delete\" or \"restore\""); } if (metadata.versionColumn) updateColumnAndValues.push(this.escape(metadata.versionColumn.databaseName) + " = " + this.escape(metadata.versionColumn.databaseName) + " + 1"); if (metadata.updateDateColumn) updateColumnAndValues.push(this.escape(metadata.updateDateColumn.databaseName) + " = CURRENT_TIMESTAMP"); // todo: fix issue with CURRENT_TIMESTAMP(6) being used, can "DEFAULT" be used?! if (updateColumnAndValues.length <= 0) { throw new _error_UpdateValuesMissingError__WEBPACK_IMPORTED_MODULE_11__[/* UpdateValuesMissingError */ "a"](); } // we re-write parameters this way because we want our "UPDATE ... SET" parameters to be first in the list of "nativeParameters" // because some drivers like mysql depend on order of parameters if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* MysqlDriver */ "i"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* OracleDriver */ "j"] || this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_8__[/* AbstractSqliteDriver */ "a"]) { this.expressionMap.nativeParameters = Object.assign(newParameters, this.expressionMap.nativeParameters); } // get a table name and all column database names var whereExpression = this.createWhereExpression(); var returningExpression = this.createReturningExpression(); // generate and return sql update query if (returningExpression && (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* PostgresDriver */ "k"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* OracleDriver */ "j"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* CockroachDriver */ "d"])) { return "UPDATE " + this.getTableName(this.getMainTableName()) + " SET " + updateColumnAndValues.join(", ") + whereExpression + " RETURNING " + returningExpression; } else if (returningExpression && this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* SqlServerDriver */ "m"]) { return "UPDATE " + this.getTableName(this.getMainTableName()) + " SET " + updateColumnAndValues.join(", ") + " OUTPUT " + returningExpression + whereExpression; } else { return "UPDATE " + this.getTableName(this.getMainTableName()) + " SET " + updateColumnAndValues.join(", ") + whereExpression; // todo: how do we replace aliases in where to nothing? } }; /** * Creates "ORDER BY" part of SQL query. */ SoftDeleteQueryBuilder.prototype.createOrderByExpression = function () { var _this = this; var orderBys = this.expressionMap.orderBys; if (Object.keys(orderBys).length > 0) return " ORDER BY " + Object.keys(orderBys) .map(function (columnName) { if (typeof orderBys[columnName] === "string") { return _this.replacePropertyNames(columnName) + " " + orderBys[columnName]; } else { return _this.replacePropertyNames(columnName) + " " + orderBys[columnName].order + " " + orderBys[columnName].nulls; } }) .join(", "); return ""; }; /** * Creates "LIMIT" parts of SQL query. */ SoftDeleteQueryBuilder.prototype.createLimitExpression = function () { var limit = this.expressionMap.limit; if (limit) { if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[/* MysqlDriver */ "i"]) { return " LIMIT " + limit; } else { throw new _error_LimitOnUpdateNotSupportedError__WEBPACK_IMPORTED_MODULE_9__[/* LimitOnUpdateNotSupportedError */ "a"](); } } return ""; }; return SoftDeleteQueryBuilder; }(_QueryBuilder__WEBPACK_IMPORTED_MODULE_2__[/* QueryBuilder */ "a"])); //# sourceMappingURL=SoftDeleteQueryBuilder.js.map /***/ }), /* 251 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.XSSHelper = void 0; class XSSHelper { static escapeHTML(text) { if (typeof text !== "string") { return text; } const MAP = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }; return text.replace(/[&<>"']/g, function (m) { return MAP[m]; }); } static escapeJS(text) { if (typeof text !== "string") { return text; } return text.replace(/[<]([\\s]*\\\/?[\\s]*)script([^<]*)[>]/g, function (match, p1, p2) { return "<" + p1 + "sc‌ript" + p2 + ">"; }); } } exports.XSSHelper = XSSHelper; //# sourceMappingURL=XSSHelper.js.map /***/ }), /* 252 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SiteManager = void 0; var Helper_1 = __webpack_require__(15); var AbstractSite_1 = __webpack_require__(146); var ViewInflater_1 = __webpack_require__(54); var Context_1 = __webpack_require__(111); var Translator_1 = __webpack_require__(30); var DataManager_1 = __webpack_require__(59); var HistoryManager_1 = __webpack_require__(255); var EventManager_1 = __webpack_require__(197); /** * Manager-Klasse für die Seiten */ var SiteManager = /*#__PURE__*/function () { /** * Constructor für Manager. Fügt Listener für zurück (onpopstate) hinzu */ function SiteManager() { _classCallCheck(this, SiteManager); this._isInit = false; } /** * * @return {SiteManager} */ _createClass(SiteManager, [{ key: "init", value: /** * @param siteDivId * @param deepLinks */ function init(siteDivId, deepLinks) { var _this = this; this._siteDiv = null; this._siteStack = []; this._siteDiv = document.getElementById(siteDivId); this._titleTranslationCallbackId = null; this._appEndedListener = null; this._inversedDeepLinks = Helper_1.Helper.invertKeyValues(deepLinks); //Listener, welcher beim klicken auf Zurück oder Forward ausgeführt wird HistoryManager_1.HistoryManager.getInstance().setOnPopStateListener(function (state, direction) { //Falls zurück if (direction === HistoryManager_1.HistoryManager.BACK) { _this.goBack(); } //Falls vorwärts else if (HistoryManager_1.HistoryManager.FORWARD === direction) { if (_this._siteStack.indexOf(state.state.site) !== -1) { _this.toForeground(state.state.site); } else { _this.startSite(state.state.site.constructor, state.state.parameters); } } }); //Cordova-Callbacks document.addEventListener("pause", function () { return _this._pauseSite(); }, false); document.addEventListener("resume", function () { return __awaiter(_this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return this._resumeSite(); case 2: return _context.abrupt("return", _context.sent); case 3: case "end": return _context.stop(); } } }, _callee, this); })); }, false); document.addEventListener("menubutton", function () { var site = _this.getCurrentSite(); if (Helper_1.Helper.isNotNull(site)) { site.onMenuPressed(); } }, false); document.addEventListener("searchbutton", function () { var site = _this.getCurrentSite(); if (Helper_1.Helper.isNotNull(site)) { site.onSearchPressed(); } }, false); window.addEventListener("beforeunload", function (e) { var returnMessage = _this.beforeUnload(e); if (returnMessage !== null) { e.preventDefault(); e.returnValue = returnMessage; return returnMessage; } }); this._isInit = true; } }, { key: "setAppEndedListener", value: function setAppEndedListener(listener) { this._appEndedListener = listener; } }, { key: "goBack", value: function goBack() { if (this._siteStack.length >= 1) { var site = this.getCurrentSite(); if (site && site.onBackPressed() !== false) { this.endSite(site); } } } /** * gibt die aktuelle Seite zurück * @returns AbstractSite */ }, { key: "getCurrentSite", value: function getCurrentSite() { if (this._siteStack.length >= 1) { return this._siteStack[this._siteStack.length - 1]; } return null; } /** * Erstellt eine neue Seite und zeigt diese an. ParamsPromise kann entweder ein Promise oder ein Objekt oder null sein. * * @param siteConstructor * @param paramsPromise * @returns {Promise} */ }, { key: "startSite", value: function startSite(siteConstructor, paramsPromise) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var _this2 = this; var loadingSymbol, site; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: if (siteConstructor.prototype instanceof AbstractSite_1.AbstractSite) { _context3.next = 2; break; } throw { "error": "wrong class given! Expected AbstractSite, given " + siteConstructor.name }; case 2: EventManager_1.EventManager.trigger("site-manager-start-site", { site: siteConstructor, paramPromise: paramsPromise }); //Loading-Symbol, falls ViewParameters noch länger brauchen loadingSymbol = ViewInflater_1.ViewInflater.createLoadingSymbol("overlay"); this._siteDiv.appendChild(loadingSymbol); //create Site site = new siteConstructor(this); this._siteStack.unshift(site); //Wartet auf onConstruct, viewPromise, onViewLoaded und zeigt dann Seite Promise.resolve(paramsPromise).then(function (params) { return __awaiter(_this2, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: site._onConstructPromise = site.onConstruct(Helper_1.Helper.nonNull(params, {})); _context2.next = 3; return Promise.all([site._onConstructPromise, site.getViewPromise()]); case 3: if (!(site._state !== Context_1.Context.STATE_DESTROYED && site._state !== Context_1.Context.STATE_DESTROYING)) { _context2.next = 8; break; } _context2.next = 6; return site.callOnViewLoaded(); case 6: site._viewLoadedPromise.resolve(); return _context2.abrupt("return", this._show(site)); case 8: loadingSymbol.remove(); case 9: case "end": return _context2.stop(); } } }, _callee2, this); })); }).catch(function (e) { console.error("site start error for site ", siteConstructor.name, e); site.getFinishResolver().reject(e); loadingSymbol.remove(); //Zeige alte Seite im Fehlerfall wieder an for (var i = _this2._siteStack.length - 1; i >= 0; i--) { if (_this2._siteStack[i] !== site) { return _this2._show(_this2._siteStack[i]); } } site._viewLoadedPromise.reject(); }); //Gebe Site-Promise zurück return _context3.abrupt("return", site.getFinishPromise()); case 9: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "updateUrl", value: function updateUrl(site, args) { var url = this._generateUrl(site, args); HistoryManager_1.HistoryManager.getInstance().replaceState({ 'site': site, 'parameters': args }, site.constructor.name, url); } }, { key: "_generateUrl", value: function _generateUrl(site, args) { var deepLink = this.getDeepLinkFor(site); var url = [location.protocol, '//', location.host, location.pathname].join(''); if (Helper_1.Helper.isNotNull(deepLink)) { args["s"] = deepLink; url = [url, DataManager_1.DataManager.buildQuery(args)].join(''); } return url; } /** * Gibt einen DeepLink zurück * * @param site * @return string */ }, { key: "getDeepLinkFor", value: function getDeepLinkFor(site) { return this._inversedDeepLinks[site.constructor]; } /** * Pausiert eine Seite * * @param site * @private */ }, { key: "_pauseSite", value: function _pauseSite(site) { site = Helper_1.Helper.nonNull(site, this.getCurrentSite()); if (Helper_1.Helper.isNotNull(site) && site._state === Context_1.Context.STATE_RUNNING) { site._pauseParameters = site.onPause(); Helper_1.Helper.removeAllChildren(this._siteDiv).appendChild(ViewInflater_1.ViewInflater.createLoadingSymbol()); } } /** * Lässt eine Seite weiterlaufen * * @param site * @private */ }, { key: "_resumeSite", value: function _resumeSite(site) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: site = Helper_1.Helper.nonNull(site, this.getCurrentSite()); if (!(Helper_1.Helper.isNotNull(site) && (site._state === Context_1.Context.STATE_PAUSED || site._state === Context_1.Context.STATE_VIEW_LOADED))) { _context4.next = 10; break; } _context4.next = 4; return site.getViewPromise(); case 4: Helper_1.Helper.removeAllChildren(this._siteDiv).appendChild(site._view); _context4.next = 7; return Translator_1.Translator.getInstance().updateTranslations(); case 7: if (Helper_1.Helper.isNull(site._historyId)) { site._historyId = HistoryManager_1.HistoryManager.getInstance().pushState({ 'site': site, 'parameters': site.getParameters() }, site.constructor.name, this._generateUrl(site, site.getParameters())); } else { HistoryManager_1.HistoryManager.getInstance().stateToCurrentPosition(site._historyId); } _context4.next = 10; return site.onStart(site._pauseParameters); case 10: case "end": return _context4.stop(); } } }, _callee4, this); })); } /** * Zeigt eine Seite an * * @param site * @returns {Promise<*>} * @private */ }, { key: "_show", value: function _show(site) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var _this3 = this; var currentSiteIndex; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: if (!(site._state === Context_1.Context.STATE_DESTROYING || site._state === Context_1.Context.STATE_DESTROYED)) { _context6.next = 2; break; } return _context6.abrupt("return"); case 2: if (!(site._state === Context_1.Context.STATE_RUNNING && this.getCurrentSite() === site)) { _context6.next = 4; break; } return _context6.abrupt("return"); case 4: //Speichere alte Seite this._pauseSite(); //Zeige Ladesymbol Helper_1.Helper.removeAllChildren(this._siteDiv).appendChild(ViewInflater_1.ViewInflater.createLoadingSymbol()); //Hinzufügen/Updaten zum SiteStack currentSiteIndex = this._siteStack.indexOf(site); if (-1 !== currentSiteIndex) { this._siteStack.splice(currentSiteIndex, 1); } this._siteStack.push(site); //Anzeigen der Seite. Stelle sicher, dass die View wirklich geladen ist! return _context6.abrupt("return", site.getViewPromise().then(function () { return __awaiter(_this3, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: if (!(this.getCurrentSite() === site)) { _context5.next = 3; break; } _context5.next = 3; return this._resumeSite(site); case 3: case "end": return _context5.stop(); } } }, _callee5, this); })); })); case 10: case "end": return _context6.stop(); } } }, _callee6, this); })); } /** * Beendet eine Seite. Muss nicht die aktive Seite sein * * @param site */ }, { key: "endSite", value: function endSite(site) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { var _this4 = this; var index; return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: // return site._onConstructPromise.then(async () => { //Aus Index entfernen index = this._siteStack.indexOf(site); this._siteStack.splice(index, 1); //Seite war/ist die aktive Seite if (index === this._siteStack.length) { this._pauseSite(site); //Seite ist aktiv, zeige Ladesymbol this._siteDiv.appendChild(ViewInflater_1.ViewInflater.createLoadingSymbol('overlay')); site.getFinishPromise().then(function () { var newSiteToShow = _this4.getCurrentSite(); if (Helper_1.Helper.isNotNull(newSiteToShow)) { _this4.toForeground(newSiteToShow); } }); } if (this._siteStack.length <= 0) { console.log("stack is empty, starting normal site!"); HistoryManager_1.HistoryManager.getInstance().cutStack(0); HistoryManager_1.HistoryManager.getInstance().go(-1 * history.length, true); Helper_1.Helper.removeAllChildren(this._siteDiv).appendChild(document.createTextNode("App ist beendet")); if (typeof this._appEndedListener === "function") { this._appEndedListener(this); } } site._context = Context_1.Context.STATE_DESTROYING; _context7.next = 7; return site.onDestroy(); case 7: site._context = Context_1.Context.STATE_DESTROYED; site.getFinishResolver().resolve(site._result); case 9: case "end": return _context7.stop(); } } }, _callee7, this); })); } /** * Stellt eine aktive Seite in den Vordergrund; * @param site * @returns {Promise<*>} */ }, { key: "toForeground", value: function toForeground(site) { return this._show(site); } /** * Updated den Seitentitel. Dafür gibt es im translation-file den Key document-title (document-title-empty, falls title null), * der als Parameter in der Übersetzung den übergebenen Title übergeben bekommt. * * Der übergebene title wird mit den angebenenen argumenten zuerst übersetz, bevor der gesamte document-Title überstzt wird * * Wenn args === false, dann wird title nicht übersetzt * * Durch das argument titleTemplate kann der key im translation-file von document-title individuell abweichen * * @param title * @param args * @param titleTemplate */ }, { key: "updateTitle", value: function updateTitle(title, args, titleTemplate) { titleTemplate = Helper_1.Helper.nonNull(titleTemplate, Helper_1.Helper.isNull(title) ? "document-title-empty" : "document-title"); if (Helper_1.Helper.isNotNull(this._titleTranslationCallbackId)) { Translator_1.Translator.removeTranslationCallback(this._titleTranslationCallbackId); } this._titleTranslationCallbackId = Translator_1.Translator.addTranslationCallback(function () { if (args !== false) { title = Translator_1.Translator.translate(title, args); } document.title = Translator_1.Translator.translate(titleTemplate, [title]); }); } }, { key: "beforeUnload", value: function beforeUnload(e) { return this.getCurrentSite().onBeforeUnload(e); } }], [{ key: "getInstance", value: function getInstance() { if (!this._instance) { this._instance = new SiteManager(); } return this._instance; } }]); return SiteManager; }(); exports.SiteManager = SiteManager; SiteManager._instance = null; /***/ }), /* 253 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DraggedElement = void 0; class DraggedElement { constructor(element) { this.isDragging = false; this.element = element; } onStart(listener) { this.startListener = listener; return this; } onStop(listener) { this.stopListener = listener; return this; } onMove(listener) { this.moveListener = listener; return this; } start() { this.isDragging = true; if (!this.previewElement) { this.previewElement = this.element.cloneNode(true); const styles = getComputedStyle(this.element); for (let i = 0; i < styles.length; i++) { this.previewElement.style[styles[i]] = styles.getPropertyValue(styles[i]); } this.previewElement.style.opacity = "0.6"; this.previewElement.style.position = "fixed"; } const boundingRect = this.element.getBoundingClientRect(); this.startPosition = { x: boundingRect.left, y: boundingRect.top }; this.previewElement.style.top = boundingRect.top + "px"; this.previewElement.style.left = boundingRect.left + "px"; this.previewElement.style.width = (boundingRect.right - boundingRect.left) + "px"; this.previewElement.style.height = (boundingRect.bottom - boundingRect.top) + "px"; document.body.appendChild(this.previewElement); if (this.startListener) { this.startListener(this.element); } } stop(mousePosition) { this.isDragging = false; if (this.previewElement) { this.previewElement.remove(); } const droppedAt = document.elementFromPoint(mousePosition.x, mousePosition.y); if (this.stopListener) { this.stopListener(this.element, droppedAt); } } moved() { if (this.isDragging && this.moveListener) { this.moveListener(this.element); } } moveRelativeTo(relativePos) { if (this.startPosition && this.previewElement) { const newPosition = { x: this.startPosition.x + relativePos.x, y: this.startPosition.y + relativePos.y }; this.previewElement.style.left = newPosition.x + "px"; this.previewElement.style.top = newPosition.y + "px"; this.moved(); } } } exports.DraggedElement = DraggedElement; //# sourceMappingURL=DraggedElement.js.map /***/ }), /* 254 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.NotOnlineError = void 0; var NotOnlineError = /*#__PURE__*/function (_Error) { _inherits(NotOnlineError, _Error); var _super = _createSuper(NotOnlineError); function NotOnlineError(message, url) { var _this; _classCallCheck(this, NotOnlineError); _this = _super.call(this, message + " for url " + url); _this._url = url; return _this; } return NotOnlineError; }( /*#__PURE__*/_wrapNativeSuper(Error)); exports.NotOnlineError = NotOnlineError; /***/ }), /* 255 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } Object.defineProperty(exports, "__esModule", { value: true }); exports.HistoryManager = void 0; var Helper_1 = __webpack_require__(15); /** * Manager, welcher sich um die Manipulation von der Historie kümmert */ var HistoryManager = /*#__PURE__*/function () { /** * Constructor für den Manager. Fügt den onPopstateListener hinzu */ function HistoryManager() { var _this = this; _classCallCheck(this, HistoryManager); this._lastStateId = -1; this._states = {}; this._stack = []; this._ignoreOnPopState = false; this._isUpdateNativeStack = false; this._onPopStateListener = null; this._currentStackIndex = -1; window.onpopstate = function (e) { //Wenn nativeStack geupdated wird, mache nichts if (_this._isUpdateNativeStack) { _this._isUpdateNativeStack = false; return; } var direction = e.state["type"]; _this._currentStackIndex += direction; _this._updateNativeHistoryStack(); //Wenn popState ignoriert werden soll, mache ebenfalls nichts außer Stack updaten if (_this._ignoreOnPopState) { _this._ignoreOnPopState = false; return; } //Wenn Listener gesetzt, hole daten und führe Listener aus if (typeof _this._onPopStateListener === 'function') { var data = {}; if (_this._stack.length > _this._currentStackIndex && _this._currentStackIndex >= 0) { data = _this._states[_this._stack[_this._currentStackIndex]]; } _this._onPopStateListener(data, direction, e); } }; this._updateNativeHistoryStack(); } /** * Updated den History-Stack innerhalb des Browsers * * @param url * @private */ _createClass(HistoryManager, [{ key: "_updateNativeHistoryStack", value: function _updateNativeHistoryStack(url) { url = Helper_1.Helper.nonNull(url, window.location.href); //setze das weitere zurückgehen if (this._currentStackIndex >= 0) { history.pushState({ "type": HistoryManager.BACK }, "back", url); } history.pushState({ "type": HistoryManager.CURRENT }, "current", url); if (this._currentStackIndex < this._stack.length - 1) { history.pushState({ "type": HistoryManager.FORWARD }, "forward", url); this._isUpdateNativeStack = true; history.go(-1); } } /** * Generiert einen neuen History-Eintrag. Gibt die ID des Eintrages zurück * * @param value * @param name * @param url * * @return {number} */ }, { key: "pushState", value: function pushState(value, name, url) { var newState = { state: value, title: name, url: url }; this._lastStateId++; this._states[this._lastStateId] = newState; this._currentStackIndex++; this._stack.splice(this._currentStackIndex, this._stack.length, this._lastStateId); this._updateNativeHistoryStack(url); return this._lastStateId; } /** * Ersetzt den Eintrag mit der gegebenen ID. Ist die ID nicht gegeben, wird der aktuelle Eintrag ersetzt * * @param value * @param name * @param url * @param id */ }, { key: "replaceState", value: function replaceState(value, name, url, id) { id = Helper_1.Helper.nonNull(id, this._stack[this._currentStackIndex]); if (this._stack.length > this._currentStackIndex && this._currentStackIndex >= 0) { this._states[id] = { state: value, title: name, url: url }; this._updateNativeHistoryStack(url); } } /** * Verschiebt den Eintrag mit der entsprechenden ID an die aktuell aktive Stelle * @param id */ }, { key: "stateToCurrentPosition", value: function stateToCurrentPosition(id) { if (Helper_1.Helper.isNotNull(this._states[id])) { var oldStackPosition = this._stack.indexOf(id); if (oldStackPosition !== -1) { this._stack.splice(oldStackPosition, 1); this._stack.splice(this._currentStackIndex + (oldStackPosition <= this._currentStackIndex ? -1 : 0), 0, id); } } } /** * Gehe um to in der Historie * * @param to * @param ignoreOnPopState */ }, { key: "go", value: function go(to, ignoreOnPopState) { this._ignoreOnPopState = Helper_1.Helper.nonNull(ignoreOnPopState, false) === true; history.go(to); } /** * Entferne alle Einträge ab at (inklusive). Wenn at nicht gesetzt ist, wird alles über der aktuellen position abgeschnitten * @param at */ }, { key: "cutStack", value: function cutStack(at) { at = Helper_1.Helper.nonNull(at, this._currentStackIndex + 1); this._stack.splice(at); this._currentStackIndex = Math.min(this._currentStackIndex, this._stack.length - 1); this._updateNativeHistoryStack(); } /** * Alias für this.go(-1) */ }, { key: "back", value: function back() { this.go(-1); } /** * Alias für this.go(1) */ }, { key: "forward", value: function forward() { this.go(+1); } /** * Setzt den onPopStateListener * * @param listener */ }, { key: "setOnPopStateListener", value: function setOnPopStateListener(listener) { this._onPopStateListener = listener; } /** * Singelton-Getter * @return {HistoryManager} */ }], [{ key: "getInstance", value: function getInstance() { if (Helper_1.Helper.isNull(HistoryManager._instance)) { HistoryManager._instance = new HistoryManager(); } return HistoryManager._instance; } }]); return HistoryManager; }(); exports.HistoryManager = HistoryManager; HistoryManager.BACK = -1; HistoryManager.FORWARD = 1; HistoryManager.CURRENT = 0; /***/ }), /* 256 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.ColorIndicator = void 0; var Singleton_1 = __webpack_require__(257); var Helper_1 = __webpack_require__(15); var ColorIndicator = /*#__PURE__*/function (_Singleton_1$Singleto) { _inherits(ColorIndicator, _Singleton_1$Singleto); var _super = _createSuper(ColorIndicator); function ColorIndicator() { _classCallCheck(this, ColorIndicator); return _super.apply(this, arguments); } _createClass(ColorIndicator, [{ key: "getAverageImgColor", value: function getAverageImgColor(imgEl, areaWidth, areaHeight) { //https://stackoverflow.com/questions/2541481/get-average-color-of-image-via-javascript var blockSize = 5, // only visit every 5 pixels defaultRGB = { r: 255, g: 255, b: 255 }, // for non-supporting envs canvas = document.createElement('canvas'), context = canvas.getContext && canvas.getContext('2d'), data, width, height, i = -4 * blockSize, //start with first pixel length, rgb = { r: 0, g: 0, b: 0 }, count = 0; if (!context) { return defaultRGB; } height = canvas.height = imgEl.naturalHeight || imgEl.offsetHeight || imgEl.height; width = canvas.width = imgEl.naturalWidth || imgEl.offsetWidth || imgEl.width; areaWidth = Helper_1.Helper.nonNull(areaWidth, width); areaHeight = Helper_1.Helper.nonNull(areaWidth, height); context.drawImage(imgEl, 0, 0); try { data = context.getImageData(0, 0, Math.min(width, areaWidth), Math.min(height, areaHeight)); } catch (e) { /* security error, img on diff domain */ console.error(e); return defaultRGB; } length = data.data.length; while ((i += blockSize * 4) < length) { ++count; rgb.r += data.data[i]; rgb.g += data.data[i + 1]; rgb.b += data.data[i + 2]; } // ~~ used to floor values rgb.r = ~~(rgb.r / count); rgb.g = ~~(rgb.g / count); rgb.b = ~~(rgb.b / count); return rgb; } }, { key: "invertColorBW", value: function invertColorBW(r, g, b) { return this.invertColor(r, g, b, true); } }, { key: "invertColor", value: function invertColor(r, g, b, bw) { if (_typeof(r) === "object") { bw = g || bw; g = r.g; b = r.b; r = r.r; } if (bw) { // http://stackoverflow.com/a/3943023/112731 return r * 0.299 + g * 0.587 + b * 0.114 > 186 ? { r: 0, g: 0, b: 0 } : { r: 255, g: 255, b: 255 }; } // invert color components r = 255 - r; g = 255 - g; b = 255 - b; // pad each with zeros and return return { r: r, g: g, b: b }; } }, { key: "toHEX", value: function toHEX(r, g, b) { if (_typeof(r) === "object") { g = r.g; b = r.b; r = r.r; } r = r.toString(16); g = g.toString(16); b = b.toString(16); return "#" + Helper_1.Helper.padZero(r) + Helper_1.Helper.padZero(g) + Helper_1.Helper.padZero(b); } }]); return ColorIndicator; }(Singleton_1.Singleton); exports.ColorIndicator = ColorIndicator; /***/ }), /* 257 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } Object.defineProperty(exports, "__esModule", { value: true }); exports.Singleton = void 0; var Singleton = /*#__PURE__*/function () { function Singleton() { _classCallCheck(this, Singleton); } _createClass(Singleton, null, [{ key: "getInstance", value: /** * * @returns {Singleton|this} */ function getInstance() { if (!this._instance) { this._instance = new this(); } return this._instance; } }]); return Singleton; }(); exports.Singleton = Singleton; /***/ }), /* 258 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MasterSite = void 0; var AbstractSite_1 = __webpack_require__(146); var Helper_1 = __webpack_require__(15); var MasterSite = /*#__PURE__*/function (_AbstractSite_1$Abstr) { _inherits(MasterSite, _AbstractSite_1$Abstr); var _super2 = _createSuper(MasterSite); function MasterSite(siteManager, view) { var _this; _classCallCheck(this, MasterSite); _this = _super2.call(this, siteManager, view); _this._delegates = []; return _this; } _createClass(MasterSite, [{ key: "addDelegate", value: function addDelegate(delegateSite) { this._delegates.push(delegateSite); } }, { key: "onConstruct", value: function onConstruct(constructParameters) { var _this2 = this; var _super = Object.create(null, { onConstruct: { get: function get() { return _get(_getPrototypeOf(MasterSite.prototype), "onConstruct", _this2); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var _this3 = this; var res; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: res = _super.onConstruct.call(this, constructParameters); _context2.next = 3; return Helper_1.Helper.asyncForEach(this._delegates, function (delegate) { return __awaiter(_this3, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return delegate.onConstruct(constructParameters); case 2: case "end": return _context.stop(); } } }, _callee); })); }); case 3: return _context2.abrupt("return", res); case 4: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "onStart", value: function onStart(pauseArguments) { var _this4 = this; var _super = Object.create(null, { onStart: { get: function get() { return _get(_getPrototypeOf(MasterSite.prototype), "onStart", _this4); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var _this5 = this; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return _super.onStart.call(this, pauseArguments); case 2: _context4.next = 4; return Helper_1.Helper.asyncForEach(this._delegates, function (delegate) { return __awaiter(_this5, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return delegate.onStart(pauseArguments); case 2: case "end": return _context3.stop(); } } }, _callee3); })); }); case 4: case "end": return _context4.stop(); } } }, _callee4, this); })); } }, { key: "onBackPressed", value: function onBackPressed() { _get(_getPrototypeOf(MasterSite.prototype), "onBackPressed", this).call(this); this._delegates.forEach(function (delegate) { delegate.onBackPressed(); }); } }, { key: "onMenuPressed", value: function onMenuPressed() { _get(_getPrototypeOf(MasterSite.prototype), "onMenuPressed", this).call(this); this._delegates.forEach(function (delegate) { delegate.onMenuPressed(); }); } }, { key: "onSearchPressed", value: function onSearchPressed() { _get(_getPrototypeOf(MasterSite.prototype), "onSearchPressed", this).call(this); this._delegates.forEach(function (delegate) { delegate.onSearchPressed(); }); } }, { key: "onViewLoaded", value: function onViewLoaded() { var _this6 = this; var _super = Object.create(null, { onViewLoaded: { get: function get() { return _get(_getPrototypeOf(MasterSite.prototype), "onViewLoaded", _this6); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var _this7 = this; var res; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: res = _super.onViewLoaded.call(this); _context6.next = 3; return Helper_1.Helper.asyncForEach(this._delegates, function (delegate) { return __awaiter(_this7, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _context5.next = 2; return delegate.onViewLoaded(); case 2: case "end": return _context5.stop(); } } }, _callee5); })); }); case 3: return _context6.abrupt("return", res); case 4: case "end": return _context6.stop(); } } }, _callee6, this); })); } }, { key: "onPause", value: function onPause() { var _this8 = this; var _super = Object.create(null, { onPause: { get: function get() { return _get(_getPrototypeOf(MasterSite.prototype), "onPause", _this8); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { var _this9 = this; return regeneratorRuntime.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: _context8.next = 2; return _super.onPause.call(this); case 2: _context8.next = 4; return Helper_1.Helper.asyncForEach(this._delegates, function (delegate) { return __awaiter(_this9, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: _context7.next = 2; return delegate.onPause(); case 2: case "end": return _context7.stop(); } } }, _callee7); })); }); case 4: case "end": return _context8.stop(); } } }, _callee8, this); })); } }, { key: "onDestroy", value: function onDestroy() { var _this10 = this; var _super = Object.create(null, { onDestroy: { get: function get() { return _get(_getPrototypeOf(MasterSite.prototype), "onDestroy", _this10); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee10() { var _this11 = this; return regeneratorRuntime.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: _context10.next = 2; return _super.onDestroy.call(this); case 2: _context10.next = 4; return Helper_1.Helper.asyncForEach(this._delegates, function (delegate) { return __awaiter(_this11, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { return regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _context9.next = 2; return delegate.onDestroy(); case 2: case "end": return _context9.stop(); } } }, _callee9); })); }); case 4: case "end": return _context10.stop(); } } }, _callee10, this); })); } }]); return MasterSite; }(AbstractSite_1.AbstractSite); exports.MasterSite = MasterSite; /***/ }), /* 259 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ToastManager = void 0; var Helper_1 = __webpack_require__(15); var Translator_1 = __webpack_require__(30); var ToastManager = /*#__PURE__*/function () { function ToastManager() { _classCallCheck(this, ToastManager); this._toastContainer = document.querySelector(ToastManager._toastContainerSelector); this._toastTemplate = this._toastContainer.querySelector(".toast-template"); this._toastTemplate.classList.remove("toast-template"); this._toastTemplate.remove(); } _createClass(ToastManager, [{ key: "showToast", value: function showToast(toast) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var _this = this; var message, toastElement; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: message = toast.getMessage(); if (toast.isShouldTranslate()) { message = Translator_1.Translator.makePersistentTranslation(message, toast.getTranslationArgs()); } else { message = document.createTextNode(message); } toastElement = this._toastTemplate.cloneNode(true); toastElement.querySelector(".message").appendChild(message); toast.setToastElement(toastElement); this._toastContainer.appendChild(toastElement); toastElement.style.opacity = 1; return _context.abrupt("return", new Promise(function (resolve) { toastElement.querySelector(".message").onclick = function () { _this.hideToast(toast); resolve(true); }; setTimeout(function () { _this.hideToast(toast); resolve(false); }, toast.getDuration()); })); case 8: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "hideToast", value: function hideToast(toast) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var element; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: //TODO Animation hinzufügen element = toast.getToastElement(); if (!Helper_1.Helper.isNotNull(element)) { _context2.next = 4; break; } element.style.opacity = 0; return _context2.abrupt("return", new Promise(function (res) { setTimeout(function () { element.remove(); res(); }, 250); })); case 4: return _context2.abrupt("return", Promise.reject("toast is not showing")); case 5: case "end": return _context2.stop(); } } }, _callee2); })); } }], [{ key: "setToastContainerSelector", value: function setToastContainerSelector(selector) { ToastManager._toastContainerSelector = selector; } }, { key: "getInstance", value: function getInstance() { if (!ToastManager._instance) { ToastManager._instance = new ToastManager(); } return ToastManager._instance; } }]); return ToastManager; }(); exports.ToastManager = ToastManager; ToastManager._instance = null; ToastManager._toastContainerSelector = "#toast-container"; /***/ }), /* 260 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.DropdownRenderer = void 0; var OpenSubmenuAction_1 = __webpack_require__(99); var AccordionRenderer_1 = __webpack_require__(200); var Submenu_1 = __webpack_require__(262); /** * Erstellt ein Dropdown-Menu */ var DropdownRenderer = /*#__PURE__*/function (_AccordionRenderer_1$) { _inherits(DropdownRenderer, _AccordionRenderer_1$); var _super = _createSuper(DropdownRenderer); function DropdownRenderer(parentElement) { var _this; _classCallCheck(this, DropdownRenderer); _this = _super.call(this, parentElement); _this._accordionMenuRenderer = new AccordionRenderer_1.AccordionRenderer(); return _this; } /** * Rendert die SubmenuAction * * @param action * @returns {*} */ _createClass(DropdownRenderer, [{ key: "renderSubmenuAction", value: function renderSubmenuAction(action) { if (action.getMenu() instanceof Submenu_1.Submenu) { return _get(_getPrototypeOf(DropdownRenderer.prototype), "renderSubmenuAction", this).call(this, action); } var submenuActionElement = _get(_getPrototypeOf(DropdownRenderer.prototype), "renderSubmenuAction", this).call(this, action); submenuActionElement.classList.add('is-dropdown-submenu-parent'); submenuActionElement.classList.add('opens-right'); return submenuActionElement; } /** * Erstellt ein SubmenuParent * * @param action * @returns {HTMLUListElement} */ }, { key: "createSubmenuParentElement", value: function createSubmenuParentElement(action) { if (action.getMenu() instanceof Submenu_1.Submenu) { return _get(_getPrototypeOf(DropdownRenderer.prototype), "createSubmenuParentElement", this).call(this, action); } var menuElement = document.createElement("ul"); menuElement.classList.add("menu"); menuElement.classList.add("vertical"); menuElement.classList.add("submenu"); menuElement.classList.add("accordion-menu"); menuElement.classList.add("is-dropdown-submenu"); menuElement.classList.add("first-sub"); return menuElement; } /** * Updatet das Element für eine Action * @param action */ }, { key: "updateAction", value: function updateAction(action) { if (action.getMenu() instanceof Submenu_1.Submenu) { return _get(_getPrototypeOf(DropdownRenderer.prototype), "updateAction", this).call(this, action); } if (action instanceof OpenSubmenuAction_1.OpenSubmenuAction) { var submenuElement = this.getElementForAction(action).querySelector(".submenu"); if (action.getSubmenu().isOpen()) { submenuElement.classList.add("js-dropdown-active"); } else { submenuElement.classList.remove("js-dropdown-active"); } } } }]); return DropdownRenderer; }(AccordionRenderer_1.AccordionRenderer); exports.DropdownRenderer = DropdownRenderer; /***/ }), /* 261 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } Object.defineProperty(exports, "__esModule", { value: true }); exports.MenuRenderer = void 0; var Helper_1 = __webpack_require__(15); var OpenSubmenuAction_1 = __webpack_require__(99); /** * Rendert ein Menü */ var MenuRenderer = /*#__PURE__*/function () { /** * Jeder Renderer hat ein Element, wo er die gerenderten Elemente hinzufügt * * @param parentElement */ function MenuRenderer(parentElement) { _classCallCheck(this, MenuRenderer); this._parentElement = parentElement; this._renderedElements = {}; } /** * Stößt das Rendern an * @param menu * @param parentElement */ _createClass(MenuRenderer, [{ key: "render", value: function render(menu, parentElement) { var _this = this; var actions = menu.getActions(); //Funktion wird auch für Submenüs genutzt. Daher muss hier ein anderes parentElement übergeben werden parentElement = Helper_1.Helper.nonNull(parentElement, this._parentElement); if (Helper_1.Helper.isNotNull(parentElement)) { Helper_1.Helper.removeAllChildren(parentElement); //Füge Elemente hinzu actions.forEach(function (action) { parentElement.appendChild(_this.getElementForAction(action)); }); //Setze den onclick-Listener parentElement.onclick = function (e) { if (typeof menu.getOnClickListener() === 'function') { menu.getOnClickListener()(e); } }; } } /** * Führt das Rendern der Elemente aus und ersetzt evtl schon alte Elemente * Auslagern von renderAction und renderSubmenuAction zum besseren überschreiben der Funktionen. * * renderSubmenuAction und renderAction sollten nur von dieser Funktion aufgerufen werden, damit die * _rendererElements aktuell bleiben! * * @param action * @returns {HTMLElement} * @private */ }, { key: "_triggerRenderAction", value: function _triggerRenderAction(action) { var oldElement = this._renderedElements[action.getId()]; if (action instanceof OpenSubmenuAction_1.OpenSubmenuAction) { this._renderedElements[action.getId()] = this.renderSubmenuAction(action); } else { this._renderedElements[action.getId()] = this.renderAction(action); } this.updateAction(action); if (Helper_1.Helper.isNotNull(oldElement)) { oldElement.replaceWith(this._renderedElements[action.getId()]); } return this._renderedElements[action.getId()]; } /** * Gibt das Element zur Action. Falls es noch nicht existiert, wird dieses gerendert * @param action * @returns {*} */ }, { key: "getElementForAction", value: function getElementForAction(action) { if (Helper_1.Helper.isNull(this._renderedElements[action.getId()])) { this._triggerRenderAction(action); } return this._renderedElements[action.getId()]; } /** * Funktion zum überladen * @param action */ }, { key: "renderAction", value: function renderAction(action) { return null; } /** * Funktion zum überladen * @param action */ }, { key: "updateAction", value: function updateAction(action) {} /** * Rendert eine SubmenuAction, kann/sollte überladen werden * @param action * @returns {*} */ }, { key: "renderSubmenuAction", value: function renderSubmenuAction(action) { var actionElement = this.renderAction(action); action.getSubmenu().sortActions(); var submenuParentElement = this.createSubmenuParentElement(action); this.render(action.getSubmenu(), submenuParentElement); actionElement.appendChild(submenuParentElement); return actionElement; } }, { key: "createSubmenuParentElement", value: /** * Erstellt ein Element für ein Submenu. Sollte überladen werden * @param action * @returns {HTMLUListElement} */ function createSubmenuParentElement(action) { return document.createElement("ul"); } }]); return MenuRenderer; }(); exports.MenuRenderer = MenuRenderer; /***/ }), /* 262 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.Submenu = void 0; var Menu_1 = __webpack_require__(199); var Helper_1 = __webpack_require__(15); var OpenSubmenuAction_1 = __webpack_require__(99); /** * Submenü, ein untermenü */ var Submenu = /*#__PURE__*/function (_Menu_1$Menu) { _inherits(Submenu, _Menu_1$Menu); var _super = _createSuper(Submenu); /** * Constructor für ein Submenu * * Bekommt parameter für die OpenSubmenuAction übergeben und reicht diese weiter. * Renderer besitzt das Menü keine, da die Renderer des ParentMenus genutzt werden * Actions können nicht bei der Erstellung hinzugefügt werden * * @param title * @param showFor * @param order * @param icon * @param renderers */ function Submenu(title, showFor, order, icon, renderers) { var _this; _classCallCheck(this, Submenu); _this = _super.call(this, Helper_1.Helper.nonNull(renderers, [])); _this._parentAction = new OpenSubmenuAction_1.OpenSubmenuAction(title, _assertThisInitialized(_this), showFor, order, icon); _this._isOpen = false; return _this; } /** * Erstellt ein neues Menu auf grundlage dieses Menüs. Alle Actions & Submenüs werden ebenfalls kopiert * * @param menu * @return {Submenu} */ _createClass(Submenu, [{ key: "copy", value: function copy(menu) { menu = Helper_1.Helper.nonNull(menu, new Submenu()); menu = _get(_getPrototypeOf(Submenu.prototype), "copy", this).call(this, menu); menu._isOpen = this._isOpen; return menu; } /** * Setzt die ParentAction * * @param action */ }, { key: "setParentAction", value: function setParentAction(action) { this._parentAction = action; } /** * Gibt das ParentMenu zurück */ }, { key: "getParentMenu", value: function getParentMenu() { return this._parentAction.getMenu(); } /** * Erstelle keinen onClickListener, damit der Listener aus dem Obermenü aufgerufen wird * * @returns {null} * @private */ }, { key: "_generateOnClickListener", value: function _generateOnClickListener() { return null; } /** * Wird vom Obermenü aufgerufen, um die ensprechende Action zu finden * * @param actionId * @param event * @returns {boolean} */ }, { key: "click", value: function click(actionId, event) { for (var i = 0, n = this._actions.length; i < n; i++) { if (this._actions[i].getId() === actionId) { if (typeof this._actions[i].getAction() === 'function' && this._actions[i].isActivated()) { this._actions[i].getAction()(this._actions[i], event); event.preventDefault(); } if (!(this._actions[i] instanceof OpenSubmenuAction_1.OpenSubmenuAction)) { this.close(); } return this._actions[i]; } } //Falls action nicht gefunden (da noch nicht beendet), suche in den submenüs nach der Action for (var _i = 0, _n = this._submenus.length; _i < _n; _i++) { var action = this._submenus[_i].click(actionId, event); if (action) { return action; } } return null; } /** * Öffnet oder schließt das Menü */ }, { key: "toggle", value: function toggle() { if (this._isOpen) { this.close(); } else { this.open(); } } /** * öffnet das Menü und updatet die Elemente */ }, { key: "open", value: function open() { this._isOpen = true; this.openSubmenu(this); if (Helper_1.Helper.isNotNull(this._parentAction)) { this._parentAction.update(); } } }, { key: "openSubmenu", value: function openSubmenu(submenu) { this.getParentMenu().openSubmenu(submenu); } /** * schließt das Menü und updatet die Elemente */ }, { key: "close", value: function close() { this._isOpen = false; _get(_getPrototypeOf(Submenu.prototype), "close", this).call(this); if (Helper_1.Helper.isNotNull(this._parentAction)) { this._parentAction.update(); } } /** * Gibt die ParentAction zurück * * @returns {OpenSubmenuAction} */ }, { key: "getParentAction", value: function getParentAction() { return this._parentAction; } /** * Updated eine Action. Da ein Submenu keine Renderer hat, muss es ans parentMenu weitergegeben werden * @param action */ }, { key: "updateAction", value: function updateAction(action) { var parentMenu = this.getParentMenu(); if (parentMenu) { parentMenu.updateAction(action); } } }, { key: "redrawAction", value: function redrawAction(action) { var parentMenu = this.getParentMenu(); if (parentMenu) { parentMenu.redrawAction(action); } } /** * Gibt an, ob das Submenu offen ist oder nicht * * @returns {boolean} */ }, { key: "isOpen", value: function isOpen() { return this._isOpen; } }]); return Submenu; }(Menu_1.Menu); exports.Submenu = Submenu; /***/ }), /* 263 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SwipeChildFragment = void 0; var AbstractFragment_1 = __webpack_require__(79); var Helper_1 = __webpack_require__(15); var SwipeChildFragment = /*#__PURE__*/function (_AbstractFragment_1$A) { _inherits(SwipeChildFragment, _AbstractFragment_1$A); var _super = _createSuper(SwipeChildFragment); function SwipeChildFragment(site, view) { var _this; _classCallCheck(this, SwipeChildFragment); _this = _super.call(this, site, view); _this._parent = null; return _this; } _createClass(SwipeChildFragment, [{ key: "onSwipeRight", value: function onSwipeRight() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: this.previousFragment(); case 1: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "onSwipeLeft", value: function onSwipeLeft() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: this.nextFragment(); case 1: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "setParent", value: function setParent(parent) { this._parent = parent; } }, { key: "nextFragment", value: function nextFragment() { if (Helper_1.Helper.isNotNull(this._parent)) { this._parent.nextFragment(); } } }, { key: "previousFragment", value: function previousFragment() { if (Helper_1.Helper.isNotNull(this._parent)) { this._parent.previousFragment(); } } }]); return SwipeChildFragment; }(AbstractFragment_1.AbstractFragment); exports.SwipeChildFragment = SwipeChildFragment; /***/ }), /* 264 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/chooseDialog.html"; /***/ }), /* 265 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.ElemChooseDialog = void 0; var Dialog_1 = __webpack_require__(84); var ViewInflater_1 = __webpack_require__(54); var view = __webpack_require__(264); var ElemChooseDialog = /*#__PURE__*/function (_Dialog_1$Dialog) { _inherits(ElemChooseDialog, _Dialog_1$Dialog); var _super = _createSuper(ElemChooseDialog); function ElemChooseDialog(valueNames, title) { var _this; _classCallCheck(this, ElemChooseDialog); var viewPromise = ViewInflater_1.ViewInflater.getInstance().load(view).then(function (view) { var template = view.querySelector("#choose-value-template"); template.remove(); template.removeAttribute("id"); var templateContainer = view.querySelector("#choose-container"); var _loop = function _loop(k) { var valueElem = template.cloneNode(true); valueElem.querySelector(".choose-dialog-value").appendChild(valueNames[k]); valueElem["dataset"]["value"] = k; valueElem.addEventListener("click", function () { _this._result = k; _this.close(); }); templateContainer.appendChild(valueElem); }; for (var k in valueNames) { _loop(k); } return view; }); return _this = _super.call(this, viewPromise, title); } return ElemChooseDialog; }(Dialog_1.Dialog); exports.ElemChooseDialog = ElemChooseDialog; /***/ }), /* 266 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ImageSelectionElement = void 0; var ViewInflater_1 = __webpack_require__(54); var shared_1 = __webpack_require__(17); var client_1 = __webpack_require__(147); var defaultView = __webpack_require__(519); var ImageSelectionElement = /*#__PURE__*/function () { function ImageSelectionElement(name, view) { var _this = this; _classCallCheck(this, ImageSelectionElement); this.images = {}; this.name = name; this.viewLoadedPromise = ViewInflater_1.ViewInflater.getInstance().load(shared_1.Helper.nonNull(view, defaultView)).then(function (v) { return __awaiter(_this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: this.view = v; _context.next = 3; return this.prepareView(); case 3: this.showSelection(); return _context.abrupt("return", v); case 5: case "end": return _context.stop(); } } }, _callee, this); })); }); } _createClass(ImageSelectionElement, [{ key: "prepareView", value: function prepareView() { var _this2 = this; this.imageContainerTemplate = this.view.querySelector(".image-selection-image-container"); this.imageContainerTemplate.remove(); this.categoryTemplate = this.view.querySelector(".image-selection-category"); this.categoryTemplate.remove(); this.imageSelectionContainer = this.view.querySelector(".image-selection-category-container"); this.imageSelectionPreviewContainer = this.view.querySelector(".image-selection-preview"); this.inputElement = this.view.querySelector(".image-selection-value"); this.inputElement.name = this.name; var imageSelection = this.view.querySelector(".image-selection"); imageSelection.addEventListener("dragenter", function (e) { e.preventDefault(); e.stopPropagation(); imageSelection.classList.add("highlight"); }); imageSelection.addEventListener("dragover", function (e) { e.preventDefault(); e.stopPropagation(); imageSelection.classList.add("highlight"); }); imageSelection.addEventListener("dragleave", function (e) { e.preventDefault(); e.stopPropagation(); imageSelection.classList.remove("highlight"); }); imageSelection.addEventListener("drop", function (e) { return __awaiter(_this2, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var file, imageValue, base64; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: e.preventDefault(); e.stopPropagation(); imageSelection.classList.remove("highlight"); if (!(e instanceof DragEvent)) { _context2.next = 15; break; } file = null; if (e.dataTransfer.items && e.dataTransfer.items.length >= 1) { if (e.dataTransfer.items[0].kind === "file") { file = e.dataTransfer.items[0].getAsFile(); } } else if (e.dataTransfer.files && e.dataTransfer.files.length >= 1) { file = e.dataTransfer.files[0]; } if (!(!file || !file.type.startsWith("image/"))) { _context2.next = 8; break; } return _context2.abrupt("return"); case 8: imageValue = null; _context2.next = 11; return new Promise(function (resolve, reject) { var reader = new FileReader(); reader.onload = function () { resolve(reader.result); }; reader.onerror = function (error) { return reject(error); }; reader.readAsDataURL(file); }); case 11: base64 = _context2.sent; imageValue = { src: base64, name: file.name }; this.addImages({ "Uploads": [imageValue] }); this.setValue(imageValue); case 15: case "end": return _context2.stop(); } } }, _callee2, this); })); }); } }, { key: "showSelection", value: function showSelection() { var _this3 = this; client_1.ViewHelper.removeAllChildren(this.imageSelectionContainer); Object.keys(this.images).sort(function (a, b) { if (a.toLowerCase() === "uploads") { return -1; } else if (b.toLowerCase() === "uploads") { return 1; } else { return a.localeCompare(b); } }).forEach(function (category) { var categoryElement = _this3.categoryTemplate.cloneNode(true); categoryElement.querySelector(".image-selection-category-name").innerText = category; _this3.images[category].forEach(function (image) { var imageContainerElement = _this3.createImageElement(image); imageContainerElement.addEventListener("click", function () { return _this3.setValue(image); }); categoryElement.appendChild(imageContainerElement); }); _this3.imageSelectionContainer.appendChild(categoryElement); }); } }, { key: "createImageElement", value: function createImageElement(image) { var imageContainerElement = this.imageContainerTemplate.cloneNode(true); imageContainerElement.querySelector(".image-selection-image").src = image.src; if (image.name) { imageContainerElement.querySelector(".image-selection-image-name").innerText = image.name; } return imageContainerElement; } }, { key: "setImages", value: function setImages(images) { this.images = images; if (this.view) { this.showSelection(); } } }, { key: "addImages", value: function addImages(images) { var _this4 = this; Object.keys(images).forEach(function (category) { if (_this4.images[category]) { var _this4$images$categor; var sources = _this4.images[category].map(function (i) { return i.src; }); var newImages = images[category].filter(function (i) { return sources.indexOf(i.src) === -1; }); (_this4$images$categor = _this4.images[category]).push.apply(_this4$images$categor, _toConsumableArray(newImages)); } else { _this4.images[category] = images[category]; } }); if (this.view) { this.showSelection(); } } }, { key: "getView", value: function getView() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: return _context3.abrupt("return", this.viewLoadedPromise); case 1: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "setValue", value: function setValue(image) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.prev = 0; if (typeof image === "string") { image = JSON.parse(image); } _context4.next = 4; return this.viewLoadedPromise; case 4: client_1.ViewHelper.removeAllChildren(this.imageSelectionPreviewContainer); if (image.src) { this.imageSelectionPreviewContainer.appendChild(this.createImageElement(image)); } this.inputElement.value = JSON.stringify(image); _context4.next = 11; break; case 9: _context4.prev = 9; _context4.t0 = _context4["catch"](0); case 11: case "end": return _context4.stop(); } } }, _callee4, this, [[0, 9]]); })); } }]); return ImageSelectionElement; }(); exports.ImageSelectionElement = ImageSelectionElement; /***/ }), /* 267 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.ShareDialog = void 0; var Dialog_1 = __webpack_require__(84); var ViewInflater_1 = __webpack_require__(54); var view = __webpack_require__(522); var ShareDialog = /*#__PURE__*/function (_Dialog_1$Dialog) { _inherits(ShareDialog, _Dialog_1$Dialog); var _super = _createSuper(ShareDialog); function ShareDialog(textToShare) { var _this; _classCallCheck(this, ShareDialog); return _this = _super.call(this, ViewInflater_1.ViewInflater.getInstance().load(view).then(function (view) { view.querySelector("#whatsapp-share").addEventListener("click", function () { var linkToOpen = ""; linkToOpen = "https://web.whatsapp.com/send?text=" + encodeURIComponent(textToShare); window.open(linkToOpen, '_blank', "noopener"); _this.close(); }); view.querySelector("#telegram-share").addEventListener("click", function () { var linkToOpen = "https://t.me/share/url?url=" + encodeURIComponent(textToShare); window.open(linkToOpen, '_blank', "noopener"); _this.close(); }); return view; }), "Share"); } return ShareDialog; }(Dialog_1.Dialog); exports.ShareDialog = ShareDialog; /***/ }), /* 268 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AudioChain = void 0; var Helper_1 = __webpack_require__(7); var AudioChain = /*#__PURE__*/function () { function AudioChain(context, sourceBuffer, chainFunction) { _classCallCheck(this, AudioChain); this._buffer = sourceBuffer; this._shouldLoop = false; this._loopStart = null; this._loopEnd = null; this._chainFunction = chainFunction; this._context = context; this._startTime = null; this._pauseTime = null; this._source = null; this._running = false; } _createClass(AudioChain, [{ key: "setBuffer", value: function setBuffer(buffer) { this._buffer = buffer; } }, { key: "setLooping", value: function setLooping(shouldLoop, loopStart, loopEnd) { this._shouldLoop = shouldLoop; if (Helper_1.Helper.isNotNull(loopStart)) { this._loopStart = loopStart; } if (Helper_1.Helper.isNotNull(loopEnd)) { this._loopEnd = loopEnd; } } }, { key: "start", value: function start(delay, offset, duration) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var source; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: //sind sonst null, schmeißt in Android 5 einen fehler delay = Helper_1.Helper.nonNull(delay, 0); offset = Helper_1.Helper.nonNull(offset, 0); //Duration darf nicht gesetzt werden // duration = Helper.nonNull(duration, -1); source = this._context.createBufferSource(); source.loop = this._shouldLoop; if (Helper_1.Helper.isNotNull(this._loopStart)) { source.loopStart = this._loopStart; } if (Helper_1.Helper.isNotNull(this._loopEnd)) { source.loopEnd = this._loopEnd; } source.buffer = this._buffer; _context.next = 9; return this._chainFunction(source); case 9: if (Helper_1.Helper.isNull(duration)) { source.start(delay, offset); } else { source.start(delay, offset, duration); } this._startTime = new Date().getTime() - Helper_1.Helper.nonNull(offset, 0) * 1000; this._source = source; this._running = true; case 13: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "stop", value: function stop(delay) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: if (!Helper_1.Helper.isNotNull(this._source)) { _context2.next = 5; break; } delay = Helper_1.Helper.nonNull(delay, 0); this._pauseTime = new Date().getTime() - this._startTime; this._running = false; return _context2.abrupt("return", this._source.stop(delay)); case 5: return _context2.abrupt("return", null); case 6: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "resume", value: function resume() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: if (this._running) { _context3.next = 2; break; } return _context3.abrupt("return", this.start(null, Helper_1.Helper.nonNull(this._pauseTime, 0) / 1000.0)); case 2: case "end": return _context3.stop(); } } }, _callee3, this); })); } }]); return AudioChain; }(); exports.AudioChain = AudioChain; /***/ }), /* 269 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var App_1 = __webpack_require__(33); var Translator_1 = __webpack_require__(30); var deTranslations = __webpack_require__(523); var enTranslations = __webpack_require__(524); App_1.App.addInitialization(function () { console.log("user trsnslation"); Translator_1.Translator.addDynamicTranslations({ "de": deTranslations, "en": enTranslations }); }); /***/ }), /* 270 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var client_1 = __webpack_require__(4); var shared_1 = __webpack_require__(525); var deTranslations = __webpack_require__(526); var enTranslations = __webpack_require__(527); client_1.App.addInitialization(function () { shared_1.Translator.addDynamicTranslations({ "de": deTranslations, "en": enTranslations }); }); /***/ }), /* 271 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.Access = void 0; var shared_1 = __webpack_require__(127); var cordova_sites_database_1 = __webpack_require__(20); var Access = /*#__PURE__*/function (_shared_1$EasySyncBas) { _inherits(Access, _shared_1$EasySyncBas); var _super = _createSuper(Access); function Access() { var _this; _classCallCheck(this, Access); _this = _super.call(this); _this.name = null; _this.description = null; return _this; } _createClass(Access, null, [{ key: "getColumnDefinitions", value: function getColumnDefinitions() { var columns = _get(_getPrototypeOf(Access), "getColumnDefinitions", this).call(this); columns["name"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.STRING, unique: true }; columns["description"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.STRING }; return columns; } }]); return Access; }(shared_1.EasySyncBaseModel); exports.Access = Access; Access.CAN_BE_SYNCED = false; cordova_sites_database_1.BaseDatabase.addModel(Access); /***/ }), /* 272 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ForgotPasswordSite = void 0; var UserSite_1 = __webpack_require__(126); var client_1 = __webpack_require__(4); var view = __webpack_require__(529); var UserManager_1 = __webpack_require__(100); var LoginSite_1 = __webpack_require__(149); var ForgotPasswordSite = /*#__PURE__*/function (_client_1$MenuSite) { _inherits(ForgotPasswordSite, _client_1$MenuSite); var _super2 = _createSuper(ForgotPasswordSite); function ForgotPasswordSite(siteManager) { var _this; _classCallCheck(this, ForgotPasswordSite); _this = _super2.call(this, siteManager, view); _this.addDelegate(new UserSite_1.UserSite(_assertThisInitialized(_this), LoginSite_1.LoginSite.ACCESS)); return _this; } _createClass(ForgotPasswordSite, [{ key: "onConstruct", value: function onConstruct(constructParameters) { var _this2 = this; var _super = Object.create(null, { onConstruct: { get: function get() { return _get(_getPrototypeOf(ForgotPasswordSite.prototype), "onConstruct", _this2); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var res; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: res = _super.onConstruct.call(this, constructParameters); if (client_1.Helper.isSet(constructParameters["t"])) { this._token = constructParameters["t"]; } return _context.abrupt("return", res); case 3: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "onViewLoaded", value: function onViewLoaded() { var _this3 = this; var _super = Object.create(null, { onViewLoaded: { get: function get() { return _get(_getPrototypeOf(ForgotPasswordSite.prototype), "onViewLoaded", _this3); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var _this4 = this; var res, form, resetForm; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: res = _super.onViewLoaded.call(this); form = new client_1.Form(this.findBy("#forgot-password-form"), function (data) { return __awaiter(_this4, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return UserManager_1.UserManager.getInstance().sendForgotPasswordEmail(data["email"]); case 2: if (!_context2.sent) { _context2.next = 8; break; } new client_1.Toast("forgot-password-mail sent").show(); _context2.next = 6; return this.finish(); case 6: _context2.next = 9; break; case 8: form.setErrors({ "email": "email is not in our database" }); case 9: case "end": return _context2.stop(); } } }, _callee2, this); })); }); resetForm = new client_1.Form(this.findBy("#reset-password-form"), function (data) { return __awaiter(_this4, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return UserManager_1.UserManager.getInstance().resetPassword(this._token, data["password1"]); case 2: if (!_context3.sent) { _context3.next = 8; break; } new client_1.Toast("password resetted").show(); _context3.next = 6; return this.finish(); case 6: _context3.next = 10; break; case 8: _context3.next = 10; return new client_1.Toast("token is not valid!").show(); case 10: case "end": return _context3.stop(); } } }, _callee3, this); })); }); resetForm.addValidator(function (data) { var errors = {}; var hasErrors = false; if (data["password1"].trim() === "") { hasErrors = true; errors["password1"] = "no password set"; } if (data["password1"] !== data["password2"]) { hasErrors = true; errors["password2"] = "not equal to password1"; } if (hasErrors) { return errors; } else { return true; } }); if (this._token) { this.findBy("#reset-password").classList.remove("hidden"); this.findBy("#forgot-password").classList.add("hidden"); } return _context4.abrupt("return", res); case 6: case "end": return _context4.stop(); } } }, _callee4, this); })); } }]); return ForgotPasswordSite; }(client_1.MenuSite); exports.ForgotPasswordSite = ForgotPasswordSite; client_1.App.addInitialization(function (app) { app.addDeepLink("forgotPW", ForgotPasswordSite); }); /***/ }), /* 273 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.NotAllowedSite = void 0; var MenuSite_1 = __webpack_require__(69); var view = __webpack_require__(530); var NotAllowedSite = /*#__PURE__*/function (_MenuSite_1$MenuSite) { _inherits(NotAllowedSite, _MenuSite_1$MenuSite); var _super2 = _createSuper(NotAllowedSite); function NotAllowedSite(siteManager) { _classCallCheck(this, NotAllowedSite); return _super2.call(this, siteManager, view); } _createClass(NotAllowedSite, [{ key: "onConstruct", value: function onConstruct(constructParameters) { return _get(_getPrototypeOf(NotAllowedSite.prototype), "onConstruct", this).call(this, constructParameters); } }, { key: "onCreateMenu", value: function onCreateMenu(navbar) { return _get(_getPrototypeOf(NotAllowedSite.prototype), "onCreateMenu", this).call(this, navbar); } }, { key: "onPause", value: function onPause() { var _this = this; var _super = Object.create(null, { onPause: { get: function get() { return _get(_getPrototypeOf(NotAllowedSite.prototype), "onPause", _this); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var res; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: res = _super.onPause.call(this); _context.next = 3; return this.finish(); case 3: return _context.abrupt("return", res); case 4: case "end": return _context.stop(); } } }, _callee, this); })); } }]); return NotAllowedSite; }(MenuSite_1.MenuSite); exports.NotAllowedSite = NotAllowedSite; /***/ }), /* 274 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SelectUserDialog = void 0; var Dialog_1 = __webpack_require__(84); var ViewInflater_1 = __webpack_require__(54); var DataManager_1 = __webpack_require__(59); var ViewHelper_1 = __webpack_require__(27); var Helper_1 = __webpack_require__(7); var view = __webpack_require__(531); var SelectUserDialog = /*#__PURE__*/function (_Dialog_1$Dialog) { _inherits(SelectUserDialog, _Dialog_1$Dialog); var _super = _createSuper(SelectUserDialog); function SelectUserDialog() { var _this; _classCallCheck(this, SelectUserDialog); return _this = _super.call(this, ViewInflater_1.ViewInflater.getInstance().load(view).then(function (view) { return __awaiter(_assertThisInitialized(_this), void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var _this2 = this; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: this._loadUserTimeout = null; this._usernameInput = view.querySelector("#username-input"); this._usernameInput.addEventListener("keydown", function () { clearTimeout(_this2._loadUserTimeout); _this2._loadUserTimeout = setTimeout(function () { return __awaiter(_this2, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return this._loadUsers(this._usernameInput.value); case 2: case "end": return _context.stop(); } } }, _callee, this); })); }, 500); }); this._userContainer = view.querySelector("#user-container"); this._userTemplate = view.querySelector("#user-template"); this._userTemplate.remove(); this._userTemplate.removeAttribute("id"); this._loadUsers(); return _context2.abrupt("return", view); case 9: case "end": return _context2.stop(); } } }, _callee2, this); })); }), "select user"); } _createClass(SelectUserDialog, [{ key: "_loadUsers", value: function _loadUsers(username) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var _this3 = this; var res, users; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: debugger; _context3.next = 3; return DataManager_1.DataManager.load("user/listUsers" + DataManager_1.DataManager.buildQuery({ username: Helper_1.Helper.nonNull(username, "") })); case 3: res = _context3.sent; if (res["success"]) { ViewHelper_1.ViewHelper.removeAllChildren(this._userContainer); users = res["data"]; users.forEach(function (user) { var userElement = _this3._userTemplate.cloneNode(true); userElement.querySelector(".name").innerText = user.username; userElement.addEventListener("click", function () { _this3._result = user; _this3.close(); }); _this3._userContainer.appendChild(userElement); }); } case 5: case "end": return _context3.stop(); } } }, _callee3, this); })); } }]); return SelectUserDialog; }(Dialog_1.Dialog); exports.SelectUserDialog = SelectUserDialog; /***/ }), /* 275 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileTransferPromise = void 0; var Helper_1 = __webpack_require__(7); var FilePromise_1 = __webpack_require__(205); var DataManager_1 = __webpack_require__(59); var FileTransferPromise = /*#__PURE__*/function () { function FileTransferPromise(downloadUrl, storagePath) { _classCallCheck(this, FileTransferPromise); this.downloadUrl = downloadUrl; if (Helper_1.Helper.isNull(storagePath)) { var parts = this.downloadUrl.split("/"); if (parts.length > 0) { storagePath = parts[parts.length - 1]; } } this.storagePath = storagePath; } _createClass(FileTransferPromise, [{ key: "download", value: function download() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var blob, filePromise, fileWriter; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: debugger; blob = DataManager_1.DataManager.fetchBlob(this.downloadUrl); _context.next = 4; return FilePromise_1.FilePromise.open(this.storagePath); case 4: filePromise = _context.sent; _context.next = 7; return filePromise.createWriter(); case 7: fileWriter = _context.sent; _context.t0 = fileWriter; _context.next = 11; return blob; case 11: _context.t1 = _context.sent; _context.next = 14; return _context.t0.write.call(_context.t0, _context.t1); case 14: case "end": return _context.stop(); } } }, _callee, this); })); } }]); return FileTransferPromise; }(); exports.FileTransferPromise = FileTransferPromise; /***/ }), /* 276 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileWriterPromise = void 0; var FileWriterPromise = /*#__PURE__*/function () { function FileWriterPromise(fileWriter) { _classCallCheck(this, FileWriterPromise); this.fileWriter = fileWriter; this._isWritingPromise = Promise.resolve(); } _createClass(FileWriterPromise, [{ key: "write", value: function write(data) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var _this = this; var promise; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: promise = this._isWritingPromise.then(function () { return new Promise(function (res, rej) { _this.fileWriter.onwriteend = res; _this.fileWriter.onerror = rej; _this.fileWriter.write(data); }); }); this._isWritingPromise = promise.catch(console.error); return _context.abrupt("return", promise); case 3: case "end": return _context.stop(); } } }, _callee, this); })); } }]); return FileWriterPromise; }(); exports.FileWriterPromise = FileWriterPromise; /***/ }), /* 277 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ClientModel = void 0; var cordova_sites_database_1 = __webpack_require__(20); var client_1 = __webpack_require__(4); var shared_1 = __webpack_require__(17); var ClientModel = /*#__PURE__*/function (_cordova_sites_databa) { _inherits(ClientModel, _cordova_sites_databa); var _super2 = _createSuper(ClientModel); function ClientModel() { _classCallCheck(this, ClientModel); return _super2.apply(this, arguments); } _createClass(ClientModel, [{ key: "toJSON", value: function toJSON(includeFull) {} }, { key: "save", value: function save(local) { var _this = this; var _super = Object.create(null, { save: { get: function get() { return _get(_getPrototypeOf(ClientModel.prototype), "save", _this); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var values, data; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (local) { _context.next = 9; break; } values = this.toJSON(); _context.next = 4; return client_1.DataManager.send(this.constructor.SAVE_PATH, { "model": this.constructor.getSchemaName(), "values": values }); case 4: data = _context.sent; if (!(data.success === false)) { _context.next = 7; break; } throw new Error(data.errors); case 7: _context.next = 9; return this.constructor._fromJson(data, this, true); case 9: return _context.abrupt("return", _super.save.call(this)); case 10: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "delete", value: function _delete(local) { var _this2 = this; var _super = Object.create(null, { delete: { get: function get() { return _get(_getPrototypeOf(ClientModel.prototype), "delete", _this2); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var data; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: if (local) { _context2.next = 6; break; } _context2.next = 3; return client_1.DataManager.send(this.constructor.DELETE_PATH, { "model": this.constructor.getSchemaName(), "id": this.id }); case 3: data = _context2.sent; if (!(data.success === false)) { _context2.next = 6; break; } throw new Error(data.errors); case 6: return _context2.abrupt("return", _super.delete.call(this)); case 7: case "end": return _context2.stop(); } } }, _callee2, this); })); } }], [{ key: "getColumnDefinitions", value: function getColumnDefinitions() { var columns = _get(_getPrototypeOf(ClientModel), "getColumnDefinitions", this).call(this); if (columns["id"] && columns["id"]["generated"]) { columns["id"]["generated"] = false; } return columns; } }, { key: "_fromJson", value: function _fromJson(jsonObjects, models, includeRelations) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: case "end": return _context3.stop(); } } }, _callee3); })); } }, { key: "saveMany", value: function saveMany(entities, local) { var _this3 = this; var _super = Object.create(null, { saveMany: { get: function get() { return _get(_getPrototypeOf(ClientModel), "saveMany", _this3); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var values, data; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: if (local) { _context4.next = 11; break; } values = []; entities.forEach(function (entity) { values.push(entity.toJSON()); }); _context4.next = 5; return client_1.DataManager.send(this.SAVE_PATH, { "model": this.getSchemaName(), "values": values }); case 5: data = _context4.sent; if (!(data.success === false)) { _context4.next = 8; break; } throw new Error(data.errors); case 8: _context4.next = 10; return this._fromJson(data, undefined, true); case 10: entities = _context4.sent; case 11: return _context4.abrupt("return", _super.saveMany.call(this, entities)); case 12: case "end": return _context4.stop(); } } }, _callee4, this); })); } }, { key: "getSchemaDefinition", value: function getSchemaDefinition() { var TYPES_FOR_DEFAULT_ESCAPING = [cordova_sites_database_1.BaseDatabase.TYPES.MEDIUMTEXT, cordova_sites_database_1.BaseDatabase.TYPES.STRING, cordova_sites_database_1.BaseDatabase.TYPES.TEXT]; var definitions = _get(_getPrototypeOf(ClientModel), "getSchemaDefinition", this).call(this); var columns = definitions["columns"]; Object.keys(columns).forEach(function (column) { if (columns[column].type === cordova_sites_database_1.BaseDatabase.TYPES.MEDIUMTEXT) { columns[column].type = cordova_sites_database_1.BaseDatabase.TYPES.TEXT; } if (columns[column].type === cordova_sites_database_1.BaseDatabase.TYPES.JSON) { columns[column].type = cordova_sites_database_1.BaseDatabase.TYPES.SIMPLE_JSON; } if (TYPES_FOR_DEFAULT_ESCAPING.indexOf(columns[column].type) !== -1) { columns[column].escapeJS = shared_1.Helper.nonNull(columns[column].escapeJS, true); columns[column].escapeHTML = shared_1.Helper.nonNull(columns[column].escapeHTML, true); } }); return definitions; } }]); return ClientModel; }(cordova_sites_database_1.BaseModel); exports.ClientModel = ClientModel; ClientModel.SAVE_PATH = "/sync"; ClientModel.DELETE_PATH = "/sync/delete"; /***/ }), /* 278 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ClientPartialModel = void 0; var EasySyncBaseModel_1 = __webpack_require__(78); var cordova_sites_database_1 = __webpack_require__(20); var client_1 = __webpack_require__(4); var Helper_1 = __webpack_require__(7); var ClientPartialModel = /*#__PURE__*/function (_EasySyncBaseModel_1$) { _inherits(ClientPartialModel, _EasySyncBaseModel_1$); var _super2 = _createSuper(ClientPartialModel); function ClientPartialModel() { var _this; _classCallCheck(this, ClientPartialModel); _this = _super2.call(this); _this.clientId = null; return _this; } _createClass(ClientPartialModel, [{ key: "toJSON", value: function toJSON(includeFull) { var _this2 = this; var relations = this.constructor.getRelationDefinitions(); var columns = this.constructor.getColumnDefinitions(); var obj = {}; Object.keys(columns).forEach(function (attribute) { if (attribute !== "clientId") { obj[attribute] = _this2[attribute]; } }); Object.keys(relations).forEach(function (relationName) { if (includeFull === true) { obj[relationName] = _this2[relationName]; } else { if (Array.isArray(_this2[relationName])) { var ids = []; _this2[relationName].forEach(function (child) { return child && ids.push(child.id); }); obj[relationName] = ids; } else if (_this2[relationName] instanceof cordova_sites_database_1.BaseModel) { obj[relationName] = _this2[relationName].id; } else { obj[relationName] = null; } } }); return obj; } }, { key: "save", value: function save(local) { var _this3 = this; var _super = Object.create(null, { save: { get: function get() { return _get(_getPrototypeOf(ClientPartialModel.prototype), "save", _this3); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var values, data; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: local = Helper_1.Helper.nonNull(local, true); if (typeof this.clientId !== "number") { this.clientId = undefined; } if (local) { _context.next = 10; break; } values = this.toJSON(); _context.next = 6; return client_1.DataManager.send(this.constructor.SAVE_PATH, { "model": this.constructor.getSchemaName(), "values": values }); case 6: data = _context.sent; if (!(data.success !== false)) { _context.next = 10; break; } _context.next = 10; return this.constructor._fromJson(data, this, true); case 10: return _context.abrupt("return", _super.save.call(this, true)); case 11: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "delete", value: function _delete(local) { var _this4 = this; var _super = Object.create(null, { delete: { get: function get() { return _get(_getPrototypeOf(ClientPartialModel.prototype), "delete", _this4); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var data; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: if (local) { _context2.next = 6; break; } _context2.next = 3; return client_1.DataManager.send(this.constructor.DELETE_PATH, { "model": this.constructor.getSchemaName(), "id": this.id }); case 3: data = _context2.sent; if (!(data.success === false)) { _context2.next = 6; break; } throw new Error(data.errors); case 6: return _context2.abrupt("return", _super.delete.call(this, true)); case 7: case "end": return _context2.stop(); } } }, _callee2, this); })); } }], [{ key: "getColumnDefinitions", value: function getColumnDefinitions() { var columns = _get(_getPrototypeOf(ClientPartialModel), "getColumnDefinitions", this).call(this); if (columns["id"]) { columns["id"]["primary"] = false; columns["id"]["generated"] = false; columns["id"]["nullable"] = true; columns["id"]["unique"] = true; } columns["clientId"] = { type: "integer", primary: true, generated: true }; return columns; } }, { key: "saveMany", value: function saveMany(entities, local) { var _this5 = this; var _super = Object.create(null, { saveMany: { get: function get() { return _get(_getPrototypeOf(ClientPartialModel), "saveMany", _this5); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var values, data; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: local = Helper_1.Helper.nonNull(local, true); entities.forEach(function (entity) { if (typeof entity.clientId !== "number") { entity.clientId = undefined; } }); if (local) { _context3.next = 12; break; } values = []; entities.forEach(function (entity) { values.push(entity.toJSON()); }); _context3.next = 7; return client_1.DataManager.send(this.SAVE_PATH, { "model": this.getSchemaName(), "values": values }); case 7: data = _context3.sent; if (!(data.success !== false)) { _context3.next = 12; break; } _context3.next = 11; return this._fromJson(data, entities, true); case 11: entities = _context3.sent; case 12: return _context3.abrupt("return", _super.saveMany.call(this, entities, true)); case 13: case "end": return _context3.stop(); } } }, _callee3, this); })); } }]); return ClientPartialModel; }(EasySyncBaseModel_1.EasySyncBaseModel); exports.ClientPartialModel = ClientPartialModel; /***/ }), /* 279 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.AccessEasySyncModel = void 0; var shared_1 = __webpack_require__(127); var AccessEasySyncModel = /*#__PURE__*/function (_shared_1$EasySyncBas) { _inherits(AccessEasySyncModel, _shared_1$EasySyncBas); var _super = _createSuper(AccessEasySyncModel); function AccessEasySyncModel() { _classCallCheck(this, AccessEasySyncModel); return _super.apply(this, arguments); } return AccessEasySyncModel; }(shared_1.EasySyncBaseModel); exports.AccessEasySyncModel = AccessEasySyncModel; AccessEasySyncModel.ACCESS_READ = true; AccessEasySyncModel.ACCESS_MODIFY = false; AccessEasySyncModel.CAN_BE_SYNCED = false; /***/ }), /* 280 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony default export */ __webpack_exports__["default"] = ("img/help.png"); /***/ }), /* 281 */ /***/ (function(module) { module.exports = JSON.parse("{\"won\":\"Gewonnen!\",\"continue\":\"Weiter\",\"help\":\"?\",\"not-enough-coins\":\"Du hast zu wenig Münzen!\",\"sync-error\":\"Es gab einen Fehler beim Aktualisieren der Level. Bitte stelle sicher, dass du eine aktive Internetverbindung hast und versuche es später erneut.\",\"game-ended\":\"Oh nein!
Es sieht so aus, als ob du schon alle Level gespielt hast...
Schau später noch einmal rein, evtl gibt es dann neue Level.\",\"play\":\"Spielen!\",\"tutorial-step-1\":\"Klicke auf ein Feld, um dieses rotieren zu lassen!\",\"tutorial-step-2\":\"Um zu gewinnen, drehe die Segmente so, dass du zwei Wörter lesen kannst.\",\"tutorial-step-3\":\"Die Hilfe löst ein Segment, kostet aber 25 Münzen. Probiere jetzt die Hilfe aus.\",\"tutorial-step-4\":\"Große Segmente drehst du, indem du diese ziehst.\",\"extra-coins-after-first-level\":\"Für das erste Level gibt es 50 extra Münzen!\",\"dark\":\"Dunkel\",\"theme\":\"Theme:\",\"sound\":\"Sound:\",\"music\":\"Musik:\",\"credits\":\"Credits\",\"privacy-policy\":\"Datenschutzbestimmungen\",\"impressum\":\"Impressum\",\"track\":\"Anonymisierte Nutzungsdaten senden:\",\">\":\">\",\"choose-theme-dialog-title\":\"Theme auswählen:\",\"install\":\"Installieren\",\"share-dialog\":\"Teilen:\",\"credits-text\":\"Ein großer Dank geht an Hanna, denn ohne sie sähe die App nicht so aus, wie sie aussieht. Danke für deine guten Vorschläge und Ratschläge für das Design!\",\"credits-coin-text\":\"Sound:
Der Münz-Sound ist von der Webseite
{0}. Alle Rechte für diesen Münz-Sound gehören {0}.\",\"credits-music-text\":\"Musik:
Bright And Beautiful - GEMAfreie Musik von {0}
Licensed under Creative Commons: By Attribution 4.0 International (CC BY 4.0)
{1}
Angepasst (geschnitten) für diese App\",\"storage-info\":\"Fortschritt {0} dauerhaft gespeichert\",\"storage-permission-not-get\":\"Der Browser gibt nicht die Erlaubnis zur dauerhaften Speicherung...\",\"storage-permission-get\":\"Die Daten sind nun dauerhaft gespeichert\",\"persist-storage-dialog-title\":\"Daten dauerhaft speichern?\",\"persist-storage-dialog-message\":\"Der Fortschritt und die Level dieser WebApp sind nur temporär gespeichert. Damit die Daten dauerhaft gespeichert werden, muss eins von drei Kriterien erfüllt sein:

1) Die Seite muss als Lesezeichen gespeichert werden (und maximal 5 Lesezeichen ingsesamt).
2) Die Seite muss mit die meistbenutzte Seite sein.
3) Benachrichtigungen müssen erlaubt werden.

Damit die Daten dieser Webseite nicht gelöscht werden, erlaube bitte Benachrichtigungen. Alternativ kannst du die Seite auch als Lesezeichen speichern.\",\"notification-permission-denied\":\"Die Berechtigung für Benachrichtigungen wurde verwährt\",\"already-persisted-dialog-message\":\"Damit die Daten dauerhaft gespeichert werden, muss eins von drei Kriterien erfüllt sein:
1) Die Seite muss als Lesezeichen gespeichert werden (und maximal 5 Lesezeichen ingsesamt).
2) Die Seite muss mit die meistbenutzte Seite sein.
3) Benachrichtigungen müssen erlaubt werden.
Du erfüllst schon ein Kriterium und daher wird dein Fortschritt dauerhaft gespeichert (außer du löscht sie)\",\"already-persisted-dialog-title\":\"Daten werden dauerhaft gespeichert!\",\"persist-storage-dialog-message-firefox\":\"Damit dein Fortschritt dauerhaft gespeichert wird, musst du zulassen, dass Daten dauerhaft gespeichert werden.\",\"warning-data-not-persistent\":\"Achtung! Dein Fortschritt kann verloren gehen! Gehe die Einstellungen für mehr Infos.\",\"version-label\":\"Version:\",\"share-text\":\"Schau dir diese coole App an:\\n{0}\",\"share\":\"Teilen\",\"document-title\":\"WordRotator\",\"document-title-empty\":\"WordRotator\",\"contact\":\"Kontakt\",\"contact text\":\"Du möchtest Kontakt mit uns aufnehmen? Kein Problem, nutze einfach das Kontaktformular oder sende uns eine E-Mail an {0}.\\n Egal, ob du uns eine E-Mail sendest oder das Kontaktformular benutzt, akzeptierst du unsere Datenschutzbestimmung\",\"e-mail\":\"E-Mailadresse\",\"privacy policy accepted\":\" akzeptiert\",\"message\":\"Nachricht\",\"send\":\"Senden\",\"the message was sent\":\"Die Nachricht wurde gesendet.\",\"wr\":\"WR\",\"tutorial\":\"Spielregeln\",\"tutorial-1\":\"Klicke auf ein Feld, um dieses rotieren zu lassen! Um zu gewinnen, drehe die Segmente so, dass du zwei Wörter lesen kannst.\",\"tutorial-2\":\"Die Hilfe löst ein Segment, kostet aber 25 Münzen. Du erhältst 5 Münzen pro gewonnenes Level.\",\"tutorial-3\":\"Große Segmente drehst du, indem du diese ziehst.\",\"you solved the tutorial level!\":\"Du hast das Tutorial-Level gelöst!\"}"); /***/ }), /* 282 */ /***/ (function(module) { module.exports = JSON.parse("{\"won\":\"Won!\",\"continue\":\"Continue\",\"help\":\"?\",\"not-enough-coins\":\"You have to few coins!\",\"sync-error\":\"Es gab einen Fehler beim Aktualisieren der Level. Bitte stelle sicher, dass du eine aktive Internetverbindung hast und versuche es später erneut.\",\"game-ended\":\"Oh nein!
Es sieht so aus, als ob du schon alle Level gespielt hast...
Schau später noch einmal rein, evtl gibt es dann neue Level.\",\"play\":\"Spielen!\",\"tutorial-step-1\":\"Klicke auf ein Feld, um dieses rotieren zu lassen!\",\"tutorial-step-2\":\"Um zu gewinnen, drehe die Segmente so, dass du zwei Wörter lesen kannst.\",\"tutorial-step-3\":\"Die Hilfe löst ein Segment, kostet aber 25 Münzen. Probiere jetzt die Hilfe aus.\",\"tutorial-step-4\":\"Große Segmente drehst du, indem du diese ziehst.\",\"extra-coins-after-first-level\":\"Für das erste Level gibt es 50 extra Münzen!\",\"dark\":\"Dunkel\",\"theme\":\"Theme:\",\"sound\":\"Sound:\",\"music\":\"Musik:\",\"credits\":\"Credits\",\"privacy-policy\":\"Datenschutzbestimmungen\",\"impressum\":\"Impressum\",\"track\":\"Anonymisierte Nutzungsdaten senden:\",\">\":\">\",\"choose-theme-dialog-title\":\"Theme auswählen:\",\"install\":\"Installieren\",\"share-dialog\":\"Teilen:\",\"credits-sister-text\":\"Ich danke meiner Lieblingsschwester, denn ohne Sie würde diese App nicht so aussehen, wie sie aussieht (wahrscheinlich eher schlechter :p)\",\"credits-coin-text\":\"Sound:
Der Münz-Sound ist von der Webseite
{0}. Alle Rechte für diesen Münz-Sound gehören {0}.\",\"credits-music-text\":\"Musik:
Bright And Beautiful - GEMAfreie Musik von {0}
Licensed under Creative Commons: By Attribution 4.0 International (CC BY 4.0)
{1}
Angepasst (geschnitten) für diese App\",\"storage-info\":\"Fortschritt {0} dauerhaft gespeichert\",\"storage-permission-not-get\":\"Der Browser gibt nicht die Erlaubnis zur dauerhaften Speicherung...\",\"storage-permission-get\":\"Die Daten sind nun dauerhaft gespeichert\",\"persist-storage-dialog-title\":\"Daten dauerhaft speichern?\",\"persist-storage-dialog-message\":\"Der Fortschritt und die Level dieser WebApp sind nur temporär gespeichert. Damit die Daten dauerhaft gespeichert werden, muss eins von drei Kriterien erfüllt sein:

1) Die Seite muss als Lesezeichen gespeichert werden (und maximal 5 Lesezeichen ingsesamt).
2) Die Seite muss mit die meistbenutzte Seite sein.
3) Benachrichtigungen müssen erlaubt werden.

Damit die Daten dieser Webseite nicht gelöscht werden, erlaube bitte Benachrichtigungen. Alternativ kannst du die Seite auch als Lesezeichen speichern.\",\"notification-permission-denied\":\"Die Berechtigung für Benachrichtigungen wurde verwährt\",\"already-persisted-dialog-message\":\"Damit die Daten dauerhaft gespeichert werden, muss eins von drei Kriterien erfüllt sein:
1) Die Seite muss als Lesezeichen gespeichert werden (und maximal 5 Lesezeichen ingsesamt).
2) Die Seite muss mit die meistbenutzte Seite sein.
3) Benachrichtigungen müssen erlaubt werden.
Du erfüllst schon ein Kriterium und daher wird dein Fortschritt dauerhaft gespeichert (außer du löscht sie)\",\"already-persisted-dialog-title\":\"Daten werden dauerhaft gespeichert!\",\"persist-storage-dialog-message-firefox\":\"Damit dein Fortschritt dauerhaft gespeichert wird, musst du zulassen, dass Daten dauerhaft gespeichert werden.\",\"warning-data-not-persistent\":\"Achtung! Dein Fortschritt kann verloren gehen! Gehe die Einstellungen für mehr Infos.\",\"version-label\":\"Version:\",\"share-text\":\"Schau dir diese coole App an: {0}\",\"share\":\"Teilen\",\"document-title\":\"WordRotator\",\"document-title-empty\":\"WordRotator\",\"contact\":\"Kontakt\",\"contact text\":\"Du möchtest Kontakt mit uns aufnehmen? Kein Problem, nutze einfach das Kontaktformular oder sende uns eine E-Mail an {0}.\\n Egal, ob du uns eine E-Mail sendest oder das Kontaktformular benutzt, akzeptierst du unsere Datenschutzbestimmung\",\"e-mail\":\"E-Mailadresse\",\"privacy policy accepted\":\" akzeptiert\",\"message\":\"Nachricht\",\"send\":\"Senden\",\"the message was sent\":\"Die Nachricht wurde gesendet.\"}"); /***/ }), /* 283 */ /***/ (function(module, exports, __webpack_require__) { var exports = module.exports = function SHA (algorithm) { algorithm = algorithm.toLowerCase() var Algorithm = exports[algorithm] if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)') return new Algorithm() } exports.sha = __webpack_require__(480) exports.sha1 = __webpack_require__(484) exports.sha224 = __webpack_require__(485) exports.sha256 = __webpack_require__(248) exports.sha384 = __webpack_require__(486) exports.sha512 = __webpack_require__(249) /***/ }), /* 284 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SqljsQueryRunner; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var _error_QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34); /* harmony import */ var _sqlite_abstract_AbstractSqliteQueryRunner__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73); /* harmony import */ var _subscriber_Broadcaster__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(55); /* harmony import */ var _error_QueryFailedError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(39); /** * Runs queries on a single sqlite database connection. */ var SqljsQueryRunner = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(SqljsQueryRunner, _super); // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function SqljsQueryRunner(driver) { var _this = _super.call(this) || this; _this.driver = driver; _this.connection = driver.connection; _this.broadcaster = new _subscriber_Broadcaster__WEBPACK_IMPORTED_MODULE_3__[/* Broadcaster */ "a"](_this); return _this; } // ------------------------------------------------------------------------- // Public methods // ------------------------------------------------------------------------- /** * Commits transaction. * Error will be thrown if transaction was not started. */ SqljsQueryRunner.prototype.commitTransaction = function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, _super.prototype.commitTransaction.call(this)]; case 1: _a.sent(); return [4 /*yield*/, this.driver.autoSave()]; case 2: _a.sent(); return [2 /*return*/]; } }); }); }; /** * Executes a given SQL query. */ SqljsQueryRunner.prototype.query = function (query, parameters) { var _this = this; if (parameters === void 0) { parameters = []; } if (this.isReleased) throw new _error_QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_1__[/* QueryRunnerAlreadyReleasedError */ "a"](); return new Promise(function (ok, fail) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(_this, void 0, void 0, function () { var databaseConnection, queryStartTime, statement, maxQueryExecutionTime, queryEndTime, queryExecutionTime, result; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { databaseConnection = this.driver.databaseConnection; this.driver.connection.logger.logQuery(query, parameters, this); queryStartTime = +new Date(); try { statement = databaseConnection.prepare(query); if (parameters) { parameters = parameters.map(function (p) { return typeof p !== 'undefined' ? p : null; }); statement.bind(parameters); } maxQueryExecutionTime = this.driver.connection.options.maxQueryExecutionTime; queryEndTime = +new Date(); queryExecutionTime = queryEndTime - queryStartTime; if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime) this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this); result = []; while (statement.step()) { result.push(statement.getAsObject()); } statement.free(); ok(result); } catch (e) { if (statement) { statement.free(); } this.driver.connection.logger.logQueryError(e, query, parameters, this); fail(new _error_QueryFailedError__WEBPACK_IMPORTED_MODULE_4__[/* QueryFailedError */ "a"](query, parameters, e)); } return [2 /*return*/]; }); }); }); }; return SqljsQueryRunner; }(_sqlite_abstract_AbstractSqliteQueryRunner__WEBPACK_IMPORTED_MODULE_2__[/* AbstractSqliteQueryRunner */ "a"])); //# sourceMappingURL=SqljsQueryRunner.js.map /***/ }), /* 285 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(Buffer) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return NativescriptDriver; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var _sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16); /* harmony import */ var _NativescriptQueryRunner__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(286); /* harmony import */ var _error_DriverOptionNotSetError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(37); /* harmony import */ var _error_DriverPackageNotInstalledError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(71); /** * Organizes communication with sqlite DBMS within Nativescript. */ var NativescriptDriver = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(NativescriptDriver, _super); // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function NativescriptDriver(connection) { var _this = _super.call(this, connection) || this; _this.connection = connection; _this.options = connection.options; _this.database = _this.options.database; _this.driver = _this.options.driver; // validate options to make sure everything is set if (!_this.options.database) { throw new _error_DriverOptionNotSetError__WEBPACK_IMPORTED_MODULE_3__[/* DriverOptionNotSetError */ "a"]("database"); } // load sqlite package _this.loadDependencies(); return _this; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Closes connection with database. */ NativescriptDriver.prototype.disconnect = function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __awaiter */ "b"])(this, void 0, void 0, function () { var _this = this; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __generator */ "d"])(this, function (_a) { return [2 /*return*/, new Promise(function (ok, fail) { _this.queryRunner = undefined; _this.databaseConnection.close().then(ok).catch(fail); })]; }); }); }; /** * Creates a query runner used to execute database queries. */ NativescriptDriver.prototype.createQueryRunner = function (mode) { if (!this.queryRunner) { this.queryRunner = new _NativescriptQueryRunner__WEBPACK_IMPORTED_MODULE_2__[/* NativescriptQueryRunner */ "a"](this); } return this.queryRunner; }; NativescriptDriver.prototype.normalizeType = function (column) { if (column.type === Buffer) { return "blob"; } return _super.prototype.normalizeType.call(this, column); }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Creates connection with the database. */ NativescriptDriver.prototype.createDatabaseConnection = function () { var _this = this; return new Promise(function (ok, fail) { var options = Object.assign({}, { readOnly: _this.options.readOnly, key: _this.options.key, multithreading: _this.options.multithreading, migrate: _this.options.migrate, iosFlags: _this.options.iosFlags, androidFlags: _this.options.androidFlags, }, _this.options.extra || {}); new _this.sqlite(_this.options.database, options, function (err, db) { if (err) return fail(err); // use object mode to work with TypeORM db.resultType(_this.sqlite.RESULTSASOBJECT); // we need to enable foreign keys in sqlite to make sure all foreign key related features // working properly. this also makes onDelete work with sqlite. db.execSQL("PRAGMA foreign_keys = ON;", [], function (err, result) { if (err) return fail(err); // We are all set ok(db); }); }); }); }; /** * If driver dependency is not given explicitly, then try to load it via "require". */ NativescriptDriver.prototype.loadDependencies = function () { this.sqlite = this.driver; if (!this.driver) { throw new _error_DriverPackageNotInstalledError__WEBPACK_IMPORTED_MODULE_4__[/* DriverPackageNotInstalledError */ "a"]("Nativescript", "nativescript-sqlite"); } }; return NativescriptDriver; }(_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_1__[/* AbstractSqliteDriver */ "a"])); //# sourceMappingURL=NativescriptDriver.js.map /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(98).Buffer)) /***/ }), /* 286 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return NativescriptQueryRunner; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var _error_QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34); /* harmony import */ var _error_QueryFailedError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(39); /* harmony import */ var _sqlite_abstract_AbstractSqliteQueryRunner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(73); /* harmony import */ var _subscriber_Broadcaster__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(55); /** * Runs queries on a single sqlite database connection. */ var NativescriptQueryRunner = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __extends */ "c"])(NativescriptQueryRunner, _super); // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function NativescriptQueryRunner(driver) { var _this = _super.call(this) || this; _this.driver = driver; _this.connection = driver.connection; _this.broadcaster = new _subscriber_Broadcaster__WEBPACK_IMPORTED_MODULE_4__[/* Broadcaster */ "a"](_this); return _this; } /** * Executes a given SQL query. */ NativescriptQueryRunner.prototype.query = function (query, parameters) { var _this = this; if (this.isReleased) throw new _error_QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_1__[/* QueryRunnerAlreadyReleasedError */ "a"](); var connection = this.driver.connection; return new Promise(function (ok, fail) { var isInsertQuery = query.substr(0, 11) === "INSERT INTO"; var handler = function (err, result) { // log slow queries if maxQueryExecution time is set var maxQueryExecutionTime = connection.options.maxQueryExecutionTime; var queryEndTime = +new Date(); var queryExecutionTime = queryEndTime - queryStartTime; if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime) connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this); if (err) { connection.logger.logQueryError(err, query, parameters, this); fail(new _error_QueryFailedError__WEBPACK_IMPORTED_MODULE_2__[/* QueryFailedError */ "a"](query, parameters, err)); } else { // when isInsertQuery == true, result is the id ok(result); } }; _this.driver.connection.logger.logQuery(query, parameters, _this); var queryStartTime = +new Date(); _this.connect().then(function (databaseConnection) { if (isInsertQuery) { databaseConnection.execSQL(query, parameters, handler); } else { databaseConnection.all(query, parameters, handler); } }); }); }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Parametrizes given object of values. Used to create column=value queries. */ NativescriptQueryRunner.prototype.parametrize = function (objectLiteral, startIndex) { if (startIndex === void 0) { startIndex = 0; } return Object.keys(objectLiteral).map(function (key, index) { return "\"" + key + "\"" + "=?"; }); }; return NativescriptQueryRunner; }(_sqlite_abstract_AbstractSqliteQueryRunner__WEBPACK_IMPORTED_MODULE_3__[/* AbstractSqliteQueryRunner */ "a"])); //# sourceMappingURL=NativescriptQueryRunner.js.map /***/ }), /* 287 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(Buffer) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return RawSqlResultsToEntityTransformer; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6); /* harmony import */ var _driver_DriverUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21); /** * Transforms raw sql results returned from the database into entity object. * Entity is constructed based on its entity metadata. */ var RawSqlResultsToEntityTransformer = /** @class */ (function () { // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- function RawSqlResultsToEntityTransformer(expressionMap, driver, rawRelationIdResults, rawRelationCountResults, queryRunner) { this.expressionMap = expressionMap; this.driver = driver; this.rawRelationIdResults = rawRelationIdResults; this.rawRelationCountResults = rawRelationCountResults; this.queryRunner = queryRunner; } // ------------------------------------------------------------------------- // Public Methods // ------------------------------------------------------------------------- /** * Since db returns a duplicated rows of the data where accuracies of the same object can be duplicated * we need to group our result and we must have some unique id (primary key in our case) */ RawSqlResultsToEntityTransformer.prototype.transform = function (rawResults, alias) { var _this = this; var group = this.group(rawResults, alias); var entities = []; group.forEach(function (results) { var entity = _this.transformRawResultsGroup(results, alias); if (entity !== undefined && !Object.values(entity).every(function (value) { return value === null; })) entities.push(entity); }); return entities; }; // ------------------------------------------------------------------------- // Protected Methods // ------------------------------------------------------------------------- /** * Groups given raw results by ids of given alias. */ RawSqlResultsToEntityTransformer.prototype.group = function (rawResults, alias) { var _this = this; var map = new Map(); var keys = []; if (alias.metadata.tableType === "view") { keys.push.apply(keys, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __spreadArray */ "f"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(alias.metadata.columns.map(function (column) { return _driver_DriverUtils__WEBPACK_IMPORTED_MODULE_2__[/* DriverUtils */ "a"].buildColumnAlias(_this.driver, alias.name, column.databaseName); })))); } else { keys.push.apply(keys, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __spreadArray */ "f"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[/* __read */ "e"])(alias.metadata.primaryColumns.map(function (column) { return _driver_DriverUtils__WEBPACK_IMPORTED_MODULE_2__[/* DriverUtils */ "a"].buildColumnAlias(_this.driver, alias.name, column.databaseName); })))); } rawResults.forEach(function (rawResult) { var id = keys.map(function (key) { var keyValue = rawResult[key]; if (Buffer.isBuffer(keyValue)) { return keyValue.toString("hex"); } if (typeof keyValue === "object") { return JSON.stringify(keyValue); } return keyValue; }).join("_"); // todo: check partial var items = map.get(id); if (!items) { map.set(id, [rawResult]); } else { items.push(rawResult); } }); return map; }; /** * Transforms set of data results into single entity. */ RawSqlResultsToEntityTransformer.prototype.transformRawResultsGroup = function (rawResults, alias) { var _this = this; // let hasColumns = false; // , hasEmbeddedColumns = false, hasParentColumns = false, hasParentEmbeddedColumns = false; var metadata = alias.metadata; if (metadata.discriminatorColumn) { var discriminatorValues_1 = rawResults.map(function (result) { return result[_driver_DriverUtils__WEBPACK_IMPORTED_MODULE_2__[/* DriverUtils */ "a"].buildColumnAlias(_this.driver, alias.name, alias.metadata.discriminatorColumn.databaseName)]; }); var discriminatorMetadata = metadata.childEntityMetadatas.find(function (childEntityMetadata) { return typeof discriminatorValues_1.find(function (value) { return value === childEntityMetadata.discriminatorValue; }) !== 'undefined'; }); if (discriminatorMetadata) metadata = discriminatorMetadata; } var entity = this.expressionMap.options.indexOf("create-pojo") !== -1 ? {} : metadata.create(this.queryRunner); // get value from columns selections and put them into newly created entity var hasColumns = this.transformColumns(rawResults, alias, entity, metadata); var hasRelations = this.transformJoins(rawResults, entity, alias, metadata); var hasRelationIds = this.transformRelationIds(rawResults, alias, entity, metadata); var hasRelationCounts = this.transformRelationCounts(rawResults, alias, entity); // if we have at least one selected column then return this entity // since entity must have at least primary columns to be really selected and transformed into entity if (hasColumns) return entity; // if we don't have any selected column we should not return entity, // except for the case when entity only contain a primary column as a relation to another entity // in this case its absolutely possible our entity to not have any columns except a single relation var hasOnlyVirtualPrimaryColumns = metadata.primaryColumns.filter(function (column) { return column.isVirtual === false; }).length === 0; // todo: create metadata.hasOnlyVirtualPrimaryColumns if (hasOnlyVirtualPrimaryColumns && (hasRelations || hasRelationIds || hasRelationCounts)) return entity; return undefined; }; // get value from columns selections and put them into object RawSqlResultsToEntityTransformer.prototype.transformColumns = function (rawResults, alias, entity, metadata) { var _this = this; var hasData = false; metadata.columns.forEach(function (column) { // if table inheritance is used make sure this column is not child's column if (metadata.childEntityMetadatas.length > 0 && metadata.childEntityMetadatas.map(function (metadata) { return metadata.target; }).indexOf(column.target) !== -1) return; var value = rawResults[0][_driver_DriverUtils__WEBPACK_IMPORTED_MODULE_2__[/* DriverUtils */ "a"].buildColumnAlias(_this.driver, alias.name, column.databaseName)]; if (value === undefined || column.isVirtual) return; // if user does not selected the whole entity or he used partial selection and does not select this particular column // then we don't add this column and its value into the entity if (!_this.expressionMap.selects.find(function (select) { return select.selection === alias.name || select.selection === alias.name + "." + column.propertyPath; })) return; column.setEntityValue(entity, _this.driver.prepareHydratedValue(value, column)); if (value !== null) // we don't mark it as has data because if we will have all nulls in our object - we don't need such object hasData = true; }); return hasData; }; /** * Transforms joined entities in the given raw results by a given alias and stores to the given (parent) entity */ RawSqlResultsToEntityTransformer.prototype.transformJoins = function (rawResults, entity, alias, metadata) { var _this = this; var hasData = false; // let discriminatorValue: string = ""; // if (metadata.discriminatorColumn) // discriminatorValue = rawResults[0][DriverUtils.buildColumnAlias(this.connection.driver, alias.name, alias.metadata.discriminatorColumn!.databaseName)]; this.expressionMap.joinAttributes.forEach(function (join) { // skip joins without metadata if (!join.metadata) return; // if simple left or inner join was performed without selection then we don't need to do anything if (!join.isSelected) return; // this check need to avoid setting properties than not belong to entity when single table inheritance used. (todo: check if we still need it) // const metadata = metadata.childEntityMetadatas.find(childEntityMetadata => discriminatorValue === childEntityMetadata.discriminatorValue); if (join.relation && !metadata.relations.find(function (relation) { return relation === join.relation; })) return; // some checks to make sure this join is for current alias if (join.mapToProperty) { if (join.mapToPropertyParentAlias !== alias.name) return; } else { if (!join.relation || join.parentAlias !== alias.name || join.relationPropertyPath !== join.relation.propertyPath) return; } // transform joined data into entities var result = _this.transform(rawResults, join.alias); result = !join.isMany ? result[0] : result; result = !join.isMany && result === undefined ? null : result; // this is needed to make relations to return null when its joined but nothing was found in the database if (result === undefined) // if nothing was joined then simply return return; // if join was mapped to some property then save result to that property if (join.mapToPropertyPropertyName) { entity[join.mapToPropertyPropertyName] = result; // todo: fix embeds } else { // otherwise set to relation join.relation.setEntityValue(entity, result); } hasData = true; }); return hasData; }; RawSqlResultsToEntityTransformer.prototype.transformRelationIds = function (rawSqlResults, alias, entity, metadata) { var _this = this; var hasData = false; this.rawRelationIdResults.forEach(function (rawRelationIdResult) { if (rawRelationIdResult.relationIdAttribute.parentAlias !== alias.name) return; var relation = rawRelationIdResult.relationIdAttribute.relation; var valueMap = _this.createValueMapFromJoinColumns(relation, rawRelationIdResult.relationIdAttribute.parentAlias, rawSqlResults); if (valueMap === undefined || valueMap === null) return; var idMaps = rawRelationIdResult.results.map(function (result) { var entityPrimaryIds = _this.extractEntityPrimaryIds(relation, result); if (_util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[/* OrmUtils */ "a"].compareIds(entityPrimaryIds, valueMap) === false) return; var columns; if (relation.isManyToOne || relation.isOneToOneOwner) { columns = relation.joinColumns.map(function (joinColumn) { return joinColumn; }); } else if (relation.isOneToMany || relation.isOneToOneNotOwner) { columns = relation.inverseEntityMetadata.primaryColumns.map(function (joinColumn) { return joinColumn; }); // columns = relation.inverseRelation!.joinColumns.map(joinColumn => joinColumn.referencedColumn!); //.inverseEntityMetadata.primaryColumns.map(joinColumn => joinColumn); } else { // ManyToMany if (relation.isOwning) { columns = relation.inverseJoinColumns.map(function (joinColumn) { return joinColumn; }); } else { columns = relation.inverseRelation.joinColumns.map(function (joinColumn) { return joinColumn; }); } } var idMap = columns.reduce(function (idMap, column) { var value = result[column.databaseName]; if (relation.isOneToMany || relation.isOneToOneNotOwner) { if (column.isVirtual && column.referencedColumn && column.referencedColumn.propertyName !== column.propertyName) // if column is a relation value = column.referencedColumn.createValueMap(value); return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[/* OrmUtils */ "a"].mergeDeep(idMap, column.createValueMap(value)); } else { if (column.referencedColumn.referencedColumn) // if column is a relation value = column.referencedColumn.referencedColumn.createValueMap(value); return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[/* OrmUtils */ "a"].mergeDeep(idMap, column.referencedColumn.createValueMap(value)); } }, {}); if (columns.length === 1 && rawRelationIdResult.relationIdAttribute.disableMixedMap === false) { if (relation.isOneToMany || relation.isOneToOneNotOwner) { return columns[0].getEntityValue(idMap); } else { return columns[0].referencedColumn.getEntityValue(idMap); } } return idMap; }).filter(function (result) { return result !== undefined; }); var properties = rawRelationIdResult.relationIdAttribute.mapToPropertyPropertyPath.split("."); var mapToProperty = function (properties, map, value) { var property = properties.shift(); if (property && properties.length === 0) { map[property] = value; return map; } else if (property && properties.length > 0) { mapToProperty(properties, map[property], value); } else { return map; } }; if (relation.isOneToOne || relation.isManyToOne) { if (idMaps[0] !== undefined) { mapToProperty(properties, entity, idMaps[0]); hasData = true; } } else { mapToProperty(properties, entity, idMaps); if (idMaps.length > 0) { hasData = true; } } }); return hasData; }; RawSqlResultsToEntityTransformer.prototype.transformRelationCounts = function (rawSqlResults, alias, entity) { var _this = this; var hasData = false; this.rawRelationCountResults .filter(function (rawRelationCountResult) { return rawRelationCountResult.relationCountAttribute.parentAlias === alias.name; }) .forEach(function (rawRelationCountResult) { var relation = rawRelationCountResult.relationCountAttribute.relation; var referenceColumnName; if (relation.isOneToMany) { referenceColumnName = relation.inverseRelation.joinColumns[0].referencedColumn.databaseName; // todo: fix joinColumns[0] } else { referenceColumnName = relation.isOwning ? relation.joinColumns[0].referencedColumn.databaseName : relation.inverseRelation.joinColumns[0].referencedColumn.databaseName; } var referenceColumnValue = rawSqlResults[0][_driver_DriverUtils__WEBPACK_IMPORTED_MODULE_2__[/* DriverUtils */ "a"].buildColumnAlias(_this.driver, alias.name, referenceColumnName)]; // we use zero index since its grouped data // todo: selection with alias for entity columns wont work if (referenceColumnValue !== undefined && referenceColumnValue !== null) { entity[rawRelationCountResult.relationCountAttribute.mapToPropertyPropertyName] = 0; rawRelationCountResult.results .filter(function (result) { return result["parentId"] === referenceColumnValue; }) .forEach(function (result) { entity[rawRelationCountResult.relationCountAttribute.mapToPropertyPropertyName] = parseInt(result["cnt"]); hasData = true; }); } }); return hasData; }; RawSqlResultsToEntityTransformer.prototype.createValueMapFromJoinColumns = function (relation, parentAlias, rawSqlResults) { var _this = this; var columns; if (relation.isManyToOne || relation.isOneToOneOwner) { columns = relation.entityMetadata.primaryColumns.map(function (joinColumn) { return joinColumn; }); } else if (relation.isOneToMany || relation.isOneToOneNotOwner) { columns = relation.inverseRelation.joinColumns.map(function (joinColumn) { return joinColumn; }); } else { if (relation.isOwning) { columns = relation.joinColumns.map(function (joinColumn) { return joinColumn; }); } else { columns = relation.inverseRelation.inverseJoinColumns.map(function (joinColumn) { return joinColumn; }); } } return columns.reduce(function (valueMap, column) { rawSqlResults.forEach(function (rawSqlResult) { if (relation.isManyToOne || relation.isOneToOneOwner) { valueMap[column.databaseName] = _this.driver.prepareHydratedValue(rawSqlResult[_driver_DriverUtils__WEBPACK_IMPORTED_MODULE_2__[/* DriverUtils */ "a"].buildColumnAlias(_this.driver, parentAlias, column.databaseName)], column); } else { valueMap[column.databaseName] = _this.driver.prepareHydratedValue(rawSqlResult[_driver_DriverUtils__WEBPACK_IMPORTED_MODULE_2__[/* DriverUtils */ "a"].buildColumnAlias(_this.driver, parentAlias, column.referencedColumn.databaseName)], column); } }); return valueMap; }, {}); }; RawSqlResultsToEntityTransformer.prototype.extractEntityPrimaryIds = function (relation, relationIdRawResult) { var columns; if (relation.isManyToOne || relation.isOneToOneOwner) { columns = relation.entityMetadata.primaryColumns.map(function (joinColumn) { return joinColumn; }); } else if (relation.isOneToMany || relation.isOneToOneNotOwner) { columns = relation.inverseRelation.joinColumns.map(function (joinColumn) { return joinColumn; }); } else { if (relation.isOwning) { columns = relation.joinColumns.map(function (joinColumn) { return joinColumn; }); } else { columns = relation.inverseRelation.inverseJoinColumns.map(function (joinColumn) { return joinColumn; }); } } return columns.reduce(function (data, column) { data[column.databaseName] = relationIdRawResult[column.databaseName]; return data; }, {}); }; return RawSqlResultsToEntityTransformer; }()); //# sourceMappingURL=RawSqlResultsToEntityTransformer.js.map /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(98).Buffer)) /***/ }), /* 288 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function get() { return m[k]; } }); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); var __exportStar = this && this.__exportStar || function (m, exports) { for (var p in m) { if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); } }; Object.defineProperty(exports, "__esModule", { value: true }); __exportStar(__webpack_require__(211), exports); __exportStar(__webpack_require__(212), exports); __exportStar(__webpack_require__(271), exports); __exportStar(__webpack_require__(279), exports); __exportStar(__webpack_require__(203), exports); __exportStar(__webpack_require__(112), exports); __exportStar(__webpack_require__(540), exports); __exportStar(__webpack_require__(541), exports); /***/ }), /* 289 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(290); __webpack_require__(555); module.exports = __webpack_require__(554); /***/ }), /* 290 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; __webpack_require__(291); var _global = _interopRequireDefault(__webpack_require__(463)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } if (_global["default"]._babelPolyfill && typeof console !== "undefined" && console.warn) { console.warn("@babel/polyfill is loaded more than once on this page. This is probably not desirable/intended " + "and may have consequences if different versions of the polyfills are applied sequentially. " + "If you do need to load the polyfill more than once, use @babel/polyfill/noConflict " + "instead to bypass the warning."); } _global["default"]._babelPolyfill = true; /***/ }), /* 291 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; __webpack_require__(292); __webpack_require__(435); __webpack_require__(437); __webpack_require__(440); __webpack_require__(442); __webpack_require__(444); __webpack_require__(446); __webpack_require__(448); __webpack_require__(450); __webpack_require__(452); __webpack_require__(454); __webpack_require__(456); __webpack_require__(458); __webpack_require__(462); /***/ }), /* 292 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(293); __webpack_require__(296); __webpack_require__(297); __webpack_require__(298); __webpack_require__(299); __webpack_require__(300); __webpack_require__(301); __webpack_require__(302); __webpack_require__(303); __webpack_require__(304); __webpack_require__(305); __webpack_require__(306); __webpack_require__(307); __webpack_require__(308); __webpack_require__(309); __webpack_require__(310); __webpack_require__(311); __webpack_require__(312); __webpack_require__(313); __webpack_require__(314); __webpack_require__(315); __webpack_require__(316); __webpack_require__(317); __webpack_require__(318); __webpack_require__(319); __webpack_require__(320); __webpack_require__(321); __webpack_require__(322); __webpack_require__(323); __webpack_require__(324); __webpack_require__(325); __webpack_require__(326); __webpack_require__(327); __webpack_require__(328); __webpack_require__(329); __webpack_require__(330); __webpack_require__(331); __webpack_require__(332); __webpack_require__(333); __webpack_require__(334); __webpack_require__(335); __webpack_require__(336); __webpack_require__(337); __webpack_require__(339); __webpack_require__(340); __webpack_require__(341); __webpack_require__(342); __webpack_require__(343); __webpack_require__(344); __webpack_require__(345); __webpack_require__(346); __webpack_require__(347); __webpack_require__(348); __webpack_require__(349); __webpack_require__(350); __webpack_require__(351); __webpack_require__(352); __webpack_require__(353); __webpack_require__(354); __webpack_require__(355); __webpack_require__(356); __webpack_require__(357); __webpack_require__(358); __webpack_require__(359); __webpack_require__(360); __webpack_require__(361); __webpack_require__(362); __webpack_require__(363); __webpack_require__(364); __webpack_require__(365); __webpack_require__(366); __webpack_require__(367); __webpack_require__(368); __webpack_require__(369); __webpack_require__(370); __webpack_require__(371); __webpack_require__(372); __webpack_require__(374); __webpack_require__(375); __webpack_require__(377); __webpack_require__(378); __webpack_require__(379); __webpack_require__(380); __webpack_require__(381); __webpack_require__(382); __webpack_require__(383); __webpack_require__(385); __webpack_require__(386); __webpack_require__(387); __webpack_require__(388); __webpack_require__(389); __webpack_require__(390); __webpack_require__(391); __webpack_require__(392); __webpack_require__(393); __webpack_require__(394); __webpack_require__(395); __webpack_require__(396); __webpack_require__(397); __webpack_require__(184); __webpack_require__(398); __webpack_require__(233); __webpack_require__(399); __webpack_require__(234); __webpack_require__(400); __webpack_require__(401); __webpack_require__(402); __webpack_require__(403); __webpack_require__(235); __webpack_require__(406); __webpack_require__(407); __webpack_require__(408); __webpack_require__(409); __webpack_require__(410); __webpack_require__(411); __webpack_require__(412); __webpack_require__(413); __webpack_require__(414); __webpack_require__(415); __webpack_require__(416); __webpack_require__(417); __webpack_require__(418); __webpack_require__(419); __webpack_require__(420); __webpack_require__(421); __webpack_require__(422); __webpack_require__(423); __webpack_require__(424); __webpack_require__(425); __webpack_require__(426); __webpack_require__(427); __webpack_require__(428); __webpack_require__(429); __webpack_require__(430); __webpack_require__(431); __webpack_require__(432); __webpack_require__(433); __webpack_require__(434); module.exports = __webpack_require__(26); /***/ }), /* 293 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // ECMAScript 6 symbols shim var global = __webpack_require__(11); var has = __webpack_require__(51); var DESCRIPTORS = __webpack_require__(28); var $export = __webpack_require__(3); var redefine = __webpack_require__(45); var META = __webpack_require__(83).KEY; var $fails = __webpack_require__(12); var shared = __webpack_require__(134); var setToStringTag = __webpack_require__(103); var uid = __webpack_require__(88); var wks = __webpack_require__(19); var wksExt = __webpack_require__(165); var wksDefine = __webpack_require__(214); var enumKeys = __webpack_require__(295); var isArray = __webpack_require__(137); var anObject = __webpack_require__(13); var isObject = __webpack_require__(14); var toObject = __webpack_require__(36); var toIObject = __webpack_require__(53); var toPrimitive = __webpack_require__(82); var createDesc = __webpack_require__(87); var _create = __webpack_require__(92); var gOPNExt = __webpack_require__(217); var $GOPD = __webpack_require__(66); var $GOPS = __webpack_require__(136); var $DP = __webpack_require__(29); var $keys = __webpack_require__(90); var gOPD = $GOPD.f; var dP = $DP.f; var gOPN = gOPNExt.f; var $Symbol = global.Symbol; var $JSON = global.JSON; var _stringify = $JSON && $JSON.stringify; var PROTOTYPE = 'prototype'; var HIDDEN = wks('_hidden'); var TO_PRIMITIVE = wks('toPrimitive'); var isEnum = {}.propertyIsEnumerable; var SymbolRegistry = shared('symbol-registry'); var AllSymbols = shared('symbols'); var OPSymbols = shared('op-symbols'); var ObjectProto = Object[PROTOTYPE]; var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f; var QObject = global.QObject; // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 var setSymbolDesc = DESCRIPTORS && $fails(function () { return _create(dP({}, 'a', { get: function () { return dP(this, 'a', { value: 7 }).a; } })).a != 7; }) ? function (it, key, D) { var protoDesc = gOPD(ObjectProto, key); if (protoDesc) delete ObjectProto[key]; dP(it, key, D); if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); } : dP; var wrap = function (tag) { var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); sym._k = tag; return sym; }; var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { return typeof it == 'symbol'; } : function (it) { return it instanceof $Symbol; }; var $defineProperty = function defineProperty(it, key, D) { if (it === ObjectProto) $defineProperty(OPSymbols, key, D); anObject(it); key = toPrimitive(key, true); anObject(D); if (has(AllSymbols, key)) { if (!D.enumerable) { if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); it[HIDDEN][key] = true; } else { if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; D = _create(D, { enumerable: createDesc(0, false) }); } return setSymbolDesc(it, key, D); } return dP(it, key, D); }; var $defineProperties = function defineProperties(it, P) { anObject(it); var keys = enumKeys(P = toIObject(P)); var i = 0; var l = keys.length; var key; while (l > i) $defineProperty(it, key = keys[i++], P[key]); return it; }; var $create = function create(it, P) { return P === undefined ? _create(it) : $defineProperties(_create(it), P); }; var $propertyIsEnumerable = function propertyIsEnumerable(key) { var E = isEnum.call(this, key = toPrimitive(key, true)); if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; }; var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { it = toIObject(it); key = toPrimitive(key, true); if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; var D = gOPD(it, key); if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; return D; }; var $getOwnPropertyNames = function getOwnPropertyNames(it) { var names = gOPN(toIObject(it)); var result = []; var i = 0; var key; while (names.length > i) { if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); } return result; }; var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { var IS_OP = it === ObjectProto; var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); var result = []; var i = 0; var key; while (names.length > i) { if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); } return result; }; // 19.4.1.1 Symbol([description]) if (!USE_NATIVE) { $Symbol = function Symbol() { if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); var tag = uid(arguments.length > 0 ? arguments[0] : undefined); var $set = function (value) { if (this === ObjectProto) $set.call(OPSymbols, value); if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; setSymbolDesc(this, tag, createDesc(1, value)); }; if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); return wrap(tag); }; redefine($Symbol[PROTOTYPE], 'toString', function toString() { return this._k; }); $GOPD.f = $getOwnPropertyDescriptor; $DP.f = $defineProperty; __webpack_require__(93).f = gOPNExt.f = $getOwnPropertyNames; __webpack_require__(123).f = $propertyIsEnumerable; $GOPS.f = $getOwnPropertySymbols; if (DESCRIPTORS && !__webpack_require__(89)) { redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); } wksExt.f = function (name) { return wrap(wks(name)); }; } $export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); for (var es6Symbols = ( // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' ).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); $export($export.S + $export.F * !USE_NATIVE, 'Symbol', { // 19.4.2.1 Symbol.for(key) 'for': function (key) { return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key); }, // 19.4.2.5 Symbol.keyFor(sym) keyFor: function keyFor(sym) { if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; }, useSetter: function () { setter = true; }, useSimple: function () { setter = false; } }); $export($export.S + $export.F * !USE_NATIVE, 'Object', { // 19.1.2.2 Object.create(O [, Properties]) create: $create, // 19.1.2.4 Object.defineProperty(O, P, Attributes) defineProperty: $defineProperty, // 19.1.2.3 Object.defineProperties(O, Properties) defineProperties: $defineProperties, // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) getOwnPropertyDescriptor: $getOwnPropertyDescriptor, // 19.1.2.7 Object.getOwnPropertyNames(O) getOwnPropertyNames: $getOwnPropertyNames, // 19.1.2.8 Object.getOwnPropertySymbols(O) getOwnPropertySymbols: $getOwnPropertySymbols }); // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives // https://bugs.chromium.org/p/v8/issues/detail?id=3443 var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); }); $export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', { getOwnPropertySymbols: function getOwnPropertySymbols(it) { return $GOPS.f(toObject(it)); } }); // 24.3.2 JSON.stringify(value [, replacer [, space]]) $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { var S = $Symbol(); // MS Edge converts symbol values to JSON as {} // WebKit converts symbol values to JSON as null // V8 throws on boxed symbols return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; })), 'JSON', { stringify: function stringify(it) { var args = [it]; var i = 1; var replacer, $replacer; while (arguments.length > i) args.push(arguments[i++]); $replacer = replacer = args[1]; if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined if (!isArray(replacer)) replacer = function (key, value) { if (typeof $replacer == 'function') value = $replacer.call(this, key, value); if (!isSymbol(value)) return value; }; args[1] = replacer; return _stringify.apply($JSON, args); } }); // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(52)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); // 19.4.3.5 Symbol.prototype[@@toStringTag] setToStringTag($Symbol, 'Symbol'); // 20.2.1.9 Math[@@toStringTag] setToStringTag(Math, 'Math', true); // 24.3.3 JSON[@@toStringTag] setToStringTag(global.JSON, 'JSON', true); /***/ }), /* 294 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(134)('native-function-to-string', Function.toString); /***/ }), /* 295 */ /***/ (function(module, exports, __webpack_require__) { // all enumerable object keys, includes symbols var getKeys = __webpack_require__(90); var gOPS = __webpack_require__(136); var pIE = __webpack_require__(123); module.exports = function (it) { var result = getKeys(it); var getSymbols = gOPS.f; if (getSymbols) { var symbols = getSymbols(it); var isEnum = pIE.f; var i = 0; var key; while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); } return result; }; /***/ }), /* 296 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(3); // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) $export($export.S, 'Object', { create: __webpack_require__(92) }); /***/ }), /* 297 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(3); // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) $export($export.S + $export.F * !__webpack_require__(28), 'Object', { defineProperty: __webpack_require__(29).f }); /***/ }), /* 298 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(3); // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties) $export($export.S + $export.F * !__webpack_require__(28), 'Object', { defineProperties: __webpack_require__(216) }); /***/ }), /* 299 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) var toIObject = __webpack_require__(53); var $getOwnPropertyDescriptor = __webpack_require__(66).f; __webpack_require__(67)('getOwnPropertyDescriptor', function () { return function getOwnPropertyDescriptor(it, key) { return $getOwnPropertyDescriptor(toIObject(it), key); }; }); /***/ }), /* 300 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.9 Object.getPrototypeOf(O) var toObject = __webpack_require__(36); var $getPrototypeOf = __webpack_require__(94); __webpack_require__(67)('getPrototypeOf', function () { return function getPrototypeOf(it) { return $getPrototypeOf(toObject(it)); }; }); /***/ }), /* 301 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.14 Object.keys(O) var toObject = __webpack_require__(36); var $keys = __webpack_require__(90); __webpack_require__(67)('keys', function () { return function keys(it) { return $keys(toObject(it)); }; }); /***/ }), /* 302 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.7 Object.getOwnPropertyNames(O) __webpack_require__(67)('getOwnPropertyNames', function () { return __webpack_require__(217).f; }); /***/ }), /* 303 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.5 Object.freeze(O) var isObject = __webpack_require__(14); var meta = __webpack_require__(83).onFreeze; __webpack_require__(67)('freeze', function ($freeze) { return function freeze(it) { return $freeze && isObject(it) ? $freeze(meta(it)) : it; }; }); /***/ }), /* 304 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.17 Object.seal(O) var isObject = __webpack_require__(14); var meta = __webpack_require__(83).onFreeze; __webpack_require__(67)('seal', function ($seal) { return function seal(it) { return $seal && isObject(it) ? $seal(meta(it)) : it; }; }); /***/ }), /* 305 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.15 Object.preventExtensions(O) var isObject = __webpack_require__(14); var meta = __webpack_require__(83).onFreeze; __webpack_require__(67)('preventExtensions', function ($preventExtensions) { return function preventExtensions(it) { return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it; }; }); /***/ }), /* 306 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.12 Object.isFrozen(O) var isObject = __webpack_require__(14); __webpack_require__(67)('isFrozen', function ($isFrozen) { return function isFrozen(it) { return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true; }; }); /***/ }), /* 307 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.13 Object.isSealed(O) var isObject = __webpack_require__(14); __webpack_require__(67)('isSealed', function ($isSealed) { return function isSealed(it) { return isObject(it) ? $isSealed ? $isSealed(it) : false : true; }; }); /***/ }), /* 308 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.11 Object.isExtensible(O) var isObject = __webpack_require__(14); __webpack_require__(67)('isExtensible', function ($isExtensible) { return function isExtensible(it) { return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false; }; }); /***/ }), /* 309 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.3.1 Object.assign(target, source) var $export = __webpack_require__(3); $export($export.S + $export.F, 'Object', { assign: __webpack_require__(218) }); /***/ }), /* 310 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.3.10 Object.is(value1, value2) var $export = __webpack_require__(3); $export($export.S, 'Object', { is: __webpack_require__(219) }); /***/ }), /* 311 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.3.19 Object.setPrototypeOf(O, proto) var $export = __webpack_require__(3); $export($export.S, 'Object', { setPrototypeOf: __webpack_require__(169).set }); /***/ }), /* 312 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 19.1.3.6 Object.prototype.toString() var classof = __webpack_require__(124); var test = {}; test[__webpack_require__(19)('toStringTag')] = 'z'; if (test + '' != '[object z]') { __webpack_require__(45)(Object.prototype, 'toString', function toString() { return '[object ' + classof(this) + ']'; }, true); } /***/ }), /* 313 */ /***/ (function(module, exports, __webpack_require__) { // 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...) var $export = __webpack_require__(3); $export($export.P, 'Function', { bind: __webpack_require__(220) }); /***/ }), /* 314 */ /***/ (function(module, exports, __webpack_require__) { var dP = __webpack_require__(29).f; var FProto = Function.prototype; var nameRE = /^\s*function ([^ (]*)/; var NAME = 'name'; // 19.2.4.2 name NAME in FProto || __webpack_require__(28) && dP(FProto, NAME, { configurable: true, get: function () { try { return ('' + this).match(nameRE)[1]; } catch (e) { return ''; } } }); /***/ }), /* 315 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var isObject = __webpack_require__(14); var getPrototypeOf = __webpack_require__(94); var HAS_INSTANCE = __webpack_require__(19)('hasInstance'); var FunctionProto = Function.prototype; // 19.2.3.6 Function.prototype[@@hasInstance](V) if (!(HAS_INSTANCE in FunctionProto)) __webpack_require__(29).f(FunctionProto, HAS_INSTANCE, { value: function (O) { if (typeof this != 'function' || !isObject(O)) return false; if (!isObject(this.prototype)) return O instanceof this; // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this: while (O = getPrototypeOf(O)) if (this.prototype === O) return true; return false; } }); /***/ }), /* 316 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(3); var $parseInt = __webpack_require__(222); // 18.2.5 parseInt(string, radix) $export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt }); /***/ }), /* 317 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(3); var $parseFloat = __webpack_require__(223); // 18.2.4 parseFloat(string) $export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat }); /***/ }), /* 318 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(11); var has = __webpack_require__(51); var cof = __webpack_require__(75); var inheritIfRequired = __webpack_require__(171); var toPrimitive = __webpack_require__(82); var fails = __webpack_require__(12); var gOPN = __webpack_require__(93).f; var gOPD = __webpack_require__(66).f; var dP = __webpack_require__(29).f; var $trim = __webpack_require__(104).trim; var NUMBER = 'Number'; var $Number = global[NUMBER]; var Base = $Number; var proto = $Number.prototype; // Opera ~12 has broken Object#toString var BROKEN_COF = cof(__webpack_require__(92)(proto)) == NUMBER; var TRIM = 'trim' in String.prototype; // 7.1.3 ToNumber(argument) var toNumber = function (argument) { var it = toPrimitive(argument, false); if (typeof it == 'string' && it.length > 2) { it = TRIM ? it.trim() : $trim(it, 3); var first = it.charCodeAt(0); var third, radix, maxCode; if (first === 43 || first === 45) { third = it.charCodeAt(2); if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix } else if (first === 48) { switch (it.charCodeAt(1)) { case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i default: return +it; } for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) { code = digits.charCodeAt(i); // parseInt parses a string to a first unavailable symbol // but ToNumber should return NaN if a string contains unavailable symbols if (code < 48 || code > maxCode) return NaN; } return parseInt(digits, radix); } } return +it; }; if (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) { $Number = function Number(value) { var it = arguments.length < 1 ? 0 : value; var that = this; return that instanceof $Number // check on 1..constructor(foo) case && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER) ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it); }; for (var keys = __webpack_require__(28) ? gOPN(Base) : ( // ES3: 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + // ES6 (in case, if modules with ES6 Number statics required before): 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' + 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger' ).split(','), j = 0, key; keys.length > j; j++) { if (has(Base, key = keys[j]) && !has($Number, key)) { dP($Number, key, gOPD(Base, key)); } } $Number.prototype = proto; proto.constructor = $Number; __webpack_require__(45)(global, NUMBER, $Number); } /***/ }), /* 319 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(3); var toInteger = __webpack_require__(65); var aNumberValue = __webpack_require__(224); var repeat = __webpack_require__(172); var $toFixed = 1.0.toFixed; var floor = Math.floor; var data = [0, 0, 0, 0, 0, 0]; var ERROR = 'Number.toFixed: incorrect invocation!'; var ZERO = '0'; var multiply = function (n, c) { var i = -1; var c2 = c; while (++i < 6) { c2 += n * data[i]; data[i] = c2 % 1e7; c2 = floor(c2 / 1e7); } }; var divide = function (n) { var i = 6; var c = 0; while (--i >= 0) { c += data[i]; data[i] = floor(c / n); c = (c % n) * 1e7; } }; var numToString = function () { var i = 6; var s = ''; while (--i >= 0) { if (s !== '' || i === 0 || data[i] !== 0) { var t = String(data[i]); s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t; } } return s; }; var pow = function (x, n, acc) { return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc); }; var log = function (x) { var n = 0; var x2 = x; while (x2 >= 4096) { n += 12; x2 /= 4096; } while (x2 >= 2) { n += 1; x2 /= 2; } return n; }; $export($export.P + $export.F * (!!$toFixed && ( 0.00008.toFixed(3) !== '0.000' || 0.9.toFixed(0) !== '1' || 1.255.toFixed(2) !== '1.25' || 1000000000000000128.0.toFixed(0) !== '1000000000000000128' ) || !__webpack_require__(12)(function () { // V8 ~ Android 4.3- $toFixed.call({}); })), 'Number', { toFixed: function toFixed(fractionDigits) { var x = aNumberValue(this, ERROR); var f = toInteger(fractionDigits); var s = ''; var m = ZERO; var e, z, j, k; if (f < 0 || f > 20) throw RangeError(ERROR); // eslint-disable-next-line no-self-compare if (x != x) return 'NaN'; if (x <= -1e21 || x >= 1e21) return String(x); if (x < 0) { s = '-'; x = -x; } if (x > 1e-21) { e = log(x * pow(2, 69, 1)) - 69; z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1); z *= 0x10000000000000; e = 52 - e; if (e > 0) { multiply(0, z); j = f; while (j >= 7) { multiply(1e7, 0); j -= 7; } multiply(pow(10, j, 1), 0); j = e - 1; while (j >= 23) { divide(1 << 23); j -= 23; } divide(1 << j); multiply(1, 1); divide(2); m = numToString(); } else { multiply(0, z); multiply(1 << -e, 0); m = numToString() + repeat.call(ZERO, f); } } if (f > 0) { k = m.length; m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f)); } else { m = s + m; } return m; } }); /***/ }), /* 320 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(3); var $fails = __webpack_require__(12); var aNumberValue = __webpack_require__(224); var $toPrecision = 1.0.toPrecision; $export($export.P + $export.F * ($fails(function () { // IE7- return $toPrecision.call(1, undefined) !== '1'; }) || !$fails(function () { // V8 ~ Android 4.3- $toPrecision.call({}); })), 'Number', { toPrecision: function toPrecision(precision) { var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!'); return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision); } }); /***/ }), /* 321 */ /***/ (function(module, exports, __webpack_require__) { // 20.1.2.1 Number.EPSILON var $export = __webpack_require__(3); $export($export.S, 'Number', { EPSILON: Math.pow(2, -52) }); /***/ }), /* 322 */ /***/ (function(module, exports, __webpack_require__) { // 20.1.2.2 Number.isFinite(number) var $export = __webpack_require__(3); var _isFinite = __webpack_require__(11).isFinite; $export($export.S, 'Number', { isFinite: function isFinite(it) { return typeof it == 'number' && _isFinite(it); } }); /***/ }), /* 323 */ /***/ (function(module, exports, __webpack_require__) { // 20.1.2.3 Number.isInteger(number) var $export = __webpack_require__(3); $export($export.S, 'Number', { isInteger: __webpack_require__(225) }); /***/ }), /* 324 */ /***/ (function(module, exports, __webpack_require__) { // 20.1.2.4 Number.isNaN(number) var $export = __webpack_require__(3); $export($export.S, 'Number', { isNaN: function isNaN(number) { // eslint-disable-next-line no-self-compare return number != number; } }); /***/ }), /* 325 */ /***/ (function(module, exports, __webpack_require__) { // 20.1.2.5 Number.isSafeInteger(number) var $export = __webpack_require__(3); var isInteger = __webpack_require__(225); var abs = Math.abs; $export($export.S, 'Number', { isSafeInteger: function isSafeInteger(number) { return isInteger(number) && abs(number) <= 0x1fffffffffffff; } }); /***/ }), /* 326 */ /***/ (function(module, exports, __webpack_require__) { // 20.1.2.6 Number.MAX_SAFE_INTEGER var $export = __webpack_require__(3); $export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff }); /***/ }), /* 327 */ /***/ (function(module, exports, __webpack_require__) { // 20.1.2.10 Number.MIN_SAFE_INTEGER var $export = __webpack_require__(3); $export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff }); /***/ }), /* 328 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(3); var $parseFloat = __webpack_require__(223); // 20.1.2.12 Number.parseFloat(string) $export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat }); /***/ }), /* 329 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(3); var $parseInt = __webpack_require__(222); // 20.1.2.13 Number.parseInt(string, radix) $export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt }); /***/ }), /* 330 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.3 Math.acosh(x) var $export = __webpack_require__(3); var log1p = __webpack_require__(226); var sqrt = Math.sqrt; var $acosh = Math.acosh; $export($export.S + $export.F * !($acosh // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 && Math.floor($acosh(Number.MAX_VALUE)) == 710 // Tor Browser bug: Math.acosh(Infinity) -> NaN && $acosh(Infinity) == Infinity ), 'Math', { acosh: function acosh(x) { return (x = +x) < 1 ? NaN : x > 94906265.62425156 ? Math.log(x) + Math.LN2 : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1)); } }); /***/ }), /* 331 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.5 Math.asinh(x) var $export = __webpack_require__(3); var $asinh = Math.asinh; function asinh(x) { return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1)); } // Tor Browser bug: Math.asinh(0) -> -0 $export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh }); /***/ }), /* 332 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.7 Math.atanh(x) var $export = __webpack_require__(3); var $atanh = Math.atanh; // Tor Browser bug: Math.atanh(-0) -> 0 $export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', { atanh: function atanh(x) { return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2; } }); /***/ }), /* 333 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.9 Math.cbrt(x) var $export = __webpack_require__(3); var sign = __webpack_require__(173); $export($export.S, 'Math', { cbrt: function cbrt(x) { return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3); } }); /***/ }), /* 334 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.11 Math.clz32(x) var $export = __webpack_require__(3); $export($export.S, 'Math', { clz32: function clz32(x) { return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32; } }); /***/ }), /* 335 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.12 Math.cosh(x) var $export = __webpack_require__(3); var exp = Math.exp; $export($export.S, 'Math', { cosh: function cosh(x) { return (exp(x = +x) + exp(-x)) / 2; } }); /***/ }), /* 336 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.14 Math.expm1(x) var $export = __webpack_require__(3); var $expm1 = __webpack_require__(174); $export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 }); /***/ }), /* 337 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.16 Math.fround(x) var $export = __webpack_require__(3); $export($export.S, 'Math', { fround: __webpack_require__(338) }); /***/ }), /* 338 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.16 Math.fround(x) var sign = __webpack_require__(173); var pow = Math.pow; var EPSILON = pow(2, -52); var EPSILON32 = pow(2, -23); var MAX32 = pow(2, 127) * (2 - EPSILON32); var MIN32 = pow(2, -126); var roundTiesToEven = function (n) { return n + 1 / EPSILON - 1 / EPSILON; }; module.exports = Math.fround || function fround(x) { var $abs = Math.abs(x); var $sign = sign(x); var a, result; if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32; a = (1 + EPSILON32 / EPSILON) * $abs; result = a - (a - $abs); // eslint-disable-next-line no-self-compare if (result > MAX32 || result != result) return $sign * Infinity; return $sign * result; }; /***/ }), /* 339 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.17 Math.hypot([value1[, value2[, … ]]]) var $export = __webpack_require__(3); var abs = Math.abs; $export($export.S, 'Math', { hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars var sum = 0; var i = 0; var aLen = arguments.length; var larg = 0; var arg, div; while (i < aLen) { arg = abs(arguments[i++]); if (larg < arg) { div = larg / arg; sum = sum * div * div + 1; larg = arg; } else if (arg > 0) { div = arg / larg; sum += div * div; } else sum += arg; } return larg === Infinity ? Infinity : larg * Math.sqrt(sum); } }); /***/ }), /* 340 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.18 Math.imul(x, y) var $export = __webpack_require__(3); var $imul = Math.imul; // some WebKit versions fails with big numbers, some has wrong arity $export($export.S + $export.F * __webpack_require__(12)(function () { return $imul(0xffffffff, 5) != -5 || $imul.length != 2; }), 'Math', { imul: function imul(x, y) { var UINT16 = 0xffff; var xn = +x; var yn = +y; var xl = UINT16 & xn; var yl = UINT16 & yn; return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); } }); /***/ }), /* 341 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.21 Math.log10(x) var $export = __webpack_require__(3); $export($export.S, 'Math', { log10: function log10(x) { return Math.log(x) * Math.LOG10E; } }); /***/ }), /* 342 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.20 Math.log1p(x) var $export = __webpack_require__(3); $export($export.S, 'Math', { log1p: __webpack_require__(226) }); /***/ }), /* 343 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.22 Math.log2(x) var $export = __webpack_require__(3); $export($export.S, 'Math', { log2: function log2(x) { return Math.log(x) / Math.LN2; } }); /***/ }), /* 344 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.28 Math.sign(x) var $export = __webpack_require__(3); $export($export.S, 'Math', { sign: __webpack_require__(173) }); /***/ }), /* 345 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.30 Math.sinh(x) var $export = __webpack_require__(3); var expm1 = __webpack_require__(174); var exp = Math.exp; // V8 near Chromium 38 has a problem with very small numbers $export($export.S + $export.F * __webpack_require__(12)(function () { return !Math.sinh(-2e-17) != -2e-17; }), 'Math', { sinh: function sinh(x) { return Math.abs(x = +x) < 1 ? (expm1(x) - expm1(-x)) / 2 : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2); } }); /***/ }), /* 346 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.33 Math.tanh(x) var $export = __webpack_require__(3); var expm1 = __webpack_require__(174); var exp = Math.exp; $export($export.S, 'Math', { tanh: function tanh(x) { var a = expm1(x = +x); var b = expm1(-x); return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x)); } }); /***/ }), /* 347 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.34 Math.trunc(x) var $export = __webpack_require__(3); $export($export.S, 'Math', { trunc: function trunc(it) { return (it > 0 ? Math.floor : Math.ceil)(it); } }); /***/ }), /* 348 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(3); var toAbsoluteIndex = __webpack_require__(91); var fromCharCode = String.fromCharCode; var $fromCodePoint = String.fromCodePoint; // length should be 1, old FF problem $export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { // 21.1.2.2 String.fromCodePoint(...codePoints) fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars var res = []; var aLen = arguments.length; var i = 0; var code; while (aLen > i) { code = +arguments[i++]; if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point'); res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00) ); } return res.join(''); } }); /***/ }), /* 349 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(3); var toIObject = __webpack_require__(53); var toLength = __webpack_require__(23); $export($export.S, 'String', { // 21.1.2.4 String.raw(callSite, ...substitutions) raw: function raw(callSite) { var tpl = toIObject(callSite.raw); var len = toLength(tpl.length); var aLen = arguments.length; var res = []; var i = 0; while (len > i) { res.push(String(tpl[i++])); if (i < aLen) res.push(String(arguments[i])); } return res.join(''); } }); /***/ }), /* 350 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 21.1.3.25 String.prototype.trim() __webpack_require__(104)('trim', function ($trim) { return function trim() { return $trim(this, 3); }; }); /***/ }), /* 351 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $at = __webpack_require__(175)(true); // 21.1.3.27 String.prototype[@@iterator]() __webpack_require__(176)(String, 'String', function (iterated) { this._t = String(iterated); // target this._i = 0; // next index // 21.1.5.2.1 %StringIteratorPrototype%.next() }, function () { var O = this._t; var index = this._i; var point; if (index >= O.length) return { value: undefined, done: true }; point = $at(O, index); this._i += point.length; return { value: point, done: false }; }); /***/ }), /* 352 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(3); var $at = __webpack_require__(175)(false); $export($export.P, 'String', { // 21.1.3.3 String.prototype.codePointAt(pos) codePointAt: function codePointAt(pos) { return $at(this, pos); } }); /***/ }), /* 353 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 21.1.3.6 String.prototype.endsWith(searchString [, endPosition]) var $export = __webpack_require__(3); var toLength = __webpack_require__(23); var context = __webpack_require__(177); var ENDS_WITH = 'endsWith'; var $endsWith = ''[ENDS_WITH]; $export($export.P + $export.F * __webpack_require__(179)(ENDS_WITH), 'String', { endsWith: function endsWith(searchString /* , endPosition = @length */) { var that = context(this, searchString, ENDS_WITH); var endPosition = arguments.length > 1 ? arguments[1] : undefined; var len = toLength(that.length); var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len); var search = String(searchString); return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search; } }); /***/ }), /* 354 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 21.1.3.7 String.prototype.includes(searchString, position = 0) var $export = __webpack_require__(3); var context = __webpack_require__(177); var INCLUDES = 'includes'; $export($export.P + $export.F * __webpack_require__(179)(INCLUDES), 'String', { includes: function includes(searchString /* , position = 0 */) { return !!~context(this, searchString, INCLUDES) .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); } }); /***/ }), /* 355 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(3); $export($export.P, 'String', { // 21.1.3.13 String.prototype.repeat(count) repeat: __webpack_require__(172) }); /***/ }), /* 356 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 21.1.3.18 String.prototype.startsWith(searchString [, position ]) var $export = __webpack_require__(3); var toLength = __webpack_require__(23); var context = __webpack_require__(177); var STARTS_WITH = 'startsWith'; var $startsWith = ''[STARTS_WITH]; $export($export.P + $export.F * __webpack_require__(179)(STARTS_WITH), 'String', { startsWith: function startsWith(searchString /* , position = 0 */) { var that = context(this, searchString, STARTS_WITH); var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length)); var search = String(searchString); return $startsWith ? $startsWith.call(that, search, index) : that.slice(index, index + search.length) === search; } }); /***/ }), /* 357 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.2 String.prototype.anchor(name) __webpack_require__(46)('anchor', function (createHTML) { return function anchor(name) { return createHTML(this, 'a', 'name', name); }; }); /***/ }), /* 358 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.3 String.prototype.big() __webpack_require__(46)('big', function (createHTML) { return function big() { return createHTML(this, 'big', '', ''); }; }); /***/ }), /* 359 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.4 String.prototype.blink() __webpack_require__(46)('blink', function (createHTML) { return function blink() { return createHTML(this, 'blink', '', ''); }; }); /***/ }), /* 360 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.5 String.prototype.bold() __webpack_require__(46)('bold', function (createHTML) { return function bold() { return createHTML(this, 'b', '', ''); }; }); /***/ }), /* 361 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.6 String.prototype.fixed() __webpack_require__(46)('fixed', function (createHTML) { return function fixed() { return createHTML(this, 'tt', '', ''); }; }); /***/ }), /* 362 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.7 String.prototype.fontcolor(color) __webpack_require__(46)('fontcolor', function (createHTML) { return function fontcolor(color) { return createHTML(this, 'font', 'color', color); }; }); /***/ }), /* 363 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.8 String.prototype.fontsize(size) __webpack_require__(46)('fontsize', function (createHTML) { return function fontsize(size) { return createHTML(this, 'font', 'size', size); }; }); /***/ }), /* 364 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.9 String.prototype.italics() __webpack_require__(46)('italics', function (createHTML) { return function italics() { return createHTML(this, 'i', '', ''); }; }); /***/ }), /* 365 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.10 String.prototype.link(url) __webpack_require__(46)('link', function (createHTML) { return function link(url) { return createHTML(this, 'a', 'href', url); }; }); /***/ }), /* 366 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.11 String.prototype.small() __webpack_require__(46)('small', function (createHTML) { return function small() { return createHTML(this, 'small', '', ''); }; }); /***/ }), /* 367 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.12 String.prototype.strike() __webpack_require__(46)('strike', function (createHTML) { return function strike() { return createHTML(this, 'strike', '', ''); }; }); /***/ }), /* 368 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.13 String.prototype.sub() __webpack_require__(46)('sub', function (createHTML) { return function sub() { return createHTML(this, 'sub', '', ''); }; }); /***/ }), /* 369 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.14 String.prototype.sup() __webpack_require__(46)('sup', function (createHTML) { return function sup() { return createHTML(this, 'sup', '', ''); }; }); /***/ }), /* 370 */ /***/ (function(module, exports, __webpack_require__) { // 20.3.3.1 / 15.9.4.4 Date.now() var $export = __webpack_require__(3); $export($export.S, 'Date', { now: function () { return new Date().getTime(); } }); /***/ }), /* 371 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(3); var toObject = __webpack_require__(36); var toPrimitive = __webpack_require__(82); $export($export.P + $export.F * __webpack_require__(12)(function () { return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1; }), 'Date', { // eslint-disable-next-line no-unused-vars toJSON: function toJSON(key) { var O = toObject(this); var pv = toPrimitive(O); return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); } }); /***/ }), /* 372 */ /***/ (function(module, exports, __webpack_require__) { // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() var $export = __webpack_require__(3); var toISOString = __webpack_require__(373); // PhantomJS / old WebKit has a broken implementations $export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', { toISOString: toISOString }); /***/ }), /* 373 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() var fails = __webpack_require__(12); var getTime = Date.prototype.getTime; var $toISOString = Date.prototype.toISOString; var lz = function (num) { return num > 9 ? num : '0' + num; }; // PhantomJS / old WebKit has a broken implementations module.exports = (fails(function () { return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z'; }) || !fails(function () { $toISOString.call(new Date(NaN)); })) ? function toISOString() { if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value'); var d = this; var y = d.getUTCFullYear(); var m = d.getUTCMilliseconds(); var s = y < 0 ? '-' : y > 9999 ? '+' : ''; return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) + '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) + 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) + ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z'; } : $toISOString; /***/ }), /* 374 */ /***/ (function(module, exports, __webpack_require__) { var DateProto = Date.prototype; var INVALID_DATE = 'Invalid Date'; var TO_STRING = 'toString'; var $toString = DateProto[TO_STRING]; var getTime = DateProto.getTime; if (new Date(NaN) + '' != INVALID_DATE) { __webpack_require__(45)(DateProto, TO_STRING, function toString() { var value = getTime.call(this); // eslint-disable-next-line no-self-compare return value === value ? $toString.call(this) : INVALID_DATE; }); } /***/ }), /* 375 */ /***/ (function(module, exports, __webpack_require__) { var TO_PRIMITIVE = __webpack_require__(19)('toPrimitive'); var proto = Date.prototype; if (!(TO_PRIMITIVE in proto)) __webpack_require__(52)(proto, TO_PRIMITIVE, __webpack_require__(376)); /***/ }), /* 376 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var anObject = __webpack_require__(13); var toPrimitive = __webpack_require__(82); var NUMBER = 'number'; module.exports = function (hint) { if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint'); return toPrimitive(anObject(this), hint != NUMBER); }; /***/ }), /* 377 */ /***/ (function(module, exports, __webpack_require__) { // 22.1.2.2 / 15.4.3.2 Array.isArray(arg) var $export = __webpack_require__(3); $export($export.S, 'Array', { isArray: __webpack_require__(137) }); /***/ }), /* 378 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var ctx = __webpack_require__(63); var $export = __webpack_require__(3); var toObject = __webpack_require__(36); var call = __webpack_require__(228); var isArrayIter = __webpack_require__(180); var toLength = __webpack_require__(23); var createProperty = __webpack_require__(181); var getIterFn = __webpack_require__(182); $export($export.S + $export.F * !__webpack_require__(138)(function (iter) { Array.from(iter); }), 'Array', { // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined) from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { var O = toObject(arrayLike); var C = typeof this == 'function' ? this : Array; var aLen = arguments.length; var mapfn = aLen > 1 ? arguments[1] : undefined; var mapping = mapfn !== undefined; var index = 0; var iterFn = getIterFn(O); var length, result, step, iterator; if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); // if object isn't iterable or it's array with default iterator - use simple case if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); } } else { length = toLength(O.length); for (result = new C(length); length > index; index++) { createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); } } result.length = index; return result; } }); /***/ }), /* 379 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(3); var createProperty = __webpack_require__(181); // WebKit Array.of isn't generic $export($export.S + $export.F * __webpack_require__(12)(function () { function F() { /* empty */ } return !(Array.of.call(F) instanceof F); }), 'Array', { // 22.1.2.3 Array.of( ...items) of: function of(/* ...args */) { var index = 0; var aLen = arguments.length; var result = new (typeof this == 'function' ? this : Array)(aLen); while (aLen > index) createProperty(result, index, arguments[index++]); result.length = aLen; return result; } }); /***/ }), /* 380 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 22.1.3.13 Array.prototype.join(separator) var $export = __webpack_require__(3); var toIObject = __webpack_require__(53); var arrayJoin = [].join; // fallback for not array-like strings $export($export.P + $export.F * (__webpack_require__(122) != Object || !__webpack_require__(58)(arrayJoin)), 'Array', { join: function join(separator) { return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator); } }); /***/ }), /* 381 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(3); var html = __webpack_require__(168); var cof = __webpack_require__(75); var toAbsoluteIndex = __webpack_require__(91); var toLength = __webpack_require__(23); var arraySlice = [].slice; // fallback for not array-like ES3 strings and DOM objects $export($export.P + $export.F * __webpack_require__(12)(function () { if (html) arraySlice.call(html); }), 'Array', { slice: function slice(begin, end) { var len = toLength(this.length); var klass = cof(this); end = end === undefined ? len : end; if (klass == 'Array') return arraySlice.call(this, begin, end); var start = toAbsoluteIndex(begin, len); var upTo = toAbsoluteIndex(end, len); var size = toLength(upTo - start); var cloned = new Array(size); var i = 0; for (; i < size; i++) cloned[i] = klass == 'String' ? this.charAt(start + i) : this[start + i]; return cloned; } }); /***/ }), /* 382 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(3); var aFunction = __webpack_require__(64); var toObject = __webpack_require__(36); var fails = __webpack_require__(12); var $sort = [].sort; var test = [1, 2, 3]; $export($export.P + $export.F * (fails(function () { // IE8- test.sort(undefined); }) || !fails(function () { // V8 bug test.sort(null); // Old WebKit }) || !__webpack_require__(58)($sort)), 'Array', { // 22.1.3.25 Array.prototype.sort(comparefn) sort: function sort(comparefn) { return comparefn === undefined ? $sort.call(toObject(this)) : $sort.call(toObject(this), aFunction(comparefn)); } }); /***/ }), /* 383 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(3); var $forEach = __webpack_require__(68)(0); var STRICT = __webpack_require__(58)([].forEach, true); $export($export.P + $export.F * !STRICT, 'Array', { // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg]) forEach: function forEach(callbackfn /* , thisArg */) { return $forEach(this, callbackfn, arguments[1]); } }); /***/ }), /* 384 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(14); var isArray = __webpack_require__(137); var SPECIES = __webpack_require__(19)('species'); module.exports = function (original) { var C; if (isArray(original)) { C = original.constructor; // cross-realm fallback if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; if (isObject(C)) { C = C[SPECIES]; if (C === null) C = undefined; } } return C === undefined ? Array : C; }; /***/ }), /* 385 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(3); var $map = __webpack_require__(68)(1); $export($export.P + $export.F * !__webpack_require__(58)([].map, true), 'Array', { // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg]) map: function map(callbackfn /* , thisArg */) { return $map(this, callbackfn, arguments[1]); } }); /***/ }), /* 386 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(3); var $filter = __webpack_require__(68)(2); $export($export.P + $export.F * !__webpack_require__(58)([].filter, true), 'Array', { // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg]) filter: function filter(callbackfn /* , thisArg */) { return $filter(this, callbackfn, arguments[1]); } }); /***/ }), /* 387 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(3); var $some = __webpack_require__(68)(3); $export($export.P + $export.F * !__webpack_require__(58)([].some, true), 'Array', { // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg]) some: function some(callbackfn /* , thisArg */) { return $some(this, callbackfn, arguments[1]); } }); /***/ }), /* 388 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(3); var $every = __webpack_require__(68)(4); $export($export.P + $export.F * !__webpack_require__(58)([].every, true), 'Array', { // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg]) every: function every(callbackfn /* , thisArg */) { return $every(this, callbackfn, arguments[1]); } }); /***/ }), /* 389 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(3); var $reduce = __webpack_require__(230); $export($export.P + $export.F * !__webpack_require__(58)([].reduce, true), 'Array', { // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue]) reduce: function reduce(callbackfn /* , initialValue */) { return $reduce(this, callbackfn, arguments.length, arguments[1], false); } }); /***/ }), /* 390 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(3); var $reduce = __webpack_require__(230); $export($export.P + $export.F * !__webpack_require__(58)([].reduceRight, true), 'Array', { // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue]) reduceRight: function reduceRight(callbackfn /* , initialValue */) { return $reduce(this, callbackfn, arguments.length, arguments[1], true); } }); /***/ }), /* 391 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(3); var $indexOf = __webpack_require__(135)(false); var $native = [].indexOf; var NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0; $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(58)($native)), 'Array', { // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex]) indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { return NEGATIVE_ZERO // convert -0 to +0 ? $native.apply(this, arguments) || 0 : $indexOf(this, searchElement, arguments[1]); } }); /***/ }), /* 392 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(3); var toIObject = __webpack_require__(53); var toInteger = __webpack_require__(65); var toLength = __webpack_require__(23); var $native = [].lastIndexOf; var NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0; $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(58)($native)), 'Array', { // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex]) lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { // convert -0 to +0 if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0; var O = toIObject(this); var length = toLength(O.length); var index = length - 1; if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1])); if (index < 0) index = length + index; for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0; return -1; } }); /***/ }), /* 393 */ /***/ (function(module, exports, __webpack_require__) { // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) var $export = __webpack_require__(3); $export($export.P, 'Array', { copyWithin: __webpack_require__(231) }); __webpack_require__(95)('copyWithin'); /***/ }), /* 394 */ /***/ (function(module, exports, __webpack_require__) { // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) var $export = __webpack_require__(3); $export($export.P, 'Array', { fill: __webpack_require__(183) }); __webpack_require__(95)('fill'); /***/ }), /* 395 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined) var $export = __webpack_require__(3); var $find = __webpack_require__(68)(5); var KEY = 'find'; var forced = true; // Shouldn't skip holes if (KEY in []) Array(1)[KEY](function () { forced = false; }); $export($export.P + $export.F * forced, 'Array', { find: function find(callbackfn /* , that = undefined */) { return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } }); __webpack_require__(95)(KEY); /***/ }), /* 396 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined) var $export = __webpack_require__(3); var $find = __webpack_require__(68)(6); var KEY = 'findIndex'; var forced = true; // Shouldn't skip holes if (KEY in []) Array(1)[KEY](function () { forced = false; }); $export($export.P + $export.F * forced, 'Array', { findIndex: function findIndex(callbackfn /* , that = undefined */) { return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } }); __webpack_require__(95)(KEY); /***/ }), /* 397 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(106)('Array'); /***/ }), /* 398 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(11); var inheritIfRequired = __webpack_require__(171); var dP = __webpack_require__(29).f; var gOPN = __webpack_require__(93).f; var isRegExp = __webpack_require__(178); var $flags = __webpack_require__(139); var $RegExp = global.RegExp; var Base = $RegExp; var proto = $RegExp.prototype; var re1 = /a/g; var re2 = /a/g; // "new" creates a new object, old webkit buggy here var CORRECT_NEW = new $RegExp(re1) !== re1; if (__webpack_require__(28) && (!CORRECT_NEW || __webpack_require__(12)(function () { re2[__webpack_require__(19)('match')] = false; // RegExp constructor can alter flags and IsRegExp works correct with @@match return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i'; }))) { $RegExp = function RegExp(p, f) { var tiRE = this instanceof $RegExp; var piRE = isRegExp(p); var fiU = f === undefined; return !tiRE && piRE && p.constructor === $RegExp && fiU ? p : inheritIfRequired(CORRECT_NEW ? new Base(piRE && !fiU ? p.source : p, f) : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f) , tiRE ? this : proto, $RegExp); }; var proxy = function (key) { key in $RegExp || dP($RegExp, key, { configurable: true, get: function () { return Base[key]; }, set: function (it) { Base[key] = it; } }); }; for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]); proto.constructor = $RegExp; $RegExp.prototype = proto; __webpack_require__(45)(global, 'RegExp', $RegExp); } __webpack_require__(106)('RegExp'); /***/ }), /* 399 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; __webpack_require__(234); var anObject = __webpack_require__(13); var $flags = __webpack_require__(139); var DESCRIPTORS = __webpack_require__(28); var TO_STRING = 'toString'; var $toString = /./[TO_STRING]; var define = function (fn) { __webpack_require__(45)(RegExp.prototype, TO_STRING, fn, true); }; // 21.2.5.14 RegExp.prototype.toString() if (__webpack_require__(12)(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) { define(function toString() { var R = anObject(this); return '/'.concat(R.source, '/', 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined); }); // FF44- RegExp#toString has a wrong name } else if ($toString.name != TO_STRING) { define(function toString() { return $toString.call(this); }); } /***/ }), /* 400 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var anObject = __webpack_require__(13); var toLength = __webpack_require__(23); var advanceStringIndex = __webpack_require__(186); var regExpExec = __webpack_require__(140); // @@match logic __webpack_require__(141)('match', 1, function (defined, MATCH, $match, maybeCallNative) { return [ // `String.prototype.match` method // https://tc39.github.io/ecma262/#sec-string.prototype.match function match(regexp) { var O = defined(this); var fn = regexp == undefined ? undefined : regexp[MATCH]; return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); }, // `RegExp.prototype[@@match]` method // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match function (regexp) { var res = maybeCallNative($match, regexp, this); if (res.done) return res.value; var rx = anObject(regexp); var S = String(this); if (!rx.global) return regExpExec(rx, S); var fullUnicode = rx.unicode; rx.lastIndex = 0; var A = []; var n = 0; var result; while ((result = regExpExec(rx, S)) !== null) { var matchStr = String(result[0]); A[n] = matchStr; if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); n++; } return n === 0 ? null : A; } ]; }); /***/ }), /* 401 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var anObject = __webpack_require__(13); var toObject = __webpack_require__(36); var toLength = __webpack_require__(23); var toInteger = __webpack_require__(65); var advanceStringIndex = __webpack_require__(186); var regExpExec = __webpack_require__(140); var max = Math.max; var min = Math.min; var floor = Math.floor; var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g; var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g; var maybeToString = function (it) { return it === undefined ? it : String(it); }; // @@replace logic __webpack_require__(141)('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) { return [ // `String.prototype.replace` method // https://tc39.github.io/ecma262/#sec-string.prototype.replace function replace(searchValue, replaceValue) { var O = defined(this); var fn = searchValue == undefined ? undefined : searchValue[REPLACE]; return fn !== undefined ? fn.call(searchValue, O, replaceValue) : $replace.call(String(O), searchValue, replaceValue); }, // `RegExp.prototype[@@replace]` method // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace function (regexp, replaceValue) { var res = maybeCallNative($replace, regexp, this, replaceValue); if (res.done) return res.value; var rx = anObject(regexp); var S = String(this); var functionalReplace = typeof replaceValue === 'function'; if (!functionalReplace) replaceValue = String(replaceValue); var global = rx.global; if (global) { var fullUnicode = rx.unicode; rx.lastIndex = 0; } var results = []; while (true) { var result = regExpExec(rx, S); if (result === null) break; results.push(result); if (!global) break; var matchStr = String(result[0]); if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); } var accumulatedResult = ''; var nextSourcePosition = 0; for (var i = 0; i < results.length; i++) { result = results[i]; var matched = String(result[0]); var position = max(min(toInteger(result.index), S.length), 0); var captures = []; // NOTE: This is equivalent to // captures = result.slice(1).map(maybeToString) // but for some reason `nativeSlice.call(result, 1, result.length)` (called in // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j])); var namedCaptures = result.groups; if (functionalReplace) { var replacerArgs = [matched].concat(captures, position, S); if (namedCaptures !== undefined) replacerArgs.push(namedCaptures); var replacement = String(replaceValue.apply(undefined, replacerArgs)); } else { replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); } if (position >= nextSourcePosition) { accumulatedResult += S.slice(nextSourcePosition, position) + replacement; nextSourcePosition = position + matched.length; } } return accumulatedResult + S.slice(nextSourcePosition); } ]; // https://tc39.github.io/ecma262/#sec-getsubstitution function getSubstitution(matched, str, position, captures, namedCaptures, replacement) { var tailPos = position + matched.length; var m = captures.length; var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; if (namedCaptures !== undefined) { namedCaptures = toObject(namedCaptures); symbols = SUBSTITUTION_SYMBOLS; } return $replace.call(replacement, symbols, function (match, ch) { var capture; switch (ch.charAt(0)) { case '$': return '$'; case '&': return matched; case '`': return str.slice(0, position); case "'": return str.slice(tailPos); case '<': capture = namedCaptures[ch.slice(1, -1)]; break; default: // \d\d? var n = +ch; if (n === 0) return match; if (n > m) { var f = floor(n / 10); if (f === 0) return match; if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1); return match; } capture = captures[n - 1]; } return capture === undefined ? '' : capture; }); } }); /***/ }), /* 402 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var anObject = __webpack_require__(13); var sameValue = __webpack_require__(219); var regExpExec = __webpack_require__(140); // @@search logic __webpack_require__(141)('search', 1, function (defined, SEARCH, $search, maybeCallNative) { return [ // `String.prototype.search` method // https://tc39.github.io/ecma262/#sec-string.prototype.search function search(regexp) { var O = defined(this); var fn = regexp == undefined ? undefined : regexp[SEARCH]; return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O)); }, // `RegExp.prototype[@@search]` method // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search function (regexp) { var res = maybeCallNative($search, regexp, this); if (res.done) return res.value; var rx = anObject(regexp); var S = String(this); var previousLastIndex = rx.lastIndex; if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; var result = regExpExec(rx, S); if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; return result === null ? -1 : result.index; } ]; }); /***/ }), /* 403 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var isRegExp = __webpack_require__(178); var anObject = __webpack_require__(13); var speciesConstructor = __webpack_require__(125); var advanceStringIndex = __webpack_require__(186); var toLength = __webpack_require__(23); var callRegExpExec = __webpack_require__(140); var regexpExec = __webpack_require__(185); var fails = __webpack_require__(12); var $min = Math.min; var $push = [].push; var $SPLIT = 'split'; var LENGTH = 'length'; var LAST_INDEX = 'lastIndex'; var MAX_UINT32 = 0xffffffff; // babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError var SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); }); // @@split logic __webpack_require__(141)('split', 2, function (defined, SPLIT, $split, maybeCallNative) { var internalSplit; if ( 'abbc'[$SPLIT](/(b)*/)[1] == 'c' || 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 || 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 || '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 || '.'[$SPLIT](/()()/)[LENGTH] > 1 || ''[$SPLIT](/.?/)[LENGTH] ) { // based on es5-shim implementation, need to rework it internalSplit = function (separator, limit) { var string = String(this); if (separator === undefined && limit === 0) return []; // If `separator` is not a regex, use native split if (!isRegExp(separator)) return $split.call(string, separator, limit); var output = []; var flags = (separator.ignoreCase ? 'i' : '') + (separator.multiline ? 'm' : '') + (separator.unicode ? 'u' : '') + (separator.sticky ? 'y' : ''); var lastLastIndex = 0; var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0; // Make `global` and avoid `lastIndex` issues by working with a copy var separatorCopy = new RegExp(separator.source, flags + 'g'); var match, lastIndex, lastLength; while (match = regexpExec.call(separatorCopy, string)) { lastIndex = separatorCopy[LAST_INDEX]; if (lastIndex > lastLastIndex) { output.push(string.slice(lastLastIndex, match.index)); if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1)); lastLength = match[0][LENGTH]; lastLastIndex = lastIndex; if (output[LENGTH] >= splitLimit) break; } if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop } if (lastLastIndex === string[LENGTH]) { if (lastLength || !separatorCopy.test('')) output.push(''); } else output.push(string.slice(lastLastIndex)); return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output; }; // Chakra, V8 } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) { internalSplit = function (separator, limit) { return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit); }; } else { internalSplit = $split; } return [ // `String.prototype.split` method // https://tc39.github.io/ecma262/#sec-string.prototype.split function split(separator, limit) { var O = defined(this); var splitter = separator == undefined ? undefined : separator[SPLIT]; return splitter !== undefined ? splitter.call(separator, O, limit) : internalSplit.call(String(O), separator, limit); }, // `RegExp.prototype[@@split]` method // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split // // NOTE: This cannot be properly polyfilled in engines that don't support // the 'y' flag. function (regexp, limit) { var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split); if (res.done) return res.value; var rx = anObject(regexp); var S = String(this); var C = speciesConstructor(rx, RegExp); var unicodeMatching = rx.unicode; var flags = (rx.ignoreCase ? 'i' : '') + (rx.multiline ? 'm' : '') + (rx.unicode ? 'u' : '') + (SUPPORTS_Y ? 'y' : 'g'); // ^(? + rx + ) is needed, in combination with some S slicing, to // simulate the 'y' flag. var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags); var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; if (lim === 0) return []; if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : []; var p = 0; var q = 0; var A = []; while (q < S.length) { splitter.lastIndex = SUPPORTS_Y ? q : 0; var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q)); var e; if ( z === null || (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p ) { q = advanceStringIndex(S, q, unicodeMatching); } else { A.push(S.slice(p, q)); if (A.length === lim) return A; for (var i = 1; i <= z.length - 1; i++) { A.push(z[i]); if (A.length === lim) return A; } q = p = e; } } A.push(S.slice(p)); return A; } ]; }); /***/ }), /* 404 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(11); var macrotask = __webpack_require__(187).set; var Observer = global.MutationObserver || global.WebKitMutationObserver; var process = global.process; var Promise = global.Promise; var isNode = __webpack_require__(75)(process) == 'process'; module.exports = function () { var head, last, notify; var flush = function () { var parent, fn; if (isNode && (parent = process.domain)) parent.exit(); while (head) { fn = head.fn; head = head.next; try { fn(); } catch (e) { if (head) notify(); else last = undefined; throw e; } } last = undefined; if (parent) parent.enter(); }; // Node.js if (isNode) { notify = function () { process.nextTick(flush); }; // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339 } else if (Observer && !(global.navigator && global.navigator.standalone)) { var toggle = true; var node = document.createTextNode(''); new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new notify = function () { node.data = toggle = !toggle; }; // environments with maybe non-completely correct, but existent Promise } else if (Promise && Promise.resolve) { // Promise.resolve without an argument throws an error in LG WebOS 2 var promise = Promise.resolve(undefined); notify = function () { promise.then(flush); }; // for other environments - macrotask based on: // - setImmediate // - MessageChannel // - window.postMessag // - onreadystatechange // - setTimeout } else { notify = function () { // strange IE + webpack dev server bug - use .call(global) macrotask.call(global, flush); }; } return function (fn) { var task = { fn: fn, next: undefined }; if (last) last.next = task; if (!head) { head = task; notify(); } last = task; }; }; /***/ }), /* 405 */ /***/ (function(module, exports) { module.exports = function (exec) { try { return { e: false, v: exec() }; } catch (e) { return { e: true, v: e }; } }; /***/ }), /* 406 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var strong = __webpack_require__(238); var validate = __webpack_require__(96); var MAP = 'Map'; // 23.1 Map Objects module.exports = __webpack_require__(144)(MAP, function (get) { return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; }, { // 23.1.3.6 Map.prototype.get(key) get: function get(key) { var entry = strong.getEntry(validate(this, MAP), key); return entry && entry.v; }, // 23.1.3.9 Map.prototype.set(key, value) set: function set(key, value) { return strong.def(validate(this, MAP), key === 0 ? 0 : key, value); } }, strong, true); /***/ }), /* 407 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var strong = __webpack_require__(238); var validate = __webpack_require__(96); var SET = 'Set'; // 23.2 Set Objects module.exports = __webpack_require__(144)(SET, function (get) { return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; }, { // 23.2.3.1 Set.prototype.add(value) add: function add(value) { return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value); } }, strong); /***/ }), /* 408 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(11); var each = __webpack_require__(68)(0); var redefine = __webpack_require__(45); var meta = __webpack_require__(83); var assign = __webpack_require__(218); var weak = __webpack_require__(239); var isObject = __webpack_require__(14); var validate = __webpack_require__(96); var NATIVE_WEAK_MAP = __webpack_require__(96); var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; var WEAK_MAP = 'WeakMap'; var getWeak = meta.getWeak; var isExtensible = Object.isExtensible; var uncaughtFrozenStore = weak.ufstore; var InternalMap; var wrapper = function (get) { return function WeakMap() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; }; var methods = { // 23.3.3.3 WeakMap.prototype.get(key) get: function get(key) { if (isObject(key)) { var data = getWeak(key); if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); return data ? data[this._i] : undefined; } }, // 23.3.3.5 WeakMap.prototype.set(key, value) set: function set(key, value) { return weak.def(validate(this, WEAK_MAP), key, value); } }; // 23.3 WeakMap Objects var $WeakMap = module.exports = __webpack_require__(144)(WEAK_MAP, wrapper, methods, weak, true, true); // IE11 WeakMap frozen keys fix if (NATIVE_WEAK_MAP && IS_IE11) { InternalMap = weak.getConstructor(wrapper, WEAK_MAP); assign(InternalMap.prototype, methods); meta.NEED = true; each(['delete', 'has', 'get', 'set'], function (key) { var proto = $WeakMap.prototype; var method = proto[key]; redefine(proto, key, function (a, b) { // store frozen objects on internal weakmap shim if (isObject(a) && !isExtensible(a)) { if (!this._f) this._f = new InternalMap(); var result = this._f[key](a, b); return key == 'set' ? this : result; // store all the rest on native weakmap } return method.call(this, a, b); }); }); } /***/ }), /* 409 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var weak = __webpack_require__(239); var validate = __webpack_require__(96); var WEAK_SET = 'WeakSet'; // 23.4 WeakSet Objects __webpack_require__(144)(WEAK_SET, function (get) { return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; }, { // 23.4.3.1 WeakSet.prototype.add(value) add: function add(value) { return weak.def(validate(this, WEAK_SET), value, true); } }, weak, false, true); /***/ }), /* 410 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(3); var $typed = __webpack_require__(145); var buffer = __webpack_require__(188); var anObject = __webpack_require__(13); var toAbsoluteIndex = __webpack_require__(91); var toLength = __webpack_require__(23); var isObject = __webpack_require__(14); var ArrayBuffer = __webpack_require__(11).ArrayBuffer; var speciesConstructor = __webpack_require__(125); var $ArrayBuffer = buffer.ArrayBuffer; var $DataView = buffer.DataView; var $isView = $typed.ABV && ArrayBuffer.isView; var $slice = $ArrayBuffer.prototype.slice; var VIEW = $typed.VIEW; var ARRAY_BUFFER = 'ArrayBuffer'; $export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer }); $export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, { // 24.1.3.1 ArrayBuffer.isView(arg) isView: function isView(it) { return $isView && $isView(it) || isObject(it) && VIEW in it; } }); $export($export.P + $export.U + $export.F * __webpack_require__(12)(function () { return !new $ArrayBuffer(2).slice(1, undefined).byteLength; }), ARRAY_BUFFER, { // 24.1.4.3 ArrayBuffer.prototype.slice(start, end) slice: function slice(start, end) { if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix var len = anObject(this).byteLength; var first = toAbsoluteIndex(start, len); var fin = toAbsoluteIndex(end === undefined ? len : end, len); var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first)); var viewS = new $DataView(this); var viewT = new $DataView(result); var index = 0; while (first < fin) { viewT.setUint8(index++, viewS.getUint8(first++)); } return result; } }); __webpack_require__(106)(ARRAY_BUFFER); /***/ }), /* 411 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(3); $export($export.G + $export.W + $export.F * !__webpack_require__(145).ABV, { DataView: __webpack_require__(188).DataView }); /***/ }), /* 412 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(77)('Int8', 1, function (init) { return function Int8Array(data, byteOffset, length) { return init(this, data, byteOffset, length); }; }); /***/ }), /* 413 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(77)('Uint8', 1, function (init) { return function Uint8Array(data, byteOffset, length) { return init(this, data, byteOffset, length); }; }); /***/ }), /* 414 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(77)('Uint8', 1, function (init) { return function Uint8ClampedArray(data, byteOffset, length) { return init(this, data, byteOffset, length); }; }, true); /***/ }), /* 415 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(77)('Int16', 2, function (init) { return function Int16Array(data, byteOffset, length) { return init(this, data, byteOffset, length); }; }); /***/ }), /* 416 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(77)('Uint16', 2, function (init) { return function Uint16Array(data, byteOffset, length) { return init(this, data, byteOffset, length); }; }); /***/ }), /* 417 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(77)('Int32', 4, function (init) { return function Int32Array(data, byteOffset, length) { return init(this, data, byteOffset, length); }; }); /***/ }), /* 418 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(77)('Uint32', 4, function (init) { return function Uint32Array(data, byteOffset, length) { return init(this, data, byteOffset, length); }; }); /***/ }), /* 419 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(77)('Float32', 4, function (init) { return function Float32Array(data, byteOffset, length) { return init(this, data, byteOffset, length); }; }); /***/ }), /* 420 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(77)('Float64', 8, function (init) { return function Float64Array(data, byteOffset, length) { return init(this, data, byteOffset, length); }; }); /***/ }), /* 421 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.1 Reflect.apply(target, thisArgument, argumentsList) var $export = __webpack_require__(3); var aFunction = __webpack_require__(64); var anObject = __webpack_require__(13); var rApply = (__webpack_require__(11).Reflect || {}).apply; var fApply = Function.apply; // MS Edge argumentsList argument is optional $export($export.S + $export.F * !__webpack_require__(12)(function () { rApply(function () { /* empty */ }); }), 'Reflect', { apply: function apply(target, thisArgument, argumentsList) { var T = aFunction(target); var L = anObject(argumentsList); return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L); } }); /***/ }), /* 422 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.2 Reflect.construct(target, argumentsList [, newTarget]) var $export = __webpack_require__(3); var create = __webpack_require__(92); var aFunction = __webpack_require__(64); var anObject = __webpack_require__(13); var isObject = __webpack_require__(14); var fails = __webpack_require__(12); var bind = __webpack_require__(220); var rConstruct = (__webpack_require__(11).Reflect || {}).construct; // MS Edge supports only 2 arguments and argumentsList argument is optional // FF Nightly sets third argument as `new.target`, but does not create `this` from it var NEW_TARGET_BUG = fails(function () { function F() { /* empty */ } return !(rConstruct(function () { /* empty */ }, [], F) instanceof F); }); var ARGS_BUG = !fails(function () { rConstruct(function () { /* empty */ }); }); $export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', { construct: function construct(Target, args /* , newTarget */) { aFunction(Target); anObject(args); var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]); if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget); if (Target == newTarget) { // w/o altered newTarget, optimization for 0-4 arguments switch (args.length) { case 0: return new Target(); case 1: return new Target(args[0]); case 2: return new Target(args[0], args[1]); case 3: return new Target(args[0], args[1], args[2]); case 4: return new Target(args[0], args[1], args[2], args[3]); } // w/o altered newTarget, lot of arguments case var $args = [null]; $args.push.apply($args, args); return new (bind.apply(Target, $args))(); } // with altered newTarget, not support built-in constructors var proto = newTarget.prototype; var instance = create(isObject(proto) ? proto : Object.prototype); var result = Function.apply.call(Target, instance, args); return isObject(result) ? result : instance; } }); /***/ }), /* 423 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.3 Reflect.defineProperty(target, propertyKey, attributes) var dP = __webpack_require__(29); var $export = __webpack_require__(3); var anObject = __webpack_require__(13); var toPrimitive = __webpack_require__(82); // MS Edge has broken Reflect.defineProperty - throwing instead of returning false $export($export.S + $export.F * __webpack_require__(12)(function () { // eslint-disable-next-line no-undef Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 }); }), 'Reflect', { defineProperty: function defineProperty(target, propertyKey, attributes) { anObject(target); propertyKey = toPrimitive(propertyKey, true); anObject(attributes); try { dP.f(target, propertyKey, attributes); return true; } catch (e) { return false; } } }); /***/ }), /* 424 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.4 Reflect.deleteProperty(target, propertyKey) var $export = __webpack_require__(3); var gOPD = __webpack_require__(66).f; var anObject = __webpack_require__(13); $export($export.S, 'Reflect', { deleteProperty: function deleteProperty(target, propertyKey) { var desc = gOPD(anObject(target), propertyKey); return desc && !desc.configurable ? false : delete target[propertyKey]; } }); /***/ }), /* 425 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 26.1.5 Reflect.enumerate(target) var $export = __webpack_require__(3); var anObject = __webpack_require__(13); var Enumerate = function (iterated) { this._t = anObject(iterated); // target this._i = 0; // next index var keys = this._k = []; // keys var key; for (key in iterated) keys.push(key); }; __webpack_require__(227)(Enumerate, 'Object', function () { var that = this; var keys = that._k; var key; do { if (that._i >= keys.length) return { value: undefined, done: true }; } while (!((key = keys[that._i++]) in that._t)); return { value: key, done: false }; }); $export($export.S, 'Reflect', { enumerate: function enumerate(target) { return new Enumerate(target); } }); /***/ }), /* 426 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.6 Reflect.get(target, propertyKey [, receiver]) var gOPD = __webpack_require__(66); var getPrototypeOf = __webpack_require__(94); var has = __webpack_require__(51); var $export = __webpack_require__(3); var isObject = __webpack_require__(14); var anObject = __webpack_require__(13); function get(target, propertyKey /* , receiver */) { var receiver = arguments.length < 3 ? target : arguments[2]; var desc, proto; if (anObject(target) === receiver) return target[propertyKey]; if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value') ? desc.value : desc.get !== undefined ? desc.get.call(receiver) : undefined; if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver); } $export($export.S, 'Reflect', { get: get }); /***/ }), /* 427 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey) var gOPD = __webpack_require__(66); var $export = __webpack_require__(3); var anObject = __webpack_require__(13); $export($export.S, 'Reflect', { getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { return gOPD.f(anObject(target), propertyKey); } }); /***/ }), /* 428 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.8 Reflect.getPrototypeOf(target) var $export = __webpack_require__(3); var getProto = __webpack_require__(94); var anObject = __webpack_require__(13); $export($export.S, 'Reflect', { getPrototypeOf: function getPrototypeOf(target) { return getProto(anObject(target)); } }); /***/ }), /* 429 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.9 Reflect.has(target, propertyKey) var $export = __webpack_require__(3); $export($export.S, 'Reflect', { has: function has(target, propertyKey) { return propertyKey in target; } }); /***/ }), /* 430 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.10 Reflect.isExtensible(target) var $export = __webpack_require__(3); var anObject = __webpack_require__(13); var $isExtensible = Object.isExtensible; $export($export.S, 'Reflect', { isExtensible: function isExtensible(target) { anObject(target); return $isExtensible ? $isExtensible(target) : true; } }); /***/ }), /* 431 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.11 Reflect.ownKeys(target) var $export = __webpack_require__(3); $export($export.S, 'Reflect', { ownKeys: __webpack_require__(241) }); /***/ }), /* 432 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.12 Reflect.preventExtensions(target) var $export = __webpack_require__(3); var anObject = __webpack_require__(13); var $preventExtensions = Object.preventExtensions; $export($export.S, 'Reflect', { preventExtensions: function preventExtensions(target) { anObject(target); try { if ($preventExtensions) $preventExtensions(target); return true; } catch (e) { return false; } } }); /***/ }), /* 433 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.13 Reflect.set(target, propertyKey, V [, receiver]) var dP = __webpack_require__(29); var gOPD = __webpack_require__(66); var getPrototypeOf = __webpack_require__(94); var has = __webpack_require__(51); var $export = __webpack_require__(3); var createDesc = __webpack_require__(87); var anObject = __webpack_require__(13); var isObject = __webpack_require__(14); function set(target, propertyKey, V /* , receiver */) { var receiver = arguments.length < 4 ? target : arguments[3]; var ownDesc = gOPD.f(anObject(target), propertyKey); var existingDescriptor, proto; if (!ownDesc) { if (isObject(proto = getPrototypeOf(target))) { return set(proto, propertyKey, V, receiver); } ownDesc = createDesc(0); } if (has(ownDesc, 'value')) { if (ownDesc.writable === false || !isObject(receiver)) return false; if (existingDescriptor = gOPD.f(receiver, propertyKey)) { if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false; existingDescriptor.value = V; dP.f(receiver, propertyKey, existingDescriptor); } else dP.f(receiver, propertyKey, createDesc(0, V)); return true; } return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true); } $export($export.S, 'Reflect', { set: set }); /***/ }), /* 434 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.14 Reflect.setPrototypeOf(target, proto) var $export = __webpack_require__(3); var setProto = __webpack_require__(169); if (setProto) $export($export.S, 'Reflect', { setPrototypeOf: function setPrototypeOf(target, proto) { setProto.check(target, proto); try { setProto.set(target, proto); return true; } catch (e) { return false; } } }); /***/ }), /* 435 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(436); module.exports = __webpack_require__(26).Array.includes; /***/ }), /* 436 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // https://github.com/tc39/Array.prototype.includes var $export = __webpack_require__(3); var $includes = __webpack_require__(135)(true); $export($export.P, 'Array', { includes: function includes(el /* , fromIndex = 0 */) { return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); } }); __webpack_require__(95)('includes'); /***/ }), /* 437 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(438); module.exports = __webpack_require__(26).Array.flatMap; /***/ }), /* 438 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap var $export = __webpack_require__(3); var flattenIntoArray = __webpack_require__(439); var toObject = __webpack_require__(36); var toLength = __webpack_require__(23); var aFunction = __webpack_require__(64); var arraySpeciesCreate = __webpack_require__(229); $export($export.P, 'Array', { flatMap: function flatMap(callbackfn /* , thisArg */) { var O = toObject(this); var sourceLen, A; aFunction(callbackfn); sourceLen = toLength(O.length); A = arraySpeciesCreate(O, 0); flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]); return A; } }); __webpack_require__(95)('flatMap'); /***/ }), /* 439 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray var isArray = __webpack_require__(137); var isObject = __webpack_require__(14); var toLength = __webpack_require__(23); var ctx = __webpack_require__(63); var IS_CONCAT_SPREADABLE = __webpack_require__(19)('isConcatSpreadable'); function flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) { var targetIndex = start; var sourceIndex = 0; var mapFn = mapper ? ctx(mapper, thisArg, 3) : false; var element, spreadable; while (sourceIndex < sourceLen) { if (sourceIndex in source) { element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; spreadable = false; if (isObject(element)) { spreadable = element[IS_CONCAT_SPREADABLE]; spreadable = spreadable !== undefined ? !!spreadable : isArray(element); } if (spreadable && depth > 0) { targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1; } else { if (targetIndex >= 0x1fffffffffffff) throw TypeError(); target[targetIndex] = element; } targetIndex++; } sourceIndex++; } return targetIndex; } module.exports = flattenIntoArray; /***/ }), /* 440 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(441); module.exports = __webpack_require__(26).String.padStart; /***/ }), /* 441 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // https://github.com/tc39/proposal-string-pad-start-end var $export = __webpack_require__(3); var $pad = __webpack_require__(242); var userAgent = __webpack_require__(143); // https://github.com/zloirock/core-js/issues/280 var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); $export($export.P + $export.F * WEBKIT_BUG, 'String', { padStart: function padStart(maxLength /* , fillString = ' ' */) { return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true); } }); /***/ }), /* 442 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(443); module.exports = __webpack_require__(26).String.padEnd; /***/ }), /* 443 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // https://github.com/tc39/proposal-string-pad-start-end var $export = __webpack_require__(3); var $pad = __webpack_require__(242); var userAgent = __webpack_require__(143); // https://github.com/zloirock/core-js/issues/280 var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); $export($export.P + $export.F * WEBKIT_BUG, 'String', { padEnd: function padEnd(maxLength /* , fillString = ' ' */) { return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false); } }); /***/ }), /* 444 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(445); module.exports = __webpack_require__(26).String.trimLeft; /***/ }), /* 445 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // https://github.com/sebmarkbage/ecmascript-string-left-right-trim __webpack_require__(104)('trimLeft', function ($trim) { return function trimLeft() { return $trim(this, 1); }; }, 'trimStart'); /***/ }), /* 446 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(447); module.exports = __webpack_require__(26).String.trimRight; /***/ }), /* 447 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // https://github.com/sebmarkbage/ecmascript-string-left-right-trim __webpack_require__(104)('trimRight', function ($trim) { return function trimRight() { return $trim(this, 2); }; }, 'trimEnd'); /***/ }), /* 448 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(449); module.exports = __webpack_require__(165).f('asyncIterator'); /***/ }), /* 449 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(214)('asyncIterator'); /***/ }), /* 450 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(451); module.exports = __webpack_require__(26).Object.getOwnPropertyDescriptors; /***/ }), /* 451 */ /***/ (function(module, exports, __webpack_require__) { // https://github.com/tc39/proposal-object-getownpropertydescriptors var $export = __webpack_require__(3); var ownKeys = __webpack_require__(241); var toIObject = __webpack_require__(53); var gOPD = __webpack_require__(66); var createProperty = __webpack_require__(181); $export($export.S, 'Object', { getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { var O = toIObject(object); var getDesc = gOPD.f; var keys = ownKeys(O); var result = {}; var i = 0; var key, desc; while (keys.length > i) { desc = getDesc(O, key = keys[i++]); if (desc !== undefined) createProperty(result, key, desc); } return result; } }); /***/ }), /* 452 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(453); module.exports = __webpack_require__(26).Object.values; /***/ }), /* 453 */ /***/ (function(module, exports, __webpack_require__) { // https://github.com/tc39/proposal-object-values-entries var $export = __webpack_require__(3); var $values = __webpack_require__(243)(false); $export($export.S, 'Object', { values: function values(it) { return $values(it); } }); /***/ }), /* 454 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(455); module.exports = __webpack_require__(26).Object.entries; /***/ }), /* 455 */ /***/ (function(module, exports, __webpack_require__) { // https://github.com/tc39/proposal-object-values-entries var $export = __webpack_require__(3); var $entries = __webpack_require__(243)(true); $export($export.S, 'Object', { entries: function entries(it) { return $entries(it); } }); /***/ }), /* 456 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; __webpack_require__(235); __webpack_require__(457); module.exports = __webpack_require__(26).Promise['finally']; /***/ }), /* 457 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // https://github.com/tc39/proposal-promise-finally var $export = __webpack_require__(3); var core = __webpack_require__(26); var global = __webpack_require__(11); var speciesConstructor = __webpack_require__(125); var promiseResolve = __webpack_require__(237); $export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) { var C = speciesConstructor(this, core.Promise || global.Promise); var isFunction = typeof onFinally == 'function'; return this.then( isFunction ? function (x) { return promiseResolve(C, onFinally()).then(function () { return x; }); } : onFinally, isFunction ? function (e) { return promiseResolve(C, onFinally()).then(function () { throw e; }); } : onFinally ); } }); /***/ }), /* 458 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(459); __webpack_require__(460); __webpack_require__(461); module.exports = __webpack_require__(26); /***/ }), /* 459 */ /***/ (function(module, exports, __webpack_require__) { // ie9- setTimeout & setInterval additional parameters fix var global = __webpack_require__(11); var $export = __webpack_require__(3); var userAgent = __webpack_require__(143); var slice = [].slice; var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check var wrap = function (set) { return function (fn, time /* , ...args */) { var boundArgs = arguments.length > 2; var args = boundArgs ? slice.call(arguments, 2) : false; return set(boundArgs ? function () { // eslint-disable-next-line no-new-func (typeof fn == 'function' ? fn : Function(fn)).apply(this, args); } : fn, time); }; }; $export($export.G + $export.B + $export.F * MSIE, { setTimeout: wrap(global.setTimeout), setInterval: wrap(global.setInterval) }); /***/ }), /* 460 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(3); var $task = __webpack_require__(187); $export($export.G + $export.B, { setImmediate: $task.set, clearImmediate: $task.clear }); /***/ }), /* 461 */ /***/ (function(module, exports, __webpack_require__) { var $iterators = __webpack_require__(184); var getKeys = __webpack_require__(90); var redefine = __webpack_require__(45); var global = __webpack_require__(11); var hide = __webpack_require__(52); var Iterators = __webpack_require__(105); var wks = __webpack_require__(19); var ITERATOR = wks('iterator'); var TO_STRING_TAG = wks('toStringTag'); var ArrayValues = Iterators.Array; var DOMIterables = { CSSRuleList: true, // TODO: Not spec compliant, should be false. CSSStyleDeclaration: false, CSSValueList: false, ClientRectList: false, DOMRectList: false, DOMStringList: false, DOMTokenList: true, DataTransferItemList: false, FileList: false, HTMLAllCollection: false, HTMLCollection: false, HTMLFormElement: false, HTMLSelectElement: false, MediaList: true, // TODO: Not spec compliant, should be false. MimeTypeArray: false, NamedNodeMap: false, NodeList: true, PaintRequestList: false, Plugin: false, PluginArray: false, SVGLengthList: false, SVGNumberList: false, SVGPathSegList: false, SVGPointList: false, SVGStringList: false, SVGTransformList: false, SourceBufferList: false, StyleSheetList: true, // TODO: Not spec compliant, should be false. TextTrackCueList: false, TextTrackList: false, TouchList: false }; for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { var NAME = collections[i]; var explicit = DOMIterables[NAME]; var Collection = global[NAME]; var proto = Collection && Collection.prototype; var key; if (proto) { if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); Iterators[NAME] = ArrayValues; if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true); } } /***/ }), /* 462 */ /***/ (function(module, exports, __webpack_require__) { /** * Copyright (c) 2014-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ var runtime = (function (exports) { "use strict"; var Op = Object.prototype; var hasOwn = Op.hasOwnProperty; var undefined; // More compressible than void 0. var $Symbol = typeof Symbol === "function" ? Symbol : {}; var iteratorSymbol = $Symbol.iterator || "@@iterator"; var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); return obj[key]; } try { // IE 8 has a broken Object.defineProperty that only works on DOM objects. define({}, ""); } catch (err) { define = function(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; var generator = Object.create(protoGenerator.prototype); var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next, // .throw, and .return methods. generator._invoke = makeInvokeMethod(innerFn, self, context); return generator; } exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion // record like context.tryEntries[i].completion. This interface could // have been (and was previously) designed to take a closure to be // invoked without arguments, but in all the cases we care about we // already have an existing method we want to call, so there's no need // to create a new function object. We can even get away with assuming // the method takes exactly one argument, since that happens to be true // in every case, so we don't have to touch the arguments object. The // only additional allocation required is the completion record, which // has a stable shape and so hopefully should be cheap to allocate. function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } var GenStateSuspendedStart = "suspendedStart"; var GenStateSuspendedYield = "suspendedYield"; var GenStateExecuting = "executing"; var GenStateCompleted = "completed"; // Returning this object from the innerFn has the same effect as // breaking out of the dispatch switch statement. var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and // .constructor.prototype properties for functions that return Generator // objects. For full spec compliance, you may wish to configure your // minifier not to mangle the names of these two functions. function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that // don't natively support it. var IteratorPrototype = {}; IteratorPrototype[iteratorSymbol] = function () { return this; }; var getProto = Object.getPrototypeOf; var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { // This environment has a native %IteratorPrototype%; use it instead // of the polyfill. IteratorPrototype = NativeIteratorPrototype; } var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; GeneratorFunctionPrototype.constructor = GeneratorFunction; GeneratorFunction.displayName = define( GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction" ); // Helper for defining the .next, .throw, and .return methods of the // Iterator interface in terms of a single ._invoke method. function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function(method) { define(prototype, method, function(arg) { return this._invoke(method, arg); }); }); } exports.isGeneratorFunction = function(genFun) { var ctor = typeof genFun === "function" && genFun.constructor; return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can // do is to check its .name property. (ctor.displayName || ctor.name) === "GeneratorFunction" : false; }; exports.mark = function(genFun) { if (Object.setPrototypeOf) { Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); } else { genFun.__proto__ = GeneratorFunctionPrototype; define(genFun, toStringTagSymbol, "GeneratorFunction"); } genFun.prototype = Object.create(Gp); return genFun; }; // Within the body of any async function, `await x` is transformed to // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test // `hasOwn.call(value, "__await")` to determine if the yielded value is // meant to be awaited. exports.awrap = function(arg) { return { __await: arg }; }; function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if (record.type === "throw") { reject(record.arg); } else { var result = record.arg; var value = result.value; if (value && typeof value === "object" && hasOwn.call(value, "__await")) { return PromiseImpl.resolve(value.__await).then(function(value) { invoke("next", value, resolve, reject); }, function(err) { invoke("throw", err, resolve, reject); }); } return PromiseImpl.resolve(value).then(function(unwrapped) { // When a yielded Promise is resolved, its final value becomes // the .value of the Promise<{value,done}> result for the // current iteration. result.value = unwrapped; resolve(result); }, function(error) { // If a rejected Promise was yielded, throw the rejection back // into the async generator function so it can be handled there. return invoke("throw", error, resolve, reject); }); } } var previousPromise; function enqueue(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function(resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = // If enqueue has been called before, then we want to wait until // all previous Promises have been resolved before calling invoke, // so that results are always delivered in the correct order. If // enqueue has not been called before, then it is important to // call invoke immediately, without waiting on a callback to fire, // so that the async generator function has the opportunity to do // any necessary setup in a predictable way. This predictability // is why the Promise constructor synchronously invokes its // executor callback, and why async functions synchronously // execute code before the first await. Since we implement simple // async functions in terms of async generators, it is especially // important to get this right, even though it requires care. previousPromise ? previousPromise.then( callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later // invocations of the iterator. callInvokeWithMethodAndArg ) : callInvokeWithMethodAndArg(); } // Define the unified helper method that is used to implement .next, // .throw, and .return (see defineIteratorMethods). this._invoke = enqueue; } defineIteratorMethods(AsyncIterator.prototype); AsyncIterator.prototype[asyncIteratorSymbol] = function () { return this; }; exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of // AsyncIterator objects; they just return a Promise for the value of // the final result produced by the iterator. exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) { if (PromiseImpl === void 0) PromiseImpl = Promise; var iter = new AsyncIterator( wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl ); return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator. : iter.next().then(function(result) { return result.done ? result.value : iter.next(); }); }; function makeInvokeMethod(innerFn, self, context) { var state = GenStateSuspendedStart; return function invoke(method, arg) { if (state === GenStateExecuting) { throw new Error("Generator is already running"); } if (state === GenStateCompleted) { if (method === "throw") { throw arg; } // Be forgiving, per 25.3.3.3.3 of the spec: // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume return doneResult(); } context.method = method; context.arg = arg; while (true) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if (context.method === "next") { // Setting context._sent for legacy support of Babel's // function.sent implementation. context.sent = context._sent = context.arg; } else if (context.method === "throw") { if (state === GenStateSuspendedStart) { state = GenStateCompleted; throw context.arg; } context.dispatchException(context.arg); } else if (context.method === "return") { context.abrupt("return", context.arg); } state = GenStateExecuting; var record = tryCatch(innerFn, self, context); if (record.type === "normal") { // If an exception is thrown from innerFn, we leave state === // GenStateExecuting and loop back for another invocation. state = context.done ? GenStateCompleted : GenStateSuspendedYield; if (record.arg === ContinueSentinel) { continue; } return { value: record.arg, done: context.done }; } else if (record.type === "throw") { state = GenStateCompleted; // Dispatch the exception by looping back around to the // context.dispatchException(context.arg) call above. context.method = "throw"; context.arg = record.arg; } } }; } // Call delegate.iterator[context.method](context.arg) and handle the // result, either by returning a { value, done } result from the // delegate iterator, or by modifying context.method and context.arg, // setting context.delegate to null, and returning the ContinueSentinel. function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (method === undefined) { // A .throw or .return when the delegate iterator has no .throw // method always terminates the yield* loop. context.delegate = null; if (context.method === "throw") { // Note: ["return"] must be used for ES3 parsing compatibility. if (delegate.iterator["return"]) { // If the delegate iterator has a return method, give it a // chance to clean up. context.method = "return"; context.arg = undefined; maybeInvokeDelegate(delegate, context); if (context.method === "throw") { // If maybeInvokeDelegate(context) changed context.method from // "return" to "throw", let that override the TypeError below. return ContinueSentinel; } } context.method = "throw"; context.arg = new TypeError( "The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if (record.type === "throw") { context.method = "throw"; context.arg = record.arg; context.delegate = null; return ContinueSentinel; } var info = record.arg; if (! info) { context.method = "throw"; context.arg = new TypeError("iterator result is not an object"); context.delegate = null; return ContinueSentinel; } if (info.done) { // Assign the result of the finished delegate to the temporary // variable specified by delegate.resultName (see delegateYield). context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield). context.next = delegate.nextLoc; // If context.method was "throw" but the delegate handled the // exception, let the outer generator proceed normally. If // context.method was "next", forget context.arg since it has been // "consumed" by the delegate iterator. If context.method was // "return", allow the original .return call to continue in the // outer generator. if (context.method !== "return") { context.method = "next"; context.arg = undefined; } } else { // Re-yield the result returned by the delegate method. return info; } // The delegate iterator is finished, so forget it and continue with // the outer generator. context.delegate = null; return ContinueSentinel; } // Define Generator.prototype.{next,throw,return} in terms of the // unified ._invoke helper method. defineIteratorMethods(Gp); define(Gp, toStringTagSymbol, "Generator"); // A Generator should always return itself as the iterator object when the // @@iterator function is called on it. Some browsers' implementations of the // iterator prototype chain incorrectly implement this, causing the Generator // object to not be returned from this call. This ensures that doesn't happen. // See https://github.com/facebook/regenerator/issues/274 for more details. Gp[iteratorSymbol] = function() { return this; }; Gp.toString = function() { return "[object Generator]"; }; function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; if (1 in locs) { entry.catchLoc = locs[1]; } if (2 in locs) { entry.finallyLoc = locs[2]; entry.afterLoc = locs[3]; } this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal"; delete record.arg; entry.completion = record; } function Context(tryLocsList) { // The root entry object (effectively a try statement without a catch // or a finally block) gives us a place to store values thrown from // locations where there is no enclosing try statement. this.tryEntries = [{ tryLoc: "root" }]; tryLocsList.forEach(pushTryEntry, this); this.reset(true); } exports.keys = function(object) { var keys = []; for (var key in object) { keys.push(key); } keys.reverse(); // Rather than returning an object with a next method, we keep // things simple and return the next function itself. return function next() { while (keys.length) { var key = keys.pop(); if (key in object) { next.value = key; next.done = false; return next; } } // To avoid creating an additional object, we just hang the .value // and .done properties off the next function object itself. This // also ensures that the minifier will not anonymize the function. next.done = true; return next; }; }; function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) { return iteratorMethod.call(iterable); } if (typeof iterable.next === "function") { return iterable; } if (!isNaN(iterable.length)) { var i = -1, next = function next() { while (++i < iterable.length) { if (hasOwn.call(iterable, i)) { next.value = iterable[i]; next.done = false; return next; } } next.value = undefined; next.done = true; return next; }; return next.next = next; } } // Return an iterator with no values. return { next: doneResult }; } exports.values = values; function doneResult() { return { value: undefined, done: true }; } Context.prototype = { constructor: Context, reset: function(skipTempReset) { this.prev = 0; this.next = 0; // Resetting context._sent for legacy support of Babel's // function.sent implementation. this.sent = this._sent = undefined; this.done = false; this.delegate = null; this.method = "next"; this.arg = undefined; this.tryEntries.forEach(resetTryEntry); if (!skipTempReset) { for (var name in this) { // Not sure about the optimal order of these conditions: if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { this[name] = undefined; } } } }, stop: function() { this.done = true; var rootEntry = this.tryEntries[0]; var rootRecord = rootEntry.completion; if (rootRecord.type === "throw") { throw rootRecord.arg; } return this.rval; }, dispatchException: function(exception) { if (this.done) { throw exception; } var context = this; function handle(loc, caught) { record.type = "throw"; record.arg = exception; context.next = loc; if (caught) { // If the dispatched exception was caught by a catch block, // then let that catch block handle the exception normally. context.method = "next"; context.arg = undefined; } return !! caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; var record = entry.completion; if (entry.tryLoc === "root") { // Exception thrown outside of any try block that could handle // it, so set the completion value of the entire function to // throw the exception. return handle("end"); } if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"); var hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true); } else if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc); } } else if (hasCatch) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true); } } else if (hasFinally) { if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc); } } else { throw new Error("try statement without catch or finally"); } } } }, abrupt: function(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { // Ignore the finally entry if control is not jumping to a // location outside the try/catch block. finallyEntry = null; } var record = finallyEntry ? finallyEntry.completion : {}; record.type = type; record.arg = arg; if (finallyEntry) { this.method = "next"; this.next = finallyEntry.finallyLoc; return ContinueSentinel; } return this.complete(record); }, complete: function(record, afterLoc) { if (record.type === "throw") { throw record.arg; } if (record.type === "break" || record.type === "continue") { this.next = record.arg; } else if (record.type === "return") { this.rval = this.arg = record.arg; this.method = "return"; this.next = "end"; } else if (record.type === "normal" && afterLoc) { this.next = afterLoc; } return ContinueSentinel; }, finish: function(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) { this.complete(entry.completion, entry.afterLoc); resetTryEntry(entry); return ContinueSentinel; } } }, "catch": function(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if (record.type === "throw") { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } // The context.catch method must only be called with a location // argument that corresponds to a known catch block. throw new Error("illegal catch attempt"); }, delegateYield: function(iterable, resultName, nextLoc) { this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }; if (this.method === "next") { // Deliberately forget the last sent value so that we don't // accidentally pass it on to the delegate. this.arg = undefined; } return ContinueSentinel; } }; // Regardless of whether this script is executing as a CommonJS module // or not, return the runtime object so that we can declare the variable // regeneratorRuntime in the outer scope, which allows this module to be // injected easily by `bin/regenerator --include-runtime script.js`. return exports; }( // If this script is executing as a CommonJS module, use module.exports // as the regeneratorRuntime namespace. Otherwise create a new empty // object. Either way, the resulting object will be used to initialize // the regeneratorRuntime variable at the top of this file. true ? module.exports : undefined )); try { regeneratorRuntime = runtime; } catch (accidentalStrictMode) { // This module should not be running in strict mode, so the above // assignment should always work unless something is misconfigured. Just // in case runtime.js accidentally runs in strict mode, we can escape // strict mode using a global Function call. This could conceivably fail // if a Content Security Policy forbids using Function, but in that case // the proper solution is to fix the accidental strict mode problem. If // you've misconfigured your bundler to force strict mode and applied a // CSP to forbid Function, and you're not willing to fix either of those // problems, please detail your unique predicament in a GitHub issue. Function("r", "regeneratorRuntime = r")(runtime); } /***/ }), /* 463 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(464); module.exports = __webpack_require__(244).global; /***/ }), /* 464 */ /***/ (function(module, exports, __webpack_require__) { // https://github.com/tc39/proposal-global var $export = __webpack_require__(465); $export($export.G, { global: __webpack_require__(189) }); /***/ }), /* 465 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(189); var core = __webpack_require__(244); var ctx = __webpack_require__(466); var hide = __webpack_require__(468); var has = __webpack_require__(475); var PROTOTYPE = 'prototype'; var $export = function (type, name, source) { var IS_FORCED = type & $export.F; var IS_GLOBAL = type & $export.G; var IS_STATIC = type & $export.S; var IS_PROTO = type & $export.P; var IS_BIND = type & $export.B; var IS_WRAP = type & $export.W; var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); var expProto = exports[PROTOTYPE]; var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]; var key, own, out; if (IS_GLOBAL) source = name; for (key in source) { // contains in native own = !IS_FORCED && target && target[key] !== undefined; if (own && has(exports, key)) continue; // export native or passed out = own ? target[key] : source[key]; // prevent global pollution for namespaces exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] // bind timers to global for call from export context : IS_BIND && own ? ctx(out, global) // wrap global constructors for prevent change them in library : IS_WRAP && target[key] == out ? (function (C) { var F = function (a, b, c) { if (this instanceof C) { switch (arguments.length) { case 0: return new C(); case 1: return new C(a); case 2: return new C(a, b); } return new C(a, b, c); } return C.apply(this, arguments); }; F[PROTOTYPE] = C[PROTOTYPE]; return F; // make static versions for prototype methods })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% if (IS_PROTO) { (exports.virtual || (exports.virtual = {}))[key] = out; // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out); } } }; // type bitmap $export.F = 1; // forced $export.G = 2; // global $export.S = 4; // static $export.P = 8; // proto $export.B = 16; // bind $export.W = 32; // wrap $export.U = 64; // safe $export.R = 128; // real proto method for `library` module.exports = $export; /***/ }), /* 466 */ /***/ (function(module, exports, __webpack_require__) { // optional / simple context binding var aFunction = __webpack_require__(467); module.exports = function (fn, that, length) { aFunction(fn); if (that === undefined) return fn; switch (length) { case 1: return function (a) { return fn.call(that, a); }; case 2: return function (a, b) { return fn.call(that, a, b); }; case 3: return function (a, b, c) { return fn.call(that, a, b, c); }; } return function (/* ...args */) { return fn.apply(that, arguments); }; }; /***/ }), /* 467 */ /***/ (function(module, exports) { module.exports = function (it) { if (typeof it != 'function') throw TypeError(it + ' is not a function!'); return it; }; /***/ }), /* 468 */ /***/ (function(module, exports, __webpack_require__) { var dP = __webpack_require__(469); var createDesc = __webpack_require__(474); module.exports = __webpack_require__(191) ? function (object, key, value) { return dP.f(object, key, createDesc(1, value)); } : function (object, key, value) { object[key] = value; return object; }; /***/ }), /* 469 */ /***/ (function(module, exports, __webpack_require__) { var anObject = __webpack_require__(470); var IE8_DOM_DEFINE = __webpack_require__(471); var toPrimitive = __webpack_require__(473); var dP = Object.defineProperty; exports.f = __webpack_require__(191) ? Object.defineProperty : function defineProperty(O, P, Attributes) { anObject(O); P = toPrimitive(P, true); anObject(Attributes); if (IE8_DOM_DEFINE) try { return dP(O, P, Attributes); } catch (e) { /* empty */ } if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); if ('value' in Attributes) O[P] = Attributes.value; return O; }; /***/ }), /* 470 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(190); module.exports = function (it) { if (!isObject(it)) throw TypeError(it + ' is not an object!'); return it; }; /***/ }), /* 471 */ /***/ (function(module, exports, __webpack_require__) { module.exports = !__webpack_require__(191) && !__webpack_require__(245)(function () { return Object.defineProperty(__webpack_require__(472)('div'), 'a', { get: function () { return 7; } }).a != 7; }); /***/ }), /* 472 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(190); var document = __webpack_require__(189).document; // typeof document.createElement is 'object' in old IE var is = isObject(document) && isObject(document.createElement); module.exports = function (it) { return is ? document.createElement(it) : {}; }; /***/ }), /* 473 */ /***/ (function(module, exports, __webpack_require__) { // 7.1.1 ToPrimitive(input [, PreferredType]) var isObject = __webpack_require__(190); // instead of the ES6 spec version, we didn't implement @@toPrimitive case // and the second argument - flag - preferred type is a string module.exports = function (it, S) { if (!isObject(it)) return it; var fn, val; if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; throw TypeError("Can't convert object to primitive value"); }; /***/ }), /* 474 */ /***/ (function(module, exports) { module.exports = function (bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value: value }; }; /***/ }), /* 475 */ /***/ (function(module, exports) { var hasOwnProperty = {}.hasOwnProperty; module.exports = function (it, key) { return hasOwnProperty.call(it, key); }; /***/ }), /* 476 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Counter = void 0; const Helper_1 = __webpack_require__(7); class Counter { constructor(value) { this._value = 0; if (value instanceof Counter) { value = value.current; } this._value = Helper_1.Helper.nonNull(value, 0); } next() { this._value++; return this._value; } current() { return this._value; } } exports.Counter = Counter; //# sourceMappingURL=Counter.js.map /***/ }), /* 477 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DateHelper = void 0; const Helper_1 = __webpack_require__(7); let DateHelper = /** @class */ (() => { class DateHelper { /** * Formatiert ein Date-Object nach der Vorlage von der C-Funktion strftime * * @param sFormat * @param date * @param useUTC * @returns {*|void|string} */ static strftime(sFormat, date, useUTC) { useUTC = Helper_1.Helper.nonNull(useUTC, false); date = Helper_1.Helper.nonNull(date, new Date()); if (!(date instanceof Date)) date = new Date(date); let nDay = (useUTC) ? date.getUTCDay() : date.getDay(), nDate = (useUTC) ? date.getUTCDate() : date.getDate(), nMonth = (useUTC) ? date.getUTCMonth() : date.getMonth(), nYear = (useUTC) ? date.getUTCFullYear() : date.getFullYear(), nHour = (useUTC) ? date.getUTCHours() : date.getHours(), aDays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], aDaysShort = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], aMonths = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], aDayCount = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334], isLeapYear = function () { if ((nYear & 3) !== 0) return false; return nYear % 100 !== 0 || nYear % 400 === 0; }, getThursday = function () { let target = new Date(date); target.setDate(nDate - ((nDay + 6) % 7) + 3); return target; }, zeroPad = function (nNum, nPad) { return ('' + (Math.pow(10, nPad) + nNum)).slice(1); }; return sFormat.replace(/%[a-z]/gi, (sMatch) => { return { '%a': this.translate(aDaysShort[nDay]), '%A': this.translate(aDays[nDay]), '%b': this.translate(aMonths[nMonth].slice(0, 3)), '%B': this.translate(aMonths[nMonth]), '%c': date.toUTCString(), '%C': Math.floor(nYear / 100), '%d': zeroPad(nDate, 2), '%e': nDate, '%f': zeroPad(date.getTime() % 1000, 4), '%F': date.toISOString().slice(0, 10), '%G': getThursday().getFullYear(), '%g': ('' + getThursday().getFullYear()).slice(2), '%H': zeroPad(nHour, 2), '%I': zeroPad((nHour + 11) % 12 + 1, 2), '%j': zeroPad(aDayCount[nMonth] + nDate + ((nMonth > 1 && isLeapYear()) ? 1 : 0), 3), '%k': '' + nHour, '%l': (nHour + 11) % 12 + 1, '%m': zeroPad(nMonth + 1, 2), '%M': zeroPad(date.getMinutes(), 2), '%p': (nHour < 12) ? 'AM' : 'PM', '%P': (nHour < 12) ? 'am' : 'pm', '%s': Math.round(date.getTime() / 1000), '%S': zeroPad(date.getSeconds(), 2), '%u': nDay || 7, '%w': '' + nDay, '%x': date.toLocaleDateString(), '%X': date.toLocaleTimeString(), '%y': ('' + nYear).slice(2), '%Y': nYear, '%z': date.toTimeString().replace(/.+GMT([+-]\d+).+/, '$1'), '%Z': date.toTimeString().replace(/.+\((.+?)\)$/, '$1') }[sMatch] || sMatch; }); } static translate(key) { if (this.translationCallback) { return this.translationCallback(key); } return key; } static setTranslationCallback(callback) { this.translationCallback = callback; } } DateHelper.FORMAT = { ISO_TIME: "%Y-%m-%dT%H:%M%S" }; return DateHelper; })(); exports.DateHelper = DateHelper; //# sourceMappingURL=DateHelper.js.map /***/ }), /* 478 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MigrationHelper = void 0; const typeorm_1 = __webpack_require__(47); const Helper_1 = __webpack_require__(7); class MigrationHelper { static isServer() { return (typeof document !== "object"); } static addTableFromModelClass(modelClass, queryRunner) { return __awaiter(this, void 0, void 0, function* () { return yield queryRunner.createTable(this.createTableFromModelClass(modelClass)); }); } static addManyToManyTable(tableOne, tableTwo, queryRunner) { return __awaiter(this, void 0, void 0, function* () { return yield queryRunner.createTable(this.createManyToManyTable(tableOne, tableTwo)); }); } static createManyToManyTable(tableOne, tableTwo) { let fieldOne = tableOne + "Id"; let fieldTwo = tableTwo + "Id"; let name = tableOne + tableTwo.substr(0, 1).toUpperCase() + tableTwo.substr(1); let manyToManyTable = new typeorm_1.Table({ name: name, columns: [ { name: fieldOne, isPrimary: true, type: "integer" }, { name: fieldTwo, isPrimary: true, type: "integer" } ], indices: [ { name: "IDX_" + name + "_" + fieldOne, columnNames: [fieldOne] }, { name: "IDX_" + name + "_" + fieldTwo, columnNames: [fieldTwo] } ], foreignKeys: [ { name: "FK_" + name + "_" + fieldOne, columnNames: [fieldOne], referencedTableName: tableOne.replace(/([A-Z])/, (match, p1) => "_" + p1.toLowerCase()), referencedColumnNames: ["id"], onDelete: "cascade", }, { name: "FK_" + name + "_" + fieldTwo, columnNames: [fieldTwo], referencedTableName: tableTwo.replace(/([A-Z])/, (match, p1) => "_" + p1.toLowerCase()), referencedColumnNames: ["id"], onDelete: "cascade", }, ] }); return manyToManyTable; } static createTableFromModelClass(modelClass, prefix) { prefix = Helper_1.Helper.nonNull(prefix, ""); let columns = []; let indices = []; let foreignKeys = []; let schemaDefinition = modelClass.getSchemaDefinition(); let tableName = prefix + Helper_1.Helper.toSnakeCase(schemaDefinition.name); Object.keys(schemaDefinition.columns).forEach(column => { let columnConfig = {}; Object.keys(schemaDefinition.columns[column]).forEach(key => { columnConfig[key] = schemaDefinition.columns[column][key]; }); columnConfig["name"] = column; if (schemaDefinition.columns[column].primary) { columnConfig["isPrimary"] = true; } if (schemaDefinition.columns[column].nullable) { columnConfig["isNullable"] = true; } if (schemaDefinition.columns[column].generated) { //If it is not EasySyncBaseModel or server if (Helper_1.Helper.isNull(modelClass.CAN_BE_SYNCED) || this.isServer() || column === "clientId") { columnConfig["isGenerated"] = true; columnConfig["generationStrategy"] = "increment"; if (!this.isServer()) { columnConfig["type"] = "INTEGER"; } } } if (typeof columnConfig["default"] === "string") { columnConfig["default"] = "'" + columnConfig["default"] + "'"; } else if (columnConfig["default"] === true) { columnConfig["default"] = 1; } else if (columnConfig["default"] === false) { columnConfig["default"] = 0; } if (columnConfig["type"] === MigrationHelper.TYPES.SIMPLE_JSON) { columnConfig["type"] = MigrationHelper.TYPES.TEXT; } if (columnConfig["type"] === MigrationHelper.TYPES.MEDIUMTEXT && !this.isServer()) { columnConfig["type"] = MigrationHelper.TYPES.TEXT; } if (columnConfig["type"] === MigrationHelper.TYPES.SIMPLE_JSON && !this.isServer()) { columnConfig["type"] = MigrationHelper.TYPES.TEXT; } columns.push(columnConfig); }); Object.keys(schemaDefinition.relations).forEach(relation => { if (schemaDefinition.relations[relation].type === "many-to-one" || schemaDefinition.relations[relation].joinColumn) { // let columnName = Helper.toSnakeCase(relation) + "Id"; let columnName = relation.substr(0, 1).toLowerCase() + relation.substr(1) + "Id"; let columnConfig = { name: columnName, type: MigrationHelper.TYPES.INTEGER, isNullable: true }; columns.push(columnConfig); let indexConfig = { name: "IDX_" + tableName + "_" + columnName, columnNames: [columnName] }; indices.push(indexConfig); let foreignKeyConfig = { name: "FK_" + tableName + "_" + columnName, columnNames: [columnName], referencedTableName: Helper_1.Helper.toSnakeCase(schemaDefinition.relations[relation].target), referencedColumnNames: ["id"] }; foreignKeys.push(foreignKeyConfig); } }); return new typeorm_1.Table({ name: tableName, columns: columns, indices: indices, foreignKeys: foreignKeys }); } static updateModel(queryRunner, newModel) { return __awaiter(this, void 0, void 0, function* () { let schemaDefinition = newModel.getSchemaDefinition(); let tableName = Helper_1.Helper.toSnakeCase(schemaDefinition.name); let newTable = this.createTableFromModelClass(newModel); let table = yield queryRunner.getTable(tableName); table.name = "__temp__" + table.name; table.indices.forEach(index => { index.name = "__temp__" + index.name; }); table.foreignKeys.forEach(key => { key.name = "__temp__" + key.name; key.columnNames = [key.columnNames[0]]; key.referencedColumnNames = [key.referencedColumnNames[0]]; }); if (MigrationHelper.isServer()) { table.columns.forEach(column => { if (column.default !== null && typeof column.default === "string" && column.default.startsWith("'") && column.default.endsWith("'") && (column.type !== "varchar" || column.default.startsWith("''"))) { column.default = column.default.substring(1, column.default.length - 1); } }); } yield queryRunner.createTable(table); let names = []; table.columns.forEach(column => { names.push(column.name); }); yield queryRunner.query("INSERT INTO " + table.name + "(`" + names.join("`,`") + "`) SELECT `" + names.join("`,`") + "` FROM " + tableName + ";"); yield queryRunner.query("DROP TABLE " + tableName + ";"); yield queryRunner.createTable(newTable); let newColumnNames = []; newTable.columns.forEach(column => newColumnNames.push(column.name)); names = []; table.columns.forEach(column => { if (newColumnNames.indexOf(column.name) !== -1) { names.push(column.name); } }); yield queryRunner.query("INSERT INTO " + tableName + "(`" + names.join("`,`") + "`) SELECT `" + names.join("`,`") + "` FROM " + table.name + ";"); yield queryRunner.query("DROP TABLE " + table.name + ";"); }); } } exports.MigrationHelper = MigrationHelper; MigrationHelper.TYPES = { INTEGER: "int", FLOAT: "float", DATE: "datetime", STRING: "varchar", TEXT: "text", MEDIUMTEXT: "mediumtext", BOOLEAN: "boolean", JSON: "json", SIMPLE_JSON: "simple-json", MY_JSON: "my-json" }; //# sourceMappingURL=MigrationHelper.js.map /***/ }), /* 479 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process, global) {/*! ***************************************************************************** Copyright (C) Microsoft. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ var Reflect; (function (Reflect) { // Metadata Proposal // https://rbuckton.github.io/reflect-metadata/ (function (factory) { var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : Function("return this;")(); var exporter = makeExporter(Reflect); if (typeof root.Reflect === "undefined") { root.Reflect = Reflect; } else { exporter = makeExporter(root.Reflect, exporter); } factory(exporter); function makeExporter(target, previous) { return function (key, value) { if (typeof target[key] !== "function") { Object.defineProperty(target, key, { configurable: true, writable: true, value: value }); } if (previous) previous(key, value); }; } })(function (exporter) { var hasOwn = Object.prototype.hasOwnProperty; // feature test for Symbol support var supportsSymbol = typeof Symbol === "function"; var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== "undefined" ? Symbol.toPrimitive : "@@toPrimitive"; var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== "undefined" ? Symbol.iterator : "@@iterator"; var supportsCreate = typeof Object.create === "function"; // feature test for Object.create support var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support var downLevel = !supportsCreate && !supportsProto; var HashMap = { // create an object in dictionary mode (a.k.a. "slow" mode in v8) create: supportsCreate ? function () { return MakeDictionary(Object.create(null)); } : supportsProto ? function () { return MakeDictionary({ __proto__: null }); } : function () { return MakeDictionary({}); }, has: downLevel ? function (map, key) { return hasOwn.call(map, key); } : function (map, key) { return key in map; }, get: downLevel ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; } : function (map, key) { return map[key]; }, }; // Load global or shim versions of Map, Set, and WeakMap var functionPrototype = Object.getPrototypeOf(Function); var usePolyfill = typeof process === "object" && process.env && process.env["REFLECT_METADATA_USE_MAP_POLYFILL"] === "true"; var _Map = !usePolyfill && typeof Map === "function" && typeof Map.prototype.entries === "function" ? Map : CreateMapPolyfill(); var _Set = !usePolyfill && typeof Set === "function" && typeof Set.prototype.entries === "function" ? Set : CreateSetPolyfill(); var _WeakMap = !usePolyfill && typeof WeakMap === "function" ? WeakMap : CreateWeakMapPolyfill(); // [[Metadata]] internal slot // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots var Metadata = new _WeakMap(); /** * Applies a set of decorators to a property of a target object. * @param decorators An array of decorators. * @param target The target object. * @param propertyKey (Optional) The property key to decorate. * @param attributes (Optional) The property descriptor for the target key. * @remarks Decorators are applied in reverse order. * @example * * class Example { * // property declarations are not part of ES6, though they are valid in TypeScript: * // static staticProperty; * // property; * * constructor(p) { } * static staticMethod(p) { } * method(p) { } * } * * // constructor * Example = Reflect.decorate(decoratorsArray, Example); * * // property (on constructor) * Reflect.decorate(decoratorsArray, Example, "staticProperty"); * * // property (on prototype) * Reflect.decorate(decoratorsArray, Example.prototype, "property"); * * // method (on constructor) * Object.defineProperty(Example, "staticMethod", * Reflect.decorate(decoratorsArray, Example, "staticMethod", * Object.getOwnPropertyDescriptor(Example, "staticMethod"))); * * // method (on prototype) * Object.defineProperty(Example.prototype, "method", * Reflect.decorate(decoratorsArray, Example.prototype, "method", * Object.getOwnPropertyDescriptor(Example.prototype, "method"))); * */ function decorate(decorators, target, propertyKey, attributes) { if (!IsUndefined(propertyKey)) { if (!IsArray(decorators)) throw new TypeError(); if (!IsObject(target)) throw new TypeError(); if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes)) throw new TypeError(); if (IsNull(attributes)) attributes = undefined; propertyKey = ToPropertyKey(propertyKey); return DecorateProperty(decorators, target, propertyKey, attributes); } else { if (!IsArray(decorators)) throw new TypeError(); if (!IsConstructor(target)) throw new TypeError(); return DecorateConstructor(decorators, target); } } exporter("decorate", decorate); // 4.1.2 Reflect.metadata(metadataKey, metadataValue) // https://rbuckton.github.io/reflect-metadata/#reflect.metadata /** * A default metadata decorator factory that can be used on a class, class member, or parameter. * @param metadataKey The key for the metadata entry. * @param metadataValue The value for the metadata entry. * @returns A decorator function. * @remarks * If `metadataKey` is already defined for the target and target key, the * metadataValue for that key will be overwritten. * @example * * // constructor * @Reflect.metadata(key, value) * class Example { * } * * // property (on constructor, TypeScript only) * class Example { * @Reflect.metadata(key, value) * static staticProperty; * } * * // property (on prototype, TypeScript only) * class Example { * @Reflect.metadata(key, value) * property; * } * * // method (on constructor) * class Example { * @Reflect.metadata(key, value) * static staticMethod() { } * } * * // method (on prototype) * class Example { * @Reflect.metadata(key, value) * method() { } * } * */ function metadata(metadataKey, metadataValue) { function decorator(target, propertyKey) { if (!IsObject(target)) throw new TypeError(); if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey)) throw new TypeError(); OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey); } return decorator; } exporter("metadata", metadata); /** * Define a unique metadata entry on the target. * @param metadataKey A key used to store and retrieve metadata. * @param metadataValue A value that contains attached metadata. * @param target The target object on which to define metadata. * @param propertyKey (Optional) The property key for the target. * @example * * class Example { * // property declarations are not part of ES6, though they are valid in TypeScript: * // static staticProperty; * // property; * * constructor(p) { } * static staticMethod(p) { } * method(p) { } * } * * // constructor * Reflect.defineMetadata("custom:annotation", options, Example); * * // property (on constructor) * Reflect.defineMetadata("custom:annotation", options, Example, "staticProperty"); * * // property (on prototype) * Reflect.defineMetadata("custom:annotation", options, Example.prototype, "property"); * * // method (on constructor) * Reflect.defineMetadata("custom:annotation", options, Example, "staticMethod"); * * // method (on prototype) * Reflect.defineMetadata("custom:annotation", options, Example.prototype, "method"); * * // decorator factory as metadata-producing annotation. * function MyAnnotation(options): Decorator { * return (target, key?) => Reflect.defineMetadata("custom:annotation", options, target, key); * } * */ function defineMetadata(metadataKey, metadataValue, target, propertyKey) { if (!IsObject(target)) throw new TypeError(); if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey); return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey); } exporter("defineMetadata", defineMetadata); /** * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined. * @param metadataKey A key used to store and retrieve metadata. * @param target The target object on which the metadata is defined. * @param propertyKey (Optional) The property key for the target. * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`. * @example * * class Example { * // property declarations are not part of ES6, though they are valid in TypeScript: * // static staticProperty; * // property; * * constructor(p) { } * static staticMethod(p) { } * method(p) { } * } * * // constructor * result = Reflect.hasMetadata("custom:annotation", Example); * * // property (on constructor) * result = Reflect.hasMetadata("custom:annotation", Example, "staticProperty"); * * // property (on prototype) * result = Reflect.hasMetadata("custom:annotation", Example.prototype, "property"); * * // method (on constructor) * result = Reflect.hasMetadata("custom:annotation", Example, "staticMethod"); * * // method (on prototype) * result = Reflect.hasMetadata("custom:annotation", Example.prototype, "method"); * */ function hasMetadata(metadataKey, target, propertyKey) { if (!IsObject(target)) throw new TypeError(); if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey); return OrdinaryHasMetadata(metadataKey, target, propertyKey); } exporter("hasMetadata", hasMetadata); /** * Gets a value indicating whether the target object has the provided metadata key defined. * @param metadataKey A key used to store and retrieve metadata. * @param target The target object on which the metadata is defined. * @param propertyKey (Optional) The property key for the target. * @returns `true` if the metadata key was defined on the target object; otherwise, `false`. * @example * * class Example { * // property declarations are not part of ES6, though they are valid in TypeScript: * // static staticProperty; * // property; * * constructor(p) { } * static staticMethod(p) { } * method(p) { } * } * * // constructor * result = Reflect.hasOwnMetadata("custom:annotation", Example); * * // property (on constructor) * result = Reflect.hasOwnMetadata("custom:annotation", Example, "staticProperty"); * * // property (on prototype) * result = Reflect.hasOwnMetadata("custom:annotation", Example.prototype, "property"); * * // method (on constructor) * result = Reflect.hasOwnMetadata("custom:annotation", Example, "staticMethod"); * * // method (on prototype) * result = Reflect.hasOwnMetadata("custom:annotation", Example.prototype, "method"); * */ function hasOwnMetadata(metadataKey, target, propertyKey) { if (!IsObject(target)) throw new TypeError(); if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey); return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey); } exporter("hasOwnMetadata", hasOwnMetadata); /** * Gets the metadata value for the provided metadata key on the target object or its prototype chain. * @param metadataKey A key used to store and retrieve metadata. * @param target The target object on which the metadata is defined. * @param propertyKey (Optional) The property key for the target. * @returns The metadata value for the metadata key if found; otherwise, `undefined`. * @example * * class Example { * // property declarations are not part of ES6, though they are valid in TypeScript: * // static staticProperty; * // property; * * constructor(p) { } * static staticMethod(p) { } * method(p) { } * } * * // constructor * result = Reflect.getMetadata("custom:annotation", Example); * * // property (on constructor) * result = Reflect.getMetadata("custom:annotation", Example, "staticProperty"); * * // property (on prototype) * result = Reflect.getMetadata("custom:annotation", Example.prototype, "property"); * * // method (on constructor) * result = Reflect.getMetadata("custom:annotation", Example, "staticMethod"); * * // method (on prototype) * result = Reflect.getMetadata("custom:annotation", Example.prototype, "method"); * */ function getMetadata(metadataKey, target, propertyKey) { if (!IsObject(target)) throw new TypeError(); if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey); return OrdinaryGetMetadata(metadataKey, target, propertyKey); } exporter("getMetadata", getMetadata); /** * Gets the metadata value for the provided metadata key on the target object. * @param metadataKey A key used to store and retrieve metadata. * @param target The target object on which the metadata is defined. * @param propertyKey (Optional) The property key for the target. * @returns The metadata value for the metadata key if found; otherwise, `undefined`. * @example * * class Example { * // property declarations are not part of ES6, though they are valid in TypeScript: * // static staticProperty; * // property; * * constructor(p) { } * static staticMethod(p) { } * method(p) { } * } * * // constructor * result = Reflect.getOwnMetadata("custom:annotation", Example); * * // property (on constructor) * result = Reflect.getOwnMetadata("custom:annotation", Example, "staticProperty"); * * // property (on prototype) * result = Reflect.getOwnMetadata("custom:annotation", Example.prototype, "property"); * * // method (on constructor) * result = Reflect.getOwnMetadata("custom:annotation", Example, "staticMethod"); * * // method (on prototype) * result = Reflect.getOwnMetadata("custom:annotation", Example.prototype, "method"); * */ function getOwnMetadata(metadataKey, target, propertyKey) { if (!IsObject(target)) throw new TypeError(); if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey); return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey); } exporter("getOwnMetadata", getOwnMetadata); /** * Gets the metadata keys defined on the target object or its prototype chain. * @param target The target object on which the metadata is defined. * @param propertyKey (Optional) The property key for the target. * @returns An array of unique metadata keys. * @example * * class Example { * // property declarations are not part of ES6, though they are valid in TypeScript: * // static staticProperty; * // property; * * constructor(p) { } * static staticMethod(p) { } * method(p) { } * } * * // constructor * result = Reflect.getMetadataKeys(Example); * * // property (on constructor) * result = Reflect.getMetadataKeys(Example, "staticProperty"); * * // property (on prototype) * result = Reflect.getMetadataKeys(Example.prototype, "property"); * * // method (on constructor) * result = Reflect.getMetadataKeys(Example, "staticMethod"); * * // method (on prototype) * result = Reflect.getMetadataKeys(Example.prototype, "method"); * */ function getMetadataKeys(target, propertyKey) { if (!IsObject(target)) throw new TypeError(); if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey); return OrdinaryMetadataKeys(target, propertyKey); } exporter("getMetadataKeys", getMetadataKeys); /** * Gets the unique metadata keys defined on the target object. * @param target The target object on which the metadata is defined. * @param propertyKey (Optional) The property key for the target. * @returns An array of unique metadata keys. * @example * * class Example { * // property declarations are not part of ES6, though they are valid in TypeScript: * // static staticProperty; * // property; * * constructor(p) { } * static staticMethod(p) { } * method(p) { } * } * * // constructor * result = Reflect.getOwnMetadataKeys(Example); * * // property (on constructor) * result = Reflect.getOwnMetadataKeys(Example, "staticProperty"); * * // property (on prototype) * result = Reflect.getOwnMetadataKeys(Example.prototype, "property"); * * // method (on constructor) * result = Reflect.getOwnMetadataKeys(Example, "staticMethod"); * * // method (on prototype) * result = Reflect.getOwnMetadataKeys(Example.prototype, "method"); * */ function getOwnMetadataKeys(target, propertyKey) { if (!IsObject(target)) throw new TypeError(); if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey); return OrdinaryOwnMetadataKeys(target, propertyKey); } exporter("getOwnMetadataKeys", getOwnMetadataKeys); /** * Deletes the metadata entry from the target object with the provided key. * @param metadataKey A key used to store and retrieve metadata. * @param target The target object on which the metadata is defined. * @param propertyKey (Optional) The property key for the target. * @returns `true` if the metadata entry was found and deleted; otherwise, false. * @example * * class Example { * // property declarations are not part of ES6, though they are valid in TypeScript: * // static staticProperty; * // property; * * constructor(p) { } * static staticMethod(p) { } * method(p) { } * } * * // constructor * result = Reflect.deleteMetadata("custom:annotation", Example); * * // property (on constructor) * result = Reflect.deleteMetadata("custom:annotation", Example, "staticProperty"); * * // property (on prototype) * result = Reflect.deleteMetadata("custom:annotation", Example.prototype, "property"); * * // method (on constructor) * result = Reflect.deleteMetadata("custom:annotation", Example, "staticMethod"); * * // method (on prototype) * result = Reflect.deleteMetadata("custom:annotation", Example.prototype, "method"); * */ function deleteMetadata(metadataKey, target, propertyKey) { if (!IsObject(target)) throw new TypeError(); if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey); var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/ false); if (IsUndefined(metadataMap)) return false; if (!metadataMap.delete(metadataKey)) return false; if (metadataMap.size > 0) return true; var targetMetadata = Metadata.get(target); targetMetadata.delete(propertyKey); if (targetMetadata.size > 0) return true; Metadata.delete(target); return true; } exporter("deleteMetadata", deleteMetadata); function DecorateConstructor(decorators, target) { for (var i = decorators.length - 1; i >= 0; --i) { var decorator = decorators[i]; var decorated = decorator(target); if (!IsUndefined(decorated) && !IsNull(decorated)) { if (!IsConstructor(decorated)) throw new TypeError(); target = decorated; } } return target; } function DecorateProperty(decorators, target, propertyKey, descriptor) { for (var i = decorators.length - 1; i >= 0; --i) { var decorator = decorators[i]; var decorated = decorator(target, propertyKey, descriptor); if (!IsUndefined(decorated) && !IsNull(decorated)) { if (!IsObject(decorated)) throw new TypeError(); descriptor = decorated; } } return descriptor; } function GetOrCreateMetadataMap(O, P, Create) { var targetMetadata = Metadata.get(O); if (IsUndefined(targetMetadata)) { if (!Create) return undefined; targetMetadata = new _Map(); Metadata.set(O, targetMetadata); } var metadataMap = targetMetadata.get(P); if (IsUndefined(metadataMap)) { if (!Create) return undefined; metadataMap = new _Map(); targetMetadata.set(P, metadataMap); } return metadataMap; } // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P) // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata function OrdinaryHasMetadata(MetadataKey, O, P) { var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P); if (hasOwn) return true; var parent = OrdinaryGetPrototypeOf(O); if (!IsNull(parent)) return OrdinaryHasMetadata(MetadataKey, parent, P); return false; } // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P) // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata function OrdinaryHasOwnMetadata(MetadataKey, O, P) { var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false); if (IsUndefined(metadataMap)) return false; return ToBoolean(metadataMap.has(MetadataKey)); } // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P) // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata function OrdinaryGetMetadata(MetadataKey, O, P) { var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P); if (hasOwn) return OrdinaryGetOwnMetadata(MetadataKey, O, P); var parent = OrdinaryGetPrototypeOf(O); if (!IsNull(parent)) return OrdinaryGetMetadata(MetadataKey, parent, P); return undefined; } // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P) // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata function OrdinaryGetOwnMetadata(MetadataKey, O, P) { var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false); if (IsUndefined(metadataMap)) return undefined; return metadataMap.get(MetadataKey); } // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) { var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true); metadataMap.set(MetadataKey, MetadataValue); } // 3.1.6.1 OrdinaryMetadataKeys(O, P) // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys function OrdinaryMetadataKeys(O, P) { var ownKeys = OrdinaryOwnMetadataKeys(O, P); var parent = OrdinaryGetPrototypeOf(O); if (parent === null) return ownKeys; var parentKeys = OrdinaryMetadataKeys(parent, P); if (parentKeys.length <= 0) return ownKeys; if (ownKeys.length <= 0) return parentKeys; var set = new _Set(); var keys = []; for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) { var key = ownKeys_1[_i]; var hasKey = set.has(key); if (!hasKey) { set.add(key); keys.push(key); } } for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) { var key = parentKeys_1[_a]; var hasKey = set.has(key); if (!hasKey) { set.add(key); keys.push(key); } } return keys; } // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P) // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys function OrdinaryOwnMetadataKeys(O, P) { var keys = []; var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false); if (IsUndefined(metadataMap)) return keys; var keysObj = metadataMap.keys(); var iterator = GetIterator(keysObj); var k = 0; while (true) { var next = IteratorStep(iterator); if (!next) { keys.length = k; return keys; } var nextValue = IteratorValue(next); try { keys[k] = nextValue; } catch (e) { try { IteratorClose(iterator); } finally { throw e; } } k++; } } // 6 ECMAScript Data Typ0es and Values // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values function Type(x) { if (x === null) return 1 /* Null */; switch (typeof x) { case "undefined": return 0 /* Undefined */; case "boolean": return 2 /* Boolean */; case "string": return 3 /* String */; case "symbol": return 4 /* Symbol */; case "number": return 5 /* Number */; case "object": return x === null ? 1 /* Null */ : 6 /* Object */; default: return 6 /* Object */; } } // 6.1.1 The Undefined Type // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type function IsUndefined(x) { return x === undefined; } // 6.1.2 The Null Type // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type function IsNull(x) { return x === null; } // 6.1.5 The Symbol Type // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type function IsSymbol(x) { return typeof x === "symbol"; } // 6.1.7 The Object Type // https://tc39.github.io/ecma262/#sec-object-type function IsObject(x) { return typeof x === "object" ? x !== null : typeof x === "function"; } // 7.1 Type Conversion // https://tc39.github.io/ecma262/#sec-type-conversion // 7.1.1 ToPrimitive(input [, PreferredType]) // https://tc39.github.io/ecma262/#sec-toprimitive function ToPrimitive(input, PreferredType) { switch (Type(input)) { case 0 /* Undefined */: return input; case 1 /* Null */: return input; case 2 /* Boolean */: return input; case 3 /* String */: return input; case 4 /* Symbol */: return input; case 5 /* Number */: return input; } var hint = PreferredType === 3 /* String */ ? "string" : PreferredType === 5 /* Number */ ? "number" : "default"; var exoticToPrim = GetMethod(input, toPrimitiveSymbol); if (exoticToPrim !== undefined) { var result = exoticToPrim.call(input, hint); if (IsObject(result)) throw new TypeError(); return result; } return OrdinaryToPrimitive(input, hint === "default" ? "number" : hint); } // 7.1.1.1 OrdinaryToPrimitive(O, hint) // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive function OrdinaryToPrimitive(O, hint) { if (hint === "string") { var toString_1 = O.toString; if (IsCallable(toString_1)) { var result = toString_1.call(O); if (!IsObject(result)) return result; } var valueOf = O.valueOf; if (IsCallable(valueOf)) { var result = valueOf.call(O); if (!IsObject(result)) return result; } } else { var valueOf = O.valueOf; if (IsCallable(valueOf)) { var result = valueOf.call(O); if (!IsObject(result)) return result; } var toString_2 = O.toString; if (IsCallable(toString_2)) { var result = toString_2.call(O); if (!IsObject(result)) return result; } } throw new TypeError(); } // 7.1.2 ToBoolean(argument) // https://tc39.github.io/ecma262/2016/#sec-toboolean function ToBoolean(argument) { return !!argument; } // 7.1.12 ToString(argument) // https://tc39.github.io/ecma262/#sec-tostring function ToString(argument) { return "" + argument; } // 7.1.14 ToPropertyKey(argument) // https://tc39.github.io/ecma262/#sec-topropertykey function ToPropertyKey(argument) { var key = ToPrimitive(argument, 3 /* String */); if (IsSymbol(key)) return key; return ToString(key); } // 7.2 Testing and Comparison Operations // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations // 7.2.2 IsArray(argument) // https://tc39.github.io/ecma262/#sec-isarray function IsArray(argument) { return Array.isArray ? Array.isArray(argument) : argument instanceof Object ? argument instanceof Array : Object.prototype.toString.call(argument) === "[object Array]"; } // 7.2.3 IsCallable(argument) // https://tc39.github.io/ecma262/#sec-iscallable function IsCallable(argument) { // NOTE: This is an approximation as we cannot check for [[Call]] internal method. return typeof argument === "function"; } // 7.2.4 IsConstructor(argument) // https://tc39.github.io/ecma262/#sec-isconstructor function IsConstructor(argument) { // NOTE: This is an approximation as we cannot check for [[Construct]] internal method. return typeof argument === "function"; } // 7.2.7 IsPropertyKey(argument) // https://tc39.github.io/ecma262/#sec-ispropertykey function IsPropertyKey(argument) { switch (Type(argument)) { case 3 /* String */: return true; case 4 /* Symbol */: return true; default: return false; } } // 7.3 Operations on Objects // https://tc39.github.io/ecma262/#sec-operations-on-objects // 7.3.9 GetMethod(V, P) // https://tc39.github.io/ecma262/#sec-getmethod function GetMethod(V, P) { var func = V[P]; if (func === undefined || func === null) return undefined; if (!IsCallable(func)) throw new TypeError(); return func; } // 7.4 Operations on Iterator Objects // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects function GetIterator(obj) { var method = GetMethod(obj, iteratorSymbol); if (!IsCallable(method)) throw new TypeError(); // from Call var iterator = method.call(obj); if (!IsObject(iterator)) throw new TypeError(); return iterator; } // 7.4.4 IteratorValue(iterResult) // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue function IteratorValue(iterResult) { return iterResult.value; } // 7.4.5 IteratorStep(iterator) // https://tc39.github.io/ecma262/#sec-iteratorstep function IteratorStep(iterator) { var result = iterator.next(); return result.done ? false : result; } // 7.4.6 IteratorClose(iterator, completion) // https://tc39.github.io/ecma262/#sec-iteratorclose function IteratorClose(iterator) { var f = iterator["return"]; if (f) f.call(iterator); } // 9.1 Ordinary Object Internal Methods and Internal Slots // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots // 9.1.1.1 OrdinaryGetPrototypeOf(O) // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof function OrdinaryGetPrototypeOf(O) { var proto = Object.getPrototypeOf(O); if (typeof O !== "function" || O === functionPrototype) return proto; // TypeScript doesn't set __proto__ in ES5, as it's non-standard. // Try to determine the superclass constructor. Compatible implementations // must either set __proto__ on a subclass constructor to the superclass constructor, // or ensure each class has a valid `constructor` property on its prototype that // points back to the constructor. // If this is not the same as Function.[[Prototype]], then this is definately inherited. // This is the case when in ES6 or when using __proto__ in a compatible browser. if (proto !== functionPrototype) return proto; // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage. var prototype = O.prototype; var prototypeProto = prototype && Object.getPrototypeOf(prototype); if (prototypeProto == null || prototypeProto === Object.prototype) return proto; // If the constructor was not a function, then we cannot determine the heritage. var constructor = prototypeProto.constructor; if (typeof constructor !== "function") return proto; // If we have some kind of self-reference, then we cannot determine the heritage. if (constructor === O) return proto; // we have a pretty good guess at the heritage. return constructor; } // naive Map shim function CreateMapPolyfill() { var cacheSentinel = {}; var arraySentinel = []; var MapIterator = /** @class */ (function () { function MapIterator(keys, values, selector) { this._index = 0; this._keys = keys; this._values = values; this._selector = selector; } MapIterator.prototype["@@iterator"] = function () { return this; }; MapIterator.prototype[iteratorSymbol] = function () { return this; }; MapIterator.prototype.next = function () { var index = this._index; if (index >= 0 && index < this._keys.length) { var result = this._selector(this._keys[index], this._values[index]); if (index + 1 >= this._keys.length) { this._index = -1; this._keys = arraySentinel; this._values = arraySentinel; } else { this._index++; } return { value: result, done: false }; } return { value: undefined, done: true }; }; MapIterator.prototype.throw = function (error) { if (this._index >= 0) { this._index = -1; this._keys = arraySentinel; this._values = arraySentinel; } throw error; }; MapIterator.prototype.return = function (value) { if (this._index >= 0) { this._index = -1; this._keys = arraySentinel; this._values = arraySentinel; } return { value: value, done: true }; }; return MapIterator; }()); return /** @class */ (function () { function Map() { this._keys = []; this._values = []; this._cacheKey = cacheSentinel; this._cacheIndex = -2; } Object.defineProperty(Map.prototype, "size", { get: function () { return this._keys.length; }, enumerable: true, configurable: true }); Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; }; Map.prototype.get = function (key) { var index = this._find(key, /*insert*/ false); return index >= 0 ? this._values[index] : undefined; }; Map.prototype.set = function (key, value) { var index = this._find(key, /*insert*/ true); this._values[index] = value; return this; }; Map.prototype.delete = function (key) { var index = this._find(key, /*insert*/ false); if (index >= 0) { var size = this._keys.length; for (var i = index + 1; i < size; i++) { this._keys[i - 1] = this._keys[i]; this._values[i - 1] = this._values[i]; } this._keys.length--; this._values.length--; if (key === this._cacheKey) { this._cacheKey = cacheSentinel; this._cacheIndex = -2; } return true; } return false; }; Map.prototype.clear = function () { this._keys.length = 0; this._values.length = 0; this._cacheKey = cacheSentinel; this._cacheIndex = -2; }; Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); }; Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); }; Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); }; Map.prototype["@@iterator"] = function () { return this.entries(); }; Map.prototype[iteratorSymbol] = function () { return this.entries(); }; Map.prototype._find = function (key, insert) { if (this._cacheKey !== key) { this._cacheIndex = this._keys.indexOf(this._cacheKey = key); } if (this._cacheIndex < 0 && insert) { this._cacheIndex = this._keys.length; this._keys.push(key); this._values.push(undefined); } return this._cacheIndex; }; return Map; }()); function getKey(key, _) { return key; } function getValue(_, value) { return value; } function getEntry(key, value) { return [key, value]; } } // naive Set shim function CreateSetPolyfill() { return /** @class */ (function () { function Set() { this._map = new _Map(); } Object.defineProperty(Set.prototype, "size", { get: function () { return this._map.size; }, enumerable: true, configurable: true }); Set.prototype.has = function (value) { return this._map.has(value); }; Set.prototype.add = function (value) { return this._map.set(value, value), this; }; Set.prototype.delete = function (value) { return this._map.delete(value); }; Set.prototype.clear = function () { this._map.clear(); }; Set.prototype.keys = function () { return this._map.keys(); }; Set.prototype.values = function () { return this._map.values(); }; Set.prototype.entries = function () { return this._map.entries(); }; Set.prototype["@@iterator"] = function () { return this.keys(); }; Set.prototype[iteratorSymbol] = function () { return this.keys(); }; return Set; }()); } // naive WeakMap shim function CreateWeakMapPolyfill() { var UUID_SIZE = 16; var keys = HashMap.create(); var rootKey = CreateUniqueKey(); return /** @class */ (function () { function WeakMap() { this._key = CreateUniqueKey(); } WeakMap.prototype.has = function (target) { var table = GetOrCreateWeakMapTable(target, /*create*/ false); return table !== undefined ? HashMap.has(table, this._key) : false; }; WeakMap.prototype.get = function (target) { var table = GetOrCreateWeakMapTable(target, /*create*/ false); return table !== undefined ? HashMap.get(table, this._key) : undefined; }; WeakMap.prototype.set = function (target, value) { var table = GetOrCreateWeakMapTable(target, /*create*/ true); table[this._key] = value; return this; }; WeakMap.prototype.delete = function (target) { var table = GetOrCreateWeakMapTable(target, /*create*/ false); return table !== undefined ? delete table[this._key] : false; }; WeakMap.prototype.clear = function () { // NOTE: not a real clear, just makes the previous data unreachable this._key = CreateUniqueKey(); }; return WeakMap; }()); function CreateUniqueKey() { var key; do key = "@@WeakMap@@" + CreateUUID(); while (HashMap.has(keys, key)); keys[key] = true; return key; } function GetOrCreateWeakMapTable(target, create) { if (!hasOwn.call(target, rootKey)) { if (!create) return undefined; Object.defineProperty(target, rootKey, { value: HashMap.create() }); } return target[rootKey]; } function FillRandomBytes(buffer, size) { for (var i = 0; i < size; ++i) buffer[i] = Math.random() * 0xff | 0; return buffer; } function GenRandomBytes(size) { if (typeof Uint8Array === "function") { if (typeof crypto !== "undefined") return crypto.getRandomValues(new Uint8Array(size)); if (typeof msCrypto !== "undefined") return msCrypto.getRandomValues(new Uint8Array(size)); return FillRandomBytes(new Uint8Array(size), size); } return FillRandomBytes(new Array(size), size); } function CreateUUID() { var data = GenRandomBytes(UUID_SIZE); // mark as random - RFC 4122 § 4.4 data[6] = data[6] & 0x4f | 0x40; data[8] = data[8] & 0xbf | 0x80; var result = ""; for (var offset = 0; offset < UUID_SIZE; ++offset) { var byte = data[offset]; if (offset === 4 || offset === 6 || offset === 8) result += "-"; if (byte < 16) result += "0"; result += byte.toString(16).toLowerCase(); } return result; } } // uses a heuristic used by v8 and chakra to force an object into dictionary mode. function MakeDictionary(obj) { obj.__ = undefined; delete obj.__; return obj; } }); })(Reflect || (Reflect = {})); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(247), __webpack_require__(193))) /***/ }), /* 480 */ /***/ (function(module, exports, __webpack_require__) { /* * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined * in FIPS PUB 180-1 * This source code is derived from sha1.js of the same repository. * The difference between SHA-0 and SHA-1 is just a bitwise rotate left * operation was added. */ var inherits = __webpack_require__(109) var Hash = __webpack_require__(110) var Buffer = __webpack_require__(97).Buffer var K = [ 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0 ] var W = new Array(80) function Sha () { this.init() this._w = W Hash.call(this, 64, 56) } inherits(Sha, Hash) Sha.prototype.init = function () { this._a = 0x67452301 this._b = 0xefcdab89 this._c = 0x98badcfe this._d = 0x10325476 this._e = 0xc3d2e1f0 return this } function rotl5 (num) { return (num << 5) | (num >>> 27) } function rotl30 (num) { return (num << 30) | (num >>> 2) } function ft (s, b, c, d) { if (s === 0) return (b & c) | ((~b) & d) if (s === 2) return (b & c) | (b & d) | (c & d) return b ^ c ^ d } Sha.prototype._update = function (M) { var W = this._w var a = this._a | 0 var b = this._b | 0 var c = this._c | 0 var d = this._d | 0 var e = this._e | 0 for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4) for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16] for (var j = 0; j < 80; ++j) { var s = ~~(j / 20) var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0 e = d d = c c = rotl30(b) b = a a = t } this._a = (a + this._a) | 0 this._b = (b + this._b) | 0 this._c = (c + this._c) | 0 this._d = (d + this._d) | 0 this._e = (e + this._e) | 0 } Sha.prototype._hash = function () { var H = Buffer.allocUnsafe(20) H.writeInt32BE(this._a | 0, 0) H.writeInt32BE(this._b | 0, 4) H.writeInt32BE(this._c | 0, 8) H.writeInt32BE(this._d | 0, 12) H.writeInt32BE(this._e | 0, 16) return H } module.exports = Sha /***/ }), /* 481 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.byteLength = byteLength exports.toByteArray = toByteArray exports.fromByteArray = fromByteArray var lookup = [] var revLookup = [] var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' for (var i = 0, len = code.length; i < len; ++i) { lookup[i] = code[i] revLookup[code.charCodeAt(i)] = i } // Support decoding URL-safe base64 strings, as Node.js does. // See: https://en.wikipedia.org/wiki/Base64#URL_applications revLookup['-'.charCodeAt(0)] = 62 revLookup['_'.charCodeAt(0)] = 63 function getLens (b64) { var len = b64.length if (len % 4 > 0) { throw new Error('Invalid string. Length must be a multiple of 4') } // Trim off extra bytes after placeholder bytes are found // See: https://github.com/beatgammit/base64-js/issues/42 var validLen = b64.indexOf('=') if (validLen === -1) validLen = len var placeHoldersLen = validLen === len ? 0 : 4 - (validLen % 4) return [validLen, placeHoldersLen] } // base64 is 4/3 + up to two characters of the original data function byteLength (b64) { var lens = getLens(b64) var validLen = lens[0] var placeHoldersLen = lens[1] return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen } function _byteLength (b64, validLen, placeHoldersLen) { return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen } function toByteArray (b64) { var tmp var lens = getLens(b64) var validLen = lens[0] var placeHoldersLen = lens[1] var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)) var curByte = 0 // if there are placeholders, only get up to the last complete 4 chars var len = placeHoldersLen > 0 ? validLen - 4 : validLen var i for (i = 0; i < len; i += 4) { tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)] arr[curByte++] = (tmp >> 16) & 0xFF arr[curByte++] = (tmp >> 8) & 0xFF arr[curByte++] = tmp & 0xFF } if (placeHoldersLen === 2) { tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4) arr[curByte++] = tmp & 0xFF } if (placeHoldersLen === 1) { tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2) arr[curByte++] = (tmp >> 8) & 0xFF arr[curByte++] = tmp & 0xFF } return arr } function tripletToBase64 (num) { return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F] } function encodeChunk (uint8, start, end) { var tmp var output = [] for (var i = start; i < end; i += 3) { tmp = ((uint8[i] << 16) & 0xFF0000) + ((uint8[i + 1] << 8) & 0xFF00) + (uint8[i + 2] & 0xFF) output.push(tripletToBase64(tmp)) } return output.join('') } function fromByteArray (uint8) { var tmp var len = uint8.length var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes var parts = [] var maxChunkLength = 16383 // must be multiple of 3 // go through the array every three bytes, we'll deal with trailing stuff later for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) } // pad the end with zeros, but make sure to not forget the extra bytes if (extraBytes === 1) { tmp = uint8[len - 1] parts.push( lookup[tmp >> 2] + lookup[(tmp << 4) & 0x3F] + '==' ) } else if (extraBytes === 2) { tmp = (uint8[len - 2] << 8) + uint8[len - 1] parts.push( lookup[tmp >> 10] + lookup[(tmp >> 4) & 0x3F] + lookup[(tmp << 2) & 0x3F] + '=' ) } return parts.join('') } /***/ }), /* 482 */ /***/ (function(module, exports) { /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ exports.read = function (buffer, offset, isLE, mLen, nBytes) { var e, m var eLen = (nBytes * 8) - mLen - 1 var eMax = (1 << eLen) - 1 var eBias = eMax >> 1 var nBits = -7 var i = isLE ? (nBytes - 1) : 0 var d = isLE ? -1 : 1 var s = buffer[offset + i] i += d e = s & ((1 << (-nBits)) - 1) s >>= (-nBits) nBits += eLen for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {} m = e & ((1 << (-nBits)) - 1) e >>= (-nBits) nBits += mLen for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {} if (e === 0) { e = 1 - eBias } else if (e === eMax) { return m ? NaN : ((s ? -1 : 1) * Infinity) } else { m = m + Math.pow(2, mLen) e = e - eBias } return (s ? -1 : 1) * m * Math.pow(2, e - mLen) } exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { var e, m, c var eLen = (nBytes * 8) - mLen - 1 var eMax = (1 << eLen) - 1 var eBias = eMax >> 1 var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) var i = isLE ? 0 : (nBytes - 1) var d = isLE ? 1 : -1 var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 value = Math.abs(value) if (isNaN(value) || value === Infinity) { m = isNaN(value) ? 1 : 0 e = eMax } else { e = Math.floor(Math.log(value) / Math.LN2) if (value * (c = Math.pow(2, -e)) < 1) { e-- c *= 2 } if (e + eBias >= 1) { value += rt / c } else { value += rt * Math.pow(2, 1 - eBias) } if (value * c >= 2) { e++ c /= 2 } if (e + eBias >= eMax) { m = 0 e = eMax } else if (e + eBias >= 1) { m = ((value * c) - 1) * Math.pow(2, mLen) e = e + eBias } else { m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) e = 0 } } for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} e = (e << mLen) | m eLen += mLen for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} buffer[offset + i - d] |= s * 128 } /***/ }), /* 483 */ /***/ (function(module, exports) { var toString = {}.toString; module.exports = Array.isArray || function (arr) { return toString.call(arr) == '[object Array]'; }; /***/ }), /* 484 */ /***/ (function(module, exports, __webpack_require__) { /* * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined * in FIPS PUB 180-1 * Version 2.1a Copyright Paul Johnston 2000 - 2002. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet * Distributed under the BSD License * See http://pajhome.org.uk/crypt/md5 for details. */ var inherits = __webpack_require__(109) var Hash = __webpack_require__(110) var Buffer = __webpack_require__(97).Buffer var K = [ 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0 ] var W = new Array(80) function Sha1 () { this.init() this._w = W Hash.call(this, 64, 56) } inherits(Sha1, Hash) Sha1.prototype.init = function () { this._a = 0x67452301 this._b = 0xefcdab89 this._c = 0x98badcfe this._d = 0x10325476 this._e = 0xc3d2e1f0 return this } function rotl1 (num) { return (num << 1) | (num >>> 31) } function rotl5 (num) { return (num << 5) | (num >>> 27) } function rotl30 (num) { return (num << 30) | (num >>> 2) } function ft (s, b, c, d) { if (s === 0) return (b & c) | ((~b) & d) if (s === 2) return (b & c) | (b & d) | (c & d) return b ^ c ^ d } Sha1.prototype._update = function (M) { var W = this._w var a = this._a | 0 var b = this._b | 0 var c = this._c | 0 var d = this._d | 0 var e = this._e | 0 for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4) for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]) for (var j = 0; j < 80; ++j) { var s = ~~(j / 20) var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0 e = d d = c c = rotl30(b) b = a a = t } this._a = (a + this._a) | 0 this._b = (b + this._b) | 0 this._c = (c + this._c) | 0 this._d = (d + this._d) | 0 this._e = (e + this._e) | 0 } Sha1.prototype._hash = function () { var H = Buffer.allocUnsafe(20) H.writeInt32BE(this._a | 0, 0) H.writeInt32BE(this._b | 0, 4) H.writeInt32BE(this._c | 0, 8) H.writeInt32BE(this._d | 0, 12) H.writeInt32BE(this._e | 0, 16) return H } module.exports = Sha1 /***/ }), /* 485 */ /***/ (function(module, exports, __webpack_require__) { /** * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined * in FIPS 180-2 * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet * */ var inherits = __webpack_require__(109) var Sha256 = __webpack_require__(248) var Hash = __webpack_require__(110) var Buffer = __webpack_require__(97).Buffer var W = new Array(64) function Sha224 () { this.init() this._w = W // new Array(64) Hash.call(this, 64, 56) } inherits(Sha224, Sha256) Sha224.prototype.init = function () { this._a = 0xc1059ed8 this._b = 0x367cd507 this._c = 0x3070dd17 this._d = 0xf70e5939 this._e = 0xffc00b31 this._f = 0x68581511 this._g = 0x64f98fa7 this._h = 0xbefa4fa4 return this } Sha224.prototype._hash = function () { var H = Buffer.allocUnsafe(28) H.writeInt32BE(this._a, 0) H.writeInt32BE(this._b, 4) H.writeInt32BE(this._c, 8) H.writeInt32BE(this._d, 12) H.writeInt32BE(this._e, 16) H.writeInt32BE(this._f, 20) H.writeInt32BE(this._g, 24) return H } module.exports = Sha224 /***/ }), /* 486 */ /***/ (function(module, exports, __webpack_require__) { var inherits = __webpack_require__(109) var SHA512 = __webpack_require__(249) var Hash = __webpack_require__(110) var Buffer = __webpack_require__(97).Buffer var W = new Array(160) function Sha384 () { this.init() this._w = W Hash.call(this, 128, 112) } inherits(Sha384, SHA512) Sha384.prototype.init = function () { this._ah = 0xcbbb9d5d this._bh = 0x629a292a this._ch = 0x9159015a this._dh = 0x152fecd8 this._eh = 0x67332667 this._fh = 0x8eb44a87 this._gh = 0xdb0c2e0d this._hh = 0x47b5481d this._al = 0xc1059ed8 this._bl = 0x367cd507 this._cl = 0x3070dd17 this._dl = 0xf70e5939 this._el = 0xffc00b31 this._fl = 0x68581511 this._gl = 0x64f98fa7 this._hl = 0xbefa4fa4 return this } Sha384.prototype._hash = function () { var H = Buffer.allocUnsafe(48) function writeInt64BE (h, l, offset) { H.writeInt32BE(h, offset) H.writeInt32BE(l, offset + 4) } writeInt64BE(this._ah, this._al, 0) writeInt64BE(this._bh, this._bl, 8) writeInt64BE(this._ch, this._cl, 16) writeInt64BE(this._dh, this._dl, 24) writeInt64BE(this._eh, this._el, 32) writeInt64BE(this._fh, this._fl, 40) return H } module.exports = Sha384 /***/ }), /* 487 */ /***/ (function(module, exports, __webpack_require__) { /** * This is the common logic for both the Node.js and web browser * implementations of `debug()`. */ function setup(env) { createDebug.debug = createDebug; createDebug.default = createDebug; createDebug.coerce = coerce; createDebug.disable = disable; createDebug.enable = enable; createDebug.enabled = enabled; createDebug.humanize = __webpack_require__(488); createDebug.destroy = destroy; Object.keys(env).forEach(key => { createDebug[key] = env[key]; }); /** * The currently active debug mode names, and names to skip. */ createDebug.names = []; createDebug.skips = []; /** * Map of special "%n" handling functions, for the debug "format" argument. * * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". */ createDebug.formatters = {}; /** * Selects a color for a debug namespace * @param {String} namespace The namespace string for the for the debug instance to be colored * @return {Number|String} An ANSI color code for the given namespace * @api private */ function selectColor(namespace) { let hash = 0; for (let i = 0; i < namespace.length; i++) { hash = ((hash << 5) - hash) + namespace.charCodeAt(i); hash |= 0; // Convert to 32bit integer } return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; } createDebug.selectColor = selectColor; /** * Create a debugger with the given `namespace`. * * @param {String} namespace * @return {Function} * @api public */ function createDebug(namespace) { let prevTime; let enableOverride = null; function debug(...args) { // Disabled? if (!debug.enabled) { return; } const self = debug; // Set `diff` timestamp const curr = Number(new Date()); const ms = curr - (prevTime || curr); self.diff = ms; self.prev = prevTime; self.curr = curr; prevTime = curr; args[0] = createDebug.coerce(args[0]); if (typeof args[0] !== 'string') { // Anything else let's inspect with %O args.unshift('%O'); } // Apply any `formatters` transformations let index = 0; args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { // If we encounter an escaped % then don't increase the array index if (match === '%%') { return '%'; } index++; const formatter = createDebug.formatters[format]; if (typeof formatter === 'function') { const val = args[index]; match = formatter.call(self, val); // Now we need to remove `args[index]` since it's inlined in the `format` args.splice(index, 1); index--; } return match; }); // Apply env-specific formatting (colors, etc.) createDebug.formatArgs.call(self, args); const logFn = self.log || createDebug.log; logFn.apply(self, args); } debug.namespace = namespace; debug.useColors = createDebug.useColors(); debug.color = createDebug.selectColor(namespace); debug.extend = extend; debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. Object.defineProperty(debug, 'enabled', { enumerable: true, configurable: false, get: () => enableOverride === null ? createDebug.enabled(namespace) : enableOverride, set: v => { enableOverride = v; } }); // Env-specific initialization logic for debug instances if (typeof createDebug.init === 'function') { createDebug.init(debug); } return debug; } function extend(namespace, delimiter) { const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); newDebug.log = this.log; return newDebug; } /** * Enables a debug mode by namespaces. This can include modes * separated by a colon and wildcards. * * @param {String} namespaces * @api public */ function enable(namespaces) { createDebug.save(namespaces); createDebug.names = []; createDebug.skips = []; let i; const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); const len = split.length; for (i = 0; i < len; i++) { if (!split[i]) { // ignore empty strings continue; } namespaces = split[i].replace(/\*/g, '.*?'); if (namespaces[0] === '-') { createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); } else { createDebug.names.push(new RegExp('^' + namespaces + '$')); } } } /** * Disable debug output. * * @return {String} namespaces * @api public */ function disable() { const namespaces = [ ...createDebug.names.map(toNamespace), ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace) ].join(','); createDebug.enable(''); return namespaces; } /** * Returns true if the given mode name is enabled, false otherwise. * * @param {String} name * @return {Boolean} * @api public */ function enabled(name) { if (name[name.length - 1] === '*') { return true; } let i; let len; for (i = 0, len = createDebug.skips.length; i < len; i++) { if (createDebug.skips[i].test(name)) { return false; } } for (i = 0, len = createDebug.names.length; i < len; i++) { if (createDebug.names[i].test(name)) { return true; } } return false; } /** * Convert regexp to namespace * * @param {RegExp} regxep * @return {String} namespace * @api private */ function toNamespace(regexp) { return regexp.toString() .substring(2, regexp.toString().length - 2) .replace(/\.\*\?$/, '*'); } /** * Coerce `val`. * * @param {Mixed} val * @return {Mixed} * @api private */ function coerce(val) { if (val instanceof Error) { return val.stack || val.message; } return val; } /** * XXX DO NOT USE. This is a temporary stub function. * XXX It WILL be removed in the next major release. */ function destroy() { console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); } createDebug.enable(createDebug.load()); return createDebug; } module.exports = setup; /***/ }), /* 488 */ /***/ (function(module, exports) { /** * Helpers. */ var s = 1000; var m = s * 60; var h = m * 60; var d = h * 24; var w = d * 7; var y = d * 365.25; /** * Parse or format the given `val`. * * Options: * * - `long` verbose formatting [false] * * @param {String|Number} val * @param {Object} [options] * @throws {Error} throw an error if val is not a non-empty string or a number * @return {String|Number} * @api public */ module.exports = function(val, options) { options = options || {}; var type = typeof val; if (type === 'string' && val.length > 0) { return parse(val); } else if (type === 'number' && isFinite(val)) { return options.long ? fmtLong(val) : fmtShort(val); } throw new Error( 'val is not a non-empty string or a valid number. val=' + JSON.stringify(val) ); }; /** * Parse the given `str` and return milliseconds. * * @param {String} str * @return {Number} * @api private */ function parse(str) { str = String(str); if (str.length > 100) { return; } var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( str ); if (!match) { return; } var n = parseFloat(match[1]); var type = (match[2] || 'ms').toLowerCase(); switch (type) { case 'years': case 'year': case 'yrs': case 'yr': case 'y': return n * y; case 'weeks': case 'week': case 'w': return n * w; case 'days': case 'day': case 'd': return n * d; case 'hours': case 'hour': case 'hrs': case 'hr': case 'h': return n * h; case 'minutes': case 'minute': case 'mins': case 'min': case 'm': return n * m; case 'seconds': case 'second': case 'secs': case 'sec': case 's': return n * s; case 'milliseconds': case 'millisecond': case 'msecs': case 'msec': case 'ms': return n; default: return undefined; } } /** * Short format for `ms`. * * @param {Number} ms * @return {String} * @api private */ function fmtShort(ms) { var msAbs = Math.abs(ms); if (msAbs >= d) { return Math.round(ms / d) + 'd'; } if (msAbs >= h) { return Math.round(ms / h) + 'h'; } if (msAbs >= m) { return Math.round(ms / m) + 'm'; } if (msAbs >= s) { return Math.round(ms / s) + 's'; } return ms + 'ms'; } /** * Long format for `ms`. * * @param {Number} ms * @return {String} * @api private */ function fmtLong(ms) { var msAbs = Math.abs(ms); if (msAbs >= d) { return plural(ms, msAbs, d, 'day'); } if (msAbs >= h) { return plural(ms, msAbs, h, 'hour'); } if (msAbs >= m) { return plural(ms, msAbs, m, 'minute'); } if (msAbs >= s) { return plural(ms, msAbs, s, 'second'); } return ms + ' ms'; } /** * Pluralization helper. */ function plural(ms, msAbs, n, name) { var isPlural = msAbs >= n * 1.5; return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); } /***/ }), /* 489 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Prioritized = void 0; const Helper_1 = __webpack_require__(7); class Prioritized { constructor(promises) { this._lastPriority = 0; this._status = 0; this._lastResult = null; this._success = {}; this._highestPromise = null; promises = Helper_1.Helper.nonNull(promises, {}); this._callbacks = []; if (Array.isArray(promises)) { let tmpPromises = {}; promises.forEach((promise, i) => { tmpPromises[(i + 1) * 10] = promise; }); promises = tmpPromises; } let highestPromiseResolver = null; this._highestPromise = new Promise(resolve => { highestPromiseResolver = resolve; }); Object.keys(promises).forEach(priority => { this._success[priority] = null; promises[priority].then(res => { this._success[priority] = true; if (parseInt(priority) > this._lastPriority) { this._lastResult = res; this._lastPriority = parseInt(priority); this._callCallbacks(); if (this._checkHighest()) { this._status = 2; highestPromiseResolver(); } else { this._status = 1; } } }).catch(e => { this._success[priority] = e; if (this._checkHighest()) { this._status = 2; highestPromiseResolver(); } }); }); this._promises = promises; } _callCallbacks() { this._callbacks.forEach(callback => { callback(this._lastResult, this._lastPriority); }); } _checkHighest() { let isHighestResult = false; Object.keys(this._success).reverse().some(priority => { if (Helper_1.Helper.isNull(this._success[priority])) { //return true beendet some-schleife return true; } else if (this._success[priority] === true) { isHighestResult = true; return true; } }); return isHighestResult; } do(callback) { if (this._status < 2) { this._callbacks.push(callback); } if (this._status > 0) { callback(this._lastResult, this._lastPriority); } } highest(funcOrPromise) { return __awaiter(this, void 0, void 0, function* () { yield this._highestPromise; if (Helper_1.Helper.isNotNull(funcOrPromise)) { return Promise.resolve(this._lastResult).then(funcOrPromise); } else { return Promise.resolve(this._lastResult); } }); } first(funcOrPromise) { return __awaiter(this, void 0, void 0, function* () { if (this._status === 0) { if (Helper_1.Helper.isNotNull(funcOrPromise)) { return Promise.race(Object["values"](this._promises)).then(funcOrPromise); } else { return Promise.race(Object["values"](this._promises)); } } else { return Promise.resolve(this._lastResult); } }); } } exports.Prioritized = Prioritized; //# sourceMappingURL=Prioritized.js.map /***/ }), /* 490 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PromiseWithHandlers = void 0; class PromiseWithHandlers extends Promise { constructor(executor) { let resolver = null; let rejecter = null; super((res, rej) => { resolver = res; rejecter = rej; if (executor) { executor(resolver, rejecter); } }); this.resolver = resolver; this.rejecter = rejecter; } resolve(value) { if (this.resolver) { this.resolver(value); } } reject(value) { if (this.rejecter) { this.rejecter(value); } } } exports.PromiseWithHandlers = PromiseWithHandlers; //# sourceMappingURL=PromiseWithHandlers.js.map /***/ }), /* 491 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Random = void 0; const Helper_1 = __webpack_require__(7); let Random = /** @class */ (() => { class Random { static seedRandom(seed) { this._seed = seed; } static getRandom() { let t = this._seed += 0x6D2B79F5; t = Math.imul(t ^ t >>> 15, t | 1); t ^= t + Math.imul(t ^ t >>> 7, t | 61); return ((t ^ t >>> 14) >>> 0) / 4294967296; } static getIntRandom(maxValue) { return Math.floor(Random.getRandom() * (maxValue + 1)); } static getStringRandom(numSigns, alphabet) { alphabet = Helper_1.Helper.nonNull(alphabet, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"); let random = ""; const numAlphabet = alphabet.length - 1; for (let i = 0; i < numSigns; i++) { random += alphabet[Random.getIntRandom(numAlphabet)]; } return random; } } Random._seed = new Date().getTime(); return Random; })(); exports.Random = Random; //# sourceMappingURL=Random.js.map /***/ }), /* 492 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DragHelper = void 0; const DraggedElement_1 = __webpack_require__(253); class DragHelper { constructor() { this.startPosition = null; this.currentDraggedElement = null; window.addEventListener("mousemove", e => { if (this.currentDraggedElement) { this.dragMove({ x: e.clientX, y: e.clientY }); } }); window.addEventListener("touchmove", e => { if (this.currentDraggedElement) { this.dragMove({ x: e.touches[0].clientX, y: e.touches[0].clientY }); } }); window.addEventListener("mouseup", e => { if (e.button === 0) { this.dragStop({ x: e.clientX, y: e.clientY }); } }); window.addEventListener("touchend", e => { if (e.touches.length === 0) { this.dragStop({ x: e.changedTouches[0].clientX, y: e.changedTouches[0].clientY }); } }); } static getInstance() { if (!this.instance) { this.instance = new DragHelper(); } return this.instance; } draggable(element) { const dragElement = new DraggedElement_1.DraggedElement(element); element.addEventListener("mousedown", e => { e.preventDefault(); console.log("mousedown", e.button); if (e.button === 0) { this.dragStart({ x: e.clientX, y: e.clientY }, dragElement); } }); element.addEventListener("touchstart", e => { e.preventDefault(); if (e.touches.length === 1) { this.dragStart({ x: e.changedTouches[0].clientX, y: e.changedTouches[0].clientY }, dragElement); } }); return dragElement; } dragStart(position, draggedElement) { this.currentDraggedElement = draggedElement; this.startPosition = position; this.currentDraggedElement.start(); } dragMove(toPosition) { if (this.currentDraggedElement) { const diff = { x: toPosition.x - this.startPosition.x, y: toPosition.y - this.startPosition.y }; this.currentDraggedElement.moveRelativeTo(diff); } } dragStop(mousePos) { if (this.currentDraggedElement) { this.currentDraggedElement.stop(mousePos); this.currentDraggedElement = null; this.startPosition = null; } } } exports.DragHelper = DragHelper; //# sourceMappingURL=DragHelper.js.map /***/ }), /* 493 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HotkeyManager = void 0; class HotkeyManager { constructor() { this._keys = {}; this._callbacks = {}; this._lastCallbackId = 0; this._active = false; this.mousePosition = null; this._addListeners(); this.ignoreFormElements = false; } static isFormElement(element) { return element instanceof HTMLInputElement || element instanceof HTMLSelectElement || element instanceof HTMLTextAreaElement; } getMousePosition() { return this.mousePosition; } _addListeners() { window.addEventListener("keydown", e => { if (this.ignoreFormElements || !HotkeyManager.isFormElement(e.target)) { this._keys[e.key.toLowerCase()] = true; if (this._active) { this._checkCallbacks(e); } } }); window.addEventListener("keyup", e => { if (e.key) { this._keys[e.key.toLowerCase()] = false; } }); document.addEventListener("mousemove", e => { this.mousePosition = { x: e.clientX, y: e.clientY }; }); } activate() { this._active = true; } deactivate() { this._active = false; } addCallback(keys, callback) { this._lastCallbackId++; this._callbacks[this._lastCallbackId] = { keys: keys, callback: callback }; } isKeyPressed(key) { return this._active && this._keys[key] && this._keys[key] === true; } _checkCallbacks(e) { //TODO async forEach? Object.values(this._callbacks).forEach(callback => { // @ts-ignore if (callback.keys.every(key => this._keys[key] === true)) { // @ts-ignore callback.callback(e); } }); } removeCallback(callbackId) { delete this._callbacks[callbackId]; } } exports.HotkeyManager = HotkeyManager; //# sourceMappingURL=HotkeyManager.js.map /***/ }), /* 494 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.InputSelect = void 0; const Helper_1 = __webpack_require__(7); const ViewHelper_1 = __webpack_require__(27); class InputSelect { constructor(element, options) { this.onChangeListeners = []; if (typeof element === "string") { element = document.querySelector(element); } this.options = new Map(); this.inputElement = element; options.forEach(o => { if (typeof o === "string") { o = { value: o, label: o }; } o.selected = Helper_1.Helper.nonNull(o.selected, false); this.options.set(o.value, o); return o; }); this.buildElement(); } onChange(listener) { this.onChangeListeners.push(listener); } buildElement() { const parent = this.inputElement.parentElement; this.container = document.createElement("div"); this.container.classList.add("input-select-container"); const flexContainer = document.createElement("div"); flexContainer.classList.add("input-select-flex"); this.selectedOptionsContainer = document.createElement("span"); this.selectedOptionsContainer.classList.add("input-select-selected-options"); const classes = []; this.inputElement.classList.forEach(c => { this.container.classList.add(c); classes.push(c); }); this.inputElement.classList.remove(...classes); this.inputElement.classList.add("input-select-input"); this.optionsContainer = document.createElement("div"); this.optionsContainer.classList.add("input-select-options"); parent.insertBefore(this.container, this.inputElement); this.inputElement.remove(); this.container.appendChild(flexContainer); this.container.appendChild(this.optionsContainer); flexContainer.appendChild(this.selectedOptionsContainer); flexContainer.appendChild(this.inputElement); this.inputElement.addEventListener("input", () => this.updateOptions()); if ("ResizeObserver" in window) { // @ts-ignore const resizeObserver = new ResizeObserver(entries => { entries.forEach(entry => { this.optionsContainer.style.width = entry.borderBoxSize[0].inlineSize + "px"; }); }); resizeObserver.observe(this.container); } // if ("IntersectionObserver" in window) { // const intersectionOptions = { // root: this.optionsContainer, // rootMargin: "20px", // threshold: 0.01 // } // const intersectionObserver = new IntersectionObserver((entries) => { // entries.forEach(entry => console.log("is intersecting", entry.isIntersecting)); // // console.log("entries", entries); // }, intersectionOptions); // intersectionObserver.observe(flexContainer); // } window.addEventListener("scroll", () => console.log("scrolling")); this.container.addEventListener("click", () => { const rect = this.container.getBoundingClientRect(); this.optionsContainer.style.top = (rect.top + rect.height) + "px"; }); this.updateOptions(); } updateOptions() { ViewHelper_1.ViewHelper.removeAllChildren(this.selectedOptionsContainer); ViewHelper_1.ViewHelper.removeAllChildren(this.optionsContainer); const inputValue = this.inputElement.value; this.options.forEach(o => { const optionElement = document.createElement("span"); optionElement.classList.add("input-select-option"); optionElement.dataset["value"] = o.value; optionElement.innerText = o.label; if (o.selected) { this.selectedOptionsContainer.appendChild(optionElement); } else if (o.label.indexOf(inputValue) !== -1) { this.optionsContainer.appendChild(optionElement); } optionElement.addEventListener("click", (e) => { e.stopPropagation(); e.preventDefault(); e.cancelBubble = true; this.toggle(o.value); this.inputElement.focus(); }); }); } toggle(value) { const option = this.options.get(value); if (option) { option.selected = !option.selected; this.updateOptions(); this.onChangeListeners.forEach(listener => { listener(option, this); }); } } getOptions() { return Array.from(this.options.values()); } getSelectedOptions() { return this.getOptions().filter(o => o.selected); } getSelectedValues() { return this.getSelectedOptions().map(o => o.value); } updateSelection(selection) { Object.keys(selection).forEach(value => { const option = this.options.get(value); if (option) { option.selected = selection[value]; } }); this.updateOptions(); } } exports.InputSelect = InputSelect; //# sourceMappingURL=InputSelect.js.map /***/ }), /* 495 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); __export(__webpack_require__(496)); /***/ }), /* 496 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const js_helper_1 = __webpack_require__(17); class EventManager { constructor() { this._listeners = {}; this._lastListenerId = 0; } /** * @return {EventManager} */ static getInstance() { if (!this._instance) { this._instance = new EventManager(); } return this._instance; } addListener(event, listener) { if (typeof listener !== "function") { throw new Error("can only add functions as listeners!"); } this._lastListenerId++; if (!this._listeners[event]) { this._listeners[event] = {}; this._listeners[event][this._lastListenerId] = listener; } return this._lastListenerId; } removeListener(event, listenerId) { if (this._listeners[event] && this._listeners[event][listenerId]) { delete this._listeners[event][listenerId]; } } trigger(event, data) { return __awaiter(this, void 0, void 0, function* () { if (this._listeners[event]) { yield js_helper_1.Helper.asyncForEach(Object.keys(this._listeners[event]), (listenerId) => __awaiter(this, void 0, void 0, function* () { yield this._listeners[event][listenerId](data); }), true); } }); } static trigger(event, data) { return __awaiter(this, void 0, void 0, function* () { return this.getInstance().trigger(event, data); }); } } exports.EventManager = EventManager; EventManager._instance = null; /***/ }), /* 497 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.ContainerSite = void 0; var TemplateSite_1 = __webpack_require__(198); var containerTemplate = __webpack_require__(498); /** * Seite, welche das Container-Template benutzt */ var ContainerSite = /*#__PURE__*/function (_TemplateSite_1$Templ) { _inherits(ContainerSite, _TemplateSite_1$Templ); var _super = _createSuper(ContainerSite); /** * Constructor für die ContainerSite * * @param siteManager * @param view */ function ContainerSite(siteManager, view) { _classCallCheck(this, ContainerSite); return _super.call(this, siteManager, view, containerTemplate, "#site-content"); } return ContainerSite; }(TemplateSite_1.TemplateSite); exports.ContainerSite = ContainerSite; /***/ }), /* 498 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/container.html"; /***/ }), /* 499 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DelegateSite = void 0; var AbstractSite_1 = __webpack_require__(146); var DelegateSite = /*#__PURE__*/function (_AbstractSite_1$Abstr) { _inherits(DelegateSite, _AbstractSite_1$Abstr); var _super = _createSuper(DelegateSite); function DelegateSite(site) { var _this; _classCallCheck(this, DelegateSite); _this = _super.call(this, undefined, document.createElement("span")); /** @var {AbstractSite} */ _this._site = site; return _this; } _createClass(DelegateSite, [{ key: "setTitle", value: function setTitle(titleElement, title) { return this._site.setTitle(titleElement, title); } }, { key: "setParameter", value: function setParameter(name, value) {//Todo changing // return this._site.setParameter(name, value); } }, { key: "setParameters", value: function setParameters(parameters) {//TODO changing // return this._site.setParameters(parameters) } }, { key: "getParameters", value: function getParameters() { return this._site.getParameters(); } }, { key: "showLoadingSymbol", value: function showLoadingSymbol() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: return _context.abrupt("return", this._site.showLoadingSymbol()); case 1: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "removeLoadingSymbol", value: function removeLoadingSymbol() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", this._site.removeLoadingSymbol()); case 1: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "_updateTitle", value: function _updateTitle() { return this._site._updateTitle(); } }, { key: "updateUrl", value: function updateUrl(args) {//todo // return this._site.updateUrl(args); } }, { key: "startSite", value: function startSite(site, args) { return this._site.startSite(site, args); } }, { key: "finishAndStartSite", value: function finishAndStartSite(site, args, result) { return this._site.finishAndStartSite(site, args, result); } }, { key: "finish", value: function finish(result) { return this._site.finish(result); } }, { key: "goBack", value: function goBack() { return this._site.goBack(); } }, { key: "getFinishPromise", value: function getFinishPromise() { return this._site.getFinishPromise(); } }, { key: "setResult", value: function setResult(result) { return this._site.setResult(result); } }, { key: "getFinishResolver", value: function getFinishResolver() { return this._site.getFinishResolver(); } }, { key: "addFragment", value: function addFragment(viewQuery, fragment) { return this._site.addFragment(viewQuery, fragment); } }, { key: "findBy", value: function findBy(query, all, asPromise) { return this._site.findBy(query, all, asPromise); } }, { key: "setPauseParameters", value: function setPauseParameters(pauseParameters) { return this._site.setPauseParameters(pauseParameters); } }, { key: "getViewPromise", value: function getViewPromise() { return this._site.getViewPromise(); } }, { key: "getState", value: function getState() { return this._site.getState(); } }, { key: "getTitle", value: function getTitle() { return this._site.getTitle(); } }, { key: "isShowing", value: function isShowing() { return this._site.isShowing(); } }, { key: "isDestroying", value: function isDestroying() { return this._site.isDestroying(); } }]); return DelegateSite; }(AbstractSite_1.AbstractSite); exports.DelegateSite = DelegateSite; /***/ }), /* 500 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AbstractWindowFragment = void 0; var AbstractFragment_1 = __webpack_require__(79); var ViewInflater_1 = __webpack_require__(54); var Helper_1 = __webpack_require__(7); var ViewHelper_1 = __webpack_require__(27); var Translator_1 = __webpack_require__(30); var NativeStoragePromise_1 = __webpack_require__(42); var Toast_1 = __webpack_require__(85); var template = __webpack_require__(501); var AbstractWindowFragment = /*#__PURE__*/function (_AbstractFragment_1$A) { _inherits(AbstractWindowFragment, _AbstractFragment_1$A); var _super2 = _createSuper(AbstractWindowFragment); function AbstractWindowFragment(site, view, position, title, id) { var _this; _classCallCheck(this, AbstractWindowFragment); _this = _super2.call(this, site, template); _this.position = { x: 0, y: 0, anchorY: "top", anchorX: "left" }; _this.title = ""; _this._margin = { x: 0, y: 0 }; _this.saveData = {}; _this.state = "normal"; _this.popupWindow = null; _this.translateTitle = true; _this.position = Object.assign({ anchorY: "top", anchorX: "left" }, position); _this.title = Helper_1.Helper.nonNull(title, " "); if (id) { _this.id = "window-" + id; } _this._viewPromise = Promise.all([_this._viewPromise, ViewInflater_1.ViewInflater.getInstance().load(view)]).then(function (res) { res[0].querySelector("#child-view").replaceWith(res[1]); ViewInflater_1.ViewInflater.replaceWithChildren(res[1]); _this._view = res[0]; return res[0]; }).catch(function (e) { return console.error(e); }); return _this; } _createClass(AbstractWindowFragment, [{ key: "setTitle", value: function setTitle(title) { if (this._titleElement) { ViewHelper_1.ViewHelper.removeAllChildren(this._titleElement); this._titleElement.appendChild(this.translateTitle ? Translator_1.Translator.makePersistentTranslation(title) : document.createTextNode(title)); } this.title = title; } }, { key: "getDimension", value: function getDimension() { var computedStyle = window.getComputedStyle(this._container); var width = parseFloat(computedStyle.getPropertyValue("width")); var height = parseFloat(computedStyle.getPropertyValue("height")); if (isNaN(width)) { width = parseFloat(this._container.style.width); } if (isNaN(height)) { height = parseFloat(this._container.style.height); } return { x: Math.ceil(width) - this._margin.x, y: Math.ceil(height) - this._margin.y }; } }, { key: "setDimension", value: function setDimension(x, y) { x += this._margin.x; y += this._margin.y; this._container.style.width = x + "px"; this._container.style.height = y + "px"; this.saveData.dimension = { x: x, y: y }; this.save(); } }, { key: "onViewLoaded", value: function onViewLoaded() { var _this2 = this; var _super = Object.create(null, { onViewLoaded: { get: function get() { return _get(_getPrototypeOf(AbstractWindowFragment.prototype), "onViewLoaded", _this2); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var _this3 = this; var res, buttonContainer; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: res = _super.onViewLoaded.call(this); this._container = this.findBy(".window-container"); if (this.position.width || this.position.height) { this._container.style.width = this.position.width + "px"; this._container.style.height = this.position.height + "px"; } this._window = this.findBy(".window"); this._titleElement = this.findBy("#title"); this._resizeElements = { x: [this._window, this.findBy(".window-resize.left"), this.findBy(".window-resize.right")], y: [this._window, this._titleElement, this.findBy(".window-resize.top"), this.findBy(".window-resize.bottom")] }; _context.next = 8; return this.load(); case 8: this._checkPositionAndDimension(); // this.moveTo(this.position.x, this.position.y); this.setTitle(this.title); this.addListeners(); buttonContainer = this.findBy("#title-buttons"); if (buttonContainer) { buttonContainer.remove(); this._titleElement.parentNode.appendChild(buttonContainer); buttonContainer.querySelectorAll(".title-button").forEach(function (button) { button.addEventListener("click", function (e) { _this3.onButtonClick(button.id, button, e); }); }); } return _context.abrupt("return", res); case 14: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "addListeners", value: function addListeners() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var _this4 = this; var resizeStart, multiplier, dimension, resizeStartListener, mouseDownPos, pos, moveStartListener, moveListener, endListener; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: resizeStart = null; resizeStartListener = function resizeStartListener(x, y, e) { if (e.target.classList.contains("window-resize")) { e.stopPropagation(); resizeStart = { x: x, y: y }; var direction = e.target.dataset["direction"].split(","); multiplier = { x: parseInt(direction[0]), y: parseInt(direction[1]) }; dimension = _this4.getDimension(); } }; this.findBy(".window-resize", true).forEach(function (element) { element.addEventListener("mousedown", function (e) { resizeStartListener(e.clientX, e.clientY, e); }); }); mouseDownPos = null; pos = null; moveStartListener = function moveStartListener(x, y, e) { if (e.target === _this4._container || e.target.closest("#title") === _this4._titleElement) { mouseDownPos = { x: x, y: y }; pos = Object.assign({}, _this4.getPosition()); //Make copy _this4._container.classList.add("moving"); } _this4.makeActiveWindow(); }; this._container.addEventListener("mousedown", function (e) { moveStartListener(e.clientX, e.clientY, e); }); this._container.addEventListener("touchstart", function (e) { if (e.touches.length === 1) { moveStartListener(e.touches[0].clientX, e.touches[0].clientY, e); } }); moveListener = function moveListener(x, y) { if (resizeStart !== null) { var localMultiplier = { x: multiplier.x, y: multiplier.y }; var diff = { x: (x - resizeStart.x) * localMultiplier.x, y: (y - resizeStart.y) * localMultiplier.y }; dimension = { x: dimension.x + diff.x, y: dimension.y + diff.y }; _this4.setDimension(dimension.x, dimension.y); var realDimension = _this4.getDimension(); if (dimension.x !== realDimension.x) { localMultiplier.x = 0; } if (dimension.y !== realDimension.y) { localMultiplier.y = 0; } _this4._checkPositionAndDimension(); //TODO diff für Center berechnen... var moveDiff = { x: 0, y: 0 }; if (localMultiplier.x !== 0) { if (_this4.position.anchorX === "center") { moveDiff.x = diff.x * localMultiplier.x / 2; } else if (localMultiplier.x * (_this4.position.anchorX === "left" ? 1 : -1) < 0) { moveDiff.x = diff.x * localMultiplier.x; } } if (localMultiplier.y !== 0) { if (_this4.position.anchorY === "center") { moveDiff.y = diff.y * localMultiplier.y / 2; } else if (localMultiplier.y * (_this4.position.anchorY === "top" ? 1 : -1) < 0) { moveDiff.y = diff.y * localMultiplier.y; } } _this4.moveAt(moveDiff.x, moveDiff.y); resizeStart = { x: x, y: y }; } else if (mouseDownPos !== null) { var _diff = { x: x - mouseDownPos.x, y: y - mouseDownPos.y }; mouseDownPos = { x: x, y: y }; // const newPos = {x: pos.x + diff.x, y: pos.y + diff.y}; _this4.moveAt(_diff.x, _diff.y); } }; window.addEventListener("mousemove", function (e) { moveListener(e.clientX, e.clientY); }); window.addEventListener("touchmove", function (e) { if (e.touches.length === 1) { moveListener(e.touches[0].clientX, e.touches[0].clientY); } }); endListener = function endListener(x, y, e) { mouseDownPos = null; resizeStart = null; _this4._container.classList.remove("moving"); }; window.addEventListener("mouseup", function (e) { endListener(e.clientX, e.clientY, e); }); window.addEventListener("touchend", function (e) { if (e.touches.length === 0 && e.changedTouches.length === 1) { endListener(e.changedTouches[0].clientX, e.changedTouches[0].clientY, e); } }); this._container.addEventListener("dblclick", function (e) { if (e.target === _this4._container || e.target.closest("#title") === _this4._titleElement) { _this4.toggleMinimize(); } }); window.addEventListener("resize", function () { _this4._checkPositionAndDimension(); }); window.addEventListener("beforeunload", function () { if (_this4.popupWindow) { _this4.id = null; //disable saving, since it should _this4.popupWindow.close(); } }); case 17: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "makeActiveWindow", value: function makeActiveWindow() { var activeWindow = document.querySelector(".window-container.active-window"); if (activeWindow && activeWindow !== this._container) { activeWindow.classList.remove("active-window"); } this._container.classList.add("active-window"); } }, { key: "load", value: function load() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var _this5 = this; var saveData; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: if (!this.id) { _context3.next = 19; break; } _context3.next = 3; return NativeStoragePromise_1.NativeStoragePromise.getItem(this.id); case 3: saveData = _context3.sent; if (!saveData) { _context3.next = 19; break; } if (saveData.dimension) { this.setDimension(saveData.dimension.x, saveData.dimension.y); } if (saveData.position) { this.position = saveData.position; this._checkPositionAndDimension(); } if (!saveData.state) { _context3.next = 17; break; } _context3.t0 = saveData.state; _context3.next = _context3.t0 === "minimized" ? 11 : _context3.t0 === "maximized" ? 13 : _context3.t0 === "popup" ? 15 : 17; break; case 11: this.toggleMinimize(); return _context3.abrupt("break", 17); case 13: this.toggleMaximize(); return _context3.abrupt("break", 17); case 15: this._viewLoadedPromise.then(function () { _this5.openInNewWindow(); }); return _context3.abrupt("break", 17); case 17: this.saveData = saveData; this.save(); case 19: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "save", value: function save() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: if (!this.id) { _context4.next = 3; break; } _context4.next = 3; return NativeStoragePromise_1.NativeStoragePromise.setItem(this.id, this.saveData); case 3: case "end": return _context4.stop(); } } }, _callee4, this); })); } }, { key: "toggleMinimize", value: function toggleMinimize() { if (this.state !== "popup") { this._container.classList.toggle("minimized"); this._container.classList.remove("maximized"); if (!this._container.classList.contains("minimized")) { this.resizeToContent(); this.state = "normal"; } else { this.state = "minimized"; } this.saveData.state = this.state; this.save(); } } }, { key: "toggleMaximize", value: function toggleMaximize() { if (this.state !== "popup") { this._container.classList.toggle("maximized"); this._container.classList.remove("minimized"); if (!this._container.classList.contains("maximized")) { this.resizeToContent(); this.state = "normal"; } else { this.state = "maximized"; } this.saveData.state = this.state; this.save(); } } }, { key: "resizeToContent", value: function resizeToContent() { if (this._window) { var diff = { x: this._window.scrollWidth - this._window.clientWidth, y: this._window.scrollHeight - this._window.clientHeight }; var _dimension = this.getDimension(); if (diff.x === 0) { var sum = 0; this._resizeElements.x.forEach(function (e) { return sum += parseFloat(window.getComputedStyle(e).getPropertyValue("width")); }); diff.x = Math.ceil(sum) - _dimension.x; } if (diff.y === 0) { var _sum = 0; this._resizeElements.y.forEach(function (e) { return _sum += parseFloat(window.getComputedStyle(e).getPropertyValue("height")); }); diff.y = Math.ceil(_sum) - _dimension.y; } _dimension.x += diff.x; _dimension.y += diff.y; if (this.state === "normal") { this.setDimension(_dimension.x, _dimension.y); } this._checkPositionAndDimension(); } } }, { key: "getTopLeftCornerPosition", value: function getTopLeftCornerPosition() { var dimension = this.getDimension(); var x = this.position.x; if (this.position.anchorX === "center") { x += window.innerWidth / 2 - dimension.x / 2; } else if (this.position.anchorX === "right") { x += window.innerWidth - dimension.x; } var y = this.position.y; if (this.position.anchorY === "center") { y += window.innerHeight / 2 - dimension.y / 2; } else if (this.position.anchorY === "bottom") { y += window.innerHeight - dimension.y; } if (x < 0) { x = 0; } if (y < 0) { y = 0; } return { x: x, y: y }; } }, { key: "getCenterCenterPosition", value: function getCenterCenterPosition() { var dimension = this.getDimension(); var topLeft = this.getTopLeftCornerPosition(); return { x: topLeft.x + dimension.x / 2 - window.innerWidth / 2, y: topLeft.y + dimension.y / 2 - window.innerHeight / 2 }; } }, { key: "getBottomRightPosition", value: function getBottomRightPosition() { var dimension = this.getDimension(); var topLeft = this.getTopLeftCornerPosition(); return { x: Math.min(topLeft.x + dimension.x - window.innerWidth, 0), y: Math.min(topLeft.y + dimension.y - window.innerHeight, 0) }; } }, { key: "_checkPositionAndDimension", value: function _checkPositionAndDimension() { var dimension = this.getDimension(); var setDimension = true; var dimensionChanged = false; if (isNaN(dimension.x)) { dimension.x = 0; setDimension = false; } if (isNaN(dimension.y)) { dimension.y = 0; setDimension = false; } var posTopLeft = this.getTopLeftCornerPosition(); var posCenterCenter = this.getCenterCenterPosition(); var posBottomRight = this.getBottomRightPosition(); if (dimension.x > window.innerWidth) { dimensionChanged = true; dimension.x = window.innerWidth; this.position.x = 0; this.position.anchorX = "left"; } else { if (posTopLeft.x <= Math.abs(posCenterCenter.x) && posTopLeft.x <= -1 * posBottomRight.x) { this.position.x = posTopLeft.x; this.position.anchorX = "left"; } else if (-1 * posBottomRight.x <= Math.abs(posCenterCenter.x)) { this.position.x = posBottomRight.x; this.position.anchorX = "right"; } else { this.position.x = posCenterCenter.x; this.position.anchorX = "center"; } } if (dimension.y > window.innerHeight) { dimensionChanged = true; dimension.y = window.innerHeight; this.position.y = 0; this.position.anchorY = "top"; } else { if (posTopLeft.y <= Math.abs(posCenterCenter.y) && posTopLeft.y <= -1 * posBottomRight.y) { this.position.y = posTopLeft.y; this.position.anchorY = "top"; } else if (-1 * posBottomRight.y <= Math.abs(posCenterCenter.y)) { this.position.y = posBottomRight.y; this.position.anchorY = "bottom"; } else { this.position.y = posCenterCenter.y; this.position.anchorY = "center"; } } if (this.position.anchorY === "top") { this._container.style.top = this.position.y + "px"; this._container.style.removeProperty("bottom"); } else if (this.position.anchorY === "bottom") { this._container.style.bottom = -1 * this.position.y + "px"; this._container.style.removeProperty("top"); } else { this._container.style.top = "calc(50% + " + this.position.y.toString() + "px - " + (dimension.y / 2).toString() + "px)"; this._container.style.removeProperty("bottom"); } if (this.position.anchorX === "left") { this._container.style.left = this.position.x + "px"; this._container.style.removeProperty("right"); } else if (this.position.anchorX === "right") { this._container.style.right = -1 * this.position.x + "px"; this._container.style.removeProperty("left"); } else { this._container.style.left = "calc(50% + " + this.position.x.toString() + "px - " + (dimension.x / 2).toString() + "px)"; this._container.style.removeProperty("right"); } this.saveData.position = this.position; if (!this._container.classList.contains("minimized") && setDimension && dimensionChanged) { this.setDimension(dimension.x, dimension.y); } } }, { key: "onStart", value: function onStart(pauseArguments) { var _this6 = this; var _super = Object.create(null, { onStart: { get: function get() { return _get(_getPrototypeOf(AbstractWindowFragment.prototype), "onStart", _this6); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var res; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: res = _super.onStart.call(this, pauseArguments); this._checkPositionAndDimension(); return _context5.abrupt("return", res); case 3: case "end": return _context5.stop(); } } }, _callee5, this); })); } }, { key: "moveAt", value: function moveAt(x, y) { var posTopLeft = this.getTopLeftCornerPosition(); return this.moveTo(x + posTopLeft.x, y + posTopLeft.y); } }, { key: "moveTo", value: function moveTo(x, y) { this.position = { x: x, y: y, anchorX: "left", anchorY: "top" }; this._checkPositionAndDimension(); this.save(); } }, { key: "onButtonClick", value: function onButtonClick(id, button, e) { switch (id) { case "minimize-button": { this.toggleMinimize(); break; } case "maximize-button": { this.toggleMaximize(); break; } case "new-window-button": { this.openInNewWindow(); break; } } } }, { key: "openInNewWindow", value: function openInNewWindow() { var _this7 = this; if (this.state === "popup") { return; } var windowProxy = window.open("", "", "modal=yes"); if (windowProxy === null) { new Toast_1.Toast("cannot open popups").show(); return; } this.state = "popup"; this.saveData.state = this.state; this.save(); var baseElement = document.createElement("base"); baseElement.href = window.location.href; windowProxy.document.head.appendChild(baseElement); var titleElement = document.createElement("title"); titleElement.innerText = this.title; windowProxy.document.head.appendChild(titleElement); document.querySelectorAll("link[rel='stylesheet']").forEach(function (styleElem) { windowProxy.document.head.appendChild(styleElem.cloneNode()); }); var parent = this._view.parentNode; this._view.remove(); this._container.classList.add("popup"); this._container.classList.remove("minimized"); this._container.classList.remove("maximized"); var translationCallback = Translator_1.Translator.getInstance().addTranslationCallback(function (baseElement) { if (baseElement !== _this7._container) { Translator_1.Translator.getInstance().updateTranslations(_this7._container); } }, false); windowProxy.document.body.appendChild(this._view); windowProxy.addEventListener("beforeunload", function () { _this7.state = "normal"; _this7.saveData.state = _this7.state; _this7.save(); _this7._view.remove(); _this7._container.classList.remove("popup"); _this7._container.classList.remove("minimized"); _this7._container.classList.remove("maximized"); parent.appendChild(_this7._view); _this7.popupWindow = null; Translator_1.Translator.getInstance().removeTranslationCallback(translationCallback); }); this.popupWindow = windowProxy; document.body.classList.forEach(function (className) { console.log("adding class", className); windowProxy.document.body.classList.add(className); }); } }, { key: "getPosition", value: function getPosition() { return this.position; } }]); return AbstractWindowFragment; }(AbstractFragment_1.AbstractFragment); exports.AbstractWindowFragment = AbstractWindowFragment; /***/ }), /* 501 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/abstractWindowTemplate.html"; /***/ }), /* 502 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AlphabeticListFragment = void 0; var AbstractFragment_1 = __webpack_require__(79); var client_1 = __webpack_require__(147); var shared_1 = __webpack_require__(17); var defaultView = __webpack_require__(503); var AlphabeticListFragment = /*#__PURE__*/function (_AbstractFragment_1$A) { _inherits(AlphabeticListFragment, _AbstractFragment_1$A); var _super2 = _createSuper(AlphabeticListFragment); function AlphabeticListFragment(site, view) { var _this; _classCallCheck(this, AlphabeticListFragment); _this = _super2.call(this, site, shared_1.Helper.nonNull(view, defaultView)); _this.elements = {}; _this.sideScrolling = false; return _this; } _createClass(AlphabeticListFragment, [{ key: "onViewLoaded", value: function onViewLoaded() { var _this2 = this; var _super = Object.create(null, { onViewLoaded: { get: function get() { return _get(_getPrototypeOf(AlphabeticListFragment.prototype), "onViewLoaded", _this2); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var _this3 = this; var res, sideAlphabet; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: res = _super.onViewLoaded.call(this); //TODO font-size changing sideAlphabet = this.findBy(".alphabetic-list-sidealphabet"); sideAlphabet.addEventListener("mousedown", function () { _this3.sideScrolling = true; }); window.addEventListener("touchstart", function (e) { _this3.sideScrolling = true; }); window.addEventListener("mouseup", function () { _this3.sideScrolling = false; }); window.addEventListener("touchend", function () { _this3.sideScrolling = false; }); this.findBy(".alphabet-scroll-to", true).forEach(function (elem) { var listener = function listener(e) { if (_this3.sideScrolling) { _this3.findBy(".alphabet-section." + elem.dataset.letter).scrollIntoView({ behavior: "smooth", block: "start" }); } }; elem.addEventListener("mousedown", function (e) { _this3.sideScrolling = true; listener(e); }); elem.addEventListener("mousemove", listener); elem.addEventListener("touchstart", function (e) { _this3.sideScrolling = true; listener(e); }); elem.addEventListener("touchmove", listener); }); this.headingElement = this.findBy("#alphabetic-list-heading"); this.renderList(); return _context.abrupt("return", res); case 10: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "setElements", value: function setElements(elements) { var _this4 = this; this.elements = {}; Object.keys(elements).sort(function (a, b) { return a.toLowerCase().localeCompare(b.toLowerCase()); }).forEach(function (key) { _this4.elements[key] = elements[key]; }); } }, { key: "setHeading", value: function setHeading(headingElement) { this.heading = headingElement; if (this.headingElement && this.heading) { client_1.ViewHelper.removeAllChildren(this.headingElement); this.headingElement.appendChild(this.heading); } } }, { key: "renderElement", value: function renderElement(element) { console.warn("should be overloaded?"); var elem = document.createElement("div"); elem.innerText = element; return elem; } }, { key: "renderList", value: function renderList() { var _this5 = this; client_1.ViewHelper.removeAllChildren(this.headingElement); if (this.heading) { this.headingElement.appendChild(this.heading); } this.findBy(".alphabet-section", true).forEach(function (section) { client_1.ViewHelper.removeAllChildren(section); }); var currentLetter = 'A'; var currentSegment = this.findBy(".alphabet-section.A"); Object.keys(this.elements).forEach(function (key) { var newLetter = key.trim().substring(0, 1).toUpperCase(); if (newLetter !== currentLetter) { currentLetter = newLetter; var newSegment = _this5.findBy(".alphabet-section." + newLetter); if (newSegment !== null) { currentSegment = newSegment; } } var element = _this5.renderElement(_this5.elements[key]); currentSegment.appendChild(element); }); } }]); return AlphabeticListFragment; }(AbstractFragment_1.AbstractFragment); exports.AlphabeticListFragment = AlphabeticListFragment; /***/ }), /* 503 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/alphabeticListFragment.html"; /***/ }), /* 504 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TabFragment = void 0; var AbstractFragment_1 = __webpack_require__(79); var defaultTabView = __webpack_require__(505); var Helper_1 = __webpack_require__(15); var Translator_1 = __webpack_require__(30); var client_1 = __webpack_require__(147); var TabFragment = /*#__PURE__*/function (_AbstractFragment_1$A) { _inherits(TabFragment, _AbstractFragment_1$A); var _super2 = _createSuper(TabFragment); function TabFragment(site, view) { var _this; _classCallCheck(this, TabFragment); _this = _super2.call(this, site, Helper_1.Helper.nonNull(view, defaultTabView)); _this.lastTabId = 0; _this.activeTab = null; _this.onTabChangeListener = null; _this.tabs = new Map(); _this.tabViewPromise = _this._viewLoadedPromise; return _this; } _createClass(TabFragment, [{ key: "onViewLoaded", value: function onViewLoaded() { var _this2 = this; var _super = Object.create(null, { onViewLoaded: { get: function get() { return _get(_getPrototypeOf(TabFragment.prototype), "onViewLoaded", _this2); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var res; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: res = _super.onViewLoaded.call(this); this.nameContainer = this.findBy(".tab-names"); this.nameButton = this.findBy(".tab-button-template"); this.nameButton.classList.remove("tab-button-template"); this.nameButton.remove(); this.tabContent = this.findBy(".tab-content"); this.tabSite = this.findBy(".tab-site-template"); this.tabSite.classList.remove("tab-site-template"); this.tabSite.remove(); return _context.abrupt("return", res); case 10: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "addFragment", value: function addFragment(name, fragment, nameIsTranslatable) { var _this3 = this; _get(_getPrototypeOf(TabFragment.prototype), "addFragment", this).call(this, ".tab-content", fragment); fragment._viewLoadedPromise.then(function () { var view = _this3.tabSite.cloneNode(true); view.appendChild(fragment._view); _this3.lastTabId++; var tab = { name: name, fragment: fragment, view: view, nameIsTranslatable: Helper_1.Helper.nonNull(nameIsTranslatable, true), button: null, id: _this3.lastTabId }; _this3.tabs.set(_this3.lastTabId, tab); _this3._viewLoadedPromise.then(function () { var nameElement = _this3.nameButton.cloneNode(true); nameElement.appendChild(tab.nameIsTranslatable ? Translator_1.Translator.makePersistentTranslation(name) : document.createTextNode(name)); _this3.nameContainer.appendChild(nameElement); nameElement.addEventListener("click", function () { _this3.showTab(tab.id); }); tab.button = nameElement; if (Helper_1.Helper.isNull(_this3.activeTab)) { _this3.showTab(tab.id); } }); }); } }, { key: "showTab", value: function showTab(tabId) { var tab = this.tabs.get(tabId); if (tab && tabId !== this.activeTab) { var previousActiveButton = this.findBy(".tab-button.active"); if (Helper_1.Helper.isNotNull(previousActiveButton)) { previousActiveButton.classList.remove("active"); } tab.button.classList.add("active"); client_1.ViewHelper.removeAllChildren(this.tabContent); this.tabContent.appendChild(tab.view); this.activeTab = tabId; if (this.onTabChangeListener) { this.onTabChangeListener(tab); } } } }, { key: "setOnTabChangeListener", value: function setOnTabChangeListener(listener) { this.onTabChangeListener = listener; } }]); return TabFragment; }(AbstractFragment_1.AbstractFragment); exports.TabFragment = TabFragment; /***/ }), /* 505 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/tabFragment.html"; /***/ }), /* 506 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /***/ }), /* 507 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.ErrorAction = void 0; var MenuAction_1 = __webpack_require__(80); var Dialog_1 = __webpack_require__(84); var Translator_1 = __webpack_require__(30); var errorIcon = __webpack_require__(508); var ErrorAction = /*#__PURE__*/function (_MenuAction_1$MenuAct) { _inherits(ErrorAction, _MenuAction_1$MenuAct); var _super = _createSuper(ErrorAction); function ErrorAction() { var _this; _classCallCheck(this, ErrorAction); _this = _super.call(this, "", function () { var d = new Dialog_1.Dialog(ErrorAction._errors.join("
"), Translator_1.Translator.translate("error")); d.setTranslatable(false); d.show(); }, MenuAction_1.MenuAction.SHOW_ALWAYS, -1000, ErrorAction.ERROR_ICON); _this._visible = ErrorAction._errors.length > 0; _this._shouldTranslate = false; console.log("icon: ", ErrorAction.ERROR_ICON); return _this; } _createClass(ErrorAction, null, [{ key: "addError", value: function addError(errorMessage) { if (this._errors.indexOf(errorMessage) === -1) { this._errors.push(errorMessage); this.getInstance().setVisibility(this._errors.length > 0); } } }, { key: "removeError", value: function removeError(errorMessage) { var index = this._errors.indexOf(errorMessage); if (index >= 0) { this._errors.splice(index, 1); this.getInstance().setVisibility(this._errors.length > 0); } } /** * @return ErrorAction; */ }, { key: "getInstance", value: function getInstance() { if (this._instance === null) { this._instance = new ErrorAction(); } return this._instance; } }]); return ErrorAction; }(MenuAction_1.MenuAction); exports.ErrorAction = ErrorAction; ErrorAction.ERROR_ICON = errorIcon; ErrorAction._instance = null; ErrorAction._errors = []; /***/ }), /* 508 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony default export */ __webpack_exports__["default"] = ("img/errorIcon.png"); /***/ }), /* 509 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.StartSiteMenuAction = void 0; var MenuAction_1 = __webpack_require__(80); var App_1 = __webpack_require__(33); var StartSiteMenuAction = /*#__PURE__*/function (_MenuAction_1$MenuAct) { _inherits(StartSiteMenuAction, _MenuAction_1$MenuAct); var _super = _createSuper(StartSiteMenuAction); function StartSiteMenuAction(name, site, showFor, order, icon) { _classCallCheck(this, StartSiteMenuAction); return _super.call(this, name, function () { if (StartSiteMenuAction._app) { if (Array.isArray(site) && site.length >= 2) { StartSiteMenuAction._app.startSite(site[0], site[1]); } else { StartSiteMenuAction._app.startSite(site); } } }, showFor, order, icon); } return StartSiteMenuAction; }(MenuAction_1.MenuAction); exports.StartSiteMenuAction = StartSiteMenuAction; StartSiteMenuAction._app = null; App_1.App.addInitialization(function (app) { StartSiteMenuAction._app = app; }); /***/ }), /* 510 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/navbar.html"; /***/ }), /* 511 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/menuSite.html"; /***/ }), /* 512 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SwipeFragment = void 0; var AbstractFragment_1 = __webpack_require__(79); var SwipeChildFragment_1 = __webpack_require__(263); var Helper_1 = __webpack_require__(15); var view = __webpack_require__(513); var SwipeFragment = /*#__PURE__*/function (_AbstractFragment_1$A) { _inherits(SwipeFragment, _AbstractFragment_1$A); var _super2 = _createSuper(SwipeFragment); function SwipeFragment(site) { var _this; _classCallCheck(this, SwipeFragment); _this = _super2.call(this, site, view); _this._activeIndex = 0; _this._touchStart = null; return _this; } _createClass(SwipeFragment, [{ key: "onViewLoaded", value: function onViewLoaded() { var _this2 = this; var _super = Object.create(null, { onViewLoaded: { get: function get() { return _get(_getPrototypeOf(SwipeFragment.prototype), "onViewLoaded", _this2); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var _this3 = this; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: this._view.addEventListener("touchstart", function (e) { _this3._touchStart = e.touches[0]; }, false); this._view.addEventListener("touchend", function (e) { _this3._handleSwipe(e.changedTouches[0].clientX, e.changedTouches[0].clientY); _this3._touchStart = null; }); this._view.addEventListener("mousedown", function (e) { _this3._touchStart = e; }, false); this._view.addEventListener("mouseup", function (e) { _this3._handleSwipe(e.clientX, e.clientY); _this3._touchStart = null; }); return _context.abrupt("return", _super.onViewLoaded.call(this)); case 5: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "_handleSwipe", value: function _handleSwipe(endX, endY) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var touchStart, diffX; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: if (!Helper_1.Helper.isNull(this._touchStart)) { _context2.next = 2; break; } return _context2.abrupt("return"); case 2: touchStart = this._touchStart; this._touchStart = null; diffX = touchStart.clientX - endX; if (!(Math.abs(touchStart.clientY - endY) <= SwipeFragment.MAX_Y && Math.abs(diffX) >= SwipeFragment.MIN_X)) { _context2.next = 13; break; } if (!(diffX > 0)) { _context2.next = 11; break; } _context2.next = 9; return this._fragments[this._activeIndex].onSwipeLeft(); case 9: _context2.next = 13; break; case 11: _context2.next = 13; return this._fragments[this._activeIndex].onSwipeRight(); case 13: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "onStart", value: function onStart(pauseArguments) { var _this4 = this; var _super = Object.create(null, { onStart: { get: function get() { return _get(_getPrototypeOf(SwipeFragment.prototype), "onStart", _this4); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: if (this._activeIndex >= 0 && this._activeIndex < this._fragments.length) { this.setActiveFragment(this._activeIndex); } return _context3.abrupt("return", _super.onStart.call(this, pauseArguments)); case 2: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "setActiveFragment", value: function setActiveFragment(index) { var _this5 = this; if (index instanceof SwipeChildFragment_1.SwipeChildFragment) { index = this._fragments.indexOf(index); } if (index >= 0 && index < this._fragments.length) { this._activeIndex = index; this._fragments.forEach(function (frag, i) { frag.setActive(i === _this5._activeIndex); }); } } }, { key: "nextFragment", value: function nextFragment() { this.setActiveFragment((this._activeIndex + 1) % this._fragments.length); } }, { key: "previousFragment", value: function previousFragment() { this.setActiveFragment((this._activeIndex + this._fragments.length - 1) % this._fragments.length); } }, { key: "addFragment", value: function addFragment(fragment) { if (fragment instanceof SwipeChildFragment_1.SwipeChildFragment) { fragment.setParent(this); return _get(_getPrototypeOf(SwipeFragment.prototype), "addFragment", this).call(this, ".swipe-container", fragment); } } }]); return SwipeFragment; }(AbstractFragment_1.AbstractFragment); exports.SwipeFragment = SwipeFragment; SwipeFragment.MAX_Y = 80; SwipeFragment.MIN_X = 150; /***/ }), /* 513 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/swipeFragment.html"; /***/ }), /* 514 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.ButtonChooseDialog = void 0; var Dialog_1 = __webpack_require__(84); var ButtonChooseDialog = /*#__PURE__*/function (_Dialog_1$Dialog) { _inherits(ButtonChooseDialog, _Dialog_1$Dialog); var _super = _createSuper(ButtonChooseDialog); function ButtonChooseDialog(content, title, values) { var _this; _classCallCheck(this, ButtonChooseDialog); _this = _super.call(this, content, title); Object.keys(values).forEach(function (key) { _this.addButton(values[key], key); }); return _this; } return ButtonChooseDialog; }(Dialog_1.Dialog); exports.ButtonChooseDialog = ButtonChooseDialog; /***/ }), /* 515 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.ChooseDialog = void 0; var Dialog_1 = __webpack_require__(84); var ViewInflater_1 = __webpack_require__(54); var view = __webpack_require__(264); var Translator_1 = __webpack_require__(30); var Helper_1 = __webpack_require__(7); var ChooseDialog = /*#__PURE__*/function (_Dialog_1$Dialog) { _inherits(ChooseDialog, _Dialog_1$Dialog); var _super = _createSuper(ChooseDialog); function ChooseDialog(valueNames, title, translateable) { var _this; _classCallCheck(this, ChooseDialog); var viewPromise = ViewInflater_1.ViewInflater.getInstance().load(view).then(function (view) { translateable = Helper_1.Helper.nonNull(translateable, true); var template = view.querySelector("#choose-value-template"); template.remove(); template.removeAttribute("id"); var templateContainer = view.querySelector("#choose-container"); var _loop = function _loop(k) { var valueElem = template.cloneNode(true); var textElem = null; if (translateable) { textElem = Translator_1.Translator.makePersistentTranslation(valueNames[k]); } else { textElem = document.createElement("span"); textElem.innerText = valueNames[k]; } valueElem.querySelector(".choose-dialog-value").appendChild(textElem); valueElem["dataset"]["value"] = k; valueElem.addEventListener("click", function () { _this._result = k; _this.close(); }); templateContainer.appendChild(valueElem); }; for (var k in valueNames) { _loop(k); } return view; }); return _this = _super.call(this, viewPromise, title); } return ChooseDialog; }(Dialog_1.Dialog); exports.ChooseDialog = ChooseDialog; /***/ }), /* 516 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConfirmDialog = void 0; var Dialog_1 = __webpack_require__(84); var Helper_1 = __webpack_require__(15); var ConfirmDialog = /*#__PURE__*/function (_Dialog_1$Dialog) { _inherits(ConfirmDialog, _Dialog_1$Dialog); var _super2 = _createSuper(ConfirmDialog); function ConfirmDialog(content, title, confirmButtonText, cancelButtonText) { var _this; _classCallCheck(this, ConfirmDialog); _this = _super2.call(this, content, title); _this.confirmButtonText = Helper_1.Helper.nonNull(confirmButtonText, "confirm-button"); _this.cancelButtonText = Helper_1.Helper.nonNull(cancelButtonText, "cancel-button"); return _this; } _createClass(ConfirmDialog, [{ key: "show", value: function show() { var _this2 = this; var _super = Object.create(null, { show: { get: function get() { return _get(_getPrototypeOf(ConfirmDialog.prototype), "show", _this2); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: this.addButton(this.confirmButtonText, true); this.addButton(this.cancelButtonText, false); return _context.abrupt("return", _super.show.call(this)); case 3: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "close", value: function close() { if (Helper_1.Helper.isNull(this._result)) { this._result = false; } return _get(_getPrototypeOf(ConfirmDialog.prototype), "close", this).call(this); } }]); return ConfirmDialog; }(Dialog_1.Dialog); exports.ConfirmDialog = ConfirmDialog; /***/ }), /* 517 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.ImgChooseDialog = void 0; var ElemChooseDialog_1 = __webpack_require__(265); var ImgChooseDialog = /*#__PURE__*/function (_ElemChooseDialog_1$E) { _inherits(ImgChooseDialog, _ElemChooseDialog_1$E); var _super = _createSuper(ImgChooseDialog); function ImgChooseDialog(valueNames, title) { _classCallCheck(this, ImgChooseDialog); var newValueNames = {}; Object.keys(valueNames).forEach(function (k) { var elem = document.createElement("img"); elem.src = valueNames[k]; newValueNames[k] = elem; }); return _super.call(this, newValueNames, title); } return ImgChooseDialog; }(ElemChooseDialog_1.ElemChooseDialog); exports.ImgChooseDialog = ImgChooseDialog; /***/ }), /* 518 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Form = void 0; var DataManager_1 = __webpack_require__(59); var Helper_1 = __webpack_require__(15); var Translator_1 = __webpack_require__(30); var Toast_1 = __webpack_require__(85); var ImageSelectionElement_1 = __webpack_require__(266); var js_helper_1 = __webpack_require__(17); var Form = /*#__PURE__*/function () { function Form(formElem, urlOrCallback, method, imageSelectionSelector) { var _this = this; _classCallCheck(this, Form); this.imageSelectionElementReady = new js_helper_1.PromiseWithHandlers(); this.imageSelectionElements = {}; this.formElem = formElem; this._method = Helper_1.Helper.nonNull(method, formElem["method"], "POST"); this._elementChangeListener = null; this._validators = []; this._isBusy = false; if (imageSelectionSelector === undefined) { imageSelectionSelector = "input.image-selection"; } if (typeof urlOrCallback === "string") { this._submitHandler = function (values) { if (_this._method.toLowerCase() === "get") { return DataManager_1.DataManager.load(urlOrCallback + DataManager_1.DataManager.buildQuery(values)); } else {//TODO, wenn Serververbindung kommt // return (DataManager.send(urlOrCallback, values)); } }; } else { this._submitHandler = urlOrCallback; } this._editors = []; this._submitCallback = null; this.errorCallback = function (errors) { return __awaiter(_this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return this.setErrors(errors); case 2: case "end": return _context.stop(); } } }, _callee, this); })); }; formElem.addEventListener("submit", function (e) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: e.preventDefault(); _context2.next = 3; return self.doSubmit(e); case 3: case "end": return _context2.stop(); } } }, _callee2); })); }); this.prepareForImageSelection(imageSelectionSelector).then(function (r) { return _this.imageSelectionElementReady.resolve(r); }); var self = this; _toConsumableArray(formElem.elements).forEach(function (element) { element.addEventListener("change", function () { if (this.value.trim() !== "") { this.classList.add("notEmpty"); } else { this.classList.remove("notEmpty"); } this.setCustomValidity(""); if (Helper_1.Helper.isNotNull(self._elementChangeListener)) { self._elementChangeListener(element, this); } this.setCustomValidity(""); if (element.accept && element.accept.indexOf("image") !== -1) { if (element.files && element.files[0]) { var reader = new FileReader(); reader.onload = function (e) { var previewElem = formElem.querySelector("." + element.name + "-preview"); if (previewElem) { previewElem.src = e.target["result"]; } }; reader.readAsDataURL(element.files[0]); } else { formElem.querySelector("." + element.name + "-preview").src = ""; } } }); element.addEventListener("keydown", function () { this.setCustomValidity(""); }); }); } _createClass(Form, [{ key: "prepareForImageSelection", value: function prepareForImageSelection(imageSelectionSelector) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var _this2 = this; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return Helper_1.Helper.asyncForEach(this.formElem.querySelectorAll(imageSelectionSelector), function (imgElement) { return __awaiter(_this2, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var name, value, imgSelectionElement; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: name = ""; value = ""; if (imgElement instanceof HTMLInputElement) { name = imgElement.name; value = imgElement.value; } if (Helper_1.Helper.isNull(name) || name === "") { name = imgElement.dataset["name"]; } if (Helper_1.Helper.isNull(value) || value === "") { value = imgElement.dataset["value"]; } imgSelectionElement = new ImageSelectionElement_1.ImageSelectionElement(name); if (!(value && value.trim() !== "")) { _context3.next = 15; break; } _context3.prev = 7; _context3.next = 10; return imgSelectionElement.setValue(JSON.parse(value)); case 10: _context3.next = 15; break; case 12: _context3.prev = 12; _context3.t0 = _context3["catch"](7); console.warn(_context3.t0); case 15: this.imageSelectionElements[name] = imgSelectionElement; _context3.t1 = imgElement; _context3.next = 19; return imgSelectionElement.getView(); case 19: _context3.t2 = _context3.sent; _context3.t1.replaceWith.call(_context3.t1, _context3.t2); case 21: case "end": return _context3.stop(); } } }, _callee3, this, [[7, 12]]); })); }, true); case 2: case "end": return _context4.stop(); } } }, _callee4, this); })); } }, { key: "setImagesForImageSelectionElement", value: function setImagesForImageSelectionElement(name, images) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _context5.next = 2; return this.imageSelectionElementReady; case 2: if (this.imageSelectionElements[name]) { this.imageSelectionElements[name].setImages(images); } case 3: case "end": return _context5.stop(); } } }, _callee5, this); })); } }, { key: "addValidator", value: function addValidator(validatorCallback) { this._validators.push(validatorCallback); } }, { key: "onError", value: function onError(errorHandler) { this.errorCallback = errorHandler; } }, { key: "addEditor", value: function addEditor(e) { this._editors.push(e); } }, { key: "doSubmit", value: function doSubmit(e) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var res; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: if (this._isBusy) { _context6.next = 5; break; } _context6.next = 3; return this.submit(); case 3: res = _context6.sent; return _context6.abrupt("return", res); case 5: return _context6.abrupt("return", false); case 6: case "end": return _context6.stop(); } } }, _callee6, this); })); } }, { key: "setValues", value: function setValues(valuePromise) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { var values, k, options, val, option, previewImage; return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: this.setIsBusy(true); _context7.next = 3; return Promise.resolve(valuePromise); case 3: values = _context7.sent; this.setIsBusy(false); for (k in values) { if (Helper_1.Helper.isNotNull(this.formElem.elements[k])) { if (Helper_1.Helper.isNotNull(this.formElem.elements[k].options) && Helper_1.Helper.isNotNull(values[k + "Options"])) { options = this.formElem.elements[k].options; for (val in values[k + "Options"]) { option = document.createElement("option"); option.value = val; option.innerText = values[k + "Options"][val]; options.add(option); } } if (this.formElem.elements[k].type && (this.formElem.elements[k].type === "checkbox" || this.formElem.elements[k].type === "radio")) { this.formElem.elements[k].checked = this.formElem.elements[k].value == values[k]; } else if (this.formElem.elements[k].type && this.formElem.elements[k].type === "file") { if (this.formElem.elements[k + "-hidden"]) { this.formElem.elements[k + "-hidden"].value = values[k]; } if (this.formElem.elements[k].accept && this.formElem.elements[k].accept.indexOf("image") !== -1) { previewImage = this.formElem.querySelector("." + k + "-preview"); if (previewImage) { previewImage.src = values[k]; } } } else { this.formElem.elements[k].value = Helper_1.Helper.htmlspecialcharsDecode(values[k]); if (this.formElem.elements[k].classList) { if (Helper_1.Helper.isNotNull(values[k]) && ("" + values[k]).trim() !== "") { this.formElem.elements[k].classList.add("notEmpty"); } else { this.formElem.elements[k].classList.remove("notEmpty"); } } } } if (Helper_1.Helper.isNotNull(this.imageSelectionElements[k])) { console.log("setImg", k, values[k]); this.imageSelectionElements[k].setValue(values[k]); } } return _context7.abrupt("return", this); case 7: case "end": return _context7.stop(); } } }, _callee7, this); })); } }, { key: "getValues", value: function getValues(filesToBase64) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { var valuesFormData, values; return regeneratorRuntime.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: valuesFormData = new FormData(this.formElem); values = Array.from(valuesFormData["entries"]()).reduce(function (memo, pair) { return Object.assign(Object.assign({}, memo), _defineProperty({}, pair[0], pair[1])); }, {}); if (!Helper_1.Helper.nonNull(filesToBase64, true)) { _context8.next = 6; break; } _context8.next = 5; return Form.filesToBase64(values); case 5: values = _context8.sent; case 6: return _context8.abrupt("return", values); case 7: case "end": return _context8.stop(); } } }, _callee8, this); })); } }, { key: "setElementChangeListener", value: function setElementChangeListener(listener) { this._elementChangeListener = listener; } }, { key: "clearErrors", value: function clearErrors() { var _this3 = this; Object.keys(this.formElem.elements).forEach(function (elemKey) { _this3.formElem.elements[elemKey].setCustomValidity(""); }); } }, { key: "setErrors", value: function setErrors(errors) { var hasElem = false; var firstError = null; // let notCatchedErrors = []; for (var k in errors) { if (Helper_1.Helper.isNotNull(this.formElem.elements[k]) && this.formElem.elements[k].type !== "hidden" && Helper_1.Helper.isNull(this.formElem.elements[k].readonly) && (Helper_1.Helper.isNull(this.formElem.elements[k].disabled) || !this.formElem.elements[k].disabled)) { this.formElem.elements[k].setCustomValidity(Translator_1.Translator.translate(Helper_1.Helper.nonNull(errors[k], "form-default-error"))); hasElem = true; } else { new Toast_1.Toast(Helper_1.Helper.nonNull(errors[k], "form-default-error")).show(); } // if (Helper.isNull(firstError)) { // firstError = ; // } } // if (!hasElem && Helper.isNotNull(firstError)) { // for (let k in this._formElem.elements) { // if (this._formElem.elements[k].type !== "hidden") { // this._formElem.elements[k].setCustomValidity(Translator.translate(firstError)); // hasElem = true; // break; // } // } // } if (hasElem) { "reportValidity" in this.formElem && this.formElem.reportValidity(); } } }, { key: "setIsBusy", value: function setIsBusy(isBusy) { this._isBusy = isBusy; if (this._isBusy) { this.formElem.classList.add("sending"); } else { this.formElem.classList.remove("sending"); } } }, { key: "submit", value: function submit() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { var res; return regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: this._editors.forEach(function (e) { return e.updateSourceElement(); }); this.setIsBusy(true); _context9.next = 4; return this.validate(); case 4: if (!_context9.sent) { _context9.next = 24; break; } res = false; _context9.prev = 6; _context9.t0 = this; _context9.next = 10; return this.getValues(); case 10: _context9.t1 = _context9.sent; _context9.t2 = this; _context9.next = 14; return _context9.t0._submitHandler.call(_context9.t0, _context9.t1, _context9.t2); case 14: res = _context9.sent; _context9.next = 20; break; case 17: _context9.prev = 17; _context9.t3 = _context9["catch"](6); console.error(_context9.t3); case 20: _context9.prev = 20; this.setIsBusy(false); return _context9.finish(20); case 23: return _context9.abrupt("return", res); case 24: this.setIsBusy(false); return _context9.abrupt("return", false); case 26: case "end": return _context9.stop(); } } }, _callee9, this, [[6, 17, 20, 23]]); })); } }, { key: "validate", value: function validate() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee11() { var _this4 = this; var values, res, hasErrors, errors; return regeneratorRuntime.wrap(function _callee11$(_context11) { while (1) { switch (_context11.prev = _context11.next) { case 0: if (!("reportValidity" in this.formElem && !this.formElem.reportValidity())) { _context11.next = 2; break; } return _context11.abrupt("return", false); case 2: _context11.next = 4; return this.getValues(); case 4: values = _context11.sent; _context11.next = 7; return Helper_1.Helper.asyncForEach(this._validators, function (validator) { return __awaiter(_this4, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee10() { return regeneratorRuntime.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: return _context10.abrupt("return", validator(values, this)); case 1: case "end": return _context10.stop(); } } }, _callee10, this); })); }, true); case 7: res = _context11.sent; hasErrors = false; errors = {}; res.forEach(function (value) { if (value !== true) { hasErrors = true; if (_typeof(value) === "object") { for (var k in value) { errors[k] = value[k]; } } } }); if (!hasErrors) { _context11.next = 15; break; } _context11.next = 14; return this.setErrors(errors); case 14: return _context11.abrupt("return", false); case 15: return _context11.abrupt("return", true); case 16: case "end": return _context11.stop(); } } }, _callee11, this); })); } }, { key: "onSubmit", value: function onSubmit(callback) { this._submitCallback = callback; } }, { key: "getFormElement", value: function getFormElement() { return this.formElem; } }], [{ key: "filesToBase64", value: function filesToBase64(values) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee12() { var filePromises; return regeneratorRuntime.wrap(function _callee12$(_context12) { while (1) { switch (_context12.prev = _context12.next) { case 0: filePromises = []; Object.keys(values).forEach(function (key) { if (values[key] instanceof Blob) { filePromises.push(new Promise(function (resolve, reject) { var reader = new FileReader(); reader.onload = function () { return resolve(reader.result); }; reader.onerror = function (error) { return reject(error); }; reader.readAsDataURL(values[key]); }).then(function (base64) { return values[key] = base64; })); } }); _context12.next = 4; return Promise.all(filePromises); case 4: return _context12.abrupt("return", values); case 5: case "end": return _context12.stop(); } } }, _callee12); })); } }]); return Form; }(); exports.Form = Form; /***/ }), /* 519 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/imageSelectionElement.html"; /***/ }), /* 520 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ScaleHelper = void 0; var js_helper_1 = __webpack_require__(17); var ScaleHelper = /*#__PURE__*/function () { function ScaleHelper() { _classCallCheck(this, ScaleHelper); } _createClass(ScaleHelper, [{ key: "scaleTo", value: function scaleTo(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, animationDelay, addListener) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var newFontSize, self, listener; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: addListener = js_helper_1.Helper.nonNull(addListener, true); animationDelay = js_helper_1.Helper.nonNull(animationDelay, 0); _context.next = 4; return this._getNewFontSize(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, animationDelay === 0); case 4: newFontSize = _context.sent; if (!(animationDelay > 0)) { _context.next = 8; break; } _context.next = 8; return new Promise(function (r) { setTimeout(r, animationDelay); fontElement.style.fontSize = newFontSize + "px"; }); case 8: self = this; listener = function listener() { return new Promise(function (resolve) { var timeout = typeof addListener === 'number' ? addListener : 255; setTimeout(function () { resolve(self.scaleTo(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, animationDelay, false)); }, timeout); }); }; if (addListener !== false) { window.addEventListener("resize", listener); } return _context.abrupt("return", listener); case 12: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "scaleToFull", value: function scaleToFull(fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, animDelay, addListener) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", this.scaleTo(1, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, animDelay, addListener)); case 1: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "_getNewFontSize", value: function _getNewFontSize(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, setFontSize) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var hasNoTransitionClass, numChanged, oldDiffIndex, oldDiff, i, beforeFontSize, currentFontSize, widthDiff, heightDiff, containerWidth, containerHeight, containerStyle, newDiff; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: margin = js_helper_1.Helper.nonNull(margin, 10); ignoreHeight = js_helper_1.Helper.nonNull(ignoreHeight, false); ignoreWidth = js_helper_1.Helper.nonNull(ignoreWidth, false); fontWeight = js_helper_1.Helper.nonNull(fontWeight, fontElement.innerHTML.length); setFontSize = js_helper_1.Helper.nonNull(setFontSize, true); hasNoTransitionClass = container.classList.contains("no-transition"); if (!hasNoTransitionClass) { container.classList.add("no-transition"); } numChanged = 5; oldDiffIndex = 0; oldDiff = []; for (i = 0; i < numChanged; i++) { oldDiff.push(0); } beforeFontSize = fontElement.style.fontSize; currentFontSize = 1; widthDiff = 0; heightDiff = 0; containerWidth = 0; containerHeight = 0; case 17: currentFontSize += oldDiff[oldDiffIndex] / (fontWeight + 1); fontElement.style.fontSize = currentFontSize + 'px'; containerStyle = window.getComputedStyle(container); containerWidth = parseFloat(containerStyle.getPropertyValue("width").replace('px', '')); containerHeight = parseFloat(containerStyle.getPropertyValue("height").replace('px', '')); widthDiff = containerWidth - fontElement.offsetWidth; heightDiff = containerHeight - fontElement.offsetHeight; oldDiffIndex = (oldDiffIndex + 1) % numChanged; newDiff = ignoreWidth ? heightDiff : ignoreHeight ? widthDiff : Math.min(widthDiff, heightDiff); if (!(newDiff === oldDiff[(oldDiffIndex + 1) % numChanged])) { _context3.next = 28; break; } return _context3.abrupt("break", 30); case 28: oldDiff[oldDiffIndex] = newDiff; case 29: if ((widthDiff > (1 - scale) * containerWidth || ignoreWidth) && (heightDiff > (1 - scale) * containerHeight || ignoreHeight)) { _context3.next = 17; break; } case 30: currentFontSize -= margin; fontElement.style.fontSize = setFontSize ? currentFontSize + "px" : beforeFontSize; if (hasNoTransitionClass) { _context3.next = 36; break; } _context3.next = 35; return new Promise(function (r) { setTimeout(r, 50); }); case 35: container.classList.remove("no-transition"); case 36: return _context3.abrupt("return", currentFontSize); case 37: case "end": return _context3.stop(); } } }, _callee3); })); } }]); return ScaleHelper; }(); exports.ScaleHelper = ScaleHelper; /***/ }), /* 521 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.PromiseHelper = void 0; var Helper_1 = __webpack_require__(15); var PromiseHelper = /*#__PURE__*/function () { function PromiseHelper() { _classCallCheck(this, PromiseHelper); } _createClass(PromiseHelper, null, [{ key: "delay", value: function delay(milliseconds) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: return _context.abrupt("return", new Promise(function (r) { setTimeout(r, milliseconds); })); case 1: case "end": return _context.stop(); } } }, _callee); })); } }, { key: "tryMultipleTimes", value: function tryMultipleTimes(func, times, delay) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var i, res; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: times = Helper_1.Helper.nonNull(times, 5); delay = Helper_1.Helper.nonNull(delay, 50); i = 0; case 3: if (!(i < times)) { _context2.next = 16; break; } _context2.next = 6; return func(); case 6: res = _context2.sent; if (!(res !== undefined)) { _context2.next = 11; break; } return _context2.abrupt("return", res); case 11: _context2.next = 13; return PromiseHelper.delay(delay); case 13: i++; _context2.next = 3; break; case 16: return _context2.abrupt("return", undefined); case 17: case "end": return _context2.stop(); } } }, _callee2); })); } }, { key: "tryUntilTimeout", value: function tryUntilTimeout(func, timeout, delay) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var _this = this; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: timeout = Helper_1.Helper.nonNull(timeout, 500); delay = Helper_1.Helper.nonNull(delay, 50); return _context4.abrupt("return", new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var shouldRun, res; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: shouldRun = true; PromiseHelper.delay(timeout).then(function () { reject(new Error("timeout")); shouldRun = false; }); case 2: if (!shouldRun) { _context3.next = 13; break; } _context3.next = 5; return func(); case 5: res = _context3.sent; if (!(res !== undefined)) { _context3.next = 9; break; } resolve(res); return _context3.abrupt("break", 13); case 9: _context3.next = 11; return PromiseHelper.delay(delay); case 11: _context3.next = 2; break; case 13: case "end": return _context3.stop(); } } }, _callee3); })); })); case 3: case "end": return _context4.stop(); } } }, _callee4); })); } }]); return PromiseHelper; }(); exports.PromiseHelper = PromiseHelper; /***/ }), /* 522 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/shareDialog.html"; /***/ }), /* 523 */ /***/ (function(module) { module.exports = JSON.parse("{\"Sunday\":\"Sonntag\",\"Monday\":\"Montag\",\"Tuesday\":\"Dienstag\",\"Wednesday\":\"Mittwoch\",\"Thursday\":\"Donnerstag\",\"Friday\":\"Freitag\",\"Saturday\":\"Samstag\",\"January\":\"Januar\",\"February\":\"Februar\",\"March\":\"März\",\"April\":\"April\",\"May\":\"Mai\",\"June\":\"Juni\",\"July\":\"Juli\",\"August\":\"August\",\"September\":\"September\",\"October\":\"Oktober\",\"November\":\"November\",\"December\":\"Dezember\",\"Sun\":\"So\",\"Mon\":\"Mo\",\"Tue\":\"Di\",\"Wed\":\"Mi\",\"Thu\":\"Do\",\"Fri\":\"Fr\",\"Sat\":\"Sa\",\"Jan\":\"Jan\",\"Feb\":\"Feb\",\"Mar\":\"Mär\",\"Apr\":\"Apr\",\"Jun\":\"Jun\",\"Jul\":\"Jul\",\"Aug\":\"Aug\",\"Sep\":\"Sep\",\"Oct\":\"Okt\",\"Nov\":\"Nov\",\"Dec\":\"Dez\",\"cannot open popups\":\"Bitte erlaube Popups, um die Funktion nutzen zu können.\"}"); /***/ }), /* 524 */ /***/ (function(module) { module.exports = JSON.parse("{\"Sunday\":\"Sunday\",\"Monday\":\"Monday\",\"Tuesday\":\"Tuesday\",\"Wednesday\":\"Wednesday\",\"Thursday\":\"Thursday\",\"Friday\":\"Friday\",\"Saturday\":\"Saturday\",\"January\":\"January\",\"February\":\"February\",\"March\":\"March\",\"April\":\"April\",\"May\":\"May\",\"June\":\"June\",\"July\":\"July\",\"August\":\"August\",\"September\":\"September\",\"October\":\"October\",\"November\":\"November\",\"December\":\"December\",\"Sun\":\"Sun\",\"Mon\":\"Mon\",\"Tue\":\"Tue\",\"Wed\":\"Wed\",\"Thu\":\"Thu\",\"Fri\":\"Fri\",\"Sat\":\"Sat\",\"Jan\":\"Jan\",\"Feb\":\"Feb\",\"Mar\":\"Mar\",\"Apr\":\"Apr\",\"Jun\":\"Jun\",\"Jul\":\"Jul\",\"Aug\":\"Aug\",\"Sep\":\"Sep\",\"Oct\":\"Oct\",\"Nov\":\"Nov\",\"Dec\":\"Dec\",\"cannot open popups\":\"Please allow popups to use this function.\"}"); /***/ }), /* 525 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function get() { return m[k]; } }); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); var __exportStar = this && this.__exportStar || function (m, exports) { for (var p in m) { if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); } }; Object.defineProperty(exports, "__esModule", { value: true }); __exportStar(__webpack_require__(246), exports); /***/ }), /* 526 */ /***/ (function(module) { module.exports = JSON.parse("{\"login\":\"Login\",\"logout\":\"Logout\",\"email\":\"E-Mail\",\"password\":\"Passwort\",\"email or password is wrong\":\"Die E-Mail oder das Passwort stimmt nicht!\",\"stay logged in\":\"Angemeldet bleiben\",\"goodbye\":\"Auf Wiedersehen\",\"welcome back\":\"Willkommen zurück\",\"registration successful\":\"Registrierung erfolgreich\",\"registration\":\"Anmelden\",\"I have read and accepted the terms and conditions.\":\"Ich habe die AGB gelesen und akzeptiert.\",\"retype password\":\"Passwort wiederholen\",\"the passwords do not match.\":\"Die Passwörter stimmen nicht überein.\",\"username\":\"Username\",\"email is already in use.\":\"Die E-Mail wird bereits verwendet.\",\"username is already in use.\":\"Der Username ist bereits vergeben.\",\"wrong email or password\":\"Falsche E-Mail oder falsches Passwort\",\"wrong rights\":\"Keine Berechtigung!\",\"passwort vergessen?\":\"Passwort vergessen?\",\"password forgotten\":\"Passwort vergessen\",\"request new password\":\"Neues Passwort setzen\",\"email is not in our database\":\"Die E-Mail ist nicht registriert!\",\"forgot-password-mail sent\":\"Es wurde eine E-Mail an die angegebene Adresse gesendet.\",\"password resetted\":\"Das Passwort wurde erfolgreich zurückgesetzt.\",\"token is not valid\":\"Der Link ist nicht mehr gültig.\",\"reset password\":\"Passwort zurücksetzen\",\"repeat password\":\"Passwort wiederholen\",\"token not valid\":\"Der Link ist nicht mehr gültig\",\"Not allowed\":\"Nicht erlaubt\",\"You don't have the rights to do this!\":\"Du hast nicht die Berechtigung, um das zu tun!\",\"If you are not logged in, please log in and try again.\":\"Wenn du noch nicht eingeloggt bist, logge dich ein und versuche es erneut.\"}"); /***/ }), /* 527 */ /***/ (function(module) { module.exports = JSON.parse("{\"login\":\"Login\",\"logout\":\"Logout\",\"email\":\"E-Mail\",\"password\":\"Password\",\"email or password is wrong\":\"The e-mail or password is incorrect!\",\"stay logged in\":\"Stay logged in\",\"goodbye\":\"Goodbye\",\"welcome back\":\"Welcome back\",\"registration successful\":\"Registration successful\",\"registration\":\"Registration\",\"I have read and accepted the terms and conditions.\":\"I have read and accepted the terms and conditions.\",\"retype password\":\"Retype Password\",\"the passwords do not match.\":\"The passwords do not match.\",\"username\":\"Username\",\"email is already in use.\":\"This e-mail is already in use.\",\"username is already in use.\":\"This Username is already taken.\",\"wrong email or password\":\"Wrong E-Mail or Password!\",\"wrong rights\":\"Wrong Rights!\",\"passwort vergessen?\":\"password forgotten?\",\"password forgotten\":\"Password Forgotten\",\"request new password\":\"Request New Password\",\"email is not in our database\":\"The given E-Mailaddress is not registered!\",\"forgot-password-mail sent\":\"We sent you an E-Mail with instructions\",\"password resetted\":\"The password was successfully changed.\",\"token is not valid\":\"The given link is no longer valid.\",\"reset password\":\"Reset Password\",\"repeat password\":\"Repeat Password\",\"token not valid\":\"The link is not valid any more\",\"Not allowed\":\"Not allowed\",\"You don't have the rights to do this!\":\"You don't have the rights to do this!\",\"If you are not logged in, please log in and try again.\":\"If you are not logged in, please log in and try again.\"}"); /***/ }), /* 528 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/loginSite.html"; /***/ }), /* 529 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/forgotPasswordSite.html"; /***/ }), /* 530 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/notAllowedSite.html"; /***/ }), /* 531 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/selectUserDialog.html"; /***/ }), /* 532 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.OfflineUserManager = void 0; var client_1 = __webpack_require__(132); var client_2 = __webpack_require__(4); var UserManager_1 = __webpack_require__(100); var Role_1 = __webpack_require__(203); var User_1 = __webpack_require__(112); var Helper_1 = __webpack_require__(7); var OfflineUserManager = /*#__PURE__*/function (_UserManager_1$UserMa) { _inherits(OfflineUserManager, _UserManager_1$UserMa); var _super = _createSuper(OfflineUserManager); function OfflineUserManager() { var _this; _classCallCheck(this, OfflineUserManager); _this = _super.call(this); _this._userData = { id: null, loggedIn: false, online: true, username: null, email: null, accesses: OfflineUserManager.LOGGED_OUT_ACCESSES }; return _this; } _createClass(OfflineUserManager, [{ key: "_doGetMe", value: function _doGetMe() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var userId, user; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return client_2.NativeStoragePromise.getItem("user-manager-user-id"); case 2: userId = _context.sent; if (!Helper_1.Helper.isNotNull(userId)) { _context.next = 10; break; } _context.next = 6; return User_1.User.findById(userId, User_1.User.getRelations()); case 6: user = _context.sent; if (!(Helper_1.Helper.isNotNull(user) && user.activated && !user.blocked)) { _context.next = 10; break; } _context.next = 10; return this._handleLoginFromUser(user); case 10: return _context.abrupt("return", this._userData); case 11: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "_handleLoginFromUser", value: function _handleLoginFromUser(user) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var _this2 = this; var accesses, roles, roleIds, accessNames; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: accesses = []; roles = user.roles; roleIds = []; roles.forEach(function (role) { roleIds.push(role.id); }); _context3.next = 6; return Role_1.Role.findByIds(roleIds, ["accesses"]); case 6: roles = _context3.sent; _context3.next = 9; return Helper_1.Helper.asyncForEach(roles, function (role) { return __awaiter(_this2, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.t0 = accesses.push; _context2.t1 = accesses; _context2.t2 = _toConsumableArray; _context2.next = 5; return this._getAccessesFromRole(role); case 5: _context2.t3 = _context2.sent; _context2.t4 = (0, _context2.t2)(_context2.t3); _context2.t0.apply.call(_context2.t0, _context2.t1, _context2.t4); case 8: case "end": return _context2.stop(); } } }, _callee2, this); })); }); case 9: accessNames = []; accesses.forEach(function (access) { accessNames.push(access.name); }); this._userData = { id: user.id, loggedIn: true, online: true, username: user.username, email: user.email, accesses: accessNames }; case 12: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "_doLogin", value: function _doLogin(email, password, saveLogin) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var user; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return User_1.User.findOne({ "email": email, "password": this._hashPassword(password), "activated": true, "blocked": false }, undefined, undefined, User_1.User.getRelations()); case 2: user = _context4.sent; if (!user) { _context4.next = 10; break; } _context4.next = 6; return this._handleLoginFromUser(user); case 6: if (!saveLogin) { _context4.next = 9; break; } _context4.next = 9; return client_2.NativeStoragePromise.setItem("user-manager-user-id", user.id); case 9: return _context4.abrupt("return", true); case 10: return _context4.abrupt("return", false); case 11: case "end": return _context4.stop(); } } }, _callee4, this); })); } }, { key: "_doLogout", value: function _doLogout() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: this._userData = { id: null, loggedIn: false, online: true, username: null, email: null, accesses: OfflineUserManager.LOGGED_OUT_ACCESSES }; _context5.next = 3; return client_2.NativeStoragePromise.remove("user-manager-user-id"); case 3: return _context5.abrupt("return", false); case 4: case "end": return _context5.stop(); } } }, _callee5, this); })); } }, { key: "_getAccessesFromRole", value: function _getAccessesFromRole(role) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { var _this3 = this; var accesses, repo, parents; return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: accesses = role.accesses; _context7.next = 3; return client_1.EasySyncClientDb.getInstance()._getRepository(Role_1.Role.getSchemaName()); case 3: repo = _context7.sent; _context7.next = 6; return repo.createQueryBuilder(Role_1.Role.getSchemaName()).leftJoinAndSelect(Role_1.Role.getSchemaName() + '.accesses', "access").leftJoinAndSelect(Role_1.Role.getSchemaName() + '.children', "child").where('child.id = :id', { id: role.id }).getMany(); case 6: parents = _context7.sent; _context7.next = 9; return Helper_1.Helper.asyncForEach(parents, function (role) { return __awaiter(_this3, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var otherAccesses; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _context6.next = 2; return this._getAccessesFromRole(role); case 2: otherAccesses = _context6.sent; accesses.push.apply(accesses, _toConsumableArray(otherAccesses)); case 4: case "end": return _context6.stop(); } } }, _callee6, this); })); }); case 9: return _context7.abrupt("return", accesses); case 10: case "end": return _context7.stop(); } } }, _callee7); })); } }, { key: "_doRegister", value: function _doRegister(email, username, password) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { var errors, users, user; return regeneratorRuntime.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: errors = {}; _context8.next = 3; return Promise.all([User_1.User.findOne({ "email": email }), User_1.User.findOne({ "username": username })]); case 3: users = _context8.sent; if (Helper_1.Helper.isNotNull(users[0])) { errors["email"] = "email is already in use."; } if (Helper_1.Helper.isNotNull(users[1])) { errors["username"] = "username is already in use."; } if (!(Object.keys(errors).length > 0)) { _context8.next = 8; break; } return _context8.abrupt("return", errors); case 8: user = new User_1.User(); _context8.next = 11; return OfflineUserManager._getNewId(); case 11: user.id = _context8.sent; user.email = email; user.password = this._hashPassword(password); user.username = username; user.roles = OfflineUserManager.DEFAULT_ROLES; user.activated = true; _context8.next = 19; return user.save(); case 19: _context8.next = 21; return this.login(email, password); case 21: return _context8.abrupt("return", user); case 22: case "end": return _context8.stop(); } } }, _callee8, this); })); } }, { key: "_hashPassword", value: function _hashPassword(pw) { return pw; } }], [{ key: "_getNewId", value: function _getNewId() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { var user; return regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: if (!Helper_1.Helper.isNull(OfflineUserManager._lastId)) { _context9.next = 5; break; } _context9.next = 3; return User_1.User.findOne(undefined, { "id": "DESC" }); case 3: user = _context9.sent; OfflineUserManager._lastId = user.id; case 5: OfflineUserManager._lastId++; return _context9.abrupt("return", OfflineUserManager._lastId); case 7: case "end": return _context9.stop(); } } }, _callee9); })); } }]); return OfflineUserManager; }(UserManager_1.UserManager); exports.OfflineUserManager = OfflineUserManager; OfflineUserManager.LOGGED_OUT_ACCESSES = UserManager_1.UserManager.OFFLINE_ACCESSES; OfflineUserManager.DEFAULT_ROLES = []; OfflineUserManager._lastId = null; /***/ }), /* 533 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SyncJob_old = void 0; var LastSyncDates_1 = __webpack_require__(129); var client_1 = __webpack_require__(4); var shared_1 = __webpack_require__(17); var EasySyncClientDb_1 = __webpack_require__(128); var typeorm = __webpack_require__(47); var EasySyncPartialModel_1 = __webpack_require__(201); var EasySyncBaseModel_1 = __webpack_require__(78); var ClientFileMedium_1 = __webpack_require__(151); var SyncJob_old = /*#__PURE__*/function () { function SyncJob_old() { _classCallCheck(this, SyncJob_old); this._syncedModels = {}; this._modelNames = []; this._relationshipModels = {}; this._lastSyncDates = {}; this._keyedModelClasses = {}; this._savePromises = []; } _createClass(SyncJob_old, [{ key: "syncInBackgroundIfDataExists", value: function syncInBackgroundIfDataExists(queries) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var copiedQuery, requestQueries; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: this._keyedModelClasses = EasySyncClientDb_1.EasySyncClientDb.getModel(); copiedQuery = shared_1.JsonHelper.deepCopy(queries); requestQueries = this._buildRequestQuery(copiedQuery); _context.next = 5; return this._getLastSyncModels(this._modelNames, requestQueries); case 5: this._lastSyncDates = _context.sent; this._syncPromise = this.sync(queries); if (!Object["values"](this._lastSyncDates).some(function (lastSync) { return lastSync["getLastSynced"]() === 0; })) { _context.next = 10; break; } _context.next = 10; return this._syncPromise; case 10: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "getSyncPromise", value: function getSyncPromise() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", this._syncPromise); case 1: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "sync", value: function sync(queries) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var _this = this; var requestQueries, saveResults, lastSyncPromises, finalRes; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: this._keyedModelClasses = EasySyncClientDb_1.EasySyncClientDb.getModel(); requestQueries = this._buildRequestQuery(queries); if (!shared_1.Helper.isNull(this._lastSyncDates)) { _context3.next = 6; break; } _context3.next = 5; return this._getLastSyncModels(this._modelNames, requestQueries); case 5: this._lastSyncDates = _context3.sent; case 6: _context3.next = 8; return this._doRuns(requestQueries); case 8: saveResults = _context3.sent; _context3.next = 11; return this._handleRelations(); case 11: //Save new lastSync models lastSyncPromises = []; Object.keys(this._lastSyncDates).forEach(function (model) { lastSyncPromises.push(_this._lastSyncDates[model].save()); }); _context3.next = 15; return Promise.all(lastSyncPromises); case 15: //Calculate final result and give it back finalRes = {}; saveResults.forEach(function (res) { if (res) { if (!finalRes[res.model]) { finalRes[res.model] = { "deleted": [], "changed": [] }; } if (res.deleted) { finalRes[res.model]["deleted"] = finalRes[res.model]["deleted"].concat(res.entities); } else { finalRes[res.model]["changed"] = finalRes[res.model]["changed"].concat(res.entities); } } }); if (!(finalRes["FileMedium"] && finalRes["FileMedium"]["changed"])) { _context3.next = 20; break; } _context3.next = 20; return ClientFileMedium_1.ClientFileMedium._handleImages(finalRes["FileMedium"]["changed"]); case 20: return _context3.abrupt("return", finalRes); case 21: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "_doRuns", value: function _doRuns(requestQueries) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var _this2 = this; var newLastSynced, response, offset, shouldAskAgain, _loop; return regeneratorRuntime.wrap(function _callee4$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: //Initialize some variables newLastSynced = null; response = null; offset = 0; shouldAskAgain = false; //Ask for next run until no more runs needed _loop = /*#__PURE__*/regeneratorRuntime.mark(function _loop() { var newRequestQueries; return regeneratorRuntime.wrap(function _loop$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: shouldAskAgain = false; _context4.next = 3; return SyncJob_old._fetchModel(requestQueries, offset); case 3: response = _context4.sent; offset = response["nextOffset"]; //Update newLastSynced if (shared_1.Helper.isNull(newLastSynced)) { newLastSynced = parseInt(response["newLastSynced"]); Object.keys(_this2._lastSyncDates).forEach(function (key) { _this2._lastSyncDates[key].setLastSynced(newLastSynced); }); } //create new request query newRequestQueries = []; response.results.forEach(function (res, i) { if (_this2._extractEntities(res)) { shouldAskAgain = true; newRequestQueries.push(requestQueries[i]); } }); requestQueries = newRequestQueries; case 9: case "end": return _context4.stop(); } } }, _loop); }); case 5: return _context5.delegateYield(_loop(), "t0", 6); case 6: if (shouldAskAgain) { _context5.next = 5; break; } case 7: return _context5.abrupt("return", Promise.all(this._savePromises)); case 8: case "end": return _context5.stop(); } } }, _callee4, this); })); } }, { key: "_handleRelations", value: function _handleRelations() { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var _this3 = this; var mergedRelations, relationPromises; return regeneratorRuntime.wrap(function _callee6$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: mergedRelations = {}; relationPromises = []; Object.keys(this._relationshipModels).forEach(function (modelClassName) { var relationDefinitions = _this3._keyedModelClasses[modelClassName].getRelationDefinitions(); Object.keys(_this3._relationshipModels[modelClassName]).forEach(function (id) { var entity = _this3._relationshipModels[modelClassName][id]["entity"]; var relations = _this3._relationshipModels[modelClassName][id]["relations"]; var entityRelationPromises = []; Object.keys(relations).forEach(function (relation) { //foreach relation load other models and save them here var valuePromise = _this3._handleSingleRelation(relationDefinitions, relation, relations, mergedRelations, entity); entityRelationPromises.push(valuePromise.then(function (value) { entity[relation] = value; })); }); //Save after all relationships has been set relationPromises.push(Promise.all(entityRelationPromises).then(function () { return entity.save(true); })); }); }); //Wait for relation-promises _context7.next = 5; return Promise.all(relationPromises); case 5: _context7.next = 7; return shared_1.Helper.asyncForEach(Object.keys(mergedRelations), function (model) { return __awaiter(_this3, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var entities; return regeneratorRuntime.wrap(function _callee5$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _context6.t0 = shared_1.Helper; _context6.next = 3; return this._keyedModelClasses[model].findByIds(Object.keys(mergedRelations[model]), this._keyedModelClasses[model].getRelations()); case 3: _context6.t1 = _context6.sent; _context6.t2 = function (e) { return e.id; }; entities = _context6.t0.arrayToObject.call(_context6.t0, _context6.t1, _context6.t2); Object.keys(mergedRelations[model]).forEach(function (id) { if (entities[id]) { Object.keys(mergedRelations[model][id]).forEach(function (relation) { if (Array.isArray(mergedRelations[model][id][relation])) { entities[id][relation] = shared_1.Helper.nonNull(entities[id][relation], []); entities[id][relation].push.apply(entities[id][relation], mergedRelations[model][id][relation]); } else { entities[id][relation] = mergedRelations[model][id][relation]; } }); } }); _context6.next = 9; return EasySyncClientDb_1.EasySyncClientDb.getInstance().saveEntity(Object.values(entities)); case 9: case "end": return _context6.stop(); } } }, _callee5, this); })); }, true); case 7: case "end": return _context7.stop(); } } }, _callee6, this); })); } }, { key: "_handleSingleRelation", value: function _handleSingleRelation(relationDefinitions, relationName, relations, mergedRelations, entity) { var _this4 = this; var valuePromise = Promise.resolve(undefined); var target = relationDefinitions[relationName]["target"]; var shouldSync = relationDefinitions[relationName].sync !== false; //is relation a *-to-many relation? if (Array.isArray(relations[relationName])) { if (shouldSync || relations[relationName].every(function (id) { return !shared_1.Helper.isSet(_this4._syncedModels, target, id); })) { valuePromise = this._keyedModelClasses[target].findByIds(relations[relationName]); } else { var targetRelationDefinition = this._keyedModelClasses[target].getRelationDefinitions()[relationDefinitions[relationName]["inverseSide"]]; relations[relationName].filter(function (id) { return !shared_1.Helper.isSet(_this4._relationshipModels, target, id); }).forEach(function (id) { mergedRelations[target] = shared_1.Helper.nonNull(mergedRelations[target], {}); mergedRelations[target][id] = shared_1.Helper.nonNull(mergedRelations[target][id], {}); var otherRelationValue = null; if (targetRelationDefinition.type === "many-to-many" || targetRelationDefinition.type === "one-to-many") { otherRelationValue = shared_1.Helper.nonNull(mergedRelations[target][id][relationDefinitions[relationName]["inverseSide"]], []); otherRelationValue.push(entity); } else { otherRelationValue = entity; } mergedRelations[target][id][relationDefinitions[relationName]["inverseSide"]] = otherRelationValue; }); } } else if (shouldSync || !shared_1.Helper.isSet(this._syncedModels, target, relations[relationName])) { valuePromise = this._keyedModelClasses[target].findById(relations[relationName]); } return valuePromise; } /** * Extract the Entities and saves them(?) for one model * * @param modelRes * @private */ }, { key: "_extractEntities", value: function _extractEntities(modelRes) { var _this5 = this; if (!modelRes) { return false; } var shouldAskAgain = false; var modelClass = this._keyedModelClasses[modelRes["model"]]; var modelName = modelClass.getSchemaName(); var deletedModelsIds = []; var changedModels = []; //split result into deleted and changed/new entities modelRes["entities"].forEach(function (entity) { if (entity.deleted) { deletedModelsIds.push(entity.id); } else { changedModels.push(entity); } }); this._syncedModels[modelName] = shared_1.Helper.nonNull(this._syncedModels[modelName], {}); //convert json to entity and save it this._savePromises.push(modelClass._fromJson(changedModels).then(function (changedEntities) { return __awaiter(_this5, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { var _this6 = this; var relations, newIds, oldObjects, keyedEntities; return regeneratorRuntime.wrap(function _callee7$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: relations = modelClass.getRelationDefinitions(); newIds = []; changedEntities.forEach(function (entity) { _this6._syncedModels[modelName][entity.id] = entity; newIds.push(entity.id); Object.keys(relations).forEach(function (relation) { if (entity[relation]) { _this6._addRelation(modelName, entity, relation); //clear relation entity[relation] = null; } }); }); //Handle partial Models (different ids on client than server) if (!(modelClass.prototype instanceof EasySyncPartialModel_1.EasySyncPartialModel)) { _context8.next = 9; break; } _context8.next = 6; return modelClass.findByIds(newIds); case 6: oldObjects = _context8.sent; keyedEntities = shared_1.Helper.arrayToObject(changedEntities, function (changedEntities) { return changedEntities.id; }); oldObjects.forEach(function (old) { keyedEntities[old.id].clientId = old.clientId; }); case 9: return _context8.abrupt("return", EasySyncClientDb_1.EasySyncClientDb.getInstance().saveEntity(changedEntities).then(function (res) { return { "model": modelName, "entities": res, "deleted": false }; }).catch(function (e) { console.error(e); return Promise.reject(e); })); case 10: case "end": return _context8.stop(); } } }, _callee7); })); })); //Deletion of the entities this._savePromises.push(EasySyncClientDb_1.EasySyncClientDb.getInstance().deleteEntity(deletedModelsIds, modelClass).then(function (res) { return { "model": modelName, "entities": res, "deleted": true }; }).catch(function (e) { console.error(e); return Promise.reject(e); })); if (modelRes.shouldAskAgain) { shouldAskAgain = true; } return shouldAskAgain; } }, { key: "_buildRequestQuery", value: function _buildRequestQuery(queries) { var _this7 = this; var requestQueries = []; //initializing query queries.forEach(function (query) { if (query.prototype instanceof EasySyncBaseModel_1.EasySyncBaseModel) { query = { model: query, where: {} }; } query.model = query.model.getSchemaName(); _this7._modelNames.push(query.model); requestQueries.push(query); var key = "" + query.model + JSON.stringify(query.where); if (shared_1.Helper.isNotNull(_this7._lastSyncDates[key])) { query["lastSynced"] = _this7._lastSyncDates[key].getLastSynced(); } }); return requestQueries; } }, { key: "_getLastSyncModels", value: function _getLastSyncModels(modelNames, requestQueries) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { var lastSyncModelsArray, lastSyncDates; return regeneratorRuntime.wrap(function _callee8$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _context9.next = 2; return LastSyncDates_1.LastSyncDates.find({ "model": typeorm.In(modelNames) }); case 2: lastSyncModelsArray = _context9.sent; lastSyncDates = shared_1.Helper.arrayToObject(lastSyncModelsArray, function (model) { return "" + model.getModel() + JSON.stringify(model.where); }); requestQueries.forEach(function (query) { var key = "" + query.model + JSON.stringify(query.where); if (shared_1.Helper.isNull(lastSyncDates[key])) { var lastSyncDate = new LastSyncDates_1.LastSyncDates(); lastSyncDate.setModel(query.model); lastSyncDate.where = query.where; lastSyncDate.setLastSynced(0); lastSyncDates[key] = lastSyncDate; } query["lastSynced"] = lastSyncDates[key].getLastSynced(); }); return _context9.abrupt("return", lastSyncDates); case 6: case "end": return _context9.stop(); } } }, _callee8); })); } }, { key: "_addRelation", value: function _addRelation(modelName, entity, relation) { this._relationshipModels[modelName] = shared_1.Helper.nonNull(this._relationshipModels[modelName], {}); this._relationshipModels[modelName][entity.id] = shared_1.Helper.nonNull(this._relationshipModels[modelName][entity.id], {}); this._relationshipModels[modelName][entity.id]["entity"] = entity; this._relationshipModels[modelName][entity.id]["relations"] = shared_1.Helper.nonNull(this._relationshipModels[modelName][entity.id]["relations"], {}); this._relationshipModels[modelName][entity.id]["relations"][relation] = entity[relation]; return this._relationshipModels; } }], [{ key: "_fetchModel", value: function _fetchModel(query, offset) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { return regeneratorRuntime.wrap(function _callee9$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: _context10.next = 2; return client_1.DataManager.load(SyncJob_old.SYNC_PATH_PREFIX + client_1.DataManager.buildQuery({ "queries": JSON.stringify(query), "offset": offset })); case 2: return _context10.abrupt("return", _context10.sent); case 3: case "end": return _context10.stop(); } } }, _callee9); })); } }]); return SyncJob_old; }(); exports.SyncJob_old = SyncJob_old; SyncJob_old.SYNC_PATH_PREFIX = "sync"; /***/ }), /* 534 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ModifyEntitySite = void 0; var MenuSite_1 = __webpack_require__(69); var Form_1 = __webpack_require__(210); var js_helper_1 = __webpack_require__(17); var EasySyncBaseModel_1 = __webpack_require__(78); var ModifyEntitySite = /*#__PURE__*/function (_MenuSite_1$MenuSite) { _inherits(ModifyEntitySite, _MenuSite_1$MenuSite); var _super2 = _createSuper(ModifyEntitySite); function ModifyEntitySite(siteManager, view, model, menuTemplate) { var _this; _classCallCheck(this, ModifyEntitySite); _this = _super2.call(this, siteManager, view, menuTemplate); _this._formSelector = ".entity-form"; _this._ckEditorConfig = { ".editor": { toolbar: ['bold', 'italic', 'link', 'bulletedList', 'numberedList', 'blockQuote'], removePlugins: ["Heading", "Image", "ImageCaption", "ImageStyle", "ImageToolbar", "ImageUpload", "Table", "TableToolbar", "MediaEmbed", "CKFinderUploadAdapter"], language: "de" } }; _this._entity = null; _this._model = model; return _this; } _createClass(ModifyEntitySite, [{ key: "getEntityFromParameters", value: function getEntityFromParameters(constructParameters) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var entity; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (this._model.prototype instanceof EasySyncBaseModel_1.EasySyncBaseModel) { _context.next = 2; break; } throw { "error": "wrong class given! Expected EasySyncBaseModel, given " + this._model.name }; case 2: entity = null; if (js_helper_1.Helper.isSet(constructParameters, "id")) { entity = this._model.findById(constructParameters["id"], this._model.getRelations()); } if (js_helper_1.Helper.isNull(entity)) { entity = new this._model(); } return _context.abrupt("return", entity); case 6: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "onConstruct", value: function onConstruct(constructParameters) { var _this2 = this; var _super = Object.create(null, { onConstruct: { get: function get() { return _get(_getPrototypeOf(ModifyEntitySite.prototype), "onConstruct", _this2); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var res, entity; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: res = _super.onConstruct.call(this, constructParameters); _context2.next = 3; return this.getEntityFromParameters(constructParameters); case 3: entity = _context2.sent; if (entity !== null) { this.setEntity(entity); } return _context2.abrupt("return", res); case 6: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "setEntity", value: function setEntity(entity) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var values; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: this._entity = entity; _context3.next = 3; return this._viewLoadedPromise; case 3: _context3.next = 5; return this.dehydrate(this._entity); case 5: values = _context3.sent; if (!js_helper_1.Helper.isNotNull(values)) { _context3.next = 9; break; } _context3.next = 9; return this._form.setValues(values); case 9: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "hydrate", value: function hydrate(values, entity) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var schemaDefinition; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: schemaDefinition = entity.constructor.getSchemaDefinition(); Object.keys(schemaDefinition.columns).forEach(function (column) { if (js_helper_1.Helper.isSet(values, column)) { entity[column] = values[column]; } }); return _context4.abrupt("return", entity); case 3: case "end": return _context4.stop(); } } }, _callee4); })); } }, { key: "dehydrate", value: function dehydrate(entity) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var values, schemaDefinition; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: values = {}; schemaDefinition = entity.constructor.getSchemaDefinition(); Object.keys(schemaDefinition.columns).forEach(function (column) { if (js_helper_1.Helper.isSet(entity, column)) { values[column] = entity[column]; } }); return _context5.abrupt("return", values); case 4: case "end": return _context5.stop(); } } }, _callee5); })); } }, { key: "validate", value: function validate(values, form) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: return _context6.abrupt("return", true); case 1: case "end": return _context6.stop(); } } }, _callee6); })); } }, { key: "saveListener", value: function saveListener() { this.finish(); } }, { key: "save", value: function save(values) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { var entity; return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: _context7.next = 2; return this.hydrate(values, this._entity); case 2: entity = _context7.sent; _context7.next = 5; return entity.save(); case 5: case "end": return _context7.stop(); } } }, _callee7, this); })); } }, { key: "onViewLoaded", value: function onViewLoaded() { var _this3 = this; var _super = Object.create(null, { onViewLoaded: { get: function get() { return _get(_getPrototypeOf(ModifyEntitySite.prototype), "onViewLoaded", _this3); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee11() { var _this4 = this; var res; return regeneratorRuntime.wrap(function _callee11$(_context11) { while (1) { switch (_context11.prev = _context11.next) { case 0: res = _super.onViewLoaded.call(this); this._form = new Form_1.Form(this.findBy(this._formSelector), function (values) { return __awaiter(_this4, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { return regeneratorRuntime.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: this.showLoadingSymbol(); _context8.prev = 1; _context8.next = 4; return this.save(values); case 4: this.saveListener(); _context8.next = 11; break; case 7: _context8.prev = 7; _context8.t0 = _context8["catch"](1); console.error(_context8.t0); this._form.setErrors({ "error": _context8.t0.message }); case 11: _context8.prev = 11; this.removeLoadingSymbol(); return _context8.finish(11); case 14: case "end": return _context8.stop(); } } }, _callee8, this, [[1, 7, 11, 14]]); })); }); if (js_helper_1.Helper.isNotNull(window["CKEditor"])) { Object.keys(this._ckEditorConfig).forEach(function (selector) { _this4.findBy(selector, true).forEach(function (e) { return __awaiter(_this4, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { return regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _context9.t0 = this._form; _context9.next = 3; return CKEditor.create(e, this._ckEditorConfig[selector]); case 3: _context9.t1 = _context9.sent; _context9.t0.addEditor.call(_context9.t0, _context9.t1); case 5: case "end": return _context9.stop(); } } }, _callee9, this); })); }); }); } this._form.addValidator(function (values) { return __awaiter(_this4, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee10() { return regeneratorRuntime.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: _context10.next = 2; return this.validate(values, this._form); case 2: return _context10.abrupt("return", _context10.sent); case 3: case "end": return _context10.stop(); } } }, _callee10, this); })); }); return _context11.abrupt("return", res); case 5: case "end": return _context11.stop(); } } }, _callee11, this); })); } }]); return ModifyEntitySite; }(MenuSite_1.MenuSite); exports.ModifyEntitySite = ModifyEntitySite; /***/ }), /* 535 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SetupEasySync1000000000500 = void 0; var typeorm_1 = __webpack_require__(47); var cordova_sites_database_1 = __webpack_require__(20); var SetupEasySync1000000000500 = /*#__PURE__*/function () { function SetupEasySync1000000000500() { _classCallCheck(this, SetupEasySync1000000000500); } _createClass(SetupEasySync1000000000500, [{ key: "up", value: function up(queryRunner) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return queryRunner.dropTable("last_sync_dates", true); case 2: _context.next = 4; return this._addLastSyncDates(queryRunner); case 4: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "_addLastSyncDates", value: function _addLastSyncDates(queryRunner) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var lastSyncDatesTable; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: lastSyncDatesTable = new typeorm_1.Table({ name: "last_sync_dates", columns: [{ name: "id", type: "Integer", isPrimary: true, isGenerated: true, generationStrategy: "increment" }, { name: "model", type: cordova_sites_database_1.BaseDatabase.TYPES.STRING, isNullable: true }, { name: "lastSynced", type: cordova_sites_database_1.BaseDatabase.TYPES.DATE, isNullable: true }, { name: "where", type: cordova_sites_database_1.BaseDatabase.TYPES.TEXT }] }); _context2.next = 3; return queryRunner.createTable(lastSyncDatesTable, true); case 3: return _context2.abrupt("return", _context2.sent); case 4: case "end": return _context2.stop(); } } }, _callee2); })); } }, { key: "down", value: function down(queryRunner) { return undefined; } }]); return SetupEasySync1000000000500; }(); exports.SetupEasySync1000000000500 = SetupEasySync1000000000500; /***/ }), /* 536 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ChangeUserSite = void 0; var MenuSite_1 = __webpack_require__(69); var UserSite_1 = __webpack_require__(126); var Helper_1 = __webpack_require__(7); var DataManager_1 = __webpack_require__(59); var client_1 = __webpack_require__(4); var ViewHelper_1 = __webpack_require__(27); var UserMenuAction_1 = __webpack_require__(150); var LoginSite_1 = __webpack_require__(149); var SelectUserDialog_1 = __webpack_require__(274); var view = __webpack_require__(537); var ChangeUserSite = /*#__PURE__*/function (_MenuSite_1$MenuSite) { _inherits(ChangeUserSite, _MenuSite_1$MenuSite); var _super2 = _createSuper(ChangeUserSite); function ChangeUserSite(siteManager) { var _this; _classCallCheck(this, ChangeUserSite); _this = _super2.call(this, siteManager, view); _this.addDelegate(new UserSite_1.UserSite(_assertThisInitialized(_this), ChangeUserSite.ACCESS)); return _this; } _createClass(ChangeUserSite, [{ key: "onConstruct", value: function onConstruct(constructParameters) { var _this2 = this; var _super = Object.create(null, { onConstruct: { get: function get() { return _get(_getPrototypeOf(ChangeUserSite.prototype), "onConstruct", _this2); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var res, data; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: res = _super.onConstruct.call(this, constructParameters); if (!Helper_1.Helper.isSet(constructParameters, "id")) { _context.next = 5; break; } _context.next = 4; return DataManager_1.DataManager.load(ChangeUserSite.LOAD_USER_INFOS_URL + DataManager_1.DataManager.buildQuery({ id: constructParameters["id"] })); case 4: data = _context.sent; case 5: if (!data || data.success !== true) { new client_1.Toast(data.message).show(); this.finish(); } this._roles = data.roles; this._userData = data.userData; return _context.abrupt("return", res); case 9: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "onViewLoaded", value: function onViewLoaded() { var _this3 = this; var _super = Object.create(null, { onViewLoaded: { get: function get() { return _get(_getPrototypeOf(ChangeUserSite.prototype), "onViewLoaded", _this3); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var res; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: res = _super.onViewLoaded.call(this); this.findBy("#username").innerText = this._userData.username; this._hasRoleContainer = this.findBy("#has-role-container"); this._availableRoleContainer = this.findBy("#available-role-container"); this._hasRoleTemplate = this.findBy("#has-role-template"); this._availableRoleTemplate = this.findBy("#available-role-template"); this._hasRoleTemplate.removeAttribute("id"); this._availableRoleTemplate.removeAttribute("id"); this._hasRoleTemplate.remove(); this._availableRoleTemplate.remove(); this.updateRoles(); return _context2.abrupt("return", res); case 12: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "updateRoles", value: function updateRoles() { var _this4 = this; var userRoles = []; var availableRoles = []; this._roles.forEach(function (role) { if (_this4._userData.roleIds.indexOf(role.id) !== -1) { userRoles.push(role); } else { availableRoles.push(role); } }); ViewHelper_1.ViewHelper.removeAllChildren(this._hasRoleContainer); userRoles.forEach(function (role, i) { var elem = _this4._hasRoleTemplate.cloneNode(true); elem.querySelector(".role-name").innerText = role.name; elem.querySelector(".remove-role").addEventListener("click", function () { return __awaiter(_this4, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var res; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: this.showLoadingSymbol(); _context3.next = 3; return DataManager_1.DataManager.send(ChangeUserSite.CHANGE_USER_ROLE_URL, { id: this._userData.id, roleId: role.id, addRole: false }); case 3: res = _context3.sent; if (res.success) { this._userData.roleIds.splice(this._userData.roleIds.indexOf(role.id), 1); this.updateRoles(); } this.removeLoadingSymbol(); case 6: case "end": return _context3.stop(); } } }, _callee3, this); })); }); _this4._hasRoleContainer.appendChild(elem); }); ViewHelper_1.ViewHelper.removeAllChildren(this._availableRoleContainer); availableRoles.forEach(function (role) { var elem = _this4._availableRoleTemplate.cloneNode(true); elem.querySelector(".role-name").innerText = role.name; elem.querySelector(".add-role").addEventListener("click", function () { return __awaiter(_this4, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var res; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: this.showLoadingSymbol(); _context4.next = 3; return DataManager_1.DataManager.send(ChangeUserSite.CHANGE_USER_ROLE_URL, { id: this._userData.id, roleId: role.id, addRole: true }); case 3: res = _context4.sent; if (res.success) { this._userData.roleIds.push(role.id); this.updateRoles(); } this.removeLoadingSymbol(); case 6: case "end": return _context4.stop(); } } }, _callee4, this); })); }); _this4._availableRoleContainer.appendChild(elem); }); } }]); return ChangeUserSite; }(MenuSite_1.MenuSite); exports.ChangeUserSite = ChangeUserSite; ChangeUserSite.ACCESS = "admin"; ChangeUserSite.LOAD_USER_INFOS_URL = "/user/userRoles"; ChangeUserSite.CHANGE_USER_ROLE_URL = "/user/changeUserRole"; ChangeUserSite.ADD_CHANGE_USER_ACTION = true; client_1.App.addInitialization(function (app) { if (ChangeUserSite.ADD_CHANGE_USER_ACTION) { client_1.NavbarFragment.defaultActions.push(new UserMenuAction_1.UserMenuAction("change user", ChangeUserSite.ACCESS, function () { return __awaiter(void 0, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var user; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _context5.next = 2; return new SelectUserDialog_1.SelectUserDialog().show(); case 2: user = _context5.sent; _context5.next = 5; return app.startSite(ChangeUserSite, { "id": user["id"] }); case 5: case "end": return _context5.stop(); } } }, _callee5); })); })); } app.addDeepLink("login", LoginSite_1.LoginSite); }); /***/ }), /* 537 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/changeUserSite.html"; /***/ }), /* 538 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.RegistrationSite = void 0; var client_1 = __webpack_require__(4); var view = __webpack_require__(539); var UserSite_1 = __webpack_require__(126); var StartUserSiteMenuAction_1 = __webpack_require__(204); var UserManager_1 = __webpack_require__(100); var User_1 = __webpack_require__(112); var RegistrationSite = /*#__PURE__*/function (_client_1$MenuSite) { _inherits(RegistrationSite, _client_1$MenuSite); var _super2 = _createSuper(RegistrationSite); function RegistrationSite(siteManager) { var _this; _classCallCheck(this, RegistrationSite); _this = _super2.call(this, siteManager, view); _this.addDelegate(new UserSite_1.UserSite(_assertThisInitialized(_this), RegistrationSite.ACCESS)); return _this; } _createClass(RegistrationSite, [{ key: "onViewLoaded", value: function onViewLoaded() { var _this2 = this; var _super = Object.create(null, { onViewLoaded: { get: function get() { return _get(_getPrototypeOf(RegistrationSite.prototype), "onViewLoaded", _this2); } } }); return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var _this3 = this; var res, form; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: res = _super.onViewLoaded.call(this); form = new client_1.Form(this.findBy("#registration-form"), function (data) { return __awaiter(_this3, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var result; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return UserManager_1.UserManager.getInstance().register(data["email"], data["username"], data["password"]); case 2: result = _context.sent; if (!(result instanceof User_1.User || result === true)) { _context.next = 10; break; } _context.next = 6; return new client_1.Toast("registration successful").show(); case 6: _context.next = 8; return this.finish(); case 8: _context.next = 12; break; case 10: _context.next = 12; return form.setErrors(result); case 12: case "end": return _context.stop(); } } }, _callee, this); })); }); form.addValidator(function (data) { if (data["password"] !== data["password2"]) { return { "password2": "the passwords do not match." }; } return true; }); // let listener = () => form.clearErrors(); // this.findBy("#login-form [name=email]").addEventListener("keydown", listener); // this.findBy("#login-form [name=password]").addEventListener("keydown", listener); return _context2.abrupt("return", res); case 4: case "end": return _context2.stop(); } } }, _callee2, this); })); } }]); return RegistrationSite; }(client_1.MenuSite); exports.RegistrationSite = RegistrationSite; RegistrationSite.ACCESS = "loggedOut"; RegistrationSite.ADD_REGISTRATION_ACTION = true; client_1.App.addInitialization(function (app) { if (RegistrationSite.ADD_REGISTRATION_ACTION) { client_1.NavbarFragment.defaultActions.push(new StartUserSiteMenuAction_1.StartUserSiteMenuAction("registration", RegistrationSite.ACCESS, RegistrationSite)); } app.addDeepLink("registration", RegistrationSite); }); /***/ }), /* 539 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/registrationSite.html"; /***/ }), /* 540 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.UserSyncModel = void 0; var AccessEasySyncModel_1 = __webpack_require__(279); var User_1 = __webpack_require__(112); var UserSyncModel = /*#__PURE__*/function (_AccessEasySyncModel_) { _inherits(UserSyncModel, _AccessEasySyncModel_); var _super = _createSuper(UserSyncModel); function UserSyncModel() { _classCallCheck(this, UserSyncModel); return _super.apply(this, arguments); } _createClass(UserSyncModel, null, [{ key: "getRelationDefinitions", value: function getRelationDefinitions() { var relations = _get(_getPrototypeOf(UserSyncModel), "getRelationDefinitions", this).call(this); relations["user"] = { target: User_1.User.getSchemaName(), type: "many-to-one", // joinColumn: { // name: "userId" // }, cascade: false, nullable: !this.NEED_USER }; return relations; } }]); return UserSyncModel; }(AccessEasySyncModel_1.AccessEasySyncModel); exports.UserSyncModel = UserSyncModel; UserSyncModel.NEED_USER = false; /***/ }), /* 541 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.UserSyncPartialModel = void 0; var shared_1 = __webpack_require__(127); var User_1 = __webpack_require__(112); var UserSyncPartialModel = /*#__PURE__*/function (_shared_1$EasySyncPar) { _inherits(UserSyncPartialModel, _shared_1$EasySyncPar); var _super = _createSuper(UserSyncPartialModel); function UserSyncPartialModel() { _classCallCheck(this, UserSyncPartialModel); return _super.apply(this, arguments); } _createClass(UserSyncPartialModel, null, [{ key: "getRelationDefinitions", value: function getRelationDefinitions() { var relations = _get(_getPrototypeOf(UserSyncPartialModel), "getRelationDefinitions", this).call(this); relations["user"] = { target: User_1.User.getSchemaName(), type: "many-to-one", // joinColumn: { // name: "userId" // }, cascade: false, nullable: !this.NEED_USER }; return relations; } }]); return UserSyncPartialModel; }(shared_1.EasySyncPartialModel); exports.UserSyncPartialModel = UserSyncPartialModel; UserSyncPartialModel.NEED_USER = false; /***/ }), /* 542 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony default export */ __webpack_exports__["default"] = ("img/settings.png"); /***/ }), /* 543 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/menu.html"; /***/ }), /* 544 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/level.html"; /***/ }), /* 545 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony default export */ __webpack_exports__["default"] = ("img/single_coin_fall_on_concrete_.mp3"); /***/ }), /* 546 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/end.html"; /***/ }), /* 547 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/settingsSite.html"; /***/ }), /* 548 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/tutorialSite.html"; /***/ }), /* 549 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/settings.html"; /***/ }), /* 550 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/credits.html"; /***/ }), /* 551 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/privacyPolicy.html"; /***/ }), /* 552 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/impressum.html"; /***/ }), /* 553 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__.p + "html/contactSite.html"; /***/ }), /* 554 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony default export */ __webpack_exports__["default"] = (__webpack_require__.p + "index.css"); /***/ }), /* 555 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: ./src/client/translations/de.json var de = __webpack_require__(281); // EXTERNAL MODULE: ./src/client/translations/en.json var en = __webpack_require__(282); // EXTERNAL MODULE: ./node_modules/cordova-sites/dist/client.js var client = __webpack_require__(4); // EXTERNAL MODULE: ./node_modules/cordova-sites-user-management/dist/client/js/translationInit.js var translationInit = __webpack_require__(270); // EXTERNAL MODULE: ./node_modules/cordova-sites/dist/client/js/translationInit.js var js_translationInit = __webpack_require__(269); // EXTERNAL MODULE: ./node_modules/cordova-sites-user-management/dist/client.js var dist_client = __webpack_require__(133); // EXTERNAL MODULE: ./node_modules/cordova-sites-database/dist/cordova-sites-database.js var cordova_sites_database = __webpack_require__(20); // EXTERNAL MODULE: ./node_modules/cordova-sites-user-management/dist/shared/migrations/DeleteUserManagement.js var DeleteUserManagement = __webpack_require__(211); // EXTERNAL MODULE: ./node_modules/cordova-sites-user-management/dist/shared/migrations/SetupUserManagement.js var SetupUserManagement = __webpack_require__(212); // EXTERNAL MODULE: ./node_modules/js-helper/dist/shared.js var shared = __webpack_require__(17); // EXTERNAL MODULE: ./node_modules/cordova-sites-user-management/dist/shared.js var dist_shared = __webpack_require__(288); // CONCATENATED MODULE: ./src/shared/model/LevelData.ts function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var LevelData_LevelData = /*#__PURE__*/function (_AccessEasySyncModel) { _inherits(LevelData, _AccessEasySyncModel); var _super = _createSuper(LevelData); function LevelData() { _classCallCheck(this, LevelData); return _super.apply(this, arguments); } _createClass(LevelData, null, [{ key: "getColumnDefinitions", value: function getColumnDefinitions() { var columns = _get(_getPrototypeOf(LevelData), "getColumnDefinitions", this).call(this); columns["words"] = cordova_sites_database["BaseDatabase"].TYPES.STRING; columns["positions"] = cordova_sites_database["BaseDatabase"].TYPES.STRING; columns["renderer"] = cordova_sites_database["BaseDatabase"].TYPES.INTEGER; columns["lang"] = cordova_sites_database["BaseDatabase"].TYPES.INTEGER; columns["difficulty"] = cordova_sites_database["BaseDatabase"].TYPES.INTEGER; return columns; } }, { key: "getNextLevelData", value: function getNextLevelData(renderer) { return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: debugger; case 1: case "end": return _context.stop(); } } }, _callee); })); } }]); return LevelData; }(dist_shared["AccessEasySyncModel"]); cordova_sites_database["BaseDatabase"].addModel(LevelData_LevelData); // CONCATENATED MODULE: ./src/shared/model/migration/shared/Setup.ts function Setup_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function Setup_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function Setup_createClass(Constructor, protoProps, staticProps) { if (protoProps) Setup_defineProperties(Constructor.prototype, protoProps); if (staticProps) Setup_defineProperties(Constructor, staticProps); return Constructor; } var Setup_awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var Setup_Setup1000000002000 = /*#__PURE__*/function () { function Setup1000000002000() { Setup_classCallCheck(this, Setup1000000002000); } Setup_createClass(Setup1000000002000, [{ key: "up", value: function up(queryRunner) { return Setup_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return shared["MigrationHelper"].addTableFromModelClass(LevelData_LevelData, queryRunner); case 2: case "end": return _context.stop(); } } }, _callee); })); } }, { key: "down", value: function down(queryRunner) { return undefined; } }]); return Setup1000000002000; }(); // EXTERNAL MODULE: ./node_modules/cordova-sites-easy-sync/dist/client.js var cordova_sites_easy_sync_dist_client = __webpack_require__(132); // EXTERNAL MODULE: ./node_modules/js-helper/dist/shared/Helper.js var Helper = __webpack_require__(7); // CONCATENATED MODULE: ./src/client/js/wordrotator/Segment/TemplateContainer.js function TemplateContainer_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function TemplateContainer_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function TemplateContainer_createClass(Constructor, protoProps, staticProps) { if (protoProps) TemplateContainer_defineProperties(Constructor.prototype, protoProps); if (staticProps) TemplateContainer_defineProperties(Constructor, staticProps); return Constructor; } var TemplateContainer = /*#__PURE__*/function () { function TemplateContainer(leafTemplate, parentTemplate, rowTemplate, triangleTemplate, columnTemplate) { TemplateContainer_classCallCheck(this, TemplateContainer); this.leafTemplate = leafTemplate; this.parentTemplate = parentTemplate; this.rowTemplate = rowTemplate; this.triangleTemplate = triangleTemplate; this.columnTemplate = columnTemplate; } TemplateContainer_createClass(TemplateContainer, [{ key: "copyLeafTemplate", value: function copyLeafTemplate() { return this.leafTemplate.cloneNode(true); } }, { key: "copyParentTemplate", value: function copyParentTemplate() { return this.parentTemplate.cloneNode(true); } }, { key: "copyRowTemplate", value: function copyRowTemplate() { return this.rowTemplate.cloneNode(true); } }, { key: "copyTriangleTemplate", value: function copyTriangleTemplate() { return this.triangleTemplate.cloneNode(true); } }, { key: "copyColumnTemplate", value: function copyColumnTemplate() { return this.columnTemplate.cloneNode(true); } }]); return TemplateContainer; }(); // CONCATENATED MODULE: ./src/client/js/wordrotator/Segment/Segment.js function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function Segment_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function Segment_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function Segment_createClass(Constructor, protoProps, staticProps) { if (protoProps) Segment_defineProperties(Constructor.prototype, protoProps); if (staticProps) Segment_defineProperties(Constructor, staticProps); return Constructor; } var Segment = /*#__PURE__*/function () { function Segment(element) { Segment_classCallCheck(this, Segment); this.rotation = 0; this.element = element; this.parent = null; } Segment_createClass(Segment, [{ key: "getCurrentRotations", value: function getCurrentRotations(rotations) { return rotations; } }, { key: "sameAs", value: function sameAs(otherSegment) { return false; } }, { key: "setParent", value: function setParent(parent) { this.parent = parent; } }, { key: "getLevel", value: function getLevel() { if (this.parent !== null) { return this.parent.getLevel(); } } }, { key: "canRotate", value: function canRotate() { return false; } }, { key: "isSolved", value: function isSolved() { return this.rotation === 0; } }, { key: "rotate", value: function () { var _rotate = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: return _context.abrupt("return", Promise.resolve()); case 1: case "end": return _context.stop(); } } }, _callee); })); function rotate() { return _rotate.apply(this, arguments); } return rotate; }() }, { key: "_updateElement", value: function _updateElement() {} }, { key: "applyRotations", value: function applyRotations(rotations) { return rotations; } }, { key: "applyLocks", value: function applyLocks(locks) { return locks; } }, { key: "getCurrentLocked", value: function getCurrentLocked(lockedArray) { return lockedArray; } }, { key: "getElement", value: function getElement() { return this.element; } }]); return Segment; }(); // EXTERNAL MODULE: ./node_modules/js-helper/dist/client/ViewHelper.js var ViewHelper = __webpack_require__(27); // CONCATENATED MODULE: ./src/client/js/wordrotator/Segment/LeafSegment.js function LeafSegment_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { LeafSegment_typeof = function _typeof(obj) { return typeof obj; }; } else { LeafSegment_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return LeafSegment_typeof(obj); } function LeafSegment_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function LeafSegment_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function LeafSegment_createClass(Constructor, protoProps, staticProps) { if (protoProps) LeafSegment_defineProperties(Constructor.prototype, protoProps); if (staticProps) LeafSegment_defineProperties(Constructor, staticProps); return Constructor; } function LeafSegment_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) LeafSegment_setPrototypeOf(subClass, superClass); } function LeafSegment_setPrototypeOf(o, p) { LeafSegment_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return LeafSegment_setPrototypeOf(o, p); } function LeafSegment_createSuper(Derived) { var hasNativeReflectConstruct = LeafSegment_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = LeafSegment_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = LeafSegment_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return LeafSegment_possibleConstructorReturn(this, result); }; } function LeafSegment_possibleConstructorReturn(self, call) { if (call && (LeafSegment_typeof(call) === "object" || typeof call === "function")) { return call; } return LeafSegment_assertThisInitialized(self); } function LeafSegment_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function LeafSegment_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function LeafSegment_getPrototypeOf(o) { LeafSegment_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return LeafSegment_getPrototypeOf(o); } var LeafSegment_LeafSegment = /*#__PURE__*/function (_Segment) { LeafSegment_inherits(LeafSegment, _Segment); var _super = LeafSegment_createSuper(LeafSegment); function LeafSegment(element, leaf) { var _this; LeafSegment_classCallCheck(this, LeafSegment); _this = _super.call(this, element); _this.leaf = 'A'; if (Helper["Helper"].isNotNull(leaf)) { _this.setLeaf(leaf); } return _this; } LeafSegment_createClass(LeafSegment, [{ key: "sameAs", value: function sameAs(otherSegment) { // debugger; return otherSegment instanceof LeafSegment && otherSegment.leaf === this.leaf; } }, { key: "setLeaf", value: function setLeaf(leaf) { this.leaf = leaf; } }, { key: "_updateElement", value: function _updateElement() { ViewHelper["ViewHelper"].removeAllChildren(this.element.querySelector(".leaf-element")).appendChild(document.createTextNode(this.leaf)); } }]); return LeafSegment; }(Segment); // CONCATENATED MODULE: ./src/client/js/wordrotator/Segment/ParentSegment.js function ParentSegment_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ParentSegment_typeof = function _typeof(obj) { return typeof obj; }; } else { ParentSegment_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ParentSegment_typeof(obj); } function ParentSegment_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function ParentSegment_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { ParentSegment_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { ParentSegment_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function ParentSegment_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function ParentSegment_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function ParentSegment_createClass(Constructor, protoProps, staticProps) { if (protoProps) ParentSegment_defineProperties(Constructor.prototype, protoProps); if (staticProps) ParentSegment_defineProperties(Constructor, staticProps); return Constructor; } function ParentSegment_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) ParentSegment_setPrototypeOf(subClass, superClass); } function ParentSegment_setPrototypeOf(o, p) { ParentSegment_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return ParentSegment_setPrototypeOf(o, p); } function ParentSegment_createSuper(Derived) { var hasNativeReflectConstruct = ParentSegment_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = ParentSegment_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = ParentSegment_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return ParentSegment_possibleConstructorReturn(this, result); }; } function ParentSegment_possibleConstructorReturn(self, call) { if (call && (ParentSegment_typeof(call) === "object" || typeof call === "function")) { return call; } return ParentSegment_assertThisInitialized(self); } function ParentSegment_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function ParentSegment_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function ParentSegment_getPrototypeOf(o) { ParentSegment_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return ParentSegment_getPrototypeOf(o); } var ParentSegment_ParentSegment = /*#__PURE__*/function (_Segment) { ParentSegment_inherits(ParentSegment, _Segment); var _super = ParentSegment_createSuper(ParentSegment); function ParentSegment(element) { var _this; ParentSegment_classCallCheck(this, ParentSegment); _this = _super.call(this, element); _this.children = []; _this.class = "rotate-0"; _this.rotatable = true; _this.userRotationDelta = 100; _this.lastUserRotation = 0; _this.touchendListener = function (e) { var now = new Date().getTime(); var target = null; var position = null; if (e.changedTouches.length >= 1) { target = document.elementFromPoint(e.changedTouches[0].pageX, e.changedTouches[0].pageY); position = { x: e.changedTouches[0].pageX, y: e.changedTouches[0].pageY }; } if (target != null && e.targetTouches.length === 0 && _this.element.contains(ParentSegment.mouseDownTarget) && _this.element.contains(target)) { e.stopPropagation(); e.preventDefault(); if (_this.lastUserRotation + _this.userRotationDelta > now) { return; } _this.getLevel().segmentClicked(ParentSegment_assertThisInitialized(_this)); _this.rotate(ParentSegment.mouseDownTarget, target, ParentSegment.clickPosition, position); // console.log("touchendListener stopped event", e); _this.lastUserRotation = new Date().getTime(); } }; _this.mouseupListener = function (e) { var now = new Date().getTime(); // console.log("mouseup", ParentSegment.mouseDownTarget); if (ParentSegment.mouseDownTarget !== null && _this.element.contains(ParentSegment.mouseDownTarget) && _this.element.contains(e.target)) { var position = { x: e.pageX, y: e.pageY }; e.stopPropagation(); e.preventDefault(); if (_this.lastUserRotation + _this.userRotationDelta > now) { return; } _this.getLevel().segmentClicked(ParentSegment_assertThisInitialized(_this)); _this.rotate(ParentSegment.mouseDownTarget, e.target, ParentSegment.clickPosition, position); // console.log("mouseupListener stopped event", e); _this.lastUserRotation = new Date().getTime(); } }; return _this; } ParentSegment_createClass(ParentSegment, [{ key: "setIsRotatable", value: function setIsRotatable(rotatable) { this.rotatable = rotatable; this._updateElement(); } }, { key: "canRotate", value: function canRotate() { return this.rotatable && !this.getLevel().getHasWon(); } }, { key: "rotate", value: function () { var _rotate = ParentSegment_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(firstElem, secondElem, firstPosition, secondPosition) { var _this2 = this; var timeout, clickTolerance, rotationDirection, firstIndex, secondIndex, rotationIndexes, i, currentRotation, delayPromise; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: timeout = 250; clickTolerance = 5; rotationDirection = 1; if (Helper["Helper"].isNotNull(secondElem) && Helper["Helper"].isNotNull(firstElem) && (Helper["Helper"].isNull(firstPosition) || Helper["Helper"].isNull(secondPosition) || Math.abs(firstPosition.x - secondPosition.x) > clickTolerance || Math.abs(firstPosition.y - secondPosition.y) > clickTolerance)) { firstIndex = -1; secondIndex = -1; rotationIndexes = [0, 1, 3, 2]; for (i = 0; i < this.children.length; i++) { if (this.children[rotationIndexes[i]].element === firstElem || this.children[rotationIndexes[i]].element.contains(firstElem)) { firstIndex = (i + this.rotation / 90) % 4; } if (this.children[rotationIndexes[i]].element === secondElem || this.children[rotationIndexes[i]].element.contains(secondElem)) { secondIndex = (i + this.rotation / 90) % 4; } } if (firstIndex >= 0 && secondIndex >= 0) { if (firstIndex === 2 && (secondIndex === 0 || secondIndex === 1) || firstIndex === 1 && (secondIndex === 0 || secondIndex === 3) || firstIndex === 0 && secondIndex === 3 || firstIndex === 3 && secondIndex === 2) { rotationDirection = -1; } } } if (!this.canRotate()) { _context.next = 14; break; } this.rotation += 360 + 90 * rotationDirection; this.rotation %= 360; currentRotation = this.rotation; this._updateRotationClass(); this.element.classList.add("rotating"); if (rotationDirection === -1) { this.element.classList.add("reverse"); } delayPromise = new Promise(function (resolve) { setTimeout(resolve, timeout); }).then(function () { if (_this2.rotation === currentRotation) { _this2.element.classList.remove("rotating"); _this2.element.classList.remove("reverse"); } }); this.getLevel().checkHasWon(delayPromise); return _context.abrupt("return", delayPromise); case 14: case "end": return _context.stop(); } } }, _callee, this); })); function rotate(_x, _x2, _x3, _x4) { return _rotate.apply(this, arguments); } return rotate; }() }, { key: "sameAs", value: function sameAs(otherSegment) { if (!(otherSegment instanceof ParentSegment) || otherSegment.children.length !== this.children.length) { return false; } for (var i = 0; i < this.children.length; i++) { if (!this.children[i].sameAs(otherSegment.children[i])) { return false; } } return true; } }, { key: "applyRotations", value: function applyRotations(rotations) { this.rotation = rotations[0]; if (isNaN(this.rotation)) { this.rotation = 0; } rotations.splice(0, 1); for (var i = 0, n = this.children.length; i < n; i++) { rotations = this.children[i].applyRotations(rotations); } return rotations; } }, { key: "applyLocks", value: function applyLocks(locks) { this.rotatable = locks[0] !== false; locks.splice(0, 1); for (var i = 0, n = this.children.length; i < n; i++) { locks = this.children[i].applyLocks(locks); } return locks; } }, { key: "getCurrentRotations", value: function getCurrentRotations(rotations) { rotations.push(this.rotation); for (var i = 0, n = this.children.length; i < n; i++) { rotations = this.children[i].getCurrentRotations(rotations); } return rotations; } }, { key: "getCurrentLocked", value: function getCurrentLocked(locked) { locked.push(this.rotatable); for (var i = 0, n = this.children.length; i < n; i++) { locked = this.children[i].getCurrentLocked(locked); } return locked; } }, { key: "isSolved", value: function isSolved(checkChildren) { checkChildren = Helper["Helper"].nonNull(checkChildren, true); if (checkChildren) { for (var i = 0, n = this.children.length; i < n; i++) { if (!this.children[i].isSolved()) { return false; } } } return this.rotation === 0 || this.children[0].sameAs(this.children[3]) && this.children[1].sameAs(this.children[2]) && (this.rotation === 180 || this.children[0].sameAs(this.children[1])); } }, { key: "setChildren", value: function setChildren(children) { this.children = []; for (var i = 0, n = children.length; i < n; i++) { this.addChild(children[i]); } } }, { key: "addChild", value: function addChild(child) { this.children.push(child); child.setParent(this); this._updateElement(); } }, { key: "_updateRotationClass", value: function _updateRotationClass() { // this.style.transform = "rotate("+this.rotation+"deg)"; this.element.classList.remove(this.class); this.class = "rotate-" + this.rotation; if (this.class === "rotate-0") { this.class = "rotate-360"; } this.element.classList.add(this.class); } }, { key: "_updateElement", value: function _updateElement() { var layer = this._getLayer(); if (layer >= 2) { this.element.classList.add("layer-" + layer); } if (!this.rotatable) { this.element.classList.add("locked"); } var childContainer = this.element.querySelector(".child-container"); ViewHelper["ViewHelper"].removeAllChildren(childContainer); this._updateRotationClass(); this.element.removeEventListener("mouseup", this.mouseupListener); this.element.removeEventListener("touchend", this.touchendListener); this.element.addEventListener("mouseup", this.mouseupListener); this.element.addEventListener("touchend", this.touchendListener); for (var i = 0, n = this.children.length; i < n; i++) { this.children[i]._updateElement(); childContainer.appendChild(this.children[i].getElement()); if (i % 2 === 1 && this.children.length - 1 !== i) { childContainer.appendChild(document.createElement("br")); } } } }, { key: "_getLayer", value: function _getLayer() { if (this.children.length >= 1 && this.children[0] && this.children[0] instanceof ParentSegment) { return this.children[0]._getLayer() + 1; } return 1; } }], [{ key: "initListener", value: function initListener() { window.addEventListener("mousedown", function (e) { // console.log("mousedown"); ParentSegment.mouseDownTarget = e.target; ParentSegment.clickPosition = { x: e.pageX, y: e.pageY }; }); window.addEventListener("mouseup", function (e) { ParentSegment.mouseDownTarget = null; ParentSegment.clickPosition = {}; }); window.addEventListener("touchstart", function (e) { if (e.targetTouches.length === 1) { ParentSegment.mouseDownTarget = e.targetTouches[0].target; ParentSegment.clickPosition = { x: e.targetTouches[0].pageX, y: e.targetTouches[0].pageY }; } }); window.addEventListener("touchend", function (e) { ParentSegment.mouseDownTarget = null; ParentSegment.clickPosition = {}; }); } }]); return ParentSegment; }(Segment); ParentSegment_ParentSegment.initListener(); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/Level.js function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function Level_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function Level_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { Level_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { Level_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function Level_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function Level_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function Level_createClass(Constructor, protoProps, staticProps) { if (protoProps) Level_defineProperties(Constructor.prototype, protoProps); if (staticProps) Level_defineProperties(Constructor, staticProps); return Constructor; } var Level_Level = /*#__PURE__*/function () { function Level(templateContainer) { var _this = this; Level_classCallCheck(this, Level); this.rootSegment = null; this.words = []; this.startRotations = []; this.templateContainer = templateContainer; this.levelData = null; this.hasWon = false; this.id = null; this.saveAsCurrentAfterCheckWon = true; this.wonResolver = null; this.giveUpResolver = null; this._shakeLeafs = true; this._shakeLeafsTimeout = null; this._lastRotation = 0; this.wonPromise = new Promise(function (resolve, reject) { _this.wonResolver = resolve; _this.giveUpResolver = reject; }); this.segmentClickedListener = function () {// console.log("clicked") }; } Level_createClass(Level, [{ key: "getLevelData", value: function getLevelData() { return this.levelData; } }, { key: "setLevelData", value: function setLevelData(levelData) { this.levelData = levelData; } }, { key: "saveAsCurrentLevel", value: function () { var _saveAsCurrentLevel = Level_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var rotations, locked; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: rotations = this.getCurrentRotations(); locked = this.getCurrentLocked(); _context.next = 4; return client["NativeStoragePromise"].setItem("currentLevel", JSON.stringify({ "id": this.id, "rotations": rotations, "locks": locked })); case 4: case "end": return _context.stop(); } } }, _callee, this); })); function saveAsCurrentLevel() { return _saveAsCurrentLevel.apply(this, arguments); } return saveAsCurrentLevel; }() }, { key: "getCurrentLocked", value: function getCurrentLocked() { if (this.rootSegment !== null) { return this.rootSegment.getCurrentLocked([]); } return []; } }, { key: "getCurrentRotations", value: function getCurrentRotations() { if (this.rootSegment !== null) { return this.rootSegment.getCurrentRotations([]); } return []; } }, { key: "setLocks", value: function setLocks(locks) { if (this.rootSegment !== null) { this.rootSegment.applyLocks(locks); } } }, { key: "setId", value: function setId(id) { this.id = id; } }, { key: "getId", value: function getId() { return this.id; } }, { key: "getLevel", value: function getLevel() { return this; } }, { key: "setRootSegment", value: function setRootSegment(rootSegment) { this.rootSegment = rootSegment; this.rootSegment.setParent(this); if (this.startRotations) { this.applyRotations(); } } }, { key: "setWords", value: function setWords(words) { this.words = []; for (var i = 0, n = words.length; i < n; i++) { this.words.push(words[i].replace(/ß/g, "ẞ").toUpperCase()); } } }, { key: "setStartRotations", value: function setStartRotations(rotations) { this.startRotations = rotations; } }, { key: "applyRotations", value: function applyRotations(rotations) { if (this.rootSegment) { rotations = Helper["Helper"].nonNull(rotations, this.startRotations); this.rootSegment.applyRotations(rotations); } } }, { key: "getHasWon", value: function getHasWon() { return this.hasWon; } }, { key: "checkHasWon", value: function checkHasWon(delayPromise) { if (this.rootSegment.isSolved()) { this.hasWon = true; var self = this; Promise.resolve(delayPromise).then(function () { self.wonResolver(true); }); return true; } if (this.saveAsCurrentAfterCheckWon) { this.saveAsCurrentLevel(); } return false; } }, { key: "setSaveAsCurrentAfterCheckWon", value: function setSaveAsCurrentAfterCheckWon(shouldSave) { this.saveAsCurrentAfterCheckWon = shouldSave === true; } }, { key: "getWonPromise", value: function getWonPromise() { return this.wonPromise; } }, { key: "getRootSegment", value: function getRootSegment() { return this.rootSegment; } }, { key: "createSegments", value: function createSegments() {} }, { key: "getRotatableSegments", value: function getRotatableSegments() { return Level._getRotatableSegmentsFrom(this.rootSegment); } }, { key: "segmentClicked", value: function segmentClicked(segment) { var _this2 = this; if (this.segmentClickedListener) { this.segmentClickedListener(segment); } this._lastRotation = new Date().getTime(); clearTimeout(this._shakeLeafsTimeout); if (this._shakeLeafs) { this._shakeLeafsTimeout = setTimeout(function () { _this2.shakeLeafs(); }, shared["Random"].getIntRandom(5000) + 25000); } } }, { key: "setSegmentClickedListener", value: function setSegmentClickedListener(listener) { this.segmentClickedListener = listener; } }, { key: "getLeafSegments", value: function getLeafSegments() { return Level._getLeafSegmentsFrom(this.rootSegment); } }, { key: "shakeLeafs", value: function shakeLeafs() { var _this3 = this; clearTimeout(this._shakeLeafsTimeout); if (this._shakeLeafs && !this.hasWon) { var leafs = this.getLeafSegments(); if (leafs.length > 0) { var index = shared["Random"].getIntRandom(leafs.length - 1); var leaf = leafs[index]; leaf.getElement().classList.add("shake"); setTimeout(function () { leaf.getElement().classList.remove("shake"); }, shared["Random"].getIntRandom(350) + 650); } this._shakeLeafsTimeout = setTimeout(function () { _this3.shakeLeafs(); }, shared["Random"].getIntRandom(2000) + 5000); } } }], [{ key: "_getRotatableSegmentsFrom", value: function _getRotatableSegmentsFrom(segment) { var rotatable = []; if (segment.canRotate()) { rotatable.push(segment); } if (segment instanceof ParentSegment_ParentSegment) { for (var i = 0; i < segment.children.length; i++) { rotatable.push.apply(rotatable, Level._getRotatableSegmentsFrom(segment.children[i])); } } return rotatable; } }, { key: "_createLeafsForWord", value: function _createLeafsForWord(word, leafSegmentTemplate) { var leafSegments = []; for (var i = 0, n = word.length; i < n; i++) { leafSegments.push(new LeafSegment_LeafSegment(leafSegmentTemplate.cloneNode(true), word.charAt(i))); } return leafSegments; } }, { key: "_getLeafSegmentsFrom", value: function _getLeafSegmentsFrom(segment) { var leafs = []; if (segment instanceof LeafSegment_LeafSegment) { leafs.push(segment); } else if (segment instanceof ParentSegment_ParentSegment) { for (var i = 0; i < segment.children.length; i++) { leafs.push.apply(leafs, _toConsumableArray(Level._getLeafSegmentsFrom(segment.children[i]))); } } return leafs; } }]); return Level; }(); // CONCATENATED MODULE: ./src/client/js/wordrotator/Segment/RowSegment.js function RowSegment_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { RowSegment_typeof = function _typeof(obj) { return typeof obj; }; } else { RowSegment_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return RowSegment_typeof(obj); } function RowSegment_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function RowSegment_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function RowSegment_createClass(Constructor, protoProps, staticProps) { if (protoProps) RowSegment_defineProperties(Constructor.prototype, protoProps); if (staticProps) RowSegment_defineProperties(Constructor, staticProps); return Constructor; } function RowSegment_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) RowSegment_setPrototypeOf(subClass, superClass); } function RowSegment_setPrototypeOf(o, p) { RowSegment_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return RowSegment_setPrototypeOf(o, p); } function RowSegment_createSuper(Derived) { var hasNativeReflectConstruct = RowSegment_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = RowSegment_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = RowSegment_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return RowSegment_possibleConstructorReturn(this, result); }; } function RowSegment_possibleConstructorReturn(self, call) { if (call && (RowSegment_typeof(call) === "object" || typeof call === "function")) { return call; } return RowSegment_assertThisInitialized(self); } function RowSegment_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function RowSegment_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function RowSegment_getPrototypeOf(o) { RowSegment_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return RowSegment_getPrototypeOf(o); } var RowSegment_RowSegment = /*#__PURE__*/function (_ParentSegment) { RowSegment_inherits(RowSegment, _ParentSegment); var _super = RowSegment_createSuper(RowSegment); function RowSegment(element) { var _this; RowSegment_classCallCheck(this, RowSegment); _this = _super.call(this, element); _this.rotatable = false; return _this; } RowSegment_createClass(RowSegment, [{ key: "applyRotations", value: function applyRotations(rotations) { for (var i = 0, n = this.children.length; i < n; i++) { rotations = this.children[i].applyRotations(rotations); } return rotations; } }, { key: "getCurrentRotations", value: function getCurrentRotations(rotations) { for (var i = 0, n = this.children.length; i < n; i++) { rotations = this.children[i].getCurrentRotations(rotations); } return rotations; } }, { key: "getCurrentLocked", value: function getCurrentLocked(locked) { for (var i = 0, n = this.children.length; i < n; i++) { locked = this.children[i].getCurrentLocked(locked); } return locked; } }, { key: "applyLocks", value: function applyLocks(locks) { for (var i = 0, n = this.children.length; i < n; i++) { locks = this.children[i].applyLocks(locks); } return locks; } }, { key: "_updateElement", value: function _updateElement() { var childContainer = this.element.querySelector(".child-container"); ViewHelper["ViewHelper"].removeAllChildren(childContainer); this._updateRotationClass(); var self = this; this.element.onclick = function (e) { self.rotate(); e.stopPropagation(); }; for (var i = 0, n = this.children.length; i < n; i++) { this.children[i]._updateElement(); childContainer.appendChild(this.children[i].getElement()); } } }]); return RowSegment; }(ParentSegment_ParentSegment); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/RowLevel.js function RowLevel_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { RowLevel_typeof = function _typeof(obj) { return typeof obj; }; } else { RowLevel_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return RowLevel_typeof(obj); } function RowLevel_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function RowLevel_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function RowLevel_createClass(Constructor, protoProps, staticProps) { if (protoProps) RowLevel_defineProperties(Constructor.prototype, protoProps); if (staticProps) RowLevel_defineProperties(Constructor, staticProps); return Constructor; } function RowLevel_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) RowLevel_setPrototypeOf(subClass, superClass); } function RowLevel_setPrototypeOf(o, p) { RowLevel_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return RowLevel_setPrototypeOf(o, p); } function RowLevel_createSuper(Derived) { var hasNativeReflectConstruct = RowLevel_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = RowLevel_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = RowLevel_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return RowLevel_possibleConstructorReturn(this, result); }; } function RowLevel_possibleConstructorReturn(self, call) { if (call && (RowLevel_typeof(call) === "object" || typeof call === "function")) { return call; } return RowLevel_assertThisInitialized(self); } function RowLevel_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function RowLevel_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function RowLevel_getPrototypeOf(o) { RowLevel_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return RowLevel_getPrototypeOf(o); } var RowLevel_RowLevel = /*#__PURE__*/function (_Level) { RowLevel_inherits(RowLevel, _Level); var _super = RowLevel_createSuper(RowLevel); function RowLevel(container, wordLength) { var _this; RowLevel_classCallCheck(this, RowLevel); _this = _super.call(this, container); _this.wordLength = wordLength; return _this; } RowLevel_createClass(RowLevel, [{ key: "createSegments", value: function createSegments() { if (this.words.length >= 2 && this.words[0].length >= this.wordLength && this.words[1].length >= this.wordLength) { var leafsWordOne = Level_Level._createLeafsForWord(this.words[0], this.templateContainer.copyLeafTemplate()); var leafsWordTwo = Level_Level._createLeafsForWord(this.words[1], this.templateContainer.copyLeafTemplate()); var rootSegment = new RowSegment_RowSegment(this.templateContainer.copyRowTemplate()); for (var i = 0, n = this.wordLength / 2; i < n; i++) { var parent = new ParentSegment_ParentSegment(this.templateContainer.copyParentTemplate()); parent.addChild(leafsWordOne[2 * i]); parent.addChild(leafsWordOne[2 * i + 1]); parent.addChild(leafsWordTwo[2 * i]); parent.addChild(leafsWordTwo[2 * i + 1]); rootSegment.addChild(parent); } // rootSegment.applyRotations(this.startRotations); this.setRootSegment(rootSegment); } } }]); return RowLevel; }(Level_Level); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/SimpleLevel.js function SimpleLevel_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { SimpleLevel_typeof = function _typeof(obj) { return typeof obj; }; } else { SimpleLevel_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return SimpleLevel_typeof(obj); } function SimpleLevel_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function SimpleLevel_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) SimpleLevel_setPrototypeOf(subClass, superClass); } function SimpleLevel_setPrototypeOf(o, p) { SimpleLevel_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return SimpleLevel_setPrototypeOf(o, p); } function SimpleLevel_createSuper(Derived) { var hasNativeReflectConstruct = SimpleLevel_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = SimpleLevel_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = SimpleLevel_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return SimpleLevel_possibleConstructorReturn(this, result); }; } function SimpleLevel_possibleConstructorReturn(self, call) { if (call && (SimpleLevel_typeof(call) === "object" || typeof call === "function")) { return call; } return SimpleLevel_assertThisInitialized(self); } function SimpleLevel_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function SimpleLevel_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function SimpleLevel_getPrototypeOf(o) { SimpleLevel_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return SimpleLevel_getPrototypeOf(o); } var SimpleLevel = /*#__PURE__*/function (_RowLevel) { SimpleLevel_inherits(SimpleLevel, _RowLevel); var _super = SimpleLevel_createSuper(SimpleLevel); function SimpleLevel(container) { SimpleLevel_classCallCheck(this, SimpleLevel); return _super.call(this, container, 6); } return SimpleLevel; }(RowLevel_RowLevel); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/RowLevel8.js function RowLevel8_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { RowLevel8_typeof = function _typeof(obj) { return typeof obj; }; } else { RowLevel8_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return RowLevel8_typeof(obj); } function RowLevel8_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function RowLevel8_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) RowLevel8_setPrototypeOf(subClass, superClass); } function RowLevel8_setPrototypeOf(o, p) { RowLevel8_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return RowLevel8_setPrototypeOf(o, p); } function RowLevel8_createSuper(Derived) { var hasNativeReflectConstruct = RowLevel8_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = RowLevel8_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = RowLevel8_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return RowLevel8_possibleConstructorReturn(this, result); }; } function RowLevel8_possibleConstructorReturn(self, call) { if (call && (RowLevel8_typeof(call) === "object" || typeof call === "function")) { return call; } return RowLevel8_assertThisInitialized(self); } function RowLevel8_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function RowLevel8_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function RowLevel8_getPrototypeOf(o) { RowLevel8_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return RowLevel8_getPrototypeOf(o); } var RowLevel8 = /*#__PURE__*/function (_RowLevel) { RowLevel8_inherits(RowLevel8, _RowLevel); var _super = RowLevel8_createSuper(RowLevel8); function RowLevel8(container) { RowLevel8_classCallCheck(this, RowLevel8); return _super.call(this, container, 8); } return RowLevel8; }(RowLevel_RowLevel); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/RowLevel10.js function RowLevel10_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { RowLevel10_typeof = function _typeof(obj) { return typeof obj; }; } else { RowLevel10_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return RowLevel10_typeof(obj); } function RowLevel10_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function RowLevel10_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) RowLevel10_setPrototypeOf(subClass, superClass); } function RowLevel10_setPrototypeOf(o, p) { RowLevel10_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return RowLevel10_setPrototypeOf(o, p); } function RowLevel10_createSuper(Derived) { var hasNativeReflectConstruct = RowLevel10_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = RowLevel10_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = RowLevel10_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return RowLevel10_possibleConstructorReturn(this, result); }; } function RowLevel10_possibleConstructorReturn(self, call) { if (call && (RowLevel10_typeof(call) === "object" || typeof call === "function")) { return call; } return RowLevel10_assertThisInitialized(self); } function RowLevel10_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function RowLevel10_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function RowLevel10_getPrototypeOf(o) { RowLevel10_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return RowLevel10_getPrototypeOf(o); } var RowLevel10 = /*#__PURE__*/function (_RowLevel) { RowLevel10_inherits(RowLevel10, _RowLevel); var _super = RowLevel10_createSuper(RowLevel10); function RowLevel10(container) { RowLevel10_classCallCheck(this, RowLevel10); return _super.call(this, container, 10); } return RowLevel10; }(RowLevel_RowLevel); // CONCATENATED MODULE: ./src/client/js/wordrotator/Segment/TriangleSegment.js function TriangleSegment_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { TriangleSegment_typeof = function _typeof(obj) { return typeof obj; }; } else { TriangleSegment_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return TriangleSegment_typeof(obj); } function TriangleSegment_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function TriangleSegment_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) TriangleSegment_setPrototypeOf(subClass, superClass); } function TriangleSegment_setPrototypeOf(o, p) { TriangleSegment_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return TriangleSegment_setPrototypeOf(o, p); } function TriangleSegment_createSuper(Derived) { var hasNativeReflectConstruct = TriangleSegment_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = TriangleSegment_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = TriangleSegment_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return TriangleSegment_possibleConstructorReturn(this, result); }; } function TriangleSegment_possibleConstructorReturn(self, call) { if (call && (TriangleSegment_typeof(call) === "object" || typeof call === "function")) { return call; } return TriangleSegment_assertThisInitialized(self); } function TriangleSegment_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function TriangleSegment_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function TriangleSegment_getPrototypeOf(o) { TriangleSegment_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return TriangleSegment_getPrototypeOf(o); } var TriangleSegment = /*#__PURE__*/function (_RowSegment) { TriangleSegment_inherits(TriangleSegment, _RowSegment); var _super = TriangleSegment_createSuper(TriangleSegment); function TriangleSegment() { TriangleSegment_classCallCheck(this, TriangleSegment); return _super.apply(this, arguments); } return TriangleSegment; }(RowSegment_RowSegment); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/SixWordsRowLevel.js function SixWordsRowLevel_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { SixWordsRowLevel_typeof = function _typeof(obj) { return typeof obj; }; } else { SixWordsRowLevel_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return SixWordsRowLevel_typeof(obj); } function SixWordsRowLevel_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function SixWordsRowLevel_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function SixWordsRowLevel_createClass(Constructor, protoProps, staticProps) { if (protoProps) SixWordsRowLevel_defineProperties(Constructor.prototype, protoProps); if (staticProps) SixWordsRowLevel_defineProperties(Constructor, staticProps); return Constructor; } function SixWordsRowLevel_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) SixWordsRowLevel_setPrototypeOf(subClass, superClass); } function SixWordsRowLevel_setPrototypeOf(o, p) { SixWordsRowLevel_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return SixWordsRowLevel_setPrototypeOf(o, p); } function SixWordsRowLevel_createSuper(Derived) { var hasNativeReflectConstruct = SixWordsRowLevel_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = SixWordsRowLevel_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = SixWordsRowLevel_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return SixWordsRowLevel_possibleConstructorReturn(this, result); }; } function SixWordsRowLevel_possibleConstructorReturn(self, call) { if (call && (SixWordsRowLevel_typeof(call) === "object" || typeof call === "function")) { return call; } return SixWordsRowLevel_assertThisInitialized(self); } function SixWordsRowLevel_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function SixWordsRowLevel_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function SixWordsRowLevel_getPrototypeOf(o) { SixWordsRowLevel_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return SixWordsRowLevel_getPrototypeOf(o); } var SixWordsRowLevel_SixWordsRowLevel = /*#__PURE__*/function (_Level) { SixWordsRowLevel_inherits(SixWordsRowLevel, _Level); var _super = SixWordsRowLevel_createSuper(SixWordsRowLevel); function SixWordsRowLevel(templateContainer, wordLength) { var _this; SixWordsRowLevel_classCallCheck(this, SixWordsRowLevel); _this = _super.call(this, templateContainer); _this.wordLength = wordLength; return _this; } SixWordsRowLevel_createClass(SixWordsRowLevel, [{ key: "createSegments", value: function createSegments() { if (this.words.length >= 6 && this.words[0].length >= this.wordLength && this.words[1].length >= this.wordLength && this.words[2].length >= this.wordLength && this.words[3].length >= this.wordLength && this.words[4].length >= this.wordLength && this.words[5].length >= this.wordLength) { var leafsWords = []; leafsWords[0] = Level_Level._createLeafsForWord(this.words[0], this.templateContainer.copyLeafTemplate()); leafsWords[1] = Level_Level._createLeafsForWord(this.words[1], this.templateContainer.copyLeafTemplate()); leafsWords[2] = Level_Level._createLeafsForWord(this.words[2], this.templateContainer.copyLeafTemplate()); leafsWords[3] = Level_Level._createLeafsForWord(this.words[3], this.templateContainer.copyLeafTemplate()); leafsWords[4] = Level_Level._createLeafsForWord(this.words[4], this.templateContainer.copyLeafTemplate()); leafsWords[5] = Level_Level._createLeafsForWord(this.words[5], this.templateContainer.copyLeafTemplate()); var rootSegment = new RowSegment_RowSegment(this.templateContainer.copyRowTemplate()); for (var i = 0; i < this.wordLength / 4; i++) { var parents = []; parents[0] = new ParentSegment_ParentSegment(this.templateContainer.copyParentTemplate()); parents[1] = new ParentSegment_ParentSegment(this.templateContainer.copyParentTemplate()); parents[2] = new ParentSegment_ParentSegment(this.templateContainer.copyParentTemplate()); parents[3] = new ParentSegment_ParentSegment(this.templateContainer.copyParentTemplate()); parents[4] = new ParentSegment_ParentSegment(this.templateContainer.copyParentTemplate()); parents[5] = new ParentSegment_ParentSegment(this.templateContainer.copyParentTemplate()); parents[0].addChild(leafsWords[0][4 * i]); parents[0].addChild(leafsWords[0][4 * i + 1]); parents[0].addChild(leafsWords[1][4 * i]); parents[0].addChild(leafsWords[1][4 * i + 1]); parents[1].addChild(leafsWords[0][4 * i + 2]); parents[1].addChild(leafsWords[0][4 * i + 3]); parents[1].addChild(leafsWords[1][4 * i + 2]); parents[1].addChild(leafsWords[1][4 * i + 3]); parents[2].addChild(leafsWords[2][4 * i]); parents[2].addChild(leafsWords[2][4 * i + 1]); parents[2].addChild(leafsWords[3][4 * i]); parents[2].addChild(leafsWords[3][4 * i + 1]); parents[3].addChild(leafsWords[2][4 * i + 2]); parents[3].addChild(leafsWords[2][4 * i + 3]); parents[3].addChild(leafsWords[3][4 * i + 2]); parents[3].addChild(leafsWords[3][4 * i + 3]); parents[4].addChild(leafsWords[4][4 * i]); parents[4].addChild(leafsWords[4][4 * i + 1]); parents[4].addChild(leafsWords[5][4 * i]); parents[4].addChild(leafsWords[5][4 * i + 1]); parents[5].addChild(leafsWords[4][4 * i + 2]); parents[5].addChild(leafsWords[4][4 * i + 3]); parents[5].addChild(leafsWords[5][4 * i + 2]); parents[5].addChild(leafsWords[5][4 * i + 3]); var parent = new ParentSegment_ParentSegment(this.templateContainer.copyParentTemplate()); var triangle = new TriangleSegment(this.templateContainer.copyTriangleTemplate()); if (i % 2 === 0) { parent.addChild(parents[0]); parent.addChild(parents[1]); parent.addChild(parents[2]); parent.addChild(parents[3]); var rowSegment = new RowSegment_RowSegment(this.templateContainer.copyRowTemplate()); rowSegment.addChild(parents[4]); rowSegment.addChild(parents[5]); triangle.addChild(parent); triangle.addChild(rowSegment); triangle.getElement().classList.add("type-1"); } else { var _rowSegment = new RowSegment_RowSegment(this.templateContainer.copyRowTemplate()); _rowSegment.addChild(parents[0]); _rowSegment.addChild(parents[1]); triangle.addChild(_rowSegment); triangle.addChild(parent); parent.addChild(parents[2]); parent.addChild(parents[3]); parent.addChild(parents[4]); parent.addChild(parents[5]); triangle.getElement().classList.add("type-2"); } rootSegment.addChild(triangle); } this.setRootSegment(rootSegment); } } }]); return SixWordsRowLevel; }(Level_Level); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/SixWordsRowLevel8.js function SixWordsRowLevel8_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { SixWordsRowLevel8_typeof = function _typeof(obj) { return typeof obj; }; } else { SixWordsRowLevel8_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return SixWordsRowLevel8_typeof(obj); } function SixWordsRowLevel8_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function SixWordsRowLevel8_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) SixWordsRowLevel8_setPrototypeOf(subClass, superClass); } function SixWordsRowLevel8_setPrototypeOf(o, p) { SixWordsRowLevel8_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return SixWordsRowLevel8_setPrototypeOf(o, p); } function SixWordsRowLevel8_createSuper(Derived) { var hasNativeReflectConstruct = SixWordsRowLevel8_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = SixWordsRowLevel8_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = SixWordsRowLevel8_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return SixWordsRowLevel8_possibleConstructorReturn(this, result); }; } function SixWordsRowLevel8_possibleConstructorReturn(self, call) { if (call && (SixWordsRowLevel8_typeof(call) === "object" || typeof call === "function")) { return call; } return SixWordsRowLevel8_assertThisInitialized(self); } function SixWordsRowLevel8_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function SixWordsRowLevel8_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function SixWordsRowLevel8_getPrototypeOf(o) { SixWordsRowLevel8_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return SixWordsRowLevel8_getPrototypeOf(o); } var SixWordsRowLevel8 = /*#__PURE__*/function (_SixWordsRowLevel) { SixWordsRowLevel8_inherits(SixWordsRowLevel8, _SixWordsRowLevel); var _super = SixWordsRowLevel8_createSuper(SixWordsRowLevel8); function SixWordsRowLevel8(templateContainer) { SixWordsRowLevel8_classCallCheck(this, SixWordsRowLevel8); return _super.call(this, templateContainer, 8); } return SixWordsRowLevel8; }(SixWordsRowLevel_SixWordsRowLevel); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/SixWordsRowLevel12.js function SixWordsRowLevel12_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { SixWordsRowLevel12_typeof = function _typeof(obj) { return typeof obj; }; } else { SixWordsRowLevel12_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return SixWordsRowLevel12_typeof(obj); } function SixWordsRowLevel12_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function SixWordsRowLevel12_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) SixWordsRowLevel12_setPrototypeOf(subClass, superClass); } function SixWordsRowLevel12_setPrototypeOf(o, p) { SixWordsRowLevel12_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return SixWordsRowLevel12_setPrototypeOf(o, p); } function SixWordsRowLevel12_createSuper(Derived) { var hasNativeReflectConstruct = SixWordsRowLevel12_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = SixWordsRowLevel12_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = SixWordsRowLevel12_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return SixWordsRowLevel12_possibleConstructorReturn(this, result); }; } function SixWordsRowLevel12_possibleConstructorReturn(self, call) { if (call && (SixWordsRowLevel12_typeof(call) === "object" || typeof call === "function")) { return call; } return SixWordsRowLevel12_assertThisInitialized(self); } function SixWordsRowLevel12_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function SixWordsRowLevel12_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function SixWordsRowLevel12_getPrototypeOf(o) { SixWordsRowLevel12_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return SixWordsRowLevel12_getPrototypeOf(o); } var SixWordsRowLevel12 = /*#__PURE__*/function (_SixWordsRowLevel) { SixWordsRowLevel12_inherits(SixWordsRowLevel12, _SixWordsRowLevel); var _super = SixWordsRowLevel12_createSuper(SixWordsRowLevel12); function SixWordsRowLevel12(templateContainer) { SixWordsRowLevel12_classCallCheck(this, SixWordsRowLevel12); return _super.call(this, templateContainer, 12); } return SixWordsRowLevel12; }(SixWordsRowLevel_SixWordsRowLevel); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/FourWordsLevel.js function FourWordsLevel_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { FourWordsLevel_typeof = function _typeof(obj) { return typeof obj; }; } else { FourWordsLevel_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return FourWordsLevel_typeof(obj); } function FourWordsLevel_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function FourWordsLevel_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function FourWordsLevel_createClass(Constructor, protoProps, staticProps) { if (protoProps) FourWordsLevel_defineProperties(Constructor.prototype, protoProps); if (staticProps) FourWordsLevel_defineProperties(Constructor, staticProps); return Constructor; } function FourWordsLevel_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) FourWordsLevel_setPrototypeOf(subClass, superClass); } function FourWordsLevel_setPrototypeOf(o, p) { FourWordsLevel_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return FourWordsLevel_setPrototypeOf(o, p); } function FourWordsLevel_createSuper(Derived) { var hasNativeReflectConstruct = FourWordsLevel_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = FourWordsLevel_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = FourWordsLevel_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return FourWordsLevel_possibleConstructorReturn(this, result); }; } function FourWordsLevel_possibleConstructorReturn(self, call) { if (call && (FourWordsLevel_typeof(call) === "object" || typeof call === "function")) { return call; } return FourWordsLevel_assertThisInitialized(self); } function FourWordsLevel_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function FourWordsLevel_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function FourWordsLevel_getPrototypeOf(o) { FourWordsLevel_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return FourWordsLevel_getPrototypeOf(o); } var FourWordsLevel_FourWordsLevel = /*#__PURE__*/function (_Level) { FourWordsLevel_inherits(FourWordsLevel, _Level); var _super = FourWordsLevel_createSuper(FourWordsLevel); function FourWordsLevel(templateContainer, wordLength) { var _this; FourWordsLevel_classCallCheck(this, FourWordsLevel); _this = _super.call(this, templateContainer); _this.wordLength = wordLength; return _this; } FourWordsLevel_createClass(FourWordsLevel, [{ key: "createSegments", value: function createSegments() { if (this.words.length >= 4 && this.words[0].length >= this.wordLength && this.words[1].length >= this.wordLength && this.words[2].length >= this.wordLength && this.words[3].length >= this.wordLength) { var leafsWords = []; leafsWords[0] = Level_Level._createLeafsForWord(this.words[0], this.templateContainer.copyLeafTemplate()); leafsWords[1] = Level_Level._createLeafsForWord(this.words[1], this.templateContainer.copyLeafTemplate()); leafsWords[2] = Level_Level._createLeafsForWord(this.words[2], this.templateContainer.copyLeafTemplate()); leafsWords[3] = Level_Level._createLeafsForWord(this.words[3], this.templateContainer.copyLeafTemplate()); var rootSegment = new RowSegment_RowSegment(this.templateContainer.copyRowTemplate()); for (var i = 0; i < this.wordLength / 4; i++) { var parents = []; parents[0] = new ParentSegment_ParentSegment(this.templateContainer.copyParentTemplate()); parents[1] = new ParentSegment_ParentSegment(this.templateContainer.copyParentTemplate()); parents[2] = new ParentSegment_ParentSegment(this.templateContainer.copyParentTemplate()); parents[3] = new ParentSegment_ParentSegment(this.templateContainer.copyParentTemplate()); parents[0].addChild(leafsWords[0][4 * i]); parents[0].addChild(leafsWords[0][4 * i + 1]); parents[0].addChild(leafsWords[1][4 * i]); parents[0].addChild(leafsWords[1][4 * i + 1]); parents[1].addChild(leafsWords[0][4 * i + 2]); parents[1].addChild(leafsWords[0][4 * i + 3]); parents[1].addChild(leafsWords[1][4 * i + 2]); parents[1].addChild(leafsWords[1][4 * i + 3]); parents[2].addChild(leafsWords[2][4 * i]); parents[2].addChild(leafsWords[2][4 * i + 1]); parents[2].addChild(leafsWords[3][4 * i]); parents[2].addChild(leafsWords[3][4 * i + 1]); parents[3].addChild(leafsWords[2][4 * i + 2]); parents[3].addChild(leafsWords[2][4 * i + 3]); parents[3].addChild(leafsWords[3][4 * i + 2]); parents[3].addChild(leafsWords[3][4 * i + 3]); var parent = new ParentSegment_ParentSegment(this.templateContainer.copyParentTemplate()); parent.addChild(parents[0]); parent.addChild(parents[1]); parent.addChild(parents[2]); parent.addChild(parents[3]); rootSegment.addChild(parent); } this.setRootSegment(rootSegment); } } }]); return FourWordsLevel; }(Level_Level); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/FourWordsLevel8.js function FourWordsLevel8_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { FourWordsLevel8_typeof = function _typeof(obj) { return typeof obj; }; } else { FourWordsLevel8_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return FourWordsLevel8_typeof(obj); } function FourWordsLevel8_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function FourWordsLevel8_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) FourWordsLevel8_setPrototypeOf(subClass, superClass); } function FourWordsLevel8_setPrototypeOf(o, p) { FourWordsLevel8_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return FourWordsLevel8_setPrototypeOf(o, p); } function FourWordsLevel8_createSuper(Derived) { var hasNativeReflectConstruct = FourWordsLevel8_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = FourWordsLevel8_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = FourWordsLevel8_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return FourWordsLevel8_possibleConstructorReturn(this, result); }; } function FourWordsLevel8_possibleConstructorReturn(self, call) { if (call && (FourWordsLevel8_typeof(call) === "object" || typeof call === "function")) { return call; } return FourWordsLevel8_assertThisInitialized(self); } function FourWordsLevel8_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function FourWordsLevel8_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function FourWordsLevel8_getPrototypeOf(o) { FourWordsLevel8_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return FourWordsLevel8_getPrototypeOf(o); } var FourWordsLevel8 = /*#__PURE__*/function (_FourWordsLevel) { FourWordsLevel8_inherits(FourWordsLevel8, _FourWordsLevel); var _super = FourWordsLevel8_createSuper(FourWordsLevel8); function FourWordsLevel8(templateContainer) { FourWordsLevel8_classCallCheck(this, FourWordsLevel8); return _super.call(this, templateContainer, 8); } return FourWordsLevel8; }(FourWordsLevel_FourWordsLevel); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/FourWordsLevel12.js function FourWordsLevel12_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { FourWordsLevel12_typeof = function _typeof(obj) { return typeof obj; }; } else { FourWordsLevel12_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return FourWordsLevel12_typeof(obj); } function FourWordsLevel12_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function FourWordsLevel12_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) FourWordsLevel12_setPrototypeOf(subClass, superClass); } function FourWordsLevel12_setPrototypeOf(o, p) { FourWordsLevel12_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return FourWordsLevel12_setPrototypeOf(o, p); } function FourWordsLevel12_createSuper(Derived) { var hasNativeReflectConstruct = FourWordsLevel12_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = FourWordsLevel12_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = FourWordsLevel12_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return FourWordsLevel12_possibleConstructorReturn(this, result); }; } function FourWordsLevel12_possibleConstructorReturn(self, call) { if (call && (FourWordsLevel12_typeof(call) === "object" || typeof call === "function")) { return call; } return FourWordsLevel12_assertThisInitialized(self); } function FourWordsLevel12_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function FourWordsLevel12_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function FourWordsLevel12_getPrototypeOf(o) { FourWordsLevel12_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return FourWordsLevel12_getPrototypeOf(o); } var FourWordsLevel12 = /*#__PURE__*/function (_FourWordsLevel) { FourWordsLevel12_inherits(FourWordsLevel12, _FourWordsLevel); var _super = FourWordsLevel12_createSuper(FourWordsLevel12); function FourWordsLevel12(templateContainer) { FourWordsLevel12_classCallCheck(this, FourWordsLevel12); return _super.call(this, templateContainer, 12); } return FourWordsLevel12; }(FourWordsLevel_FourWordsLevel); // CONCATENATED MODULE: ./src/client/js/wordrotator/Segment/ColumnSegment.js function ColumnSegment_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ColumnSegment_typeof = function _typeof(obj) { return typeof obj; }; } else { ColumnSegment_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ColumnSegment_typeof(obj); } function ColumnSegment_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function ColumnSegment_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function ColumnSegment_createClass(Constructor, protoProps, staticProps) { if (protoProps) ColumnSegment_defineProperties(Constructor.prototype, protoProps); if (staticProps) ColumnSegment_defineProperties(Constructor, staticProps); return Constructor; } function ColumnSegment_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) ColumnSegment_setPrototypeOf(subClass, superClass); } function ColumnSegment_setPrototypeOf(o, p) { ColumnSegment_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return ColumnSegment_setPrototypeOf(o, p); } function ColumnSegment_createSuper(Derived) { var hasNativeReflectConstruct = ColumnSegment_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = ColumnSegment_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = ColumnSegment_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return ColumnSegment_possibleConstructorReturn(this, result); }; } function ColumnSegment_possibleConstructorReturn(self, call) { if (call && (ColumnSegment_typeof(call) === "object" || typeof call === "function")) { return call; } return ColumnSegment_assertThisInitialized(self); } function ColumnSegment_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function ColumnSegment_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function ColumnSegment_getPrototypeOf(o) { ColumnSegment_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return ColumnSegment_getPrototypeOf(o); } var ColumnSegment_ColumnSegment = /*#__PURE__*/function (_RowSegment) { ColumnSegment_inherits(ColumnSegment, _RowSegment); var _super = ColumnSegment_createSuper(ColumnSegment); function ColumnSegment() { ColumnSegment_classCallCheck(this, ColumnSegment); return _super.apply(this, arguments); } ColumnSegment_createClass(ColumnSegment, [{ key: "_updateElement", value: function _updateElement() { var childContainer = this.element.querySelector(".child-container"); ViewHelper["ViewHelper"].removeAllChildren(childContainer); this._updateRotationClass(); var self = this; this.element.onclick = function (e) { self.rotate(); e.stopPropagation(); }; for (var i = 0, n = this.children.length; i < n; i++) { this.children[i]._updateElement(); childContainer.appendChild(this.children[i].getElement()); } } // constructor(element) { // super(element); // this.rotatable = false; // } // // applyRotations(rotations) // { // for (let i = 0, n = this.children.length; i < n; i++) { // rotations = this.children[i].applyRotations(rotations); // } // return rotations; // } // // getCurrentRotations(rotations){ // for (let i = 0, n = this.children.length; i < n; i++) { // rotations = this.children[i].getCurrentRotations(rotations); // } // return rotations; // } // // getCurrentLocked(locked) { // for (let i = 0, n = this.children.length; i < n; i++) { // locked = this.children[i].getCurrentLocked(locked); // } // return locked; // } // // applyLocks(locks) { // for (let i = 0, n = this.children.length; i < n; i++) { // locks = this.children[i].applyLocks(locks); // } // return locks; // } // // _updateElement() { // const childContainer = this.element.querySelector(".child-container"); // ViewHelper.removeAllChildren(childContainer); // // this._updateRotationClass(); // // const self = this; // this.element.onclick = function (e) { // self.rotate(); // e.stopPropagation(); // }; // // for (let i = 0, n = this.children.length; i < n; i++) { // this.children[i]._updateElement(); // childContainer.appendChild(this.children[i].getElement()); // } // } }]); return ColumnSegment; }(RowSegment_RowSegment); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/BigSegmentsLevels.js function BigSegmentsLevels_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { BigSegmentsLevels_typeof = function _typeof(obj) { return typeof obj; }; } else { BigSegmentsLevels_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return BigSegmentsLevels_typeof(obj); } function BigSegmentsLevels_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function BigSegmentsLevels_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function BigSegmentsLevels_createClass(Constructor, protoProps, staticProps) { if (protoProps) BigSegmentsLevels_defineProperties(Constructor.prototype, protoProps); if (staticProps) BigSegmentsLevels_defineProperties(Constructor, staticProps); return Constructor; } function BigSegmentsLevels_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) BigSegmentsLevels_setPrototypeOf(subClass, superClass); } function BigSegmentsLevels_setPrototypeOf(o, p) { BigSegmentsLevels_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return BigSegmentsLevels_setPrototypeOf(o, p); } function BigSegmentsLevels_createSuper(Derived) { var hasNativeReflectConstruct = BigSegmentsLevels_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = BigSegmentsLevels_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = BigSegmentsLevels_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return BigSegmentsLevels_possibleConstructorReturn(this, result); }; } function BigSegmentsLevels_possibleConstructorReturn(self, call) { if (call && (BigSegmentsLevels_typeof(call) === "object" || typeof call === "function")) { return call; } return BigSegmentsLevels_assertThisInitialized(self); } function BigSegmentsLevels_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function BigSegmentsLevels_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function BigSegmentsLevels_getPrototypeOf(o) { BigSegmentsLevels_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return BigSegmentsLevels_getPrototypeOf(o); } var BigSegmentsLevels_BigSegmentsLevels = /*#__PURE__*/function (_Level) { BigSegmentsLevels_inherits(BigSegmentsLevels, _Level); var _super = BigSegmentsLevels_createSuper(BigSegmentsLevels); function BigSegmentsLevels(templateContainer, wordLength, bigSegmentPositions) { var _this; BigSegmentsLevels_classCallCheck(this, BigSegmentsLevels); _this = _super.call(this, templateContainer); _this.wordLength = wordLength; _this.bigSegmentPositions = bigSegmentPositions; return _this; } BigSegmentsLevels_createClass(BigSegmentsLevels, [{ key: "createSegments", value: function createSegments() { if (this.words.length >= 4 && this.words[0].length >= this.wordLength && this.words[1].length >= this.wordLength && this.words[2].length >= this.wordLength && this.words[3].length >= this.wordLength && this.wordLength >= 4) { var leafsWords = []; leafsWords[0] = Level_Level._createLeafsForWord(this.words[0], this.templateContainer.copyLeafTemplate()); leafsWords[1] = Level_Level._createLeafsForWord(this.words[1], this.templateContainer.copyLeafTemplate()); leafsWords[2] = Level_Level._createLeafsForWord(this.words[2], this.templateContainer.copyLeafTemplate()); leafsWords[3] = Level_Level._createLeafsForWord(this.words[3], this.templateContainer.copyLeafTemplate()); var rootSegment = new RowSegment_RowSegment(this.templateContainer.copyRowTemplate()); for (var i = 0; i < this.wordLength / 2; i++) { var parents = []; parents[0] = new ParentSegment_ParentSegment(this.templateContainer.copyParentTemplate()); parents[1] = new ParentSegment_ParentSegment(this.templateContainer.copyParentTemplate()); parents[0].addChild(leafsWords[0][2 * i]); parents[0].addChild(leafsWords[0][2 * i + 1]); parents[0].addChild(leafsWords[1][2 * i]); parents[0].addChild(leafsWords[1][2 * i + 1]); parents[1].addChild(leafsWords[2][2 * i]); parents[1].addChild(leafsWords[2][2 * i + 1]); parents[1].addChild(leafsWords[3][2 * i]); parents[1].addChild(leafsWords[3][2 * i + 1]); var parentSegment = null; if (this.bigSegmentPositions.indexOf(i) !== -1) { parents[2] = new ParentSegment_ParentSegment(this.templateContainer.copyParentTemplate()); parents[3] = new ParentSegment_ParentSegment(this.templateContainer.copyParentTemplate()); parents[2].addChild(leafsWords[0][2 * i + 2]); parents[2].addChild(leafsWords[0][2 * i + 3]); parents[2].addChild(leafsWords[1][2 * i + 2]); parents[2].addChild(leafsWords[1][2 * i + 3]); parents[3].addChild(leafsWords[2][2 * i + 2]); parents[3].addChild(leafsWords[2][2 * i + 3]); parents[3].addChild(leafsWords[3][2 * i + 2]); parents[3].addChild(leafsWords[3][2 * i + 3]); parentSegment = new ParentSegment_ParentSegment(this.templateContainer.copyParentTemplate()); parentSegment.addChild(parents[0]); parentSegment.addChild(parents[2]); parentSegment.addChild(parents[1]); parentSegment.addChild(parents[3]); i++; } else { parentSegment = new ColumnSegment_ColumnSegment(this.templateContainer.copyColumnTemplate()); parentSegment.addChild(parents[0]); parentSegment.addChild(parents[1]); } rootSegment.addChild(parentSegment); } this.setRootSegment(rootSegment); } } }]); return BigSegmentsLevels; }(Level_Level); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/SimpleFourWordsLevel.js function SimpleFourWordsLevel_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { SimpleFourWordsLevel_typeof = function _typeof(obj) { return typeof obj; }; } else { SimpleFourWordsLevel_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return SimpleFourWordsLevel_typeof(obj); } function SimpleFourWordsLevel_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function SimpleFourWordsLevel_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) SimpleFourWordsLevel_setPrototypeOf(subClass, superClass); } function SimpleFourWordsLevel_setPrototypeOf(o, p) { SimpleFourWordsLevel_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return SimpleFourWordsLevel_setPrototypeOf(o, p); } function SimpleFourWordsLevel_createSuper(Derived) { var hasNativeReflectConstruct = SimpleFourWordsLevel_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = SimpleFourWordsLevel_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = SimpleFourWordsLevel_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return SimpleFourWordsLevel_possibleConstructorReturn(this, result); }; } function SimpleFourWordsLevel_possibleConstructorReturn(self, call) { if (call && (SimpleFourWordsLevel_typeof(call) === "object" || typeof call === "function")) { return call; } return SimpleFourWordsLevel_assertThisInitialized(self); } function SimpleFourWordsLevel_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function SimpleFourWordsLevel_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function SimpleFourWordsLevel_getPrototypeOf(o) { SimpleFourWordsLevel_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return SimpleFourWordsLevel_getPrototypeOf(o); } var SimpleFourWordsLevel = /*#__PURE__*/function (_BigSegmentsLevels) { SimpleFourWordsLevel_inherits(SimpleFourWordsLevel, _BigSegmentsLevels); var _super = SimpleFourWordsLevel_createSuper(SimpleFourWordsLevel); function SimpleFourWordsLevel(templateContainer, wordLength, bigSegmentPosition) { SimpleFourWordsLevel_classCallCheck(this, SimpleFourWordsLevel); return _super.call(this, templateContainer, wordLength, [bigSegmentPosition]); } return SimpleFourWordsLevel; }(BigSegmentsLevels_BigSegmentsLevels); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_0.js function SimpleFourWordsLevel10_0_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { SimpleFourWordsLevel10_0_typeof = function _typeof(obj) { return typeof obj; }; } else { SimpleFourWordsLevel10_0_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return SimpleFourWordsLevel10_0_typeof(obj); } function SimpleFourWordsLevel10_0_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function SimpleFourWordsLevel10_0_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) SimpleFourWordsLevel10_0_setPrototypeOf(subClass, superClass); } function SimpleFourWordsLevel10_0_setPrototypeOf(o, p) { SimpleFourWordsLevel10_0_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return SimpleFourWordsLevel10_0_setPrototypeOf(o, p); } function SimpleFourWordsLevel10_0_createSuper(Derived) { var hasNativeReflectConstruct = SimpleFourWordsLevel10_0_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = SimpleFourWordsLevel10_0_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = SimpleFourWordsLevel10_0_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return SimpleFourWordsLevel10_0_possibleConstructorReturn(this, result); }; } function SimpleFourWordsLevel10_0_possibleConstructorReturn(self, call) { if (call && (SimpleFourWordsLevel10_0_typeof(call) === "object" || typeof call === "function")) { return call; } return SimpleFourWordsLevel10_0_assertThisInitialized(self); } function SimpleFourWordsLevel10_0_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function SimpleFourWordsLevel10_0_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function SimpleFourWordsLevel10_0_getPrototypeOf(o) { SimpleFourWordsLevel10_0_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return SimpleFourWordsLevel10_0_getPrototypeOf(o); } var SimpleFourWordsLevel10_0 = /*#__PURE__*/function (_SimpleFourWordsLevel) { SimpleFourWordsLevel10_0_inherits(SimpleFourWordsLevel10_0, _SimpleFourWordsLevel); var _super = SimpleFourWordsLevel10_0_createSuper(SimpleFourWordsLevel10_0); function SimpleFourWordsLevel10_0(templateContainer) { SimpleFourWordsLevel10_0_classCallCheck(this, SimpleFourWordsLevel10_0); return _super.call(this, templateContainer, 10, 0); } return SimpleFourWordsLevel10_0; }(SimpleFourWordsLevel); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_1.js function SimpleFourWordsLevel10_1_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { SimpleFourWordsLevel10_1_typeof = function _typeof(obj) { return typeof obj; }; } else { SimpleFourWordsLevel10_1_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return SimpleFourWordsLevel10_1_typeof(obj); } function SimpleFourWordsLevel10_1_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function SimpleFourWordsLevel10_1_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) SimpleFourWordsLevel10_1_setPrototypeOf(subClass, superClass); } function SimpleFourWordsLevel10_1_setPrototypeOf(o, p) { SimpleFourWordsLevel10_1_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return SimpleFourWordsLevel10_1_setPrototypeOf(o, p); } function SimpleFourWordsLevel10_1_createSuper(Derived) { var hasNativeReflectConstruct = SimpleFourWordsLevel10_1_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = SimpleFourWordsLevel10_1_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = SimpleFourWordsLevel10_1_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return SimpleFourWordsLevel10_1_possibleConstructorReturn(this, result); }; } function SimpleFourWordsLevel10_1_possibleConstructorReturn(self, call) { if (call && (SimpleFourWordsLevel10_1_typeof(call) === "object" || typeof call === "function")) { return call; } return SimpleFourWordsLevel10_1_assertThisInitialized(self); } function SimpleFourWordsLevel10_1_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function SimpleFourWordsLevel10_1_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function SimpleFourWordsLevel10_1_getPrototypeOf(o) { SimpleFourWordsLevel10_1_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return SimpleFourWordsLevel10_1_getPrototypeOf(o); } var SimpleFourWordsLevel10_1 = /*#__PURE__*/function (_SimpleFourWordsLevel) { SimpleFourWordsLevel10_1_inherits(SimpleFourWordsLevel10_1, _SimpleFourWordsLevel); var _super = SimpleFourWordsLevel10_1_createSuper(SimpleFourWordsLevel10_1); function SimpleFourWordsLevel10_1(templateContainer) { SimpleFourWordsLevel10_1_classCallCheck(this, SimpleFourWordsLevel10_1); return _super.call(this, templateContainer, 10, 1); } return SimpleFourWordsLevel10_1; }(SimpleFourWordsLevel); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_2.js function SimpleFourWordsLevel10_2_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { SimpleFourWordsLevel10_2_typeof = function _typeof(obj) { return typeof obj; }; } else { SimpleFourWordsLevel10_2_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return SimpleFourWordsLevel10_2_typeof(obj); } function SimpleFourWordsLevel10_2_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function SimpleFourWordsLevel10_2_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) SimpleFourWordsLevel10_2_setPrototypeOf(subClass, superClass); } function SimpleFourWordsLevel10_2_setPrototypeOf(o, p) { SimpleFourWordsLevel10_2_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return SimpleFourWordsLevel10_2_setPrototypeOf(o, p); } function SimpleFourWordsLevel10_2_createSuper(Derived) { var hasNativeReflectConstruct = SimpleFourWordsLevel10_2_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = SimpleFourWordsLevel10_2_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = SimpleFourWordsLevel10_2_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return SimpleFourWordsLevel10_2_possibleConstructorReturn(this, result); }; } function SimpleFourWordsLevel10_2_possibleConstructorReturn(self, call) { if (call && (SimpleFourWordsLevel10_2_typeof(call) === "object" || typeof call === "function")) { return call; } return SimpleFourWordsLevel10_2_assertThisInitialized(self); } function SimpleFourWordsLevel10_2_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function SimpleFourWordsLevel10_2_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function SimpleFourWordsLevel10_2_getPrototypeOf(o) { SimpleFourWordsLevel10_2_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return SimpleFourWordsLevel10_2_getPrototypeOf(o); } var SimpleFourWordsLevel10_2 = /*#__PURE__*/function (_SimpleFourWordsLevel) { SimpleFourWordsLevel10_2_inherits(SimpleFourWordsLevel10_2, _SimpleFourWordsLevel); var _super = SimpleFourWordsLevel10_2_createSuper(SimpleFourWordsLevel10_2); function SimpleFourWordsLevel10_2(templateContainer) { SimpleFourWordsLevel10_2_classCallCheck(this, SimpleFourWordsLevel10_2); return _super.call(this, templateContainer, 10, 2); } return SimpleFourWordsLevel10_2; }(SimpleFourWordsLevel); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_3.js function SimpleFourWordsLevel10_3_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { SimpleFourWordsLevel10_3_typeof = function _typeof(obj) { return typeof obj; }; } else { SimpleFourWordsLevel10_3_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return SimpleFourWordsLevel10_3_typeof(obj); } function SimpleFourWordsLevel10_3_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function SimpleFourWordsLevel10_3_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) SimpleFourWordsLevel10_3_setPrototypeOf(subClass, superClass); } function SimpleFourWordsLevel10_3_setPrototypeOf(o, p) { SimpleFourWordsLevel10_3_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return SimpleFourWordsLevel10_3_setPrototypeOf(o, p); } function SimpleFourWordsLevel10_3_createSuper(Derived) { var hasNativeReflectConstruct = SimpleFourWordsLevel10_3_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = SimpleFourWordsLevel10_3_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = SimpleFourWordsLevel10_3_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return SimpleFourWordsLevel10_3_possibleConstructorReturn(this, result); }; } function SimpleFourWordsLevel10_3_possibleConstructorReturn(self, call) { if (call && (SimpleFourWordsLevel10_3_typeof(call) === "object" || typeof call === "function")) { return call; } return SimpleFourWordsLevel10_3_assertThisInitialized(self); } function SimpleFourWordsLevel10_3_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function SimpleFourWordsLevel10_3_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function SimpleFourWordsLevel10_3_getPrototypeOf(o) { SimpleFourWordsLevel10_3_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return SimpleFourWordsLevel10_3_getPrototypeOf(o); } var SimpleFourWordsLevel10_3 = /*#__PURE__*/function (_SimpleFourWordsLevel) { SimpleFourWordsLevel10_3_inherits(SimpleFourWordsLevel10_3, _SimpleFourWordsLevel); var _super = SimpleFourWordsLevel10_3_createSuper(SimpleFourWordsLevel10_3); function SimpleFourWordsLevel10_3(templateContainer) { SimpleFourWordsLevel10_3_classCallCheck(this, SimpleFourWordsLevel10_3); return _super.call(this, templateContainer, 10, 3); } return SimpleFourWordsLevel10_3; }(SimpleFourWordsLevel); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/TwoSegmentFourWordsLevel10_0_3.js function TwoSegmentFourWordsLevel10_0_3_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { TwoSegmentFourWordsLevel10_0_3_typeof = function _typeof(obj) { return typeof obj; }; } else { TwoSegmentFourWordsLevel10_0_3_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return TwoSegmentFourWordsLevel10_0_3_typeof(obj); } function TwoSegmentFourWordsLevel10_0_3_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function TwoSegmentFourWordsLevel10_0_3_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) TwoSegmentFourWordsLevel10_0_3_setPrototypeOf(subClass, superClass); } function TwoSegmentFourWordsLevel10_0_3_setPrototypeOf(o, p) { TwoSegmentFourWordsLevel10_0_3_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return TwoSegmentFourWordsLevel10_0_3_setPrototypeOf(o, p); } function TwoSegmentFourWordsLevel10_0_3_createSuper(Derived) { var hasNativeReflectConstruct = TwoSegmentFourWordsLevel10_0_3_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = TwoSegmentFourWordsLevel10_0_3_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = TwoSegmentFourWordsLevel10_0_3_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return TwoSegmentFourWordsLevel10_0_3_possibleConstructorReturn(this, result); }; } function TwoSegmentFourWordsLevel10_0_3_possibleConstructorReturn(self, call) { if (call && (TwoSegmentFourWordsLevel10_0_3_typeof(call) === "object" || typeof call === "function")) { return call; } return TwoSegmentFourWordsLevel10_0_3_assertThisInitialized(self); } function TwoSegmentFourWordsLevel10_0_3_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function TwoSegmentFourWordsLevel10_0_3_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function TwoSegmentFourWordsLevel10_0_3_getPrototypeOf(o) { TwoSegmentFourWordsLevel10_0_3_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return TwoSegmentFourWordsLevel10_0_3_getPrototypeOf(o); } var TwoSegmentFourWordsLevel10_0_3 = /*#__PURE__*/function (_BigSegmentsLevels) { TwoSegmentFourWordsLevel10_0_3_inherits(TwoSegmentFourWordsLevel10_0_3, _BigSegmentsLevels); var _super = TwoSegmentFourWordsLevel10_0_3_createSuper(TwoSegmentFourWordsLevel10_0_3); function TwoSegmentFourWordsLevel10_0_3(templateContainer) { TwoSegmentFourWordsLevel10_0_3_classCallCheck(this, TwoSegmentFourWordsLevel10_0_3); return _super.call(this, templateContainer, 10, [0, 3]); } return TwoSegmentFourWordsLevel10_0_3; }(BigSegmentsLevels_BigSegmentsLevels); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/TwoSegmentFourWordsLevel10_1_3.js function TwoSegmentFourWordsLevel10_1_3_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { TwoSegmentFourWordsLevel10_1_3_typeof = function _typeof(obj) { return typeof obj; }; } else { TwoSegmentFourWordsLevel10_1_3_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return TwoSegmentFourWordsLevel10_1_3_typeof(obj); } function TwoSegmentFourWordsLevel10_1_3_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function TwoSegmentFourWordsLevel10_1_3_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) TwoSegmentFourWordsLevel10_1_3_setPrototypeOf(subClass, superClass); } function TwoSegmentFourWordsLevel10_1_3_setPrototypeOf(o, p) { TwoSegmentFourWordsLevel10_1_3_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return TwoSegmentFourWordsLevel10_1_3_setPrototypeOf(o, p); } function TwoSegmentFourWordsLevel10_1_3_createSuper(Derived) { var hasNativeReflectConstruct = TwoSegmentFourWordsLevel10_1_3_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = TwoSegmentFourWordsLevel10_1_3_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = TwoSegmentFourWordsLevel10_1_3_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return TwoSegmentFourWordsLevel10_1_3_possibleConstructorReturn(this, result); }; } function TwoSegmentFourWordsLevel10_1_3_possibleConstructorReturn(self, call) { if (call && (TwoSegmentFourWordsLevel10_1_3_typeof(call) === "object" || typeof call === "function")) { return call; } return TwoSegmentFourWordsLevel10_1_3_assertThisInitialized(self); } function TwoSegmentFourWordsLevel10_1_3_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function TwoSegmentFourWordsLevel10_1_3_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function TwoSegmentFourWordsLevel10_1_3_getPrototypeOf(o) { TwoSegmentFourWordsLevel10_1_3_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return TwoSegmentFourWordsLevel10_1_3_getPrototypeOf(o); } var TwoSegmentFourWordsLevel10_1_3 = /*#__PURE__*/function (_BigSegmentsLevels) { TwoSegmentFourWordsLevel10_1_3_inherits(TwoSegmentFourWordsLevel10_1_3, _BigSegmentsLevels); var _super = TwoSegmentFourWordsLevel10_1_3_createSuper(TwoSegmentFourWordsLevel10_1_3); function TwoSegmentFourWordsLevel10_1_3(templateContainer) { TwoSegmentFourWordsLevel10_1_3_classCallCheck(this, TwoSegmentFourWordsLevel10_1_3); return _super.call(this, templateContainer, 10, [1, 3]); } return TwoSegmentFourWordsLevel10_1_3; }(BigSegmentsLevels_BigSegmentsLevels); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/TwoSegmentFourWordsLevel10_0_2.js function TwoSegmentFourWordsLevel10_0_2_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { TwoSegmentFourWordsLevel10_0_2_typeof = function _typeof(obj) { return typeof obj; }; } else { TwoSegmentFourWordsLevel10_0_2_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return TwoSegmentFourWordsLevel10_0_2_typeof(obj); } function TwoSegmentFourWordsLevel10_0_2_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function TwoSegmentFourWordsLevel10_0_2_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) TwoSegmentFourWordsLevel10_0_2_setPrototypeOf(subClass, superClass); } function TwoSegmentFourWordsLevel10_0_2_setPrototypeOf(o, p) { TwoSegmentFourWordsLevel10_0_2_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return TwoSegmentFourWordsLevel10_0_2_setPrototypeOf(o, p); } function TwoSegmentFourWordsLevel10_0_2_createSuper(Derived) { var hasNativeReflectConstruct = TwoSegmentFourWordsLevel10_0_2_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = TwoSegmentFourWordsLevel10_0_2_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = TwoSegmentFourWordsLevel10_0_2_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return TwoSegmentFourWordsLevel10_0_2_possibleConstructorReturn(this, result); }; } function TwoSegmentFourWordsLevel10_0_2_possibleConstructorReturn(self, call) { if (call && (TwoSegmentFourWordsLevel10_0_2_typeof(call) === "object" || typeof call === "function")) { return call; } return TwoSegmentFourWordsLevel10_0_2_assertThisInitialized(self); } function TwoSegmentFourWordsLevel10_0_2_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function TwoSegmentFourWordsLevel10_0_2_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function TwoSegmentFourWordsLevel10_0_2_getPrototypeOf(o) { TwoSegmentFourWordsLevel10_0_2_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return TwoSegmentFourWordsLevel10_0_2_getPrototypeOf(o); } var TwoSegmentFourWordsLevel10_0_2 = /*#__PURE__*/function (_BigSegmentsLevels) { TwoSegmentFourWordsLevel10_0_2_inherits(TwoSegmentFourWordsLevel10_0_2, _BigSegmentsLevels); var _super = TwoSegmentFourWordsLevel10_0_2_createSuper(TwoSegmentFourWordsLevel10_0_2); function TwoSegmentFourWordsLevel10_0_2(templateContainer) { TwoSegmentFourWordsLevel10_0_2_classCallCheck(this, TwoSegmentFourWordsLevel10_0_2); return _super.call(this, templateContainer, 10, [0, 2]); } return TwoSegmentFourWordsLevel10_0_2; }(BigSegmentsLevels_BigSegmentsLevels); // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/LevelHelper.ts function LevelHelper_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function LevelHelper_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function LevelHelper_createClass(Constructor, protoProps, staticProps) { if (protoProps) LevelHelper_defineProperties(Constructor.prototype, protoProps); if (staticProps) LevelHelper_defineProperties(Constructor, staticProps); return Constructor; } var LevelHelper = /*#__PURE__*/function () { function LevelHelper() { LevelHelper_classCallCheck(this, LevelHelper); } LevelHelper_createClass(LevelHelper, null, [{ key: "setLevelType", value: function setLevelType(typeId, level) { LevelHelper.types[typeId] = level; } }, { key: "getLevelClass", value: function getLevelClass(type) { return LevelHelper.types[type]; } }, { key: "inflateLevel", value: function inflateLevel(levelData, templateContainer) { var level = new LevelHelper.types[levelData["renderer"]](templateContainer); level.setWords(JSON.parse(levelData["words"].replace(/"/g, '"'))); level.setId(levelData["id"]); level.setLevelData(levelData); levelData["positions"] = JSON.parse(levelData["positions"]); for (var i = 0, n = levelData["positions"].length; i < n; i++) { if (levelData["positions"][i] <= 4) { levelData["positions"][i] = 90 * levelData["positions"][i]; } } level.setStartRotations(levelData["positions"]); return level; } }]); return LevelHelper; }(); LevelHelper.types = { 20: SimpleLevel, 40: RowLevel8, 60: RowLevel10, 80: SimpleFourWordsLevel10_0, 81: SimpleFourWordsLevel10_1, 82: SimpleFourWordsLevel10_2, 83: SimpleFourWordsLevel10_3, 100: SixWordsRowLevel8, 110: TwoSegmentFourWordsLevel10_0_3, 111: TwoSegmentFourWordsLevel10_1_3, 112: TwoSegmentFourWordsLevel10_0_2, 120: FourWordsLevel8, 140: SixWordsRowLevel12, 160: FourWordsLevel12 }; // CONCATENATED MODULE: ./src/client/js/Sites/EndSite.ts function EndSite_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { EndSite_typeof = function _typeof(obj) { return typeof obj; }; } else { EndSite_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return EndSite_typeof(obj); } function EndSite_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function EndSite_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) EndSite_setPrototypeOf(subClass, superClass); } function EndSite_setPrototypeOf(o, p) { EndSite_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return EndSite_setPrototypeOf(o, p); } function EndSite_createSuper(Derived) { var hasNativeReflectConstruct = EndSite_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = EndSite_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = EndSite_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return EndSite_possibleConstructorReturn(this, result); }; } function EndSite_possibleConstructorReturn(self, call) { if (call && (EndSite_typeof(call) === "object" || typeof call === "function")) { return call; } return EndSite_assertThisInitialized(self); } function EndSite_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function EndSite_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function EndSite_getPrototypeOf(o) { EndSite_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return EndSite_getPrototypeOf(o); } var view = __webpack_require__(546); var EndSite = /*#__PURE__*/function (_MenuSite) { EndSite_inherits(EndSite, _MenuSite); var _super = EndSite_createSuper(EndSite); function EndSite(siteManager) { EndSite_classCallCheck(this, EndSite); return _super.call(this, siteManager, view); } return EndSite; }(client["MenuSite"]); // EXTERNAL MODULE: ./node_modules/cordova-sites-database/dist/BaseModel.js var BaseModel = __webpack_require__(208); // CONCATENATED MODULE: ./src/client/js/model/LevelPlayed.ts function LevelPlayed_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { LevelPlayed_typeof = function _typeof(obj) { return typeof obj; }; } else { LevelPlayed_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return LevelPlayed_typeof(obj); } function LevelPlayed_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function LevelPlayed_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function LevelPlayed_createClass(Constructor, protoProps, staticProps) { if (protoProps) LevelPlayed_defineProperties(Constructor.prototype, protoProps); if (staticProps) LevelPlayed_defineProperties(Constructor, staticProps); return Constructor; } function LevelPlayed_get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { LevelPlayed_get = Reflect.get; } else { LevelPlayed_get = function _get(target, property, receiver) { var base = LevelPlayed_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return LevelPlayed_get(target, property, receiver || target); } function LevelPlayed_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = LevelPlayed_getPrototypeOf(object); if (object === null) break; } return object; } function LevelPlayed_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) LevelPlayed_setPrototypeOf(subClass, superClass); } function LevelPlayed_setPrototypeOf(o, p) { LevelPlayed_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return LevelPlayed_setPrototypeOf(o, p); } function LevelPlayed_createSuper(Derived) { var hasNativeReflectConstruct = LevelPlayed_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = LevelPlayed_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = LevelPlayed_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return LevelPlayed_possibleConstructorReturn(this, result); }; } function LevelPlayed_possibleConstructorReturn(self, call) { if (call && (LevelPlayed_typeof(call) === "object" || typeof call === "function")) { return call; } return LevelPlayed_assertThisInitialized(self); } function LevelPlayed_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function LevelPlayed_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function LevelPlayed_getPrototypeOf(o) { LevelPlayed_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return LevelPlayed_getPrototypeOf(o); } var LevelPlayed_awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var LevelPlayed_LevelPlayed = /*#__PURE__*/function (_BaseModel) { LevelPlayed_inherits(LevelPlayed, _BaseModel); var _super = LevelPlayed_createSuper(LevelPlayed); function LevelPlayed() { LevelPlayed_classCallCheck(this, LevelPlayed); return _super.apply(this, arguments); } LevelPlayed_createClass(LevelPlayed, null, [{ key: "getColumnDefinitions", value: function getColumnDefinitions() { var columns = LevelPlayed_get(LevelPlayed_getPrototypeOf(LevelPlayed), "getColumnDefinitions", this).call(this); columns["played"] = { type: cordova_sites_database["BaseDatabase"].TYPES.BOOLEAN, default: true }; return columns; } }, { key: "getRelationDefinitions", value: function getRelationDefinitions() { var relations = LevelPlayed_get(LevelPlayed_getPrototypeOf(LevelPlayed), "getRelationDefinitions", this).call(this); relations["levelData"] = { target: LevelData_LevelData.getSchemaName(), type: "one-to-one", joinColumn: true // cascade: true, }; return relations; } }, { key: "setPlayed", value: function setPlayed(levelData, played) { return LevelPlayed_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var levelPlayed; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: played = Helper["Helper"].nonNull(played, true); levelPlayed = new LevelPlayed(); levelPlayed.levelData = levelData; levelPlayed.played = played; _context.next = 6; return levelPlayed.save(); case 6: return _context.abrupt("return", _context.sent); case 7: case "end": return _context.stop(); } } }, _callee); })); } }, { key: "getNextLevelData", value: function getNextLevelData(renderer) { return LevelPlayed_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var qb, countRes, difficulty, offset; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return this._database.createQueryBuilder(LevelData_LevelData); case 2: qb = _context2.sent; qb = qb.select("COUNT(*) as count, difficulty").leftJoin(LevelPlayed, "levelPlayed", "levelPlayed.levelData = LevelData.id").where("(deleted = 0 OR deleted = 'false')").andWhere("renderer IN (" + renderer.join(",") + ")").andWhere("(levelPlayed.id IS NULL OR levelPlayed.played = 0)").groupBy("difficulty").orderBy("difficulty, LevelData.id"); _context2.next = 6; return qb.getRawMany(); case 6: countRes = _context2.sent; difficulty = null; offset = null; if (countRes.some(function (res) { if (res["count"] > 0) { difficulty = res["difficulty"]; offset = Math.floor(Math.random() * Math.floor(res["count"])); return true; } return false; })) { _context2.next = 11; break; } return _context2.abrupt("return", null); case 11: _context2.next = 13; return this._database.createQueryBuilder(LevelData_LevelData); case 13: qb = _context2.sent; qb = qb.leftJoin(LevelPlayed, "levelPlayed", "levelPlayed.levelData = LevelData.id").where("(deleted = 0 OR deleted = 'false')").andWhere("difficulty = " + difficulty).andWhere("renderer IN (" + renderer.join(",") + ")").andWhere("(levelPlayed.id IS NULL OR levelPlayed.played = 0)").orderBy("LevelData.id").limit(1).offset(offset); _context2.next = 17; return qb.getOne(); case 17: return _context2.abrupt("return", _context2.sent); case 18: case "end": return _context2.stop(); } } }, _callee2, this); })); } }]); return LevelPlayed; }(BaseModel["BaseModel"]); cordova_sites_database["BaseDatabase"].addModel(LevelPlayed_LevelPlayed); // EXTERNAL MODULE: ./node_modules/cordova-sites/dist/client/js/Sound/SoundManager.js var SoundManager = __webpack_require__(18); // EXTERNAL MODULE: ./node_modules/cordova-sites/dist/client/js/Context/MenuSite.js var MenuSite = __webpack_require__(69); // CONCATENATED MODULE: ./src/client/js/Sites/LevelSite.ts function LevelSite_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { LevelSite_typeof = function _typeof(obj) { return typeof obj; }; } else { LevelSite_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return LevelSite_typeof(obj); } function LevelSite_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function LevelSite_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function LevelSite_createClass(Constructor, protoProps, staticProps) { if (protoProps) LevelSite_defineProperties(Constructor.prototype, protoProps); if (staticProps) LevelSite_defineProperties(Constructor, staticProps); return Constructor; } function LevelSite_get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { LevelSite_get = Reflect.get; } else { LevelSite_get = function _get(target, property, receiver) { var base = LevelSite_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return LevelSite_get(target, property, receiver || target); } function LevelSite_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = LevelSite_getPrototypeOf(object); if (object === null) break; } return object; } function LevelSite_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) LevelSite_setPrototypeOf(subClass, superClass); } function LevelSite_setPrototypeOf(o, p) { LevelSite_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return LevelSite_setPrototypeOf(o, p); } function LevelSite_createSuper(Derived) { var hasNativeReflectConstruct = LevelSite_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = LevelSite_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = LevelSite_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return LevelSite_possibleConstructorReturn(this, result); }; } function LevelSite_possibleConstructorReturn(self, call) { if (call && (LevelSite_typeof(call) === "object" || typeof call === "function")) { return call; } return LevelSite_assertThisInitialized(self); } function LevelSite_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function LevelSite_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function LevelSite_getPrototypeOf(o) { LevelSite_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return LevelSite_getPrototypeOf(o); } var LevelSite_awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var helpIcon = __webpack_require__(280).default; var LevelSite_view = __webpack_require__(544); var coinSound = __webpack_require__(545).default; var LevelSite_LevelSite = /*#__PURE__*/function (_MenuSite) { LevelSite_inherits(LevelSite, _MenuSite); var _super2 = LevelSite_createSuper(LevelSite); function LevelSite(siteManager) { LevelSite_classCallCheck(this, LevelSite); return _super2.call(this, siteManager, LevelSite_view); // this.getNavbarFragment().setBackgroundImage(null); } LevelSite_createClass(LevelSite, [{ key: "onCreateMenu", value: function onCreateMenu(navbar) { var _this = this; var _super = Object.create(null, { onCreateMenu: { get: function get() { return LevelSite_get(LevelSite_getPrototypeOf(LevelSite.prototype), "onCreateMenu", _this); } } }); return LevelSite_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var _this2 = this; var coinAction, levelCounterAction, helpAction; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _super.onCreateMenu.call(this, navbar); _context.t0 = client["MenuAction"]; _context.t1 = Helper["Helper"]; _context.next = 5; return client["NativeStoragePromise"].getItem("coins"); case 5: _context.t2 = _context.sent; _context.t3 = _context.t1.nonNull.call(_context.t1, _context.t2, "0"); _context.t4 = function () {}; _context.t5 = client["MenuAction"].SHOW_ALWAYS; coinAction = new _context.t0(_context.t3, _context.t4, _context.t5, 900); coinAction._shouldTranslate = false; coinAction.setLiClass("coin-counter img"); navbar.addAction(coinAction); this.coinAction = coinAction; levelCounterAction = new client["MenuAction"](Helper["Helper"].nonNull(this.levelCounter, "1"), function () {}, client["MenuAction"].SHOW_ALWAYS, 900); levelCounterAction._shouldTranslate = false; levelCounterAction.setLiClass("level-counter"); navbar.addAction(levelCounterAction); this.levelCounterAction = levelCounterAction; helpAction = new client["MenuAction"]("", function () { _this2.help(); }, client["MenuAction"].SHOW_ALWAYS, 900); helpAction._shouldTranslate = false; helpAction._icon = helpIcon; helpAction.setLiClass("help-action show-while-playing"); navbar.addAction(helpAction); return _context.abrupt("return", navbar); case 25: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "onConstruct", value: function onConstruct(args) { var _this3 = this; var _super = Object.create(null, { onConstruct: { get: function get() { return LevelSite_get(LevelSite_getPrototypeOf(LevelSite.prototype), "onConstruct", _this3); } } }); return LevelSite_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var soundManager; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.t0 = Helper["Helper"]; _context2.next = 3; return client["NativeStoragePromise"].getItem("levelCounter"); case 3: _context2.t1 = _context2.sent; this.levelCounter = _context2.t0.nonNull.call(_context2.t0, _context2.t1, 1); // this.levelCounter = 9999; this.levelScaler = function () {}; this.wonParams = { aborted: false, coinCounterTimer: null }; this.coinPromise = Promise.resolve(); soundManager = SoundManager["SoundManager"].getInstance(); _context2.t2 = soundManager; _context2.t3 = coinSound; _context2.next = 13; return client["NativeStoragePromise"].getItem("play-sound", "1"); case 13: _context2.t4 = _context2.sent; _context2.t5 = _context2.t4 !== "1"; _context2.t6 = { audio: _context2.t3, muted: _context2.t5, volume: 0.7 }; _context2.t7 = SoundManager["SoundManager"].CHANNELS.SOUND; _context2.t2.set.call(_context2.t2, _context2.t6, _context2.t7); soundManager.resume(SoundManager["SoundManager"].CHANNELS.MUSIC); return _context2.abrupt("return", _super.onConstruct.call(this, args)); case 20: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "onViewLoaded", value: function onViewLoaded() { var _this4 = this; var _super = Object.create(null, { onViewLoaded: { get: function get() { return LevelSite_get(LevelSite_getPrototypeOf(LevelSite.prototype), "onViewLoaded", _this4); } } }); return LevelSite_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var _this5 = this; var res, leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate, triangleTemplate, columnTemplate, continueButton, wonText, scaleHelper; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: res = _super.onViewLoaded.call(this); leafSegmentTemplate = this.findBy("#segment-leaf-template"); parentSegmentTemplate = this.findBy("#segment-parent-template"); rowSegmentTemplate = this.findBy("#segment-row-template"); triangleTemplate = this.findBy("#segment-triangle-template"); columnTemplate = this.findBy("#segment-column-template"); leafSegmentTemplate.removeAttribute("id"); parentSegmentTemplate.removeAttribute("id"); rowSegmentTemplate.removeAttribute("id"); triangleTemplate.removeAttribute("id"); columnTemplate.removeAttribute("id"); leafSegmentTemplate.remove(); parentSegmentTemplate.remove(); rowSegmentTemplate.remove(); triangleTemplate.remove(); columnTemplate.remove(); continueButton = this.findBy("#continue-button"); continueButton.addEventListener("click", function () { continueButton.style.opacity = 0; _this5.nextLevel(); }); wonText = this.findBy("#won-text"); scaleHelper = new client["ScaleHelper"](); _context3.next = 22; return scaleHelper.scaleToFull(continueButton, continueButton.parentElement, false, true, 2); case 22: this.continueButtonScaler = _context3.sent; _context3.next = 25; return scaleHelper.scaleTo(0.9, wonText, wonText.parentElement, false, false, 2, null, 5); case 25: this.wonTextScaler = _context3.sent; this.wonText = wonText; this.wonText.style.fontSize = "0"; this.templateContainer = new TemplateContainer(leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate, triangleTemplate, columnTemplate); this.coinTemplate = this.findBy("#coin-template"); this.coinContainer = this.findBy("#coin-container"); this.coinTemplate.id = null; ViewHelper["ViewHelper"].removeAllChildren(this.coinContainer); // this.findBy("#help-button").addEventListener("click", () => { // this.help(); // }); _context3.next = 35; return this.loadLastLevel(); case 35: return _context3.abrupt("return", res); case 36: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "loadLastLevel", value: function loadLastLevel() { return LevelSite_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var _this6 = this; var currentLevelInfo, levelData, level, levelSegment, scaleHelper; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.prev = 0; _context4.next = 3; return client["NativeStoragePromise"].getItem("currentLevel"); case 3: currentLevelInfo = _context4.sent; if (!Helper["Helper"].isNotNull(currentLevelInfo)) { _context4.next = 28; break; } currentLevelInfo = JSON.parse(currentLevelInfo); _context4.next = 8; return LevelData_LevelData.findById(currentLevelInfo["id"]); case 8: levelData = _context4.sent; if (!Helper["Helper"].isNull(levelData)) { _context4.next = 11; break; } return _context4.abrupt("return", this.nextLevel()); case 11: level = LevelHelper.inflateLevel(levelData, this.templateContainer); level.setStartRotations(currentLevelInfo["rotations"]); level.getWonPromise().then(function () { _this6.levelWon(level); }); level.createSegments(); level.setLocks(currentLevelInfo["locks"]); level.getRootSegment()._updateElement(); level.saveAsCurrentLevel(); levelSegment = this.findBy("#level"); ViewHelper["ViewHelper"].removeAllChildren(levelSegment).appendChild(level.getRootSegment().getElement()); scaleHelper = new client["ScaleHelper"](); _context4.next = 23; return scaleHelper.scaleTo(1, levelSegment, levelSegment.parentElement, false, false, 1, level.words[0].length * 1.5, null, 0); case 23: this.levelScaler = _context4.sent; this.level = level; client["Matomo"].push(["trackEvent", "LevelSite", "LoadLastLevel"]); this.level.checkHasWon(); return _context4.abrupt("return"); case 28: _context4.next = 33; break; case 30: _context4.prev = 30; _context4.t0 = _context4["catch"](0); console.error(_context4.t0); case 33: return _context4.abrupt("return", this.nextLevel()); case 34: case "end": return _context4.stop(); } } }, _callee4, this, [[0, 30]]); })); } }, { key: "startEndSite", value: function startEndSite() { this.startSite(EndSite); this.finish(); } }, { key: "updateLevelCounter", value: function updateLevelCounter() { this.levelCounterAction.setName(this.levelCounter); if (this.levelCounter >= 10 && this.levelCounter <= 99) { this.levelCounterAction.setLiClass("num-10 level-counter"); } else if (this.levelCounter >= 100 && this.levelCounter <= 999) { this.levelCounterAction.setLiClass("num-100 level-counter"); } else if (this.levelCounter >= 1000) { this.levelCounterAction.setLiClass("num-1000 level-counter"); } else { this.levelCounterAction.setLiClass("level-counter"); } } }, { key: "nextLevel", value: function nextLevel() { return LevelSite_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var _this7 = this; var levelData, level, levelSegment, scaleHelper; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: this.showLoadingSymbol(); _context6.prev = 1; _context6.next = 4; return LevelPlayed_LevelPlayed.getNextLevelData(LevelSite.RENDERER_TYPES); case 4: levelData = _context6.sent; if (!Helper["Helper"].isNull(levelData)) { _context6.next = 8; break; } this.startEndSite(); return _context6.abrupt("return"); case 8: level = LevelHelper.inflateLevel(levelData, this.templateContainer); //Waiting for Level to be done if (!(this.level && level.id === this.level.id)) { _context6.next = 15; break; } console.log("Level is the same as before! reload!"); _context6.next = 13; return new Promise(function (resolve) { return setTimeout(resolve, 50); }); case 13: // return; debugger; return _context6.abrupt("return", this.nextLevel()); case 15: level.getWonPromise().then(function () { return LevelSite_awaiter(_this7, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _context5.next = 2; return this.levelWon(level); case 2: case "end": return _context5.stop(); } } }, _callee5, this); })); }); level.createSegments(); level.getRootSegment()._updateElement(); level.saveAsCurrentLevel(); levelSegment = this.findBy("#level"); ViewHelper["ViewHelper"].removeAllChildren(levelSegment).appendChild(level.getRootSegment().getElement()); this._view.classList.remove('won'); this.wonText.style.fontSize = "0"; this.removeLoadingSymbol(); scaleHelper = new client["ScaleHelper"](); _context6.next = 27; return scaleHelper.scaleToFull(levelSegment, levelSegment.parentElement, false, false, 1, level.words[0].length * 1.5, null, 0); case 27: this.levelScaler = _context6.sent; this.level = level; this.updateLevelCounter(); _context6.t0 = this.coinAction; _context6.t1 = Helper["Helper"]; _context6.next = 34; return client["NativeStoragePromise"].getItem("coins"); case 34: _context6.t2 = _context6.sent; _context6.t3 = _context6.t1.nonNull.call(_context6.t1, _context6.t2, "0"); _context6.t0.setName.call(_context6.t0, _context6.t3); // this.coinAction.redraw(); this.wonParams.aborted = true; clearTimeout(this.wonParams.coinCounterTimer); client["Matomo"].push(["trackEvent", "LevelSite", "NextLevel", "Level Number Normal", this.levelCounter]); this.level.checkHasWon(); return _context6.abrupt("return", this.tutorial()); case 44: _context6.prev = 44; _context6.t4 = _context6["catch"](1); console.log("Fehler!"); console.error(_context6.t4); this.startEndSite(); case 49: case "end": return _context6.stop(); } } }, _callee6, this, [[1, 44]]); })); } }, { key: "onStart", value: function onStart(args) { var _this8 = this; var _super = Object.create(null, { onStart: { get: function get() { return LevelSite_get(LevelSite_getPrototypeOf(LevelSite.prototype), "onStart", _this8); } } }); return LevelSite_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { var res, soundManager; return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: this.setTitle("WR"); client["Matomo"].update("Level Sites"); res = _super.onStart.call(this, args); if (this.levelCounterAction) { this.updateLevelCounter(); } this.levelScaler(); //TODO Sound soundManager = SoundManager["SoundManager"].getInstance(); _context7.t0 = soundManager; _context7.t1 = coinSound; _context7.next = 10; return client["NativeStoragePromise"].getItem("play-sound", "1"); case 10: _context7.t2 = _context7.sent; _context7.t3 = _context7.t2 !== "1"; _context7.t4 = { audio: _context7.t1, muted: _context7.t3, volume: 0.7 }; _context7.t5 = SoundManager["SoundManager"].CHANNELS.SOUND; _context7.t0.set.call(_context7.t0, _context7.t4, _context7.t5); _context7.next = 17; return this.tutorial(); case 17: return _context7.abrupt("return", res); case 18: case "end": return _context7.stop(); } } }, _callee7, this); })); } }, { key: "levelWon", value: function levelWon(level) { return LevelSite_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee11() { var _this9 = this; return regeneratorRuntime.wrap(function _callee11$(_context11) { while (1) { switch (_context11.prev = _context11.next) { case 0: _context11.prev = 0; return _context11.delegateYield( /*#__PURE__*/regeneratorRuntime.mark(function _callee10() { var savePromise, continueButton, coinsPerLevel, coinsBefore, soundManager, audioOptions, _loop, i, leafs; return regeneratorRuntime.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: savePromise = LevelPlayed_LevelPlayed.setPlayed(level.getLevelData()); // savePromise.then((r) => console.log("levelSaved!", r)); _this9.levelCounter++; _context10.next = 4; return client["NativeStoragePromise"].setItem("levelCounter", _this9.levelCounter); case 4: _context10.next = 6; return client["NativeStoragePromise"].remove("currentLevel"); case 6: continueButton = _this9.findBy("#continue-button"); continueButton.style.transition = "none"; continueButton.style.opacity = 0; //Todo richtiges Element aufrufen? _this9._view.classList.add('won'); ViewHelper["ViewHelper"].removeAllChildren(_this9.coinContainer); _context10.next = 13; return client["NativeStoragePromise"].getItem("coinsPerLevel", 5); case 13: coinsPerLevel = _context10.sent; coinsBefore = 0; soundManager = SoundManager["SoundManager"].getInstance(); audioOptions = soundManager.get(SoundManager["SoundManager"].CHANNELS.SOUND); _this9.coinPromise = _this9.coinPromise.then(function () { return LevelSite_awaiter(_this9, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { return regeneratorRuntime.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: _context8.t0 = parseInt; _context8.t1 = Helper["Helper"]; _context8.next = 4; return client["NativeStoragePromise"].getItem("coins"); case 4: _context8.t2 = _context8.sent; _context8.t3 = _context8.t1.nonNull.call(_context8.t1, _context8.t2, "0"); coinsBefore = (0, _context8.t0)(_context8.t3); _context8.next = 9; return client["NativeStoragePromise"].setItem("coins", coinsBefore + parseInt(coinsPerLevel)); case 9: case "end": return _context8.stop(); } } }, _callee8); })); }).then(function () { return LevelSite_awaiter(_this9, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { return regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: return _context9.abrupt("return", Promise.all([new Promise(function (r) { setTimeout(function () { //TODO animationen einbauen continueButton.style.opacity = 1; r(); }, 500); }), audioOptions.loadedPromise.catch(function (e) { console.error(e); })])); case 1: case "end": return _context9.stop(); } } }, _callee9); })); }); _this9.wonParams.aborted = false; _loop = function _loop(i) { var coinElem = _this9.coinTemplate.cloneNode(true); _this9.coinContainer.appendChild(coinElem); _this9.coinPromise = _this9.coinPromise.then(function () { return new Promise(function (r) { var timeout = 350; if (!_this9.wonParams.aborted) { //TODO animationen einbauen coinElem.style.opacity = "1"; soundManager.play(SoundManager["SoundManager"].CHANNELS.SOUND); _this9.wonParams.coinCounterTimer = setTimeout(function () { if (!_this9.wonParams.aborted) { _this9.coinAction.setName(++coinsBefore); } }, timeout / 2); } else { r(); } //Always do the next promise for garbage collection setTimeout(r, timeout); }); }); }; for (i = 0; i < coinsPerLevel; i++) { _loop(i); } _this9.coinPromise = _this9.coinPromise.catch(function (e) { console.error(e); }); _this9.wonTextScaler(); _this9.continueButtonScaler(); _this9.levelScaler(); // Promise.all([this.wonTextScaler(), this.continueButtonScaler()]).then(() => { // this.levelScaler(); // }); _context10.t0 = client["Matomo"]; _context10.t1 = parseInt; _context10.t2 = Helper["Helper"]; _context10.next = 30; return client["NativeStoragePromise"].getItem("coins"); case 30: _context10.t3 = _context10.sent; _context10.t4 = _context10.t2.nonNull.call(_context10.t2, _context10.t3, "0"); _context10.t5 = (0, _context10.t1)(_context10.t4); _context10.t6 = ["trackEvent", "LevelSite", "LevelWon", "Coins", _context10.t5]; _context10.t0.push.call(_context10.t0, _context10.t6); leafs = level.getLeafSegments(); leafs.forEach(function (leaf, i) { var elem = leaf.getElement(); elem.style.animationDelay = i * 50 + "ms"; elem.classList.add("jump-animation"); }); _context10.next = 39; return savePromise; case 39: case "end": return _context10.stop(); } } }, _callee10); })(), "t0", 2); case 2: _context11.next = 7; break; case 4: _context11.prev = 4; _context11.t1 = _context11["catch"](0); console.error(_context11.t1); case 7: case "end": return _context11.stop(); } } }, _callee11, null, [[0, 4]]); })); } }, { key: "help", value: function help() { return LevelSite_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee12() { var cost, currentCoins, rotatables, index, segmentToHelp; return regeneratorRuntime.wrap(function _callee12$(_context12) { while (1) { switch (_context12.prev = _context12.next) { case 0: _context12.next = 2; return client["NativeStoragePromise"].getItem("costForHelp", 25); case 2: cost = _context12.sent; _context12.t0 = parseInt; _context12.t1 = Helper["Helper"]; _context12.next = 7; return client["NativeStoragePromise"].getItem("coins"); case 7: _context12.t2 = _context12.sent; _context12.t3 = _context12.t1.nonNull.call(_context12.t1, _context12.t2, 0); currentCoins = (0, _context12.t0)(_context12.t3); if (!(currentCoins >= cost)) { _context12.next = 24; break; } currentCoins -= cost; _context12.next = 14; return client["NativeStoragePromise"].setItem("coins", currentCoins); case 14: this.coinAction.setName(currentCoins); rotatables = this.level.getRotatableSegments(); rotatables = rotatables.filter(function (segment) { return !segment.isSolved(false); }); index = Math.floor(Math.random() * rotatables.length); segmentToHelp = rotatables[index]; while (segmentToHelp.rotation !== 0) { segmentToHelp.rotate(); } segmentToHelp.setIsRotatable(false); this.level.saveAsCurrentLevel(); // Matomo.push(["trackEvent", "LevelSite", "Help", "Coins", parseInt(Helper.nonNull(localStorage.getItem("coins"), "0"))]); _context12.next = 25; break; case 24: new client["Toast"]("not-enough-coins").show(); // Matomo.push(["trackEvent", "LevelSite", "Help", "Not enough Coins", parseInt(Helper.nonNull(localStorage.getItem("coins"), "0"))]); case 25: case "end": return _context12.stop(); } } }, _callee12, this); })); } }, { key: "tutorial", value: function tutorial() { return LevelSite_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee18() { var _this10 = this; var tutorialScale, currentStep, scaleHelper, _currentStep, _scaleHelper, eventListener, _currentStep2, _scaleHelper2, rotatableSegments, firstSegment, pointer; return regeneratorRuntime.wrap(function _callee18$(_context18) { while (1) { switch (_context18.prev = _context18.next) { case 0: tutorialScale = 0.01; if (!(this.level.id === LevelSite.TUTORIAL.FIRST_LEVEL)) { _context18.next = 25; break; } _context18.t0 = Helper["Helper"]; _context18.next = 5; return client["NativeStoragePromise"].getItem("tutorial-step"); case 5: _context18.t1 = _context18.sent; currentStep = _context18.t0.nonNull.call(_context18.t0, _context18.t1, "1"); scaleHelper = new client["ScaleHelper"](); this._view.classList.add("tutorial"); this._view.classList.add("step-" + currentStep); _context18.t2 = currentStep; _context18.next = _context18.t2 === "1" ? 13 : _context18.t2 === "2" ? 17 : 22; break; case 13: this.level.setSegmentClickedListener(function () { return LevelSite_awaiter(_this10, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee13() { return regeneratorRuntime.wrap(function _callee13$(_context13) { while (1) { switch (_context13.prev = _context13.next) { case 0: this._view.classList.remove("step-1"); _context13.next = 3; return client["NativeStoragePromise"].setItem("tutorial-step", "2"); case 3: this.tutorial(); case 4: case "end": return _context13.stop(); } } }, _callee13, this); })); }); // let textElem = this.findBy(".tutorial-text .step-1"); _context18.next = 16; return this.levelScaler(); case 16: return _context18.abrupt("break", 23); case 17: this.level.setSegmentClickedListener(function () {}); this.level.getWonPromise().then(function () { return LevelSite_awaiter(_this10, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee15() { var _this11 = this; return regeneratorRuntime.wrap(function _callee15$(_context15) { while (1) { switch (_context15.prev = _context15.next) { case 0: this._view.classList.remove("tutorial"); this._view.classList.remove("step-2"); _context15.next = 4; return client["NativeStoragePromise"].remove("tutorial-step"); case 4: this.coinPromise = this.coinPromise.then(function () { return LevelSite_awaiter(_this11, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee14() { return regeneratorRuntime.wrap(function _callee14$(_context14) { while (1) { switch (_context14.prev = _context14.next) { case 0: new client["Toast"]("extra-coins-after-first-level").show(); _context14.t0 = client["NativeStoragePromise"]; _context14.t1 = parseInt; _context14.t2 = Helper["Helper"]; _context14.next = 6; return client["NativeStoragePromise"].getItem("coins"); case 6: _context14.t3 = _context14.sent; _context14.t4 = _context14.t2.nonNull.call(_context14.t2, _context14.t3, "0"); _context14.t5 = (0, _context14.t1)(_context14.t4); _context14.t6 = _context14.t5 + 50; _context14.next = 12; return _context14.t0.setItem.call(_context14.t0, "coins", _context14.t6); case 12: _context14.t7 = this.coinAction; _context14.t8 = Helper["Helper"]; _context14.next = 16; return client["NativeStoragePromise"].getItem("coins"); case 16: _context14.t9 = _context14.sent; _context14.t10 = _context14.t8.nonNull.call(_context14.t8, _context14.t9, "0"); _context14.t7.setName.call(_context14.t7, _context14.t10); case 19: case "end": return _context14.stop(); } } }, _callee14, this); })); }); case 5: case "end": return _context15.stop(); } } }, _callee15, this); })); }); // let textElem = this.findBy(".tutorial-text .step-2"); _context18.next = 21; return this.levelScaler(); case 21: return _context18.abrupt("break", 23); case 22: this._view.classList.remove("tutorial"); case 23: _context18.next = 67; break; case 25: if (!(this.level.id === LevelSite.TUTORIAL.SECOND_LEVEL)) { _context18.next = 45; break; } _context18.t3 = Helper["Helper"]; _context18.next = 29; return client["NativeStoragePromise"].getItem("tutorial-step"); case 29: _context18.t4 = _context18.sent; _currentStep = _context18.t3.nonNull.call(_context18.t3, _context18.t4, "3"); _context18.t5 = _currentStep; _context18.next = _context18.t5 === "3" ? 34 : 42; break; case 34: _scaleHelper = new client["ScaleHelper"](); this._view.classList.add("tutorial"); this._view.classList.add("step-" + _currentStep); eventListener = function eventListener() { return LevelSite_awaiter(_this10, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee16() { return regeneratorRuntime.wrap(function _callee16$(_context16) { while (1) { switch (_context16.prev = _context16.next) { case 0: this._view.classList.remove("tutorial"); this._view.classList.remove("step-3"); _context16.next = 4; return client["NativeStoragePromise"].setItem("tutorial-step", "4"); case 4: // this.findBy("#help-button").removeEventListener("click", eventListener); this.levelScaler(); case 5: case "end": return _context16.stop(); } } }, _callee16, this); })); }; this.findBy(".help-action").addEventListener("click", eventListener); // let textElem = this.findBy(".tutorial-text .step-3"); _context18.next = 41; return this.levelScaler(); case 41: return _context18.abrupt("break", 43); case 42: this._view.classList.remove("tutorial"); case 43: _context18.next = 67; break; case 45: if (!(this.level.id === LevelSite.TUTORIAL.BIG_SEGMENT_LEVEL)) { _context18.next = 67; break; } _context18.t6 = Helper["Helper"]; _context18.next = 49; return client["NativeStoragePromise"].getItem("tutorial-step"); case 49: _context18.t7 = _context18.sent; _currentStep2 = _context18.t6.nonNull.call(_context18.t6, _context18.t7, "4"); _context18.t8 = _currentStep2; _context18.next = _context18.t8 === "4" ? 54 : 66; break; case 54: _scaleHelper2 = new client["ScaleHelper"](); this._view.classList.add("tutorial"); this._view.classList.add("step-" + _currentStep2); rotatableSegments = this.level.getRotatableSegments(); firstSegment = rotatableSegments[2]; pointer = this.findBy("#tutorial-pointer"); pointer.remove(); firstSegment.element.appendChild(pointer); this.level.setSegmentClickedListener(function (segment) { return LevelSite_awaiter(_this10, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee17() { return regeneratorRuntime.wrap(function _callee17$(_context17) { while (1) { switch (_context17.prev = _context17.next) { case 0: if (!(firstSegment === segment)) { _context17.next = 6; break; } this._view.classList.remove("tutorial"); this._view.classList.remove("step-4"); _context17.next = 5; return client["NativeStoragePromise"].setItem("tutorial-step", "5"); case 5: this.levelScaler(); case 6: case "end": return _context17.stop(); } } }, _callee17, this); })); }); // let textElem = this.findBy(".tutorial-text .step-4"); _context18.next = 65; return this.levelScaler(); case 65: return _context18.abrupt("break", 67); case 66: this._view.classList.remove("tutorial"); case 67: case "end": return _context18.stop(); } } }, _callee18, this); })); } }]); return LevelSite; }(MenuSite["MenuSite"]); LevelSite_LevelSite.RENDERER_TYPES = [20, 40, 60, 80, 81, 82, 83, 100, 110, 111, 112, 120, 140, 160]; LevelSite_LevelSite.TUTORIAL = { FIRST_LEVEL: 67, SECOND_LEVEL: 15, BIG_SEGMENT_LEVEL: 1921 }; // CONCATENATED MODULE: ./src/client/js/wordrotator/Level/MainMenuLevel.js function MainMenuLevel_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { MainMenuLevel_typeof = function _typeof(obj) { return typeof obj; }; } else { MainMenuLevel_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return MainMenuLevel_typeof(obj); } function MainMenuLevel_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function MainMenuLevel_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function MainMenuLevel_createClass(Constructor, protoProps, staticProps) { if (protoProps) MainMenuLevel_defineProperties(Constructor.prototype, protoProps); if (staticProps) MainMenuLevel_defineProperties(Constructor, staticProps); return Constructor; } function MainMenuLevel_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) MainMenuLevel_setPrototypeOf(subClass, superClass); } function MainMenuLevel_setPrototypeOf(o, p) { MainMenuLevel_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return MainMenuLevel_setPrototypeOf(o, p); } function MainMenuLevel_createSuper(Derived) { var hasNativeReflectConstruct = MainMenuLevel_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = MainMenuLevel_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = MainMenuLevel_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return MainMenuLevel_possibleConstructorReturn(this, result); }; } function MainMenuLevel_possibleConstructorReturn(self, call) { if (call && (MainMenuLevel_typeof(call) === "object" || typeof call === "function")) { return call; } return MainMenuLevel_assertThisInitialized(self); } function MainMenuLevel_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function MainMenuLevel_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function MainMenuLevel_getPrototypeOf(o) { MainMenuLevel_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return MainMenuLevel_getPrototypeOf(o); } var MainMenuLevel = /*#__PURE__*/function (_FourWordsLevel) { MainMenuLevel_inherits(MainMenuLevel, _FourWordsLevel); var _super = MainMenuLevel_createSuper(MainMenuLevel); function MainMenuLevel(templateContainer) { MainMenuLevel_classCallCheck(this, MainMenuLevel); return _super.call(this, templateContainer, 4); } MainMenuLevel_createClass(MainMenuLevel, [{ key: "saveAsCurrentLevel", value: function saveAsCurrentLevel() {} // checkHasWon(delayPromise) { // } }]); return MainMenuLevel; }(FourWordsLevel_FourWordsLevel); // EXTERNAL MODULE: ./node_modules/cordova-sites-easy-sync/dist/client/SyncJob.js var SyncJob = __webpack_require__(209); // EXTERNAL MODULE: ./node_modules/cordova-sites/dist/client/js/ShareManager/ShareManager.js var ShareManager = __webpack_require__(207); // EXTERNAL MODULE: ./node_modules/cordova-sites/dist/client/js/Translator.js var Translator = __webpack_require__(30); // EXTERNAL MODULE: ./node_modules/cordova-sites/dist/client/js/Legacy/Matomo.js var Matomo = __webpack_require__(56); // EXTERNAL MODULE: ./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/MenuAction.js var MenuAction = __webpack_require__(80); // EXTERNAL MODULE: ./node_modules/cordova-sites/dist/client/js/App.js var App = __webpack_require__(33); // CONCATENATED MODULE: ./src/client/js/Sites/TutorialSite.ts function TutorialSite_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { TutorialSite_typeof = function _typeof(obj) { return typeof obj; }; } else { TutorialSite_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return TutorialSite_typeof(obj); } function TutorialSite_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function TutorialSite_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function TutorialSite_createClass(Constructor, protoProps, staticProps) { if (protoProps) TutorialSite_defineProperties(Constructor.prototype, protoProps); if (staticProps) TutorialSite_defineProperties(Constructor, staticProps); return Constructor; } function TutorialSite_get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { TutorialSite_get = Reflect.get; } else { TutorialSite_get = function _get(target, property, receiver) { var base = TutorialSite_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return TutorialSite_get(target, property, receiver || target); } function TutorialSite_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = TutorialSite_getPrototypeOf(object); if (object === null) break; } return object; } function TutorialSite_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) TutorialSite_setPrototypeOf(subClass, superClass); } function TutorialSite_setPrototypeOf(o, p) { TutorialSite_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return TutorialSite_setPrototypeOf(o, p); } function TutorialSite_createSuper(Derived) { var hasNativeReflectConstruct = TutorialSite_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = TutorialSite_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = TutorialSite_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return TutorialSite_possibleConstructorReturn(this, result); }; } function TutorialSite_possibleConstructorReturn(self, call) { if (call && (TutorialSite_typeof(call) === "object" || typeof call === "function")) { return call; } return TutorialSite_assertThisInitialized(self); } function TutorialSite_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function TutorialSite_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function TutorialSite_getPrototypeOf(o) { TutorialSite_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return TutorialSite_getPrototypeOf(o); } var TutorialSite_awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var TutorialSite_view = __webpack_require__(548); var TutorialSite_TutorialSite = /*#__PURE__*/function (_MenuSite) { TutorialSite_inherits(TutorialSite, _MenuSite); var _super2 = TutorialSite_createSuper(TutorialSite); function TutorialSite(siteManager) { TutorialSite_classCallCheck(this, TutorialSite); return _super2.call(this, siteManager, TutorialSite_view); } TutorialSite_createClass(TutorialSite, [{ key: "onConstruct", value: function onConstruct(constructParameters) { var _this = this; var _super = Object.create(null, { onConstruct: { get: function get() { return TutorialSite_get(TutorialSite_getPrototypeOf(TutorialSite.prototype), "onConstruct", _this); } } }); return TutorialSite_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var _this2 = this; var res; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: res = _super.onConstruct.call(this, constructParameters); _context2.next = 3; return Promise.race([new cordova_sites_easy_sync_dist_client["SyncJob"]().sync([LevelData_LevelData]).catch(function (e) { return console.error(e); }), new Promise(function (resolve) { return TutorialSite_awaiter(_this2, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var levelData; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return LevelData_LevelData.findById(LevelSite_LevelSite.TUTORIAL.FIRST_LEVEL); case 2: levelData = _context.sent; if (levelData !== null) { resolve(); } case 4: case "end": return _context.stop(); } } }, _callee); })); })]); case 3: return _context2.abrupt("return", res); case 4: case "end": return _context2.stop(); } } }, _callee2, this); })); } }, { key: "onViewLoaded", value: function onViewLoaded() { var _this3 = this; var _super = Object.create(null, { onViewLoaded: { get: function get() { return TutorialSite_get(TutorialSite_getPrototypeOf(TutorialSite.prototype), "onViewLoaded", _this3); } } }); return TutorialSite_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var res, leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate, triangleTemplate, columnTemplate, tutorial1Container, tutorial2Container, tutorial3Container, level1, level2, level3, pointer, rotatableSegments, pointerSegment; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: res = _super.onViewLoaded.call(this); leafSegmentTemplate = this.findBy("#segment-leaf-template"); parentSegmentTemplate = this.findBy("#segment-parent-template"); rowSegmentTemplate = this.findBy("#segment-row-template"); triangleTemplate = this.findBy("#segment-triangle-template"); columnTemplate = this.findBy("#segment-column-template"); leafSegmentTemplate.removeAttribute("id"); parentSegmentTemplate.removeAttribute("id"); rowSegmentTemplate.removeAttribute("id"); triangleTemplate.removeAttribute("id"); columnTemplate.removeAttribute("id"); leafSegmentTemplate.remove(); parentSegmentTemplate.remove(); rowSegmentTemplate.remove(); triangleTemplate.remove(); columnTemplate.remove(); this.templateContainer = new TemplateContainer(leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate, triangleTemplate, columnTemplate); tutorial1Container = this.findBy("#tutorial-1 .level-container"); tutorial2Container = this.findBy("#tutorial-2 .level-container"); tutorial3Container = this.findBy("#tutorial-3 .level-container"); _context3.next = 22; return this.loadLevel(LevelSite_LevelSite.TUTORIAL.FIRST_LEVEL); case 22: level1 = _context3.sent; _context3.next = 25; return this.loadLevel(LevelSite_LevelSite.TUTORIAL.SECOND_LEVEL); case 25: level2 = _context3.sent; _context3.next = 28; return this.loadLevel(LevelSite_LevelSite.TUTORIAL.BIG_SEGMENT_LEVEL); case 28: level3 = _context3.sent; level1.setSaveAsCurrentAfterCheckWon(false); level2.setSaveAsCurrentAfterCheckWon(false); level3.setSaveAsCurrentAfterCheckWon(false); tutorial1Container.appendChild(level1.getRootSegment().getElement()); tutorial2Container.appendChild(level2.getRootSegment().getElement()); tutorial3Container.appendChild(level3.getRootSegment().getElement()); pointer = this.findBy("#tutorial-pointer"); pointer.remove(); rotatableSegments = level3.getRotatableSegments(); pointerSegment = rotatableSegments[2]; pointerSegment.element.appendChild(pointer); this.find(".help-action").addEventListener("click", function () { TutorialSite.help(level2); }); return _context3.abrupt("return", res); case 42: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "loadLevel", value: function loadLevel(id) { return TutorialSite_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var levelData, level; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.prev = 0; _context4.next = 3; return LevelData_LevelData.findById(id); case 3: levelData = _context4.sent; level = LevelHelper.inflateLevel(levelData, this.templateContainer); level.getWonPromise().then(function () { console.log("level won!"); new client["Toast"]("you solved the tutorial level!").show(); //TODO // this.levelWon(level); }); level.createSegments(); level.getRootSegment()._updateElement(); return _context4.abrupt("return", level); case 11: _context4.prev = 11; _context4.t0 = _context4["catch"](0); console.log("Fehler!"); console.error(_context4.t0); // this.startEndSite(); return _context4.abrupt("return", null); case 16: case "end": return _context4.stop(); } } }, _callee4, this, [[0, 11]]); })); } }], [{ key: "help", value: function help(level) { return TutorialSite_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var rotatables, index, segmentToHelp; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: rotatables = level.getRotatableSegments(); rotatables = rotatables.filter(function (segment) { return !segment.isSolved(false); }); if (!(rotatables.length === 0)) { _context5.next = 4; break; } return _context5.abrupt("return"); case 4: index = Math.floor(Math.random() * rotatables.length); segmentToHelp = rotatables[index]; while (segmentToHelp.rotation !== 0) { segmentToHelp.rotate(); } segmentToHelp.setIsRotatable(false); case 8: case "end": return _context5.stop(); } } }, _callee5); })); } }]); return TutorialSite; }(client["MenuSite"]); App["App"].addInitialization(function (app) { app.addDeepLink("tutorial", TutorialSite_TutorialSite); }); // CONCATENATED MODULE: ./src/client/js/Sites/CreditsSite.ts function CreditsSite_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { CreditsSite_typeof = function _typeof(obj) { return typeof obj; }; } else { CreditsSite_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return CreditsSite_typeof(obj); } function CreditsSite_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function CreditsSite_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) CreditsSite_setPrototypeOf(subClass, superClass); } function CreditsSite_setPrototypeOf(o, p) { CreditsSite_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return CreditsSite_setPrototypeOf(o, p); } function CreditsSite_createSuper(Derived) { var hasNativeReflectConstruct = CreditsSite_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = CreditsSite_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = CreditsSite_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return CreditsSite_possibleConstructorReturn(this, result); }; } function CreditsSite_possibleConstructorReturn(self, call) { if (call && (CreditsSite_typeof(call) === "object" || typeof call === "function")) { return call; } return CreditsSite_assertThisInitialized(self); } function CreditsSite_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function CreditsSite_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function CreditsSite_getPrototypeOf(o) { CreditsSite_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return CreditsSite_getPrototypeOf(o); } var CreditsSite_view = __webpack_require__(550); var CreditsSite = /*#__PURE__*/function (_MenuSite) { CreditsSite_inherits(CreditsSite, _MenuSite); var _super = CreditsSite_createSuper(CreditsSite); function CreditsSite(siteManager) { CreditsSite_classCallCheck(this, CreditsSite); return _super.call(this, siteManager, CreditsSite_view); } return CreditsSite; }(client["MenuSite"]); App["App"].addInitialization(function (app) { app.addDeepLink("credits", CreditsSite); }); // CONCATENATED MODULE: ./src/client/js/Sites/PrivacyPolicySite.ts function PrivacyPolicySite_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { PrivacyPolicySite_typeof = function _typeof(obj) { return typeof obj; }; } else { PrivacyPolicySite_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return PrivacyPolicySite_typeof(obj); } function PrivacyPolicySite_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function PrivacyPolicySite_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function PrivacyPolicySite_createClass(Constructor, protoProps, staticProps) { if (protoProps) PrivacyPolicySite_defineProperties(Constructor.prototype, protoProps); if (staticProps) PrivacyPolicySite_defineProperties(Constructor, staticProps); return Constructor; } function PrivacyPolicySite_get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { PrivacyPolicySite_get = Reflect.get; } else { PrivacyPolicySite_get = function _get(target, property, receiver) { var base = PrivacyPolicySite_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return PrivacyPolicySite_get(target, property, receiver || target); } function PrivacyPolicySite_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = PrivacyPolicySite_getPrototypeOf(object); if (object === null) break; } return object; } function PrivacyPolicySite_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) PrivacyPolicySite_setPrototypeOf(subClass, superClass); } function PrivacyPolicySite_setPrototypeOf(o, p) { PrivacyPolicySite_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return PrivacyPolicySite_setPrototypeOf(o, p); } function PrivacyPolicySite_createSuper(Derived) { var hasNativeReflectConstruct = PrivacyPolicySite_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = PrivacyPolicySite_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = PrivacyPolicySite_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return PrivacyPolicySite_possibleConstructorReturn(this, result); }; } function PrivacyPolicySite_possibleConstructorReturn(self, call) { if (call && (PrivacyPolicySite_typeof(call) === "object" || typeof call === "function")) { return call; } return PrivacyPolicySite_assertThisInitialized(self); } function PrivacyPolicySite_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function PrivacyPolicySite_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function PrivacyPolicySite_getPrototypeOf(o) { PrivacyPolicySite_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return PrivacyPolicySite_getPrototypeOf(o); } var PrivacyPolicySite_awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var PrivacyPolicySite_view = __webpack_require__(551); var PrivacyPolicySite_PrivacyPolicySite = /*#__PURE__*/function (_MenuSite) { PrivacyPolicySite_inherits(PrivacyPolicySite, _MenuSite); var _super2 = PrivacyPolicySite_createSuper(PrivacyPolicySite); function PrivacyPolicySite(siteManager) { PrivacyPolicySite_classCallCheck(this, PrivacyPolicySite); return _super2.call(this, siteManager, PrivacyPolicySite_view); } PrivacyPolicySite_createClass(PrivacyPolicySite, [{ key: "onViewLoaded", value: function onViewLoaded() { var _this = this; var _super = Object.create(null, { onViewLoaded: { get: function get() { return PrivacyPolicySite_get(PrivacyPolicySite_getPrototypeOf(PrivacyPolicySite.prototype), "onViewLoaded", _this); } } }); return PrivacyPolicySite_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var trackSwitch; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: trackSwitch = this.findBy("#track-switch"); trackSwitch.addEventListener("change", function (e) { Matomo["Matomo"].setTrack(this.checked === true); e.stopPropagation(); e.preventDefault(); }); return _context.abrupt("return", _super.onViewLoaded.call(this)); case 3: case "end": return _context.stop(); } } }, _callee, this); })); } }, { key: "onStart", value: function onStart(args) { var _this2 = this; var _super = Object.create(null, { onStart: { get: function get() { return PrivacyPolicySite_get(PrivacyPolicySite_getPrototypeOf(PrivacyPolicySite.prototype), "onStart", _this2); } } }); return PrivacyPolicySite_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var trackSwitch; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: trackSwitch = this.findBy("#track-switch"); _context2.next = 3; return Matomo["Matomo"].getTrackingPromise(); case 3: _context2.t0 = _context2.sent; trackSwitch.checked = _context2.t0 === "1"; return _context2.abrupt("return", _super.onStart.call(this, args)); case 6: case "end": return _context2.stop(); } } }, _callee2, this); })); } }]); return PrivacyPolicySite; }(client["MenuSite"]); App["App"].addInitialization(function (app) { app.addDeepLink("privacyPolicy", PrivacyPolicySite_PrivacyPolicySite); }); // CONCATENATED MODULE: ./src/client/js/Sites/ImpressumSite.ts function ImpressumSite_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ImpressumSite_typeof = function _typeof(obj) { return typeof obj; }; } else { ImpressumSite_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ImpressumSite_typeof(obj); } function ImpressumSite_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function ImpressumSite_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) ImpressumSite_setPrototypeOf(subClass, superClass); } function ImpressumSite_setPrototypeOf(o, p) { ImpressumSite_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return ImpressumSite_setPrototypeOf(o, p); } function ImpressumSite_createSuper(Derived) { var hasNativeReflectConstruct = ImpressumSite_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = ImpressumSite_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = ImpressumSite_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return ImpressumSite_possibleConstructorReturn(this, result); }; } function ImpressumSite_possibleConstructorReturn(self, call) { if (call && (ImpressumSite_typeof(call) === "object" || typeof call === "function")) { return call; } return ImpressumSite_assertThisInitialized(self); } function ImpressumSite_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function ImpressumSite_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function ImpressumSite_getPrototypeOf(o) { ImpressumSite_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return ImpressumSite_getPrototypeOf(o); } var ImpressumSite_view = __webpack_require__(552); var ImpressumSite = /*#__PURE__*/function (_MenuSite) { ImpressumSite_inherits(ImpressumSite, _MenuSite); var _super = ImpressumSite_createSuper(ImpressumSite); function ImpressumSite(siteManager) { ImpressumSite_classCallCheck(this, ImpressumSite); return _super.call(this, siteManager, ImpressumSite_view); } return ImpressumSite; }(client["MenuSite"]); App["App"].addInitialization(function (app) { app.addDeepLink("impressum", ImpressumSite); }); // EXTERNAL MODULE: ./node_modules/cordova-sites/dist/client/js/NativeStoragePromise.js var NativeStoragePromise = __webpack_require__(42); // EXTERNAL MODULE: ./node_modules/cordova-sites/dist/client/js/Context/AbstractFragment.js var AbstractFragment = __webpack_require__(79); // EXTERNAL MODULE: ./node_modules/cordova-sites-easy-sync/dist/client/LastSyncDates.js var LastSyncDates = __webpack_require__(129); // EXTERNAL MODULE: ./node_modules/cordova-sites/dist/client/js/Form.js var Form = __webpack_require__(210); // EXTERNAL MODULE: ./node_modules/cordova-sites/dist/client/js/DataManager.js var DataManager = __webpack_require__(59); // EXTERNAL MODULE: ./node_modules/cordova-sites/dist/client/js/Toast/Toast.js var Toast = __webpack_require__(85); // CONCATENATED MODULE: ./src/client/js/Sites/ContactSite.ts function ContactSite_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ContactSite_typeof = function _typeof(obj) { return typeof obj; }; } else { ContactSite_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ContactSite_typeof(obj); } function ContactSite_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function ContactSite_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function ContactSite_createClass(Constructor, protoProps, staticProps) { if (protoProps) ContactSite_defineProperties(Constructor.prototype, protoProps); if (staticProps) ContactSite_defineProperties(Constructor, staticProps); return Constructor; } function ContactSite_get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { ContactSite_get = Reflect.get; } else { ContactSite_get = function _get(target, property, receiver) { var base = ContactSite_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return ContactSite_get(target, property, receiver || target); } function ContactSite_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = ContactSite_getPrototypeOf(object); if (object === null) break; } return object; } function ContactSite_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) ContactSite_setPrototypeOf(subClass, superClass); } function ContactSite_setPrototypeOf(o, p) { ContactSite_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return ContactSite_setPrototypeOf(o, p); } function ContactSite_createSuper(Derived) { var hasNativeReflectConstruct = ContactSite_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = ContactSite_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = ContactSite_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return ContactSite_possibleConstructorReturn(this, result); }; } function ContactSite_possibleConstructorReturn(self, call) { if (call && (ContactSite_typeof(call) === "object" || typeof call === "function")) { return call; } return ContactSite_assertThisInitialized(self); } function ContactSite_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function ContactSite_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function ContactSite_getPrototypeOf(o) { ContactSite_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return ContactSite_getPrototypeOf(o); } var ContactSite_awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var ContactSite_view = __webpack_require__(553); var ContactSite_ContactSite = /*#__PURE__*/function (_MenuSite) { ContactSite_inherits(ContactSite, _MenuSite); var _super = ContactSite_createSuper(ContactSite); function ContactSite(siteManager) { ContactSite_classCallCheck(this, ContactSite); return _super.call(this, siteManager, ContactSite_view); } ContactSite_createClass(ContactSite, [{ key: "onViewLoaded", value: function onViewLoaded() { var _this = this; var res = ContactSite_get(ContactSite_getPrototypeOf(ContactSite.prototype), "onViewLoaded", this).call(this); // @ts-ignore this.findBy("#contactText").appendChild(Translator["Translator"].makePersistentTranslation("contact text", ['wordrotator@silas.link'])); new Form["Form"](this.findBy("#contact-form"), function (values) { return ContactSite_awaiter(_this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var result; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return DataManager["DataManager"].send("contact", values); case 2: result = _context.sent; if (result.success) { new Toast["Toast"]("the message was sent").show(); this.finish(); } else { if (result) { new Toast["Toast"](result.message).show(); } else { new Toast["Toast"]("Es ist ein Fehler aufgetreten...").show(); } } case 4: case "end": return _context.stop(); } } }, _callee, this); })); }); return res; } }]); return ContactSite; }(MenuSite["MenuSite"]); App["App"].addInitialization(function (app) { app.addDeepLink("contact", ContactSite_ContactSite); }); // CONCATENATED MODULE: ./src/client/js/Fragment/WordRotatorSettingFragment.ts function WordRotatorSettingFragment_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { WordRotatorSettingFragment_typeof = function _typeof(obj) { return typeof obj; }; } else { WordRotatorSettingFragment_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return WordRotatorSettingFragment_typeof(obj); } function WordRotatorSettingFragment_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function WordRotatorSettingFragment_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function WordRotatorSettingFragment_createClass(Constructor, protoProps, staticProps) { if (protoProps) WordRotatorSettingFragment_defineProperties(Constructor.prototype, protoProps); if (staticProps) WordRotatorSettingFragment_defineProperties(Constructor, staticProps); return Constructor; } function WordRotatorSettingFragment_get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { WordRotatorSettingFragment_get = Reflect.get; } else { WordRotatorSettingFragment_get = function _get(target, property, receiver) { var base = WordRotatorSettingFragment_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return WordRotatorSettingFragment_get(target, property, receiver || target); } function WordRotatorSettingFragment_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = WordRotatorSettingFragment_getPrototypeOf(object); if (object === null) break; } return object; } function WordRotatorSettingFragment_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) WordRotatorSettingFragment_setPrototypeOf(subClass, superClass); } function WordRotatorSettingFragment_setPrototypeOf(o, p) { WordRotatorSettingFragment_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return WordRotatorSettingFragment_setPrototypeOf(o, p); } function WordRotatorSettingFragment_createSuper(Derived) { var hasNativeReflectConstruct = WordRotatorSettingFragment_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = WordRotatorSettingFragment_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = WordRotatorSettingFragment_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return WordRotatorSettingFragment_possibleConstructorReturn(this, result); }; } function WordRotatorSettingFragment_possibleConstructorReturn(self, call) { if (call && (WordRotatorSettingFragment_typeof(call) === "object" || typeof call === "function")) { return call; } return WordRotatorSettingFragment_assertThisInitialized(self); } function WordRotatorSettingFragment_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function WordRotatorSettingFragment_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function WordRotatorSettingFragment_getPrototypeOf(o) { WordRotatorSettingFragment_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return WordRotatorSettingFragment_getPrototypeOf(o); } var WordRotatorSettingFragment_awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var WordRotatorSettingFragment_view = __webpack_require__(549); var WordRotatorSettingFragment_WordRotatorSettingFragment = /*#__PURE__*/function (_AbstractFragment) { WordRotatorSettingFragment_inherits(WordRotatorSettingFragment, _AbstractFragment); var _super2 = WordRotatorSettingFragment_createSuper(WordRotatorSettingFragment); function WordRotatorSettingFragment(site) { WordRotatorSettingFragment_classCallCheck(this, WordRotatorSettingFragment); return _super2.call(this, site, WordRotatorSettingFragment_view); } WordRotatorSettingFragment_createClass(WordRotatorSettingFragment, [{ key: "onViewLoaded", value: function onViewLoaded() { var _this = this; var _super = Object.create(null, { onViewLoaded: { get: function get() { return WordRotatorSettingFragment_get(WordRotatorSettingFragment_getPrototypeOf(WordRotatorSettingFragment.prototype), "onViewLoaded", _this); } } }); return WordRotatorSettingFragment_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var _this2 = this; var res, playMusicButton, playSoundButton; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: res = _super.onViewLoaded.call(this); this.findBy("#reset-levels").addEventListener("click", function () { return WordRotatorSettingFragment_awaiter(_this2, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return NativeStoragePromise["NativeStoragePromise"].remove("currentLevel"); case 2: _context.next = 4; return NativeStoragePromise["NativeStoragePromise"].remove("levelCounter"); case 4: _context.next = 6; return NativeStoragePromise["NativeStoragePromise"].remove("tutorial-step"); case 6: _context.next = 8; return LevelPlayed_LevelPlayed.clear(); case 8: _context.next = 10; return LevelData_LevelData.clear(); case 10: _context.next = 12; return LastSyncDates["LastSyncDates"].clear(); case 12: case "end": return _context.stop(); } } }, _callee); })); }); if (location.hostname.includes("beta") || location.hostname.includes("127.0.0.1") || location.hostname.includes("localhost")) {// this.findBy("#reset-levels").classList.remove("hidden"); } playMusicButton = this.findBy("#play-music"); _context4.next = 6; return NativeStoragePromise["NativeStoragePromise"].getItem("play-music", "1"); case 6: _context4.t0 = _context4.sent; playMusicButton.checked = _context4.t0 === "1"; playMusicButton.addEventListener("change", function () { return WordRotatorSettingFragment_awaiter(_this2, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var soundManager; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return NativeStoragePromise["NativeStoragePromise"].setItem("play-music", playMusicButton.checked ? "1" : "0"); case 2: soundManager = SoundManager["SoundManager"].getInstance(); soundManager.set({ muted: !playMusicButton.checked }, SoundManager["SoundManager"].CHANNELS.MUSIC); if (!playMusicButton.checked) { _context2.next = 7; break; } _context2.next = 7; return soundManager.play(SoundManager["SoundManager"].CHANNELS.MUSIC); case 7: //TODO [MIG] Matomo Matomo["Matomo"].push(["trackEvent", "MainMenu", "PlayMusic", "Play Music", playMusicButton.checked ? 1 : 0]); case 8: case "end": return _context2.stop(); } } }, _callee2); })); }); playSoundButton = this.findBy("#play-sound"); _context4.next = 12; return NativeStoragePromise["NativeStoragePromise"].getItem("play-sound", "1"); case 12: _context4.t1 = _context4.sent; playSoundButton.checked = _context4.t1 === "1"; playSoundButton.addEventListener("change", function () { return WordRotatorSettingFragment_awaiter(_this2, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var soundManager; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return NativeStoragePromise["NativeStoragePromise"].setItem("play-sound", playSoundButton.checked ? "1" : "0"); case 2: soundManager = SoundManager["SoundManager"].getInstance(); soundManager.set({ muted: !playSoundButton.checked }, SoundManager["SoundManager"].CHANNELS.SOUND); //TODO [MIG] Matomo Matomo["Matomo"].push(["trackEvent", "MainMenu", "PlaySound", "Play Sound", playSoundButton.checked ? 1 : 0]); case 5: case "end": return _context3.stop(); } } }, _callee3); })); }); this.findBy("#track-switch").addEventListener("change", function (e) { Matomo["Matomo"].setTrack(this.checked === true); e.stopPropagation(); e.preventDefault(); }); this.findBy("#tutorial-button").addEventListener("click", function () { _this2.getSite().startSite(TutorialSite_TutorialSite); }); this.findBy("#credits-button").addEventListener("click", function () { _this2.getSite().startSite(CreditsSite); }); this.findBy("#privacy-policy-button").addEventListener("click", function () { _this2.getSite().startSite(PrivacyPolicySite_PrivacyPolicySite); }); this.findBy("#contact-button").addEventListener("click", function () { // new Toast("contact site").show(); _this2.getSite().startSite(ContactSite_ContactSite); }); this.findBy("#impressum-button").addEventListener("click", function () { _this2.getSite().startSite(ImpressumSite); }); // @ts-ignore this.findBy("#version-info").innerText = '1.3.2'; return _context4.abrupt("return", res); case 23: case "end": return _context4.stop(); } } }, _callee4, this); })); } }, { key: "onStart", value: function onStart(args) { Matomo["Matomo"].update("Settings Sites"); return WordRotatorSettingFragment_get(WordRotatorSettingFragment_getPrototypeOf(WordRotatorSettingFragment.prototype), "onStart", this).call(this, args); } }]); return WordRotatorSettingFragment; }(AbstractFragment["AbstractFragment"]); // CONCATENATED MODULE: ./src/client/js/Sites/SettingsSite.ts function SettingsSite_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { SettingsSite_typeof = function _typeof(obj) { return typeof obj; }; } else { SettingsSite_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return SettingsSite_typeof(obj); } function SettingsSite_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function SettingsSite_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) SettingsSite_setPrototypeOf(subClass, superClass); } function SettingsSite_setPrototypeOf(o, p) { SettingsSite_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return SettingsSite_setPrototypeOf(o, p); } function SettingsSite_createSuper(Derived) { var hasNativeReflectConstruct = SettingsSite_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = SettingsSite_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = SettingsSite_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return SettingsSite_possibleConstructorReturn(this, result); }; } function SettingsSite_possibleConstructorReturn(self, call) { if (call && (SettingsSite_typeof(call) === "object" || typeof call === "function")) { return call; } return SettingsSite_assertThisInitialized(self); } function SettingsSite_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function SettingsSite_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function SettingsSite_getPrototypeOf(o) { SettingsSite_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return SettingsSite_getPrototypeOf(o); } var SettingsSite_view = __webpack_require__(547); var SettingsSite_SettingsSite = /*#__PURE__*/function (_MenuSite) { SettingsSite_inherits(SettingsSite, _MenuSite); var _super = SettingsSite_createSuper(SettingsSite); function SettingsSite(siteManager) { var _this; SettingsSite_classCallCheck(this, SettingsSite); _this = _super.call(this, siteManager, SettingsSite_view); _this.addFragment("#wordRotatorSettings", new WordRotatorSettingFragment_WordRotatorSettingFragment(SettingsSite_assertThisInitialized(_this))); return _this; } return SettingsSite; }(MenuSite["MenuSite"]); App["App"].addInitialization(function (app) { app.addDeepLink("settings", SettingsSite_SettingsSite); }); // CONCATENATED MODULE: ./src/client/js/Sites/MainMenuSite.ts function MainMenuSite_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { MainMenuSite_typeof = function _typeof(obj) { return typeof obj; }; } else { MainMenuSite_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return MainMenuSite_typeof(obj); } function MainMenuSite_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function MainMenuSite_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function MainMenuSite_createClass(Constructor, protoProps, staticProps) { if (protoProps) MainMenuSite_defineProperties(Constructor.prototype, protoProps); if (staticProps) MainMenuSite_defineProperties(Constructor, staticProps); return Constructor; } function MainMenuSite_get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { MainMenuSite_get = Reflect.get; } else { MainMenuSite_get = function _get(target, property, receiver) { var base = MainMenuSite_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return MainMenuSite_get(target, property, receiver || target); } function MainMenuSite_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = MainMenuSite_getPrototypeOf(object); if (object === null) break; } return object; } function MainMenuSite_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) MainMenuSite_setPrototypeOf(subClass, superClass); } function MainMenuSite_setPrototypeOf(o, p) { MainMenuSite_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return MainMenuSite_setPrototypeOf(o, p); } function MainMenuSite_createSuper(Derived) { var hasNativeReflectConstruct = MainMenuSite_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = MainMenuSite_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = MainMenuSite_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return MainMenuSite_possibleConstructorReturn(this, result); }; } function MainMenuSite_possibleConstructorReturn(self, call) { if (call && (MainMenuSite_typeof(call) === "object" || typeof call === "function")) { return call; } return MainMenuSite_assertThisInitialized(self); } function MainMenuSite_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function MainMenuSite_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function MainMenuSite_getPrototypeOf(o) { MainMenuSite_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return MainMenuSite_getPrototypeOf(o); } var MainMenuSite_awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var settingsIcon = __webpack_require__(542).default; var MainMenuSite_view = __webpack_require__(543); var MainMenuSite_MainMenuSite = /*#__PURE__*/function (_MenuSite) { MainMenuSite_inherits(MainMenuSite, _MenuSite); var _super2 = MainMenuSite_createSuper(MainMenuSite); function MainMenuSite(siteManager) { var _this; MainMenuSite_classCallCheck(this, MainMenuSite); _this = _super2.call(this, siteManager, MainMenuSite_view); _this.loadLevelPromise = new SyncJob["SyncJob"]().sync([LevelData_LevelData]).catch(function (e) { return console.error(e); }); _this.listener = null; _this.getNavbarFragment().setCanGoBack(false); return _this; } MainMenuSite_createClass(MainMenuSite, [{ key: "onCreateMenu", value: function onCreateMenu(navbar) { var _this2 = this; MainMenuSite_get(MainMenuSite_getPrototypeOf(MainMenuSite.prototype), "onCreateMenu", this).call(this, navbar); var settingsAction = new MenuAction["MenuAction"]("", function () { _this2.startSite(SettingsSite_SettingsSite); }, MenuAction["MenuAction"].SHOW_ALWAYS, null, settingsIcon); navbar.addAction(settingsAction); return navbar; } }, { key: "onViewLoaded", value: function onViewLoaded() { var _this3 = this; var _super = Object.create(null, { onViewLoaded: { get: function get() { return MainMenuSite_get(MainMenuSite_getPrototypeOf(MainMenuSite.prototype), "onViewLoaded", _this3); } } }); return MainMenuSite_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var _this4 = this; var res, playButton, leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate, triangleTemplate, soundManager, playMusicButton, playSoundButton; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: res = _super.onViewLoaded.call(this); playButton = this.findBy("#play-button"); playButton.addEventListener("click", function () { // Matomo.push(["trackEvent", "MainMenu", "startButton"]); _this4.startLevelSite(); }); leafSegmentTemplate = this.findBy("#segment-leaf-template"); parentSegmentTemplate = this.findBy("#segment-parent-template"); rowSegmentTemplate = this.findBy("#segment-row-template"); triangleTemplate = this.findBy("#segment-triangle-template"); leafSegmentTemplate.id = null; parentSegmentTemplate.id = null; rowSegmentTemplate.id = null; triangleTemplate.id = null; leafSegmentTemplate.remove(); parentSegmentTemplate.remove(); rowSegmentTemplate.remove(); triangleTemplate.remove(); this.templateContainer = new TemplateContainer(leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate, triangleTemplate); //TODO? // if (Helper.nonNull(MainMenuSite.app._cookieClosePromise)) { // MainMenuSite.app._cookieClosePromise.then(() => { // if (this.listener) { // this.listener(); // } // }); // } soundManager = SoundManager["SoundManager"].getInstance(); playMusicButton = this.findBy("#play-music"); _context3.next = 20; return client["NativeStoragePromise"].getItem("play-music", "1"); case 20: _context3.t0 = _context3.sent; playMusicButton.checked = _context3.t0 === "1"; playMusicButton.addEventListener("change", function () { return MainMenuSite_awaiter(_this4, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return client["NativeStoragePromise"].setItem("play-music", playMusicButton.checked ? "1" : "0"); case 2: soundManager.set({ muted: !playMusicButton.checked }, SoundManager["SoundManager"].CHANNELS.MUSIC); if (!playMusicButton.checked) { _context.next = 6; break; } _context.next = 6; return soundManager.play(SoundManager["SoundManager"].CHANNELS.MUSIC); case 6: //TODO [MIG] Matomo Matomo["Matomo"].push(["trackEvent", "MainMenu", "PlayMusic", "Play Music", playMusicButton.checked ? 1 : 0]); case 7: case "end": return _context.stop(); } } }, _callee); })); }); playSoundButton = this.findBy("#play-sound"); _context3.next = 26; return client["NativeStoragePromise"].getItem("play-sound", "1"); case 26: _context3.t1 = _context3.sent; playSoundButton.checked = _context3.t1 === "1"; playSoundButton.addEventListener("change", function () { return MainMenuSite_awaiter(_this4, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return client["NativeStoragePromise"].setItem("play-sound", playSoundButton.checked ? "1" : "0"); case 2: soundManager.set({ muted: !playSoundButton.checked }, SoundManager["SoundManager"].CHANNELS.SOUND); //TODO [MIG] Matomo Matomo["Matomo"].push(["trackEvent", "MainMenu", "PlaySound", "Play Sound", playSoundButton.checked ? 1 : 0]); case 4: case "end": return _context2.stop(); } } }, _callee2); })); }); this.findBy("#share-button").addEventListener("click", function () { new ShareManager["ShareManager"]().share(Translator["Translator"].getInstance().translate("share-text", [window.location])); }); return _context3.abrupt("return", res); case 31: case "end": return _context3.stop(); } } }, _callee3, this); })); } }, { key: "onStart", value: function onStart(args) { var _this5 = this; var _super = Object.create(null, { onStart: { get: function get() { return MainMenuSite_get(MainMenuSite_getPrototypeOf(MainMenuSite.prototype), "onStart", _this5); } } }); return MainMenuSite_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var _this6 = this; var res, level, segment, levelSegment, rotationsSegments, randomRotationFunction, playSoundButton, playMusicButton; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: // Matomo.update("Menu Sites"); res = _super.onStart.call(this, args); level = new MainMenuLevel(this.templateContainer); level.setWords(["WORD", "ROTA", "TORW", "ORDR"]); level.createSegments(); level.getWonPromise().then(function () { // Matomo.push(["trackEvent", "MainMenu", "levelSolved"]); _this6.startLevelSite(); }); segment = level.getRootSegment(); segment._updateElement(); levelSegment = this.findBy("#level"); ViewHelper["ViewHelper"].removeAllChildren(levelSegment).appendChild(segment.getElement()); rotationsSegments = level.getRotatableSegments(); randomRotationFunction = function randomRotationFunction() { var timeout = Math.random() * 4500 + 1500; _this6.randomRotateTimeout = setTimeout(function () { var indexBlocked = -1; var indexesNotRight = []; for (var i = 0; i < rotationsSegments.length; i++) { if (rotationsSegments[i].rotation !== 0) { indexesNotRight.push(i); if (indexesNotRight.length >= 2) { break; } } } if (indexesNotRight.length === 1) { indexBlocked = indexesNotRight[0]; } var index = Math.floor(Math.random() * rotationsSegments.length); if (index === indexBlocked) { index = (index + 1) % rotationsSegments.length; } rotationsSegments[index].rotate(); randomRotationFunction(); }, timeout); }; randomRotationFunction(); this.listener = function () { return MainMenuSite_awaiter(_this6, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var playButton, levelNumber, levelSegment, scaleHelper, levelStyle; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: playButton = this.findBy("#play-button"); levelNumber = this.findBy("#level-number"); _context4.t0 = shared["Helper"]; _context4.next = 5; return client["NativeStoragePromise"].getItem("levelCounter"); case 5: _context4.t1 = _context4.sent; levelNumber.innerText = _context4.t0.nonNull.call(_context4.t0, _context4.t1, 1); levelSegment = this.findBy("#level"); scaleHelper = new client["ScaleHelper"](); _context4.next = 11; return scaleHelper.scaleToFull(levelSegment, levelSegment.parentElement, false, false, 2, 8, null, false); case 11: levelStyle = getComputedStyle(levelSegment); playButton.style.width = levelStyle.getPropertyValue("width"); scaleHelper.scaleTo(0.65, playButton.children[0], playButton, null, null, null, 4, null, false); _context4.next = 16; return scaleHelper.scaleTo(0.1, levelNumber.parentElement, levelNumber.parentElement.parentElement, null, null, null, 10, null, false); case 16: scaleHelper.scaleTo(1, levelNumber, levelNumber.parentElement, false, false, 5, null, null, false); case 17: case "end": return _context4.stop(); } } }, _callee4, this); })); }; // this.listener(); window.addEventListener("resize", this.listener); setTimeout(this.listener, 50); //Musikbuttons update, falls in den Einstellungen umgestellt // let settingsManager = SettingsManager.getInstance(); playSoundButton = this.findBy("#play-sound"); _context5.next = 18; return client["NativeStoragePromise"].getItem("play-sound", "1"); case 18: _context5.t0 = _context5.sent; playSoundButton.checked = _context5.t0 === "1"; playMusicButton = this.findBy("#play-music"); _context5.next = 23; return client["NativeStoragePromise"].getItem("play-music", "1"); case 23: _context5.t1 = _context5.sent; playMusicButton.checked = _context5.t1 === "1"; return _context5.abrupt("return", res); case 26: case "end": return _context5.stop(); } } }, _callee5, this); })); } }, { key: "startLevelSite", value: function startLevelSite() { return MainMenuSite_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { var _this7 = this; return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: SoundManager["SoundManager"].getInstance().resumeContext(); this.startSite(LevelSite_LevelSite, Promise.race([this.loadLevelPromise, new Promise(function (resolve) { return MainMenuSite_awaiter(_this7, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var levelData; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _context6.next = 2; return LevelPlayed_LevelPlayed.getNextLevelData(LevelSite_LevelSite.RENDERER_TYPES); case 2: levelData = _context6.sent; if (levelData !== null) { resolve(); } case 4: case "end": return _context6.stop(); } } }, _callee6); })); })])); case 2: case "end": return _context7.stop(); } } }, _callee7, this); })); } }, { key: "onPause", value: function onPause() { clearTimeout(this.randomRotateTimeout); window.removeEventListener("resize", this.listener); return MainMenuSite_get(MainMenuSite_getPrototypeOf(MainMenuSite.prototype), "onPause", this).call(this); } }]); return MainMenuSite; }(client["MenuSite"]); client["App"].addInitialization(function (app) { MainMenuSite_MainMenuSite.app = app; }); // CONCATENATED MODULE: ./src/client/js/model/migration/ClientSetup.ts function ClientSetup_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function ClientSetup_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function ClientSetup_createClass(Constructor, protoProps, staticProps) { if (protoProps) ClientSetup_defineProperties(Constructor.prototype, protoProps); if (staticProps) ClientSetup_defineProperties(Constructor, staticProps); return Constructor; } var ClientSetup_awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var ClientSetup_ClientSetup1000000002001 = /*#__PURE__*/function () { function ClientSetup1000000002001() { ClientSetup_classCallCheck(this, ClientSetup1000000002001); } ClientSetup_createClass(ClientSetup1000000002001, [{ key: "up", value: function up(queryRunner) { return ClientSetup_awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return shared["MigrationHelper"].addTableFromModelClass(LevelPlayed_LevelPlayed, queryRunner); case 2: case "end": return _context.stop(); } } }, _callee); })); } }, { key: "down", value: function down(queryRunner) { return undefined; } }]); return ClientSetup1000000002001; }(); // EXTERNAL MODULE: ./node_modules/cordova-sites-easy-sync/dist/client/EasySyncClientDb.js var EasySyncClientDb = __webpack_require__(128); // EXTERNAL MODULE: ./node_modules/cordova-sites/dist/client/js/Context/Menu/NavbarFragment.js var NavbarFragment = __webpack_require__(161); // CONCATENATED MODULE: ./src/client/sound/brightAndBeautifull__.mp3 /* harmony default export */ var brightAndBeautifull_ = ("img/brightAndBeautifull__.mp3"); // CONCATENATED MODULE: ./src/client/js/script.js function script_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function script_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { script_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { script_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } window["JSObject"] = Object; //Disable Google Analytics for VideoJS window["HELP_IMPROVE_VIDEOJS"] = false; dist_client["LoginSite"].ADD_LOGIN_ACTION = false; dist_client["RegistrationSite"].ADD_REGISTRATION_ACTION = false; client["App"].addInitialization( /*#__PURE__*/script_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var soundManager; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: client["Translator"].init({ translations: { "de": de, "en": en }, fallbackLanguage: "de", // markTranslations: true, markUntranslatedTranslations: true }); //Setting Title NavbarFragment["NavbarFragment"].title = "WordRotator"; soundManager = SoundManager["SoundManager"].getInstance(); _context2.t0 = soundManager; _context2.t1 = SoundManager["SoundManager"].CHANNELS.MUSIC; _context2.t2 = brightAndBeautifull_; _context2.next = 8; return NativeStoragePromise["NativeStoragePromise"].getItem("play-music", "1"); case 8: _context2.t3 = _context2.sent; _context2.t4 = _context2.t3 !== "1"; _context2.t5 = { audio: _context2.t2, loop: true, volume: 0.6, muted: _context2.t4 }; _context2.t0.play.call(_context2.t0, _context2.t1, _context2.t5).catch(function (e) { return console.error(e); }); _context2.next = 14; return dist_client["UserManager"].getInstance().getMe().catch(function (e) { return console.error(e); }); case 14: dist_client["UserManager"].getInstance().addLoginChangeCallback( /*#__PURE__*/function () { var _ref2 = script_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(isLoggedIn) { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (isLoggedIn) {// await new SyncJob().sync([UserManager.syncParamFor(Definition), UserManager.syncParamFor(ExerciseProgress), UserManager.syncParamFor(WrongAnswer)]).catch(e => console.error(e)); } case 1: case "end": return _context.stop(); } } }, _callee); })); return function (_x) { return _ref2.apply(this, arguments); }; }()); case 15: case "end": return _context2.stop(); } } }, _callee2); }))); client["DataManager"]._basePath = 'https://wordRotator.silas.link/api/v1/'; client["DataManager"].onlineCallback = function (isOnline) { if (!isOnline) { new client["Toast"]("not online!").show(); } }; Object.assign(cordova_sites_database["BaseDatabase"].CONNECTION_OPTIONS, { logging: ["error"], synchronize: false, migrationsRun: true, migrations: [DeleteUserManagement["DeleteUserManagement1000000000000"], cordova_sites_easy_sync_dist_client["SetupEasySync1000000000500"], SetupUserManagement["SetupUserManagement1000000001000"], Setup_Setup1000000002000, ClientSetup_ClientSetup1000000002001] }); var app = new client["App"](); app.start(MainMenuSite_MainMenuSite).catch(function (e) { return console.error(e); }).then( /*#__PURE__*/script_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: window["queryDb"] = /*#__PURE__*/function () { var _ref4 = script_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(sql) { var res; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return EasySyncClientDb["EasySyncClientDb"].getInstance().rawQuery(sql); case 2: res = _context3.sent; console.log(res); return _context3.abrupt("return", res); case 5: case "end": return _context3.stop(); } } }, _callee3); })); return function (_x2) { return _ref4.apply(this, arguments); }; }(); case 1: case "end": return _context4.stop(); } } }, _callee4); }))); app.ready(function () { console.log("initialisation over", new Date()); if (device.platform === "browser") { // Check that service workers are supported if ('serviceWorker' in navigator) { // Use the window load event to keep the page load performant window.addEventListener('load', function () { navigator.serviceWorker.register('service-worker.js'); }); } } }); /***/ }) /******/ ]); //# sourceMappingURL=bundle.js.map