2021-04-24 12:50:28 +02:00

5967 lines
3.1 MiB
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/******/ (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 = 0);
/******/ })
/************************************************************************/
/******/ ({
/***/ "./node_modules/base64-js/index.js":
/*!*****************************************!*\
!*** ./node_modules/base64-js/index.js ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n\n\n//# sourceURL=webpack:///./node_modules/base64-js/index.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-database/dist/BaseDatabase.js":
/*!******************************************************************!*\
!*** ./node_modules/cordova-sites-database/dist/BaseDatabase.js ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst _typeorm = __webpack_require__(/*! typeorm */ \"./node_modules/typeorm/browser/index.js\");\nlet typeorm = _typeorm;\nclass BaseDatabase {\n constructor(database) {\n let options = this._createConnectionOptions(database);\n this._connectionPromise = this._createConnection(options);\n }\n _createConnection(options) {\n return __awaiter(this, void 0, void 0, function* () {\n if (options.type === \"sqljs\") {\n //wait for SQL to be initialized\n window[\"SQL\"] = yield window[\"initSqlJs\"]();\n }\n return typeorm.createConnection(options).catch(e => {\n console.error(e);\n return Promise.reject(e);\n });\n });\n }\n _createConnectionOptions(database) {\n let options = BaseDatabase.CONNECTION_OPTIONS;\n if (typeof device === \"undefined\" || device.platform !== \"browser\") {\n options.type = \"cordova\";\n options.database = database;\n }\n else {\n let saveTimeout = null;\n options.type = \"sqljs\";\n options.location = database;\n options.autoSave = true;\n options.useLocalForage = true;\n //Deactivated delay of saving since PRAGMA foreign_keys = ON is not saved with delay (why ever!)\n // options.autoSaveCallback = function () {\n // clearTimeout(saveTimeout);\n // saveTimeout = setTimeout(() => {\n // typeorm.getSqljsManager().saveDatabase();\n // }, 150);\n // }\n }\n options.entities = this.getEntityDefinitions();\n // options.migrations = this.constructor._migrations;\n return options;\n }\n getEntityDefinitions() {\n let entities = [];\n Object.keys(BaseDatabase._models).forEach(modelName => {\n BaseDatabase._models[modelName]._database = this;\n entities.push(new typeorm.EntitySchema(BaseDatabase._models[modelName].getSchemaDefinition()));\n });\n // console.log(\"entities\", entities);\n return entities;\n }\n saveEntity(entity) {\n return __awaiter(this, void 0, void 0, function* () {\n let repository = null;\n if (Array.isArray(entity)) {\n if (entity.length === 0) {\n return entity;\n }\n repository = yield this._getRepository(entity[0].constructor);\n }\n else {\n repository = yield this._getRepository(entity.constructor);\n }\n return repository.save(entity);\n });\n }\n static _buildQuery(where, order, limit, offset, relations) {\n let query = {};\n if (where) {\n query[\"where\"] = where;\n }\n if (order) {\n query[\"order\"] = order;\n }\n if (limit) {\n query[\"take\"] = limit;\n }\n if (offset) {\n query[\"skip\"] = offset;\n }\n if (relations) {\n query[\"relations\"] = relations;\n }\n return query;\n }\n static _setLoaded(models) {\n return __awaiter(this, void 0, void 0, function* () {\n models = yield models;\n if (models === null || models === undefined) {\n return null;\n }\n let isArray = Array.isArray(models);\n if (!isArray) {\n models = [models];\n }\n models.forEach(models => models.setLoaded(true));\n return (isArray) ? models : models[0];\n });\n }\n findEntities(model, where, order, limit, offset, relations) {\n return __awaiter(this, void 0, void 0, function* () {\n let repository = yield this._getRepository(model);\n return BaseDatabase._setLoaded(repository.find(BaseDatabase._buildQuery(where, order, limit, offset, relations)));\n });\n }\n findAndCountEntities(model, where, order, limit, offset, relations) {\n return __awaiter(this, void 0, void 0, function* () {\n let repository = yield this._getRepository(model);\n return BaseDatabase._setLoaded(repository.findAndCount(BaseDatabase._buildQuery(where, order, limit, offset, relations)));\n });\n }\n findOneEntity(model, where, order, offset, relations) {\n return __awaiter(this, void 0, void 0, function* () {\n let repository = yield this._getRepository(model);\n return BaseDatabase._setLoaded(repository.findOne(BaseDatabase._buildQuery(where, order, undefined, offset, relations)));\n });\n }\n findById(model, id, relations) {\n return __awaiter(this, void 0, void 0, function* () {\n let repository = yield this._getRepository(model);\n return BaseDatabase._setLoaded(repository.findOne(id, BaseDatabase._buildQuery(undefined, undefined, undefined, undefined, relations)));\n });\n }\n findByIds(model, ids, relations) {\n return __awaiter(this, void 0, void 0, function* () {\n let repository = yield this._getRepository(model);\n return BaseDatabase._setLoaded(repository.findByIds(ids, BaseDatabase._buildQuery(undefined, undefined, undefined, undefined, relations)));\n });\n }\n clearModel(model) {\n return __awaiter(this, void 0, void 0, function* () {\n let repository = yield this._getRepository(model);\n return repository.clear();\n });\n }\n _getRepository(model) {\n return __awaiter(this, void 0, void 0, function* () {\n let connection = yield this._connectionPromise;\n return connection.getRepository(model);\n });\n }\n createQueryBuilder(model) {\n return __awaiter(this, void 0, void 0, function* () {\n if (model) {\n let repo = yield this._getRepository(model);\n return repo.createQueryBuilder(model.getSchemaName());\n }\n else {\n let connection = yield this._connectionPromise;\n return connection.createQueryBuilder();\n }\n });\n }\n createQueryRunner() {\n return __awaiter(this, void 0, void 0, function* () {\n let connection = yield this._connectionPromise;\n return connection.createQueryRunner();\n });\n }\n deleteEntity(entity, model) {\n return __awaiter(this, void 0, void 0, function* () {\n if (Array.isArray(entity)) {\n if (entity.length === 0) {\n return entity;\n }\n if (!model) {\n model = entity[0].constructor;\n }\n if (typeof entity[0] !== \"number\") {\n let ids = [];\n entity.forEach(ent => ids.push(ent.id));\n entity = ids;\n }\n }\n else {\n if (!model) {\n model = entity.constructor;\n }\n if (typeof entity !== \"number\") {\n entity = entity.id;\n }\n }\n let repository = yield this._getRepository(model);\n return repository.delete(entity);\n });\n }\n rawQuery(sql, params) {\n return __awaiter(this, void 0, void 0, function* () {\n return (yield this._connectionPromise).query(sql, params);\n });\n }\n waitForConnection() {\n return __awaiter(this, void 0, void 0, function* () {\n return this._connectionPromise;\n });\n }\n /**\n * @return {BaseDatabase}\n */\n static getInstance() {\n if (!this.instance) {\n this.instance = new this();\n }\n return this.instance;\n }\n static addModel(model) {\n BaseDatabase._models[model.getSchemaName()] = model;\n }\n static getModel(modelName) {\n if (modelName) {\n return this._models[modelName];\n }\n else {\n return this._models;\n }\n }\n}\nexports.BaseDatabase = BaseDatabase;\nBaseDatabase._models = {};\nBaseDatabase.CONNECTION_OPTIONS = {\n location: \"default\",\n // autoSave: true,\n logging: [\"error\", \"warn\"],\n synchronize: true,\n};\nBaseDatabase.TYPES = {\n INTEGER: \"int\",\n FLOAT: \"float\",\n DATE: \"datetime\",\n STRING: \"varchar\",\n TEXT: \"text\",\n MEDIUMTEXT: \"mediumtext\",\n BOOLEAN: \"boolean\",\n JSON: \"json\",\n SIMPLE_JSON: \"simple-json\",\n MY_JSON: \"my-json\",\n};\n//# sourceMappingURL=BaseDatabase.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-database/dist/BaseDatabase.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-database/dist/BaseModel.js":
/*!***************************************************************!*\
!*** ./node_modules/cordova-sites-database/dist/BaseModel.js ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst BaseDatabase_1 = __webpack_require__(/*! ./BaseDatabase */ \"./node_modules/cordova-sites-database/dist/BaseDatabase.js\");\nclass BaseModel {\n constructor() {\n this.id = null;\n this._isLoaded = false;\n }\n getId() {\n return this.id;\n }\n setId(id) {\n this.id = id;\n }\n static getColumnDefinitions() {\n return {\n id: {\n primary: true,\n type: BaseDatabase_1.BaseDatabase.TYPES.INTEGER,\n generated: true\n },\n };\n }\n static getRelationDefinitions() {\n return {};\n }\n static getRelations() {\n return Object.keys(this.getRelationDefinitions());\n }\n static getSchemaDefinition() {\n let columns = this.getColumnDefinitions();\n Object.keys(columns).forEach(column => {\n if (typeof columns[column] === \"string\") {\n columns[column] = { type: columns[column] };\n }\n if (columns[column].type === BaseDatabase_1.BaseDatabase.TYPES.MY_JSON && !columns[column].transformer) {\n columns[column].type = BaseDatabase_1.BaseDatabase.TYPES.MEDIUMTEXT;\n columns[column].transformer = {\n from: text => {\n return (text ? JSON.parse(text) : null);\n },\n to: json => {\n return (json ? JSON.stringify(json) : \"\");\n }\n };\n }\n });\n return {\n name: this.getSchemaName(),\n target: this,\n columns: columns,\n relations: this.getRelationDefinitions()\n };\n }\n static getSchemaName() {\n if (!this.SCHEMA_NAME) {\n this.SCHEMA_NAME = this.name;\n }\n return this.SCHEMA_NAME;\n }\n setLoaded(isLoaded) {\n this._isLoaded = isLoaded;\n }\n save() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.constructor._database.saveEntity(this);\n });\n }\n delete() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.constructor._database.deleteEntity(this);\n });\n }\n static deleteMany(entities) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._database.deleteEntity(entities);\n });\n }\n static saveMany(entities) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._database.saveEntity(entities);\n });\n }\n static find(where, order, limit, offset, relations) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._database.findEntities(this, where, order, limit, offset, relations);\n });\n }\n static findAndCount(where, order, limit, offset, relations) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._database.findAndCountEntities(this, where, order, limit, offset, relations);\n });\n }\n static findOne(where, order, offset, relations) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._database.findOneEntity(this, where, order, offset, relations);\n });\n }\n static findById(id, relations) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._database.findById(this, id, relations);\n });\n }\n static findByIds(ids, relations) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._database.findByIds(this, ids, relations);\n });\n }\n static clear() {\n return __awaiter(this, void 0, void 0, function* () {\n return this._database.clearModel(this);\n });\n }\n static equals(a, b) {\n if (a === b) {\n return true;\n }\n if (a === null || b === null) {\n return false;\n }\n if (Array.isArray(a) && Array.isArray(b) && a.length === b.length) {\n return a.every((subA, index) => {\n this.equals(subA, b[index]);\n });\n }\n else if (a instanceof this && b instanceof this) {\n return a.constructor === b.constructor && a.getId() === b.getId();\n }\n }\n}\nexports.BaseModel = BaseModel;\n/**\n * @type {null | BaseDatabase}\n * @private\n */\nBaseModel._database = null;\nBaseModel.RELATION = {\n MANY_TO_MANY: \"many-to-many\",\n MANY_TO_ONE: \"many-to-one\",\n ONE_TO_MANY: \"one-to-many\",\n ONE_TO_ONE: \"one-to-one\"\n};\n//# sourceMappingURL=BaseModel.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-database/dist/BaseModel.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-database/dist/cordova-sites-database.js":
/*!****************************************************************************!*\
!*** ./node_modules/cordova-sites-database/dist/cordova-sites-database.js ***!
\****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(/*! ./BaseDatabase */ \"./node_modules/cordova-sites-database/dist/BaseDatabase.js\"));\n__export(__webpack_require__(/*! ./BaseModel */ \"./node_modules/cordova-sites-database/dist/BaseModel.js\"));\n__export(__webpack_require__(/*! ./cordova-sites-database */ \"./node_modules/cordova-sites-database/dist/cordova-sites-database.js\"));\n//# sourceMappingURL=cordova-sites-database.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-database/dist/cordova-sites-database.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-easy-sync/dist/client.js":
/*!*************************************************************!*\
!*** ./node_modules/cordova-sites-easy-sync/dist/client.js ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(__webpack_require__(/*! ./client/ClientFileMedium */ \"./node_modules/cordova-sites-easy-sync/dist/client/ClientFileMedium.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/ClientModel */ \"./node_modules/cordova-sites-easy-sync/dist/client/ClientModel.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/ClientPartialModel */ \"./node_modules/cordova-sites-easy-sync/dist/client/ClientPartialModel.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/EasySyncClientDb */ \"./node_modules/cordova-sites-easy-sync/dist/client/EasySyncClientDb.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/FileWriter/FilePromise */ \"./node_modules/cordova-sites-easy-sync/dist/client/FileWriter/FilePromise.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/FileWriter/FileTransferPromise */ \"./node_modules/cordova-sites-easy-sync/dist/client/FileWriter/FileTransferPromise.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/FileWriter/FileWriterPromise */ \"./node_modules/cordova-sites-easy-sync/dist/client/FileWriter/FileWriterPromise.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/LastSyncDates */ \"./node_modules/cordova-sites-easy-sync/dist/client/LastSyncDates.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/SyncJob */ \"./node_modules/cordova-sites-easy-sync/dist/client/SyncJob.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/SyncJob_old */ \"./node_modules/cordova-sites-easy-sync/dist/client/SyncJob_old.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/editEntitySite/ModifyEntitySite */ \"./node_modules/cordova-sites-easy-sync/dist/client/editEntitySite/ModifyEntitySite.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/migration/SetupEasySync */ \"./node_modules/cordova-sites-easy-sync/dist/client/migration/SetupEasySync.js\"), exports);\n//# sourceMappingURL=client.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-easy-sync/dist/client.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-easy-sync/dist/client/ClientFileMedium.js":
/*!******************************************************************************!*\
!*** ./node_modules/cordova-sites-easy-sync/dist/client/ClientFileMedium.js ***!
\******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClientFileMedium = void 0;\nconst EasySyncBaseModel_1 = __webpack_require__(/*! ../shared/EasySyncBaseModel */ \"./node_modules/cordova-sites-easy-sync/dist/shared/EasySyncBaseModel.js\");\nconst FileTransferPromise_1 = __webpack_require__(/*! ./FileWriter/FileTransferPromise */ \"./node_modules/cordova-sites-easy-sync/dist/client/FileWriter/FileTransferPromise.js\");\nconst Helper_1 = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nconst FilePromise_1 = __webpack_require__(/*! ./FileWriter/FilePromise */ \"./node_modules/cordova-sites-easy-sync/dist/client/FileWriter/FilePromise.js\");\nclass ClientFileMedium extends EasySyncBaseModel_1.EasySyncBaseModel {\n constructor() {\n super(...arguments);\n this.saveOffline = true;\n this._isDownloaded = true;\n }\n setLoaded(isLoaded) {\n // @ts-ignore\n super.setLoaded(isLoaded);\n this._isDownloaded = true;\n FilePromise_1.FilePromise.open(this.src, { create: false }).then(() => this._isDownloaded = true).catch(e => {\n console.log(\"not downloaded, yet!\");\n this._isDownloaded = false;\n ClientFileMedium._handleImages(this);\n });\n }\n save() {\n const _super = Object.create(null, {\n save: { get: () => super.save }\n });\n return __awaiter(this, void 0, void 0, function* () {\n yield ClientFileMedium._handleImages(this);\n return _super.save.call(this);\n });\n }\n static saveMany(entities) {\n const _super = Object.create(null, {\n saveMany: { get: () => super.saveMany }\n });\n return __awaiter(this, void 0, void 0, function* () {\n yield ClientFileMedium._handleImages(entities);\n return _super.saveMany.call(this, entities);\n });\n }\n static _handleImages(entities) {\n return __awaiter(this, void 0, void 0, function* () {\n let isArray = Array.isArray(entities);\n if (!isArray) {\n entities = [entities];\n }\n yield Helper_1.Helper.asyncForEach(entities, (entity) => __awaiter(this, void 0, void 0, function* () {\n if (entity.saveOffline && device.platform !== \"browser\" && !entity.src.startsWith(\"data\") && !entity.src.startsWith(\"http\") && !entity.src.startsWith(\"//\")) {\n yield new FileTransferPromise_1.FileTransferPromise(entity.getServerUrl(false), entity.src).download().catch(e => console.log(e));\n entity._isDownloaded = true;\n }\n }), true);\n });\n }\n}\nexports.ClientFileMedium = ClientFileMedium;\n//# sourceMappingURL=ClientFileMedium.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-easy-sync/dist/client/ClientFileMedium.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-easy-sync/dist/client/ClientModel.js":
/*!*************************************************************************!*\
!*** ./node_modules/cordova-sites-easy-sync/dist/client/ClientModel.js ***!
\*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClientModel = void 0;\nconst cordova_sites_database_1 = __webpack_require__(/*! cordova-sites-database/dist/cordova-sites-database */ \"./node_modules/cordova-sites-database/dist/cordova-sites-database.js\");\nconst client_1 = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\nconst shared_1 = __webpack_require__(/*! js-helper/dist/shared */ \"./node_modules/js-helper/dist/shared.js\");\nclass ClientModel extends cordova_sites_database_1.BaseModel {\n static getColumnDefinitions() {\n let columns = super.getColumnDefinitions();\n if (columns[\"id\"] && columns[\"id\"][\"generated\"]) {\n columns[\"id\"][\"generated\"] = false;\n }\n return columns;\n }\n static _fromJson(jsonObjects, models, includeRelations) {\n return __awaiter(this, void 0, void 0, function* () {\n });\n }\n toJSON(includeFull) {\n }\n ;\n save(local) {\n const _super = Object.create(null, {\n save: { get: () => super.save }\n });\n return __awaiter(this, void 0, void 0, function* () {\n if (!local) {\n let values = this.toJSON();\n let data = yield client_1.DataManager.send(this.constructor.SAVE_PATH, {\n \"model\": this.constructor.getSchemaName(),\n \"values\": values\n });\n if (data.success === false) {\n throw new Error(data.errors);\n }\n yield this.constructor._fromJson(data, this, true);\n }\n return _super.save.call(this);\n });\n }\n delete(local) {\n const _super = Object.create(null, {\n delete: { get: () => super.delete }\n });\n return __awaiter(this, void 0, void 0, function* () {\n if (!local) {\n let data = yield client_1.DataManager.send(this.constructor.DELETE_PATH, {\n \"model\": this.constructor.getSchemaName(),\n \"id\": this.id\n });\n if (data.success === false) {\n throw new Error(data.errors);\n }\n }\n return _super.delete.call(this);\n });\n }\n static saveMany(entities, local) {\n const _super = Object.create(null, {\n saveMany: { get: () => super.saveMany }\n });\n return __awaiter(this, void 0, void 0, function* () {\n if (!local) {\n let values = [];\n entities.forEach(entity => {\n values.push(entity.toJSON());\n });\n let data = yield client_1.DataManager.send(this.SAVE_PATH, {\n \"model\": this.getSchemaName(),\n \"values\": values\n });\n if (data.success === false) {\n throw new Error(data.errors);\n }\n entities = yield this._fromJson(data, undefined, true);\n }\n return _super.saveMany.call(this, entities);\n });\n }\n static getSchemaDefinition() {\n const TYPES_FOR_DEFAULT_ESCAPING = [\n cordova_sites_database_1.BaseDatabase.TYPES.MEDIUMTEXT,\n cordova_sites_database_1.BaseDatabase.TYPES.STRING,\n cordova_sites_database_1.BaseDatabase.TYPES.TEXT,\n ];\n let definitions = super.getSchemaDefinition();\n let columns = definitions[\"columns\"];\n Object.keys(columns).forEach(column => {\n if (columns[column].type === cordova_sites_database_1.BaseDatabase.TYPES.MEDIUMTEXT) {\n columns[column].type = cordova_sites_database_1.BaseDatabase.TYPES.TEXT;\n }\n if (columns[column].type === cordova_sites_database_1.BaseDatabase.TYPES.JSON) {\n columns[column].type = cordova_sites_database_1.BaseDatabase.TYPES.SIMPLE_JSON;\n }\n if (TYPES_FOR_DEFAULT_ESCAPING.indexOf(columns[column].type) !== -1) {\n columns[column].escapeJS = shared_1.Helper.nonNull(columns[column].escapeJS, true);\n columns[column].escapeHTML = shared_1.Helper.nonNull(columns[column].escapeHTML, true);\n }\n });\n return definitions;\n }\n}\nexports.ClientModel = ClientModel;\nClientModel.SAVE_PATH = \"/sync\";\nClientModel.DELETE_PATH = \"/sync/delete\";\n//# sourceMappingURL=ClientModel.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-easy-sync/dist/client/ClientModel.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-easy-sync/dist/client/ClientPartialModel.js":
/*!********************************************************************************!*\
!*** ./node_modules/cordova-sites-easy-sync/dist/client/ClientPartialModel.js ***!
\********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClientPartialModel = void 0;\nconst EasySyncBaseModel_1 = __webpack_require__(/*! ../shared/EasySyncBaseModel */ \"./node_modules/cordova-sites-easy-sync/dist/shared/EasySyncBaseModel.js\");\nconst cordova_sites_database_1 = __webpack_require__(/*! cordova-sites-database/dist/cordova-sites-database */ \"./node_modules/cordova-sites-database/dist/cordova-sites-database.js\");\nconst client_1 = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\nconst Helper_1 = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nclass ClientPartialModel extends EasySyncBaseModel_1.EasySyncBaseModel {\n constructor() {\n super();\n this.clientId = null;\n }\n static getColumnDefinitions() {\n let columns = super.getColumnDefinitions();\n if (columns[\"id\"]) {\n columns[\"id\"][\"primary\"] = false;\n columns[\"id\"][\"generated\"] = false;\n columns[\"id\"][\"nullable\"] = true;\n columns[\"id\"][\"unique\"] = true;\n }\n columns[\"clientId\"] = {\n type: \"integer\",\n primary: true,\n generated: true,\n };\n return columns;\n }\n toJSON(includeFull) {\n let relations = this.constructor.getRelationDefinitions();\n let columns = this.constructor.getColumnDefinitions();\n let obj = {};\n Object.keys(columns).forEach(attribute => {\n if (attribute !== \"clientId\") {\n obj[attribute] = this[attribute];\n }\n });\n Object.keys(relations).forEach(relationName => {\n if (includeFull === true) {\n obj[relationName] = this[relationName];\n }\n else {\n if (Array.isArray(this[relationName])) {\n let ids = [];\n this[relationName].forEach(child => (child && ids.push(child.id)));\n obj[relationName] = ids;\n }\n else if (this[relationName] instanceof cordova_sites_database_1.BaseModel) {\n obj[relationName] = this[relationName].id;\n }\n else {\n obj[relationName] = null;\n }\n }\n });\n return obj;\n }\n save(local) {\n const _super = Object.create(null, {\n save: { get: () => super.save }\n });\n return __awaiter(this, void 0, void 0, function* () {\n local = Helper_1.Helper.nonNull(local, true);\n if (typeof this.clientId !== \"number\") {\n this.clientId = undefined;\n }\n if (!local) {\n let values = this.toJSON();\n let data = yield client_1.DataManager.send(this.constructor.SAVE_PATH, {\n \"model\": this.constructor.getSchemaName(),\n \"values\": values\n });\n if (data.success !== false) {\n yield this.constructor._fromJson(data, this, true);\n }\n }\n return _super.save.call(this, true);\n });\n }\n delete(local) {\n const _super = Object.create(null, {\n delete: { get: () => super.delete }\n });\n return __awaiter(this, void 0, void 0, function* () {\n if (!local) {\n let data = yield client_1.DataManager.send(this.constructor.DELETE_PATH, {\n \"model\": this.constructor.getSchemaName(),\n \"id\": this.id\n });\n if (data.success === false) {\n throw new Error(data.errors);\n }\n }\n return _super.delete.call(this, true);\n });\n }\n static saveMany(entities, local) {\n const _super = Object.create(null, {\n saveMany: { get: () => super.saveMany }\n });\n return __awaiter(this, void 0, void 0, function* () {\n local = Helper_1.Helper.nonNull(local, true);\n entities.forEach(entity => {\n if (typeof entity.clientId !== \"number\") {\n entity.clientId = undefined;\n }\n });\n if (!local) {\n let values = [];\n entities.forEach(entity => {\n values.push(entity.toJSON());\n });\n let data = yield client_1.DataManager.send(this.SAVE_PATH, {\n \"model\": this.getSchemaName(),\n \"values\": values\n });\n if (data.success !== false) {\n entities = yield this._fromJson(data, entities, true);\n }\n }\n return _super.saveMany.call(this, entities, true);\n });\n }\n}\nexports.ClientPartialModel = ClientPartialModel;\n//# sourceMappingURL=ClientPartialModel.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-easy-sync/dist/client/ClientPartialModel.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-easy-sync/dist/client/EasySyncClientDb.js":
/*!******************************************************************************!*\
!*** ./node_modules/cordova-sites-easy-sync/dist/client/EasySyncClientDb.js ***!
\******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EasySyncClientDb = void 0;\nconst client_1 = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\nconst cordova_sites_database_1 = __webpack_require__(/*! cordova-sites-database/dist/cordova-sites-database */ \"./node_modules/cordova-sites-database/dist/cordova-sites-database.js\");\nconst ClientModel_1 = __webpack_require__(/*! ./ClientModel */ \"./node_modules/cordova-sites-easy-sync/dist/client/ClientModel.js\");\nconst EasySyncBaseModel_1 = __webpack_require__(/*! ../shared/EasySyncBaseModel */ \"./node_modules/cordova-sites-easy-sync/dist/shared/EasySyncBaseModel.js\");\nconst EasySyncPartialModel_1 = __webpack_require__(/*! ../shared/EasySyncPartialModel */ \"./node_modules/cordova-sites-easy-sync/dist/shared/EasySyncPartialModel.js\");\nconst ClientPartialModel_1 = __webpack_require__(/*! ./ClientPartialModel */ \"./node_modules/cordova-sites-easy-sync/dist/client/ClientPartialModel.js\");\nconst FileMedium_1 = __webpack_require__(/*! ../shared/FileMedium */ \"./node_modules/cordova-sites-easy-sync/dist/shared/FileMedium.js\");\nconst ClientFileMedium_1 = __webpack_require__(/*! ./ClientFileMedium */ \"./node_modules/cordova-sites-easy-sync/dist/client/ClientFileMedium.js\");\nclass EasySyncClientDb extends cordova_sites_database_1.BaseDatabase {\n constructor(dbName) {\n super(dbName || \"EasySync\");\n }\n _createConnectionOptions(database) {\n JSObject.setPrototypeOf(EasySyncBaseModel_1.EasySyncBaseModel, ClientModel_1.ClientModel);\n JSObject.setPrototypeOf(EasySyncPartialModel_1.EasySyncPartialModel, ClientPartialModel_1.ClientPartialModel);\n JSObject.setPrototypeOf(EasySyncBaseModel_1.EasySyncBaseModel.prototype, ClientModel_1.ClientModel.prototype);\n JSObject.setPrototypeOf(EasySyncPartialModel_1.EasySyncPartialModel.prototype, ClientPartialModel_1.ClientPartialModel.prototype);\n JSObject.setPrototypeOf(FileMedium_1.FileMedium, ClientFileMedium_1.ClientFileMedium);\n JSObject.setPrototypeOf(FileMedium_1.FileMedium.prototype, ClientFileMedium_1.ClientFileMedium.prototype);\n let options = super._createConnectionOptions(database);\n options[\"migrationsTableName\"] = \"migrations\";\n return options;\n }\n}\nexports.EasySyncClientDb = EasySyncClientDb;\nEasySyncClientDb.BASE_MODEL = null;\nclient_1.App.addInitialization(() => __awaiter(void 0, void 0, void 0, function* () {\n yield EasySyncClientDb.getInstance()._connectionPromise.catch(function (e) {\n if (typeof EasySyncClientDb.errorListener === \"function\") {\n return EasySyncClientDb.errorListener(...arguments);\n }\n else {\n throw (e);\n }\n });\n}));\n//# sourceMappingURL=EasySyncClientDb.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-easy-sync/dist/client/EasySyncClientDb.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-easy-sync/dist/client/FileWriter/FilePromise.js":
/*!************************************************************************************!*\
!*** ./node_modules/cordova-sites-easy-sync/dist/client/FileWriter/FilePromise.js ***!
\************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FilePromise = void 0;\nconst Helper_1 = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nconst FileWriterPromise_1 = __webpack_require__(/*! ./FileWriterPromise */ \"./node_modules/cordova-sites-easy-sync/dist/client/FileWriter/FileWriterPromise.js\");\nclass FilePromise {\n constructor(fileEntry) {\n this.fileEntry = fileEntry;\n }\n createWriter() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((res) => {\n this.fileEntry.createWriter(writer => {\n res(new FileWriterPromise_1.FileWriterPromise(writer));\n });\n });\n });\n }\n static open(file, options) {\n return __awaiter(this, void 0, void 0, function* () {\n options = Helper_1.Helper.nonNull(options, { create: true, exclusive: false });\n return new Promise((r, rej) => {\n window[\"resolveLocalFileSystemURL\"](\"cdvfile://localhost/persistent/\", dirEntry => {\n dirEntry.getFile(file, options, fileEntry => {\n r(new FilePromise(fileEntry));\n }, rej);\n }, rej);\n });\n });\n }\n}\nexports.FilePromise = FilePromise;\n//# sourceMappingURL=FilePromise.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-easy-sync/dist/client/FileWriter/FilePromise.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-easy-sync/dist/client/FileWriter/FileTransferPromise.js":
/*!********************************************************************************************!*\
!*** ./node_modules/cordova-sites-easy-sync/dist/client/FileWriter/FileTransferPromise.js ***!
\********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileTransferPromise = void 0;\nconst Helper_1 = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nconst FilePromise_1 = __webpack_require__(/*! ./FilePromise */ \"./node_modules/cordova-sites-easy-sync/dist/client/FileWriter/FilePromise.js\");\nconst DataManager_1 = __webpack_require__(/*! cordova-sites/dist/client/js/DataManager */ \"./node_modules/cordova-sites/dist/client/js/DataManager.js\");\nclass FileTransferPromise {\n constructor(downloadUrl, storagePath) {\n this.downloadUrl = downloadUrl;\n if (Helper_1.Helper.isNull(storagePath)) {\n let parts = this.downloadUrl.split(\"/\");\n if (parts.length > 0) {\n storagePath = parts[parts.length - 1];\n }\n }\n this.storagePath = storagePath;\n }\n download() {\n return __awaiter(this, void 0, void 0, function* () {\n debugger;\n let blob = DataManager_1.DataManager.fetchBlob(this.downloadUrl);\n let filePromise = yield FilePromise_1.FilePromise.open(this.storagePath);\n let fileWriter = yield filePromise.createWriter();\n // blob = await blob;\n yield fileWriter.write(yield blob);\n });\n }\n}\nexports.FileTransferPromise = FileTransferPromise;\n//# sourceMappingURL=FileTransferPromise.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-easy-sync/dist/client/FileWriter/FileTransferPromise.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-easy-sync/dist/client/FileWriter/FileWriterPromise.js":
/*!******************************************************************************************!*\
!*** ./node_modules/cordova-sites-easy-sync/dist/client/FileWriter/FileWriterPromise.js ***!
\******************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileWriterPromise = void 0;\nclass FileWriterPromise {\n constructor(fileWriter) {\n this.fileWriter = fileWriter;\n this._isWritingPromise = Promise.resolve();\n }\n write(data) {\n return __awaiter(this, void 0, void 0, function* () {\n let promise = this._isWritingPromise.then(() => new Promise((res, rej) => {\n this.fileWriter.onwriteend = res;\n this.fileWriter.onerror = rej;\n this.fileWriter.write(data);\n }));\n this._isWritingPromise = promise.catch(console.error);\n return promise;\n });\n }\n}\nexports.FileWriterPromise = FileWriterPromise;\n//# sourceMappingURL=FileWriterPromise.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-easy-sync/dist/client/FileWriter/FileWriterPromise.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-easy-sync/dist/client/LastSyncDates.js":
/*!***************************************************************************!*\
!*** ./node_modules/cordova-sites-easy-sync/dist/client/LastSyncDates.js ***!
\***************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LastSyncDates = void 0;\nconst cordova_sites_database_1 = __webpack_require__(/*! cordova-sites-database/dist/cordova-sites-database */ \"./node_modules/cordova-sites-database/dist/cordova-sites-database.js\");\nclass LastSyncDates extends cordova_sites_database_1.BaseModel {\n constructor() {\n super();\n this.model = \"\";\n this.lastSynced = 0;\n this.where = {};\n }\n getModel() {\n return this.model;\n }\n setModel(model) {\n this.model = model;\n }\n getLastSynced() {\n return this.lastSynced;\n }\n setLastSynced(lastSynced) {\n this.lastSynced = lastSynced;\n }\n static getColumnDefinitions() {\n let columns = super.getColumnDefinitions();\n columns[\"model\"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.STRING, nullable: true };\n columns[\"lastSynced\"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER, nullable: true };\n columns[\"where\"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.SIMPLE_JSON };\n return columns;\n }\n}\nexports.LastSyncDates = LastSyncDates;\nLastSyncDates.SCHEMA_NAME = \"easy-sync-last-sync-dates\";\ncordova_sites_database_1.BaseDatabase.addModel(LastSyncDates);\n//# sourceMappingURL=LastSyncDates.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-easy-sync/dist/client/LastSyncDates.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-easy-sync/dist/client/SyncJob.js":
/*!*********************************************************************!*\
!*** ./node_modules/cordova-sites-easy-sync/dist/client/SyncJob.js ***!
\*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SyncJob = void 0;\nconst LastSyncDates_1 = __webpack_require__(/*! ./LastSyncDates */ \"./node_modules/cordova-sites-easy-sync/dist/client/LastSyncDates.js\");\nconst client_1 = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\nconst shared_1 = __webpack_require__(/*! js-helper/dist/shared */ \"./node_modules/js-helper/dist/shared.js\");\nconst EasySyncClientDb_1 = __webpack_require__(/*! ./EasySyncClientDb */ \"./node_modules/cordova-sites-easy-sync/dist/client/EasySyncClientDb.js\");\nconst typeorm = __webpack_require__(/*! typeorm */ \"./node_modules/typeorm/browser/index.js\");\nconst EasySyncBaseModel_1 = __webpack_require__(/*! ../shared/EasySyncBaseModel */ \"./node_modules/cordova-sites-easy-sync/dist/shared/EasySyncBaseModel.js\");\nconst ClientFileMedium_1 = __webpack_require__(/*! ./ClientFileMedium */ \"./node_modules/cordova-sites-easy-sync/dist/client/ClientFileMedium.js\");\nconst FileMedium_1 = __webpack_require__(/*! ../shared/FileMedium */ \"./node_modules/cordova-sites-easy-sync/dist/shared/FileMedium.js\");\nconst BaseDatabase_1 = __webpack_require__(/*! cordova-sites-database/dist/BaseDatabase */ \"./node_modules/cordova-sites-database/dist/BaseDatabase.js\");\nclass SyncJob {\n constructor() {\n this._syncedModels = {};\n this._modelNames = [];\n this._relationshipModels = {};\n this._lastSyncDates = {};\n this._keyedModelClasses = {};\n this._savePromise = Promise.resolve();\n this._queryRunner = null;\n this._finalRes = {};\n this._manyToManyRelations = {};\n }\n syncInBackgroundIfDataExists(queries) {\n return __awaiter(this, void 0, void 0, function* () {\n this._keyedModelClasses = EasySyncClientDb_1.EasySyncClientDb.getModel();\n let copiedQuery = shared_1.JsonHelper.deepCopy(queries);\n let requestQueries = this._buildRequestQuery(copiedQuery);\n this._lastSyncDates = yield this._getLastSyncModels(this._modelNames, requestQueries);\n this._syncPromise = this.sync(queries);\n if (Object[\"values\"](this._lastSyncDates).some(lastSync => {\n return lastSync[\"getLastSynced\"]() === 0;\n })) {\n yield this._syncPromise;\n }\n });\n }\n getSyncPromise() {\n return __awaiter(this, void 0, void 0, function* () {\n return this._syncPromise;\n });\n }\n sync(queries) {\n return __awaiter(this, void 0, void 0, function* () {\n this._keyedModelClasses = EasySyncClientDb_1.EasySyncClientDb.getModel();\n let requestQueries = this._buildRequestQuery(queries);\n if (Object.keys(this._lastSyncDates).length === 0) {\n this._lastSyncDates = yield this._getLastSyncModels(this._modelNames, requestQueries);\n }\n yield this._doRuns(requestQueries);\n //Save new lastSync models\n let lastSyncPromises = [];\n Object.keys(this._lastSyncDates).forEach(model => {\n lastSyncPromises.push(this._lastSyncDates[model].save());\n });\n yield Promise.all(lastSyncPromises);\n //disabled in doRuns. Cannot be reenabled sooner, but since lastSyncDates should not have any relations, it should be okay\n yield EasySyncClientDb_1.EasySyncClientDb.getInstance().rawQuery(\"PRAGMA foreign_keys = ON;\");\n if (this._finalRes[\"FileMedium\"] && this._finalRes[\"FileMedium\"][\"changed\"]) {\n yield ClientFileMedium_1.ClientFileMedium._handleImages(yield FileMedium_1.FileMedium.findByIds(this._finalRes[\"FileMedium\"][\"changed\"]));\n }\n return this._finalRes;\n });\n }\n _doRuns(requestQueries) {\n return __awaiter(this, void 0, void 0, function* () {\n //Initialize some variables\n let newLastSynced = null;\n let response = null;\n let offset = 0;\n //startTransaction maybe allow read, but not write?\n this._queryRunner = yield EasySyncClientDb_1.EasySyncClientDb.getInstance().createQueryRunner();\n this._savePromise = this._queryRunner.query(\"PRAGMA foreign_keys = OFF;\").then(() => {\n return this._queryRunner.startTransaction();\n });\n //Ask for next run until no more runs needed\n let shouldAskAgain;\n do {\n shouldAskAgain = false;\n response = yield SyncJob._fetchModel(requestQueries, offset);\n offset = response[\"nextOffset\"];\n //Update newLastSynced\n if (shared_1.Helper.isNull(newLastSynced)) {\n newLastSynced = parseInt(response[\"newLastSynced\"]);\n Object.keys(this._lastSyncDates).forEach(key => {\n this._lastSyncDates[key].setLastSynced(newLastSynced);\n });\n }\n //create new request query and save changes\n let newRequestQueries = [];\n response.results.forEach((res, i) => {\n if (res && res.shouldAskAgain) {\n shouldAskAgain = true;\n newRequestQueries.push(requestQueries[i]);\n }\n //Extract entities\n this._extractEntities(res);\n });\n requestQueries = newRequestQueries;\n } while (shouldAskAgain);\n yield this._handleManyToManyRelations();\n //wait for savePromises, stop transaction\n return this._savePromise.then(() => __awaiter(this, void 0, void 0, function* () {\n yield this._queryRunner.commitTransaction();\n })).catch((e) => __awaiter(this, void 0, void 0, function* () {\n console.error(e);\n yield this._queryRunner.rollbackTransaction();\n })).finally(() => __awaiter(this, void 0, void 0, function* () {\n yield this._queryRunner.release();\n }));\n });\n }\n /**\n * Extract the Entities and saves them(?) for one model\n *\n * @param modelRes\n * @private\n */\n _extractEntities(modelRes) {\n if (!modelRes) {\n return;\n }\n let modelClass = this._keyedModelClasses[modelRes[\"model\"]];\n let modelName = modelClass.getSchemaName();\n let deletedModelsIds = [];\n let changedEntities = [];\n //split result into deleted and changed/new entities\n modelRes[\"entities\"].forEach(entity => {\n if (entity.deleted) {\n deletedModelsIds.push(entity.id);\n }\n else {\n changedEntities.push(entity);\n }\n });\n this._syncedModels[modelName] = shared_1.Helper.nonNull(this._syncedModels[modelName], {});\n //convert json to entity and save it\n let schemaDefinition = modelClass.getSchemaDefinition();\n let relations = schemaDefinition[\"relations\"];\n let columns = schemaDefinition[\"columns\"];\n let changedEntityIds = [];\n changedEntities.forEach(entity => {\n Object.keys(relations).forEach(relation => {\n if (relations[relation].type === \"many-to-many\" && Array.isArray(entity[relation])) {\n let table = relations[relation].joinTable;\n let ownName;\n if (table.joinColumn && table.joinColumn.name) {\n ownName = table.joinColumn.name;\n }\n else {\n ownName = modelClass.getSchemaName();\n ownName = ownName.substr(0, 1).toLowerCase() + ownName.substr(1) + \"Id\";\n }\n let otherName;\n if (table.inverseJoinColumn && table.inverseJoinColumn.name) {\n otherName = table.inverseJoinColumn.name;\n }\n else {\n otherName = relations[relation].target;\n otherName = otherName.substr(0, 1).toLowerCase() + otherName.substr(1) + \"Id\";\n }\n this._manyToManyRelations[table.name] = shared_1.Helper.nonNull(this._manyToManyRelations[table.name], {});\n this._manyToManyRelations[table.name][\"values\"] = shared_1.Helper.nonNull(this._manyToManyRelations[table.name][\"values\"], []);\n this._manyToManyRelations[table.name][\"delete_\" + ownName] = shared_1.Helper.nonNull(this._manyToManyRelations[table.name][\"delete_\" + ownName], []);\n this._manyToManyRelations[table.name][\"delete_\" + ownName].push(entity.id);\n let otherIdsAlreadyInserted = [];\n let insertedRelations = this._manyToManyRelations[table.name][\"values\"].filter(relValue => relValue[ownName] === entity.id);\n insertedRelations.forEach(relValue => otherIdsAlreadyInserted.push(relValue[otherName]));\n entity[relation].forEach(otherId => {\n let index = otherIdsAlreadyInserted.indexOf(otherId);\n if (index === -1) {\n let value = {};\n value[ownName] = entity.id;\n value[otherName] = otherId;\n this._manyToManyRelations[table.name][\"values\"].push(value);\n }\n });\n }\n else if ((relations[relation].type === \"many-to-one\"\n || (relations[relation].type === \"one-to-one\" && relations[relation].joinColumn))\n //DO not check for a value of the relation here. Else If the first entity has no value set, the field\n // will not be set and therefore ignored for all other entites too\n ) {\n let fieldName;\n if (relations[relation].joinColumn && relations[relation].joinColumn.name) {\n fieldName = relations[relation].joinColumn.name;\n }\n else {\n fieldName = relation + \"Id\";\n }\n entity[fieldName] = entity[relation];\n }\n delete entity[relation];\n });\n Object.keys(columns).forEach(columnName => {\n if (columns[columnName].escapeHTML) {\n entity[columnName] = shared_1.XSSHelper.escapeHTML(entity[columnName]);\n }\n if (columns[columnName].escapeJS) {\n entity[columnName] = shared_1.XSSHelper.escapeJS(entity[columnName]);\n }\n });\n changedEntityIds.push(entity.id);\n });\n this._savePromise = this._savePromise.then(() => __awaiter(this, void 0, void 0, function* () { return yield this._insertOrReplace(modelClass, changedEntities); }));\n this._savePromise = this._savePromise.then(() => __awaiter(this, void 0, void 0, function* () { return yield this._deleteModels(modelClass, deletedModelsIds); }));\n this._finalRes[modelName] = shared_1.Helper.nonNull(this._finalRes[modelName], { \"deleted\": [], \"changed\": [] });\n this._finalRes[modelName][\"deleted\"].push(...deletedModelsIds);\n this._finalRes[modelName][\"changed\"].push(...changedEntityIds);\n }\n _buildRequestQuery(queries) {\n let requestQueries = [];\n //initializing query\n queries.forEach(query => {\n if (query.prototype instanceof EasySyncBaseModel_1.EasySyncBaseModel) {\n query = {\n model: query,\n where: {}\n };\n }\n query.model = query.model.getSchemaName();\n this._modelNames.push(query.model);\n requestQueries.push(query);\n let key = \"\" + query.model + JSON.stringify(query.where);\n if (shared_1.Helper.isNotNull(this._lastSyncDates[key])) {\n query[\"lastSynced\"] = this._lastSyncDates[key].getLastSynced();\n }\n });\n return requestQueries;\n }\n _getLastSyncModels(modelNames, requestQueries) {\n return __awaiter(this, void 0, void 0, function* () {\n //Load syncModels\n let lastSyncModelsArray = yield LastSyncDates_1.LastSyncDates.find({\n \"model\": typeorm.In(modelNames)\n });\n let lastSyncDates = shared_1.Helper.arrayToObject(lastSyncModelsArray, model => \"\" + model.getModel() + JSON.stringify(model.where));\n requestQueries.forEach(query => {\n let key = \"\" + query.model + JSON.stringify(query.where);\n if (shared_1.Helper.isNull(lastSyncDates[key])) {\n let lastSyncDate = new LastSyncDates_1.LastSyncDates();\n lastSyncDate.setModel(query.model);\n lastSyncDate.where = query.where;\n lastSyncDate.setLastSynced(0);\n lastSyncDates[key] = lastSyncDate;\n }\n query[\"lastSynced\"] = lastSyncDates[key].getLastSynced();\n });\n return lastSyncDates;\n });\n }\n static _fetchModel(query, offset) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield client_1.DataManager.load(SyncJob.SYNC_PATH_PREFIX +\n client_1.DataManager.buildQuery({\n \"queries\": JSON.stringify(query),\n \"offset\": offset\n }));\n });\n }\n _insertOrReplace(modelClass, changedEntities) {\n return __awaiter(this, void 0, void 0, function* () {\n const MAX_INSERT_IN_ONE_GO = 300;\n if (changedEntities.length === 0) {\n return;\n }\n let schemaDefinition = modelClass.getSchemaDefinition();\n let tableName = schemaDefinition.name;\n tableName = shared_1.Helper.toSnakeCase(tableName);\n let columns = schemaDefinition.columns;\n //Get fields from entity for including relation fields\n const fields = Object.keys(changedEntities[0]);\n let values = [];\n let valueStrings = [];\n yield shared_1.Helper.asyncForEach(changedEntities, (entity) => __awaiter(this, void 0, void 0, function* () {\n let valueString = [];\n //Stellt die reihenfolge sicher\n fields.forEach(field => {\n let val = entity[field];\n if (columns[field] && columns[field].transformer) {\n val = columns[field].transformer.to(val);\n }\n if (columns[field] && columns[field].type === BaseDatabase_1.BaseDatabase.TYPES.SIMPLE_JSON) {\n val = JSON.stringify(val);\n }\n values.push(val);\n valueString.push(\"?\");\n });\n valueStrings.push(\"(\" + valueString.join(\",\") + \")\");\n if (valueStrings.length >= MAX_INSERT_IN_ONE_GO) {\n let sql = \"INSERT OR REPLACE INTO \" + tableName + \" (\" + fields.join(\",\") + \") VALUES \" + valueStrings.join(\",\");\n yield this._queryRunner.query(sql, values);\n valueStrings = [];\n values = [];\n }\n }));\n if (valueStrings.length > 0) {\n let sql = \"INSERT OR REPLACE INTO \" + tableName + \" (\" + fields.join(\",\") + \") VALUES \" + valueStrings.join(\",\");\n yield this._queryRunner.query(sql, values);\n }\n });\n }\n _deleteModels(modelClass, deletedModelsIds) {\n return __awaiter(this, void 0, void 0, function* () {\n const MAX_DELETES_IN_ONE_GO = 300;\n if (deletedModelsIds.length === 0) {\n return;\n }\n let tableName = modelClass.getSchemaName();\n tableName = shared_1.Helper.toSnakeCase(tableName);\n let ids = [];\n let valueStrings = [];\n yield shared_1.Helper.asyncForEach(deletedModelsIds, (entityId) => __awaiter(this, void 0, void 0, function* () {\n ids.push(entityId);\n valueStrings.push(\"?\");\n if (valueStrings.length >= MAX_DELETES_IN_ONE_GO) {\n let sql = \"DELETE FROM \" + tableName + \" WHERE id IN (\" + ids.join(\",\") + \")\";\n yield this._queryRunner.query(sql);\n valueStrings = [];\n ids = [];\n }\n }));\n if (valueStrings.length > 0) {\n let sql = \"DELETE FROM \" + tableName + \" WHERE id IN (\" + ids.join(\",\") + \")\";\n yield this._queryRunner.query(sql);\n }\n });\n }\n _handleManyToManyRelations() {\n return __awaiter(this, void 0, void 0, function* () {\n yield this._savePromise;\n let promises = [];\n Object.keys(this._manyToManyRelations).forEach(table => {\n let sql = \"DELETE FROM \" + table + \" WHERE \";\n let deleteSqls = [];\n Object.keys(this._manyToManyRelations[table]).forEach(field => {\n if (field.startsWith(\"delete_\")) {\n deleteSqls.push(field.substr(7) + \" IN (\" + this._manyToManyRelations[table][field].join(\",\") + \")\");\n }\n });\n sql += deleteSqls.join(\" OR \") + \";\";\n promises.push(this._queryRunner.query(sql).then(() => {\n if (this._manyToManyRelations[table].values.length > 0) {\n let fields = Object.keys(this._manyToManyRelations[table].values[0]);\n let valueStrings = [];\n this._manyToManyRelations[table].values.forEach(valuePair => {\n let values = [];\n fields.forEach(field => {\n values.push(valuePair[field]);\n });\n valueStrings.push(\"(\" + values.join(\",\") + \")\");\n });\n let sql = \"INSERT OR REPLACE INTO \" + table + \"(\" + fields.join(\",\") + \") VALUES \" + valueStrings.join(\",\") + \";\";\n return this._queryRunner.query(sql);\n }\n }));\n });\n yield Promise.all(promises);\n });\n }\n}\nexports.SyncJob = SyncJob;\nSyncJob.SYNC_PATH_PREFIX = \"sync\";\n//# sourceMappingURL=SyncJob.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-easy-sync/dist/client/SyncJob.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-easy-sync/dist/client/SyncJob_old.js":
/*!*************************************************************************!*\
!*** ./node_modules/cordova-sites-easy-sync/dist/client/SyncJob_old.js ***!
\*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SyncJob_old = void 0;\nconst LastSyncDates_1 = __webpack_require__(/*! ./LastSyncDates */ \"./node_modules/cordova-sites-easy-sync/dist/client/LastSyncDates.js\");\nconst client_1 = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\nconst shared_1 = __webpack_require__(/*! js-helper/dist/shared */ \"./node_modules/js-helper/dist/shared.js\");\nconst EasySyncClientDb_1 = __webpack_require__(/*! ./EasySyncClientDb */ \"./node_modules/cordova-sites-easy-sync/dist/client/EasySyncClientDb.js\");\nconst typeorm = __webpack_require__(/*! typeorm */ \"./node_modules/typeorm/browser/index.js\");\nconst EasySyncPartialModel_1 = __webpack_require__(/*! ../shared/EasySyncPartialModel */ \"./node_modules/cordova-sites-easy-sync/dist/shared/EasySyncPartialModel.js\");\nconst EasySyncBaseModel_1 = __webpack_require__(/*! ../shared/EasySyncBaseModel */ \"./node_modules/cordova-sites-easy-sync/dist/shared/EasySyncBaseModel.js\");\nconst ClientFileMedium_1 = __webpack_require__(/*! ./ClientFileMedium */ \"./node_modules/cordova-sites-easy-sync/dist/client/ClientFileMedium.js\");\nclass SyncJob_old {\n constructor() {\n this._syncedModels = {};\n this._modelNames = [];\n this._relationshipModels = {};\n this._lastSyncDates = {};\n this._keyedModelClasses = {};\n this._savePromises = [];\n }\n syncInBackgroundIfDataExists(queries) {\n return __awaiter(this, void 0, void 0, function* () {\n this._keyedModelClasses = EasySyncClientDb_1.EasySyncClientDb.getModel();\n let copiedQuery = shared_1.JsonHelper.deepCopy(queries);\n let requestQueries = this._buildRequestQuery(copiedQuery);\n this._lastSyncDates = yield this._getLastSyncModels(this._modelNames, requestQueries);\n this._syncPromise = this.sync(queries);\n if (Object[\"values\"](this._lastSyncDates).some(lastSync => {\n return lastSync[\"getLastSynced\"]() === 0;\n })) {\n yield this._syncPromise;\n }\n });\n }\n getSyncPromise() {\n return __awaiter(this, void 0, void 0, function* () {\n return this._syncPromise;\n });\n }\n sync(queries) {\n return __awaiter(this, void 0, void 0, function* () {\n this._keyedModelClasses = EasySyncClientDb_1.EasySyncClientDb.getModel();\n let requestQueries = this._buildRequestQuery(queries);\n if (shared_1.Helper.isNull(this._lastSyncDates)) {\n this._lastSyncDates = yield this._getLastSyncModels(this._modelNames, requestQueries);\n }\n let saveResults = yield this._doRuns(requestQueries);\n yield this._handleRelations();\n //Save new lastSync models\n let lastSyncPromises = [];\n Object.keys(this._lastSyncDates).forEach(model => {\n lastSyncPromises.push(this._lastSyncDates[model].save());\n });\n yield Promise.all(lastSyncPromises);\n //Calculate final result and give it back\n let finalRes = {};\n saveResults.forEach(res => {\n if (res) {\n if (!finalRes[res.model]) {\n finalRes[res.model] = {\n \"deleted\": [],\n \"changed\": []\n };\n }\n if (res.deleted) {\n finalRes[res.model][\"deleted\"] = finalRes[res.model][\"deleted\"].concat(res.entities);\n }\n else {\n finalRes[res.model][\"changed\"] = finalRes[res.model][\"changed\"].concat(res.entities);\n }\n }\n });\n if (finalRes[\"FileMedium\"] && finalRes[\"FileMedium\"][\"changed\"]) {\n yield ClientFileMedium_1.ClientFileMedium._handleImages(finalRes[\"FileMedium\"][\"changed\"]);\n }\n return finalRes;\n });\n }\n _doRuns(requestQueries) {\n return __awaiter(this, void 0, void 0, function* () {\n //Initialize some variables\n let newLastSynced = null;\n let response = null;\n let offset = 0;\n let shouldAskAgain = false;\n //Ask for next run until no more runs needed\n do {\n shouldAskAgain = false;\n response = yield SyncJob_old._fetchModel(requestQueries, offset);\n offset = response[\"nextOffset\"];\n //Update newLastSynced\n if (shared_1.Helper.isNull(newLastSynced)) {\n newLastSynced = parseInt(response[\"newLastSynced\"]);\n Object.keys(this._lastSyncDates).forEach(key => {\n this._lastSyncDates[key].setLastSynced(newLastSynced);\n });\n }\n //create new request query\n let newRequestQueries = [];\n response.results.forEach((res, i) => {\n if (this._extractEntities(res)) {\n shouldAskAgain = true;\n newRequestQueries.push(requestQueries[i]);\n }\n });\n requestQueries = newRequestQueries;\n } while (shouldAskAgain);\n return Promise.all(this._savePromises);\n });\n }\n _handleRelations() {\n return __awaiter(this, void 0, void 0, function* () {\n let mergedRelations = {};\n let relationPromises = [];\n Object.keys(this._relationshipModels).forEach(modelClassName => {\n let relationDefinitions = this._keyedModelClasses[modelClassName].getRelationDefinitions();\n Object.keys(this._relationshipModels[modelClassName]).forEach(id => {\n let entity = this._relationshipModels[modelClassName][id][\"entity\"];\n let relations = this._relationshipModels[modelClassName][id][\"relations\"];\n let entityRelationPromises = [];\n Object.keys(relations).forEach(relation => {\n //foreach relation load other models and save them here\n let valuePromise = this._handleSingleRelation(relationDefinitions, relation, relations, mergedRelations, entity);\n entityRelationPromises.push(valuePromise.then(value => {\n entity[relation] = value;\n }));\n });\n //Save after all relationships has been set\n relationPromises.push(Promise.all(entityRelationPromises).then(() => {\n return entity.save(true);\n }));\n });\n });\n //Wait for relation-promises\n yield Promise.all(relationPromises);\n yield shared_1.Helper.asyncForEach(Object.keys(mergedRelations), (model) => __awaiter(this, void 0, void 0, function* () {\n let entities = shared_1.Helper.arrayToObject(yield this._keyedModelClasses[model].findByIds(Object.keys(mergedRelations[model]), this._keyedModelClasses[model].getRelations()), e => e.id);\n Object.keys(mergedRelations[model]).forEach(id => {\n if (entities[id]) {\n Object.keys(mergedRelations[model][id]).forEach(relation => {\n if (Array.isArray(mergedRelations[model][id][relation])) {\n entities[id][relation] = shared_1.Helper.nonNull(entities[id][relation], []);\n entities[id][relation].push.apply(entities[id][relation], mergedRelations[model][id][relation]);\n }\n else {\n entities[id][relation] = mergedRelations[model][id][relation];\n }\n });\n }\n });\n yield EasySyncClientDb_1.EasySyncClientDb.getInstance().saveEntity(Object.values(entities));\n }), true);\n });\n }\n _handleSingleRelation(relationDefinitions, relationName, relations, mergedRelations, entity) {\n let valuePromise = Promise.resolve(undefined);\n let target = relationDefinitions[relationName][\"target\"];\n let shouldSync = (relationDefinitions[relationName].sync !== false);\n //is relation a *-to-many relation?\n if (Array.isArray(relations[relationName])) {\n if (shouldSync || relations[relationName].every(id => !shared_1.Helper.isSet(this._syncedModels, target, id))) {\n valuePromise = this._keyedModelClasses[target].findByIds(relations[relationName]);\n }\n else {\n let targetRelationDefinition = this._keyedModelClasses[target].getRelationDefinitions()[relationDefinitions[relationName][\"inverseSide\"]];\n relations[relationName].filter(id => !shared_1.Helper.isSet(this._relationshipModels, target, id)).forEach(id => {\n mergedRelations[target] = shared_1.Helper.nonNull(mergedRelations[target], {});\n mergedRelations[target][id] = shared_1.Helper.nonNull(mergedRelations[target][id], {});\n let otherRelationValue = null;\n if (targetRelationDefinition.type === \"many-to-many\" || targetRelationDefinition.type === \"one-to-many\") {\n otherRelationValue = shared_1.Helper.nonNull(mergedRelations[target][id][relationDefinitions[relationName][\"inverseSide\"]], []);\n otherRelationValue.push(entity);\n }\n else {\n otherRelationValue = entity;\n }\n mergedRelations[target][id][relationDefinitions[relationName][\"inverseSide\"]] = otherRelationValue;\n });\n }\n }\n else if (shouldSync || !shared_1.Helper.isSet(this._syncedModels, target, relations[relationName])) {\n valuePromise = this._keyedModelClasses[target].findById(relations[relationName]);\n }\n return valuePromise;\n }\n /**\n * Extract the Entities and saves them(?) for one model\n *\n * @param modelRes\n * @private\n */\n _extractEntities(modelRes) {\n if (!modelRes) {\n return false;\n }\n let shouldAskAgain = false;\n let modelClass = this._keyedModelClasses[modelRes[\"model\"]];\n let modelName = modelClass.getSchemaName();\n let deletedModelsIds = [];\n let changedModels = [];\n //split result into deleted and changed/new entities\n modelRes[\"entities\"].forEach(entity => {\n if (entity.deleted) {\n deletedModelsIds.push(entity.id);\n }\n else {\n changedModels.push(entity);\n }\n });\n this._syncedModels[modelName] = shared_1.Helper.nonNull(this._syncedModels[modelName], {});\n //convert json to entity and save it\n this._savePromises.push(modelClass._fromJson(changedModels).then((changedEntities) => __awaiter(this, void 0, void 0, function* () {\n let relations = modelClass.getRelationDefinitions();\n let newIds = [];\n changedEntities.forEach(entity => {\n this._syncedModels[modelName][entity.id] = entity;\n newIds.push(entity.id);\n Object.keys(relations).forEach(relation => {\n if (entity[relation]) {\n this._addRelation(modelName, entity, relation);\n //clear relation\n entity[relation] = null;\n }\n });\n });\n //Handle partial Models (different ids on client than server)\n if (modelClass.prototype instanceof EasySyncPartialModel_1.EasySyncPartialModel) {\n let oldObjects = yield modelClass.findByIds(newIds);\n let keyedEntities = shared_1.Helper.arrayToObject(changedEntities, changedEntities => changedEntities.id);\n oldObjects.forEach(old => {\n keyedEntities[old.id].clientId = old.clientId;\n });\n }\n return EasySyncClientDb_1.EasySyncClientDb.getInstance().saveEntity(changedEntities).then(res => {\n return {\n \"model\": modelName,\n \"entities\": res,\n \"deleted\": false\n };\n }).catch(e => {\n console.error(e);\n return Promise.reject(e);\n });\n })));\n //Deletion of the entities\n this._savePromises.push(EasySyncClientDb_1.EasySyncClientDb.getInstance().deleteEntity(deletedModelsIds, modelClass).then(res => {\n return {\n \"model\": modelName,\n \"entities\": res,\n \"deleted\": true\n };\n }).catch(e => {\n console.error(e);\n return Promise.reject(e);\n }));\n if (modelRes.shouldAskAgain) {\n shouldAskAgain = true;\n }\n return shouldAskAgain;\n }\n _buildRequestQuery(queries) {\n let requestQueries = [];\n //initializing query\n queries.forEach(query => {\n if (query.prototype instanceof EasySyncBaseModel_1.EasySyncBaseModel) {\n query = {\n model: query,\n where: {}\n };\n }\n query.model = query.model.getSchemaName();\n this._modelNames.push(query.model);\n requestQueries.push(query);\n let key = \"\" + query.model + JSON.stringify(query.where);\n if (shared_1.Helper.isNotNull(this._lastSyncDates[key])) {\n query[\"lastSynced\"] = this._lastSyncDates[key].getLastSynced();\n }\n });\n return requestQueries;\n }\n _getLastSyncModels(modelNames, requestQueries) {\n return __awaiter(this, void 0, void 0, function* () {\n //Load syncModels\n let lastSyncModelsArray = yield LastSyncDates_1.LastSyncDates.find({\n \"model\": typeorm.In(modelNames)\n });\n let lastSyncDates = shared_1.Helper.arrayToObject(lastSyncModelsArray, model => \"\" + model.getModel() + JSON.stringify(model.where));\n requestQueries.forEach(query => {\n let key = \"\" + query.model + JSON.stringify(query.where);\n if (shared_1.Helper.isNull(lastSyncDates[key])) {\n let lastSyncDate = new LastSyncDates_1.LastSyncDates();\n lastSyncDate.setModel(query.model);\n lastSyncDate.where = query.where;\n lastSyncDate.setLastSynced(0);\n lastSyncDates[key] = lastSyncDate;\n }\n query[\"lastSynced\"] = lastSyncDates[key].getLastSynced();\n });\n return lastSyncDates;\n });\n }\n _addRelation(modelName, entity, relation) {\n this._relationshipModels[modelName] = shared_1.Helper.nonNull(this._relationshipModels[modelName], {});\n this._relationshipModels[modelName][entity.id] = shared_1.Helper.nonNull(this._relationshipModels[modelName][entity.id], {});\n this._relationshipModels[modelName][entity.id][\"entity\"] = entity;\n this._relationshipModels[modelName][entity.id][\"relations\"] = shared_1.Helper.nonNull(this._relationshipModels[modelName][entity.id][\"relations\"], {});\n this._relationshipModels[modelName][entity.id][\"relations\"][relation] = entity[relation];\n return this._relationshipModels;\n }\n static _fetchModel(query, offset) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield client_1.DataManager.load(SyncJob_old.SYNC_PATH_PREFIX +\n client_1.DataManager.buildQuery({\n \"queries\": JSON.stringify(query),\n \"offset\": offset\n }));\n });\n }\n}\nexports.SyncJob_old = SyncJob_old;\nSyncJob_old.SYNC_PATH_PREFIX = \"sync\";\n//# sourceMappingURL=SyncJob_old.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-easy-sync/dist/client/SyncJob_old.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-easy-sync/dist/client/editEntitySite/ModifyEntitySite.js":
/*!*********************************************************************************************!*\
!*** ./node_modules/cordova-sites-easy-sync/dist/client/editEntitySite/ModifyEntitySite.js ***!
\*********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ModifyEntitySite = void 0;\nconst MenuSite_1 = __webpack_require__(/*! cordova-sites/dist/client/js/Context/MenuSite */ \"./node_modules/cordova-sites/dist/client/js/Context/MenuSite.js\");\nconst Form_1 = __webpack_require__(/*! cordova-sites/dist/client/js/Form */ \"./node_modules/cordova-sites/dist/client/js/Form.js\");\nconst js_helper_1 = __webpack_require__(/*! js-helper */ \"./node_modules/js-helper/dist/shared.js\");\nconst EasySyncBaseModel_1 = __webpack_require__(/*! ../../shared/EasySyncBaseModel */ \"./node_modules/cordova-sites-easy-sync/dist/shared/EasySyncBaseModel.js\");\nclass ModifyEntitySite extends MenuSite_1.MenuSite {\n constructor(siteManager, view, model, menuTemplate) {\n super(siteManager, view, menuTemplate);\n this._formSelector = \".entity-form\";\n this._ckEditorConfig = {\n \".editor\": {\n toolbar: ['bold', 'italic', 'link', 'bulletedList', 'numberedList', 'blockQuote'],\n removePlugins: [\"Heading\", \"Image\", \"ImageCaption\", \"ImageStyle\", \"ImageToolbar\", \"ImageUpload\", \"Table\", \"TableToolbar\", \"MediaEmbed\", \"CKFinderUploadAdapter\"],\n language: \"de\"\n }\n };\n this._entity = null;\n this._model = model;\n }\n getEntityFromParameters(constructParameters) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!(this._model.prototype instanceof EasySyncBaseModel_1.EasySyncBaseModel)) {\n throw {\n \"error\": \"wrong class given! Expected EasySyncBaseModel, given \" + this._model.name\n };\n }\n let entity = null;\n if (js_helper_1.Helper.isSet(constructParameters, \"id\")) {\n entity = this._model.findById(constructParameters[\"id\"], this._model.getRelations());\n }\n if (js_helper_1.Helper.isNull(entity)) {\n entity = new this._model();\n }\n return entity;\n });\n }\n onConstruct(constructParameters) {\n const _super = Object.create(null, {\n onConstruct: { get: () => super.onConstruct }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onConstruct.call(this, constructParameters);\n let entity = yield this.getEntityFromParameters(constructParameters);\n if (entity !== null) {\n this.setEntity(entity);\n }\n return res;\n });\n }\n setEntity(entity) {\n return __awaiter(this, void 0, void 0, function* () {\n this._entity = entity;\n yield this._viewLoadedPromise;\n let values = yield this.dehydrate(this._entity);\n if (js_helper_1.Helper.isNotNull(values)) {\n yield this._form.setValues(values);\n }\n });\n }\n hydrate(values, entity) {\n return __awaiter(this, void 0, void 0, function* () {\n let schemaDefinition = entity.constructor.getSchemaDefinition();\n Object.keys(schemaDefinition.columns).forEach(column => {\n if (js_helper_1.Helper.isSet(values, column)) {\n entity[column] = values[column];\n }\n });\n return entity;\n });\n }\n dehydrate(entity) {\n return __awaiter(this, void 0, void 0, function* () {\n let values = {};\n let schemaDefinition = entity.constructor.getSchemaDefinition();\n Object.keys(schemaDefinition.columns).forEach(column => {\n if (js_helper_1.Helper.isSet(entity, column)) {\n values[column] = entity[column];\n }\n });\n return values;\n });\n }\n validate(values, form) {\n return __awaiter(this, void 0, void 0, function* () {\n return true;\n });\n }\n saveListener() {\n this.finish();\n }\n save(values) {\n return __awaiter(this, void 0, void 0, function* () {\n let entity = yield this.hydrate(values, this._entity);\n yield entity.save();\n });\n }\n onViewLoaded() {\n const _super = Object.create(null, {\n onViewLoaded: { get: () => super.onViewLoaded }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onViewLoaded.call(this);\n this._form = new Form_1.Form(this.findBy(this._formSelector), (values) => __awaiter(this, void 0, void 0, function* () {\n this.showLoadingSymbol();\n try {\n yield this.save(values);\n this.saveListener();\n }\n catch (e) {\n console.error(e);\n this._form.setErrors({ \"error\": e.message });\n }\n finally {\n this.removeLoadingSymbol();\n }\n }));\n if (js_helper_1.Helper.isNotNull(window[\"CKEditor\"])) {\n Object.keys(this._ckEditorConfig).forEach(selector => {\n this.findBy(selector, true).forEach((e) => __awaiter(this, void 0, void 0, function* () {\n this._form.addEditor(yield CKEditor.create(e, this._ckEditorConfig[selector]));\n }));\n });\n }\n this._form.addValidator((values) => __awaiter(this, void 0, void 0, function* () {\n return yield this.validate(values, this._form);\n }));\n return res;\n });\n }\n}\nexports.ModifyEntitySite = ModifyEntitySite;\n//# sourceMappingURL=ModifyEntitySite.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-easy-sync/dist/client/editEntitySite/ModifyEntitySite.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-easy-sync/dist/client/migration/SetupEasySync.js":
/*!*************************************************************************************!*\
!*** ./node_modules/cordova-sites-easy-sync/dist/client/migration/SetupEasySync.js ***!
\*************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SetupEasySync1000000000500 = void 0;\nconst typeorm_1 = __webpack_require__(/*! typeorm */ \"./node_modules/typeorm/browser/index.js\");\nconst cordova_sites_database_1 = __webpack_require__(/*! cordova-sites-database/dist/cordova-sites-database */ \"./node_modules/cordova-sites-database/dist/cordova-sites-database.js\");\nclass SetupEasySync1000000000500 {\n up(queryRunner) {\n return __awaiter(this, void 0, void 0, function* () {\n yield queryRunner.dropTable(\"last_sync_dates\", true);\n yield this._addLastSyncDates(queryRunner);\n });\n }\n _addLastSyncDates(queryRunner) {\n return __awaiter(this, void 0, void 0, function* () {\n let lastSyncDatesTable = new typeorm_1.Table({\n name: \"last_sync_dates\",\n columns: [\n {\n name: \"id\",\n type: \"Integer\",\n isPrimary: true,\n isGenerated: true,\n generationStrategy: \"increment\",\n },\n {\n name: \"model\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.STRING,\n isNullable: true\n },\n {\n name: \"lastSynced\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.DATE,\n isNullable: true\n },\n {\n name: \"where\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.TEXT,\n }\n ]\n });\n return yield queryRunner.createTable(lastSyncDatesTable, true);\n });\n }\n down(queryRunner) {\n return undefined;\n }\n}\nexports.SetupEasySync1000000000500 = SetupEasySync1000000000500;\n//# sourceMappingURL=SetupEasySync.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-easy-sync/dist/client/migration/SetupEasySync.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-easy-sync/dist/shared.js":
/*!*************************************************************!*\
!*** ./node_modules/cordova-sites-easy-sync/dist/shared.js ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(__webpack_require__(/*! ./shared/EasySyncBaseModel */ \"./node_modules/cordova-sites-easy-sync/dist/shared/EasySyncBaseModel.js\"), exports);\n__exportStar(__webpack_require__(/*! ./shared/EasySyncPartialModel */ \"./node_modules/cordova-sites-easy-sync/dist/shared/EasySyncPartialModel.js\"), exports);\n__exportStar(__webpack_require__(/*! ./shared/FileMedium */ \"./node_modules/cordova-sites-easy-sync/dist/shared/FileMedium.js\"), exports);\n//# sourceMappingURL=shared.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-easy-sync/dist/shared.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-easy-sync/dist/shared/EasySyncBaseModel.js":
/*!*******************************************************************************!*\
!*** ./node_modules/cordova-sites-easy-sync/dist/shared/EasySyncBaseModel.js ***!
\*******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EasySyncBaseModel = void 0;\nconst cordova_sites_database_1 = __webpack_require__(/*! cordova-sites-database/dist/cordova-sites-database */ \"./node_modules/cordova-sites-database/dist/cordova-sites-database.js\");\nconst shared_1 = __webpack_require__(/*! js-helper/dist/shared */ \"./node_modules/js-helper/dist/shared.js\");\nclass EasySyncBaseModel extends cordova_sites_database_1.BaseModel {\n constructor() {\n super();\n this._delegate = null;\n this.createdAt = new Date();\n this.updatedAt = new Date();\n this.version = 1;\n this.deleted = false;\n }\n toJSON(includeFull) {\n let relations = this.constructor.getRelationDefinitions();\n let columns = this.constructor.getColumnDefinitions();\n let obj = {};\n Object.keys(columns).forEach(attribute => {\n obj[attribute] = this[attribute];\n });\n Object.keys(relations).forEach(relationName => {\n if (includeFull === true) {\n obj[relationName] = this[relationName];\n }\n else {\n if (Array.isArray(this[relationName])) {\n let ids = [];\n this[relationName].forEach(child => (child && ids.push(child.id)));\n obj[relationName] = ids;\n }\n else if (this[relationName] instanceof cordova_sites_database_1.BaseModel) {\n obj[relationName] = this[relationName].id;\n }\n else {\n obj[relationName] = null;\n }\n }\n });\n return obj;\n }\n static getColumnDefinitions() {\n let columns = super.getColumnDefinitions();\n columns[\"createdAt\"] = {\n type: cordova_sites_database_1.BaseDatabase.TYPES.DATE\n };\n columns[\"updatedAt\"] = {\n type: cordova_sites_database_1.BaseDatabase.TYPES.DATE\n };\n columns[\"version\"] = {\n type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER\n };\n columns[\"deleted\"] = {\n type: cordova_sites_database_1.BaseDatabase.TYPES.BOOLEAN\n };\n return columns;\n }\n static _fromJson(jsonObjects, entities, includeRelations) {\n return __awaiter(this, void 0, void 0, function* () {\n entities = entities || [];\n let isArray = Array.isArray(jsonObjects);\n if (!isArray) {\n jsonObjects = [jsonObjects];\n }\n if (!Array.isArray(entities)) {\n entities = [entities];\n }\n let loadPromises = [];\n let addLoadPromises = [];\n jsonObjects.forEach((jsonObject, index) => {\n addLoadPromises.push(new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let entity = null;\n if (entities.length > index) {\n entity = entities[index];\n }\n else if (shared_1.Helper.isNotNull(jsonObject.id)) {\n entity = yield this.findById(jsonObject.id, this.getRelations());\n }\n if (entity === null) {\n entity = new this();\n }\n if (!jsonObject.version && jsonObject.version !== 0) {\n jsonObject.version = 1;\n }\n entities[index] = Object.assign(entity, jsonObject);\n this._handleColumns(entities[index]);\n this._handleRelations(entities[index], includeRelations, loadPromises);\n resolve();\n })));\n });\n //addLoadPromises adds other loadPromises. Therefore wait until done, then wait for other\n yield Promise.all(addLoadPromises);\n yield Promise.all(loadPromises);\n if (!isArray) {\n entities = (entities.length > 0) ? entities[0] : null;\n }\n return entities;\n });\n }\n static _handleRelations(entity, includeRelations, loadPromises) {\n let relations = this.getRelationDefinitions();\n Object.keys(relations).forEach(relationName => {\n let values = entity[relationName];\n if (typeof values === \"number\" || (Array.isArray(values) && values.length >= 1 && typeof values[0] === \"number\")) {\n if (includeRelations === true) {\n let loadPromise = null;\n if (Array.isArray(values)) {\n loadPromise = cordova_sites_database_1.BaseDatabase.getModel(relations[relationName].target).findByIds(values);\n }\n else {\n loadPromise = cordova_sites_database_1.BaseDatabase.getModel(relations[relationName].target).findById(values);\n }\n loadPromises.push(loadPromise.then(value => {\n entity[relationName] = value;\n }));\n }\n else if (includeRelations === false) {\n if (relations[relationName].type === \"many-to-many\" || relations[relationName].type === \"one-to-many\") {\n entity[relationName] = [];\n }\n else {\n entity[relationName] = null;\n }\n }\n }\n });\n }\n static _handleColumns(entity) {\n let schemaDefinition = this.getSchemaDefinition();\n let columns = schemaDefinition[\"columns\"];\n Object.keys(columns).forEach(columnName => {\n if (columns[columnName].escapeHTML) {\n entity[columnName] = shared_1.XSSHelper.escapeHTML(entity[columnName]);\n }\n if (columns[columnName].escapeJS) {\n entity[columnName] = shared_1.XSSHelper.escapeJS(entity[columnName]);\n }\n });\n }\n static prepareSync(entities) {\n return entities;\n }\n}\nexports.EasySyncBaseModel = EasySyncBaseModel;\nEasySyncBaseModel.delegateClass = null;\nEasySyncBaseModel.CAN_BE_SYNCED = true;\n//# sourceMappingURL=EasySyncBaseModel.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-easy-sync/dist/shared/EasySyncBaseModel.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-easy-sync/dist/shared/EasySyncPartialModel.js":
/*!**********************************************************************************!*\
!*** ./node_modules/cordova-sites-easy-sync/dist/shared/EasySyncPartialModel.js ***!
\**********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EasySyncPartialModel = void 0;\nconst EasySyncBaseModel_1 = __webpack_require__(/*! ./EasySyncBaseModel */ \"./node_modules/cordova-sites-easy-sync/dist/shared/EasySyncBaseModel.js\");\nconst _typeorm = __webpack_require__(/*! typeorm */ \"./node_modules/typeorm/browser/index.js\");\nconst Helper_1 = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nconst XSSHelper_1 = __webpack_require__(/*! js-helper/dist/shared/XSSHelper */ \"./node_modules/js-helper/dist/shared/XSSHelper.js\");\nconst cordova_sites_database_1 = __webpack_require__(/*! cordova-sites-database/dist/cordova-sites-database */ \"./node_modules/cordova-sites-database/dist/cordova-sites-database.js\");\nlet typeorm = _typeorm;\n// if (typeorm.default) {\n// typeorm = typeorm.default;\n// }\nclass EasySyncPartialModel extends EasySyncBaseModel_1.EasySyncBaseModel {\n static findByIds(ids, relations) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.find({\n \"id\": typeorm.In(ids)\n }, null, null, null, relations);\n });\n }\n static findById(id, relations) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.findOne({\n \"id\": id\n }, null, null, relations);\n });\n }\n static findByClientId(id, relations) {\n const _super = Object.create(null, {\n findById: { get: () => super.findById }\n });\n return __awaiter(this, void 0, void 0, function* () {\n return _super.findById.call(this, id, relations);\n });\n }\n static findByClientIds(ids, relations) {\n const _super = Object.create(null, {\n findById: { get: () => super.findById }\n });\n return __awaiter(this, void 0, void 0, function* () {\n return _super.findById.call(this, ids, relations);\n });\n }\n toJSON(includeFull) {\n let relations = this.constructor.getRelationDefinitions();\n let columns = this.constructor.getColumnDefinitions();\n let obj = {};\n Object.keys(columns).forEach(attribute => {\n if (attribute !== \"clientId\") {\n obj[attribute] = this[attribute];\n }\n });\n Object.keys(relations).forEach(relationName => {\n if (includeFull === true) {\n obj[relationName] = this[relationName];\n }\n else {\n if (Array.isArray(this[relationName])) {\n let ids = [];\n this[relationName].forEach(child => (child && ids.push(child.id)));\n obj[relationName] = ids;\n }\n else if (this[relationName] instanceof cordova_sites_database_1.BaseModel) {\n obj[relationName] = this[relationName].id;\n }\n else {\n obj[relationName] = null;\n }\n }\n });\n return obj;\n }\n static _fromJson(jsonObjects, entities, includeRelations) {\n return __awaiter(this, void 0, void 0, function* () {\n entities = entities || [];\n let isArray = Array.isArray(jsonObjects);\n if (!isArray) {\n jsonObjects = [jsonObjects];\n }\n if (!Array.isArray(entities)) {\n entities = [entities];\n }\n let loadPromises = [];\n let addLoadPromises = [];\n jsonObjects.forEach((jsonObject, index) => {\n addLoadPromises.push(new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let entity = null;\n if (entities.length > index) {\n entity = entities[index];\n }\n else if (Helper_1.Helper.isNotNull(jsonObject.id)) {\n entity = yield this.findById(jsonObject.id, this.getRelations());\n }\n if (entity === null) {\n entity = new this();\n }\n if (!jsonObject.version) {\n jsonObject.version = 1;\n }\n entities[index] = Object.assign(entity, jsonObject);\n this._handleColumns_(entities[index]);\n this._handleRelations_(entities[index], includeRelations, loadPromises);\n resolve();\n })));\n });\n //addLoadPromises adds other loadPromises. Therefore wait until done, then wait for other\n yield Promise.all(addLoadPromises);\n yield Promise.all(loadPromises);\n if (!isArray) {\n entities = (entities.length > 0) ? entities[0] : null;\n }\n return entities;\n });\n }\n static _handleRelations_(entity, includeRelations, loadPromises) {\n let relations = this.getRelationDefinitions();\n Object.keys(relations).forEach(relationName => {\n let values = entity[relationName];\n if (typeof values === \"number\" || (Array.isArray(values) && values.length >= 1 && typeof values[0] === \"number\")) {\n if (includeRelations === true) {\n let loadPromise = null;\n if (Array.isArray(values)) {\n loadPromise = cordova_sites_database_1.BaseDatabase.getModel(relations[relationName].target).findByIds(values);\n }\n else {\n loadPromise = cordova_sites_database_1.BaseDatabase.getModel(relations[relationName].target).findById(values);\n }\n loadPromises.push(loadPromise.then(value => {\n entity[relationName] = value;\n }));\n }\n else if (includeRelations === false) {\n if (relations[relationName].type === \"many-to-many\" || relations[relationName].type === \"one-to-many\") {\n entity[relationName] = [];\n }\n else {\n entity[relationName] = null;\n }\n }\n }\n });\n }\n static _handleColumns_(entity) {\n let schemaDefinition = this.getSchemaDefinition();\n let columns = schemaDefinition[\"columns\"];\n Object.keys(columns).forEach(columnName => {\n if (columns[columnName].escapeHTML) {\n entity[columnName] = XSSHelper_1.XSSHelper.escapeHTML(entity[columnName]);\n }\n if (columns[columnName].escapeJS) {\n entity[columnName] = XSSHelper_1.XSSHelper.escapeJS(entity[columnName]);\n }\n });\n }\n}\nexports.EasySyncPartialModel = EasySyncPartialModel;\nEasySyncPartialModel.CAN_BE_SYNCED = true;\n//# sourceMappingURL=EasySyncPartialModel.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-easy-sync/dist/shared/EasySyncPartialModel.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-easy-sync/dist/shared/FileMedium.js":
/*!************************************************************************!*\
!*** ./node_modules/cordova-sites-easy-sync/dist/shared/FileMedium.js ***!
\************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileMedium = void 0;\nconst EasySyncBaseModel_1 = __webpack_require__(/*! ./EasySyncBaseModel */ \"./node_modules/cordova-sites-easy-sync/dist/shared/EasySyncBaseModel.js\");\nconst BaseDatabase_1 = __webpack_require__(/*! cordova-sites-database/dist/BaseDatabase */ \"./node_modules/cordova-sites-database/dist/BaseDatabase.js\");\nconst Helper_1 = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nclass FileMedium extends EasySyncBaseModel_1.EasySyncBaseModel {\n constructor() {\n super(...arguments);\n this.saveOffline = true;\n this._isDownloaded = true;\n }\n static getColumnDefinitions() {\n let columns = super.getColumnDefinitions();\n columns[\"src\"] = BaseDatabase_1.BaseDatabase.TYPES.MEDIUMTEXT;\n columns[\"saveOffline\"] = { type: BaseDatabase_1.BaseDatabase.TYPES.BOOLEAN, default: 1 };\n return columns;\n }\n getServerUrl(appendDate) {\n appendDate = Helper_1.Helper.nonNull(appendDate, true);\n if (!this.src.startsWith(\"http\") && !this.src.startsWith(\"//\") && !this.src.startsWith(\"data\")) {\n let path = FileMedium.PUBLIC_PATH + this.src;\n if (appendDate) {\n path += \"?t=\" + new Date(this.updatedAt).getTime();\n }\n return path;\n }\n return this.src;\n }\n getUrl() {\n if (device.platform !== \"browser\" && this.saveOffline && this._isDownloaded && Helper_1.Helper.isNotNull(this.id) && !this.src.startsWith(\"data\") && !this.src.startsWith(\"http\")) {\n return \"cdvfile://localhost/persistent/\" + this.src;\n }\n else {\n return this.getServerUrl();\n }\n }\n toString() {\n console.warn(\"to string called on FileMedium. Only for dependency. Please look inside your sourcecode\");\n return this.getUrl();\n }\n}\nexports.FileMedium = FileMedium;\nFileMedium.PUBLIC_PATH = \"./\";\nFileMedium.SCHEMA_NAME = \"FileMedium\";\nBaseDatabase_1.BaseDatabase.addModel(FileMedium);\n//# sourceMappingURL=FileMedium.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-easy-sync/dist/shared/FileMedium.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client.js":
/*!*******************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client.js ***!
\*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(__webpack_require__(/*! ./client/js/Context/UserSite */ \"./node_modules/cordova-sites-user-management/dist/client/js/Context/UserSite.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Dialog/SelectUserDialog */ \"./node_modules/cordova-sites-user-management/dist/client/js/Dialog/SelectUserDialog.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/MenuAction/StartUserSiteMenuAction */ \"./node_modules/cordova-sites-user-management/dist/client/js/MenuAction/StartUserSiteMenuAction.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/MenuAction/UserMenuAction */ \"./node_modules/cordova-sites-user-management/dist/client/js/MenuAction/UserMenuAction.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/OfflineUserManager */ \"./node_modules/cordova-sites-user-management/dist/client/js/OfflineUserManager.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Site/ChangeUserSite */ \"./node_modules/cordova-sites-user-management/dist/client/js/Site/ChangeUserSite.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Site/ForgotPasswordSite */ \"./node_modules/cordova-sites-user-management/dist/client/js/Site/ForgotPasswordSite.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Site/LoginSite */ \"./node_modules/cordova-sites-user-management/dist/client/js/Site/LoginSite.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Site/NotAllowedSite */ \"./node_modules/cordova-sites-user-management/dist/client/js/Site/NotAllowedSite.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Site/RegistrationSite */ \"./node_modules/cordova-sites-user-management/dist/client/js/Site/RegistrationSite.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/UserManager */ \"./node_modules/cordova-sites-user-management/dist/client/js/UserManager.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/translationInit */ \"./node_modules/cordova-sites-user-management/dist/client/js/translationInit.js\"), exports);\n//# sourceMappingURL=client.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/html/dialog/selectUserDialog.html":
/*!**************************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/html/dialog/selectUserDialog.html ***!
\**************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/selectUserDialog.html\";\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/html/dialog/selectUserDialog.html?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/html/sites/changeUserSite.html":
/*!***********************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/html/sites/changeUserSite.html ***!
\***********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/changeUserSite.html\";\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/html/sites/changeUserSite.html?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/html/sites/forgotPasswordSite.html":
/*!***************************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/html/sites/forgotPasswordSite.html ***!
\***************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/forgotPasswordSite.html\";\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/html/sites/forgotPasswordSite.html?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/html/sites/loginSite.html":
/*!******************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/html/sites/loginSite.html ***!
\******************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/loginSite.html\";\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/html/sites/loginSite.html?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/html/sites/notAllowedSite.html":
/*!***********************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/html/sites/notAllowedSite.html ***!
\***********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/notAllowedSite.html\";\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/html/sites/notAllowedSite.html?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/html/sites/registrationSite.html":
/*!*************************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/html/sites/registrationSite.html ***!
\*************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/registrationSite.html\";\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/html/sites/registrationSite.html?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/js/Context/UserSite.js":
/*!***************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/js/Context/UserSite.js ***!
\***************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UserSite = void 0;\nconst shared_1 = __webpack_require__(/*! js-helper/dist/shared */ \"./node_modules/js-helper/dist/shared.js\");\nconst client_1 = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\nconst UserManager_1 = __webpack_require__(/*! ../UserManager */ \"./node_modules/cordova-sites-user-management/dist/client/js/UserManager.js\");\nconst LoginSite_1 = __webpack_require__(/*! ../Site/LoginSite */ \"./node_modules/cordova-sites-user-management/dist/client/js/Site/LoginSite.js\");\nconst NotAllowedSite_1 = __webpack_require__(/*! ../Site/NotAllowedSite */ \"./node_modules/cordova-sites-user-management/dist/client/js/Site/NotAllowedSite.js\");\nclass UserSite extends client_1.DelegateSite {\n constructor(site, access, allowOfflineAccess) {\n super(site);\n this._access = access;\n this._allowOfflineAccess = shared_1.Helper.nonNull(allowOfflineAccess, false);\n }\n onConstruct(constructParameters) {\n const _super = Object.create(null, {\n onConstruct: { get: () => super.onConstruct }\n });\n return __awaiter(this, void 0, void 0, function* () {\n yield UserManager_1.UserManager.getInstance().waitForGetMe();\n if (yield this._checkRights()) {\n let res = yield _super.onConstruct.call(this, constructParameters);\n UserManager_1.UserManager.getInstance().addLoginChangeCallback(() => __awaiter(this, void 0, void 0, function* () {\n yield this._checkRights();\n }), false);\n return res;\n }\n });\n }\n _checkRights() {\n return __awaiter(this, void 0, void 0, function* () {\n if (!(UserManager_1.UserManager.getInstance().hasAccess(this._access) || (this._allowOfflineAccess && (yield UserManager_1.UserManager.getInstance().hasOfflineAccess(this._access))))) {\n // if (this.isShowing() && !this.isDestroying()) {\n // await this.startSite(NotAllowedSite);\n // }\n if (UserManager_1.UserManager.getInstance().isOnline() && !UserManager_1.UserManager.getInstance().isLoggedIn() && !(this._site instanceof LoginSite_1.LoginSite)) {\n this.startSite(LoginSite_1.LoginSite, {\n deepLink: this._site._siteManager.getDeepLinkFor(this._site),\n args: this._site.getParameters()\n });\n }\n else if (this._site._siteManager.getCurrentSite() === this._site && !this.isDestroying()) {\n new client_1.Toast(\"wrong rights\").show();\n yield this.startSite(NotAllowedSite_1.NotAllowedSite);\n }\n if (!this.isDestroying()) {\n yield this.finish();\n }\n return false;\n }\n return true;\n });\n }\n onStart(args) {\n const _super = Object.create(null, {\n onStart: { get: () => super.onStart }\n });\n return __awaiter(this, void 0, void 0, function* () {\n if (yield this._checkRights()) {\n yield _super.onStart.call(this, args);\n }\n });\n }\n}\nexports.UserSite = UserSite;\n//# sourceMappingURL=UserSite.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/js/Context/UserSite.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/js/Dialog/SelectUserDialog.js":
/*!**********************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/js/Dialog/SelectUserDialog.js ***!
\**********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelectUserDialog = void 0;\nconst Dialog_1 = __webpack_require__(/*! cordova-sites/dist/client/js/Dialog/Dialog */ \"./node_modules/cordova-sites/dist/client/js/Dialog/Dialog.js\");\nconst ViewInflater_1 = __webpack_require__(/*! cordova-sites/dist/client/js/ViewInflater */ \"./node_modules/cordova-sites/dist/client/js/ViewInflater.js\");\nconst DataManager_1 = __webpack_require__(/*! cordova-sites/dist/client/js/DataManager */ \"./node_modules/cordova-sites/dist/client/js/DataManager.js\");\nconst ViewHelper_1 = __webpack_require__(/*! js-helper/dist/client/ViewHelper */ \"./node_modules/js-helper/dist/client/ViewHelper.js\");\nconst Helper_1 = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nconst view = __webpack_require__(/*! ../../html/dialog/selectUserDialog.html */ \"./node_modules/cordova-sites-user-management/dist/client/html/dialog/selectUserDialog.html\");\nclass SelectUserDialog extends Dialog_1.Dialog {\n constructor() {\n super(ViewInflater_1.ViewInflater.getInstance().load(view).then((view) => __awaiter(this, void 0, void 0, function* () {\n this._loadUserTimeout = null;\n this._usernameInput =\n view.querySelector(\"#username-input\");\n this._usernameInput.addEventListener(\"keydown\", () => {\n clearTimeout(this._loadUserTimeout);\n this._loadUserTimeout = setTimeout(() => __awaiter(this, void 0, void 0, function* () {\n yield this._loadUsers(this._usernameInput.value);\n }), 500);\n });\n this._userContainer = view.querySelector(\"#user-container\");\n this._userTemplate = view.querySelector(\"#user-template\");\n this._userTemplate.remove();\n this._userTemplate.removeAttribute(\"id\");\n this._loadUsers();\n return view;\n })), \"select user\");\n }\n _loadUsers(username) {\n return __awaiter(this, void 0, void 0, function* () {\n debugger;\n let res = yield DataManager_1.DataManager.load(\"user/listUsers\" + DataManager_1.DataManager.buildQuery({ username: Helper_1.Helper.nonNull(username, \"\") }));\n if (res[\"success\"]) {\n ViewHelper_1.ViewHelper.removeAllChildren(this._userContainer);\n let users = res[\"data\"];\n users.forEach(user => {\n let userElement = this._userTemplate.cloneNode(true);\n userElement.querySelector(\".name\").innerText = user.username;\n userElement.addEventListener(\"click\", () => {\n this._result = user;\n this.close();\n });\n this._userContainer.appendChild(userElement);\n });\n }\n });\n }\n}\nexports.SelectUserDialog = SelectUserDialog;\n//# sourceMappingURL=SelectUserDialog.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/js/Dialog/SelectUserDialog.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/js/MenuAction/StartUserSiteMenuAction.js":
/*!*********************************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/js/MenuAction/StartUserSiteMenuAction.js ***!
\*********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StartUserSiteMenuAction = void 0;\nconst UserMenuAction_1 = __webpack_require__(/*! ./UserMenuAction */ \"./node_modules/cordova-sites-user-management/dist/client/js/MenuAction/UserMenuAction.js\");\nconst client_1 = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\nclass StartUserSiteMenuAction extends UserMenuAction_1.UserMenuAction {\n constructor(name, access, site, showFor, order, icon) {\n super(name, access, () => {\n if (client_1.StartSiteMenuAction._app) {\n if (Array.isArray(site) && site.length >= 2) {\n client_1.StartSiteMenuAction._app.startSite(site[0], site[1]);\n }\n else {\n client_1.StartSiteMenuAction._app.startSite(site);\n }\n }\n }, showFor, order, icon);\n }\n}\nexports.StartUserSiteMenuAction = StartUserSiteMenuAction;\n//# sourceMappingURL=StartUserSiteMenuAction.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/js/MenuAction/StartUserSiteMenuAction.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/js/MenuAction/UserMenuAction.js":
/*!************************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/js/MenuAction/UserMenuAction.js ***!
\************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UserMenuAction = void 0;\nconst client_1 = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\nconst UserManager_1 = __webpack_require__(/*! ../UserManager */ \"./node_modules/cordova-sites-user-management/dist/client/js/UserManager.js\");\nconst Helper_1 = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nclass UserMenuAction extends client_1.MenuAction {\n constructor(name, access, action, showFor, order, icon) {\n super(name, action, showFor, order, icon);\n this._access = access;\n this._loginChangedCallbackId = UserManager_1.UserManager.getInstance().addLoginChangeCallback(() => {\n this.redraw();\n });\n }\n isVisible() {\n return (super.isVisible() && UserManager_1.UserManager.getInstance().hasAccess(this._access));\n }\n isActivated() {\n return (super.isActivated() && UserManager_1.UserManager.getInstance().hasAccess(this._access));\n }\n copy(action) {\n let copiedAction = Helper_1.Helper.nonNull(action, new UserMenuAction());\n copiedAction._access = this._access;\n return super.copy(copiedAction);\n }\n}\nexports.UserMenuAction = UserMenuAction;\n//# sourceMappingURL=UserMenuAction.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/js/MenuAction/UserMenuAction.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/js/OfflineUserManager.js":
/*!*****************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/js/OfflineUserManager.js ***!
\*****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OfflineUserManager = void 0;\nconst client_1 = __webpack_require__(/*! cordova-sites-easy-sync/dist/client */ \"./node_modules/cordova-sites-easy-sync/dist/client.js\");\nconst client_2 = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\nconst UserManager_1 = __webpack_require__(/*! ./UserManager */ \"./node_modules/cordova-sites-user-management/dist/client/js/UserManager.js\");\nconst Role_1 = __webpack_require__(/*! ../../shared/v1/model/Role */ \"./node_modules/cordova-sites-user-management/dist/shared/v1/model/Role.js\");\nconst User_1 = __webpack_require__(/*! ../../shared/v1/model/User */ \"./node_modules/cordova-sites-user-management/dist/shared/v1/model/User.js\");\nconst Helper_1 = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nclass OfflineUserManager extends UserManager_1.UserManager {\n constructor() {\n super();\n this._userData = {\n id: null,\n loggedIn: false,\n online: true,\n username: null,\n email: null,\n accesses: OfflineUserManager.LOGGED_OUT_ACCESSES,\n };\n }\n _doGetMe() {\n return __awaiter(this, void 0, void 0, function* () {\n let userId = yield client_2.NativeStoragePromise.getItem(\"user-manager-user-id\");\n if (Helper_1.Helper.isNotNull(userId)) {\n let user = yield User_1.User.findById(userId, User_1.User.getRelations());\n if (Helper_1.Helper.isNotNull(user) && user.activated && !user.blocked) {\n yield this._handleLoginFromUser(user);\n }\n }\n return this._userData;\n });\n }\n _handleLoginFromUser(user) {\n return __awaiter(this, void 0, void 0, function* () {\n let accesses = [];\n let roles = user.roles;\n let roleIds = [];\n roles.forEach(role => {\n roleIds.push(role.id);\n });\n roles = yield Role_1.Role.findByIds(roleIds, [\"accesses\"]);\n yield Helper_1.Helper.asyncForEach(roles, (role) => __awaiter(this, void 0, void 0, function* () {\n accesses.push(...yield this._getAccessesFromRole(role));\n }));\n let accessNames = [];\n accesses.forEach(access => {\n accessNames.push(access.name);\n });\n this._userData = {\n id: user.id,\n loggedIn: true,\n online: true,\n username: user.username,\n email: user.email,\n accesses: accessNames,\n };\n });\n }\n _doLogin(email, password, saveLogin) {\n return __awaiter(this, void 0, void 0, function* () {\n let user = yield User_1.User.findOne({\n \"email\": email,\n \"password\": this._hashPassword(password),\n \"activated\": true,\n \"blocked\": false,\n }, undefined, undefined, User_1.User.getRelations());\n if (user) {\n yield this._handleLoginFromUser(user);\n if (saveLogin) {\n yield client_2.NativeStoragePromise.setItem(\"user-manager-user-id\", user.id);\n }\n return true;\n }\n return false;\n });\n }\n _doLogout() {\n return __awaiter(this, void 0, void 0, function* () {\n this._userData = {\n id: null,\n loggedIn: false,\n online: true,\n username: null,\n email: null,\n accesses: OfflineUserManager.LOGGED_OUT_ACCESSES,\n };\n yield client_2.NativeStoragePromise.remove(\"user-manager-user-id\");\n return false;\n });\n }\n _getAccessesFromRole(role) {\n return __awaiter(this, void 0, void 0, function* () {\n let accesses = role.accesses;\n let repo = yield client_1.EasySyncClientDb.getInstance()._getRepository(Role_1.Role.getSchemaName());\n let parents = yield repo.createQueryBuilder(Role_1.Role.getSchemaName())\n .leftJoinAndSelect(Role_1.Role.getSchemaName() + '.accesses', \"access\")\n .leftJoinAndSelect(Role_1.Role.getSchemaName() + '.children', \"child\")\n .where('child.id = :id', { id: role.id })\n .getMany();\n yield Helper_1.Helper.asyncForEach(parents, (role) => __awaiter(this, void 0, void 0, function* () {\n let otherAccesses = yield this._getAccessesFromRole(role);\n accesses.push(...otherAccesses);\n }));\n return accesses;\n });\n }\n _doRegister(email, username, password) {\n return __awaiter(this, void 0, void 0, function* () {\n let errors = {};\n let users = yield Promise.all([\n User_1.User.findOne({ \"email\": email }),\n User_1.User.findOne({ \"username\": username }),\n ]);\n if (Helper_1.Helper.isNotNull(users[0])) {\n errors[\"email\"] = \"email is already in use.\";\n }\n if (Helper_1.Helper.isNotNull(users[1])) {\n errors[\"username\"] = \"username is already in use.\";\n }\n if (Object.keys(errors).length > 0) {\n return errors;\n }\n let user = new User_1.User();\n user.id = yield OfflineUserManager._getNewId();\n user.email = email;\n user.password = this._hashPassword(password);\n user.username = username;\n user.roles = OfflineUserManager.DEFAULT_ROLES;\n user.activated = true;\n yield user.save();\n // user.roles\n yield this.login(email, password);\n return user;\n });\n }\n static _getNewId() {\n return __awaiter(this, void 0, void 0, function* () {\n if (Helper_1.Helper.isNull(OfflineUserManager._lastId)) {\n let user = yield User_1.User.findOne(undefined, { \"id\": \"DESC\" });\n OfflineUserManager._lastId = user.id;\n }\n OfflineUserManager._lastId++;\n return OfflineUserManager._lastId;\n });\n }\n _hashPassword(pw) {\n return pw;\n }\n}\nexports.OfflineUserManager = OfflineUserManager;\nOfflineUserManager.LOGGED_OUT_ACCESSES = UserManager_1.UserManager.OFFLINE_ACCESSES;\nOfflineUserManager.DEFAULT_ROLES = [];\nOfflineUserManager._lastId = null;\n//# sourceMappingURL=OfflineUserManager.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/js/OfflineUserManager.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/js/Site/ChangeUserSite.js":
/*!******************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/js/Site/ChangeUserSite.js ***!
\******************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChangeUserSite = void 0;\nconst MenuSite_1 = __webpack_require__(/*! cordova-sites/dist/client/js/Context/MenuSite */ \"./node_modules/cordova-sites/dist/client/js/Context/MenuSite.js\");\nconst UserSite_1 = __webpack_require__(/*! ../Context/UserSite */ \"./node_modules/cordova-sites-user-management/dist/client/js/Context/UserSite.js\");\nconst Helper_1 = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nconst DataManager_1 = __webpack_require__(/*! cordova-sites/dist/client/js/DataManager */ \"./node_modules/cordova-sites/dist/client/js/DataManager.js\");\nconst client_1 = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\nconst ViewHelper_1 = __webpack_require__(/*! js-helper/dist/client/ViewHelper */ \"./node_modules/js-helper/dist/client/ViewHelper.js\");\nconst UserMenuAction_1 = __webpack_require__(/*! ../MenuAction/UserMenuAction */ \"./node_modules/cordova-sites-user-management/dist/client/js/MenuAction/UserMenuAction.js\");\nconst LoginSite_1 = __webpack_require__(/*! ./LoginSite */ \"./node_modules/cordova-sites-user-management/dist/client/js/Site/LoginSite.js\");\nconst SelectUserDialog_1 = __webpack_require__(/*! ../Dialog/SelectUserDialog */ \"./node_modules/cordova-sites-user-management/dist/client/js/Dialog/SelectUserDialog.js\");\nconst view = __webpack_require__(/*! ./../../html/sites/changeUserSite.html */ \"./node_modules/cordova-sites-user-management/dist/client/html/sites/changeUserSite.html\");\nclass ChangeUserSite extends MenuSite_1.MenuSite {\n constructor(siteManager) {\n super(siteManager, view);\n this.addDelegate(new UserSite_1.UserSite(this, ChangeUserSite.ACCESS));\n }\n onConstruct(constructParameters) {\n const _super = Object.create(null, {\n onConstruct: { get: () => super.onConstruct }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onConstruct.call(this, constructParameters);\n let data;\n if (Helper_1.Helper.isSet(constructParameters, \"id\")) {\n data = yield DataManager_1.DataManager.load(ChangeUserSite.LOAD_USER_INFOS_URL + DataManager_1.DataManager.buildQuery({ id: constructParameters[\"id\"] }));\n }\n if (!data || data.success !== true) {\n new client_1.Toast(data.message).show();\n this.finish();\n }\n this._roles = data.roles;\n this._userData = data.userData;\n return res;\n });\n }\n onViewLoaded() {\n const _super = Object.create(null, {\n onViewLoaded: { get: () => super.onViewLoaded }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onViewLoaded.call(this);\n this.findBy(\"#username\").innerText = this._userData.username;\n this._hasRoleContainer = this.findBy(\"#has-role-container\");\n this._availableRoleContainer = this.findBy(\"#available-role-container\");\n this._hasRoleTemplate = this.findBy(\"#has-role-template\");\n this._availableRoleTemplate = this.findBy(\"#available-role-template\");\n this._hasRoleTemplate.removeAttribute(\"id\");\n this._availableRoleTemplate.removeAttribute(\"id\");\n this._hasRoleTemplate.remove();\n this._availableRoleTemplate.remove();\n this.updateRoles();\n return res;\n });\n }\n updateRoles() {\n let userRoles = [];\n let availableRoles = [];\n this._roles.forEach(role => {\n if (this._userData.roleIds.indexOf(role.id) !== -1) {\n userRoles.push(role);\n }\n else {\n availableRoles.push(role);\n }\n });\n ViewHelper_1.ViewHelper.removeAllChildren(this._hasRoleContainer);\n userRoles.forEach((role, i) => {\n let elem = this._hasRoleTemplate.cloneNode(true);\n elem.querySelector(\".role-name\").innerText = role.name;\n elem.querySelector(\".remove-role\").addEventListener(\"click\", () => __awaiter(this, void 0, void 0, function* () {\n this.showLoadingSymbol();\n let res = yield DataManager_1.DataManager.send(ChangeUserSite.CHANGE_USER_ROLE_URL, {\n id: this._userData.id,\n roleId: role.id,\n addRole: false\n });\n if (res.success) {\n this._userData.roleIds.splice(this._userData.roleIds.indexOf(role.id), 1);\n this.updateRoles();\n }\n this.removeLoadingSymbol();\n }));\n this._hasRoleContainer.appendChild(elem);\n });\n ViewHelper_1.ViewHelper.removeAllChildren(this._availableRoleContainer);\n availableRoles.forEach(role => {\n let elem = this._availableRoleTemplate.cloneNode(true);\n elem.querySelector(\".role-name\").innerText = role.name;\n elem.querySelector(\".add-role\").addEventListener(\"click\", () => __awaiter(this, void 0, void 0, function* () {\n this.showLoadingSymbol();\n let res = yield DataManager_1.DataManager.send(ChangeUserSite.CHANGE_USER_ROLE_URL, {\n id: this._userData.id,\n roleId: role.id,\n addRole: true\n });\n if (res.success) {\n this._userData.roleIds.push(role.id);\n this.updateRoles();\n }\n this.removeLoadingSymbol();\n }));\n this._availableRoleContainer.appendChild(elem);\n });\n }\n}\nexports.ChangeUserSite = ChangeUserSite;\nChangeUserSite.ACCESS = \"admin\";\nChangeUserSite.LOAD_USER_INFOS_URL = \"/user/userRoles\";\nChangeUserSite.CHANGE_USER_ROLE_URL = \"/user/changeUserRole\";\nChangeUserSite.ADD_CHANGE_USER_ACTION = true;\nclient_1.App.addInitialization(app => {\n if (ChangeUserSite.ADD_CHANGE_USER_ACTION) {\n client_1.NavbarFragment.defaultActions.push(new UserMenuAction_1.UserMenuAction(\"change user\", ChangeUserSite.ACCESS, () => __awaiter(void 0, void 0, void 0, function* () {\n let user = yield new SelectUserDialog_1.SelectUserDialog().show();\n yield app.startSite(ChangeUserSite, { \"id\": user[\"id\"] });\n })));\n }\n app.addDeepLink(\"login\", LoginSite_1.LoginSite);\n});\n//# sourceMappingURL=ChangeUserSite.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/js/Site/ChangeUserSite.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/js/Site/ForgotPasswordSite.js":
/*!**********************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/js/Site/ForgotPasswordSite.js ***!
\**********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ForgotPasswordSite = void 0;\nconst UserSite_1 = __webpack_require__(/*! ../Context/UserSite */ \"./node_modules/cordova-sites-user-management/dist/client/js/Context/UserSite.js\");\nconst client_1 = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\nconst view = __webpack_require__(/*! ./../../html/sites/forgotPasswordSite.html */ \"./node_modules/cordova-sites-user-management/dist/client/html/sites/forgotPasswordSite.html\");\nconst UserManager_1 = __webpack_require__(/*! ../UserManager */ \"./node_modules/cordova-sites-user-management/dist/client/js/UserManager.js\");\nconst LoginSite_1 = __webpack_require__(/*! ./LoginSite */ \"./node_modules/cordova-sites-user-management/dist/client/js/Site/LoginSite.js\");\nclass ForgotPasswordSite extends client_1.MenuSite {\n constructor(siteManager) {\n super(siteManager, view);\n this.addDelegate(new UserSite_1.UserSite(this, LoginSite_1.LoginSite.ACCESS));\n }\n onConstruct(constructParameters) {\n const _super = Object.create(null, {\n onConstruct: { get: () => super.onConstruct }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onConstruct.call(this, constructParameters);\n if (client_1.Helper.isSet(constructParameters[\"t\"])) {\n this._token = constructParameters[\"t\"];\n }\n return res;\n });\n }\n onViewLoaded() {\n const _super = Object.create(null, {\n onViewLoaded: { get: () => super.onViewLoaded }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onViewLoaded.call(this);\n let form = new client_1.Form(this.findBy(\"#forgot-password-form\"), (data) => __awaiter(this, void 0, void 0, function* () {\n if (yield UserManager_1.UserManager.getInstance().sendForgotPasswordEmail(data[\"email\"])) {\n new client_1.Toast(\"forgot-password-mail sent\").show();\n yield this.finish();\n }\n else {\n form.setErrors({\n \"email\": \"email is not in our database\"\n });\n }\n }));\n let resetForm = new client_1.Form(this.findBy(\"#reset-password-form\"), (data) => __awaiter(this, void 0, void 0, function* () {\n if (yield UserManager_1.UserManager.getInstance().resetPassword(this._token, data[\"password1\"])) {\n new client_1.Toast(\"password resetted\").show();\n yield this.finish();\n }\n else {\n yield new client_1.Toast(\"token is not valid!\").show();\n }\n }));\n resetForm.addValidator(data => {\n let errors = {};\n let hasErrors = false;\n if (data[\"password1\"].trim() === \"\") {\n hasErrors = true;\n errors[\"password1\"] = \"no password set\";\n }\n if (data[\"password1\"] !== data[\"password2\"]) {\n hasErrors = true;\n errors[\"password2\"] = \"not equal to password1\";\n }\n if (hasErrors) {\n return errors;\n }\n else {\n return true;\n }\n });\n if (this._token) {\n this.findBy(\"#reset-password\").classList.remove(\"hidden\");\n this.findBy(\"#forgot-password\").classList.add(\"hidden\");\n }\n return res;\n });\n }\n}\nexports.ForgotPasswordSite = ForgotPasswordSite;\nclient_1.App.addInitialization(app => {\n app.addDeepLink(\"forgotPW\", ForgotPasswordSite);\n});\n//# sourceMappingURL=ForgotPasswordSite.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/js/Site/ForgotPasswordSite.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/js/Site/LoginSite.js":
/*!*************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/js/Site/LoginSite.js ***!
\*************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoginSite = void 0;\nconst UserSite_1 = __webpack_require__(/*! ../Context/UserSite */ \"./node_modules/cordova-sites-user-management/dist/client/js/Context/UserSite.js\");\nconst client_1 = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\nconst view = __webpack_require__(/*! ./../../html/sites/loginSite.html */ \"./node_modules/cordova-sites-user-management/dist/client/html/sites/loginSite.html\");\nconst StartUserSiteMenuAction_1 = __webpack_require__(/*! ../MenuAction/StartUserSiteMenuAction */ \"./node_modules/cordova-sites-user-management/dist/client/js/MenuAction/StartUserSiteMenuAction.js\");\nconst UserManager_1 = __webpack_require__(/*! ../UserManager */ \"./node_modules/cordova-sites-user-management/dist/client/js/UserManager.js\");\nconst UserMenuAction_1 = __webpack_require__(/*! ../MenuAction/UserMenuAction */ \"./node_modules/cordova-sites-user-management/dist/client/js/MenuAction/UserMenuAction.js\");\nconst ForgotPasswordSite_1 = __webpack_require__(/*! ./ForgotPasswordSite */ \"./node_modules/cordova-sites-user-management/dist/client/js/Site/ForgotPasswordSite.js\");\nclass LoginSite extends client_1.MenuSite {\n constructor(siteManager) {\n super(siteManager, view);\n this.addDelegate(new UserSite_1.UserSite(this, LoginSite.ACCESS));\n }\n onViewLoaded() {\n const _super = Object.create(null, {\n onViewLoaded: { get: () => super.onViewLoaded }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onViewLoaded.call(this);\n let form = new client_1.Form(this.findBy(\"#login-form\"), (data) => __awaiter(this, void 0, void 0, function* () {\n // await this.showLoadingSymbol();\n if (yield UserManager_1.UserManager.getInstance().login(data[\"email\"], data[\"password\"], client_1.Helper.isNotNull(data[\"saveLogin\"]))) {\n new client_1.Toast(\"welcome back\").show();\n yield this.finish();\n }\n else {\n form.setErrors({\n \"email\": \"email or password is wrong\"\n });\n // await this.removeLoadingSymbol();\n }\n }));\n let listener = () => form.clearErrors();\n this.findBy(\"#login-form [name=email]\").addEventListener(\"keydown\", listener);\n this.findBy(\"#login-form [name=password]\").addEventListener(\"keydown\", listener);\n this.findBy(\"#forgot-pw\").addEventListener(\"click\", () => __awaiter(this, void 0, void 0, function* () {\n this.startSite(ForgotPasswordSite_1.ForgotPasswordSite);\n }));\n return res;\n });\n }\n}\nexports.LoginSite = LoginSite;\nLoginSite.ACCESS = \"loggedOut\";\nLoginSite.LOGOUT_ACCESS = \"loggedIn\";\nLoginSite.ADD_LOGIN_ACTION = true;\nLoginSite.ADD_LOGOUT_ACTION = true;\nclient_1.App.addInitialization(app => {\n if (LoginSite.ADD_LOGIN_ACTION) {\n client_1.NavbarFragment.defaultActions.push(new StartUserSiteMenuAction_1.StartUserSiteMenuAction(\"login\", LoginSite.ACCESS, LoginSite));\n }\n if (LoginSite.ADD_LOGOUT_ACTION) {\n client_1.NavbarFragment.defaultActions.push(new UserMenuAction_1.UserMenuAction(\"logout\", LoginSite.LOGOUT_ACCESS, () => __awaiter(void 0, void 0, void 0, function* () {\n yield UserManager_1.UserManager.getInstance().logout();\n })));\n }\n app.addDeepLink(\"login\", LoginSite);\n});\n//# sourceMappingURL=LoginSite.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/js/Site/LoginSite.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/js/Site/NotAllowedSite.js":
/*!******************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/js/Site/NotAllowedSite.js ***!
\******************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NotAllowedSite = void 0;\nconst MenuSite_1 = __webpack_require__(/*! cordova-sites/dist/client/js/Context/MenuSite */ \"./node_modules/cordova-sites/dist/client/js/Context/MenuSite.js\");\nconst view = __webpack_require__(/*! ./../../html/sites/notAllowedSite.html */ \"./node_modules/cordova-sites-user-management/dist/client/html/sites/notAllowedSite.html\");\nclass NotAllowedSite extends MenuSite_1.MenuSite {\n constructor(siteManager) {\n super(siteManager, view);\n }\n onConstruct(constructParameters) {\n return super.onConstruct(constructParameters);\n }\n onCreateMenu(navbar) {\n return super.onCreateMenu(navbar);\n }\n onPause() {\n const _super = Object.create(null, {\n onPause: { get: () => super.onPause }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onPause.call(this);\n yield this.finish();\n return res;\n });\n }\n}\nexports.NotAllowedSite = NotAllowedSite;\n//# sourceMappingURL=NotAllowedSite.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/js/Site/NotAllowedSite.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/js/Site/RegistrationSite.js":
/*!********************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/js/Site/RegistrationSite.js ***!
\********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RegistrationSite = void 0;\nconst client_1 = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\nconst view = __webpack_require__(/*! ./../../html/sites/registrationSite.html */ \"./node_modules/cordova-sites-user-management/dist/client/html/sites/registrationSite.html\");\nconst UserSite_1 = __webpack_require__(/*! ../Context/UserSite */ \"./node_modules/cordova-sites-user-management/dist/client/js/Context/UserSite.js\");\nconst StartUserSiteMenuAction_1 = __webpack_require__(/*! ../MenuAction/StartUserSiteMenuAction */ \"./node_modules/cordova-sites-user-management/dist/client/js/MenuAction/StartUserSiteMenuAction.js\");\nconst UserManager_1 = __webpack_require__(/*! ../UserManager */ \"./node_modules/cordova-sites-user-management/dist/client/js/UserManager.js\");\nconst User_1 = __webpack_require__(/*! ../../../shared/v1/model/User */ \"./node_modules/cordova-sites-user-management/dist/shared/v1/model/User.js\");\nclass RegistrationSite extends client_1.MenuSite {\n constructor(siteManager) {\n super(siteManager, view);\n this.addDelegate(new UserSite_1.UserSite(this, RegistrationSite.ACCESS));\n }\n onViewLoaded() {\n const _super = Object.create(null, {\n onViewLoaded: { get: () => super.onViewLoaded }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onViewLoaded.call(this);\n let form = new client_1.Form(this.findBy(\"#registration-form\"), (data) => __awaiter(this, void 0, void 0, function* () {\n let result = yield UserManager_1.UserManager.getInstance().register(data[\"email\"], data[\"username\"], data[\"password\"]);\n if ((result instanceof User_1.User) || result === true) {\n yield new client_1.Toast(\"registration successful\").show();\n yield this.finish();\n }\n else {\n yield form.setErrors(result);\n }\n }));\n form.addValidator(data => {\n if (data[\"password\"] !== data[\"password2\"]) {\n return {\n \"password2\": \"the passwords do not match.\"\n };\n }\n return true;\n });\n // let listener = () => form.clearErrors();\n // this.findBy(\"#login-form [name=email]\").addEventListener(\"keydown\", listener);\n // this.findBy(\"#login-form [name=password]\").addEventListener(\"keydown\", listener);\n return res;\n });\n }\n}\nexports.RegistrationSite = RegistrationSite;\nRegistrationSite.ACCESS = \"loggedOut\";\nRegistrationSite.ADD_REGISTRATION_ACTION = true;\nclient_1.App.addInitialization(app => {\n if (RegistrationSite.ADD_REGISTRATION_ACTION) {\n client_1.NavbarFragment.defaultActions.push(new StartUserSiteMenuAction_1.StartUserSiteMenuAction(\"registration\", RegistrationSite.ACCESS, RegistrationSite));\n }\n app.addDeepLink(\"registration\", RegistrationSite);\n});\n//# sourceMappingURL=RegistrationSite.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/js/Site/RegistrationSite.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/js/UserManager.js":
/*!**********************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/js/UserManager.js ***!
\**********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UserManager = void 0;\nconst client_1 = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\nconst User_1 = __webpack_require__(/*! ../../shared/v1/model/User */ \"./node_modules/cordova-sites-user-management/dist/shared/v1/model/User.js\");\nclass UserManager {\n constructor() {\n this._defaultUserData = {\n id: null,\n loggedIn: false,\n online: false,\n username: null,\n email: null,\n accesses: UserManager.OFFLINE_ACCESSES,\n };\n this._userData = this._defaultUserData;\n this._lastLoginChangeCallbackId = -1;\n this._loginChangeCallbacks = {};\n this._getMePromise = null;\n }\n addLoginChangeCallback(callback, callImmediately) {\n this._lastLoginChangeCallbackId++;\n this._loginChangeCallbacks[this._lastLoginChangeCallbackId] = callback;\n if (client_1.Helper.nonNull(callImmediately, false)) {\n callback(this._userData.loggedIn, this);\n }\n return this._lastLoginChangeCallbackId;\n }\n hasAccess(access) {\n return (this._userData.accesses.indexOf(access) !== -1);\n }\n _checkChangedLogin(before) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._userData.loggedIn !== before.loggedIn || (this._userData.loggedIn === true && this._userData.id !== before.id)) {\n yield this._callLoginChangeCallbacks();\n }\n });\n }\n _callLoginChangeCallbacks() {\n return __awaiter(this, void 0, void 0, function* () {\n yield client_1.Helper.asyncForEach(Object.keys(this._loginChangeCallbacks), callbackId => {\n this._loginChangeCallbacks[callbackId](this._userData.loggedIn, this);\n }, true);\n });\n }\n getUserData() {\n return this._userData;\n }\n getMe() {\n return __awaiter(this, void 0, void 0, function* () {\n this._getMePromise = new Promise((r) => __awaiter(this, void 0, void 0, function* () {\n let before = this._userData;\n let res = yield this._doGetMe();\n yield this._checkChangedLogin(before);\n r(res);\n }));\n return this._getMePromise;\n });\n }\n waitForGetMe() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._getMePromise === null) {\n this.getMe();\n }\n yield this._getMePromise;\n });\n }\n login(email, password, saveLogin) {\n return __awaiter(this, void 0, void 0, function* () {\n let before = this._userData;\n let res = yield this._doLogin(email, password, saveLogin);\n //do it after the result is returned\n setTimeout(() => {\n this._checkChangedLogin(before);\n }, 1);\n return res;\n });\n }\n logout() {\n return __awaiter(this, void 0, void 0, function* () {\n let before = this._userData;\n let res = yield this._doLogout();\n yield this._checkChangedLogin(before);\n if (!this._userData.loggedIn) {\n yield new client_1.Toast(\"goodbye\").show();\n }\n return res;\n });\n }\n register(email, username, password) {\n return __awaiter(this, void 0, void 0, function* () {\n let before = this._userData;\n let res = yield this._doRegister(email, username, password);\n yield this._checkChangedLogin(before);\n return res;\n });\n }\n _doGetMe() {\n return __awaiter(this, void 0, void 0, function* () {\n yield UserManager.updateHeaders();\n let data = yield client_1.DataManager.load(\"user\");\n if (client_1.Helper.isSet(data, \"userData\")) {\n yield client_1.NativeStoragePromise.setItem(\"user-data\", data.userData);\n this._userData = data.userData;\n }\n else {\n this._userData = this._defaultUserData;\n }\n this._updateAccessClasses();\n if (client_1.Helper.isSet(data, \"token\")) {\n client_1.DataManager.setHeader(\"Authorization\", \"Bearer \" + data.token);\n sessionStorage.setItem(\"auth-token\", data.token);\n if (client_1.Helper.isNotNull(yield client_1.NativeStoragePromise.getItem(\"auth-token\"))) {\n yield client_1.NativeStoragePromise.setItem(\"auth-token\", data.token);\n }\n }\n });\n }\n _doLogin(email, password, saveLogin) {\n return __awaiter(this, void 0, void 0, function* () {\n let data = yield client_1.DataManager.send(\"user/login\", {\n \"email\": email,\n \"password\": password\n });\n if (data.success) {\n client_1.DataManager.setHeader(\"Authorization\", \"Bearer \" + data.token);\n sessionStorage.setItem(\"auth-token\", data.token);\n yield this._doGetMe();\n if (saveLogin) {\n yield client_1.NativeStoragePromise.setItem(\"auth-token\", data.token);\n }\n return true;\n }\n else {\n client_1.DataManager.setHeader(\"Authorization\", \"\");\n sessionStorage.setItem(\"auth-token\", \"\");\n yield client_1.NativeStoragePromise.setItem(\"auth-token\", \"\");\n yield new client_1.Toast(data.message).show();\n return false;\n }\n });\n }\n _doLogout() {\n return __awaiter(this, void 0, void 0, function* () {\n client_1.DataManager.setHeader(\"Authorization\", \"\");\n sessionStorage.setItem(\"auth-token\", \"\");\n yield client_1.NativeStoragePromise.setItem(\"auth-token\", \"\");\n yield this._doGetMe();\n return true;\n });\n }\n _doRegister(email, username, password) {\n return __awaiter(this, void 0, void 0, function* () {\n let data = yield client_1.DataManager.send(\"user/register\", {\n \"email\": email,\n \"username\": username,\n \"password\": password\n });\n if (data.success) {\n client_1.DataManager.setHeader(\"Authorization\", \"Bearer \" + data.token);\n sessionStorage.setItem(\"auth-token\", data.token);\n yield this._doGetMe();\n return true;\n }\n else {\n client_1.DataManager.setHeader(\"Authorization\", \"\");\n sessionStorage.setItem(\"auth-token\", \"\");\n yield client_1.NativeStoragePromise.setItem(\"auth-token\", \"\");\n yield new client_1.Toast(data.message).show();\n return false;\n }\n });\n }\n /**\n * @returns {UserManager}\n */\n static getInstance() {\n if (!UserManager._instance) {\n UserManager._instance = new UserManager();\n }\n return UserManager._instance;\n }\n static updateHeaders() {\n return __awaiter(this, void 0, void 0, function* () {\n let token = client_1.Helper.nonNull(sessionStorage.getItem(\"auth-token\"), yield client_1.NativeStoragePromise.getItem(\"auth-token\"));\n if (token) {\n client_1.DataManager.setHeader(\"Authorization\", \"Bearer \" + token);\n }\n });\n }\n _updateAccessClasses() {\n document.body.classList.forEach(cl => {\n if (cl.startsWith(UserManager.ACCESS_CLASS_PREFIX)) {\n document.body.classList.remove(cl);\n }\n });\n this._userData.accesses.forEach(access => {\n document.body.classList.add(UserManager.ACCESS_CLASS_PREFIX + access);\n });\n }\n hasOfflineAccess(access) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.isOnline()) {\n return false;\n }\n let offlineData = client_1.Helper.nonNull(yield client_1.NativeStoragePromise.getItem(\"user-data\"), { accesses: UserManager.OFFLINE_ACCESSES });\n return (offlineData.accesses.indexOf(access) !== -1);\n });\n }\n sendForgotPasswordEmail(email) {\n return __awaiter(this, void 0, void 0, function* () {\n let data = yield client_1.DataManager.send(\"user/forgotPW\", { email: email });\n return data.success;\n });\n }\n resetPassword(token, password) {\n return __awaiter(this, void 0, void 0, function* () {\n let data = yield client_1.DataManager.send(\"user/forgotPW/2\", { token: token, password: password });\n return data.success;\n });\n }\n isOnline() {\n return this._userData.online;\n }\n isLoggedIn() {\n return this._userData.loggedIn;\n }\n static syncParamFor(model) {\n return {\n model: model,\n where: {\n user: { id: this.getInstance().getUserData().id }\n }\n };\n }\n static userSyncParam() {\n return {\n model: User_1.User,\n where: {\n id: this.getInstance().getUserData().id\n }\n };\n }\n}\nexports.UserManager = UserManager;\nUserManager.ACCESS_CLASS_PREFIX = \"access-\";\nUserManager.OFFLINE_ACCESSES = [\n \"offline\"\n];\n//# sourceMappingURL=UserManager.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/js/UserManager.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/js/translationInit.js":
/*!**************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/js/translationInit.js ***!
\**************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst client_1 = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\nconst shared_1 = __webpack_require__(/*! cordova-sites/dist/shared */ \"./node_modules/cordova-sites/dist/shared.js\");\nconst deTranslations = __webpack_require__(/*! ../translations/de */ \"./node_modules/cordova-sites-user-management/dist/client/translations/de.json\");\nconst enTranslations = __webpack_require__(/*! ../translations/en */ \"./node_modules/cordova-sites-user-management/dist/client/translations/en.json\");\nclient_1.App.addInitialization(() => {\n shared_1.Translator.addDynamicTranslations({\n \"de\": deTranslations,\n \"en\": enTranslations\n });\n});\n//# sourceMappingURL=translationInit.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/js/translationInit.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/translations/de.json":
/*!*************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/translations/de.json ***!
\*************************************************************************************/
/*! exports provided: login, logout, email, password, email or password is wrong, stay logged in, goodbye, welcome back, registration successful, registration, I have read and accepted the terms and conditions., retype password, the passwords do not match., username, email is already in use., username is already in use., wrong email or password, wrong rights, passwort vergessen?, password forgotten, request new password, email is not in our database, forgot-password-mail sent, password resetted, token is not valid, reset password, repeat password, token not valid, Not allowed, You don't have the rights to do this!, If you are not logged in, please log in and try again., default */
/***/ (function(module) {
eval("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.\\\"}\");\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/translations/de.json?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/client/translations/en.json":
/*!*************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/client/translations/en.json ***!
\*************************************************************************************/
/*! exports provided: login, logout, email, password, email or password is wrong, stay logged in, goodbye, welcome back, registration successful, registration, I have read and accepted the terms and conditions., retype password, the passwords do not match., username, email is already in use., username is already in use., wrong email or password, wrong rights, passwort vergessen?, password forgotten, request new password, email is not in our database, forgot-password-mail sent, password resetted, token is not valid, reset password, repeat password, token not valid, Not allowed, You don't have the rights to do this!, If you are not logged in, please log in and try again., default */
/***/ (function(module) {
eval("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.\\\"}\");\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/client/translations/en.json?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/shared.js":
/*!*******************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/shared.js ***!
\*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(__webpack_require__(/*! ./shared/migrations/DeleteUserManagement */ \"./node_modules/cordova-sites-user-management/dist/shared/migrations/DeleteUserManagement.js\"), exports);\n__exportStar(__webpack_require__(/*! ./shared/migrations/SetupUserManagement */ \"./node_modules/cordova-sites-user-management/dist/shared/migrations/SetupUserManagement.js\"), exports);\n__exportStar(__webpack_require__(/*! ./shared/v1/model/Access */ \"./node_modules/cordova-sites-user-management/dist/shared/v1/model/Access.js\"), exports);\n__exportStar(__webpack_require__(/*! ./shared/v1/model/AccessEasySyncModel */ \"./node_modules/cordova-sites-user-management/dist/shared/v1/model/AccessEasySyncModel.js\"), exports);\n__exportStar(__webpack_require__(/*! ./shared/v1/model/Role */ \"./node_modules/cordova-sites-user-management/dist/shared/v1/model/Role.js\"), exports);\n__exportStar(__webpack_require__(/*! ./shared/v1/model/User */ \"./node_modules/cordova-sites-user-management/dist/shared/v1/model/User.js\"), exports);\n__exportStar(__webpack_require__(/*! ./shared/v1/model/UserSyncModel */ \"./node_modules/cordova-sites-user-management/dist/shared/v1/model/UserSyncModel.js\"), exports);\n__exportStar(__webpack_require__(/*! ./shared/v1/model/UserSyncPartialModel */ \"./node_modules/cordova-sites-user-management/dist/shared/v1/model/UserSyncPartialModel.js\"), exports);\n//# sourceMappingURL=shared.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/shared.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/shared/migrations/DeleteUserManagement.js":
/*!***************************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/shared/migrations/DeleteUserManagement.js ***!
\***************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteUserManagement1000000000000 = void 0;\nclass DeleteUserManagement1000000000000 {\n _isServer() {\n return (typeof document !== \"object\");\n }\n up(queryRunner) {\n return __awaiter(this, void 0, void 0, function* () {\n yield queryRunner.dropTable(\"roleAccess\", true);\n yield queryRunner.dropTable(\"roleChildren\", true);\n yield queryRunner.dropTable(\"userRole\", true);\n if (this._isServer()) {\n yield queryRunner.dropTable(\"user_access\", true);\n }\n yield queryRunner.dropTable(\"access\", true);\n yield queryRunner.dropTable(\"role\", true);\n yield queryRunner.dropTable(\"user\", true);\n });\n }\n down(queryRunner) {\n return undefined;\n }\n}\nexports.DeleteUserManagement1000000000000 = DeleteUserManagement1000000000000;\n//# sourceMappingURL=DeleteUserManagement.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/shared/migrations/DeleteUserManagement.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/shared/migrations/SetupUserManagement.js":
/*!**************************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/shared/migrations/SetupUserManagement.js ***!
\**************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SetupUserManagement1000000001000 = void 0;\nconst typeorm_1 = __webpack_require__(/*! typeorm */ \"./node_modules/typeorm/browser/index.js\");\nconst cordova_sites_database_1 = __webpack_require__(/*! cordova-sites-database/dist/cordova-sites-database */ \"./node_modules/cordova-sites-database/dist/cordova-sites-database.js\");\nclass SetupUserManagement1000000001000 {\n _isServer() {\n return (typeof document !== \"object\");\n }\n up(queryRunner) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this._addAccess(queryRunner);\n yield this._addRole(queryRunner);\n yield this._addUser(queryRunner);\n yield this._addRoleAccess(queryRunner);\n yield this._addRoleChildren(queryRunner);\n yield this._addUserRole(queryRunner);\n if (this._isServer()) {\n yield this._addUserAccess(queryRunner);\n }\n });\n }\n _addAccess(queryRunner) {\n return __awaiter(this, void 0, void 0, function* () {\n let accessTable = new typeorm_1.Table({\n name: \"access\",\n columns: [\n {\n name: \"id\",\n isPrimary: true,\n type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER,\n isGenerated: this._isServer(),\n generationStrategy: \"increment\"\n },\n {\n name: \"createdAt\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.DATE,\n },\n {\n name: \"updatedAt\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.DATE,\n },\n {\n name: \"version\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER,\n },\n {\n name: \"deleted\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.BOOLEAN,\n },\n {\n name: \"name\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.STRING,\n isUnique: true\n },\n {\n name: \"description\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.STRING\n }\n ]\n });\n return yield queryRunner.createTable(accessTable, true);\n });\n }\n _addRole(queryRunner) {\n return __awaiter(this, void 0, void 0, function* () {\n let roleTable = new typeorm_1.Table({\n name: \"role\",\n columns: [\n {\n name: \"id\",\n isPrimary: true,\n type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER,\n isGenerated: this._isServer(),\n generationStrategy: \"increment\"\n },\n {\n name: \"createdAt\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.DATE,\n },\n {\n name: \"updatedAt\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.DATE,\n },\n {\n name: \"version\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER,\n },\n {\n name: \"deleted\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.BOOLEAN,\n },\n {\n name: \"name\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.STRING,\n },\n {\n name: \"description\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.STRING\n }\n ]\n });\n return yield queryRunner.createTable(roleTable, true);\n });\n }\n _addUser(queryRunner) {\n return __awaiter(this, void 0, void 0, function* () {\n let userTable = new typeorm_1.Table({\n name: \"user\",\n columns: [\n {\n name: \"id\",\n isPrimary: true,\n type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER,\n isGenerated: this._isServer(),\n generationStrategy: \"increment\"\n },\n {\n name: \"createdAt\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.DATE,\n },\n {\n name: \"updatedAt\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.DATE,\n },\n {\n name: \"version\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER,\n },\n {\n name: \"deleted\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.BOOLEAN,\n },\n {\n name: \"username\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.STRING,\n isUnique: true\n },\n {\n name: \"email\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.STRING,\n isUnique: true\n },\n {\n name: \"password\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.STRING,\n },\n {\n name: \"activated\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.BOOLEAN,\n },\n {\n name: \"blocked\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.BOOLEAN,\n },\n {\n name: \"salt\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.STRING,\n },\n ]\n });\n return yield queryRunner.createTable(userTable, true);\n });\n }\n _addRoleAccess(queryRunner) {\n return __awaiter(this, void 0, void 0, function* () {\n let roleAccessTable = new typeorm_1.Table({\n name: \"roleAccess\",\n columns: [\n {\n name: \"roleId\",\n isPrimary: true,\n type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER\n },\n {\n name: \"accessId\",\n isPrimary: true,\n type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER,\n }\n ],\n indices: [\n {\n name: \"IDX_38300dd4683a436f8db90b42bd\",\n columnNames: [\"roleId\"]\n },\n {\n name: \"IDX_bd55fc382ad2480f75a17e33cb\",\n columnNames: [\"accessId\"]\n }\n ],\n foreignKeys: [\n {\n name: \"FK_38300dd4683a436f8db90b42bd9\",\n columnNames: [\"roleId\"],\n referencedTableName: \"role\",\n referencedColumnNames: [\"id\"],\n onDelete: \"cascade\",\n },\n {\n name: \"FK_bd55fc382ad2480f75a17e33cb5\",\n columnNames: [\"accessId\"],\n referencedTableName: \"access\",\n referencedColumnNames: [\"id\"],\n onDelete: \"cascade\",\n },\n ]\n });\n return yield queryRunner.createTable(roleAccessTable, true);\n });\n }\n _addRoleChildren(queryRunner) {\n return __awaiter(this, void 0, void 0, function* () {\n let roleChildrenTable = new typeorm_1.Table({\n name: \"roleChildren\",\n columns: [\n {\n name: \"childId\",\n isPrimary: true,\n type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER\n },\n {\n name: \"parentId\",\n isPrimary: true,\n type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER,\n }\n ],\n indices: [\n {\n name: \"IDX_030234c342756c67cefa480687\",\n columnNames: [\"childId\"]\n },\n {\n name: \"IDX_35741f2d68a65c2765047705f8\",\n columnNames: [\"parentId\"]\n }\n ],\n foreignKeys: [\n {\n name: \"FK_roleChildren_childId\",\n columnNames: [\"childId\"],\n referencedTableName: \"role\",\n referencedColumnNames: [\"id\"],\n onDelete: \"cascade\",\n },\n {\n name: \"FK_roleChildren_parentId\",\n columnNames: [\"parentId\"],\n referencedTableName: \"role\",\n referencedColumnNames: [\"id\"],\n onDelete: \"cascade\",\n },\n ]\n });\n return yield queryRunner.createTable(roleChildrenTable, true);\n });\n }\n _addUserRole(queryRunner) {\n return __awaiter(this, void 0, void 0, function* () {\n let userRoleTable = new typeorm_1.Table({\n name: \"userRole\",\n columns: [\n {\n name: \"userId\",\n isPrimary: true,\n type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER\n },\n {\n name: \"roleId\",\n isPrimary: true,\n type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER,\n }\n ],\n indices: [\n {\n name: \"IDX_userRole_userId\",\n columnNames: [\"userId\"]\n },\n {\n name: \"IDX_userRole_roleId\",\n columnNames: [\"roleId\"]\n }\n ],\n foreignKeys: [\n {\n name: \"FK_userRole_userId\",\n columnNames: [\"userId\"],\n referencedTableName: \"user\",\n referencedColumnNames: [\"id\"],\n onDelete: \"cascade\",\n },\n {\n name: \"FK_userRole_roleId\",\n columnNames: [\"roleId\"],\n referencedTableName: \"role\",\n referencedColumnNames: [\"id\"],\n onDelete: \"cascade\",\n },\n ]\n });\n return yield queryRunner.createTable(userRoleTable, true);\n });\n }\n _addUserAccess(queryRunner) {\n return __awaiter(this, void 0, void 0, function* () {\n let userRoleTable = new typeorm_1.Table({\n name: \"user_access\",\n columns: [\n {\n name: \"id\",\n isPrimary: true,\n isGenerated: this._isServer(),\n generationStrategy: \"increment\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER\n },\n {\n name: \"userId\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER,\n isNullable: true\n },\n {\n name: \"accessId\",\n type: cordova_sites_database_1.BaseDatabase.TYPES.INTEGER,\n isNullable: true\n }\n ],\n indices: [\n {\n name: \"IDX_userAccess_userId\",\n columnNames: [\"userId\"]\n },\n {\n name: \"IDX_userAccess_accessId\",\n columnNames: [\"accessId\"]\n }\n ],\n foreignKeys: [\n {\n name: \"FK_userAccess_userId\",\n columnNames: [\"userId\"],\n referencedTableName: \"user\",\n referencedColumnNames: [\"id\"],\n onDelete: \"cascade\",\n },\n {\n name: \"FK_userAccess_accessId\",\n columnNames: [\"accessId\"],\n referencedTableName: \"access\",\n referencedColumnNames: [\"id\"],\n onDelete: \"cascade\",\n },\n ]\n });\n return yield queryRunner.createTable(userRoleTable, true);\n });\n }\n down(queryRunner) {\n return undefined;\n }\n}\nexports.SetupUserManagement1000000001000 = SetupUserManagement1000000001000;\n//# sourceMappingURL=SetupUserManagement.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/shared/migrations/SetupUserManagement.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/shared/v1/model/Access.js":
/*!***********************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/shared/v1/model/Access.js ***!
\***********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Access = void 0;\nconst shared_1 = __webpack_require__(/*! cordova-sites-easy-sync/dist/shared */ \"./node_modules/cordova-sites-easy-sync/dist/shared.js\");\nconst cordova_sites_database_1 = __webpack_require__(/*! cordova-sites-database/dist/cordova-sites-database */ \"./node_modules/cordova-sites-database/dist/cordova-sites-database.js\");\nclass Access extends shared_1.EasySyncBaseModel {\n constructor() {\n super();\n this.name = null;\n this.description = null;\n }\n static getColumnDefinitions() {\n let columns = super.getColumnDefinitions();\n columns[\"name\"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.STRING, unique: true };\n columns[\"description\"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.STRING };\n return columns;\n }\n}\nexports.Access = Access;\nAccess.CAN_BE_SYNCED = false;\ncordova_sites_database_1.BaseDatabase.addModel(Access);\n//# sourceMappingURL=Access.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/shared/v1/model/Access.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/shared/v1/model/AccessEasySyncModel.js":
/*!************************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/shared/v1/model/AccessEasySyncModel.js ***!
\************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AccessEasySyncModel = void 0;\nconst shared_1 = __webpack_require__(/*! cordova-sites-easy-sync/dist/shared */ \"./node_modules/cordova-sites-easy-sync/dist/shared.js\");\nclass AccessEasySyncModel extends shared_1.EasySyncBaseModel {\n}\nexports.AccessEasySyncModel = AccessEasySyncModel;\nAccessEasySyncModel.ACCESS_READ = true;\nAccessEasySyncModel.ACCESS_MODIFY = false;\nAccessEasySyncModel.CAN_BE_SYNCED = false;\n//# sourceMappingURL=AccessEasySyncModel.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/shared/v1/model/AccessEasySyncModel.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/shared/v1/model/Role.js":
/*!*********************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/shared/v1/model/Role.js ***!
\*********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Role = void 0;\nconst shared_1 = __webpack_require__(/*! cordova-sites-easy-sync/dist/shared */ \"./node_modules/cordova-sites-easy-sync/dist/shared.js\");\nconst cordova_sites_database_1 = __webpack_require__(/*! cordova-sites-database/dist/cordova-sites-database */ \"./node_modules/cordova-sites-database/dist/cordova-sites-database.js\");\nconst Access_1 = __webpack_require__(/*! ./Access */ \"./node_modules/cordova-sites-user-management/dist/shared/v1/model/Access.js\");\nclass Role extends shared_1.EasySyncBaseModel {\n constructor() {\n super();\n this.name = null;\n this.description = null;\n this.accesses = null;\n this.parents = null;\n this.children = null;\n }\n static getColumnDefinitions() {\n let columns = super.getColumnDefinitions();\n columns[\"name\"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.STRING };\n columns[\"description\"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.STRING };\n return columns;\n }\n static getRelationDefinitions() {\n let relations = super.getRelationDefinitions();\n relations[\"accesses\"] = {\n target: Access_1.Access.getSchemaName(),\n type: \"many-to-many\",\n joinTable: {\n name: \"roleAccess\"\n },\n cascade: false\n };\n relations[\"parents\"] = {\n target: Role.getSchemaName(),\n type: \"many-to-many\",\n joinTable: {\n name: \"roleChildren\",\n joinColumn: {\n name: \"childId\",\n referencedColumnName: \"id\"\n },\n inverseJoinColumn: {\n name: \"parentId\",\n referencedColumnName: \"id\"\n }\n },\n cascade: false\n };\n relations[\"children\"] = {\n target: Role.getSchemaName(),\n type: \"many-to-many\",\n joinTable: {\n name: \"roleChildren\",\n joinColumn: {\n name: \"parentId\",\n referencedColumnName: \"id\"\n },\n inverseJoinColumn: {\n name: \"childId\",\n referencedColumnName: \"id\"\n }\n },\n cascade: false\n };\n return relations;\n }\n}\nexports.Role = Role;\nRole.CAN_BE_SYNCED = false;\ncordova_sites_database_1.BaseDatabase.addModel(Role);\n//# sourceMappingURL=Role.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/shared/v1/model/Role.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/shared/v1/model/User.js":
/*!*********************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/shared/v1/model/User.js ***!
\*********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.User = void 0;\nconst shared_1 = __webpack_require__(/*! cordova-sites-easy-sync/dist/shared */ \"./node_modules/cordova-sites-easy-sync/dist/shared.js\");\nconst cordova_sites_database_1 = __webpack_require__(/*! cordova-sites-database/dist/cordova-sites-database */ \"./node_modules/cordova-sites-database/dist/cordova-sites-database.js\");\nconst Role_1 = __webpack_require__(/*! ./Role */ \"./node_modules/cordova-sites-user-management/dist/shared/v1/model/Role.js\");\nclass User extends shared_1.EasySyncBaseModel {\n constructor() {\n super();\n this.username = null;\n this.email = null;\n this.password = null;\n this.roles = null;\n this.activated = false;\n this.blocked = false;\n this.salt = null;\n }\n toJSON() {\n return {\n id: this.id,\n username: this.username,\n };\n }\n static getColumnDefinitions() {\n let columns = super.getColumnDefinitions();\n columns[\"username\"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.STRING, unique: true };\n columns[\"email\"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.STRING, unique: true };\n columns[\"password\"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.STRING };\n columns[\"activated\"] = cordova_sites_database_1.BaseDatabase.TYPES.BOOLEAN;\n columns[\"blocked\"] = cordova_sites_database_1.BaseDatabase.TYPES.BOOLEAN;\n columns[\"salt\"] = { type: cordova_sites_database_1.BaseDatabase.TYPES.STRING };\n return columns;\n }\n static getRelationDefinitions() {\n let relations = super.getRelationDefinitions();\n relations[\"roles\"] = {\n target: Role_1.Role.getSchemaName(),\n type: \"many-to-many\",\n joinTable: {\n name: \"userRole\"\n },\n cascade: false\n };\n return relations;\n }\n static prepareSync(entities) {\n let jsonEntities = [];\n entities.forEach(entity => {\n let jsonEntity = {};\n jsonEntity.id = entity.id;\n jsonEntity.createdAt = new Date();\n jsonEntity.updatedAt = new Date();\n jsonEntity.username = \"\";\n jsonEntity.email = \"\";\n jsonEntity.password = \"\";\n jsonEntity.salt = \"\";\n jsonEntity.activated = 1;\n jsonEntity.blocked = 1;\n jsonEntity.version = 1;\n jsonEntity.deleted = 0;\n jsonEntities.push(jsonEntity);\n });\n return jsonEntities;\n }\n}\nexports.User = User;\ncordova_sites_database_1.BaseDatabase.addModel(User);\n//# sourceMappingURL=User.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/shared/v1/model/User.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/shared/v1/model/UserSyncModel.js":
/*!******************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/shared/v1/model/UserSyncModel.js ***!
\******************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UserSyncModel = void 0;\nconst AccessEasySyncModel_1 = __webpack_require__(/*! ./AccessEasySyncModel */ \"./node_modules/cordova-sites-user-management/dist/shared/v1/model/AccessEasySyncModel.js\");\nconst User_1 = __webpack_require__(/*! ./User */ \"./node_modules/cordova-sites-user-management/dist/shared/v1/model/User.js\");\nclass UserSyncModel extends AccessEasySyncModel_1.AccessEasySyncModel {\n static getRelationDefinitions() {\n let relations = super.getRelationDefinitions();\n relations[\"user\"] = {\n target: User_1.User.getSchemaName(),\n type: \"many-to-one\",\n // joinColumn: {\n // name: \"userId\"\n // },\n cascade: false,\n nullable: !this.NEED_USER\n };\n return relations;\n }\n}\nexports.UserSyncModel = UserSyncModel;\nUserSyncModel.NEED_USER = false;\n//# sourceMappingURL=UserSyncModel.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/shared/v1/model/UserSyncModel.js?");
/***/ }),
/***/ "./node_modules/cordova-sites-user-management/dist/shared/v1/model/UserSyncPartialModel.js":
/*!*************************************************************************************************!*\
!*** ./node_modules/cordova-sites-user-management/dist/shared/v1/model/UserSyncPartialModel.js ***!
\*************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UserSyncPartialModel = void 0;\nconst shared_1 = __webpack_require__(/*! cordova-sites-easy-sync/dist/shared */ \"./node_modules/cordova-sites-easy-sync/dist/shared.js\");\nconst User_1 = __webpack_require__(/*! ./User */ \"./node_modules/cordova-sites-user-management/dist/shared/v1/model/User.js\");\nclass UserSyncPartialModel extends shared_1.EasySyncPartialModel {\n static getRelationDefinitions() {\n let relations = super.getRelationDefinitions();\n relations[\"user\"] = {\n target: User_1.User.getSchemaName(),\n type: \"many-to-one\",\n // joinColumn: {\n // name: \"userId\"\n // },\n cascade: false,\n nullable: !this.NEED_USER\n };\n return relations;\n }\n}\nexports.UserSyncPartialModel = UserSyncPartialModel;\nUserSyncPartialModel.NEED_USER = false;\n//# sourceMappingURL=UserSyncPartialModel.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites-user-management/dist/shared/v1/model/UserSyncPartialModel.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client.js":
/*!***************************************************!*\
!*** ./node_modules/cordova-sites/dist/client.js ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(__webpack_require__(/*! ./client/js/App */ \"./node_modules/cordova-sites/dist/client/js/App.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/ColorIndicator/ColorIndicator */ \"./node_modules/cordova-sites/dist/client/js/ColorIndicator/ColorIndicator.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/AbstractFragment */ \"./node_modules/cordova-sites/dist/client/js/Context/AbstractFragment.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/AbstractSite */ \"./node_modules/cordova-sites/dist/client/js/Context/AbstractSite.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/ContainerSite */ \"./node_modules/cordova-sites/dist/client/js/Context/ContainerSite.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/Context */ \"./node_modules/cordova-sites/dist/client/js/Context/Context.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/Delegate/DelegateSite */ \"./node_modules/cordova-sites/dist/client/js/Context/Delegate/DelegateSite.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/Delegate/MasterSite */ \"./node_modules/cordova-sites/dist/client/js/Context/Delegate/MasterSite.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/Fragment/AbstractWindowFragment */ \"./node_modules/cordova-sites/dist/client/js/Context/Fragment/AbstractWindowFragment.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/Fragment/AlphabeticListFragment */ \"./node_modules/cordova-sites/dist/client/js/Context/Fragment/AlphabeticListFragment.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/Fragment/TabFragment */ \"./node_modules/cordova-sites/dist/client/js/Context/Fragment/TabFragment.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/Fragment/WindowPositionInterface */ \"./node_modules/cordova-sites/dist/client/js/Context/Fragment/WindowPositionInterface.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/Menu/Menu */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/Menu.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/Menu/MenuAction/ErrorAction */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/ErrorAction.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/Menu/MenuAction/MenuAction */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/MenuAction.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/Menu/MenuAction/OpenSubmenuAction */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/OpenSubmenuAction.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/Menu/MenuAction/StartSiteMenuAction */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/StartSiteMenuAction.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/Menu/NavbarFragment */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/NavbarFragment.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/Menu/Renderer/AccordionRenderer */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/Renderer/AccordionRenderer.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/Menu/Renderer/DropdownRenderer */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/Renderer/DropdownRenderer.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/Menu/Renderer/MenuRenderer */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/Renderer/MenuRenderer.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/Menu/Submenu */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/Submenu.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/MenuSite */ \"./node_modules/cordova-sites/dist/client/js/Context/MenuSite.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/SiteManager */ \"./node_modules/cordova-sites/dist/client/js/Context/SiteManager.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/SwipeFragment/SwipeChildFragment */ \"./node_modules/cordova-sites/dist/client/js/Context/SwipeFragment/SwipeChildFragment.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/SwipeFragment/SwipeFragment */ \"./node_modules/cordova-sites/dist/client/js/Context/SwipeFragment/SwipeFragment.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Context/TemplateSite */ \"./node_modules/cordova-sites/dist/client/js/Context/TemplateSite.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/DataManager/NotOnlineError */ \"./node_modules/cordova-sites/dist/client/js/DataManager/NotOnlineError.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/DataManager */ \"./node_modules/cordova-sites/dist/client/js/DataManager.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Dialog/ButtonChooseDialog */ \"./node_modules/cordova-sites/dist/client/js/Dialog/ButtonChooseDialog.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Dialog/ChooseDialog */ \"./node_modules/cordova-sites/dist/client/js/Dialog/ChooseDialog.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Dialog/ConfirmDialog */ \"./node_modules/cordova-sites/dist/client/js/Dialog/ConfirmDialog.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Dialog/Dialog */ \"./node_modules/cordova-sites/dist/client/js/Dialog/Dialog.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Dialog/ElemChooseDialog */ \"./node_modules/cordova-sites/dist/client/js/Dialog/ElemChooseDialog.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Dialog/ImgChooseDialog */ \"./node_modules/cordova-sites/dist/client/js/Dialog/ImgChooseDialog.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Form */ \"./node_modules/cordova-sites/dist/client/js/Form.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/HistoryManager */ \"./node_modules/cordova-sites/dist/client/js/HistoryManager.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Legacy/EventManager/EventManager */ \"./node_modules/cordova-sites/dist/client/js/Legacy/EventManager/EventManager.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Legacy/Matomo */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Matomo.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Legacy/ScaleHelper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/ScaleHelper.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/NativeStoragePromise */ \"./node_modules/cordova-sites/dist/client/js/NativeStoragePromise.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/PromiseHelper */ \"./node_modules/cordova-sites/dist/client/js/PromiseHelper.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/ShareManager/ShareDialog */ \"./node_modules/cordova-sites/dist/client/js/ShareManager/ShareDialog.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/ShareManager/ShareManager */ \"./node_modules/cordova-sites/dist/client/js/ShareManager/ShareManager.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Singleton */ \"./node_modules/cordova-sites/dist/client/js/Singleton.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Sound/AudioChain */ \"./node_modules/cordova-sites/dist/client/js/Sound/AudioChain.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Sound/SoundManager */ \"./node_modules/cordova-sites/dist/client/js/Sound/SoundManager.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Toast/Toast */ \"./node_modules/cordova-sites/dist/client/js/Toast/Toast.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Toast/ToastManager */ \"./node_modules/cordova-sites/dist/client/js/Toast/ToastManager.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/Translator */ \"./node_modules/cordova-sites/dist/client/js/Translator.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/ViewInflater */ \"./node_modules/cordova-sites/dist/client/js/ViewInflater.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/js/translationInit */ \"./node_modules/cordova-sites/dist/client/js/translationInit.js\"), exports);\n//# sourceMappingURL=client.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/html/Dialog/shareDialog.html":
/*!*****************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/html/Dialog/shareDialog.html ***!
\*****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/shareDialog.html\";\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/html/Dialog/shareDialog.html?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/html/Framework/Dialog/chooseDialog.html":
/*!****************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/html/Framework/Dialog/chooseDialog.html ***!
\****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/chooseDialog.html\";\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/html/Framework/Dialog/chooseDialog.html?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/html/Framework/Fragment/abstractWindowTemplate.html":
/*!****************************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/html/Framework/Fragment/abstractWindowTemplate.html ***!
\****************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/abstractWindowTemplate.html\";\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/html/Framework/Fragment/abstractWindowTemplate.html?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/html/Framework/Fragment/alphabeticListFragment.html":
/*!****************************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/html/Framework/Fragment/alphabeticListFragment.html ***!
\****************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/alphabeticListFragment.html\";\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/html/Framework/Fragment/alphabeticListFragment.html?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/html/Framework/Fragment/swipeFragment.html":
/*!*******************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/html/Framework/Fragment/swipeFragment.html ***!
\*******************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/swipeFragment.html\";\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/html/Framework/Fragment/swipeFragment.html?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/html/Framework/Fragment/tabFragment.html":
/*!*****************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/html/Framework/Fragment/tabFragment.html ***!
\*****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/tabFragment.html\";\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/html/Framework/Fragment/tabFragment.html?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/html/siteTemplates/container.html":
/*!**********************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/html/siteTemplates/container.html ***!
\**********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/container.html\";\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/html/siteTemplates/container.html?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/html/siteTemplates/menuSite.html":
/*!*********************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/html/siteTemplates/menuSite.html ***!
\*********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/menuSite.html\";\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/html/siteTemplates/menuSite.html?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/html/siteTemplates/navbar.html":
/*!*******************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/html/siteTemplates/navbar.html ***!
\*******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/navbar.html\";\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/html/siteTemplates/navbar.html?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/img/errorIcon.png":
/*!******************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/img/errorIcon.png ***!
\******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"img/errorIcon.png\");\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/img/errorIcon.png?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/App.js":
/*!**********************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/App.js ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.App = void 0;\n/**\n * Eine Klasse, welche als Ursprung für die App genutzt wird\n */\nconst Helper_1 = __webpack_require__(/*! ./Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nconst SiteManager_1 = __webpack_require__(/*! ./Context/SiteManager */ \"./node_modules/cordova-sites/dist/client/js/Context/SiteManager.js\");\nclass App {\n /**\n * Erstellt eine neue App, speichert ein internes Promise, welches resolved wird, sobald das deviceready-Event gefeuert wird\n */\n constructor() {\n this._resolver = { resolve: null, reject: null };\n this._readyPromise = new Promise(r => document.addEventListener(\"deviceready\", r, false));\n this._deepLinks = {};\n this._siteManager = SiteManager_1.SiteManager.getInstance();\n }\n addDeepLink(link, siteConstructor) {\n this._deepLinks[link] = siteConstructor;\n }\n startSite(site, args) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._siteManager) {\n return this._siteManager.startSite(site, args);\n }\n });\n }\n static setLogo(logo) {\n this._logo = logo;\n }\n static getLogo() {\n return this._logo;\n }\n start(startSiteConstructor) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.ready();\n let initialSiteConstructor = startSiteConstructor;\n let params = App._getStartParams();\n this.startingSite = initialSiteConstructor;\n this.startingSiteParameters = params;\n if (Helper_1.Helper.isNotNull(params[\"s\"])) {\n startSiteConstructor = Helper_1.Helper.nonNull(this._deepLinks[params[\"s\"]], startSiteConstructor);\n delete params[\"s\"];\n }\n this.startingSiteParameters = null;\n let siteManager = this._siteManager;\n siteManager.init(\"site\", this._deepLinks);\n Helper_1.Helper.removeAllChildren(document.getElementById(\"site\"));\n siteManager.startSite(startSiteConstructor, params);\n siteManager.setAppEndedListener(manager => {\n manager.startSite(initialSiteConstructor);\n });\n });\n }\n /**\n * Startet die erste Seite\n */\n startStartingSite() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.startingSite) {\n return this.startSite(this.startingSite, this.startingSiteParameters);\n }\n });\n }\n /**\n * Führt die Callback aus, sobald das interne Promise aufgelöst wird und App._promises fertig sind oder gibt das interne Promise zurück\n *\n * @param callback\n * @returns {Promise<*>}\n */\n ready(callback) {\n return __awaiter(this, void 0, void 0, function* () {\n let promise = this._readyPromise.then(() => {\n App._resolver.resolve(this);\n return Promise.all(App._promises);\n });\n if (callback) {\n return promise.then(callback);\n }\n else {\n return promise;\n }\n });\n }\n static addInitialization(callbackOrPromise) {\n if (typeof callbackOrPromise === \"function\") {\n let promise = callbackOrPromise;\n callbackOrPromise = App._mainPromise.then((app) => {\n return promise(app);\n });\n }\n App._promises.push(callbackOrPromise);\n }\n static _getStartParams() {\n return Object.assign(App._extractParams(window.location.search.substr(1)), App._startParams);\n }\n static _extractParams(paramString) {\n if (Helper_1.Helper.isNull(paramString)) {\n return null;\n }\n let result = {}, tmp = [];\n let items = paramString.split(\"&\");\n for (let index = 0; index < items.length; index++) {\n tmp = items[index].split(\"=\");\n if (tmp[0].trim().length > 0) {\n result[tmp[0]] = decodeURIComponent(tmp[1]);\n }\n }\n return result;\n }\n static setStartParam(name, value) {\n this._startParams[name] = value;\n }\n}\nexports.App = App;\nApp._promises = [];\nApp._resolver = {\n resolve: null,\n reject: null,\n};\nApp._mainPromise = new Promise((res, rej) => {\n App._resolver = {\n resolve: res,\n reject: rej,\n };\n});\nApp._startParams = {};\n//# sourceMappingURL=App.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/App.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/ColorIndicator/ColorIndicator.js":
/*!************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/ColorIndicator/ColorIndicator.js ***!
\************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ColorIndicator = void 0;\nconst Singleton_1 = __webpack_require__(/*! ../Singleton */ \"./node_modules/cordova-sites/dist/client/js/Singleton.js\");\nconst Helper_1 = __webpack_require__(/*! ../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nclass ColorIndicator extends Singleton_1.Singleton {\n getAverageImgColor(imgEl, areaWidth, areaHeight) {\n //https://stackoverflow.com/questions/2541481/get-average-color-of-image-via-javascript\n let blockSize = 5, // only visit every 5 pixels\n defaultRGB = { r: 255, g: 255, b: 255 }, // for non-supporting envs\n canvas = document.createElement('canvas'), context = canvas.getContext && canvas.getContext('2d'), data, width, height, i = -4 * blockSize, //start with first pixel\n length, rgb = { r: 0, g: 0, b: 0 }, count = 0;\n if (!context) {\n return defaultRGB;\n }\n height = canvas.height = imgEl.naturalHeight || imgEl.offsetHeight || imgEl.height;\n width = canvas.width = imgEl.naturalWidth || imgEl.offsetWidth || imgEl.width;\n areaWidth = Helper_1.Helper.nonNull(areaWidth, width);\n areaHeight = Helper_1.Helper.nonNull(areaWidth, height);\n context.drawImage(imgEl, 0, 0);\n try {\n data = context.getImageData(0, 0, Math.min(width, areaWidth), Math.min(height, areaHeight));\n }\n catch (e) {\n /* security error, img on diff domain */\n console.error(e);\n return defaultRGB;\n }\n length = data.data.length;\n while ((i += blockSize * 4) < length) {\n ++count;\n rgb.r += data.data[i];\n rgb.g += data.data[i + 1];\n rgb.b += data.data[i + 2];\n }\n // ~~ used to floor values\n rgb.r = ~~(rgb.r / count);\n rgb.g = ~~(rgb.g / count);\n rgb.b = ~~(rgb.b / count);\n return rgb;\n }\n invertColorBW(r, g, b) {\n return this.invertColor(r, g, b, true);\n }\n invertColor(r, g, b, bw) {\n if (typeof r === \"object\") {\n bw = g || bw;\n g = r.g;\n b = r.b;\n r = r.r;\n }\n if (bw) {\n // http://stackoverflow.com/a/3943023/112731\n return (r * 0.299 + g * 0.587 + b * 0.114) > 186\n ? { r: 0, g: 0, b: 0 }\n : { r: 255, g: 255, b: 255 };\n }\n // invert color components\n r = (255 - r);\n g = (255 - g);\n b = (255 - b);\n // pad each with zeros and return\n return {\n r: r,\n g: g,\n b: b,\n };\n }\n toHEX(r, g, b) {\n if (typeof r === \"object\") {\n g = r.g;\n b = r.b;\n r = r.r;\n }\n r = r.toString(16);\n g = g.toString(16);\n b = b.toString(16);\n return \"#\" + Helper_1.Helper.padZero(r) + Helper_1.Helper.padZero(g) + Helper_1.Helper.padZero(b);\n }\n}\nexports.ColorIndicator = ColorIndicator;\n//# sourceMappingURL=ColorIndicator.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/ColorIndicator/ColorIndicator.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/AbstractFragment.js":
/*!*******************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/AbstractFragment.js ***!
\*******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractFragment = void 0;\nconst Context_1 = __webpack_require__(/*! ./Context */ \"./node_modules/cordova-sites/dist/client/js/Context/Context.js\");\nconst Helper_1 = __webpack_require__(/*! ../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\n/**\n * Ein Fragment ist ein TeilView einer Ansicht.\n */\nclass AbstractFragment extends Context_1.Context {\n /**\n * Erstellt ein neues Fragment\n *\n * @param site\n * @param view\n */\n constructor(site, view) {\n super(view);\n this._site = site;\n this._viewQuery = null;\n this._active = true;\n }\n /**\n * Gibt die zugehörige Seite zurück\n *\n * @returns\n */\n getSite() {\n if (this._site instanceof AbstractFragment) {\n return this._site.getSite();\n }\n return this._site;\n }\n startSite(site, args) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._site.startSite(site, args);\n });\n }\n /**\n * Gibt zurück, ob das Fragment aktiv ist. Wenn nicht, wird es in der Seite nicht angezeigt\n *\n * @returns {boolean}\n */\n isActive() {\n return this._active;\n }\n setViewQuery(query) {\n this._viewQuery = query;\n }\n getViewQuery() {\n return this._viewQuery;\n }\n setActive(active) {\n this._active = active;\n if (Helper_1.Helper.isNotNull(this._view)) {\n if (active) {\n this._view.classList.remove(\"hidden\");\n }\n else {\n this._view.classList.add(\"hidden\");\n }\n }\n }\n}\nexports.AbstractFragment = AbstractFragment;\n//# sourceMappingURL=AbstractFragment.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/AbstractFragment.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/AbstractSite.js":
/*!***************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/AbstractSite.js ***!
\***************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractSite = void 0;\nconst Context_1 = __webpack_require__(/*! ./Context */ \"./node_modules/cordova-sites/dist/client/js/Context/Context.js\");\nconst Helper_1 = __webpack_require__(/*! ../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nconst Translator_1 = __webpack_require__(/*! ../Translator */ \"./node_modules/cordova-sites/dist/client/js/Translator.js\");\nconst ViewInflater_1 = __webpack_require__(/*! ../ViewInflater */ \"./node_modules/cordova-sites/dist/client/js/ViewInflater.js\");\nconst EventManager_1 = __webpack_require__(/*! ../Legacy/EventManager/EventManager */ \"./node_modules/cordova-sites/dist/client/js/Legacy/EventManager/EventManager.js\");\n/**\n * Basisklasse für eine Seite\n */\nclass AbstractSite extends Context_1.Context {\n /**\n * Construktor für eine Seite, sollte überladen werden und view sollte definiert werden. Seitenkonstruktoren bekommen NUR den siteManager übergebn\n * @param siteManager\n * @param view\n */\n constructor(siteManager, view) {\n super(view);\n this._isDestroying = false;\n this._isDestroying = false;\n //Promise und Resolver, welches erfüllt wird, wenn Seite beendet wird\n this._finishPromiseResolver = {\n resolve: null,\n reject: null\n };\n this._finishPromise = new Promise((resolve, reject) => {\n this._finishPromiseResolver = { resolve: resolve, reject: reject };\n });\n //Promise, welches erfüllt wird, wenn onConstruct-Promsise erfüllt wurde. Wird für onDestroy gebraucht\n this._onConstructPromise = null;\n this._parameters = {};\n this._result = null;\n this._siteManager = siteManager;\n this._title = {\n element: null,\n text: null\n };\n this._loadingSymbol = null;\n //Wird zum speichern der zugehörigen HistoryID genutzt\n this._historyId = null;\n }\n getTitle() {\n return this._title;\n }\n onConstruct(constructParameters) {\n const _super = Object.create(null, {\n onConstruct: { get: () => super.onConstruct }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onConstruct.call(this, constructParameters);\n this.setParameters(Helper_1.Helper.nonNull(constructParameters, {}));\n EventManager_1.EventManager.trigger(AbstractSite.EVENT.ON_CONSTRUCT, {\n site: this, params: constructParameters\n });\n return res;\n });\n }\n onStart(pauseArguments) {\n const _super = Object.create(null, {\n onStart: { get: () => super.onStart }\n });\n return __awaiter(this, void 0, void 0, function* () {\n yield _super.onStart.call(this, pauseArguments);\n this._updateTitle();\n this.updateUrl(this._parameters);\n EventManager_1.EventManager.trigger(AbstractSite.EVENT.ON_START, {\n site: this, params: pauseArguments\n });\n });\n }\n onViewLoaded() {\n const _super = Object.create(null, {\n onViewLoaded: { get: () => super.onViewLoaded }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onViewLoaded.call(this);\n EventManager_1.EventManager.trigger(AbstractSite.EVENT.ON_VIEW_LOADED, {\n site: this\n });\n return res;\n });\n }\n onPause() {\n const _super = Object.create(null, {\n onPause: { get: () => super.onPause }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onPause.call(this);\n EventManager_1.EventManager.trigger(AbstractSite.EVENT.ON_PAUSE, {\n site: this\n });\n return res;\n });\n }\n onDestroy() {\n const _super = Object.create(null, {\n onDestroy: { get: () => super.onDestroy }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onDestroy.call(this);\n EventManager_1.EventManager.trigger(AbstractSite.EVENT.ON_DESTROY, {\n site: this\n });\n return res;\n });\n }\n /**\n * Setzt den Titel der Website\n *\n * @param titleElement\n * @param title\n */\n setTitle(titleElement, title) {\n if (typeof titleElement === \"string\") {\n let args = title;\n title = titleElement;\n titleElement = Translator_1.Translator.makePersistentTranslation(title, args);\n }\n title = Helper_1.Helper.nonNull(title, titleElement.textContent);\n this._title = {\n element: titleElement,\n text: title\n };\n this._updateTitle();\n }\n setParameter(name, value) {\n this._parameters[name] = value;\n this.updateUrl(this._parameters);\n }\n setParameters(parameters) {\n this._parameters = parameters;\n this.updateUrl(this._parameters);\n }\n getParameters() {\n return this._parameters;\n }\n showLoadingSymbol() {\n return __awaiter(this, void 0, void 0, function* () {\n if (Helper_1.Helper.isNull(this._loadingSymbol)) {\n this._loadingSymbol = ViewInflater_1.ViewInflater.createLoadingSymbol(\"overlay\");\n let view = yield this.getViewPromise();\n if (Helper_1.Helper.isNotNull(this._loadingSymbol)) {\n view.appendChild(this._loadingSymbol);\n }\n }\n });\n }\n removeLoadingSymbol() {\n return __awaiter(this, void 0, void 0, function* () {\n if (Helper_1.Helper.isNotNull(this._loadingSymbol)) {\n this._loadingSymbol.remove();\n this._loadingSymbol = null;\n }\n });\n }\n onBeforeUnload(e) {\n return null;\n }\n /**\n * Updatet den Title der Webseite\n * @protected\n */\n _updateTitle() {\n if (this._state === Context_1.Context.STATE_RUNNING) {\n this._siteManager.updateTitle(this._title.text);\n }\n }\n updateUrl(args) {\n if (this._state === Context_1.Context.STATE_RUNNING) {\n this._siteManager.updateUrl(this, args);\n }\n }\n /**\n * Startet eine andere Seite mit den angegebenen Parametern\n *\n * @param site\n * @param args\n * @returns {*|Promise<*>}\n */\n startSite(site, args) {\n return this._siteManager.startSite(site, args);\n }\n /**\n * Alias für\n * this.startSite(...);\n * this.finish(...);\n *\n * @param site\n * @param args\n * @param result\n * @returns {*|Promise<*>}\n */\n finishAndStartSite(site, args, result) {\n let res = this.startSite(site, args);\n this.finish(result);\n return res;\n }\n /**\n * Beendet die aktuelle Seite. Kann ein Ergebnis setzen\n *\n * @param result\n */\n finish(result) {\n if (!(this._isDestroying || this._state === Context_1.Context.STATE_DESTROYED)) {\n this._isDestroying = true;\n if (Helper_1.Helper.isNotNull(result)) {\n this.setResult(result);\n }\n return this._siteManager.endSite(this);\n }\n }\n goBack() {\n if (this._state === Context_1.Context.STATE_RUNNING) {\n this._siteManager.goBack();\n }\n }\n /**\n * Wird aufgerufen, falls zurück gedrückt wird. Gib false zurück, um das beenden der Seite zu verhindern\n */\n onBackPressed() {\n }\n /**\n * TODO Einbauen\n */\n onMenuPressed() {\n }\n /**\n * TODO Einbauen\n */\n onSearchPressed() {\n }\n /**\n * Gibt das FinishPromise zurück\n * @returns {Promise<any>}\n */\n getFinishPromise() {\n return this._finishPromise;\n }\n /**\n * Setzt das Resultat. Letztes Setzen gilt\n * @param result\n */\n setResult(result) {\n this._result = result;\n }\n /**\n * Gibt den FinishResolver zurück. Genutzt, um FinishPromise zu resolven order rejecten\n * @returns {*}\n */\n getFinishResolver() {\n return this._finishPromiseResolver;\n }\n addEventListener(siteEvent, listener) {\n return EventManager_1.EventManager.getInstance().addListener(siteEvent, data => {\n if (data.site && data.site instanceof this.constructor) {\n listener(data);\n }\n });\n }\n isDestroying() {\n return this._isDestroying;\n }\n}\nexports.AbstractSite = AbstractSite;\nAbstractSite.EVENT = {\n ON_CONSTRUCT: \"abstract-site-on-construct\",\n ON_VIEW_LOADED: \"abstract-site-on-view-loaded\",\n ON_START: \"abstract-site-on-start\",\n ON_PAUSE: \"abstract-site-on-pause\",\n ON_DESTROY: \"abstract-site-on-destroy\"\n};\n//# sourceMappingURL=AbstractSite.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/AbstractSite.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/ContainerSite.js":
/*!****************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/ContainerSite.js ***!
\****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerSite = void 0;\nconst TemplateSite_1 = __webpack_require__(/*! ./TemplateSite */ \"./node_modules/cordova-sites/dist/client/js/Context/TemplateSite.js\");\nconst containerTemplate = __webpack_require__(/*! ../../html/siteTemplates/container.html */ \"./node_modules/cordova-sites/dist/client/html/siteTemplates/container.html\");\n/**\n * Seite, welche das Container-Template benutzt\n */\nclass ContainerSite extends TemplateSite_1.TemplateSite {\n /**\n * Constructor für die ContainerSite\n *\n * @param siteManager\n * @param view\n */\n constructor(siteManager, view) {\n super(siteManager, view, containerTemplate, \"#site-content\");\n }\n}\nexports.ContainerSite = ContainerSite;\n//# sourceMappingURL=ContainerSite.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/ContainerSite.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/Context.js":
/*!**********************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/Context.js ***!
\**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst Helper_1 = __webpack_require__(/*! ../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nconst ViewInflater_1 = __webpack_require__(/*! ../ViewInflater */ \"./node_modules/cordova-sites/dist/client/js/ViewInflater.js\");\n/**\n * Basis-Klasse für Seiten und Fragmente\n */\nclass Context {\n /**\n * Erstellt einen neuen Context. Erwartet den Link zu einem HTML-File, welches vom ViewInflater geladen werden kann.\n * Im Constructor sollten fragmente hinzugefügt werden (nachdem super.constructor(<>) aufgerufen wurde)\n *\n * @param view\n */\n constructor(view) {\n this.onViewLoadedCalled = false;\n this._pauseParameters = [];\n this._view = null;\n this._fragments = [];\n this._state = Context.STATE_CREATED;\n this._viewLoadedPromise = Helper_1.Helper.newPromiseWithResolve();\n this._viewPromise = ViewInflater_1.ViewInflater.getInstance().load(view).then((siteContent) => {\n this._view = siteContent;\n return siteContent;\n }).catch(e => {\n // @ts-ignore\n this._viewLoadedPromise.reject(e);\n });\n }\n getState() {\n return this._state;\n }\n /**\n * Wird von SiteManager aufgerufen, wenn Klasse erstellt wird. Das ViewPromise ist noch nicht zwangsweise geladen!\n * Gibt ein Promise zurück. onViewLoaded wird erst aufgerufen, wenn onConstruct-Promise und view-Promise fullfilled sind.\n *\n * @param constructParameters, Object|Null\n * @returns {Promise<any[]>}\n */\n onConstruct(constructParameters) {\n return __awaiter(this, void 0, void 0, function* () {\n this._state = Context.STATE_CONSTRUCTED;\n this.constructParameters = constructParameters;\n let onConstructPromises = [];\n for (let k in this._fragments) {\n onConstructPromises.push(this._fragments[k].onConstruct.apply(this._fragments[k], [constructParameters]));\n onConstructPromises.push(this._fragments[k]._viewPromise);\n }\n return Promise.all(onConstructPromises);\n });\n }\n callOnViewLoaded() {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.onViewLoadedCalled) {\n this.onViewLoadedCalled = true;\n const res = yield this.onViewLoaded();\n // @ts-ignore\n this._viewLoadedPromise.resolve(res);\n }\n return this._viewLoadedPromise;\n });\n }\n /**\n * Methode wird aufgerufen, sobald onConstruct-Promise und view-Promise fullfilled sind.\n * View ist hier noch nicht im Dokument hinzugefügt.\n *\n * Benutze diese Methode, um die View beim starten zu manipulieren.\n */\n onViewLoaded() {\n return __awaiter(this, void 0, void 0, function* () {\n this._state = Context.STATE_VIEW_LOADED;\n let onViewLoadedPromises = [];\n for (let k in this._fragments) {\n onViewLoadedPromises.push(this._fragments[k]._viewPromise.then(() => this._fragments[k].callOnViewLoaded()).then(() => this._fragments[k]._viewLoadedPromise.resolve()));\n }\n return Promise.all(onViewLoadedPromises);\n });\n }\n /**\n * onViewLoaded-Promise ist erfüllt => View wird dem Document hinzugefügt => onStart wird aufgerufen\n *\n * Seite wird pausiert => onPause wird aufgerufen => View wird aus dem Document entfernt => - etwas passiert -\n * => Seite wird fortgesetzt => View wird dem Document hinzugefügt => onStart wird mit dem Rückgabewert von onPause ausgeführt\n *\n * Zurückgegebenes Promise wird ignoriert!\n * @param pauseArguments, Object|NULL\n */\n onStart(pauseArguments) {\n return __awaiter(this, void 0, void 0, function* () {\n this._state = Context.STATE_RUNNING;\n for (let k in this._fragments) {\n let fragment = this._fragments[k];\n fragment.onStart.apply(this._fragments[k], [yield this._fragments[k]._pauseParameters]);\n this._fragments[k]._viewPromise.then(function (fragmentView) {\n if (fragment.isActive()) {\n fragmentView.classList.remove(\"hidden\");\n }\n else {\n fragmentView.classList.add(\"hidden\");\n }\n });\n }\n });\n }\n /**\n * Seite wird pausiet => onPause wird ausgeführt => View wird aus dem Document entfernt\n * Seite wird beendet => onPause wird ausgeführt (falls State === running) => View wird aus dem Document entfernt\n * => onDestroy wird ausgeführt\n *\n * Rückgabe-Promise wird als Pause-Parameter gespeichert und wird beim Fortsetzen der Seite ausgeführt\n * @returns {Promise<void>}\n */\n onPause(...args) {\n return __awaiter(this, void 0, void 0, function* () {\n this._state = Context.STATE_PAUSED;\n for (let k in this._fragments) {\n let pauseParameters = this._fragments[k].onPause.apply(this._fragments[k], args);\n this._fragments[k].setPauseParameters(pauseParameters);\n }\n });\n }\n /**\n * Seite wird beendet => onPause wird ausgeführt (falls State === running) => View wird aus dem Document entfernt\n * => onDestroy wird ausgeführt\n *\n * Rückgabe-Promise wird ignoriert\n */\n onDestroy(...args) {\n return __awaiter(this, void 0, void 0, function* () {\n this._state = Context.STATE_DESTROYED;\n for (let k in this._fragments) {\n this._fragments[k].onDestroy.apply(this._fragments[k], args);\n }\n });\n }\n isShowing() {\n return this._state === Context.STATE_RUNNING;\n }\n /**\n * Fügt ein neues Fragment hinzu.\n *\n * @param viewQuery\n * @param fragment\n */\n addFragment(viewQuery, fragment) {\n this._fragments.push(fragment);\n fragment.setViewQuery(viewQuery);\n this._viewPromise = Promise.all([this._viewPromise, fragment._viewPromise]).then(res => {\n res[0].querySelector(viewQuery).appendChild(res[1]);\n return res[0];\n }).catch(e => console.error(e));\n if (this._state >= Context.STATE_CONSTRUCTED) {\n fragment.onConstruct(this.constructParameters);\n }\n if (this._state >= Context.STATE_VIEW_LOADED) {\n Promise.all([this._viewLoadedPromise, fragment.getViewPromise()]).then(() => fragment.callOnViewLoaded());\n }\n if (this._state >= Context.STATE_RUNNING) {\n fragment._viewLoadedPromise.then(() => {\n if (this._state >= Context.STATE_RUNNING) {\n fragment.onStart();\n }\n });\n }\n }\n /**\n * Entfernt ein Fragment.\n *\n * @param fragment\n */\n removeFragment(fragment) {\n const index = this._fragments.indexOf(fragment);\n if (index !== -1) {\n this._fragments.splice(index, 1);\n }\n fragment._viewPromise.then(res => res.remove());\n this._fragments.push(fragment);\n if (this._state < Context.STATE_PAUSED) {\n fragment.onPause();\n }\n if (this._state < Context.STATE_DESTROYING) {\n fragment.onDestroy();\n }\n }\n /**\n * Findet ein Element anhand eines Selectors\n *\n * Wenn all = true, werden alle gefundenen Elemente zurückgegeben\n *\n * Wenn asPromise = true, wird das Ergebnis als Promise zurückgegeben. Hier wird gewartet, bis das _viewPromise fullfilled ist\n * Nutze das, um die View in onConstruct zu manipulieren. Evtl entfernen\n *\n * @param query\n * @param all\n * @param asPromise\n * @returns {*}\n */\n findBy(query, all, asPromise) {\n all = Helper_1.Helper.nonNull(all, false);\n asPromise = Helper_1.Helper.nonNull(asPromise, false);\n let getVal = function (root) {\n let res = null;\n if (all) {\n res = root.querySelectorAll(query);\n if (root.matches(query)) {\n res.push(root);\n }\n }\n else {\n if (root.matches(query)) {\n res = root;\n }\n else {\n res = root.querySelector(query);\n }\n }\n return res;\n };\n if (asPromise) {\n return this._viewPromise.then(function (rootView) {\n return getVal(rootView);\n });\n }\n return getVal(this._view);\n }\n find(selector) {\n if (this._view.matches(selector)) {\n return this._view;\n }\n else {\n return this._view.querySelector(selector);\n }\n }\n findAll(selector) {\n const res = this._view.querySelectorAll(selector);\n if (this._view.matches(selector)) {\n res.push(this._view);\n }\n return res;\n }\n /**\n * Setzt die PauseParameters\n * @param pauseParameters\n */\n setPauseParameters(pauseParameters) {\n this._pauseParameters = pauseParameters;\n }\n /**\n * Gibt das ViewPromise zurück\n * @returns {*}\n */\n getViewPromise() {\n return this._viewPromise;\n }\n}\nexports.Context = Context;\nContext.STATE_CREATED = 0;\nContext.STATE_CONSTRUCTED = 1;\nContext.STATE_VIEW_LOADED = 2;\nContext.STATE_RUNNING = 3;\nContext.STATE_PAUSED = 4;\nContext.STATE_DESTROYING = 5;\nContext.STATE_DESTROYED = 6;\n//# sourceMappingURL=Context.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/Context.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/Delegate/DelegateSite.js":
/*!************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/Delegate/DelegateSite.js ***!
\************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DelegateSite = void 0;\nconst AbstractSite_1 = __webpack_require__(/*! ../AbstractSite */ \"./node_modules/cordova-sites/dist/client/js/Context/AbstractSite.js\");\nclass DelegateSite extends AbstractSite_1.AbstractSite {\n constructor(site) {\n super(undefined, document.createElement(\"span\"));\n /** @var {AbstractSite} */\n this._site = site;\n }\n setTitle(titleElement, title) {\n return this._site.setTitle(titleElement, title);\n }\n setParameter(name, value) {\n //Todo changing\n // return this._site.setParameter(name, value);\n }\n setParameters(parameters) {\n //TODO changing\n // return this._site.setParameters(parameters)\n }\n getParameters() {\n return this._site.getParameters();\n }\n showLoadingSymbol() {\n return __awaiter(this, void 0, void 0, function* () {\n return this._site.showLoadingSymbol();\n });\n }\n removeLoadingSymbol() {\n return __awaiter(this, void 0, void 0, function* () {\n return this._site.removeLoadingSymbol();\n });\n }\n _updateTitle() {\n return this._site._updateTitle();\n }\n updateUrl(args) {\n //todo\n // return this._site.updateUrl(args);\n }\n startSite(site, args) {\n return this._site.startSite(site, args);\n }\n finishAndStartSite(site, args, result) {\n return this._site.finishAndStartSite(site, args, result);\n }\n finish(result) {\n return this._site.finish(result);\n }\n goBack() {\n return this._site.goBack();\n }\n getFinishPromise() {\n return this._site.getFinishPromise();\n }\n setResult(result) {\n return this._site.setResult(result);\n }\n getFinishResolver() {\n return this._site.getFinishResolver();\n }\n addFragment(viewQuery, fragment) {\n return this._site.addFragment(viewQuery, fragment);\n }\n findBy(query, all, asPromise) {\n return this._site.findBy(query, all, asPromise);\n }\n setPauseParameters(pauseParameters) {\n return this._site.setPauseParameters(pauseParameters);\n }\n getViewPromise() {\n return this._site.getViewPromise();\n }\n getState() {\n return this._site.getState();\n }\n getTitle() {\n return this._site.getTitle();\n }\n isShowing() {\n return this._site.isShowing();\n }\n isDestroying() {\n return this._site.isDestroying();\n }\n}\nexports.DelegateSite = DelegateSite;\n//# sourceMappingURL=DelegateSite.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/Delegate/DelegateSite.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/Delegate/MasterSite.js":
/*!**********************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/Delegate/MasterSite.js ***!
\**********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MasterSite = void 0;\nconst AbstractSite_1 = __webpack_require__(/*! ../AbstractSite */ \"./node_modules/cordova-sites/dist/client/js/Context/AbstractSite.js\");\nconst Helper_1 = __webpack_require__(/*! ../../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nclass MasterSite extends AbstractSite_1.AbstractSite {\n constructor(siteManager, view) {\n super(siteManager, view);\n this._delegates = [];\n }\n addDelegate(delegateSite) {\n this._delegates.push(delegateSite);\n }\n onConstruct(constructParameters) {\n const _super = Object.create(null, {\n onConstruct: { get: () => super.onConstruct }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onConstruct.call(this, constructParameters);\n yield Helper_1.Helper.asyncForEach(this._delegates, (delegate) => __awaiter(this, void 0, void 0, function* () {\n yield delegate.onConstruct(constructParameters);\n }));\n return res;\n });\n }\n onStart(pauseArguments) {\n const _super = Object.create(null, {\n onStart: { get: () => super.onStart }\n });\n return __awaiter(this, void 0, void 0, function* () {\n yield _super.onStart.call(this, pauseArguments);\n yield Helper_1.Helper.asyncForEach(this._delegates, (delegate) => __awaiter(this, void 0, void 0, function* () {\n yield delegate.onStart(pauseArguments);\n }));\n });\n }\n onBackPressed() {\n super.onBackPressed();\n this._delegates.forEach(delegate => {\n delegate.onBackPressed();\n });\n }\n onMenuPressed() {\n super.onMenuPressed();\n this._delegates.forEach(delegate => {\n delegate.onMenuPressed();\n });\n }\n onSearchPressed() {\n super.onSearchPressed();\n this._delegates.forEach(delegate => {\n delegate.onSearchPressed();\n });\n }\n onViewLoaded() {\n const _super = Object.create(null, {\n onViewLoaded: { get: () => super.onViewLoaded }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onViewLoaded.call(this);\n yield Helper_1.Helper.asyncForEach(this._delegates, (delegate) => __awaiter(this, void 0, void 0, function* () {\n yield delegate.onViewLoaded();\n }));\n return res;\n });\n }\n onPause() {\n const _super = Object.create(null, {\n onPause: { get: () => super.onPause }\n });\n return __awaiter(this, void 0, void 0, function* () {\n yield _super.onPause.call(this);\n yield Helper_1.Helper.asyncForEach(this._delegates, (delegate) => __awaiter(this, void 0, void 0, function* () {\n yield delegate.onPause();\n }));\n });\n }\n onDestroy() {\n const _super = Object.create(null, {\n onDestroy: { get: () => super.onDestroy }\n });\n return __awaiter(this, void 0, void 0, function* () {\n yield _super.onDestroy.call(this);\n yield Helper_1.Helper.asyncForEach(this._delegates, (delegate) => __awaiter(this, void 0, void 0, function* () {\n yield delegate.onDestroy();\n }));\n });\n }\n}\nexports.MasterSite = MasterSite;\n//# sourceMappingURL=MasterSite.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/Delegate/MasterSite.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/Fragment/AbstractWindowFragment.js":
/*!**********************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/Fragment/AbstractWindowFragment.js ***!
\**********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractWindowFragment = void 0;\nconst AbstractFragment_1 = __webpack_require__(/*! ../AbstractFragment */ \"./node_modules/cordova-sites/dist/client/js/Context/AbstractFragment.js\");\nconst ViewInflater_1 = __webpack_require__(/*! ../../ViewInflater */ \"./node_modules/cordova-sites/dist/client/js/ViewInflater.js\");\nconst Helper_1 = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nconst ViewHelper_1 = __webpack_require__(/*! js-helper/dist/client/ViewHelper */ \"./node_modules/js-helper/dist/client/ViewHelper.js\");\nconst Translator_1 = __webpack_require__(/*! ../../Translator */ \"./node_modules/cordova-sites/dist/client/js/Translator.js\");\nconst NativeStoragePromise_1 = __webpack_require__(/*! ../../NativeStoragePromise */ \"./node_modules/cordova-sites/dist/client/js/NativeStoragePromise.js\");\nconst Toast_1 = __webpack_require__(/*! ../../Toast/Toast */ \"./node_modules/cordova-sites/dist/client/js/Toast/Toast.js\");\nconst template = __webpack_require__(/*! ../../../html/Framework/Fragment/abstractWindowTemplate.html */ \"./node_modules/cordova-sites/dist/client/html/Framework/Fragment/abstractWindowTemplate.html\");\nclass AbstractWindowFragment extends AbstractFragment_1.AbstractFragment {\n constructor(site, view, position, title, id) {\n super(site, template);\n this.position = {\n x: 0,\n y: 0,\n anchorY: \"top\",\n anchorX: \"left\"\n };\n this.title = \"\";\n this._margin = { x: 0, y: 0 };\n this.saveData = {};\n this.state = \"normal\";\n this.popupWindow = null;\n this.translateTitle = true;\n this.position = Object.assign({ anchorY: \"top\", anchorX: \"left\" }, position);\n this.title = Helper_1.Helper.nonNull(title, \"&nbsp;\");\n if (id) {\n this.id = \"window-\" + id;\n }\n this._viewPromise = Promise.all([this._viewPromise, ViewInflater_1.ViewInflater.getInstance().load(view)]).then(res => {\n res[0].querySelector(\"#child-view\").replaceWith(res[1]);\n ViewInflater_1.ViewInflater.replaceWithChildren(res[1]);\n this._view = res[0];\n return res[0];\n }).catch(e => console.error(e));\n }\n setTitle(title) {\n if (this._titleElement) {\n ViewHelper_1.ViewHelper.removeAllChildren(this._titleElement);\n this._titleElement.appendChild(this.translateTitle ? Translator_1.Translator.makePersistentTranslation(title) : document.createTextNode(title));\n }\n this.title = title;\n }\n getDimension() {\n let computedStyle = window.getComputedStyle(this._container);\n let width = parseFloat(computedStyle.getPropertyValue(\"width\"));\n let height = parseFloat(computedStyle.getPropertyValue(\"height\"));\n return { x: Math.ceil(width) - this._margin.x, y: Math.ceil(height) - this._margin.y };\n }\n setDimension(x, y) {\n x += this._margin.x;\n y += this._margin.y;\n this._container.style.width = x + \"px\";\n this._container.style.height = y + \"px\";\n this.saveData.dimension = {\n x: x,\n y: y,\n };\n this._checkPositionAndDimension();\n this.save();\n }\n onViewLoaded() {\n const _super = Object.create(null, {\n onViewLoaded: { get: () => super.onViewLoaded }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onViewLoaded.call(this);\n this._container = this.findBy(\".window-container\");\n if (this.position.width || this.position.height) {\n this._container.style.width = this.position.width + \"px\";\n this._container.style.height = this.position.height + \"px\";\n }\n this._window = this.findBy(\".window\");\n this._titleElement = this.findBy(\"#title\");\n this._resizeElements = {\n x: [\n this._window,\n this.findBy(\".window-resize.left\"),\n this.findBy(\".window-resize.right\")\n ],\n y: [\n this._window,\n this._titleElement,\n this.findBy(\".window-resize.top\"),\n this.findBy(\".window-resize.bottom\")\n ],\n };\n yield this.load();\n this._checkPositionAndDimension();\n // this.moveTo(this.position.x, this.position.y);\n this.setTitle(this.title);\n this.addListeners();\n const buttonContainer = this.findBy(\"#title-buttons\");\n if (buttonContainer) {\n buttonContainer.remove();\n this._titleElement.parentNode.appendChild(buttonContainer);\n buttonContainer.querySelectorAll(\".title-button\").forEach(button => {\n button.addEventListener(\"click\", e => {\n this.onButtonClick(button.id, button, e);\n });\n });\n }\n return res;\n });\n }\n addListeners() {\n return __awaiter(this, void 0, void 0, function* () {\n let resizeStart = null;\n let multiplier;\n let dimension;\n let resizeStartListener = (x, y, e) => {\n if (e.target.classList.contains(\"window-resize\")) {\n e.stopPropagation();\n resizeStart = { x: x, y: y };\n let direction = e.target.dataset[\"direction\"].split(\",\");\n multiplier = { x: parseInt(direction[0]), y: parseInt(direction[1]) };\n dimension = this.getDimension();\n }\n };\n this.findBy(\".window-resize\", true).forEach(element => {\n element.addEventListener(\"mousedown\", (e) => {\n resizeStartListener(e.clientX, e.clientY, e);\n });\n });\n let mouseDownPos = null;\n let pos = null;\n let moveStartListener = (x, y, e) => {\n if (e.target === this._container || e.target.closest(\"#title\") === this._titleElement) {\n mouseDownPos = { x: x, y: y };\n pos = Object.assign({}, this.getPosition()); //Make copy\n this._container.classList.add(\"moving\");\n }\n this.makeActiveWindow();\n };\n this._container.addEventListener(\"mousedown\", (e) => {\n moveStartListener(e.clientX, e.clientY, e);\n });\n this._container.addEventListener(\"touchstart\", (e) => {\n if (e.touches.length === 1) {\n moveStartListener(e.touches[0].clientX, e.touches[0].clientY, e);\n }\n });\n let moveListener = (x, y) => {\n if (resizeStart !== null) {\n let diff = {\n x: (x - resizeStart.x) * (multiplier.x),\n y: (y - resizeStart.y) * (multiplier.y)\n };\n dimension = { x: dimension.x + diff.x, y: dimension.y + diff.y };\n this.setDimension(dimension.x, dimension.y);\n //TODO diff für Center berechnen...\n let moveDiff = { x: 0, y: 0 };\n if (multiplier.x * (this.position.anchorX === \"left\" ? 1 : -1) < 0) {\n moveDiff.x = diff.x * (this.position.anchorX === \"left\" ? -1 : 1);\n }\n if (multiplier.y * (this.position.anchorY === \"top\" ? 1 : -1) < 0) {\n moveDiff.y = diff.y * (this.position.anchorY === \"top\" ? -1 : 1);\n }\n this.moveAt(moveDiff.x, moveDiff.y);\n resizeStart = { x: x, y: y };\n }\n else if (mouseDownPos !== null) {\n let diff = {\n x: x - mouseDownPos.x,\n y: y - mouseDownPos.y,\n };\n mouseDownPos = { x, y };\n // const newPos = {x: pos.x + diff.x, y: pos.y + diff.y};\n this.moveAt(diff.x, diff.y);\n }\n };\n window.addEventListener(\"mousemove\", (e) => {\n moveListener(e.clientX, e.clientY);\n });\n window.addEventListener(\"touchmove\", (e) => {\n if (e.touches.length === 1) {\n moveListener(e.touches[0].clientX, e.touches[0].clientY);\n }\n });\n let endListener = (x, y, e) => {\n mouseDownPos = null;\n resizeStart = null;\n this._container.classList.remove(\"moving\");\n };\n window.addEventListener(\"mouseup\", (e) => {\n endListener(e.clientX, e.clientY, e);\n });\n window.addEventListener(\"touchend\", (e) => {\n if (e.touches.length === 0 && e.changedTouches.length === 1) {\n endListener(e.changedTouches[0].clientX, e.changedTouches[0].clientY, e);\n }\n });\n this._container.addEventListener(\"dblclick\", (e) => {\n if (e.target === this._container || e.target.closest(\"#title\") === this._titleElement) {\n this.toggleMinimize();\n }\n });\n window.addEventListener(\"resize\", () => {\n this._checkPositionAndDimension();\n });\n window.addEventListener(\"beforeunload\", () => {\n if (this.popupWindow) {\n this.id = null; //disable saving, since it should\n this.popupWindow.close();\n }\n });\n });\n }\n makeActiveWindow() {\n let activeWindow = document.querySelector(\".window-container.active-window\");\n if (activeWindow && activeWindow !== this._container) {\n activeWindow.classList.remove(\"active-window\");\n }\n this._container.classList.add(\"active-window\");\n }\n load() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.id) {\n const saveData = yield NativeStoragePromise_1.NativeStoragePromise.getItem(this.id);\n if (saveData) {\n this.saveData = saveData;\n if (saveData.dimension) {\n this.setDimension(saveData.dimension.x, saveData.dimension.y);\n }\n if (saveData.position) {\n this.position = saveData.position;\n this._checkPositionAndDimension();\n }\n if (saveData.state) {\n switch (saveData.state) {\n case \"minimized\": {\n this.toggleMinimize();\n break;\n }\n case \"maximized\": {\n this.toggleMaximize();\n break;\n }\n case \"popup\": {\n this._viewLoadedPromise.then(() => {\n this.openInNewWindow();\n });\n break;\n }\n }\n }\n }\n }\n });\n }\n save() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.id) {\n yield NativeStoragePromise_1.NativeStoragePromise.setItem(this.id, this.saveData);\n }\n });\n }\n toggleMinimize() {\n if (this.state !== \"popup\") {\n this._container.classList.toggle(\"minimized\");\n this._container.classList.remove(\"maximized\");\n if (!this._container.classList.contains(\"minimized\")) {\n this.resizeToContent();\n this.state = \"normal\";\n }\n else {\n this.state = \"minimized\";\n }\n this.saveData.state = this.state;\n this.save();\n }\n }\n toggleMaximize() {\n if (this.state !== \"popup\") {\n this._container.classList.toggle(\"maximized\");\n this._container.classList.remove(\"minimized\");\n if (!this._container.classList.contains(\"maximized\")) {\n this.resizeToContent();\n this.state = \"normal\";\n }\n else {\n this.state = \"maximized\";\n }\n this.saveData.state = this.state;\n this.save();\n }\n }\n resizeToContent() {\n if (this._window) {\n let diff = {\n x: this._window.scrollWidth - this._window.clientWidth,\n y: this._window.scrollHeight - this._window.clientHeight,\n };\n let dimension = this.getDimension();\n if (diff.x === 0) {\n let sum = 0;\n this._resizeElements.x.forEach(e => sum += parseFloat(window.getComputedStyle(e).getPropertyValue(\"width\")));\n diff.x = Math.ceil(sum) - dimension.x;\n }\n if (diff.y === 0) {\n let sum = 0;\n this._resizeElements.y.forEach(e => sum += parseFloat(window.getComputedStyle(e).getPropertyValue(\"height\")));\n diff.y = Math.ceil(sum) - dimension.y;\n }\n dimension.x += diff.x;\n dimension.y += diff.y;\n if (this.state === \"normal\") {\n this.setDimension(dimension.x, dimension.y);\n }\n this._checkPositionAndDimension();\n }\n }\n getTopLeftCornerPosition() {\n const dimension = this.getDimension();\n let x = this.position.x;\n if (this.position.anchorX === \"center\") {\n x += window.innerWidth / 2 - dimension.x / 2;\n }\n else if (this.position.anchorX === \"right\") {\n x += window.innerWidth - dimension.x;\n }\n let y = this.position.y;\n if (this.position.anchorY === \"center\") {\n y += window.innerHeight / 2 - dimension.y / 2;\n }\n else if (this.position.anchorY === \"bottom\") {\n y += window.innerHeight - dimension.y;\n }\n if (x < 0) {\n x = 0;\n }\n if (y < 0) {\n y = 0;\n }\n return { x, y };\n }\n getCenterCenterPosition() {\n const dimension = this.getDimension();\n const topLeft = this.getTopLeftCornerPosition();\n return {\n x: (topLeft.x + dimension.x / 2) - window.innerWidth / 2,\n y: (topLeft.y + dimension.y / 2) - window.innerHeight / 2\n };\n }\n getBottomRightPosition() {\n const dimension = this.getDimension();\n const topLeft = this.getTopLeftCornerPosition();\n return {\n x: Math.min((topLeft.x + dimension.x) - window.innerWidth, 0),\n y: Math.min((topLeft.y + dimension.y) - window.innerHeight, 0),\n };\n }\n _checkPositionAndDimension() {\n let dimension = this.getDimension();\n let setDimension = true;\n let dimensionChanged = false;\n if (isNaN(dimension.x)) {\n dimension.x = 0;\n setDimension = false;\n }\n if (isNaN(dimension.y)) {\n dimension.y = 0;\n setDimension = false;\n }\n let posTopLeft = this.getTopLeftCornerPosition();\n let posCenterCenter = this.getCenterCenterPosition();\n let posBottomRight = this.getBottomRightPosition();\n if (dimension.x > window.innerWidth) {\n dimensionChanged = true;\n dimension.x = window.innerWidth;\n this.position.x = 0;\n this.position.anchorX = \"left\";\n }\n else {\n if (posTopLeft.x <= Math.abs(posCenterCenter.x) && posTopLeft.x <= -1 * posBottomRight.x) {\n this.position.x = posTopLeft.x;\n this.position.anchorX = \"left\";\n }\n else if (-1 * posBottomRight.x <= Math.abs(posCenterCenter.x)) {\n this.position.x = posBottomRight.x;\n this.position.anchorX = \"right\";\n }\n else {\n this.position.x = posCenterCenter.x;\n this.position.anchorX = \"center\";\n }\n }\n if (dimension.y > window.innerHeight) {\n dimensionChanged = true;\n dimension.y = window.innerHeight;\n this.position.y = 0;\n this.position.anchorY = \"top\";\n }\n else {\n if (posTopLeft.y <= Math.abs(posCenterCenter.y) && posTopLeft.y <= -1 * posBottomRight.y) {\n this.position.y = posTopLeft.y;\n this.position.anchorY = \"top\";\n }\n else if (-1 * posBottomRight.y <= Math.abs(posCenterCenter.y)) {\n this.position.y = posBottomRight.y;\n this.position.anchorY = \"bottom\";\n }\n else {\n this.position.y = posCenterCenter.y;\n this.position.anchorY = \"center\";\n }\n }\n if (this.position.anchorY === \"top\") {\n this._container.style.top = this.position.y + \"px\";\n this._container.style.removeProperty(\"bottom\");\n }\n else if (this.position.anchorY === \"bottom\") {\n this._container.style.bottom = (-1 * this.position.y) + \"px\";\n this._container.style.removeProperty(\"top\");\n }\n else {\n this._container.style.top = \"calc(50% + \" + this.position.y.toString() + \"px - \" + (dimension.y / 2).toString() + \"px)\";\n this._container.style.removeProperty(\"bottom\");\n }\n if (this.position.anchorX === \"left\") {\n this._container.style.left = this.position.x + \"px\";\n this._container.style.removeProperty(\"right\");\n }\n else if (this.position.anchorX === \"right\") {\n this._container.style.right = (-1 * this.position.x) + \"px\";\n this._container.style.removeProperty(\"left\");\n }\n else {\n this._container.style.left = \"calc(50% + \" + this.position.x.toString() + \"px - \" + (dimension.x / 2).toString() + \"px)\";\n this._container.style.removeProperty(\"right\");\n }\n this.saveData.position = this.position;\n if (!this._container.classList.contains(\"minimized\") && setDimension && dimensionChanged) {\n this.setDimension(dimension.x, dimension.y);\n }\n }\n onStart(pauseArguments) {\n const _super = Object.create(null, {\n onStart: { get: () => super.onStart }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onStart.call(this, pauseArguments);\n this._checkPositionAndDimension();\n return res;\n });\n }\n moveAt(x, y) {\n const posTopLeft = this.getTopLeftCornerPosition();\n return this.moveTo(x + posTopLeft.x, y + posTopLeft.y);\n }\n moveTo(x, y) {\n this.position = { x: x, y: y, anchorX: \"left\", anchorY: \"top\" };\n this._checkPositionAndDimension();\n this.save();\n }\n onButtonClick(id, button, e) {\n switch (id) {\n case \"minimize-button\": {\n this.toggleMinimize();\n break;\n }\n case \"maximize-button\": {\n this.toggleMaximize();\n break;\n }\n case \"new-window-button\": {\n this.openInNewWindow();\n break;\n }\n }\n }\n openInNewWindow() {\n if (this.state === \"popup\") {\n return;\n }\n const windowProxy = window.open(\"\", \"\", \"modal=yes\");\n if (windowProxy === null) {\n new Toast_1.Toast(\"cannot open popups\").show();\n return;\n }\n this.state = \"popup\";\n this.saveData.state = this.state;\n this.save();\n const baseElement = document.createElement(\"base\");\n baseElement.href = window.location.href;\n windowProxy.document.head.appendChild(baseElement);\n const titleElement = document.createElement(\"title\");\n titleElement.innerText = this.title;\n windowProxy.document.head.appendChild(titleElement);\n document.querySelectorAll(\"link[rel='stylesheet']\").forEach(styleElem => {\n windowProxy.document.head.appendChild(styleElem.cloneNode());\n });\n const parent = this._view.parentNode;\n this._view.remove();\n this._container.classList.add(\"popup\");\n this._container.classList.remove(\"minimized\");\n this._container.classList.remove(\"maximized\");\n const translationCallback = Translator_1.Translator.getInstance().addTranslationCallback((baseElement) => {\n if (baseElement !== this._container) {\n Translator_1.Translator.getInstance().updateTranslations(this._container);\n }\n }, false);\n windowProxy.document.body.appendChild(this._view);\n windowProxy.addEventListener(\"beforeunload\", () => {\n this.state = \"normal\";\n this.saveData.state = this.state;\n this.save();\n this._view.remove();\n this._container.classList.remove(\"popup\");\n this._container.classList.remove(\"minimized\");\n this._container.classList.remove(\"maximized\");\n parent.appendChild(this._view);\n this.popupWindow = null;\n Translator_1.Translator.getInstance().removeTranslationCallback(translationCallback);\n });\n this.popupWindow = windowProxy;\n document.body.classList.forEach(className => {\n console.log(\"adding class\", className);\n windowProxy.document.body.classList.add(className);\n });\n }\n getPosition() {\n return this.position;\n }\n}\nexports.AbstractWindowFragment = AbstractWindowFragment;\n//# sourceMappingURL=AbstractWindowFragment.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/Fragment/AbstractWindowFragment.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/Fragment/AlphabeticListFragment.js":
/*!**********************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/Fragment/AlphabeticListFragment.js ***!
\**********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AlphabeticListFragment = void 0;\nconst AbstractFragment_1 = __webpack_require__(/*! ../AbstractFragment */ \"./node_modules/cordova-sites/dist/client/js/Context/AbstractFragment.js\");\nconst client_1 = __webpack_require__(/*! js-helper/dist/client */ \"./node_modules/js-helper/dist/client.js\");\nconst shared_1 = __webpack_require__(/*! js-helper/dist/shared */ \"./node_modules/js-helper/dist/shared.js\");\nconst defaultView = __webpack_require__(/*! ../../../html/Framework/Fragment/alphabeticListFragment.html */ \"./node_modules/cordova-sites/dist/client/html/Framework/Fragment/alphabeticListFragment.html\");\nclass AlphabeticListFragment extends AbstractFragment_1.AbstractFragment {\n constructor(site, view) {\n super(site, shared_1.Helper.nonNull(view, defaultView));\n this.elements = {};\n this.sideScrolling = false;\n }\n onViewLoaded() {\n const _super = Object.create(null, {\n onViewLoaded: { get: () => super.onViewLoaded }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onViewLoaded.call(this);\n //TODO font-size changing\n let sideAlphabet = this.findBy(\".alphabetic-list-sidealphabet\");\n sideAlphabet.addEventListener(\"mousedown\", () => {\n this.sideScrolling = true;\n });\n window.addEventListener(\"touchstart\", (e) => {\n this.sideScrolling = true;\n });\n window.addEventListener(\"mouseup\", () => {\n this.sideScrolling = false;\n });\n window.addEventListener(\"touchend\", () => {\n this.sideScrolling = false;\n });\n this.findBy(\".alphabet-scroll-to\", true).forEach(elem => {\n let listener = (e) => {\n if (this.sideScrolling) {\n this.findBy(\".alphabet-section.\" + elem.dataset.letter).scrollIntoView({\n behavior: \"smooth\",\n block: \"start\"\n });\n }\n };\n elem.addEventListener(\"mousedown\", (e) => {\n this.sideScrolling = true;\n listener(e);\n });\n elem.addEventListener(\"mousemove\", listener);\n elem.addEventListener(\"touchstart\", (e) => {\n this.sideScrolling = true;\n listener(e);\n });\n elem.addEventListener(\"touchmove\", listener);\n });\n this.headingElement = this.findBy(\"#alphabetic-list-heading\");\n this.renderList();\n return res;\n });\n }\n setElements(elements) {\n this.elements = {};\n Object.keys(elements).sort(function (a, b) {\n return a.toLowerCase().localeCompare(b.toLowerCase());\n }).forEach(key => {\n this.elements[key] = elements[key];\n });\n }\n setHeading(headingElement) {\n this.heading = headingElement;\n if (this.headingElement && this.heading) {\n client_1.ViewHelper.removeAllChildren(this.headingElement);\n this.headingElement.appendChild(this.heading);\n }\n }\n renderElement(element) {\n console.warn(\"should be overloaded?\");\n let elem = document.createElement(\"div\");\n elem.innerText = element;\n return elem;\n }\n renderList() {\n client_1.ViewHelper.removeAllChildren(this.headingElement);\n if (this.heading) {\n this.headingElement.appendChild(this.heading);\n }\n this.findBy(\".alphabet-section\", true).forEach(section => {\n client_1.ViewHelper.removeAllChildren(section);\n });\n let currentLetter = 'A';\n let currentSegment = this.findBy(\".alphabet-section.A\");\n Object.keys(this.elements).forEach(key => {\n let newLetter = key.trim().substring(0, 1).toUpperCase();\n if (newLetter !== currentLetter) {\n currentLetter = newLetter;\n let newSegment = this.findBy(\".alphabet-section.\" + newLetter);\n if (newSegment !== null) {\n currentSegment = newSegment;\n }\n }\n let element = this.renderElement(this.elements[key]);\n currentSegment.appendChild(element);\n });\n }\n}\nexports.AlphabeticListFragment = AlphabeticListFragment;\n//# sourceMappingURL=AlphabeticListFragment.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/Fragment/AlphabeticListFragment.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/Fragment/TabFragment.js":
/*!***********************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/Fragment/TabFragment.js ***!
\***********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TabFragment = void 0;\nconst AbstractFragment_1 = __webpack_require__(/*! ../AbstractFragment */ \"./node_modules/cordova-sites/dist/client/js/Context/AbstractFragment.js\");\nconst defaultTabView = __webpack_require__(/*! ../../../html/Framework/Fragment/tabFragment.html */ \"./node_modules/cordova-sites/dist/client/html/Framework/Fragment/tabFragment.html\");\nconst Helper_1 = __webpack_require__(/*! ../../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nconst Translator_1 = __webpack_require__(/*! ../../Translator */ \"./node_modules/cordova-sites/dist/client/js/Translator.js\");\nconst client_1 = __webpack_require__(/*! js-helper/dist/client */ \"./node_modules/js-helper/dist/client.js\");\nclass TabFragment extends AbstractFragment_1.AbstractFragment {\n constructor(site, view) {\n super(site, Helper_1.Helper.nonNull(view, defaultTabView));\n this.lastTabId = 0;\n this.activeTab = null;\n this.onTabChangeListener = null;\n this.tabs = new Map();\n this.tabViewPromise = this._viewLoadedPromise;\n }\n onViewLoaded() {\n const _super = Object.create(null, {\n onViewLoaded: { get: () => super.onViewLoaded }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onViewLoaded.call(this);\n this.nameContainer = this.findBy(\".tab-names\");\n this.nameButton = this.findBy(\".tab-button-template\");\n this.nameButton.classList.remove(\"tab-button-template\");\n this.nameButton.remove();\n this.tabContent = this.findBy(\".tab-content\");\n this.tabSite = this.findBy(\".tab-site-template\");\n this.tabSite.classList.remove(\"tab-site-template\");\n this.tabSite.remove();\n return res;\n });\n }\n addFragment(name, fragment, nameIsTranslatable) {\n super.addFragment(\".tab-content\", fragment);\n fragment._viewLoadedPromise.then(() => {\n const view = this.tabSite.cloneNode(true);\n view.appendChild(fragment._view);\n this.lastTabId++;\n const tab = {\n name: name,\n fragment: fragment,\n view: view,\n nameIsTranslatable: Helper_1.Helper.nonNull(nameIsTranslatable, true),\n button: null,\n id: this.lastTabId,\n };\n this.tabs.set(this.lastTabId, tab);\n this._viewLoadedPromise.then(() => {\n const nameElement = this.nameButton.cloneNode(true);\n nameElement.appendChild(tab.nameIsTranslatable ? Translator_1.Translator.makePersistentTranslation(name) : document.createTextNode(name));\n this.nameContainer.appendChild(nameElement);\n nameElement.addEventListener(\"click\", () => {\n this.showTab(tab.id);\n });\n tab.button = nameElement;\n if (Helper_1.Helper.isNull(this.activeTab)) {\n this.showTab(tab.id);\n }\n });\n });\n }\n showTab(tabId) {\n const tab = this.tabs.get(tabId);\n if (tab && tabId !== this.activeTab) {\n let previousActiveButton = this.findBy(\".tab-button.active\");\n if (Helper_1.Helper.isNotNull(previousActiveButton)) {\n previousActiveButton.classList.remove(\"active\");\n }\n tab.button.classList.add(\"active\");\n client_1.ViewHelper.removeAllChildren(this.tabContent);\n this.tabContent.appendChild(tab.view);\n this.activeTab = tabId;\n if (this.onTabChangeListener) {\n this.onTabChangeListener(tab);\n }\n }\n }\n setOnTabChangeListener(listener) {\n this.onTabChangeListener = listener;\n }\n}\nexports.TabFragment = TabFragment;\n//# sourceMappingURL=TabFragment.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/Fragment/TabFragment.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/Fragment/WindowPositionInterface.js":
/*!***********************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/Fragment/WindowPositionInterface.js ***!
\***********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=WindowPositionInterface.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/Fragment/WindowPositionInterface.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/Menu/Menu.js":
/*!************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/Menu/Menu.js ***!
\************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Menu = void 0;\nconst Helper_1 = __webpack_require__(/*! ../../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nconst MenuAction_1 = __webpack_require__(/*! ./MenuAction/MenuAction */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/MenuAction.js\");\nconst OpenSubmenuAction_1 = __webpack_require__(/*! ./MenuAction/OpenSubmenuAction */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/OpenSubmenuAction.js\");\n/**\n * Klasse für ein Menü, was im Prinzip nichts anderes als eine Collection für MenuActions ist\n * Ein Menü hat einen oder mehrere Renderer, die für die Anzeige zuständig sind\n */\nclass Menu {\n /**\n * Setzt die Renderer und die initialen Actions\n *\n * @param renderer\n * @param actions\n */\n constructor(renderer, actions) {\n this._actions = [];\n this._renderers = [];\n this._submenus = [];\n if (Array.isArray(renderer)) {\n this._renderers = renderer;\n }\n else {\n this._renderers = [renderer];\n }\n //Initialisiert onClickListener\n this._onClickListener = this._generateOnClickListener();\n //Setze die Actions so, um einzelne Actions noch zu überprüfen\n Helper_1.Helper.nonNull(actions, []).forEach(action => {\n this.addAction(action, false);\n });\n this._openSubmenuListener = null;\n }\n /**\n * Erstellt ein neues Menu auf grundlage dieses Menüs. Alle Actions & Submenüs werden ebenfalls kopiert\n * @param menu\n * @return {Menu}\n */\n copy(menu) {\n menu = Helper_1.Helper.nonNull(menu, new Menu());\n menu._actions = [];\n this._actions.forEach(action => {\n menu.addAction(action.copy());\n });\n menu._renderers = this._renderers;\n menu._onClickListener = this._onClickListener;\n return menu;\n }\n /**\n * Schließt das Menü, hauptsächlich hier zum Schließen der Submenüs.\n * Zum öffnen wird nicht so eine Funktion gebraucht, da beim öffnen nicht die untermenüs geöffnet werden sollen\n */\n close() {\n this._submenus.forEach(submenu => {\n submenu.close();\n });\n }\n /**\n * Fügt eine Action dem Menü hinzu\n *\n * @param action\n * @param redraw\n */\n addAction(action, redraw) {\n //Überprüfung, ob es die richtige Klasse ist und ob die Action nicht schon hinzugefügt wurde\n if (action instanceof MenuAction_1.MenuAction && this._actions.indexOf(action) === -1) {\n //Falls es sich um ein Submenu handelt, füge dieses hinzu\n if (action instanceof OpenSubmenuAction_1.OpenSubmenuAction) {\n this._submenus.push(action.getSubmenu());\n }\n this._actions.push(action);\n action.setMenu(this);\n //Falls redraw true (oder nicht angegeben, redraw)\n if (Helper_1.Helper.nonNull(redraw, true)) {\n this.redraw();\n }\n }\n }\n removeAllActions(redraw) {\n this._actions.forEach(action => action.setMenu(null));\n this._actions = [];\n this._submenus = [];\n //Falls redraw true (oder nicht angegeben, redraw)\n if (Helper_1.Helper.nonNull(redraw, true)) {\n this.redraw();\n }\n }\n /**\n * Sortiert die Actions und sagt danach den Renderern, dass diese das Menü zeuchnen sollen\n */\n draw() {\n try {\n this.sortActions();\n this._renderers.forEach(renderer => {\n renderer.render(this);\n });\n }\n catch (e) {\n console.error(e);\n }\n }\n /**\n * Sortiert die Actions der Order nach\n */\n sortActions() {\n this._actions = this._actions.sort(function (first, second) {\n return first.getOrder() - second.getOrder();\n });\n }\n openSubmenu(submenu) {\n if (this._openSubmenuListener) {\n this._openSubmenuListener(submenu);\n }\n }\n setOpenSubmenuListener(listener) {\n this._openSubmenuListener = listener;\n }\n /**\n * Generiert den defaultmäßigen onclick-listener.\n * @returns {Function}\n * @private\n */\n _generateOnClickListener() {\n return (event) => {\n let _element = event.target;\n //Falls es eine Action oder ein Unterlement einer Action war...\n if (_element.matches('li') || _element.matches('li *')) {\n //...finde das zugehörige Element und lese ID aus\n _element = _element.closest(\"li\");\n let actionId = parseInt(_element.dataset[\"id\"]);\n //Schaue nach, welche Action angeklickt wurde\n for (let i = 0, n = this._actions.length; i < n; i++) {\n if (this._actions[i].getId() === actionId) {\n //Falls action eine Funktion (und kein Link), sowie aktiv ist, führe action aus\n if (typeof this._actions[i].getAction() === 'function' && this._actions[i].isActivated()) {\n this._actions[i].getAction()(this._actions[i], event);\n event.preventDefault();\n }\n //Gebe gefundene Action zurück\n return this._actions[i];\n }\n }\n //Falls action nicht gefunden (da noch nicht beendet), suche in den submenüs nach der Action\n for (let i = 0, n = this._submenus.length; i < n; i++) {\n let action = this._submenus[i].click(actionId, event);\n if (action) {\n return action;\n }\n }\n }\n return null;\n };\n }\n /**\n * Setzt den OnClickListener\n *\n * @param listener\n */\n setOnClickListener(listener) {\n this._onClickListener = listener;\n }\n /**\n * Gibt den OnClickListener zurück\n *\n * @returns {*}\n */\n getOnClickListener() {\n return this._onClickListener;\n }\n /**\n * Gibt die Actions zurück\n * @returns {Array}\n */\n getActions() {\n return this._actions;\n }\n /**\n * Triggert ein neues Rendern für eine Action. Das entsprechende ActionElement wird ausgetauscht\n * @param action\n */\n redrawAction(action) {\n this._renderers.forEach(renderer => {\n renderer._triggerRenderAction(action);\n });\n }\n /**\n * Updated das entsprechende ActionElement abhängig vom Renderer. Das Element wird nicht ausgetauscht\n * @param action\n */\n updateAction(action) {\n this._renderers.forEach(renderer => {\n renderer.updateAction(action);\n });\n }\n /**\n * alias für draw\n */\n redraw() {\n this.draw();\n }\n}\nexports.Menu = Menu;\n//# sourceMappingURL=Menu.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/Menu/Menu.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/ErrorAction.js":
/*!******************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/ErrorAction.js ***!
\******************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorAction = void 0;\nconst MenuAction_1 = __webpack_require__(/*! ./MenuAction */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/MenuAction.js\");\nconst Dialog_1 = __webpack_require__(/*! ../../../Dialog/Dialog */ \"./node_modules/cordova-sites/dist/client/js/Dialog/Dialog.js\");\nconst Translator_1 = __webpack_require__(/*! ../../../Translator */ \"./node_modules/cordova-sites/dist/client/js/Translator.js\");\nconst errorIcon = __webpack_require__(/*! ../../../../img/errorIcon.png */ \"./node_modules/cordova-sites/dist/client/img/errorIcon.png\");\nclass ErrorAction extends MenuAction_1.MenuAction {\n constructor() {\n super(\"\", () => {\n let d = new Dialog_1.Dialog(ErrorAction._errors.join(\"<br/>\"), Translator_1.Translator.translate(\"error\"));\n d.setTranslatable(false);\n d.show();\n }, MenuAction_1.MenuAction.SHOW_ALWAYS, -1000, ErrorAction.ERROR_ICON);\n this._visible = (ErrorAction._errors.length > 0);\n this._shouldTranslate = false;\n console.log(\"icon: \", ErrorAction.ERROR_ICON);\n }\n static addError(errorMessage) {\n if (this._errors.indexOf(errorMessage) === -1) {\n this._errors.push(errorMessage);\n this.getInstance().setVisibility((this._errors.length > 0));\n }\n }\n static removeError(errorMessage) {\n let index = this._errors.indexOf(errorMessage);\n if (index >= 0) {\n this._errors.splice(index, 1);\n this.getInstance().setVisibility((this._errors.length > 0));\n }\n }\n /**\n * @return ErrorAction;\n */\n static getInstance() {\n if (this._instance === null) {\n this._instance = new ErrorAction();\n }\n return this._instance;\n }\n}\nexports.ErrorAction = ErrorAction;\nErrorAction.ERROR_ICON = errorIcon;\nErrorAction._instance = null;\nErrorAction._errors = [];\n//# sourceMappingURL=ErrorAction.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/ErrorAction.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/MenuAction.js":
/*!*****************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/MenuAction.js ***!
\*****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MenuAction = void 0;\nconst Helper_1 = __webpack_require__(/*! ../../../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\n/**\n * Container für verschiedene Eigenschaften\n */\nclass MenuAction {\n /**\n * Erstellt eine MenuAction.\n * Außer name und action ist alles mit Default-werten vorbelegt\n *\n * @param name\n * @param action\n * @param showFor\n * @param order\n * @param icon\n */\n constructor(name, action, showFor, order, icon) {\n this._liClass = \"\";\n this._shouldTranslate = true;\n this._visible = true;\n this._activated = true;\n this._copies = [];\n this._menu = null;\n this._name = name;\n this._action = action;\n this._showFor = Helper_1.Helper.nonNull(showFor, MenuAction.SHOW_FOR_MEDIUM);\n this._order = Helper_1.Helper.nonNull(order, 1000);\n this._icon = icon;\n this._id = MenuAction.lastId++;\n this._liClass = \"\";\n this._shouldTranslate = true;\n this._visible = true;\n this._activated = true;\n this._menu = null;\n this._copies = [];\n }\n /**\n * Erstellt eine neue MenuAction auf grundlage dieser MenuAction. Alle Eigenschaften sind identisch, bis auf die ID\n *\n * @param action\n * @return {MenuAction}\n */\n copy(action) {\n let copiedAction = Helper_1.Helper.nonNull(action, new MenuAction());\n copiedAction._name = this._name;\n copiedAction._action = this._action;\n copiedAction._showFor = this._showFor;\n copiedAction._order = this._order;\n copiedAction._liClass = this._liClass;\n copiedAction._shouldTranslate = this._shouldTranslate;\n copiedAction._visible = this._visible;\n copiedAction._activated = this._activated;\n copiedAction._icon = this._icon;\n copiedAction._id = MenuAction.lastId++;\n this._copies.push(copiedAction);\n return copiedAction;\n // return new MenuActionSlave(this);\n }\n // _triggerCopies(fn, args){\n // this._copies.forEach(copy => {\n // copy[fn].apply(copy, args);\n // })\n // }\n /**\n * Sorgt dafür, dass die Action neu gezeichnet wird\n */\n redraw() {\n if (Helper_1.Helper.isNotNull(this._menu)) {\n this._menu.redrawAction(this);\n }\n this._copies.forEach(copy => copy.redraw());\n }\n /**\n * Sorgt dafür, dass die ActionElemente geupdatet wird\n */\n update() {\n this._menu.updateAction(this);\n this._copies.forEach(copy => copy.update());\n }\n /**\n * Gibt die Order der MenuAction zurück. Die Order bestimmt die Reihenfolge in der die Elemente angezeigt werden.\n * Je kleiner die Order, desto weiter rechts/oben werden diese angezeigt\n *\n * @returns {*}\n */\n getOrder() {\n return this._order;\n }\n /**\n * Gibt zurück, ob die MenuAction aktiv ist\n *\n * @returns {boolean}\n */\n isActivated() {\n return this._activated;\n }\n /**\n * Gibt an, ob der Name übersetzt werden soll\n *\n * @returns {boolean}\n */\n isShouldTranslate() {\n return this._shouldTranslate;\n }\n setShouldTranslate(shouldTranslate) {\n this._shouldTranslate = (shouldTranslate === true);\n this.redraw();\n }\n setVisibility(visibility) {\n this._visible = visibility;\n this.redraw();\n this._copies.forEach(copy => copy.setVisibility(visibility));\n }\n /**\n * Gibt an, ob die MenuAction sichtbar ist\n *\n * @returns {boolean}\n */\n isVisible() {\n return this._visible;\n }\n /**\n * Gibt den Namen zurück\n *\n * @returns {*}\n */\n getName() {\n return this._name;\n }\n setName(name) {\n this._name = name;\n this.redraw();\n }\n /**\n * Gibt die Action, welche beim Click ausgeführt werden soll zurück\n * @returns {string|function}\n */\n getAction() {\n return this._action;\n }\n /**\n * Gibt die ID der MenuAction zurück\n * @returns {number}\n */\n getId() {\n return this._id;\n }\n /**\n * Gibt das Icon der MenuAction zurück\n * @returns {string|null}\n */\n getIcon() {\n return this._icon;\n }\n setIcon(icon) {\n this._icon = icon;\n this.redraw();\n }\n /**\n * Gibt die View-Klasse der Action zurück\n * @returns {string}\n */\n getShowFor() {\n return this._showFor;\n }\n /**\n * Gibt eine odder mehrere extra Klasse zurück, die dem li-Element der Action hinzugefügt werden kann\n * @returns {string}\n */\n getLiClass() {\n return this._liClass;\n }\n setLiClass(cssClass) {\n this._liClass = cssClass;\n this._copies.forEach(c => c.setLiClass(cssClass));\n this.redraw();\n }\n /**\n * Gibt das zugehörige Menu zurück\n *\n * @returns {null}\n */\n getMenu() {\n return this._menu;\n }\n /**\n * Setzt das zugehörige Menu\n *\n * @param menu\n */\n setMenu(menu) {\n this._menu = menu;\n }\n}\nexports.MenuAction = MenuAction;\n/**\n * Letzte ID, die vergeben wurde. Wird beim Erstellen einer Acton um eins erhöht\n * @type {number}\n */\nMenuAction.lastId = 0;\n/**\n * Die SHOW_ALWAYS-Visibility-Klasse\n * Das Element wird bei jeder Größe in der NavBar angezeigt\n *\n * @type {string}\n */\nMenuAction.SHOW_ALWAYS = \"always\";\n/**\n * Die SHOW_FOR_SMEDIUM-Visibility-Klasse\n * Das Element wird in der NavBar angezeigt, wenn der Bildschirm mindestens die Größe \"SMedium\" (zwischen Small und Medium) hat\n *\n * @type {string}\n */\nMenuAction.SHOW_FOR_SMEDIUM = \"smedium\";\n/**\n * Die SHOW_FOR_MEDIUM-Visibility-Klasse\n * Das Element wird in der NavBar angezeigt, wenn der Bildschirm mindestens die Größe \"Medium\" hat\n *\n * @type {string}\n */\nMenuAction.SHOW_FOR_MEDIUM = \"medium\";\n/**\n * Die SHOW_FOR_LARGE-Visibility-Klasse\n * Das Element wird in der NavBar angezeigt, wenn der Bildschirm mindestens die Größe \"Large\" hat\n *\n * @type {string}\n */\nMenuAction.SHOW_FOR_LARGE = \"large\";\n/**\n * Die SHOW_FOR_MEDIUM-Visibility-Klasse\n * Das Element wird nie in der NavBar angezeigt, sondern immer nur im aufklapbaren Menu\n *\n * @type {string}\n */\nMenuAction.SHOW_NEVER = \"never\";\n//# sourceMappingURL=MenuAction.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/MenuAction.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/OpenSubmenuAction.js":
/*!************************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/OpenSubmenuAction.js ***!
\************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OpenSubmenuAction = void 0;\nconst MenuAction_1 = __webpack_require__(/*! ./MenuAction */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/MenuAction.js\");\nconst Helper_1 = __webpack_require__(/*! ../../../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\n/**\n * Action, welche ein Untermenü öffnet\n */\nclass OpenSubmenuAction extends MenuAction_1.MenuAction {\n /**\n * Bekommt ein submenu anstelle einer Action übergeben.\n * Erstellt automatisch die action zum öffnen/schließen des Menüs\n *\n * @param title\n * @param menu\n * @param showFor\n * @param order\n * @param icon\n */\n constructor(title, menu, showFor, order, icon) {\n //Erstellt die action zum schließen/öffnen des Submenüs\n super(title, action => {\n action.getSubmenu().toggle();\n action.update();\n }, showFor, order, icon);\n this._submenu = menu;\n menu.setParentAction(this);\n }\n /**\n * Erstellt eine neue MenuAction auf grundlage dieser MenuAction. Alle Eigenschaften sind identisch, bis auf die ID\n * und das Submenu, welches ebenfalls kopiert wird\n *\n * @param action\n * @return {MenuAction}\n */\n copy(action) {\n action = Helper_1.Helper.nonNull(action, new OpenSubmenuAction(null, this._submenu.copy()));\n action = super.copy(action);\n action._submenu.setParentAction(action);\n return action;\n }\n /**\n * Gibt das Submenu zurück\n *\n * @returns {*}\n */\n getSubmenu() {\n return this._submenu;\n }\n}\nexports.OpenSubmenuAction = OpenSubmenuAction;\n//# sourceMappingURL=OpenSubmenuAction.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/OpenSubmenuAction.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/StartSiteMenuAction.js":
/*!**************************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/StartSiteMenuAction.js ***!
\**************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StartSiteMenuAction = void 0;\nconst MenuAction_1 = __webpack_require__(/*! ./MenuAction */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/MenuAction.js\");\nconst App_1 = __webpack_require__(/*! ../../../App */ \"./node_modules/cordova-sites/dist/client/js/App.js\");\nclass StartSiteMenuAction extends MenuAction_1.MenuAction {\n constructor(name, site, showFor, order, icon) {\n super(name, () => {\n if (StartSiteMenuAction._app) {\n if (Array.isArray(site) && site.length >= 2) {\n StartSiteMenuAction._app.startSite(site[0], site[1]);\n }\n else {\n StartSiteMenuAction._app.startSite(site);\n }\n }\n }, showFor, order, icon);\n }\n}\nexports.StartSiteMenuAction = StartSiteMenuAction;\nStartSiteMenuAction._app = null;\nApp_1.App.addInitialization(app => {\n StartSiteMenuAction._app = app;\n});\n//# sourceMappingURL=StartSiteMenuAction.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/StartSiteMenuAction.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/Menu/NavbarFragment.js":
/*!**********************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/Menu/NavbarFragment.js ***!
\**********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NavbarFragment = void 0;\nconst AbstractFragment_1 = __webpack_require__(/*! ../AbstractFragment */ \"./node_modules/cordova-sites/dist/client/js/Context/AbstractFragment.js\");\nconst defaultViewNavbar = __webpack_require__(/*! ../../../html/siteTemplates/navbar.html */ \"./node_modules/cordova-sites/dist/client/html/siteTemplates/navbar.html\");\nconst MenuAction_1 = __webpack_require__(/*! ./MenuAction/MenuAction */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/MenuAction.js\");\nconst Helper_1 = __webpack_require__(/*! ../../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nconst Context_1 = __webpack_require__(/*! ../Context */ \"./node_modules/cordova-sites/dist/client/js/Context/Context.js\");\nconst Menu_1 = __webpack_require__(/*! ./Menu */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/Menu.js\");\nconst OpenSubmenuAction_1 = __webpack_require__(/*! ./MenuAction/OpenSubmenuAction */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/OpenSubmenuAction.js\");\nconst DropdownRenderer_1 = __webpack_require__(/*! ./Renderer/DropdownRenderer */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/Renderer/DropdownRenderer.js\");\nconst AccordionRenderer_1 = __webpack_require__(/*! ./Renderer/AccordionRenderer */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/Renderer/AccordionRenderer.js\");\nconst ColorIndicator_1 = __webpack_require__(/*! ../../ColorIndicator/ColorIndicator */ \"./node_modules/cordova-sites/dist/client/js/ColorIndicator/ColorIndicator.js\");\nconst App_1 = __webpack_require__(/*! ../../App */ \"./node_modules/cordova-sites/dist/client/js/App.js\");\n/**\n * Fragment, welches ein Menü in der Navbar anzeigt und hinzufügt.\n *\n * Technisch gesehen wird das gleiche Menü zwei mal gerendert und hinzugefügt. Einmal das Menü in der Navbar, welches\n * immer sichtbar ist und einmal das versteckte Menü, welches durch einen Toggle-Button angezeigt werden kann.\n * Dabei hat jede MenuAction eine Sichtbarkeitsklasse. Anhand der Sichtbarkeitsklasse und der Bildschirmgröße wird\n * entweder das eine oder das andere Element sichtbar, jedoch niemals beide.\n */\nclass NavbarFragment extends AbstractFragment_1.AbstractFragment {\n /**\n * Erstellt das Fragment\n * @param site\n * @param {string|Node|null} viewNavbar\n */\n constructor(site, viewNavbar) {\n super(site, Helper_1.Helper.nonNull(viewNavbar, defaultViewNavbar));\n this._menu = null;\n this._responsiveMenu = null;\n this._backgroundImage = \"\";\n this._menuActions = [];\n NavbarFragment.defaultActions.forEach(action => {\n this._menuActions.push(action.copy());\n });\n this._scrollWidget = null;\n this._canGoBack = true;\n this._logo = App_1.App.getLogo();\n }\n setLogo(logo) {\n this._logo = logo;\n if (this._view) {\n if (Helper_1.Helper.isNotNull(this._logo)) {\n this.findBy(\".logo\").classList.remove(\"hidden\");\n this.findBy(\".logo-img\").src = this._logo;\n }\n else {\n this.findBy(\".logo\").classList.add(\"hidden\");\n }\n }\n }\n setCanGoBack(canGoBack) {\n this._canGoBack = canGoBack;\n if (this._view) {\n if (this._canGoBack) {\n this.findBy(\".back-button\").classList.remove(\"hidden\");\n }\n else {\n this.findBy(\".back-button\").classList.add(\"hidden\");\n }\n }\n }\n setScrollWidget(scrollWidget) {\n this._scrollWidget = scrollWidget;\n if (this._view && this._scrollWidget) {\n let nav = this.findBy(\".top-bar > span\");\n let background = this.findBy(\".background-img\");\n let listener = () => {\n let navbarElem = this.findBy(\"nav.top-bar\");\n if (nav.getBoundingClientRect().bottom >= background.getBoundingClientRect().bottom) {\n navbarElem.classList.add(\"solid\");\n }\n else {\n navbarElem.classList.remove(\"solid\");\n }\n };\n background.addEventListener(\"load\", listener);\n scrollWidget.addEventListener(\"scroll\", listener);\n requestAnimationFrame(listener);\n }\n }\n setBackgroundImage(backgroundImage) {\n this._backgroundImage = backgroundImage;\n if (this._view) {\n let navbarElem = this.findBy(\"nav.top-bar\");\n if (Helper_1.Helper.isNotNull(this._backgroundImage)) {\n let imgElem = this.findBy(\".background-img\");\n let colorIndicator = ColorIndicator_1.ColorIndicator.getInstance();\n // navbarElem.classList.add(\"color-black\");\n imgElem.addEventListener(\"load\", () => {\n if (this._backgroundImage !== \"\") {\n let color = (colorIndicator.getAverageImgColor(imgElem, undefined, 150));\n let textColor = colorIndicator.invertColorBW(color);\n if (textColor.r === 0 && textColor.g === 0 && textColor.b === 0) {\n navbarElem.classList.remove(\"color-white\");\n navbarElem.classList.add(\"color-black\");\n }\n else {\n navbarElem.classList.remove(\"color-black\");\n navbarElem.classList.add(\"color-white\");\n }\n }\n else {\n navbarElem.classList.remove(\"color-black\");\n navbarElem.classList.remove(\"color-white\");\n }\n });\n requestAnimationFrame(() => {\n let heightElement = navbarElem.querySelector(\".grid-container\");\n navbarElem.style = \"min-height:\" + heightElement.getBoundingClientRect().height + \"px\";\n if (\"ResizeObserver\" in window) {\n // @ts-ignore\n const resizeObserver = new ResizeObserver(entries => {\n entries.forEach(entry => {\n if (entry.borderBoxSize) {\n navbarElem.style = \"min-height:\" + entry.borderBoxSize[0].blockSize + \"px\";\n }\n else if (entry.contentRect) {\n navbarElem.style = \"min-height:\" + entry.contentRect.height + \"px\";\n }\n else {\n console.log(\"entry\", entry);\n }\n });\n });\n resizeObserver.observe(heightElement);\n }\n setTimeout(() => {\n navbarElem.style = \"min-height:\" + heightElement.getBoundingClientRect().height + \"px\";\n }, 500);\n setTimeout(() => {\n navbarElem.style = \"min-height:\" + heightElement.getBoundingClientRect().height + \"px\";\n }, 1000);\n setTimeout(() => {\n navbarElem.style = \"min-height:\" + heightElement.getBoundingClientRect().height + \"px\";\n }, 1500);\n });\n imgElem.src = this._backgroundImage;\n navbarElem.classList.add(\"with-image\");\n }\n else {\n navbarElem.classList.remove(\"with-image\");\n }\n }\n }\n /**\n * Wird aufgerufen, sobald die View geladen ist\n * @returns {Promise<*>}\n */\n onViewLoaded() {\n const _super = Object.create(null, {\n onViewLoaded: { get: () => super.onViewLoaded }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onViewLoaded.call(this);\n this.setTitleElement(document.createTextNode(NavbarFragment.title));\n //Erstelle die Renderers und das Menü\n let renderers = [];\n renderers.push(new DropdownRenderer_1.DropdownRenderer(this.findBy(\"#navbar-menu-visible\")));\n renderers.push(new AccordionRenderer_1.AccordionRenderer(this.findBy(\"#navbar-menu-hidden\")));\n this._menu = new Menu_1.Menu(renderers, this._menuActions);\n this._closeListenerContainer = this.findBy(\"#navbar-close-listener-container\");\n //Falls im visible-submenu eine Submenu-Action zu sehen ist\n this._menu.setOpenSubmenuListener(() => {\n this._showCloseListener();\n });\n //Falls ein Element im Menü angeklickt wird, sollte das Menü geschlossen werden,\n //außer dadurch wird ein Untermenü geöffnet/geschlossen\n let oldListener = this._menu.getOnClickListener();\n this._menu.setOnClickListener(e => {\n if (!(oldListener(e) instanceof OpenSubmenuAction_1.OpenSubmenuAction)) {\n this.closeMenu();\n }\n });\n //Fügt close/open-Listener für den Toggle-Button hinzu\n this._responsiveMenu = this.findBy(\"#responsive-menu\");\n this.findBy(\"#responsive-menu-toggle\").onclick = () => {\n if (this._responsiveMenu.classList.contains(\"visible\")) {\n this.closeMenu();\n }\n else {\n this.openMenu();\n }\n };\n //Wenn das \"versteckte\" Menü geöffnet ist, sollte jeder Click nicht auf das Menü dieses wieder schließen\n //Dazu gibt es den navbar-close-listener der sich vor allen (außer dem Menü) befindet. Er wird nur angezeigt,\n //wenn das Menü offen ist\n let navbarFragment = this;\n this.findBy(\"#navbar-close-listener\").addEventListener(\"click\", function (e) {\n if (e.target === this) {\n navbarFragment.closeMenu();\n }\n });\n //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\n window.addEventListener('resize', () => {\n //Reicht aus, wenn Seite im Vordergrund, da bei jedem Start (durch onStart) der toggleButton geupdatet wird\n if (this._state === Context_1.Context.STATE_RUNNING) {\n this.updateToggleButton();\n }\n });\n //Rendere das Menü\n this.drawMenu();\n this.findBy(\".back-button\").addEventListener(\"click\", () => {\n this.goBack();\n });\n this.findBy(\".logo\").addEventListener(\"click\", () => {\n if (NavbarFragment.onLogoClickListener) {\n NavbarFragment.onLogoClickListener(this.getSite());\n }\n });\n this.setCanGoBack(this._canGoBack);\n this.setBackgroundImage(this._backgroundImage);\n this.setScrollWidget(this._scrollWidget);\n this.setLogo(this._logo);\n return res;\n });\n }\n goBack() {\n if (this._canGoBack) {\n this.getSite().goBack();\n }\n }\n /**\n * Jedes mal, wenn die Seite startet, update den toggleButton\n *\n * @param pauseArguments\n * @returns {Promise<void>}\n */\n onStart(pauseArguments) {\n const _super = Object.create(null, {\n onStart: { get: () => super.onStart }\n });\n return __awaiter(this, void 0, void 0, function* () {\n _super.onStart.call(this, pauseArguments);\n this.updateToggleButton();\n });\n }\n _showCloseListener() {\n if (this._closeListenerContainer) {\n this._closeListenerContainer.style.display = 'block';\n }\n }\n /**\n * Schließe das Menü\n */\n closeMenu() {\n if (Helper_1.Helper.isNotNull(this._responsiveMenu)) {\n this._responsiveMenu.classList.remove(\"visible\");\n this._view.classList.remove(\"navbar-is-open\");\n }\n if (this._closeListenerContainer) {\n this._closeListenerContainer.style.display = 'none';\n }\n if (this._menu) {\n this._menu.close();\n }\n }\n /**\n * Öffne das Menü\n */\n openMenu() {\n if (Helper_1.Helper.isNotNull(this._responsiveMenu)) {\n // this._responsiveMenu.style.display = 'block';\n this._responsiveMenu.classList.add(\"visible\");\n this._view.classList.add(\"navbar-is-open\");\n }\n this._showCloseListener();\n }\n /**\n * rendere das Menü\n */\n drawMenu() {\n if (Helper_1.Helper.isNotNull(this._menu)) {\n this._menu.draw();\n }\n }\n /**\n * Update die Sichtbarkeit des MenüButtons für das \"versteckte\" Menü\n */\n updateToggleButton() {\n //Bekomme die aktuelle Bildschirm-größe als Foundation-Klasse\n let size = NavbarFragment._getCurrentSize();\n //schaue hier nach den enthaltenen Elementen. Evtl sollte das direkt an den MenüActions gemacht werden\n let firstParentElement = this.findBy(\"#navbar-menu-visible\");\n if (\n //Es existieren Elemente für large und Bildschirmgröße ist kleiner large => ToggleButton muss angezeigt werden\n (size === \"medium\" || size === \"smedium\" || size === \"small\") &&\n firstParentElement.querySelectorAll(\".\" + MenuAction_1.MenuAction.SHOW_FOR_LARGE + \":not(.hidden)\").length > 0 ||\n //Es existieren Elemente für medium und Bildschirmgröße ist kleiner medium=> ToggleButton muss angezeigt werden\n (size === \"smedium\" || size === \"small\") &&\n firstParentElement.querySelectorAll(\".\" + MenuAction_1.MenuAction.SHOW_FOR_MEDIUM + \":not(.hidden)\").length > 0 ||\n //Es existieren Elemente für smedium und Bildschirmgröße ist kleiner medium=> ToggleButton muss angezeigt werden\n (size === \"small\") &&\n firstParentElement.querySelectorAll(\".\" + MenuAction_1.MenuAction.SHOW_FOR_SMEDIUM + \":not(.hidden)\").length > 0 ||\n //Es existieren Elemente, welche nie angezeigt werden sollen => ToggleButton muss angezeigt werden\n firstParentElement.querySelectorAll(\".\" + MenuAction_1.MenuAction.SHOW_NEVER + \":not(.hidden)\").length > 0) {\n document.getElementById(\"responsive-menu-toggle\").style.display = 'block';\n }\n else {\n document.getElementById(\"responsive-menu-toggle\").style.display = 'none';\n //schließe Menü, falls es offen war\n this.closeMenu();\n }\n }\n /**\n * Funktion zum hinzufügen von Actions\n * @param action\n */\n addAction(action) {\n this._menuActions.push(action);\n //Falls Menü schon existiert, füge Elemente hinzu\n if (Helper_1.Helper.isNotNull(this._menu)) {\n this._menu.addAction(action);\n }\n }\n /**\n * Funktion zum hinzufügen von Actions\n * @param redraw\n */\n removeAllActions(redraw) {\n this._menuActions = [];\n //Falls Menü schon existiert, füge Elemente hinzu\n if (Helper_1.Helper.isNotNull(this._menu)) {\n this._menu.removeAllActions(redraw);\n }\n }\n /**\n * Updatet das Title-Element\n * @param titleElement\n */\n setTitleElement(titleElement) {\n Helper_1.Helper.removeAllChildren(this.findBy(\"#title-element-container\")).appendChild(titleElement);\n }\n /**\n * Gibt die aktuelle Size zurück\n *\n * @returns {*}\n * @private\n */\n static _getCurrentSize() {\n let matched;\n //Queries sind paare von css-selektoren auf die Mindest-Breite und Namen\n //Queries sind so geordnet, dass größter zum schluss kommt\n let queries = NavbarFragment._getViewQueries();\n for (let i = 0; i < queries.length; i++) {\n let query = queries[i];\n //Letzter sollte matchen, daher noch nicht breaken\n if (matchMedia(query._value).matches) {\n matched = query;\n }\n }\n if (typeof matched === 'object') {\n return matched._name;\n }\n else {\n return matched;\n }\n }\n /**\n * Gibt die ViewQueries zurück, triggert die Berechnung der ViewQueries, falls das noch nicht geschehen ist\n *\n * @returns {Array}\n * @private\n */\n static _getViewQueries() {\n if (NavbarFragment.queries.length === 0) {\n NavbarFragment.queries = NavbarFragment._calculateViewQueries();\n }\n return NavbarFragment.queries;\n }\n /**\n * Berechnet die ViewQueries, bzw liest diese aus Foundation/CSS ein\n * Eine Veränderung der Werte in SASS, verändert daher auch hier die Werte\n *\n * @returns {*}\n * @private\n */\n static _calculateViewQueries() {\n //Hilfs-Funktion zum Parsen der Bildschirmgröße\n function parseStyleToObject(str) {\n let styleObject = {};\n if (typeof str !== 'string') {\n return styleObject;\n }\n str = str.trim().slice(1, -1); // browsers re-quote string style values\n if (!str) {\n return styleObject;\n }\n styleObject = str.split('&').reduce(function (ret, param) {\n const parts = param.replace(/\\+/g, ' ').split('=');\n let key = parts[0];\n let val = parts[1];\n key = decodeURIComponent(key);\n // missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n val = val === undefined ? null : decodeURIComponent(val);\n if (!ret.hasOwnProperty(key)) {\n ret[key] = val;\n }\n else if (Array.isArray(ret[key])) {\n ret[key].push(val);\n }\n else {\n ret[key] = [ret[key], val];\n }\n return ret;\n }, {});\n return styleObject;\n }\n //die Font-Family ist reiner Text. Daher übergibt Foundation die Bildchirmgröße mit den dazugehörigen Namen als\n // Font-Family in einem Element im Head\n let cssStyle = document.getElementsByClassName('foundation-mq');\n if (cssStyle.length === 0) {\n return;\n }\n let queries = [];\n //Lade Bildschirmgrößen und speichere diese als Query in einem Array\n let cssStyleElements = parseStyleToObject(window.getComputedStyle(cssStyle[0]).getPropertyValue('font-family'));\n for (let key in cssStyleElements) {\n if (cssStyleElements.hasOwnProperty(key)) {\n //Erstelle aus der Bildschirmgröße die Queries\n queries.push({\n _name: key,\n _value: 'only screen and (min-width: ' + cssStyleElements[key] + ')'\n });\n }\n }\n return queries;\n }\n /**\n * Setzt den Listener, welcher ausgeführt wird, wenn auf das Logo geklickt wird\n *\n * @param listener\n */\n static setOnLogoClickListener(listener) {\n this.onLogoClickListener = listener;\n }\n}\nexports.NavbarFragment = NavbarFragment;\nNavbarFragment.queries = [];\nNavbarFragment.onLogoClickListener = () => App_1.App.addInitialization(app => app.startStartingSite());\nNavbarFragment.title = \"MeinBerufBau\";\nNavbarFragment.defaultActions = [];\n//# sourceMappingURL=NavbarFragment.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/Menu/NavbarFragment.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/Menu/Renderer/AccordionRenderer.js":
/*!**********************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/Menu/Renderer/AccordionRenderer.js ***!
\**********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AccordionRenderer = void 0;\nconst OpenSubmenuAction_1 = __webpack_require__(/*! ../MenuAction/OpenSubmenuAction */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/OpenSubmenuAction.js\");\nconst MenuRenderer_1 = __webpack_require__(/*! ./MenuRenderer */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/Renderer/MenuRenderer.js\");\nconst Helper_1 = __webpack_require__(/*! ../../../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nconst Translator_1 = __webpack_require__(/*! ../../../Translator */ \"./node_modules/cordova-sites/dist/client/js/Translator.js\");\n/**\n * Leitet von DropdownRenderer ab, da Funktionalität fast gleich ist\n */\nclass AccordionRenderer extends MenuRenderer_1.MenuRenderer {\n /**\n * Rendert eine Action\n *\n * @param action\n * @returns {HTMLLIElement}\n */\n renderAction(action) {\n let linkElement = this.renderLinkElement(action);\n let liElement = this.renderLiElement(action);\n liElement.insertBefore(linkElement, liElement.firstChild);\n return liElement;\n }\n /**\n * Rendert das AnchorElement für eine Action\n * @param action\n * @returns {HTMLAnchorElement}\n */\n renderLinkElement(action) {\n let aElement = document.createElement(\"a\");\n if (typeof action.getAction() === 'string') {\n aElement.href = action.getAction();\n }\n if (Helper_1.Helper.isNotNull(action.getIcon())) {\n let iconElement = document.createElement(\"img\");\n iconElement.src = action.getIcon();\n iconElement.classList.add('action-image');\n if (action.isShouldTranslate()) {\n iconElement.dataset[\"translationTitle\"] = action.getName();\n iconElement.classList.add(Translator_1.Translator.getInstance().getTranslationClass());\n }\n else {\n iconElement.title = action.getName();\n }\n aElement.appendChild(iconElement);\n }\n let name = action.getName();\n // debugger;\n if (action.isShouldTranslate()) {\n name = Translator_1.Translator.makePersistentTranslation(name);\n }\n else {\n name = document.createTextNode(name);\n }\n aElement.appendChild(name);\n return aElement;\n }\n /**\n * Render das LI-Element für eine Action\n *\n * @param action\n * @returns {HTMLLIElement}\n */\n renderLiElement(action) {\n let liElement = document.createElement(\"li\");\n if (action.getLiClass().trim() !== \"\") {\n liElement.classList.add(...action.getLiClass().split(\" \"));\n }\n // liElement.appendChild(aElement);\n liElement.dataset[\"id\"] = action.getId();\n if (Helper_1.Helper.isNotNull(action.getIcon())) {\n liElement.classList.add(\"img\");\n }\n if (!action.isVisible()) {\n liElement.classList.add(\"hidden\");\n }\n liElement.classList.add(action.getShowFor());\n return liElement;\n }\n /**\n * Da abgeleitet von DropdownRenderer, muss eine Klasse wieder entfernt werden\n *\n * @param action\n * @returns {*}\n */\n renderSubmenuAction(action) {\n let submenuActionElement = super.renderSubmenuAction(action);\n submenuActionElement.classList.remove('is-dropdown-submenu-parent');\n submenuActionElement.classList.add('is-accordion-submenu-parent');\n return submenuActionElement;\n }\n /**\n * erstellt ein SubmenuParent für Accordion\n * @param action\n * @returns {HTMLUListElement}\n */\n createSubmenuParentElement(action) {\n let menuElement = document.createElement(\"ul\");\n menuElement.classList.add(\"menu\");\n menuElement.classList.add(\"vertical\");\n menuElement.classList.add(\"submenu\");\n menuElement.classList.add(\"accordion-menu\");\n menuElement.classList.add(\"is-accordion-submenu\");\n menuElement.classList.add(\"first-sub\");\n return menuElement;\n }\n /**\n * Updatet ein ActionElement\n * @param action\n */\n updateAction(action) {\n if (action instanceof OpenSubmenuAction_1.OpenSubmenuAction) {\n let submenuElement = this.getElementForAction(action).querySelector(\".submenu\");\n if (action.getSubmenu().isOpen()) {\n this.getElementForAction(action).setAttribute(\"aria-expanded\", true);\n submenuElement.classList.add(\"js-active\");\n submenuElement.style = \"\";\n }\n else {\n this.getElementForAction(action).removeAttribute(\"aria-expanded\");\n submenuElement.classList.remove(\"js-activ\");\n submenuElement.style = \"display:none;\";\n }\n }\n }\n}\nexports.AccordionRenderer = AccordionRenderer;\n//# sourceMappingURL=AccordionRenderer.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/Menu/Renderer/AccordionRenderer.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/Menu/Renderer/DropdownRenderer.js":
/*!*********************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/Menu/Renderer/DropdownRenderer.js ***!
\*********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DropdownRenderer = void 0;\nconst OpenSubmenuAction_1 = __webpack_require__(/*! ../MenuAction/OpenSubmenuAction */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/OpenSubmenuAction.js\");\nconst AccordionRenderer_1 = __webpack_require__(/*! ./AccordionRenderer */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/Renderer/AccordionRenderer.js\");\nconst Submenu_1 = __webpack_require__(/*! ../Submenu */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/Submenu.js\");\n/**\n * Erstellt ein Dropdown-Menu\n */\nclass DropdownRenderer extends AccordionRenderer_1.AccordionRenderer {\n constructor(parentElement) {\n super(parentElement);\n this._accordionMenuRenderer = new AccordionRenderer_1.AccordionRenderer();\n }\n /**\n * Rendert die SubmenuAction\n *\n * @param action\n * @returns {*}\n */\n renderSubmenuAction(action) {\n if (action.getMenu() instanceof Submenu_1.Submenu) {\n return super.renderSubmenuAction(action);\n }\n let submenuActionElement = super.renderSubmenuAction(action);\n submenuActionElement.classList.add('is-dropdown-submenu-parent');\n submenuActionElement.classList.add('opens-right');\n return submenuActionElement;\n }\n /**\n * Erstellt ein SubmenuParent\n *\n * @param action\n * @returns {HTMLUListElement}\n */\n createSubmenuParentElement(action) {\n if (action.getMenu() instanceof Submenu_1.Submenu) {\n return super.createSubmenuParentElement(action);\n }\n let menuElement = document.createElement(\"ul\");\n menuElement.classList.add(\"menu\");\n menuElement.classList.add(\"vertical\");\n menuElement.classList.add(\"submenu\");\n menuElement.classList.add(\"accordion-menu\");\n menuElement.classList.add(\"is-dropdown-submenu\");\n menuElement.classList.add(\"first-sub\");\n return menuElement;\n }\n /**\n * Updatet das Element für eine Action\n * @param action\n */\n updateAction(action) {\n if (action.getMenu() instanceof Submenu_1.Submenu) {\n return super.updateAction(action);\n }\n if (action instanceof OpenSubmenuAction_1.OpenSubmenuAction) {\n let submenuElement = this.getElementForAction(action).querySelector(\".submenu\");\n if (action.getSubmenu().isOpen()) {\n submenuElement.classList.add(\"js-dropdown-active\");\n }\n else {\n submenuElement.classList.remove(\"js-dropdown-active\");\n }\n }\n }\n}\nexports.DropdownRenderer = DropdownRenderer;\n//# sourceMappingURL=DropdownRenderer.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/Menu/Renderer/DropdownRenderer.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/Menu/Renderer/MenuRenderer.js":
/*!*****************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/Menu/Renderer/MenuRenderer.js ***!
\*****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MenuRenderer = void 0;\nconst Helper_1 = __webpack_require__(/*! ../../../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nconst OpenSubmenuAction_1 = __webpack_require__(/*! ../MenuAction/OpenSubmenuAction */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/OpenSubmenuAction.js\");\n/**\n * Rendert ein Menü\n */\nclass MenuRenderer {\n /**\n * Jeder Renderer hat ein Element, wo er die gerenderten Elemente hinzufügt\n *\n * @param parentElement\n */\n constructor(parentElement) {\n this._parentElement = parentElement;\n this._renderedElements = {};\n }\n /**\n * Stößt das Rendern an\n * @param menu\n * @param parentElement\n */\n render(menu, parentElement) {\n let actions = menu.getActions();\n //Funktion wird auch für Submenüs genutzt. Daher muss hier ein anderes parentElement übergeben werden\n parentElement = Helper_1.Helper.nonNull(parentElement, this._parentElement);\n if (Helper_1.Helper.isNotNull(parentElement)) {\n Helper_1.Helper.removeAllChildren(parentElement);\n //Füge Elemente hinzu\n actions.forEach(action => {\n parentElement.appendChild(this.getElementForAction(action));\n });\n //Setze den onclick-Listener\n parentElement.onclick = (e) => {\n if (typeof menu.getOnClickListener() === 'function') {\n menu.getOnClickListener()(e);\n }\n };\n }\n }\n /**\n * Führt das Rendern der Elemente aus und ersetzt evtl schon alte Elemente\n * Auslagern von renderAction und renderSubmenuAction zum besseren überschreiben der Funktionen.\n *\n * renderSubmenuAction und renderAction sollten nur von dieser Funktion aufgerufen werden, damit die\n * _rendererElements aktuell bleiben!\n *\n * @param action\n * @returns {HTMLElement}\n * @private\n */\n _triggerRenderAction(action) {\n let oldElement = this._renderedElements[action.getId()];\n if (action instanceof OpenSubmenuAction_1.OpenSubmenuAction) {\n this._renderedElements[action.getId()] = this.renderSubmenuAction(action);\n }\n else {\n this._renderedElements[action.getId()] = this.renderAction(action);\n }\n this.updateAction(action);\n if (Helper_1.Helper.isNotNull(oldElement)) {\n oldElement.replaceWith(this._renderedElements[action.getId()]);\n }\n return this._renderedElements[action.getId()];\n }\n /**\n * Gibt das Element zur Action. Falls es noch nicht existiert, wird dieses gerendert\n * @param action\n * @returns {*}\n */\n getElementForAction(action) {\n if (Helper_1.Helper.isNull(this._renderedElements[action.getId()])) {\n this._triggerRenderAction(action);\n }\n return this._renderedElements[action.getId()];\n }\n /**\n * Funktion zum überladen\n * @param action\n */\n renderAction(action) {\n return null;\n }\n /**\n * Funktion zum überladen\n * @param action\n */\n updateAction(action) {\n }\n /**\n * Rendert eine SubmenuAction, kann/sollte überladen werden\n * @param action\n * @returns {*}\n */\n renderSubmenuAction(action) {\n let actionElement = this.renderAction(action);\n action.getSubmenu().sortActions();\n let submenuParentElement = this.createSubmenuParentElement(action);\n this.render(action.getSubmenu(), submenuParentElement);\n actionElement.appendChild(submenuParentElement);\n return actionElement;\n }\n ;\n /**\n * Erstellt ein Element für ein Submenu. Sollte überladen werden\n * @param action\n * @returns {HTMLUListElement}\n */\n createSubmenuParentElement(action) {\n return document.createElement(\"ul\");\n }\n}\nexports.MenuRenderer = MenuRenderer;\n//# sourceMappingURL=MenuRenderer.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/Menu/Renderer/MenuRenderer.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/Menu/Submenu.js":
/*!***************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/Menu/Submenu.js ***!
\***************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Submenu = void 0;\nconst Menu_1 = __webpack_require__(/*! ./Menu */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/Menu.js\");\nconst Helper_1 = __webpack_require__(/*! ../../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nconst OpenSubmenuAction_1 = __webpack_require__(/*! ./MenuAction/OpenSubmenuAction */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/OpenSubmenuAction.js\");\n/**\n * Submenü, ein untermenü\n */\nclass Submenu extends Menu_1.Menu {\n /**\n * Constructor für ein Submenu\n *\n * Bekommt parameter für die OpenSubmenuAction übergeben und reicht diese weiter.\n * Renderer besitzt das Menü keine, da die Renderer des ParentMenus genutzt werden\n * Actions können nicht bei der Erstellung hinzugefügt werden\n *\n * @param title\n * @param showFor\n * @param order\n * @param icon\n * @param renderers\n */\n constructor(title, showFor, order, icon, renderers) {\n super(Helper_1.Helper.nonNull(renderers, []));\n this._parentAction = new OpenSubmenuAction_1.OpenSubmenuAction(title, this, showFor, order, icon);\n this._isOpen = false;\n }\n /**\n * Erstellt ein neues Menu auf grundlage dieses Menüs. Alle Actions & Submenüs werden ebenfalls kopiert\n *\n * @param menu\n * @return {Submenu}\n */\n copy(menu) {\n menu = Helper_1.Helper.nonNull(menu, new Submenu());\n menu = super.copy(menu);\n menu._isOpen = this._isOpen;\n return menu;\n }\n /**\n * Setzt die ParentAction\n *\n * @param action\n */\n setParentAction(action) {\n this._parentAction = action;\n }\n /**\n * Gibt das ParentMenu zurück\n */\n getParentMenu() {\n return this._parentAction.getMenu();\n }\n /**\n * Erstelle keinen onClickListener, damit der Listener aus dem Obermenü aufgerufen wird\n *\n * @returns {null}\n * @private\n */\n _generateOnClickListener() {\n return null;\n }\n /**\n * Wird vom Obermenü aufgerufen, um die ensprechende Action zu finden\n *\n * @param actionId\n * @param event\n * @returns {boolean}\n */\n click(actionId, event) {\n for (let i = 0, n = this._actions.length; i < n; i++) {\n if (this._actions[i].getId() === actionId) {\n if (typeof this._actions[i].getAction() === 'function' && this._actions[i].isActivated()) {\n this._actions[i].getAction()(this._actions[i], event);\n event.preventDefault();\n }\n if (!(this._actions[i] instanceof OpenSubmenuAction_1.OpenSubmenuAction)) {\n this.close();\n }\n return this._actions[i];\n }\n }\n //Falls action nicht gefunden (da noch nicht beendet), suche in den submenüs nach der Action\n for (let i = 0, n = this._submenus.length; i < n; i++) {\n let action = this._submenus[i].click(actionId, event);\n if (action) {\n return action;\n }\n }\n return null;\n }\n /**\n * Öffnet oder schließt das Menü\n */\n toggle() {\n if (this._isOpen) {\n this.close();\n }\n else {\n this.open();\n }\n }\n /**\n * öffnet das Menü und updatet die Elemente\n */\n open() {\n this._isOpen = true;\n this.openSubmenu(this);\n if (Helper_1.Helper.isNotNull(this._parentAction)) {\n this._parentAction.update();\n }\n }\n openSubmenu(submenu) {\n this.getParentMenu().openSubmenu(submenu);\n }\n /**\n * schließt das Menü und updatet die Elemente\n */\n close() {\n this._isOpen = false;\n super.close();\n if (Helper_1.Helper.isNotNull(this._parentAction)) {\n this._parentAction.update();\n }\n }\n /**\n * Gibt die ParentAction zurück\n *\n * @returns {OpenSubmenuAction}\n */\n getParentAction() {\n return this._parentAction;\n }\n /**\n * Updated eine Action. Da ein Submenu keine Renderer hat, muss es ans parentMenu weitergegeben werden\n * @param action\n */\n updateAction(action) {\n const parentMenu = this.getParentMenu();\n if (parentMenu) {\n parentMenu.updateAction(action);\n }\n }\n redrawAction(action) {\n const parentMenu = this.getParentMenu();\n if (parentMenu) {\n parentMenu.redrawAction(action);\n }\n }\n /**\n * Gibt an, ob das Submenu offen ist oder nicht\n *\n * @returns {boolean}\n */\n isOpen() {\n return this._isOpen;\n }\n}\nexports.Submenu = Submenu;\n//# sourceMappingURL=Submenu.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/Menu/Submenu.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/MenuSite.js":
/*!***********************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/MenuSite.js ***!
\***********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MenuSite = void 0;\nconst TemplateSite_1 = __webpack_require__(/*! ./TemplateSite */ \"./node_modules/cordova-sites/dist/client/js/Context/TemplateSite.js\");\nconst defaultMenuTemplate = __webpack_require__(/*! ../../html/siteTemplates/menuSite.html */ \"./node_modules/cordova-sites/dist/client/html/siteTemplates/menuSite.html\");\nconst NavbarFragment_1 = __webpack_require__(/*! ./Menu/NavbarFragment */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/NavbarFragment.js\");\nconst Context_1 = __webpack_require__(/*! ./Context */ \"./node_modules/cordova-sites/dist/client/js/Context/Context.js\");\nconst Helper_1 = __webpack_require__(/*! ../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\n/**\n * Seite benutzt das menuTemplate, welches das ContainerTemplate includiert.\n *\n * Außerdem beinhaltet die MenuSite ein NavbarFragment, wo Menüelemente hinzugefügt werden können\n */\nclass MenuSite extends TemplateSite_1.TemplateSite {\n /**\n * Constructor für eine MenuSite\n *\n * @param siteManager\n * @param view\n * @param menuTemplate\n */\n constructor(siteManager, view, menuTemplate) {\n super(siteManager, view, Helper_1.Helper.nonNull(menuTemplate, defaultMenuTemplate), \"#site-content\");\n this._navbarFragment = new NavbarFragment_1.NavbarFragment(this);\n this.addFragment(\"#navbar-fragment\", this._navbarFragment);\n }\n getNavbarFragment() {\n return this._navbarFragment;\n }\n /**\n * Während des onConstructs werden die Menüelemente hinzugefügt => aufrufen des onCreateMenu\n *\n * @param constructParameters\n * @returns {Promise<any[]>}\n */\n onConstruct(constructParameters) {\n const _super = Object.create(null, {\n onConstruct: { get: () => super.onConstruct }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = yield _super.onConstruct.call(this, constructParameters);\n this.onCreateMenu(this._navbarFragment);\n return res;\n });\n }\n onMenuPressed() {\n this._navbarFragment.openMenu();\n }\n onViewLoaded() {\n const _super = Object.create(null, {\n onViewLoaded: { get: () => super.onViewLoaded }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onViewLoaded.call(this);\n this._navbarFragment.setScrollWidget(this.findBy(\"#main-content-container\"));\n return res;\n });\n }\n /**\n * Überschreibt updateTtle, um Element in der Statusbar zu setzen\n *\n * @protected\n */\n _updateTitle() {\n super._updateTitle();\n if (this._title.element && this._state === Context_1.Context.STATE_RUNNING) {\n this._navbarFragment.setTitleElement(this._title.element);\n }\n }\n /**\n * Überschreiben durch Kinder-Klassen, um ein Menü zu erstellen\n *\n * @param {NavbarFragment} navbar\n */\n onCreateMenu(navbar) { }\n}\nexports.MenuSite = MenuSite;\n//# sourceMappingURL=MenuSite.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/MenuSite.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/SiteManager.js":
/*!**************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/SiteManager.js ***!
\**************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SiteManager = void 0;\nconst Helper_1 = __webpack_require__(/*! ../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nconst AbstractSite_1 = __webpack_require__(/*! ./AbstractSite */ \"./node_modules/cordova-sites/dist/client/js/Context/AbstractSite.js\");\nconst ViewInflater_1 = __webpack_require__(/*! ../ViewInflater */ \"./node_modules/cordova-sites/dist/client/js/ViewInflater.js\");\nconst Context_1 = __webpack_require__(/*! ./Context */ \"./node_modules/cordova-sites/dist/client/js/Context/Context.js\");\nconst Translator_1 = __webpack_require__(/*! ../Translator */ \"./node_modules/cordova-sites/dist/client/js/Translator.js\");\nconst DataManager_1 = __webpack_require__(/*! ../DataManager */ \"./node_modules/cordova-sites/dist/client/js/DataManager.js\");\nconst HistoryManager_1 = __webpack_require__(/*! ../HistoryManager */ \"./node_modules/cordova-sites/dist/client/js/HistoryManager.js\");\nconst EventManager_1 = __webpack_require__(/*! ../Legacy/EventManager/EventManager */ \"./node_modules/cordova-sites/dist/client/js/Legacy/EventManager/EventManager.js\");\n/**\n * Manager-Klasse für die Seiten\n */\nclass SiteManager {\n /**\n * Constructor für Manager. Fügt Listener für zurück (onpopstate) hinzu\n */\n constructor() {\n this._isInit = false;\n }\n /**\n *\n * @return {SiteManager}\n */\n static getInstance() {\n if (!this._instance) {\n this._instance = new SiteManager();\n }\n return this._instance;\n }\n /**\n * @param siteDivId\n * @param deepLinks\n */\n init(siteDivId, deepLinks) {\n this._siteDiv = null;\n this._siteStack = [];\n this._siteDiv = document.getElementById(siteDivId);\n this._titleTranslationCallbackId = null;\n this._appEndedListener = null;\n this._inversedDeepLinks = Helper_1.Helper.invertKeyValues(deepLinks);\n //Listener, welcher beim klicken auf Zurück oder Forward ausgeführt wird\n HistoryManager_1.HistoryManager.getInstance().setOnPopStateListener((state, direction) => {\n //Falls zurück\n if (direction === HistoryManager_1.HistoryManager.BACK) {\n this.goBack();\n }\n //Falls vorwärts\n else if (HistoryManager_1.HistoryManager.FORWARD === direction) {\n if (this._siteStack.indexOf(state.state.site) !== -1) {\n this.toForeground(state.state.site);\n }\n else {\n this.startSite(state.state.site.constructor, state.state.parameters);\n }\n }\n });\n //Cordova-Callbacks\n document.addEventListener(\"pause\", () => this._pauseSite(), false);\n document.addEventListener(\"resume\", () => __awaiter(this, void 0, void 0, function* () { return yield this._resumeSite(); }), false);\n document.addEventListener(\"menubutton\", () => {\n let site = this.getCurrentSite();\n if (Helper_1.Helper.isNotNull(site)) {\n site.onMenuPressed();\n }\n }, false);\n document.addEventListener(\"searchbutton\", () => {\n let site = this.getCurrentSite();\n if (Helper_1.Helper.isNotNull(site)) {\n site.onSearchPressed();\n }\n }, false);\n window.addEventListener(\"beforeunload\", e => {\n const returnMessage = this.beforeUnload(e);\n if (returnMessage !== null) {\n e.preventDefault();\n e.returnValue = returnMessage;\n return returnMessage;\n }\n });\n this._isInit = true;\n }\n setAppEndedListener(listener) {\n this._appEndedListener = listener;\n }\n goBack() {\n if (this._siteStack.length >= 1) {\n let site = this.getCurrentSite();\n if (site && site.onBackPressed() !== false) {\n this.endSite(site);\n }\n }\n }\n /**\n * gibt die aktuelle Seite zurück\n * @returns AbstractSite\n */\n getCurrentSite() {\n if (this._siteStack.length >= 1) {\n return this._siteStack[this._siteStack.length - 1];\n }\n return null;\n }\n /**\n * Erstellt eine neue Seite und zeigt diese an. ParamsPromise kann entweder ein Promise oder ein Objekt oder null sein.\n *\n * @param siteConstructor\n * @param paramsPromise\n * @returns {Promise<any>}\n */\n startSite(siteConstructor, paramsPromise) {\n return __awaiter(this, void 0, void 0, function* () {\n //Testen, ob der Constructor vom richtigen Typen ist\n if (!(siteConstructor.prototype instanceof AbstractSite_1.AbstractSite)) {\n throw {\n \"error\": \"wrong class given! Expected AbstractSite, given \" + siteConstructor.name\n };\n }\n EventManager_1.EventManager.trigger(\"site-manager-start-site\", {\n site: siteConstructor, paramPromise: paramsPromise\n });\n //Loading-Symbol, falls ViewParameters noch länger brauchen\n let loadingSymbol = ViewInflater_1.ViewInflater.createLoadingSymbol(\"overlay\");\n this._siteDiv.appendChild(loadingSymbol);\n //create Site\n let site = new siteConstructor(this);\n this._siteStack.unshift(site);\n //Wartet auf onConstruct, viewPromise, onViewLoaded und zeigt dann Seite\n Promise.resolve(paramsPromise).then((params) => __awaiter(this, void 0, void 0, function* () {\n site._onConstructPromise = site.onConstruct(Helper_1.Helper.nonNull(params, {}));\n yield Promise.all([site._onConstructPromise, site.getViewPromise()]);\n //If site is ended inside onConstruct, don't do anything\n if (site._state !== Context_1.Context.STATE_DESTROYED && site._state !== Context_1.Context.STATE_DESTROYING) {\n yield site.callOnViewLoaded();\n site._viewLoadedPromise.resolve();\n return this._show(site);\n }\n loadingSymbol.remove();\n })).catch((e) => {\n console.error(\"site start error for site \", siteConstructor.name, e);\n site.getFinishResolver().reject(e);\n loadingSymbol.remove();\n //Zeige alte Seite im Fehlerfall wieder an\n for (let i = this._siteStack.length - 1; i >= 0; i--) {\n if (this._siteStack[i] !== site) {\n return this._show(this._siteStack[i]);\n }\n }\n site._viewLoadedPromise.reject();\n });\n //Gebe Site-Promise zurück\n return site.getFinishPromise();\n });\n }\n updateUrl(site, args) {\n let url = this._generateUrl(site, args);\n HistoryManager_1.HistoryManager.getInstance().replaceState({\n 'site': site,\n 'parameters': args\n }, site.constructor.name, url);\n }\n _generateUrl(site, args) {\n let deepLink = this.getDeepLinkFor(site);\n let url = [location.protocol, '//', location.host, location.pathname].join('');\n if (Helper_1.Helper.isNotNull(deepLink)) {\n args[\"s\"] = deepLink;\n url = [url, DataManager_1.DataManager.buildQuery(args)].join('');\n }\n return url;\n }\n /**\n * Gibt einen DeepLink zurück\n *\n * @param site\n * @return string\n */\n getDeepLinkFor(site) {\n return this._inversedDeepLinks[site.constructor];\n }\n /**\n * Pausiert eine Seite\n *\n * @param site\n * @private\n */\n _pauseSite(site) {\n site = Helper_1.Helper.nonNull(site, this.getCurrentSite());\n if (Helper_1.Helper.isNotNull(site) && site._state === Context_1.Context.STATE_RUNNING) {\n site._pauseParameters = site.onPause();\n Helper_1.Helper.removeAllChildren(this._siteDiv).appendChild(ViewInflater_1.ViewInflater.createLoadingSymbol());\n }\n }\n /**\n * Lässt eine Seite weiterlaufen\n *\n * @param site\n * @private\n */\n _resumeSite(site) {\n return __awaiter(this, void 0, void 0, function* () {\n site = Helper_1.Helper.nonNull(site, this.getCurrentSite());\n if (Helper_1.Helper.isNotNull(site) && (site._state === Context_1.Context.STATE_PAUSED || site._state === Context_1.Context.STATE_VIEW_LOADED)) {\n yield site.getViewPromise();\n Helper_1.Helper.removeAllChildren(this._siteDiv).appendChild(site._view);\n yield Translator_1.Translator.getInstance().updateTranslations();\n if (Helper_1.Helper.isNull(site._historyId)) {\n site._historyId = HistoryManager_1.HistoryManager.getInstance().pushState({\n 'site': site,\n 'parameters': site.getParameters()\n }, site.constructor.name, this._generateUrl(site, site.getParameters()));\n }\n else {\n HistoryManager_1.HistoryManager.getInstance().stateToCurrentPosition(site._historyId);\n }\n yield site.onStart(site._pauseParameters);\n }\n });\n }\n /**\n * Zeigt eine Seite an\n *\n * @param site\n * @returns {Promise<*>}\n * @private\n */\n _show(site) {\n return __awaiter(this, void 0, void 0, function* () {\n //check if site is ended\n if (site._state === Context_1.Context.STATE_DESTROYING || site._state === Context_1.Context.STATE_DESTROYED) {\n return;\n }\n //Mache nichts, wenn Seite bereits angezeigt wird\n if (site._state === Context_1.Context.STATE_RUNNING && this.getCurrentSite() === site) {\n return;\n }\n //Speichere alte Seite\n this._pauseSite();\n //Zeige Ladesymbol\n Helper_1.Helper.removeAllChildren(this._siteDiv).appendChild(ViewInflater_1.ViewInflater.createLoadingSymbol());\n //Hinzufügen/Updaten zum SiteStack\n let currentSiteIndex = this._siteStack.indexOf(site);\n if (-1 !== currentSiteIndex) {\n this._siteStack.splice(currentSiteIndex, 1);\n }\n this._siteStack.push(site);\n //Anzeigen der Seite. Stelle sicher, dass die View wirklich geladen ist!\n return site.getViewPromise().then(() => __awaiter(this, void 0, void 0, function* () {\n //Stelle sicher, dass in der Zwischenzeit keine andere Seite gestartet wurde\n if (this.getCurrentSite() === site) {\n yield this._resumeSite(site);\n }\n }));\n });\n }\n /**\n * Beendet eine Seite. Muss nicht die aktive Seite sein\n *\n * @param site\n */\n endSite(site) {\n return __awaiter(this, void 0, void 0, function* () {\n // return site._onConstructPromise.then(async () => {\n //Aus Index entfernen\n let index = this._siteStack.indexOf(site);\n this._siteStack.splice(index, 1);\n //Seite war/ist die aktive Seite\n if (index === this._siteStack.length) {\n this._pauseSite(site);\n //Seite ist aktiv, zeige Ladesymbol\n this._siteDiv.appendChild(ViewInflater_1.ViewInflater.createLoadingSymbol('overlay'));\n site.getFinishPromise().then(() => {\n let newSiteToShow = this.getCurrentSite();\n if (Helper_1.Helper.isNotNull(newSiteToShow)) {\n this.toForeground(newSiteToShow);\n }\n });\n }\n if (this._siteStack.length <= 0) {\n console.log(\"stack is empty, starting normal site!\");\n HistoryManager_1.HistoryManager.getInstance().cutStack(0);\n HistoryManager_1.HistoryManager.getInstance().go(-1 * history.length, true);\n Helper_1.Helper.removeAllChildren(this._siteDiv).appendChild(document.createTextNode(\"App ist beendet\"));\n if (typeof this._appEndedListener === \"function\") {\n this._appEndedListener(this);\n }\n }\n site._context = Context_1.Context.STATE_DESTROYING;\n yield site.onDestroy();\n site._context = Context_1.Context.STATE_DESTROYED;\n site.getFinishResolver().resolve(site._result);\n });\n }\n /**\n * Stellt eine aktive Seite in den Vordergrund;\n * @param site\n * @returns {Promise<*>}\n */\n toForeground(site) {\n return this._show(site);\n }\n /**\n * Updated den Seitentitel. Dafür gibt es im translation-file den Key document-title (document-title-empty, falls title null),\n * der als Parameter in der Übersetzung den übergebenen Title übergeben bekommt.\n *\n * Der übergebene title wird mit den angebenenen argumenten zuerst übersetz, bevor der gesamte document-Title überstzt wird\n *\n * Wenn args === false, dann wird title nicht übersetzt\n *\n * Durch das argument titleTemplate kann der key im translation-file von document-title individuell abweichen\n *\n * @param title\n * @param args\n * @param titleTemplate\n */\n updateTitle(title, args, titleTemplate) {\n titleTemplate = Helper_1.Helper.nonNull(titleTemplate, Helper_1.Helper.isNull(title) ? \"document-title-empty\" : \"document-title\");\n if (Helper_1.Helper.isNotNull(this._titleTranslationCallbackId)) {\n Translator_1.Translator.removeTranslationCallback(this._titleTranslationCallbackId);\n }\n this._titleTranslationCallbackId = Translator_1.Translator.addTranslationCallback(() => {\n if (args !== false) {\n title = Translator_1.Translator.translate(title, args);\n }\n document.title = Translator_1.Translator.translate(titleTemplate, [title]);\n });\n }\n beforeUnload(e) {\n return this.getCurrentSite().onBeforeUnload(e);\n }\n}\nexports.SiteManager = SiteManager;\nSiteManager._instance = null;\n//# sourceMappingURL=SiteManager.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/SiteManager.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/SwipeFragment/SwipeChildFragment.js":
/*!***********************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/SwipeFragment/SwipeChildFragment.js ***!
\***********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SwipeChildFragment = void 0;\nconst AbstractFragment_1 = __webpack_require__(/*! ../AbstractFragment */ \"./node_modules/cordova-sites/dist/client/js/Context/AbstractFragment.js\");\nconst Helper_1 = __webpack_require__(/*! ../../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nclass SwipeChildFragment extends AbstractFragment_1.AbstractFragment {\n constructor(site, view) {\n super(site, view);\n this._parent = null;\n }\n onSwipeRight() {\n return __awaiter(this, void 0, void 0, function* () {\n this.previousFragment();\n });\n }\n onSwipeLeft() {\n return __awaiter(this, void 0, void 0, function* () {\n this.nextFragment();\n });\n }\n setParent(parent) {\n this._parent = parent;\n }\n nextFragment() {\n if (Helper_1.Helper.isNotNull(this._parent)) {\n this._parent.nextFragment();\n }\n }\n previousFragment() {\n if (Helper_1.Helper.isNotNull(this._parent)) {\n this._parent.previousFragment();\n }\n }\n}\nexports.SwipeChildFragment = SwipeChildFragment;\n//# sourceMappingURL=SwipeChildFragment.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/SwipeFragment/SwipeChildFragment.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/SwipeFragment/SwipeFragment.js":
/*!******************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/SwipeFragment/SwipeFragment.js ***!
\******************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SwipeFragment = void 0;\nconst AbstractFragment_1 = __webpack_require__(/*! ../AbstractFragment */ \"./node_modules/cordova-sites/dist/client/js/Context/AbstractFragment.js\");\nconst SwipeChildFragment_1 = __webpack_require__(/*! ./SwipeChildFragment */ \"./node_modules/cordova-sites/dist/client/js/Context/SwipeFragment/SwipeChildFragment.js\");\nconst Helper_1 = __webpack_require__(/*! ../../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nconst view = __webpack_require__(/*! ../../../html/Framework/Fragment/swipeFragment.html */ \"./node_modules/cordova-sites/dist/client/html/Framework/Fragment/swipeFragment.html\");\nclass SwipeFragment extends AbstractFragment_1.AbstractFragment {\n constructor(site) {\n super(site, view);\n this._activeIndex = 0;\n this._touchStart = null;\n }\n onViewLoaded() {\n const _super = Object.create(null, {\n onViewLoaded: { get: () => super.onViewLoaded }\n });\n return __awaiter(this, void 0, void 0, function* () {\n this._view.addEventListener(\"touchstart\", e => {\n this._touchStart = e.touches[0];\n }, false);\n this._view.addEventListener(\"touchend\", e => {\n this._handleSwipe(e.changedTouches[0].clientX, e.changedTouches[0].clientY);\n this._touchStart = null;\n });\n this._view.addEventListener(\"mousedown\", e => {\n this._touchStart = e;\n }, false);\n this._view.addEventListener(\"mouseup\", e => {\n this._handleSwipe(e.clientX, e.clientY);\n this._touchStart = null;\n });\n return _super.onViewLoaded.call(this);\n });\n }\n _handleSwipe(endX, endY) {\n return __awaiter(this, void 0, void 0, function* () {\n if (Helper_1.Helper.isNull(this._touchStart)) {\n return;\n }\n let touchStart = this._touchStart;\n this._touchStart = null;\n let diffX = touchStart.clientX - endX;\n if (Math.abs(touchStart.clientY - endY) <= SwipeFragment.MAX_Y\n && Math.abs(diffX) >= SwipeFragment.MIN_X) {\n if (diffX > 0) {\n yield this._fragments[this._activeIndex].onSwipeLeft();\n }\n else {\n yield this._fragments[this._activeIndex].onSwipeRight();\n }\n }\n });\n }\n onStart(pauseArguments) {\n const _super = Object.create(null, {\n onStart: { get: () => super.onStart }\n });\n return __awaiter(this, void 0, void 0, function* () {\n if (this._activeIndex >= 0 && this._activeIndex < this._fragments.length) {\n this.setActiveFragment(this._activeIndex);\n }\n return _super.onStart.call(this, pauseArguments);\n });\n }\n setActiveFragment(index) {\n if (index instanceof SwipeChildFragment_1.SwipeChildFragment) {\n index = this._fragments.indexOf(index);\n }\n if (index >= 0 && index < this._fragments.length) {\n this._activeIndex = index;\n this._fragments.forEach((frag, i) => {\n frag.setActive(i === this._activeIndex);\n });\n }\n }\n nextFragment() {\n this.setActiveFragment((this._activeIndex + 1) % this._fragments.length);\n }\n previousFragment() {\n this.setActiveFragment((this._activeIndex + this._fragments.length - 1) % this._fragments.length);\n }\n addFragment(fragment) {\n if (fragment instanceof SwipeChildFragment_1.SwipeChildFragment) {\n fragment.setParent(this);\n return super.addFragment(\".swipe-container\", fragment);\n }\n }\n}\nexports.SwipeFragment = SwipeFragment;\nSwipeFragment.MAX_Y = 80;\nSwipeFragment.MIN_X = 150;\n//# sourceMappingURL=SwipeFragment.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/SwipeFragment/SwipeFragment.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Context/TemplateSite.js":
/*!***************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Context/TemplateSite.js ***!
\***************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TemplateSite = void 0;\nconst ViewInflater_1 = __webpack_require__(/*! ../ViewInflater */ \"./node_modules/cordova-sites/dist/client/js/ViewInflater.js\");\nconst MasterSite_1 = __webpack_require__(/*! ./Delegate/MasterSite */ \"./node_modules/cordova-sites/dist/client/js/Context/Delegate/MasterSite.js\");\n/**\n * Die Seite bekommt ein Template übergeben und ersetzt in diesem Template das mit dem Selector gefundene\n * Element mit der angebenen View\n */\nclass TemplateSite extends MasterSite_1.MasterSite {\n /**\n * Constructor für eine TemplateSite\n *\n * @param siteManager\n * @param view\n * @param template\n * @param selectorToReplace\n */\n constructor(siteManager, view, template, selectorToReplace) {\n super(siteManager, template);\n this._viewPromise = Promise.all([this._viewPromise, ViewInflater_1.ViewInflater.getInstance().load(view)]).then(res => {\n res[0].querySelector(selectorToReplace).replaceWith(res[1]);\n ViewInflater_1.ViewInflater.replaceWithChildren(res[1]);\n this._view = res[0];\n return res[0];\n }).catch(e => console.error(e));\n }\n}\nexports.TemplateSite = TemplateSite;\n//# sourceMappingURL=TemplateSite.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Context/TemplateSite.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/DataManager.js":
/*!******************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/DataManager.js ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataManager = void 0;\nconst Helper_1 = __webpack_require__(/*! ./Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nconst NotOnlineError_1 = __webpack_require__(/*! ./DataManager/NotOnlineError */ \"./node_modules/cordova-sites/dist/client/js/DataManager/NotOnlineError.js\");\n/**\n * Ein Manager, welches das Laden von Resourcen übernimmt.\n */\nclass DataManager {\n /**\n * Diese Funktion sollte anstelle von dem nativen \"fetch\" verwendet werden!\n * Das native Fetch kann keine file://, welches von Cordova unter Android (und whs iOS) verwendet wird\n * Daher wird heir auf XMLHttpRequest zurückgegriffen\n *\n * @param url\n * @param useArrayBuffer\n * @returns {Promise<*>}\n */\n static fetch(url, useArrayBuffer) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise(function (resolve, reject) {\n let xhr = new XMLHttpRequest();\n useArrayBuffer = Helper_1.Helper.nonNull(useArrayBuffer, false);\n if (useArrayBuffer) {\n xhr.responseType = \"arraybuffer\";\n }\n xhr.onload = function () {\n resolve(new Response(useArrayBuffer ? xhr.response : xhr.responseText, { status: (xhr.status === 0) ? 200 : xhr.status }));\n };\n xhr.onerror = function (e) {\n console.error(e);\n debugger;\n reject(new NotOnlineError_1.NotOnlineError(\"not-online\", url));\n };\n xhr.open('GET', url);\n //set headers\n Object.keys(DataManager._additionalHeaders).forEach(header => {\n xhr.setRequestHeader(header, DataManager._additionalHeaders[header]);\n });\n xhr.send(null);\n }).then(res => {\n if (DataManager.onlineCallback) {\n DataManager.onlineCallback(true);\n }\n return res;\n }).catch(e => {\n if (DataManager.onlineCallback) {\n DataManager.onlineCallback(false);\n }\n throw e;\n });\n });\n }\n static fetchBlob(url) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise(function (resolve, reject) {\n let xhr = new XMLHttpRequest();\n xhr.onload = function (e) {\n resolve(xhr.response);\n };\n xhr.onerror = function (e) {\n console.error(e);\n debugger;\n reject(new NotOnlineError_1.NotOnlineError(\"not-online\", url));\n };\n xhr.open('GET', url);\n xhr.responseType = \"blob\";\n //set headers\n Object.keys(DataManager._additionalHeaders).forEach(header => {\n xhr.setRequestHeader(header, DataManager._additionalHeaders[header]);\n });\n xhr.send(null);\n }).then(res => {\n if (DataManager.onlineCallback) {\n DataManager.onlineCallback(true);\n }\n return res;\n }).catch(e => {\n if (DataManager.onlineCallback) {\n DataManager.onlineCallback(false);\n }\n throw e;\n });\n });\n }\n /**\n * Vereinfachung von Laden von Resourcen.\n * Lädt per GET die angegebene URL und gibt diese als JSON oder Text zurück\n *\n * @param url\n * @param format\n * @param useBasePath\n * @returns {Promise<* | void>}\n */\n static load(url, format, useBasePath) {\n return __awaiter(this, void 0, void 0, function* () {\n format = Helper_1.Helper.nonNull(format, true);\n if (format === true) {\n format = \"json\";\n }\n else if (format === false) {\n format = \"text\";\n }\n else if (format !== \"json\" && format !== \"text\") {\n format = \"raw\";\n }\n useBasePath = Helper_1.Helper.nonNull(useBasePath, true);\n if (useBasePath === true) {\n useBasePath = DataManager._basePath;\n }\n else if (typeof useBasePath !== \"string\") {\n useBasePath = \"\";\n }\n url = DataManager.basePath(url, useBasePath);\n return DataManager.fetch(url, format === \"raw\").catch(e => {\n if (DataManager.onlineCallback) {\n DataManager.onlineCallback(false);\n }\n throw new NotOnlineError_1.NotOnlineError(e, url);\n }).then(function (res) {\n if (DataManager.onlineCallback) {\n DataManager.onlineCallback(true);\n }\n if (format === \"json\") {\n return res.json();\n }\n else if (format === \"text\") {\n return res.text();\n }\n else {\n return res;\n }\n });\n });\n }\n /**\n * Vereinfachung von Laden von Resourcen.\n * Lädt per GET das angegebene Asset und gibt diese als JSON oder Text zurück\n *\n * @param url\n * @param format\n * @returns {Promise<* | void>}\n */\n static loadAsset(url, format) {\n return __awaiter(this, void 0, void 0, function* () {\n let assetPath = DataManager._assetBasePath;\n if (!url.startsWith(\"/\") && assetPath.length > 0 && !assetPath.endsWith(\"/\")) {\n assetPath += \"/\";\n }\n return this.load(url, Helper_1.Helper.nonNull(format, \"text\"), assetPath);\n });\n }\n /**\n * Wandelt ein Key-Value-Objekt in einen QueryString um\n *\n * @param values\n * @return {string}\n */\n static buildQuery(values) {\n let queryStrings = [];\n for (let k in values) {\n queryStrings.push(encodeURIComponent(k) + \"=\" + encodeURIComponent(values[k]));\n }\n return \"?\" + queryStrings.join(\"&\");\n }\n /**\n * Wandelt ein Key-Value-Objekt in einen QueryString um\n *\n * @param values\n * @return {string}\n */\n static buildQueryWithoutNullValues(values) {\n let queryValues = {};\n for (let k in values) {\n if (Helper_1.Helper.isNotNull(values[k])) {\n queryValues[k] = values[k];\n }\n }\n return this.buildQuery(queryValues);\n }\n static send(url, params) {\n return __awaiter(this, void 0, void 0, function* () {\n url = DataManager.basePath(url);\n let headers = {};\n if (!(params instanceof FormData) && typeof params === \"object\") {\n params = JSON.stringify(params);\n headers = {\n \"Content-Type\": \"application/json\"\n };\n }\n Object.keys(DataManager._additionalHeaders).forEach(header => {\n headers[header] = DataManager._additionalHeaders[header];\n });\n return fetch(url, {\n \"credentials\": \"same-origin\",\n \"method\": \"POST\",\n \"headers\": headers,\n \"body\": params,\n }).then(function (res) {\n return res.json();\n }).catch(function (e) {\n debugger;\n console.error(\"error\", e);\n if (DataManager.onlineCallback) {\n DataManager.onlineCallback(false);\n }\n return {\n \"success\": false,\n \"errors\": [\n \"not-online\"\n ]\n };\n });\n });\n }\n static basePath(url, basePath) {\n basePath = Helper_1.Helper.nonNull(basePath, DataManager._basePath);\n return basePath + ((url) ? url : \"\");\n }\n static setHeader(header, value) {\n DataManager._additionalHeaders[header] = value;\n }\n}\nexports.DataManager = DataManager;\nDataManager.onlineCallback = null;\nDataManager._additionalHeaders = {};\nDataManager._basePath = \"\";\nDataManager._assetBasePath = \"\";\n//# sourceMappingURL=DataManager.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/DataManager.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/DataManager/NotOnlineError.js":
/*!*********************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/DataManager/NotOnlineError.js ***!
\*********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NotOnlineError = void 0;\nclass NotOnlineError extends Error {\n constructor(message, url) {\n super(message + \" for url \" + url);\n this._url = url;\n }\n}\nexports.NotOnlineError = NotOnlineError;\n//# sourceMappingURL=NotOnlineError.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/DataManager/NotOnlineError.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Dialog/ButtonChooseDialog.js":
/*!********************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Dialog/ButtonChooseDialog.js ***!
\********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ButtonChooseDialog = void 0;\nconst Dialog_1 = __webpack_require__(/*! ./Dialog */ \"./node_modules/cordova-sites/dist/client/js/Dialog/Dialog.js\");\nclass ButtonChooseDialog extends Dialog_1.Dialog {\n constructor(content, title, values) {\n super(content, title);\n Object.keys(values).forEach(key => {\n this.addButton(values[key], key);\n });\n }\n}\nexports.ButtonChooseDialog = ButtonChooseDialog;\n//# sourceMappingURL=ButtonChooseDialog.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Dialog/ButtonChooseDialog.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Dialog/ChooseDialog.js":
/*!**************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Dialog/ChooseDialog.js ***!
\**************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChooseDialog = void 0;\nconst Dialog_1 = __webpack_require__(/*! ./Dialog */ \"./node_modules/cordova-sites/dist/client/js/Dialog/Dialog.js\");\nconst ViewInflater_1 = __webpack_require__(/*! ../ViewInflater */ \"./node_modules/cordova-sites/dist/client/js/ViewInflater.js\");\nconst view = __webpack_require__(/*! ../../html/Framework/Dialog/chooseDialog.html */ \"./node_modules/cordova-sites/dist/client/html/Framework/Dialog/chooseDialog.html\");\nconst Translator_1 = __webpack_require__(/*! ../Translator */ \"./node_modules/cordova-sites/dist/client/js/Translator.js\");\nconst Helper_1 = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nclass ChooseDialog extends Dialog_1.Dialog {\n constructor(valueNames, title, translateable) {\n let viewPromise = ViewInflater_1.ViewInflater.getInstance().load(view).then(view => {\n translateable = Helper_1.Helper.nonNull(translateable, true);\n let template = view.querySelector(\"#choose-value-template\");\n template.remove();\n template.removeAttribute(\"id\");\n let templateContainer = view.querySelector(\"#choose-container\");\n for (let k in valueNames) {\n let valueElem = template.cloneNode(true);\n let textElem = null;\n if (translateable) {\n textElem = Translator_1.Translator.makePersistentTranslation(valueNames[k]);\n }\n else {\n textElem = document.createElement(\"span\");\n textElem.innerText = valueNames[k];\n }\n valueElem.querySelector(\".choose-dialog-value\").appendChild(textElem);\n valueElem[\"dataset\"][\"value\"] = k;\n valueElem.addEventListener(\"click\", () => {\n this._result = k;\n this.close();\n });\n templateContainer.appendChild(valueElem);\n }\n return view;\n });\n super(viewPromise, title);\n }\n}\nexports.ChooseDialog = ChooseDialog;\n//# sourceMappingURL=ChooseDialog.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Dialog/ChooseDialog.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Dialog/ConfirmDialog.js":
/*!***************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Dialog/ConfirmDialog.js ***!
\***************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfirmDialog = void 0;\nconst Dialog_1 = __webpack_require__(/*! ./Dialog */ \"./node_modules/cordova-sites/dist/client/js/Dialog/Dialog.js\");\nconst Helper_1 = __webpack_require__(/*! ../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nclass ConfirmDialog extends Dialog_1.Dialog {\n constructor(content, title, confirmButtonText, cancelButtonText) {\n super(content, title);\n this.confirmButtonText = Helper_1.Helper.nonNull(confirmButtonText, \"confirm-button\");\n this.cancelButtonText = Helper_1.Helper.nonNull(cancelButtonText, \"cancel-button\");\n }\n show() {\n const _super = Object.create(null, {\n show: { get: () => super.show }\n });\n return __awaiter(this, void 0, void 0, function* () {\n this.addButton(this.confirmButtonText, true);\n this.addButton(this.cancelButtonText, false);\n return _super.show.call(this);\n });\n }\n close() {\n if (Helper_1.Helper.isNull(this._result)) {\n this._result = false;\n }\n return super.close();\n }\n}\nexports.ConfirmDialog = ConfirmDialog;\n//# sourceMappingURL=ConfirmDialog.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Dialog/ConfirmDialog.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Dialog/Dialog.js":
/*!********************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Dialog/Dialog.js ***!
\********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Dialog = void 0;\nconst Helper_1 = __webpack_require__(/*! ../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nconst Translator_1 = __webpack_require__(/*! ../Translator */ \"./node_modules/cordova-sites/dist/client/js/Translator.js\");\nconst ViewInflater_1 = __webpack_require__(/*! ../ViewInflater */ \"./node_modules/cordova-sites/dist/client/js/ViewInflater.js\");\nclass Dialog {\n constructor(content, title) {\n this._resolver = null;\n this._content = null;\n this._backgroundElement = null;\n this._cancelable = true;\n this._title = Helper_1.Helper.nonNull(title, \"\");\n this._translatable = true;\n this._additionalClasses = \"\";\n this._buttons = [];\n this._result = null;\n this._contentPromise = null;\n this._addedToDomePromise = new Promise(r => {\n this._addedToDomePromiseResolver = r;\n });\n if (Helper_1.Helper.isNotNull(content)) {\n this.setContent(content);\n }\n }\n setTitle(title) {\n this._title = title;\n return this;\n }\n setTranslatable(translatable) {\n this._translatable = translatable;\n }\n setAdditionalClasses(classes) {\n this._additionalClasses = classes;\n }\n getTitle() {\n return this._title;\n }\n setCancelable(cancelable) {\n this._cancelable = (cancelable === true);\n return this;\n }\n setContent(content) {\n return __awaiter(this, void 0, void 0, function* () {\n if (typeof content === \"string\" && content.endsWith(\".html\")) {\n content = ViewInflater_1.ViewInflater.getInstance().load(content);\n }\n this._contentPromise = Promise.resolve(content);\n this._content = yield this._contentPromise;\n return this;\n });\n }\n addButton(elementOrText, listenerOrResult, shouldClose) {\n shouldClose = Helper_1.Helper.nonNull(shouldClose, true);\n let button = null;\n if (typeof elementOrText === \"string\") {\n button = document.createElement(\"button\");\n button.classList.add(\"button\");\n button.classList.add(\"right\");\n button.appendChild(Translator_1.Translator.makePersistentTranslation(elementOrText));\n }\n else {\n button = elementOrText;\n }\n let self = this;\n if (typeof listenerOrResult !== \"function\") {\n let result = listenerOrResult;\n listenerOrResult = function () {\n self._result = result;\n };\n }\n let callback = null;\n if (shouldClose) {\n callback = function (e) {\n if (Helper_1.Helper.isNotNull(listenerOrResult)) {\n listenerOrResult(e);\n }\n self.close();\n };\n }\n else {\n callback = listenerOrResult;\n }\n if (Helper_1.Helper.isNotNull(callback)) {\n button.addEventListener(\"click\", callback);\n }\n this._buttons.push(button);\n }\n show() {\n return __awaiter(this, void 0, void 0, function* () {\n yield this._contentPromise;\n this._backgroundElement = this.createModalDialogElement();\n this._backgroundElement.addEventListener(\"keyup\", e => {\n if (e.key === \"Escape\" && this._cancelable) {\n this.close();\n }\n });\n document.body.appendChild(this._backgroundElement);\n yield Translator_1.Translator.getInstance().updateTranslations();\n this._addedToDomePromiseResolver();\n return new Promise((resolve) => {\n this._resolver = resolve;\n });\n });\n }\n createModalDialogElement() {\n let titleElement = document.createElement(\"span\");\n titleElement.classList.add(\"title\");\n if (this._translatable && this._title !== \"\") {\n titleElement.appendChild(Translator_1.Translator.makePersistentTranslation(this._title));\n }\n else {\n titleElement.innerHTML = this._title;\n }\n let titleBar = document.createElement(\"div\");\n titleBar.appendChild(titleElement);\n let contentContainer = document.createElement(\"div\");\n contentContainer.classList.add(\"content-container\");\n let modalDialog = document.createElement(\"div\");\n modalDialog.className = this._additionalClasses;\n modalDialog.classList.add(\"modal\");\n modalDialog.appendChild(titleBar);\n modalDialog.appendChild(contentContainer);\n let buttonBar = document.createElement(\"div\");\n buttonBar.classList.add(\"modal-button-container\");\n for (let i = 0, n = this._buttons.length; i < n; i++) {\n buttonBar.appendChild(this._buttons[i]);\n }\n if (!(this._content instanceof Node)) {\n this._content = (this._translatable) ? Translator_1.Translator.makePersistentTranslation(this._content) : document.createTextNode(this._content);\n }\n contentContainer.appendChild(this._content);\n this._backgroundElement = document.createElement(\"div\");\n this._backgroundElement.classList.add(\"background\");\n this._backgroundElement.style.display = \"block\";\n this._backgroundElement.appendChild(modalDialog);\n this._backgroundElement.querySelector(\".modal\").appendChild(buttonBar);\n if (this._cancelable) {\n let closeButton = document.createElement(\"span\");\n closeButton.classList.add(\"close\");\n closeButton.innerHTML = \"&times;\";\n titleBar.appendChild(closeButton);\n closeButton.addEventListener(\"click\", () => {\n this.close();\n });\n window.addEventListener(\"click\", (e) => {\n if (e.target === this._backgroundElement) {\n this.close();\n }\n });\n }\n return this._backgroundElement;\n }\n waitForAddedToDom() {\n return __awaiter(this, void 0, void 0, function* () {\n return this._addedToDomePromise;\n });\n }\n close() {\n this.waitForAddedToDom().then(() => {\n if (Helper_1.Helper.isNotNull(this._backgroundElement)) {\n this._backgroundElement.style.display = \"none\";\n this._backgroundElement.remove();\n this._backgroundElement = null;\n }\n });\n if (Helper_1.Helper.isNotNull(this._resolver)) {\n this._resolver(this._result);\n }\n }\n}\nexports.Dialog = Dialog;\n//# sourceMappingURL=Dialog.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Dialog/Dialog.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Dialog/ElemChooseDialog.js":
/*!******************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Dialog/ElemChooseDialog.js ***!
\******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ElemChooseDialog = void 0;\nconst Dialog_1 = __webpack_require__(/*! ./Dialog */ \"./node_modules/cordova-sites/dist/client/js/Dialog/Dialog.js\");\nconst ViewInflater_1 = __webpack_require__(/*! ../ViewInflater */ \"./node_modules/cordova-sites/dist/client/js/ViewInflater.js\");\nconst view = __webpack_require__(/*! ../../html/Framework/Dialog/chooseDialog.html */ \"./node_modules/cordova-sites/dist/client/html/Framework/Dialog/chooseDialog.html\");\nclass ElemChooseDialog extends Dialog_1.Dialog {\n constructor(valueNames, title) {\n let viewPromise = ViewInflater_1.ViewInflater.getInstance().load(view).then(view => {\n let template = view.querySelector(\"#choose-value-template\");\n template.remove();\n template.removeAttribute(\"id\");\n let templateContainer = view.querySelector(\"#choose-container\");\n for (let k in valueNames) {\n let valueElem = template.cloneNode(true);\n valueElem.querySelector(\".choose-dialog-value\").appendChild(valueNames[k]);\n valueElem[\"dataset\"][\"value\"] = k;\n valueElem.addEventListener(\"click\", () => {\n this._result = k;\n this.close();\n });\n templateContainer.appendChild(valueElem);\n }\n return view;\n });\n super(viewPromise, title);\n }\n}\nexports.ElemChooseDialog = ElemChooseDialog;\n//# sourceMappingURL=ElemChooseDialog.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Dialog/ElemChooseDialog.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Dialog/ImgChooseDialog.js":
/*!*****************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Dialog/ImgChooseDialog.js ***!
\*****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImgChooseDialog = void 0;\nconst ElemChooseDialog_1 = __webpack_require__(/*! ./ElemChooseDialog */ \"./node_modules/cordova-sites/dist/client/js/Dialog/ElemChooseDialog.js\");\nclass ImgChooseDialog extends ElemChooseDialog_1.ElemChooseDialog {\n constructor(valueNames, title) {\n let newValueNames = {};\n Object.keys(valueNames).forEach(k => {\n let elem = document.createElement(\"img\");\n elem.src = valueNames[k];\n newValueNames[k] = elem;\n });\n super(newValueNames, title);\n }\n}\nexports.ImgChooseDialog = ImgChooseDialog;\n//# sourceMappingURL=ImgChooseDialog.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Dialog/ImgChooseDialog.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Form.js":
/*!***********************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Form.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Form = void 0;\nconst DataManager_1 = __webpack_require__(/*! ./DataManager */ \"./node_modules/cordova-sites/dist/client/js/DataManager.js\");\nconst Helper_1 = __webpack_require__(/*! ./Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nconst Translator_1 = __webpack_require__(/*! ./Translator */ \"./node_modules/cordova-sites/dist/client/js/Translator.js\");\nconst Toast_1 = __webpack_require__(/*! ./Toast/Toast */ \"./node_modules/cordova-sites/dist/client/js/Toast/Toast.js\");\nclass Form {\n constructor(formElem, urlOrCallback, method) {\n this._formElem = formElem;\n this._method = Helper_1.Helper.nonNull(method, formElem[\"method\"], \"POST\");\n this._elementChangeListener = null;\n this._validators = [];\n this._isBusy = false;\n if (typeof urlOrCallback === \"string\") {\n this._submitHandler = (values) => {\n if (this._method.toLowerCase() === \"get\") {\n return (DataManager_1.DataManager.load(urlOrCallback + DataManager_1.DataManager.buildQuery(values)));\n }\n else {\n //TODO, wenn Serververbindung kommt\n // return (DataManager.send(urlOrCallback, values));\n }\n };\n }\n else {\n this._submitHandler = urlOrCallback;\n }\n this._editors = [];\n this._submitCallback = null;\n this.errorCallback = (errors) => __awaiter(this, void 0, void 0, function* () {\n yield this.setErrors(errors);\n });\n formElem.addEventListener(\"submit\", function (e) {\n return __awaiter(this, void 0, void 0, function* () {\n e.preventDefault();\n yield self.doSubmit(e);\n });\n });\n let self = this;\n [...formElem.elements].forEach(element => {\n element.addEventListener(\"change\", function () {\n if (this.value.trim() !== \"\") {\n this.classList.add(\"notEmpty\");\n }\n else {\n this.classList.remove(\"notEmpty\");\n }\n this.setCustomValidity(\"\");\n if (Helper_1.Helper.isNotNull(self._elementChangeListener)) {\n self._elementChangeListener(element, this);\n }\n this.setCustomValidity(\"\");\n if (element.accept && element.accept.indexOf(\"image\") !== -1) {\n if (element.files && element.files[0]) {\n let reader = new FileReader();\n reader.onload = e => {\n const previewElem = formElem.querySelector(\".\" + element.name + \"-preview\");\n if (previewElem) {\n previewElem.src = e.target[\"result\"];\n }\n };\n reader.readAsDataURL(element.files[0]);\n }\n else {\n formElem.querySelector(\".\" + element.name + \"-preview\").src = \"\";\n }\n }\n });\n element.addEventListener(\"keydown\", function () {\n this.setCustomValidity(\"\");\n });\n });\n }\n addValidator(validatorCallback) {\n this._validators.push(validatorCallback);\n }\n onError(errorHandler) {\n this.errorCallback = errorHandler;\n }\n addEditor(e) {\n this._editors.push(e);\n }\n doSubmit(e) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this._isBusy) {\n let res = yield this.submit();\n //TODO einbauen, wenn server dazu kommt\n // if (res[\"success\"]) {\n // if (self._submitCallback !== null) {\n // return self._submitCallback(res[\"result\"]);\n // }\n // } else if (Helper.isNotNull(self.errorCallback)) {\n // return self.errorCallback(res[\"errors\"]);\n // }\n return res;\n }\n return false;\n });\n }\n setValues(valuePromise) {\n return __awaiter(this, void 0, void 0, function* () {\n this.setIsBusy(true);\n let values = yield Promise.resolve(valuePromise);\n this.setIsBusy(false);\n for (let k in values) {\n if (Helper_1.Helper.isNotNull(this._formElem.elements[k])) {\n if (Helper_1.Helper.isNotNull(this._formElem.elements[k].options) && Helper_1.Helper.isNotNull(values[k + \"Options\"])) {\n let options = this._formElem.elements[k].options;\n for (let val in values[k + \"Options\"]) {\n let option = document.createElement(\"option\");\n option.value = val;\n option.innerText = values[k + \"Options\"][val];\n options.add(option);\n }\n }\n if (this._formElem.elements[k].type && (this._formElem.elements[k].type === \"checkbox\" || this._formElem.elements[k].type === \"radio\")) {\n this._formElem.elements[k].checked = this._formElem.elements[k].value == values[k];\n }\n else if (this._formElem.elements[k].type && this._formElem.elements[k].type === \"file\") {\n if (this._formElem.elements[k + \"-hidden\"]) {\n this._formElem.elements[k + \"-hidden\"].value = values[k];\n }\n if (this._formElem.elements[k].accept && this._formElem.elements[k].accept.indexOf(\"image\") !== -1) {\n let previewImage = this._formElem.querySelector(\".\" + k + \"-preview\");\n if (previewImage) {\n previewImage.src = values[k];\n }\n }\n }\n else {\n this._formElem.elements[k].value = Helper_1.Helper.htmlspecialcharsDecode(values[k]);\n if (this._formElem.elements[k].classList) {\n if (Helper_1.Helper.isNotNull(values[k]) && (\"\" + values[k]).trim() !== \"\") {\n this._formElem.elements[k].classList.add(\"notEmpty\");\n }\n else {\n this._formElem.elements[k].classList.remove(\"notEmpty\");\n }\n }\n }\n }\n }\n return this;\n });\n }\n getValues(filesToBase64) {\n return __awaiter(this, void 0, void 0, function* () {\n let valuesFormData = new FormData(this._formElem);\n let values = Array.from(valuesFormData[\"entries\"]()).reduce((memo, pair) => (Object.assign(Object.assign({}, memo), { [pair[0]]: pair[1] })), {});\n if (Helper_1.Helper.nonNull(filesToBase64, true)) {\n values = yield Form.filesToBase64(values);\n }\n return values;\n });\n }\n static filesToBase64(values) {\n return __awaiter(this, void 0, void 0, function* () {\n let filePromises = [];\n Object.keys(values).forEach(key => {\n if (values[key] instanceof Blob) {\n filePromises.push(new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => resolve(reader.result);\n reader.onerror = error => reject(error);\n reader.readAsDataURL(values[key]);\n }).then(base64 => values[key] = base64));\n }\n });\n yield Promise.all(filePromises);\n return values;\n });\n }\n setElementChangeListener(listener) {\n this._elementChangeListener = listener;\n }\n clearErrors() {\n Object.keys(this._formElem.elements).forEach(elemKey => {\n this._formElem.elements[elemKey].setCustomValidity(\"\");\n });\n }\n setErrors(errors) {\n let hasElem = false;\n let firstError = null;\n // let notCatchedErrors = [];\n for (let k in errors) {\n if (Helper_1.Helper.isNotNull(this._formElem.elements[k]) && this._formElem.elements[k].type !== \"hidden\"\n && Helper_1.Helper.isNull(this._formElem.elements[k].readonly) && (Helper_1.Helper.isNull(this._formElem.elements[k].disabled) || !this._formElem.elements[k].disabled)) {\n this._formElem.elements[k].setCustomValidity(Translator_1.Translator.translate(Helper_1.Helper.nonNull(errors[k], \"form-default-error\")));\n hasElem = true;\n }\n else {\n new Toast_1.Toast(Helper_1.Helper.nonNull(errors[k], \"form-default-error\")).show();\n }\n // if (Helper.isNull(firstError)) {\n // firstError = ;\n // }\n }\n // if (!hasElem && Helper.isNotNull(firstError)) {\n // for (let k in this._formElem.elements) {\n // if (this._formElem.elements[k].type !== \"hidden\") {\n // this._formElem.elements[k].setCustomValidity(Translator.translate(firstError));\n // hasElem = true;\n // break;\n // }\n // }\n // }\n if (hasElem) {\n \"reportValidity\" in this._formElem && this._formElem.reportValidity();\n }\n }\n setIsBusy(isBusy) {\n this._isBusy = isBusy;\n if (this._isBusy) {\n this._formElem.classList.add(\"sending\");\n }\n else {\n this._formElem.classList.remove(\"sending\");\n }\n }\n submit() {\n return __awaiter(this, void 0, void 0, function* () {\n this._editors.forEach(e => e.updateSourceElement());\n this.setIsBusy(true);\n if (yield this.validate()) {\n let res = false;\n try {\n res = yield (this._submitHandler(yield this.getValues(), this));\n }\n catch (e) {\n console.error(e);\n }\n finally {\n this.setIsBusy(false);\n }\n return res;\n }\n this.setIsBusy(false);\n return false;\n });\n }\n validate() {\n return __awaiter(this, void 0, void 0, function* () {\n if (\"reportValidity\" in this._formElem && !this._formElem.reportValidity()) {\n return false;\n }\n let values = yield this.getValues();\n let res = yield Helper_1.Helper.asyncForEach(this._validators, (validator) => __awaiter(this, void 0, void 0, function* () {\n return validator(values, this);\n }), true);\n let hasErrors = false;\n let errors = {};\n res.forEach(value => {\n if (value !== true) {\n hasErrors = true;\n if (typeof value === \"object\") {\n for (let k in value) {\n errors[k] = value[k];\n }\n }\n }\n });\n if (hasErrors) {\n yield this.setErrors(errors);\n return false;\n }\n return true;\n });\n }\n onSubmit(callback) {\n this._submitCallback = callback;\n }\n getFormElement() {\n return this._formElem;\n }\n}\nexports.Form = Form;\n//# sourceMappingURL=Form.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Form.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/HistoryManager.js":
/*!*********************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/HistoryManager.js ***!
\*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HistoryManager = void 0;\nconst Helper_1 = __webpack_require__(/*! ./Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\n/**\n * Manager, welcher sich um die Manipulation von der Historie kümmert\n */\nclass HistoryManager {\n /**\n * Constructor für den Manager. Fügt den onPopstateListener hinzu\n */\n constructor() {\n this._lastStateId = -1;\n this._states = {};\n this._stack = [];\n this._ignoreOnPopState = false;\n this._isUpdateNativeStack = false;\n this._onPopStateListener = null;\n this._currentStackIndex = -1;\n window.onpopstate = (e) => {\n //Wenn nativeStack geupdated wird, mache nichts\n if (this._isUpdateNativeStack) {\n this._isUpdateNativeStack = false;\n return;\n }\n let direction = e.state[\"type\"];\n this._currentStackIndex += direction;\n this._updateNativeHistoryStack();\n //Wenn popState ignoriert werden soll, mache ebenfalls nichts außer Stack updaten\n if (this._ignoreOnPopState) {\n this._ignoreOnPopState = false;\n return;\n }\n //Wenn Listener gesetzt, hole daten und führe Listener aus\n if (typeof this._onPopStateListener === 'function') {\n let data = {};\n if (this._stack.length > this._currentStackIndex && this._currentStackIndex >= 0) {\n data = this._states[this._stack[this._currentStackIndex]];\n }\n this._onPopStateListener(data, direction, e);\n }\n };\n this._updateNativeHistoryStack();\n }\n /**\n * Updated den History-Stack innerhalb des Browsers\n *\n * @param url\n * @private\n */\n _updateNativeHistoryStack(url) {\n url = Helper_1.Helper.nonNull(url, window.location.href);\n //setze das weitere zurückgehen\n if (this._currentStackIndex >= 0) {\n history.pushState({\n \"type\": HistoryManager.BACK,\n }, \"back\", url);\n }\n history.pushState({\n \"type\": HistoryManager.CURRENT,\n }, \"current\", url);\n if (this._currentStackIndex < this._stack.length - 1) {\n history.pushState({\n \"type\": HistoryManager.FORWARD,\n }, \"forward\", url);\n this._isUpdateNativeStack = true;\n history.go(-1);\n }\n }\n /**\n * Generiert einen neuen History-Eintrag. Gibt die ID des Eintrages zurück\n *\n * @param value\n * @param name\n * @param url\n *\n * @return {number}\n */\n pushState(value, name, url) {\n let newState = {\n state: value,\n title: name,\n url: url\n };\n this._lastStateId++;\n this._states[this._lastStateId] = newState;\n this._currentStackIndex++;\n this._stack.splice(this._currentStackIndex, this._stack.length, this._lastStateId);\n this._updateNativeHistoryStack(url);\n return this._lastStateId;\n }\n /**\n * Ersetzt den Eintrag mit der gegebenen ID. Ist die ID nicht gegeben, wird der aktuelle Eintrag ersetzt\n *\n * @param value\n * @param name\n * @param url\n * @param id\n */\n replaceState(value, name, url, id) {\n id = Helper_1.Helper.nonNull(id, this._stack[this._currentStackIndex]);\n if (this._stack.length > this._currentStackIndex && this._currentStackIndex >= 0) {\n this._states[id] = {\n state: value,\n title: name,\n url: url\n };\n this._updateNativeHistoryStack(url);\n }\n }\n /**\n * Verschiebt den Eintrag mit der entsprechenden ID an die aktuell aktive Stelle\n * @param id\n */\n stateToCurrentPosition(id) {\n if (Helper_1.Helper.isNotNull(this._states[id])) {\n let oldStackPosition = this._stack.indexOf(id);\n if (oldStackPosition !== -1) {\n this._stack.splice(oldStackPosition, 1);\n this._stack.splice(this._currentStackIndex + ((oldStackPosition <= this._currentStackIndex) ? -1 : 0), 0, id);\n }\n }\n }\n /**\n * Gehe um to in der Historie\n *\n * @param to\n * @param ignoreOnPopState\n */\n go(to, ignoreOnPopState) {\n this._ignoreOnPopState = (Helper_1.Helper.nonNull(ignoreOnPopState, false) === true);\n history.go(to);\n }\n /**\n * Entferne alle Einträge ab at (inklusive). Wenn at nicht gesetzt ist, wird alles über der aktuellen position abgeschnitten\n * @param at\n */\n cutStack(at) {\n at = Helper_1.Helper.nonNull(at, this._currentStackIndex + 1);\n this._stack.splice(at);\n this._currentStackIndex = Math.min(this._currentStackIndex, this._stack.length - 1);\n this._updateNativeHistoryStack();\n }\n /**\n * Alias für this.go(-1)\n */\n back() {\n this.go(-1);\n }\n /**\n * Alias für this.go(1)\n */\n forward() {\n this.go(+1);\n }\n /**\n * Setzt den onPopStateListener\n *\n * @param listener\n */\n setOnPopStateListener(listener) {\n this._onPopStateListener = listener;\n }\n /**\n * Singelton-Getter\n * @return {HistoryManager}\n */\n static getInstance() {\n if (Helper_1.Helper.isNull(HistoryManager._instance)) {\n HistoryManager._instance = new HistoryManager();\n }\n return HistoryManager._instance;\n }\n}\nexports.HistoryManager = HistoryManager;\nHistoryManager.BACK = -1;\nHistoryManager.FORWARD = 1;\nHistoryManager.CURRENT = 0;\n//# sourceMappingURL=HistoryManager.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/HistoryManager.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Legacy/EventManager/EventManager.js":
/*!***************************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Legacy/EventManager/EventManager.js ***!
\***************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventManager = void 0;\nconst cs_event_manager_1 = __webpack_require__(/*! cs-event-manager */ \"./node_modules/cs-event-manager/dist/shared.js\");\nclass EventManager extends cs_event_manager_1.EventManager {\n}\nexports.EventManager = EventManager;\n//# sourceMappingURL=EventManager.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Legacy/EventManager/EventManager.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js":
/*!********************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js ***!
\********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Helper = void 0;\n/**\n * Eine Klasse mit häufig genutzten, nützlichen Funktionen\n */\nconst Translator_1 = __webpack_require__(/*! ../Translator */ \"./node_modules/cordova-sites/dist/client/js/Translator.js\");\nclass Helper {\n /**\n * Testet, ob eine Variable null oder Undefined ist\n *\n * @param variable\n * @returns {boolean}\n */\n static isNull(variable) {\n return (variable === null || variable === undefined);\n }\n /**\n * Testet, ob eine Variable nicht (null oder undefined) ist\n *\n * @param variable\n * @returns {boolean}\n */\n static isNotNull(variable) {\n return !Helper.isNull(variable);\n }\n /**\n * Gibt den ersten übergebenen Wert, der nicht (null oder undefined) ist, zurück\n *\n * @param val1\n * @param val2\n * @param args\n * @returns {*}\n */\n static nonNull(val1, val2, ...args) {\n for (let i = 0; i < arguments.length; i++) {\n if (Helper.isNotNull(arguments[i])) {\n return arguments[i];\n }\n }\n return null;\n }\n /**\n * Testet, ob der übergebene Index am Objekt gesetzt ist. Werden mehrere Indexes übergeben, so wird getestet,\n * ob die \"Index-Kette\" gesetzt ist.\n * Bsp.:\n * Helper.isSet({\"index1\":{\"index2\":value}}, \"index1\", \"index2\") ist wahr\n *\n * @param object\n * @param indexes\n * @returns {*}\n */\n static isSet(object, ...indexes) {\n if (Helper.isNotNull(object)) {\n if (indexes.length === 0) {\n return true;\n }\n return (Helper.isSet.apply(null, [object[indexes[0]]].concat(indexes.slice(1))));\n }\n return false;\n }\n /**\n * Testet, ob ein Wert null oder Leerstring, bzw nur aus leerzeichend bestehender String ist\n *\n * @param value\n * @returns {boolean}\n */\n static empty(value) {\n return (Helper.isNull(value) || (typeof value === 'string' && value.trim() === \"\"));\n }\n /**\n * Testet, ob ein Wert NICHT (null oder Leerstring, bzw nur aus leerzeichend bestehender String ist)\n *\n * @param value\n * @returns {boolean}\n */\n static notEmpty(value) {\n return !Helper.empty(value);\n }\n /**\n * Formatiert ein Date-Object nach der Vorlage von der C-Funktion strftime\n *\n * @param sFormat\n * @param date\n * @param useUTC\n * @returns {*|void|string|never}\n */\n static strftime(sFormat, date, useUTC, makePersistentTranslation) {\n useUTC = Helper.nonNull(useUTC, false);\n makePersistentTranslation = Helper.nonNull(makePersistentTranslation, true);\n date = Helper.nonNull(date, new Date());\n if (!(date instanceof Date))\n date = new Date(date);\n 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 () {\n if ((nYear & 3) !== 0)\n return false;\n return nYear % 100 !== 0 || nYear % 400 === 0;\n }, getThursday = function () {\n let target = new Date(date);\n target.setDate(nDate - ((nDay + 6) % 7) + 3);\n return target;\n }, zeroPad = function (nNum, nPad) {\n return ('' + (Math.pow(10, nPad) + nNum)).slice(1);\n };\n return sFormat.replace(/%[a-z]/gi, function (sMatch) {\n return {\n '%a': (makePersistentTranslation) ? Translator_1.Translator.makePersistentTranslation(aDaysShort[nDay]).outerHTML : Translator_1.Translator.translate(aDaysShort[nDay]),\n '%A': (makePersistentTranslation) ? Translator_1.Translator.makePersistentTranslation(aDays[nDay]).outerHTML : Translator_1.Translator.translate(aDays[nDay]),\n '%b': (makePersistentTranslation) ? Translator_1.Translator.makePersistentTranslation(aMonths[nMonth].slice(0, 3)).outerHTML : Translator_1.Translator.translate(aMonths[nMonth].slice(0, 3)),\n '%B': (makePersistentTranslation) ? Translator_1.Translator.makePersistentTranslation(aMonths[nMonth]).outerHTML : Translator_1.Translator.translate(aMonths[nMonth]),\n '%c': date.toUTCString(),\n '%C': Math.floor(nYear / 100),\n '%d': zeroPad(nDate, 2),\n '%e': nDate,\n '%f': zeroPad(date.getTime() % 1000, 4),\n '%F': date.toISOString().slice(0, 10),\n '%G': getThursday().getFullYear(),\n '%g': ('' + getThursday().getFullYear()).slice(2),\n '%H': zeroPad(nHour, 2),\n '%I': zeroPad((nHour + 11) % 12 + 1, 2),\n '%j': zeroPad(aDayCount[nMonth] + nDate + ((nMonth > 1 && isLeapYear()) ? 1 : 0), 3),\n '%k': '' + nHour,\n '%l': (nHour + 11) % 12 + 1,\n '%m': zeroPad(nMonth + 1, 2),\n '%M': zeroPad(date.getMinutes(), 2),\n '%p': (nHour < 12) ? 'AM' : 'PM',\n '%P': (nHour < 12) ? 'am' : 'pm',\n '%s': Math.round(date.getTime() / 1000),\n '%S': zeroPad(date.getSeconds(), 2),\n '%u': nDay || 7,\n '%w': '' + nDay,\n '%x': date.toLocaleDateString(),\n '%X': date.toLocaleTimeString(),\n '%y': ('' + nYear).slice(2),\n '%Y': nYear,\n '%z': date.toTimeString().replace(/.+GMT([+-]\\d+).+/, '$1'),\n '%Z': date.toTimeString().replace(/.+\\((.+?)\\)$/, '$1')\n }[sMatch] || sMatch;\n });\n }\n static arrayToObject(array, indexFunction) {\n let obj = {};\n array.forEach(val => {\n obj[indexFunction(val)] = val;\n });\n return obj;\n }\n /**\n * Deepcopies JSON\n *\n * @param obj\n * @returns {*}\n */\n static cloneJson(obj) {\n // https://stackoverflow.com/questions/4120475/how-to-create-and-clone-a-json-object/17502990#17502990\n let i;\n // basic type deep copy\n if (Helper.isNull(obj) || typeof obj !== 'object') {\n return obj;\n }\n // array deep copy\n if (obj instanceof Array) {\n let cloneA = [];\n for (i = 0; i < obj.length; ++i) {\n cloneA[i] = Helper.cloneJson(obj[i]);\n }\n return cloneA;\n }\n if (obj instanceof Date) {\n return new Date(obj.getTime());\n }\n // object deep copy\n let cloneO = {};\n for (i in obj) {\n cloneO[i] = Helper.cloneJson(obj[i]);\n }\n return cloneO;\n }\n /**\n * Erstellt ein FormData-Object von JSON-Data. Nützlich für fetch\n *\n * @param obj\n * @returns {FormData}\n */\n static formDataFromObject(obj) {\n let formData = new FormData();\n for (let k in obj) {\n formData.set(k, obj[k]);\n }\n return formData;\n }\n /**\n * Entfernt alle Children eines Elements\n *\n * @param element\n * @returns {Node}\n */\n static removeAllChildren(element) {\n if (element instanceof Node) {\n while (element.firstChild) {\n element.removeChild(element.firstChild);\n }\n }\n return element;\n }\n static shuffleArray(array) {\n let currentIndex = array.length, temporaryValue, randomIndex;\n // While there remain elements to shuffle...\n while (0 !== currentIndex) {\n // Pick a remaining element...\n randomIndex = Math.floor(Math.random() * currentIndex);\n currentIndex -= 1;\n // And swap it with the current element.\n temporaryValue = array[currentIndex];\n array[currentIndex] = array[randomIndex];\n array[randomIndex] = temporaryValue;\n }\n return array;\n }\n static padZero(n, width, z) {\n z = Helper.nonNull(z, '0');\n n = n + '';\n width = Helper.nonNull(width, 1);\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\n }\n static deepEqual(a, b) {\n // debugger;\n if (a === b) {\n return true;\n }\n if (typeof a === \"object\" && typeof b === \"object\") {\n let keysOfB = Object.keys(b);\n let childrenDeepEqual = Object.keys(a).every((key) => {\n let index = keysOfB.indexOf(key);\n if (index < 0) {\n return false;\n }\n keysOfB.splice(index, 1);\n return Helper.deepEqual(a[key], b[key]);\n });\n return (childrenDeepEqual && keysOfB.length === 0);\n }\n return false;\n }\n //Ältere evtl nützliche Funktionen\n static htmlspecialcharsDecode(text) {\n const map = {\n '&amp;': '&',\n '&#038;': \"&\",\n '&lt;': '<',\n '&gt;': '>',\n '&quot;': '\"',\n '&#039;': \"'\",\n '&#8217;': \"\",\n '&#8216;': \"\",\n '&#8211;': \"\",\n '&#8212;': \"—\",\n '&#8230;': \"…\",\n '&#8221;': '”'\n };\n if (Helper.isNotNull(text) && typeof text.replace === \"function\") {\n return text.replace(/\\&[\\w\\d\\#]{2,5}\\;/g, function (m) {\n return map[m];\n });\n }\n return text;\n }\n // static getIndexedObject(array, keyValue) {\n // let obj = {};\n // for (let i = 0, n = array.length; i < n; i++) {\n // obj[array[i][keyValue]] = array[i];\n // }\n // return obj;\n // }\n /**\n * Inverts the key-Values for an object\n * @param obj\n * @return {*}\n */\n static invertKeyValues(obj) {\n let new_obj = {};\n for (let prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n new_obj[obj[prop]] = prop;\n }\n }\n return new_obj;\n }\n static asyncForEach(array, callback, runAsyncronous) {\n return __awaiter(this, void 0, void 0, function* () {\n runAsyncronous = Helper.nonNull(runAsyncronous, false);\n if (array instanceof Map) {\n array = Array.from(array.values());\n }\n let validPromises = [];\n for (let i = 0; i < array.length; i++) {\n let index = i;\n let currentPromise = Promise.resolve(callback(array[index], index, array));\n if (!runAsyncronous) {\n yield currentPromise;\n }\n validPromises.push(currentPromise);\n }\n return Promise.all(validPromises);\n });\n }\n static escapeRegExp(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"); // $& means the whole matched string\n }\n static objectForEach(object, callback) {\n Object.keys(object).forEach(key => {\n callback(object[key], key, object);\n });\n }\n static toArray(object) {\n let res = [];\n for (let k in object) {\n res.push(object[k]);\n }\n return res;\n }\n static imageUrlIsEmpty(url) {\n return (Helper.isNull(url) || url.trim() === \"\" || url.trim() === \"data:\");\n }\n static newPromiseWithResolve() {\n let resolver = null;\n let rejecter = null;\n let promise = new Promise((resolve, reject) => {\n resolver = resolve;\n rejecter = reject;\n });\n promise[\"resolve\"] = resolver;\n promise[\"reject\"] = rejecter;\n return promise;\n }\n}\nexports.Helper = Helper;\n//# sourceMappingURL=Helper.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Legacy/Matomo.js":
/*!********************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Legacy/Matomo.js ***!
\********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Matomo = void 0;\nconst js_helper_1 = __webpack_require__(/*! js-helper */ \"./node_modules/js-helper/dist/shared.js\");\nconst NativeStoragePromise_1 = __webpack_require__(/*! ../NativeStoragePromise */ \"./node_modules/cordova-sites/dist/client/js/NativeStoragePromise.js\");\nclass Matomo {\n static init() {\n Matomo.isTrackingPromise = new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let shouldTrack = yield NativeStoragePromise_1.NativeStoragePromise.getItem(Matomo.LOCAL_STORAGE_KEY, \"1\");\n if (js_helper_1.Helper.isNull(shouldTrack)) {\n shouldTrack = yield Matomo._askIsTracking();\n yield NativeStoragePromise_1.NativeStoragePromise.setItem(Matomo.LOCAL_STORAGE_KEY, shouldTrack);\n }\n else {\n shouldTrack = (shouldTrack === \"1\");\n yield Matomo.setTrack(shouldTrack);\n }\n resolve(shouldTrack);\n }));\n Matomo.isTrackingPromise.then(() => {\n Matomo.push(['trackPageView'], true);\n Matomo.push(['enableLinkTracking'], true);\n Matomo.push(['setTrackerUrl', Matomo.TRACK_SITE + '/piwik.php'], true);\n Matomo.push(['setSiteId', Matomo.SIDE_ID + \"\"], true);\n let d = document, g = d.createElement('script'), s = d.getElementsByTagName('head')[0];\n g.type = 'text/javascript';\n g.async = true;\n g.defer = true;\n g.src = Matomo.TRACK_SITE + '/piwik.js';\n s.appendChild(g);\n });\n }\n static update(title) {\n if (js_helper_1.Helper.nonNull(Matomo.currentUrl)) {\n Matomo.push(['setReferrerUrl', Matomo.currentUrl]);\n }\n Matomo.currentUrl = window.location.pathname + window.location.search;\n Matomo.push(['setCustomUrl', Matomo.currentUrl]);\n Matomo.push(['setDocumentTitle', title]);\n // remove all previously assigned custom variables, requires Matomo (formerly Piwik) 3.0.2\n Matomo.push(['deleteCustomVariables', 'page']);\n Matomo.push(['setGenerationTimeMs', 0]);\n Matomo.push(['trackPageView']);\n // make Matomo aware of newly added content\n var content = document.getElementById('site-content');\n Matomo.push(['MediaAnalytics::scanForMedia', content]);\n Matomo.push(['FormAnalytics::scanForForms', content]);\n Matomo.push(['trackContentImpressionsWithinNode', content]);\n Matomo.push(['enableLinkTracking']);\n }\n static _askIsTracking() {\n return __awaiter(this, void 0, void 0, function* () {\n Matomo.isTrackingPromise = new Promise(resolve => {\n Matomo.push([function () {\n resolve(!this[\"isUserOptedOut\"]());\n }]);\n });\n return Matomo.isTrackingPromise;\n });\n }\n static query(method) {\n return __awaiter(this, void 0, void 0, function* () {\n return fetch(Matomo.TRACK_SITE + Matomo.BASE_PATH + method, {\n \"mode\": \"cors\",\n \"credentials\": \"include\",\n }).then(res => res.text()).then(text => (new window[\"DOMParser\"]()).parseFromString(text, \"text/xml\"));\n });\n }\n static getTrackingPromise() {\n return Matomo.isTrackingPromise;\n }\n static setTrack(shouldTrack) {\n return __awaiter(this, void 0, void 0, function* () {\n Matomo.isTrackingPromise = Promise.resolve(shouldTrack);\n yield NativeStoragePromise_1.NativeStoragePromise.setItem(Matomo.LOCAL_STORAGE_KEY, (shouldTrack === true) ? \"1\" : \"0\");\n if (shouldTrack) {\n yield Matomo.push([\"forgetUserOptOut\"], true);\n }\n else {\n yield Matomo.push([\"optUserOut\"], true);\n }\n });\n }\n static trackEvent(event, name, label, value) {\n return __awaiter(this, void 0, void 0, function* () {\n let ev = [\"trackEvent\", event, name];\n if (js_helper_1.Helper.isNotNull(label)) {\n ev.push(label);\n }\n if (js_helper_1.Helper.isNotNull(value) && !isNaN(parseFloat(value)) && isFinite(value)) {\n ev.push(value);\n }\n return this.push(ev);\n });\n }\n //TODO Matomo\n static push(arr, force) {\n return __awaiter(this, void 0, void 0, function* () {\n // if (!Array.isArray(arr)) {\n // arr = [arr];\n // }\n // window[\"_paq\"].push(arr);\n });\n }\n}\nexports.Matomo = Matomo;\nMatomo.LOCAL_STORAGE_KEY = \"matomoShouldTrack\";\nMatomo.TRACK_SITE = \"\";\nMatomo.BASE_PATH = \"\";\nMatomo.SIDE_ID = \"1\";\nMatomo.currentUrl = null;\nMatomo.isTrackingPromise = null;\n//# sourceMappingURL=Matomo.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Legacy/Matomo.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Legacy/ScaleHelper.js":
/*!*************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Legacy/ScaleHelper.js ***!
\*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScaleHelper = void 0;\nconst js_helper_1 = __webpack_require__(/*! js-helper */ \"./node_modules/js-helper/dist/shared.js\");\nclass ScaleHelper {\n scaleTo(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, animationDelay, addListener) {\n return __awaiter(this, void 0, void 0, function* () {\n addListener = js_helper_1.Helper.nonNull(addListener, true);\n animationDelay = js_helper_1.Helper.nonNull(animationDelay, 0);\n let newFontSize = yield this._getNewFontSize(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, animationDelay === 0);\n if (animationDelay > 0) {\n yield new Promise(r => {\n setTimeout(r, animationDelay);\n fontElement.style.fontSize = newFontSize + \"px\";\n });\n }\n let self = this;\n let listener = function () {\n return new Promise(resolve => {\n let timeout = (typeof addListener === 'number') ? addListener : 255;\n setTimeout(() => {\n resolve(self.scaleTo(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, animationDelay, false));\n }, timeout);\n });\n };\n if (addListener !== false) {\n window.addEventListener(\"resize\", listener);\n }\n return listener;\n });\n }\n scaleToFull(fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, animDelay, addListener) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.scaleTo(1, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, animDelay, addListener);\n });\n }\n _getNewFontSize(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, setFontSize) {\n return __awaiter(this, void 0, void 0, function* () {\n margin = js_helper_1.Helper.nonNull(margin, 10);\n ignoreHeight = js_helper_1.Helper.nonNull(ignoreHeight, false);\n ignoreWidth = js_helper_1.Helper.nonNull(ignoreWidth, false);\n fontWeight = js_helper_1.Helper.nonNull(fontWeight, fontElement.innerHTML.length);\n setFontSize = js_helper_1.Helper.nonNull(setFontSize, true);\n let hasNoTransitionClass = container.classList.contains(\"no-transition\");\n if (!hasNoTransitionClass) {\n container.classList.add(\"no-transition\");\n }\n const numChanged = 5;\n let oldDiffIndex = 0;\n let oldDiff = [];\n for (let i = 0; i < numChanged; i++) {\n oldDiff.push(0);\n }\n let beforeFontSize = fontElement.style.fontSize;\n let currentFontSize = 1;\n let widthDiff = 0;\n let heightDiff = 0;\n let containerWidth = 0;\n let containerHeight = 0;\n do {\n currentFontSize += oldDiff[oldDiffIndex] / (fontWeight + 1);\n fontElement.style.fontSize = currentFontSize + 'px';\n let containerStyle = window.getComputedStyle(container);\n containerWidth = parseFloat(containerStyle.getPropertyValue(\"width\").replace('px', ''));\n containerHeight = parseFloat(containerStyle.getPropertyValue(\"height\").replace('px', ''));\n widthDiff = containerWidth - fontElement.offsetWidth;\n heightDiff = containerHeight - fontElement.offsetHeight;\n oldDiffIndex = (oldDiffIndex + 1) % numChanged;\n let newDiff = (ignoreWidth ? heightDiff : (ignoreHeight ? widthDiff : Math.min(widthDiff, heightDiff)));\n if (newDiff === oldDiff[(oldDiffIndex + 1) % numChanged]) {\n break;\n }\n oldDiff[oldDiffIndex] = newDiff;\n } while ((widthDiff > (1 - scale) * containerWidth || ignoreWidth) && (heightDiff > (1 - scale) * containerHeight || ignoreHeight));\n currentFontSize -= margin;\n fontElement.style.fontSize = ((setFontSize) ? currentFontSize + \"px\" : beforeFontSize);\n if (!hasNoTransitionClass) {\n yield new Promise((r) => {\n setTimeout(r, 50);\n });\n container.classList.remove(\"no-transition\");\n }\n return currentFontSize;\n });\n }\n}\nexports.ScaleHelper = ScaleHelper;\n//# sourceMappingURL=ScaleHelper.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Legacy/ScaleHelper.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/NativeStoragePromise.js":
/*!***************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/NativeStoragePromise.js ***!
\***************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NativeStoragePromise = void 0;\n/**\n * Promise-Wrapper-Klasse für Native-Storage\n */\nconst Helper_1 = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nconst JsonHelper_1 = __webpack_require__(/*! js-helper/dist/shared/JsonHelper */ \"./node_modules/js-helper/dist/shared/JsonHelper.js\");\nclass NativeStoragePromise {\n static _isElectron() {\n return (typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0);\n }\n /**\n * Setzt ein Item für NativeStorage\n *\n * @param key\n * @param value\n * @returns {Promise<*>}\n */\n static setItem(key, value) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.persistent) {\n if (this._isElectron()) {\n return new Promise((res, rej) => this.electronStorage.set(this.prefix + key, value, err => {\n if (err) {\n rej(err);\n }\n else {\n res();\n }\n }));\n }\n else {\n return new Promise((res, rej) => NativeStorage.setItem(this.prefix + key, value, res, rej));\n }\n }\n else {\n this._cache[this.prefix + key] = value;\n }\n });\n }\n /**\n * Bekomme ein Item von NativeStorage\n *\n * @param key\n * @param defaultValue?\n * @returns {Promise<*>}\n */\n static getItem(key, defaultValue) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((res, rej) => {\n if (this._isElectron()) {\n this.electronStorage.get(this.prefix + key, (e, data) => {\n if (e) {\n res(Helper_1.Helper.nonNull(this._cache[this.prefix + key], defaultValue));\n }\n else {\n res(JsonHelper_1.JsonHelper.deepEqual(data, {}) ? defaultValue : data);\n }\n });\n }\n else {\n NativeStorage.getItem(this.prefix + key, data => res(Helper_1.Helper.nonNull(data, defaultValue)), (e => {\n res(Helper_1.Helper.nonNull(this._cache[this.prefix + key], defaultValue));\n }));\n }\n });\n });\n }\n /**\n * Bekomme die Keys vom NativeStorage\n *\n * @returns {Promise<*>}\n */\n static keys() {\n return __awaiter(this, void 0, void 0, function* () {\n let keys = [];\n if (this.persistent) {\n if (this._isElectron()) {\n keys = yield new Promise((res, rej) => this.electronStorage.keys((err, keys) => {\n if (err) {\n rej(err);\n }\n else {\n res(keys);\n }\n }));\n }\n else {\n keys = yield new Promise((res, rej) => NativeStorage.keys(res, rej));\n }\n }\n else {\n keys = Object.keys(this._cache);\n }\n return keys.filter(key => key.startsWith(this.prefix));\n });\n }\n /**\n * Entfernt ein Object aus dem NativeStorage\n *\n * @param key\n * @returns {Promise<*>}\n */\n static remove(key) {\n return __awaiter(this, void 0, void 0, function* () {\n delete this._cache[this.prefix + key];\n if (this._isElectron()) {\n return new Promise((res, rej) => this.electronStorage.remove(this.prefix + key, err => {\n if (err) {\n rej(err);\n }\n else {\n res();\n }\n }));\n }\n else {\n return new Promise((res, rej) => NativeStorage.remove(this.prefix + key, res, rej));\n }\n });\n }\n /**\n * Entfernt alle Objects aus dem NativeStorage\n *\n * @returns {Promise<*>}\n */\n static clear() {\n return __awaiter(this, void 0, void 0, function* () {\n let keys = yield this.keys();\n yield Helper_1.Helper.asyncForEach((keys), (key) => __awaiter(this, void 0, void 0, function* () {\n yield this.remove(key);\n }), true);\n });\n }\n static makePersistent() {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.persistent) {\n this.persistent = true;\n yield Helper_1.Helper.asyncForEach(Object.keys(this._cache), (key) => __awaiter(this, void 0, void 0, function* () {\n yield this.setItem(key, this._cache[key]);\n }), true);\n }\n });\n }\n static makeUnpersistent() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.persistent) {\n let keys = yield this.keys();\n let values = {};\n yield Helper_1.Helper.asyncForEach(keys, (key) => __awaiter(this, void 0, void 0, function* () {\n values[key] = yield this.getItem(key);\n }));\n this.clear();\n this.persistent = false;\n this._cache = values;\n }\n });\n }\n}\nexports.NativeStoragePromise = NativeStoragePromise;\nNativeStoragePromise._cache = {};\nNativeStoragePromise.prefix = \"\";\nNativeStoragePromise.persistent = true;\nNativeStoragePromise.electronStorage = null;\n//# sourceMappingURL=NativeStoragePromise.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/NativeStoragePromise.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/PromiseHelper.js":
/*!********************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/PromiseHelper.js ***!
\********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PromiseHelper = void 0;\nconst Helper_1 = __webpack_require__(/*! ./Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nclass PromiseHelper {\n static delay(milliseconds) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise(r => {\n setTimeout(r, milliseconds);\n });\n });\n }\n static tryMultipleTimes(func, times, delay) {\n return __awaiter(this, void 0, void 0, function* () {\n times = Helper_1.Helper.nonNull(times, 5);\n delay = Helper_1.Helper.nonNull(delay, 50);\n for (let i = 0; i < times; i++) {\n let res = yield func();\n if (res !== undefined) {\n return res;\n }\n else {\n yield PromiseHelper.delay(delay);\n }\n }\n return undefined;\n });\n }\n static tryUntilTimeout(func, timeout, delay) {\n return __awaiter(this, void 0, void 0, function* () {\n timeout = Helper_1.Helper.nonNull(timeout, 500);\n delay = Helper_1.Helper.nonNull(delay, 50);\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n let shouldRun = true;\n PromiseHelper.delay(timeout).then(() => {\n reject(new Error(\"timeout\"));\n shouldRun = false;\n });\n while (shouldRun) {\n let res = yield func();\n if (res !== undefined) {\n resolve(res);\n break;\n }\n yield PromiseHelper.delay(delay);\n }\n }));\n });\n }\n}\nexports.PromiseHelper = PromiseHelper;\n//# sourceMappingURL=PromiseHelper.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/PromiseHelper.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/ShareManager/ShareDialog.js":
/*!*******************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/ShareManager/ShareDialog.js ***!
\*******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ShareDialog = void 0;\nconst Dialog_1 = __webpack_require__(/*! ../Dialog/Dialog */ \"./node_modules/cordova-sites/dist/client/js/Dialog/Dialog.js\");\nconst ViewInflater_1 = __webpack_require__(/*! ../ViewInflater */ \"./node_modules/cordova-sites/dist/client/js/ViewInflater.js\");\nconst view = __webpack_require__(/*! ../../html/Dialog/shareDialog.html */ \"./node_modules/cordova-sites/dist/client/html/Dialog/shareDialog.html\");\nclass ShareDialog extends Dialog_1.Dialog {\n constructor(textToShare) {\n super(ViewInflater_1.ViewInflater.getInstance().load(view).then(view => {\n view.querySelector(\"#whatsapp-share\").addEventListener(\"click\", () => {\n let linkToOpen = \"\";\n linkToOpen = \"https://web.whatsapp.com/send?text=\" + encodeURIComponent(textToShare);\n window.open(linkToOpen, '_blank', \"noopener\");\n this.close();\n });\n view.querySelector(\"#telegram-share\").addEventListener(\"click\", () => {\n let linkToOpen = \"https://t.me/share/url?url=\" + encodeURIComponent(textToShare);\n window.open(linkToOpen, '_blank', \"noopener\");\n this.close();\n });\n return view;\n }), \"Share\");\n }\n}\nexports.ShareDialog = ShareDialog;\n//# sourceMappingURL=ShareDialog.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/ShareManager/ShareDialog.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/ShareManager/ShareManager.js":
/*!********************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/ShareManager/ShareManager.js ***!
\********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ShareManager = void 0;\nconst ShareDialog_1 = __webpack_require__(/*! ./ShareDialog */ \"./node_modules/cordova-sites/dist/client/js/ShareManager/ShareDialog.js\");\nclass ShareManager {\n share(text) {\n if (device.platform === \"browser\") {\n this._shareBrowser(text);\n }\n else {\n this._shareMobile(text);\n }\n }\n _shareMobile(text) {\n navigator[\"share\"](text);\n }\n _shareBrowser(text) {\n new ShareDialog_1.ShareDialog(text).show();\n }\n}\nexports.ShareManager = ShareManager;\n//# sourceMappingURL=ShareManager.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/ShareManager/ShareManager.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Singleton.js":
/*!****************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Singleton.js ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Singleton = void 0;\nclass Singleton {\n /**\n *\n * @returns {Singleton|this}\n */\n static getInstance() {\n if (!this._instance) {\n this._instance = new this();\n }\n return this._instance;\n }\n}\nexports.Singleton = Singleton;\n//# sourceMappingURL=Singleton.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Singleton.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Sound/AudioChain.js":
/*!***********************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Sound/AudioChain.js ***!
\***********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AudioChain = void 0;\nconst Helper_1 = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nclass AudioChain {\n constructor(context, sourceBuffer, chainFunction) {\n this._buffer = sourceBuffer;\n this._shouldLoop = false;\n this._loopStart = null;\n this._loopEnd = null;\n this._chainFunction = chainFunction;\n this._context = context;\n this._startTime = null;\n this._pauseTime = null;\n this._source = null;\n this._running = false;\n }\n setBuffer(buffer) {\n this._buffer = buffer;\n }\n setLooping(shouldLoop, loopStart, loopEnd) {\n this._shouldLoop = shouldLoop;\n if (Helper_1.Helper.isNotNull(loopStart)) {\n this._loopStart = loopStart;\n }\n if (Helper_1.Helper.isNotNull(loopEnd)) {\n this._loopEnd = loopEnd;\n }\n }\n start(delay, offset, duration) {\n return __awaiter(this, void 0, void 0, function* () {\n //sind sonst null, schmeißt in Android 5 einen fehler\n delay = Helper_1.Helper.nonNull(delay, 0);\n offset = Helper_1.Helper.nonNull(offset, 0);\n //Duration darf nicht gesetzt werden\n // duration = Helper.nonNull(duration, -1);\n let source = this._context.createBufferSource();\n source.loop = this._shouldLoop;\n if (Helper_1.Helper.isNotNull(this._loopStart)) {\n source.loopStart = this._loopStart;\n }\n if (Helper_1.Helper.isNotNull(this._loopEnd)) {\n source.loopEnd = this._loopEnd;\n }\n source.buffer = this._buffer;\n yield this._chainFunction(source);\n if (Helper_1.Helper.isNull(duration)) {\n source.start(delay, offset);\n }\n else {\n source.start(delay, offset, duration);\n }\n this._startTime = (new Date()).getTime() - (Helper_1.Helper.nonNull(offset, 0) * 1000);\n this._source = source;\n this._running = true;\n });\n }\n stop(delay) {\n return __awaiter(this, void 0, void 0, function* () {\n if (Helper_1.Helper.isNotNull(this._source)) {\n delay = Helper_1.Helper.nonNull(delay, 0);\n this._pauseTime = ((new Date()).getTime()) - this._startTime;\n this._running = false;\n return this._source.stop(delay);\n }\n return null;\n });\n }\n resume() {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this._running) {\n return this.start(null, Helper_1.Helper.nonNull(this._pauseTime, 0) / 1000.0);\n }\n });\n }\n}\nexports.AudioChain = AudioChain;\n//# sourceMappingURL=AudioChain.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Sound/AudioChain.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Sound/SoundManager.js":
/*!*************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Sound/SoundManager.js ***!
\*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SoundManager = void 0;\nconst AudioChain_1 = __webpack_require__(/*! ./AudioChain */ \"./node_modules/cordova-sites/dist/client/js/Sound/AudioChain.js\");\nconst Helper_1 = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nconst App_1 = __webpack_require__(/*! ../App */ \"./node_modules/cordova-sites/dist/client/js/App.js\");\nconst DataManager_1 = __webpack_require__(/*! ../DataManager */ \"./node_modules/cordova-sites/dist/client/js/DataManager.js\");\nclass SoundManager {\n constructor() {\n this.channels = {};\n if ('AudioContext' in window) {\n this.context = new AudioContext();\n }\n else if ('webkitAudioContext' in window) {\n // @ts-ignore\n this.context = new webkitAudioContext();\n }\n else {\n throw new Error(\"No audio context found!\");\n }\n this.context.onstatechange = function () {\n console.log(\"stateChange from context\", arguments);\n };\n this.context.oncomplete = function () {\n console.log(\"onComplete from context\", arguments);\n };\n window.addEventListener(\"visibilitychange\", (e) => {\n // console.log(\"visibility Change event\", e);\n this.handleVisibilityChange();\n });\n //For safari\n let checkVisibility = () => {\n this.handleVisibilityChange();\n setTimeout(checkVisibility, 500);\n };\n checkVisibility();\n }\n static getInstance() {\n if (Helper_1.Helper.isNull(SoundManager._instance)) {\n SoundManager._instance = new SoundManager();\n }\n return SoundManager._instance;\n }\n isNotSuspended() {\n // return false;\n return this.context.state !== \"suspended\";\n }\n set(options, channel) {\n channel = Helper_1.Helper.nonNull(channel, SoundManager.CHANNELS.DEFAULT);\n let audioObject = Helper_1.Helper.nonNull(this.channels[channel], {});\n if (typeof options === \"string\") {\n options = { audio: options };\n }\n let audio = options.audio;\n if (Helper_1.Helper.isNotNull(audio)) {\n audioObject.loadedPromise = DataManager_1.DataManager.loadAsset(audio, \"raw\").then(res => res.arrayBuffer()).then(arrayBuffer => {\n return new Promise((r, reject) => this.context.decodeAudioData(arrayBuffer, r));\n }).catch(e => console.error(e));\n // audioObject.loadedPromise = fetch(audio).then(res => res.arrayBuffer()).then(arrayBuffer => {\n // return new Promise((r, reject) => this.context.decodeAudioData(arrayBuffer, r));\n // }).catch(e => console.error(e));\n this.stop(channel);\n }\n audioObject.muted = Helper_1.Helper.nonNull(options.muted, audioObject.muted, false);\n audioObject.volume = Helper_1.Helper.nonNull(options.volume, audioObject.volume, 1);\n audioObject.loop = Helper_1.Helper.nonNull(options.loop, audioObject.loop, false);\n audioObject.timeOffset = Helper_1.Helper.nonNull(options.timeOffset, audioObject.timeOffset, 0);\n this.channels[channel] = audioObject;\n if (audioObject.muted) {\n this.stop(channel);\n }\n return this.channels[channel];\n }\n resumeContext() {\n return __awaiter(this, void 0, void 0, function* () {\n if (typeof this.context.resume === \"function\") {\n return this.context.resume();\n }\n });\n }\n play(channel, audioOrOptions) {\n return __awaiter(this, void 0, void 0, function* () {\n this.resumeContext();\n channel = Helper_1.Helper.nonNull(channel, SoundManager.CHANNELS.DEFAULT);\n if (Helper_1.Helper.isNull(audioOrOptions)) {\n audioOrOptions = {};\n }\n else if (!(typeof audioOrOptions === \"object\")) {\n audioOrOptions = {\n audio: audioOrOptions\n };\n }\n audioOrOptions.timeOffset = Helper_1.Helper.nonNull(audioOrOptions.timeOffset, 0);\n this.stop(channel);\n this.set(audioOrOptions, channel);\n if (!this.channels[channel].muted) {\n let buffer = yield this.channels[channel].loadedPromise;\n let source = new AudioChain_1.AudioChain(this.context, buffer, (sourceNode) => {\n let gain = this.context.createGain();\n gain.gain.value = this.channels[channel].volume;\n sourceNode.connect(gain);\n gain.connect(this.context.destination);\n });\n source.setBuffer(buffer);\n //to prevent gap in mp3-files\n source.setLooping(this.channels[channel].loop, 0.3, buffer.duration - 0.3);\n this.channels[channel].source = source;\n yield source.start();\n }\n return this.channels[channel];\n });\n }\n stop(channel) {\n channel = Helper_1.Helper.nonNull(channel, SoundManager.CHANNELS.DEFAULT);\n let oldAudio = this.channels[channel];\n if (Helper_1.Helper.isNotNull(oldAudio) && Helper_1.Helper.isNotNull(oldAudio.source)) {\n oldAudio.source.stop();\n }\n }\n get(channel) {\n channel = Helper_1.Helper.nonNull(channel, SoundManager.CHANNELS.DEFAULT);\n return this.channels[channel];\n }\n resume(channel) {\n return __awaiter(this, void 0, void 0, function* () {\n channel = Helper_1.Helper.nonNull(channel, SoundManager.CHANNELS.DEFAULT);\n if (Helper_1.Helper.isNotNull(this.channels[channel]) && !this.channels[channel].muted && Helper_1.Helper.isNotNull(this.channels[channel].source)) {\n return this.channels[channel].source.resume();\n }\n });\n }\n stopAll() {\n for (let k in this.channels) {\n if (Helper_1.Helper.isNotNull(this.channels[k].source)) {\n this.channels[k].source.stop();\n }\n }\n }\n resumeAllIfNotMuted() {\n for (let k in this.channels) {\n if (Helper_1.Helper.isNotNull(this.channels[k]) && !this.channels[k].muted && Helper_1.Helper.isNotNull(this.channels[k].source)) {\n this.channels[k].source.resume();\n }\n }\n }\n handleVisibilityChange() {\n if (document.hidden) {\n this.stopAll();\n }\n else {\n this.resumeAllIfNotMuted();\n }\n }\n}\nexports.SoundManager = SoundManager;\nSoundManager.CHANNELS = {\n MUSIC: \"music\",\n SOUND: \"sound\",\n DEFAULT: \"default\"\n};\nApp_1.App.addInitialization(app => {\n // PauseSite.onPauseListeners.push(() => {\n // SoundManager.getInstance().stopAll();\n // });\n // PauseSite.onStartListeners.push(() => {\n // SoundManager.getInstance().resumeAllIfNotMuted();\n // });\n});\n// AndroidBridge.addDefinition(() => {\n// window[\"soundManagerInstance\"] = SoundManager.getInstance();\n// window[\"soundManagerInstance\"][\"stopAll\"] = window[\"soundManagerInstance\"].stopAll;\n// window[\"soundManagerInstance\"][\"resumeAllIfNotMuted\"] = window[\"soundManagerInstance\"].resumeAllIfNotMuted;\n// });\n//# sourceMappingURL=SoundManager.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Sound/SoundManager.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Toast/Toast.js":
/*!******************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Toast/Toast.js ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Toast = void 0;\nconst Helper_1 = __webpack_require__(/*! ../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nconst ToastManager_1 = __webpack_require__(/*! ./ToastManager */ \"./node_modules/cordova-sites/dist/client/js/Toast/ToastManager.js\");\nclass Toast {\n constructor(message, duration, shouldTranslateOrTranslationArgs) {\n this._message = message;\n this._duration = Helper_1.Helper.nonNull(duration, Toast.DEFAULT_DURATION);\n this._shouldTranslate = shouldTranslateOrTranslationArgs !== false;\n this._translationArgs = Helper_1.Helper.nonNull(shouldTranslateOrTranslationArgs, []);\n this._id = Toast.LAST_ID++;\n this._toastElement = null;\n }\n getId() {\n return this._id;\n }\n getMessage() {\n return this._message;\n }\n getDuration() {\n return this._duration;\n }\n isShouldTranslate() {\n return this._shouldTranslate;\n }\n getTranslationArgs() {\n return this._translationArgs;\n }\n setToastElement(element) {\n this._toastElement = element;\n }\n getToastElement() {\n return this._toastElement;\n }\n show() {\n return __awaiter(this, void 0, void 0, function* () {\n return ToastManager_1.ToastManager.getInstance().showToast(this);\n });\n }\n hide() {\n return __awaiter(this, void 0, void 0, function* () {\n return ToastManager_1.ToastManager.getInstance().hideToast(this);\n });\n }\n}\nexports.Toast = Toast;\nToast.LAST_ID = 0;\nToast.DEFAULT_DURATION = 2500;\n//# sourceMappingURL=Toast.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Toast/Toast.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Toast/ToastManager.js":
/*!*************************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Toast/ToastManager.js ***!
\*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ToastManager = void 0;\nconst Helper_1 = __webpack_require__(/*! ../Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nconst Translator_1 = __webpack_require__(/*! ../Translator */ \"./node_modules/cordova-sites/dist/client/js/Translator.js\");\nclass ToastManager {\n constructor() {\n this._toastContainer = document.querySelector(ToastManager._toastContainerSelector);\n this._toastTemplate = this._toastContainer.querySelector(\".toast-template\");\n this._toastTemplate.classList.remove(\"toast-template\");\n this._toastTemplate.remove();\n }\n showToast(toast) {\n return __awaiter(this, void 0, void 0, function* () {\n let message = toast.getMessage();\n if (toast.isShouldTranslate()) {\n message = Translator_1.Translator.makePersistentTranslation(message, toast.getTranslationArgs());\n }\n else {\n message = document.createTextNode(message);\n }\n let toastElement = this._toastTemplate.cloneNode(true);\n toastElement.querySelector(\".message\").appendChild(message);\n toast.setToastElement(toastElement);\n this._toastContainer.appendChild(toastElement);\n toastElement.style.opacity = 1;\n return new Promise(resolve => {\n toastElement.querySelector(\".message\").onclick = () => {\n this.hideToast(toast);\n resolve(true);\n };\n setTimeout(() => {\n this.hideToast(toast);\n resolve(false);\n }, toast.getDuration());\n });\n });\n }\n hideToast(toast) {\n return __awaiter(this, void 0, void 0, function* () {\n //TODO Animation hinzufügen\n let element = toast.getToastElement();\n if (Helper_1.Helper.isNotNull(element)) {\n element.style.opacity = 0;\n return new Promise(res => {\n setTimeout(() => {\n element.remove();\n res();\n }, 250);\n });\n }\n return Promise.reject(\"toast is not showing\");\n });\n }\n static setToastContainerSelector(selector) {\n ToastManager._toastContainerSelector = selector;\n }\n static getInstance() {\n if (!ToastManager._instance) {\n ToastManager._instance = new ToastManager();\n }\n return ToastManager._instance;\n }\n}\nexports.ToastManager = ToastManager;\nToastManager._instance = null;\nToastManager._toastContainerSelector = \"#toast-container\";\n//# sourceMappingURL=ToastManager.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Toast/ToastManager.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/Translator.js":
/*!*****************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/Translator.js ***!
\*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Translator = void 0;\nconst NativeStoragePromise_1 = __webpack_require__(/*! ./NativeStoragePromise */ \"./node_modules/cordova-sites/dist/client/js/NativeStoragePromise.js\");\nconst Helper_1 = __webpack_require__(/*! ./Legacy/Helper */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Helper.js\");\nconst Translator_1 = __webpack_require__(/*! ../../shared/Translator */ \"./node_modules/cordova-sites/dist/shared/Translator.js\");\n/**\n * Singleton-Klasse zum Übersetzen von Text-Inhalten\n */\nclass Translator extends Translator_1.Translator {\n /**\n * Erstellt einen neuen Translator\n * @param config\n */\n constructor(config) {\n super(config);\n config = Helper_1.Helper.nonNull(config, {});\n this._currentLanguage = config.currentLanguage || this._fallbackLanguage;\n this._nativeStorageKey = config.nativeStorageKey || \"language\";\n this._translationClass = config.translationClass || \"translation\";\n this._initPromise = this.loadUserLanguage().then(userLanguage => this.setLanguage(userLanguage.toLowerCase()));\n }\n /**\n * Setzt die neue Sprache, updated alle Übersetzungen. Speichert danach die aktuelle Sprache in NativeStorage\n * @param language\n */\n setLanguage(language) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._currentLanguage === language) {\n yield this.updateTranslations();\n return;\n }\n if (!this._translations[language]) {\n return;\n }\n if (typeof document !== 'undefined') {\n document.getElementsByTagName(\"html\")[0].setAttribute(\"lang\", language);\n }\n this._currentLanguage = language;\n yield this.updateTranslations();\n //zum schluss => Falls setzen des Keys fehlschlägt, wird trotzdem noch übersetzt\n yield NativeStoragePromise_1.NativeStoragePromise.setItem(this._nativeStorageKey, this._currentLanguage);\n });\n }\n /**\n * Übersetzt sofort einen Key in die aktuelle Sprache\n * @param key\n * @param args\n * @returns {*}\n */\n translate(key, args, language) {\n return super.translate(key, args, Helper_1.Helper.nonNull(language, this._currentLanguage));\n }\n /**\n * Fügt eine Callback hinzu, die aufgerufen wird, sobald die Seite übersetzt wird. Sollte genutzt werden, um Teile\n * zu übersetzen, die nicht per HTML übersetzt werden können, die der Document Title\n *\n * wenn callImmediately true ist (default), wird die Callback sofort einmal ausgeführt\n *\n * Gibt die CallbackId zurück\n *\n * @param callback\n * @param callImmediately\n * @returns {number}\n */\n addTranslationCallback(callback, callImmediately) {\n callImmediately = Helper_1.Helper.nonNull(callImmediately, true);\n this._lastTranslationCallbackId++;\n this._translationCallbacks.set(this._lastTranslationCallbackId, callback);\n if (callImmediately) {\n callback();\n }\n return this._lastTranslationCallbackId;\n }\n /**\n * Entfernt die Callback anhand der gegebenen ID\n *\n * @param callbackId\n */\n removeTranslationCallback(callbackId) {\n this._translationCallbacks.delete(callbackId);\n }\n /**\n * Updated die aktuellen übersetzungen\n */\n updateTranslations(baseElement) {\n return __awaiter(this, void 0, void 0, function* () {\n baseElement = Helper_1.Helper.nonNull(baseElement, document);\n if (typeof baseElement !== 'undefined') {\n let elements = baseElement.getElementsByClassName(this._translationClass);\n for (let i = 0, max = elements.length; i < max; i++) {\n let key = (Translator._isValid(elements[i].dataset[\"translation\"]) ? elements[i].dataset[\"translation\"] : (elements[i].innerText || \"\"));\n if (key !== \"\" && !elements[i].dataset[\"onlyTranslateAttributes\"]) {\n try {\n let translation = this.translate(key, (elements[i].dataset[\"translationArgs\"] !== undefined) ? JSON.parse(elements[i].dataset[\"translationArgs\"]) : undefined);\n if (elements[i].dataset[\"translationUseText\"] === \"1\") {\n elements[i].innerText = translation;\n }\n else {\n elements[i].innerHTML = translation;\n }\n elements[i].dataset[\"translation\"] = key;\n }\n catch (err) {\n console.error(\"wrong configured translation: \" + err);\n }\n }\n //Übersetzung von Attributen\n for (let k in elements[i].dataset) {\n if (k.startsWith(\"translation\") && !k.endsWith(\"Args\")) {\n try {\n 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);\n }\n catch (err) {\n console.error(\"wrong configured translation: \" + err);\n }\n }\n }\n }\n }\n //Call translation callbacks\n yield Helper_1.Helper.asyncForEach(this._translationCallbacks, (callback) => __awaiter(this, void 0, void 0, function* () { return callback(baseElement); }));\n // this._translationCallbacks.forEach(callback => callback(baseElement));\n });\n }\n /**\n * Lädt die im NativeStorage gespeicherte Sprache oder - falls diese nicht vorhanden ist - die vom User untersütze Sprache im Browser\n * @returns {Promise<*>}\n */\n loadUserLanguage() {\n return __awaiter(this, void 0, void 0, function* () {\n let userLanguage = yield NativeStoragePromise_1.NativeStoragePromise.getItem(this._nativeStorageKey);\n if (!Translator._isValid(userLanguage) || !(userLanguage in this._translations)) {\n let userLanguages = [];\n if (navigator.language !== undefined) {\n userLanguages.push(navigator.language);\n }\n if (\"languages\" in navigator) {\n //.slice(0) klont das Array. Behebt einen Bug in Firefox\n userLanguages = navigator.languages.slice(0);\n }\n //sicherstellen, dass überhaupt eine Sprache gefunden wird\n userLanguages.push(this._fallbackLanguage);\n // if (userLanguages !== undefined) {\n for (let i = 0, numLanguages = userLanguages.length; i < numLanguages; i++) {\n if (userLanguages[i] in this._translations) {\n userLanguage = userLanguages[i];\n break;\n }\n }\n // }\n }\n return userLanguage;\n });\n }\n /**\n * Erstellt eine neue Übersetzung, welche auch übersetzt wird, wenn die Sprache geändert wird\n * @param key\n * @param args\n * @param tag\n * @param useText\n * @returns {any}\n */\n makePersistentTranslation(key, args, tag, useText) {\n useText = Helper_1.Helper.nonNull(useText, tag, args, false);\n tag = tag || \"span\";\n if (typeof document !== 'undefined') {\n let htmlElem = document.createElement(tag);\n htmlElem.dataset[\"translation\"] = key;\n htmlElem.classList.add(this._translationClass);\n if (args !== undefined) {\n htmlElem.dataset[\"translationArgs\"] = JSON.stringify(args);\n }\n if (useText === true) {\n htmlElem.innerText = this.translate(key, args);\n htmlElem.dataset[\"translationUseText\"] = \"1\";\n }\n else {\n htmlElem.innerHTML = this.translate(key, args);\n }\n return htmlElem;\n }\n }\n getTranslationClass() {\n return this._translationClass;\n }\n getCurrentLanguage() {\n return this._currentLanguage;\n }\n static getInstance() {\n return Translator_1.Translator.getInstance();\n }\n static setLanguage(language) {\n return __awaiter(this, void 0, void 0, function* () {\n let instance = Translator.getInstance();\n if (instance) {\n return instance.setLanguage(language);\n }\n });\n }\n static makePersistentTranslation(key, args, tag, useText) {\n let instance = Translator.getInstance();\n if (instance) {\n return instance.makePersistentTranslation(key, args, tag, useText);\n }\n }\n static addTranslationCallback(callback, callImmediately) {\n let instance = Translator.getInstance();\n if (instance) {\n return instance.addTranslationCallback(callback, callImmediately);\n }\n }\n static removeTranslationCallback(callbackId) {\n let instance = Translator.getInstance();\n if (instance) {\n return instance.removeTranslationCallback(callbackId);\n }\n }\n static updateTranslations(baseElement) {\n return __awaiter(this, void 0, void 0, function* () {\n let instance = Translator.getInstance();\n if (instance) {\n return instance.updateTranslations(baseElement);\n }\n });\n }\n static init(config) {\n Translator_1.Translator.instance = new Translator(config);\n }\n}\nexports.Translator = Translator;\nTranslator._translations = {};\nTranslator.logMissingTranslations = true;\nTranslator.instance = null;\n//# sourceMappingURL=Translator.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/Translator.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/ViewInflater.js":
/*!*******************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/ViewInflater.js ***!
\*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ViewInflater = void 0;\nconst client_1 = __webpack_require__(/*! js-helper/dist/client */ \"./node_modules/js-helper/dist/client.js\");\nconst shared_1 = __webpack_require__(/*! js-helper/dist/shared */ \"./node_modules/js-helper/dist/shared.js\");\nconst DataManager_1 = __webpack_require__(/*! ./DataManager */ \"./node_modules/cordova-sites/dist/client/js/DataManager.js\");\n/**\n * Singleton-Klasse genutzt zum laden von Views\n */\nclass ViewInflater {\n constructor() {\n this.loadingPromises = {};\n }\n /**\n * Statische Funktion, um die Singleton-Instanz zu holen\n *\n * @returns {ViewInflater}\n */\n static getInstance() {\n if (shared_1.Helper.isNull(ViewInflater.instance)) {\n ViewInflater.instance = new ViewInflater();\n }\n return ViewInflater.instance;\n }\n /**\n * Lädt asynchron eine View anhand einer URL und lädt ebenso alle child-views\n *\n * Extra nicht async, damit Promise sofort in LoadingPromise hinzugefügt werden kann\n *\n * @param viewUrl\n * @param parentUrls\n * @returns {*}\n */\n load(viewUrl, parentUrls) {\n // console.log(\"viewUrl\", viewUrl, parentUrls);\n //Kopiere Elemente, damit originale parentURLS nicht verändert werden\n parentUrls = shared_1.JsonHelper.deepCopy(shared_1.Helper.nonNull(parentUrls, []));\n //Detektiert eine Schleife in den Views\n if (parentUrls.indexOf(viewUrl) !== -1) {\n //Return Promise.reject => da View vorher schon einmal geladen, wird das Resultat ebenfalls in loadingPromises gespeichert für diese View\n return Promise.reject(\"views are in a circuit! cannot resolve view for url \" + parentUrls[0] + \"! url \" + viewUrl + \" is in stack before!\");\n }\n parentUrls.push(viewUrl);\n //Shortcut, falls die View schon geladen wurde. Muss nach Schleifenüberprüfung aufgerufen werden\n if (shared_1.Helper.isNotNull(this.loadingPromises[viewUrl])) {\n return this.loadingPromises[viewUrl].then(view => view.cloneNode(true));\n }\n let t;\n let resultPromise = Promise.resolve(t);\n if (viewUrl instanceof Element) {\n resultPromise = Promise.resolve(viewUrl);\n }\n else {\n resultPromise = DataManager_1.DataManager.loadAsset(viewUrl).then(htmlText => {\n let doc = (new DOMParser()).parseFromString(htmlText, \"text/html\");\n //Parsing hat nicht geklappt, also per innerHTML\n if (shared_1.Helper.isNull(doc)) {\n doc = document.implementation.createHTMLDocument('');\n doc.body.innerHTML = htmlText;\n }\n //Wrappe Elemente mit einem Span\n let spanElem = document.createElement(\"span\");\n spanElem.classList.add(\"injected-span\");\n return ViewInflater.moveChildren(doc.body, spanElem);\n });\n }\n this.loadingPromises[viewUrl] = resultPromise.then(parentElement => {\n let promises = [];\n let childViews = parentElement.querySelectorAll(\"[data-view]\");\n //lade Kinder-Views\n childViews.forEach(childView => {\n promises.push(ViewInflater.getInstance().load(childView.dataset[\"view\"], parentUrls).then(element => {\n childView.replaceWith(element);\n ViewInflater.replaceWithChildren(element);\n }));\n });\n return Promise.all(promises).then(function () {\n return parentElement;\n });\n }).catch(e => {\n console.error(e);\n this.loadingPromises[viewUrl] = null;\n throw e;\n });\n return this.loadingPromises[viewUrl].then(view => view.cloneNode(true));\n }\n /**\n * Statische Funktion, um Elemente aus einem String zu kreieren\n *\n * @param string\n * @returns {NodeListOf<ChildNode>}\n */\n static inflateElementsFromString(string) {\n let template = document.createElement('template');\n template.innerHTML = string;\n return template.content.childNodes;\n }\n /**\n * Kreiert ein Ladesymbol. Evtl entfernen\n *\n * @returns {HTMLDivElement}\n */\n static createLoadingSymbol(loaderClass) {\n let svgNS = \"http://www.w3.org/2000/svg\";\n let loader = document.createElement(\"div\");\n loader.classList.add('loader');\n //LoaderClass darf nicht leer sein, da sonst HTML einen Felher schmeißt\n if (loaderClass) {\n loader.classList.add(loaderClass);\n }\n let svg = document.createElementNS(svgNS, \"svg\");\n svg.setAttribute('viewBox', \"0 0 32 32\");\n svg.setAttribute(\"width\", \"32\");\n svg.setAttribute(\"height\", \"32\");\n let circle = document.createElementNS(svgNS, \"circle\");\n circle.setAttribute(\"class\", \"spinner\");\n circle.setAttribute(\"cx\", \"16\");\n circle.setAttribute(\"cy\", \"16\");\n circle.setAttribute(\"r\", \"14\");\n circle.setAttribute(\"fill\", \"none\");\n svg.appendChild(circle);\n loader.appendChild(svg);\n // let loader = document.createElement(\"div\");\n // loader.appendChild(document.createTextNode(\"LOADING...\"));\n return loader;\n }\n /**\n * Moves the child-Nodes from one element to another\n * @param from\n * @param to\n * @returns {*}\n */\n static moveChildren(from, to) {\n return client_1.ViewHelper.moveChildren(from, to);\n }\n /**\n * Ersetzt ein Element durch seine Kinder (entfernt das Element ohne die Kinder zu entfernen)\n * @param element\n */\n static replaceWithChildren(element) {\n let children = [];\n //Zwischenspeichern der Children, da removeChild die forEach-Schleife durcheinander bringt\n element.childNodes.forEach(child => {\n children.push(child);\n });\n let parent = element.parentElement;\n children.forEach(child => {\n element.removeChild(child);\n parent.insertBefore(child, element);\n });\n element.remove();\n }\n}\nexports.ViewInflater = ViewInflater;\nViewInflater.instance = null;\n//# sourceMappingURL=ViewInflater.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/ViewInflater.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/js/translationInit.js":
/*!**********************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/js/translationInit.js ***!
\**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst App_1 = __webpack_require__(/*! ./App */ \"./node_modules/cordova-sites/dist/client/js/App.js\");\nconst Translator_1 = __webpack_require__(/*! ./Translator */ \"./node_modules/cordova-sites/dist/client/js/Translator.js\");\nconst deTranslations = __webpack_require__(/*! ../translations/de */ \"./node_modules/cordova-sites/dist/client/translations/de.json\");\nconst enTranslations = __webpack_require__(/*! ../translations/en */ \"./node_modules/cordova-sites/dist/client/translations/en.json\");\nApp_1.App.addInitialization(() => {\n console.log(\"user trsnslation\");\n Translator_1.Translator.addDynamicTranslations({\n \"de\": deTranslations,\n \"en\": enTranslations\n });\n});\n//# sourceMappingURL=translationInit.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/js/translationInit.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/translations/de.json":
/*!*********************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/translations/de.json ***!
\*********************************************************************/
/*! exports provided: Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, January, February, March, April, May, June, July, August, September, October, November, December, Sun, Mon, Tue, Wed, Thu, Fri, Sat, Jan, Feb, Mar, Apr, Jun, Jul, Aug, Sep, Oct, Nov, Dec, cannot open popups, default */
/***/ (function(module) {
eval("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.\\\"}\");\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/translations/de.json?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/client/translations/en.json":
/*!*********************************************************************!*\
!*** ./node_modules/cordova-sites/dist/client/translations/en.json ***!
\*********************************************************************/
/*! exports provided: Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, January, February, March, April, May, June, July, August, September, October, November, December, Sun, Mon, Tue, Wed, Thu, Fri, Sat, Jan, Feb, Mar, Apr, Jun, Jul, Aug, Sep, Oct, Nov, Dec, cannot open popups, default */
/***/ (function(module) {
eval("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.\\\"}\");\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/client/translations/en.json?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/shared.js":
/*!***************************************************!*\
!*** ./node_modules/cordova-sites/dist/shared.js ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(__webpack_require__(/*! ./shared/Translator */ \"./node_modules/cordova-sites/dist/shared/Translator.js\"), exports);\n//# sourceMappingURL=shared.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/shared.js?");
/***/ }),
/***/ "./node_modules/cordova-sites/dist/shared/Translator.js":
/*!**************************************************************!*\
!*** ./node_modules/cordova-sites/dist/shared/Translator.js ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Translator = void 0;\nconst shared_1 = __webpack_require__(/*! js-helper/dist/shared */ \"./node_modules/js-helper/dist/shared.js\");\n/**\n * Singleton-Klasse zum Übersetzen von Text-Inhalten\n */\nclass Translator {\n /**\n * Erstellt einen neuen Translator\n * @param config\n */\n constructor(config = {\n translations: {},\n fallbackLanguage: \"en\",\n markUntranslatedTranslations: true,\n markTranslations: false,\n logMissingTranslations: true\n }) {\n this._dynamicKey = 0;\n this._translations = {};\n this.addDynamicTranslations(Translator._translations);\n this.addDynamicTranslations(config.translations);\n this._fallbackLanguage = config.fallbackLanguage;\n this._markUntranslatedTranslations = config.markUntranslatedTranslations;\n this._markTranslations = config.markTranslations;\n if (config.logMissingTranslations === true) {\n this._logMissingTranslationsFunction = (missingTranslation, language) => {\n if (language === this._fallbackLanguage) {\n console.error(\"missing base translation for key \" + missingTranslation);\n }\n else {\n console.warn(\"missing translation for language >\" + language + \"< and key >\" + missingTranslation + \"<\");\n }\n };\n }\n else if (typeof config.logMissingTranslations === \"function\") {\n this._logMissingTranslationsFunction = config.logMissingTranslations;\n }\n else {\n this._logMissingTranslationsFunction = null;\n }\n this._translationCallbacks = new Map();\n this._lastTranslationCallbackId = 0;\n }\n createDynamicKey() {\n this._dynamicKey++;\n return \"translator-dynamic-\" + new Date().getTime() + \"-\" + this._dynamicKey;\n }\n /**\n * Übersetzt sofort einen Key in die aktuelle Sprache\n * @param key\n * @param args\n * @param language\n * @returns {*}\n */\n translate(key, args, language) {\n if (shared_1.Helper.isNull(key)) {\n return \"\";\n }\n language = shared_1.Helper.nonNull(language, args, this._fallbackLanguage);\n let translation = null;\n key = key.toLowerCase();\n if (shared_1.Helper.isNotNull(this._translations[language]) && shared_1.Helper.isNotNull(this._translations[language][key])) {\n translation = this._translations[language][key];\n }\n if (!Translator._isValid(translation)) {\n if (this._logMissingTranslationsFunction !== null) {\n this._logMissingTranslationsFunction(key, language);\n }\n if (this._translations[this._fallbackLanguage]) {\n translation = this._translations[this._fallbackLanguage][key];\n }\n if (!Translator._isValid(translation)) {\n if (this._logMissingTranslationsFunction !== null) {\n this._logMissingTranslationsFunction(key, language);\n }\n translation = key;\n }\n if (this._markUntranslatedTranslations) {\n translation = \"&gt;&gt;\" + translation + \"&lt;&lt;\";\n }\n }\n if (this._markTranslations) {\n translation = \"$\" + translation + \"$\";\n }\n if (args !== undefined) {\n translation = Translator._format(translation, args);\n }\n return translation;\n }\n /**\n * Fügt neue Übersetzungen hinzu\n * @param trans\n */\n addDynamicTranslations(trans) {\n for (let lang in trans) {\n if (!this._translations[lang]) {\n this._translations[lang] = {};\n }\n for (let key in trans[lang]) {\n this._translations[lang][key.toLowerCase()] = trans[lang][key];\n }\n }\n }\n getLanguages() {\n return Object.keys(this._translations);\n }\n getFallbackLanguage() {\n return this._fallbackLanguage;\n }\n static translate(key, args, language) {\n let instance = Translator.getInstance();\n if (instance) {\n return instance.translate(key, args, language);\n }\n return \"\";\n }\n static addDynamicTranslations(trans) {\n let instance = Translator.getInstance();\n if (instance) {\n return instance.addDynamicTranslations(trans);\n }\n else {\n Object.keys(trans).forEach(lang => {\n if (shared_1.Helper.isNull(Translator._translations[lang])) {\n Translator._translations[lang] = {};\n }\n Object.assign(Translator._translations[lang], trans[lang]);\n });\n }\n }\n static init(config) {\n Translator.instance = new Translator(config);\n }\n /**\n * @returns {Translator|null}\n */\n static getInstance() {\n return Translator.instance;\n }\n static _isValid(translation) {\n return (typeof translation === \"string\");\n }\n static _format(translation, args) {\n return translation.replace(/{(\\d+)}/g, function (match, number) {\n return args[number] !== undefined ? args[number] : match;\n });\n }\n}\nexports.Translator = Translator;\nTranslator._translations = {};\nTranslator.instance = null;\n//# sourceMappingURL=Translator.js.map\n\n//# sourceURL=webpack:///./node_modules/cordova-sites/dist/shared/Translator.js?");
/***/ }),
/***/ "./node_modules/cs-event-manager/dist/shared.js":
/*!******************************************************!*\
!*** ./node_modules/cs-event-manager/dist/shared.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(/*! ./shared/EventManager */ \"./node_modules/cs-event-manager/dist/shared/EventManager.js\"));\n\n\n//# sourceURL=webpack:///./node_modules/cs-event-manager/dist/shared.js?");
/***/ }),
/***/ "./node_modules/cs-event-manager/dist/shared/EventManager.js":
/*!*******************************************************************!*\
!*** ./node_modules/cs-event-manager/dist/shared/EventManager.js ***!
\*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst js_helper_1 = __webpack_require__(/*! js-helper */ \"./node_modules/js-helper/dist/shared.js\");\nclass EventManager {\n constructor() {\n this._listeners = {};\n this._lastListenerId = 0;\n }\n /**\n * @return {EventManager}\n */\n static getInstance() {\n if (!this._instance) {\n this._instance = new EventManager();\n }\n return this._instance;\n }\n addListener(event, listener) {\n if (typeof listener !== \"function\") {\n throw new Error(\"can only add functions as listeners!\");\n }\n this._lastListenerId++;\n if (!this._listeners[event]) {\n this._listeners[event] = {};\n this._listeners[event][this._lastListenerId] = listener;\n }\n return this._lastListenerId;\n }\n removeListener(event, listenerId) {\n if (this._listeners[event] && this._listeners[event][listenerId]) {\n delete this._listeners[event][listenerId];\n }\n }\n trigger(event, data) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._listeners[event]) {\n yield js_helper_1.Helper.asyncForEach(Object.keys(this._listeners[event]), (listenerId) => __awaiter(this, void 0, void 0, function* () {\n yield this._listeners[event][listenerId](data);\n }), true);\n }\n });\n }\n static trigger(event, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.getInstance().trigger(event, data);\n });\n }\n}\nexports.EventManager = EventManager;\nEventManager._instance = null;\n\n\n//# sourceURL=webpack:///./node_modules/cs-event-manager/dist/shared/EventManager.js?");
/***/ }),
/***/ "./node_modules/debug/src/browser.js":
/*!*******************************************!*\
!*** ./node_modules/debug/src/browser.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/* WEBPACK VAR INJECTION */(function(process) {/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = __webpack_require__(/*! ./common */ \"./node_modules/debug/src/common.js\")(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/debug/src/browser.js?");
/***/ }),
/***/ "./node_modules/debug/src/common.js":
/*!******************************************!*\
!*** ./node_modules/debug/src/common.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = __webpack_require__(/*! ms */ \"./node_modules/ms/index.js\");\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => enableOverride === null ? createDebug.enabled(namespace) : enableOverride,\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n\n\n//# sourceURL=webpack:///./node_modules/debug/src/common.js?");
/***/ }),
/***/ "./node_modules/ieee754/index.js":
/*!***************************************!*\
!*** ./node_modules/ieee754/index.js ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n\n\n//# sourceURL=webpack:///./node_modules/ieee754/index.js?");
/***/ }),
/***/ "./node_modules/inherits/inherits_browser.js":
/*!***************************************************!*\
!*** ./node_modules/inherits/inherits_browser.js ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n\n\n//# sourceURL=webpack:///./node_modules/inherits/inherits_browser.js?");
/***/ }),
/***/ "./node_modules/isarray/index.js":
/*!***************************************!*\
!*** ./node_modules/isarray/index.js ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n\n//# sourceURL=webpack:///./node_modules/isarray/index.js?");
/***/ }),
/***/ "./node_modules/js-helper/dist/client.js":
/*!***********************************************!*\
!*** ./node_modules/js-helper/dist/client.js ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(__webpack_require__(/*! ./client/Dragger/DragHelper */ \"./node_modules/js-helper/dist/client/Dragger/DragHelper.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/Dragger/DraggedElement */ \"./node_modules/js-helper/dist/client/Dragger/DraggedElement.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/HotkeyManager */ \"./node_modules/js-helper/dist/client/HotkeyManager.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/InputSelect */ \"./node_modules/js-helper/dist/client/InputSelect.js\"), exports);\n__exportStar(__webpack_require__(/*! ./client/ViewHelper */ \"./node_modules/js-helper/dist/client/ViewHelper.js\"), exports);\n//# sourceMappingURL=client.js.map\n\n//# sourceURL=webpack:///./node_modules/js-helper/dist/client.js?");
/***/ }),
/***/ "./node_modules/js-helper/dist/client/Dragger/DragHelper.js":
/*!******************************************************************!*\
!*** ./node_modules/js-helper/dist/client/Dragger/DragHelper.js ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DragHelper = void 0;\nconst DraggedElement_1 = __webpack_require__(/*! ./DraggedElement */ \"./node_modules/js-helper/dist/client/Dragger/DraggedElement.js\");\nclass DragHelper {\n constructor() {\n this.startPosition = null;\n this.currentDraggedElement = null;\n window.addEventListener(\"mousemove\", e => {\n if (this.currentDraggedElement) {\n this.dragMove({ x: e.clientX, y: e.clientY });\n }\n });\n window.addEventListener(\"touchmove\", e => {\n if (this.currentDraggedElement) {\n this.dragMove({ x: e.touches[0].clientX, y: e.touches[0].clientY });\n }\n });\n window.addEventListener(\"mouseup\", e => {\n if (e.button === 0) {\n this.dragStop({ x: e.clientX, y: e.clientY });\n }\n });\n window.addEventListener(\"touchend\", e => {\n if (e.touches.length === 0) {\n this.dragStop({ x: e.changedTouches[0].clientX, y: e.changedTouches[0].clientY });\n }\n });\n }\n static getInstance() {\n if (!this.instance) {\n this.instance = new DragHelper();\n }\n return this.instance;\n }\n draggable(element) {\n const dragElement = new DraggedElement_1.DraggedElement(element);\n element.addEventListener(\"mousedown\", e => {\n e.preventDefault();\n console.log(\"mousedown\", e.button);\n if (e.button === 0) {\n this.dragStart({ x: e.clientX, y: e.clientY }, dragElement);\n }\n });\n element.addEventListener(\"touchstart\", e => {\n e.preventDefault();\n if (e.touches.length === 1) {\n this.dragStart({ x: e.changedTouches[0].clientX, y: e.changedTouches[0].clientY }, dragElement);\n }\n });\n return dragElement;\n }\n dragStart(position, draggedElement) {\n this.currentDraggedElement = draggedElement;\n this.startPosition = position;\n this.currentDraggedElement.start();\n }\n dragMove(toPosition) {\n if (this.currentDraggedElement) {\n const diff = { x: toPosition.x - this.startPosition.x, y: toPosition.y - this.startPosition.y };\n this.currentDraggedElement.moveRelativeTo(diff);\n }\n }\n dragStop(mousePos) {\n if (this.currentDraggedElement) {\n this.currentDraggedElement.stop(mousePos);\n this.currentDraggedElement = null;\n this.startPosition = null;\n }\n }\n}\nexports.DragHelper = DragHelper;\n//# sourceMappingURL=DragHelper.js.map\n\n//# sourceURL=webpack:///./node_modules/js-helper/dist/client/Dragger/DragHelper.js?");
/***/ }),
/***/ "./node_modules/js-helper/dist/client/Dragger/DraggedElement.js":
/*!**********************************************************************!*\
!*** ./node_modules/js-helper/dist/client/Dragger/DraggedElement.js ***!
\**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DraggedElement = void 0;\nclass DraggedElement {\n constructor(element) {\n this.isDragging = false;\n this.element = element;\n }\n onStart(listener) {\n this.startListener = listener;\n return this;\n }\n onStop(listener) {\n this.stopListener = listener;\n return this;\n }\n onMove(listener) {\n this.moveListener = listener;\n return this;\n }\n start() {\n this.isDragging = true;\n if (!this.previewElement) {\n this.previewElement = this.element.cloneNode(true);\n const styles = getComputedStyle(this.element);\n for (let i = 0; i < styles.length; i++) {\n this.previewElement.style[styles[i]] = styles.getPropertyValue(styles[i]);\n }\n this.previewElement.style.opacity = \"0.6\";\n this.previewElement.style.position = \"fixed\";\n }\n const boundingRect = this.element.getBoundingClientRect();\n this.startPosition = { x: boundingRect.left, y: boundingRect.top };\n this.previewElement.style.top = boundingRect.top + \"px\";\n this.previewElement.style.left = boundingRect.left + \"px\";\n this.previewElement.style.width = (boundingRect.right - boundingRect.left) + \"px\";\n this.previewElement.style.height = (boundingRect.bottom - boundingRect.top) + \"px\";\n document.body.appendChild(this.previewElement);\n if (this.startListener) {\n this.startListener(this.element);\n }\n }\n stop(mousePosition) {\n this.isDragging = false;\n if (this.previewElement) {\n this.previewElement.remove();\n }\n const droppedAt = document.elementFromPoint(mousePosition.x, mousePosition.y);\n if (this.stopListener) {\n this.stopListener(this.element, droppedAt);\n }\n }\n moved() {\n if (this.isDragging && this.moveListener) {\n this.moveListener(this.element);\n }\n }\n moveRelativeTo(relativePos) {\n if (this.startPosition && this.previewElement) {\n const newPosition = { x: this.startPosition.x + relativePos.x, y: this.startPosition.y + relativePos.y };\n this.previewElement.style.left = newPosition.x + \"px\";\n this.previewElement.style.top = newPosition.y + \"px\";\n this.moved();\n }\n }\n}\nexports.DraggedElement = DraggedElement;\n//# sourceMappingURL=DraggedElement.js.map\n\n//# sourceURL=webpack:///./node_modules/js-helper/dist/client/Dragger/DraggedElement.js?");
/***/ }),
/***/ "./node_modules/js-helper/dist/client/HotkeyManager.js":
/*!*************************************************************!*\
!*** ./node_modules/js-helper/dist/client/HotkeyManager.js ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HotkeyManager = void 0;\nclass HotkeyManager {\n constructor() {\n this._keys = {};\n this._callbacks = {};\n this._lastCallbackId = 0;\n this._active = false;\n this.mousePosition = null;\n this._addListeners();\n this.ignoreFormElements = false;\n }\n static isFormElement(element) {\n return element instanceof HTMLInputElement\n || element instanceof HTMLSelectElement\n || element instanceof HTMLTextAreaElement;\n }\n getMousePosition() {\n return this.mousePosition;\n }\n _addListeners() {\n window.addEventListener(\"keydown\", e => {\n if (this.ignoreFormElements || !HotkeyManager.isFormElement(e.target)) {\n this._keys[e.key.toLowerCase()] = true;\n if (this._active) {\n this._checkCallbacks(e);\n }\n }\n });\n window.addEventListener(\"keyup\", e => {\n if (e.key) {\n this._keys[e.key.toLowerCase()] = false;\n }\n });\n document.addEventListener(\"mousemove\", e => {\n this.mousePosition = { x: e.clientX, y: e.clientY };\n });\n }\n activate() {\n this._active = true;\n }\n deactivate() {\n this._active = false;\n }\n addCallback(keys, callback) {\n this._lastCallbackId++;\n this._callbacks[this._lastCallbackId] = {\n keys: keys,\n callback: callback\n };\n }\n isKeyPressed(key) {\n return this._active && this._keys[key] && this._keys[key] === true;\n }\n _checkCallbacks(e) {\n //TODO async forEach?\n Object.values(this._callbacks).forEach(callback => {\n // @ts-ignore\n if (callback.keys.every(key => this._keys[key] === true)) {\n // @ts-ignore\n callback.callback(e);\n }\n });\n }\n removeCallback(callbackId) {\n delete this._callbacks[callbackId];\n }\n}\nexports.HotkeyManager = HotkeyManager;\n//# sourceMappingURL=HotkeyManager.js.map\n\n//# sourceURL=webpack:///./node_modules/js-helper/dist/client/HotkeyManager.js?");
/***/ }),
/***/ "./node_modules/js-helper/dist/client/InputSelect.js":
/*!***********************************************************!*\
!*** ./node_modules/js-helper/dist/client/InputSelect.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InputSelect = void 0;\nconst Helper_1 = __webpack_require__(/*! ../shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nconst ViewHelper_1 = __webpack_require__(/*! ./ViewHelper */ \"./node_modules/js-helper/dist/client/ViewHelper.js\");\nclass InputSelect {\n constructor(element, options) {\n this.onChangeListeners = [];\n if (typeof element === \"string\") {\n element = document.querySelector(element);\n }\n this.options = new Map();\n this.inputElement = element;\n options.forEach(o => {\n if (typeof o === \"string\") {\n o = { value: o, label: o };\n }\n o.selected = Helper_1.Helper.nonNull(o.selected, false);\n this.options.set(o.value, o);\n return o;\n });\n this.buildElement();\n }\n onChange(listener) {\n this.onChangeListeners.push(listener);\n }\n buildElement() {\n const parent = this.inputElement.parentElement;\n this.container = document.createElement(\"div\");\n this.container.classList.add(\"input-select-container\");\n const flexContainer = document.createElement(\"div\");\n flexContainer.classList.add(\"input-select-flex\");\n this.selectedOptionsContainer = document.createElement(\"span\");\n this.selectedOptionsContainer.classList.add(\"input-select-selected-options\");\n const classes = [];\n this.inputElement.classList.forEach(c => {\n this.container.classList.add(c);\n classes.push(c);\n });\n this.inputElement.classList.remove(...classes);\n this.inputElement.classList.add(\"input-select-input\");\n this.optionsContainer = document.createElement(\"div\");\n this.optionsContainer.classList.add(\"input-select-options\");\n parent.insertBefore(this.container, this.inputElement);\n this.inputElement.remove();\n this.container.appendChild(flexContainer);\n this.container.appendChild(this.optionsContainer);\n flexContainer.appendChild(this.selectedOptionsContainer);\n flexContainer.appendChild(this.inputElement);\n this.inputElement.addEventListener(\"input\", () => this.updateOptions());\n if (\"ResizeObserver\" in window) {\n // @ts-ignore\n const resizeObserver = new ResizeObserver(entries => {\n entries.forEach(entry => {\n this.optionsContainer.style.width = entry.borderBoxSize[0].inlineSize + \"px\";\n });\n });\n resizeObserver.observe(this.container);\n }\n // if (\"IntersectionObserver\" in window) {\n // const intersectionOptions = {\n // root: this.optionsContainer,\n // rootMargin: \"20px\",\n // threshold: 0.01\n // }\n // const intersectionObserver = new IntersectionObserver((entries) => {\n // entries.forEach(entry => console.log(\"is intersecting\", entry.isIntersecting));\n // // console.log(\"entries\", entries);\n // }, intersectionOptions);\n // intersectionObserver.observe(flexContainer);\n // }\n window.addEventListener(\"scroll\", () => console.log(\"scrolling\"));\n this.container.addEventListener(\"click\", () => {\n const rect = this.container.getBoundingClientRect();\n this.optionsContainer.style.top = (rect.top + rect.height) + \"px\";\n });\n this.updateOptions();\n }\n updateOptions() {\n ViewHelper_1.ViewHelper.removeAllChildren(this.selectedOptionsContainer);\n ViewHelper_1.ViewHelper.removeAllChildren(this.optionsContainer);\n const inputValue = this.inputElement.value;\n this.options.forEach(o => {\n const optionElement = document.createElement(\"span\");\n optionElement.classList.add(\"input-select-option\");\n optionElement.dataset[\"value\"] = o.value;\n optionElement.innerText = o.label;\n if (o.selected) {\n this.selectedOptionsContainer.appendChild(optionElement);\n }\n else if (o.label.indexOf(inputValue) !== -1) {\n this.optionsContainer.appendChild(optionElement);\n }\n optionElement.addEventListener(\"click\", (e) => {\n e.stopPropagation();\n e.preventDefault();\n e.cancelBubble = true;\n this.toggle(o.value);\n this.inputElement.focus();\n });\n });\n }\n toggle(value) {\n const option = this.options.get(value);\n if (option) {\n option.selected = !option.selected;\n this.updateOptions();\n this.onChangeListeners.forEach(listener => {\n listener(option, this);\n });\n }\n }\n getOptions() {\n return Array.from(this.options.values());\n }\n getSelectedOptions() {\n return this.getOptions().filter(o => o.selected);\n }\n getSelectedValues() {\n return this.getSelectedOptions().map(o => o.value);\n }\n updateSelection(selection) {\n Object.keys(selection).forEach(value => {\n const option = this.options.get(value);\n if (option) {\n option.selected = selection[value];\n }\n });\n this.updateOptions();\n }\n}\nexports.InputSelect = InputSelect;\n//# sourceMappingURL=InputSelect.js.map\n\n//# sourceURL=webpack:///./node_modules/js-helper/dist/client/InputSelect.js?");
/***/ }),
/***/ "./node_modules/js-helper/dist/client/ViewHelper.js":
/*!**********************************************************!*\
!*** ./node_modules/js-helper/dist/client/ViewHelper.js ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ViewHelper = void 0;\nclass ViewHelper {\n /**\n * Entfernt alle Children eines Elements\n *\n * @param element\n * @returns {Node}\n */\n static removeAllChildren(element) {\n if (element instanceof Node) {\n while (element.firstChild) {\n element.removeChild(element.firstChild);\n }\n }\n return element;\n }\n /**\n * Moves the child-Nodes from one element to another\n * @param from\n * @param to\n * @returns {*}\n */\n static moveChildren(from, to) {\n let children = [];\n //Zwischenspeichern der Children, da removeChild die forEach-Schleife durcheinander bringt\n from.childNodes.forEach(child => {\n children.push(child);\n });\n children.forEach(child => {\n from.removeChild(child);\n to.appendChild(child);\n });\n return to;\n }\n static insertAfter(newChild, referenceChild) {\n const parent = referenceChild.parentNode;\n if (parent) {\n if (parent.lastChild === referenceChild) {\n parent.appendChild(newChild);\n }\n else {\n parent.insertBefore(newChild, referenceChild.nextSibling);\n }\n return true;\n }\n return false;\n }\n}\nexports.ViewHelper = ViewHelper;\n//# sourceMappingURL=ViewHelper.js.map\n\n//# sourceURL=webpack:///./node_modules/js-helper/dist/client/ViewHelper.js?");
/***/ }),
/***/ "./node_modules/js-helper/dist/shared.js":
/*!***********************************************!*\
!*** ./node_modules/js-helper/dist/shared.js ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(__webpack_require__(/*! ./shared/Counter */ \"./node_modules/js-helper/dist/shared/Counter.js\"), exports);\n__exportStar(__webpack_require__(/*! ./shared/DateHelper */ \"./node_modules/js-helper/dist/shared/DateHelper.js\"), exports);\n__exportStar(__webpack_require__(/*! ./shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\"), exports);\n__exportStar(__webpack_require__(/*! ./shared/JsonHelper */ \"./node_modules/js-helper/dist/shared/JsonHelper.js\"), exports);\n__exportStar(__webpack_require__(/*! ./shared/MigrationHelper */ \"./node_modules/js-helper/dist/shared/MigrationHelper.js\"), exports);\n__exportStar(__webpack_require__(/*! ./shared/Prioritized */ \"./node_modules/js-helper/dist/shared/Prioritized.js\"), exports);\n__exportStar(__webpack_require__(/*! ./shared/PromiseWithHandlers */ \"./node_modules/js-helper/dist/shared/PromiseWithHandlers.js\"), exports);\n__exportStar(__webpack_require__(/*! ./shared/Random */ \"./node_modules/js-helper/dist/shared/Random.js\"), exports);\n__exportStar(__webpack_require__(/*! ./shared/XSSHelper */ \"./node_modules/js-helper/dist/shared/XSSHelper.js\"), exports);\n//# sourceMappingURL=shared.js.map\n\n//# sourceURL=webpack:///./node_modules/js-helper/dist/shared.js?");
/***/ }),
/***/ "./node_modules/js-helper/dist/shared/Counter.js":
/*!*******************************************************!*\
!*** ./node_modules/js-helper/dist/shared/Counter.js ***!
\*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Counter = void 0;\nconst Helper_1 = __webpack_require__(/*! ./Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nclass Counter {\n constructor(value) {\n this._value = 0;\n if (value instanceof Counter) {\n value = value.current;\n }\n this._value = Helper_1.Helper.nonNull(value, 0);\n }\n next() {\n this._value++;\n return this._value;\n }\n current() {\n return this._value;\n }\n}\nexports.Counter = Counter;\n//# sourceMappingURL=Counter.js.map\n\n//# sourceURL=webpack:///./node_modules/js-helper/dist/shared/Counter.js?");
/***/ }),
/***/ "./node_modules/js-helper/dist/shared/DateHelper.js":
/*!**********************************************************!*\
!*** ./node_modules/js-helper/dist/shared/DateHelper.js ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DateHelper = void 0;\nconst Helper_1 = __webpack_require__(/*! ./Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nlet DateHelper = /** @class */ (() => {\n class DateHelper {\n /**\n * Formatiert ein Date-Object nach der Vorlage von der C-Funktion strftime\n *\n * @param sFormat\n * @param date\n * @param useUTC\n * @returns {*|void|string}\n */\n static strftime(sFormat, date, useUTC) {\n useUTC = Helper_1.Helper.nonNull(useUTC, false);\n date = Helper_1.Helper.nonNull(date, new Date());\n if (!(date instanceof Date))\n date = new Date(date);\n 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 () {\n if ((nYear & 3) !== 0)\n return false;\n return nYear % 100 !== 0 || nYear % 400 === 0;\n }, getThursday = function () {\n let target = new Date(date);\n target.setDate(nDate - ((nDay + 6) % 7) + 3);\n return target;\n }, zeroPad = function (nNum, nPad) {\n return ('' + (Math.pow(10, nPad) + nNum)).slice(1);\n };\n return sFormat.replace(/%[a-z]/gi, (sMatch) => {\n return {\n '%a': this.translate(aDaysShort[nDay]),\n '%A': this.translate(aDays[nDay]),\n '%b': this.translate(aMonths[nMonth].slice(0, 3)),\n '%B': this.translate(aMonths[nMonth]),\n '%c': date.toUTCString(),\n '%C': Math.floor(nYear / 100),\n '%d': zeroPad(nDate, 2),\n '%e': nDate,\n '%f': zeroPad(date.getTime() % 1000, 4),\n '%F': date.toISOString().slice(0, 10),\n '%G': getThursday().getFullYear(),\n '%g': ('' + getThursday().getFullYear()).slice(2),\n '%H': zeroPad(nHour, 2),\n '%I': zeroPad((nHour + 11) % 12 + 1, 2),\n '%j': zeroPad(aDayCount[nMonth] + nDate + ((nMonth > 1 && isLeapYear()) ? 1 : 0), 3),\n '%k': '' + nHour,\n '%l': (nHour + 11) % 12 + 1,\n '%m': zeroPad(nMonth + 1, 2),\n '%M': zeroPad(date.getMinutes(), 2),\n '%p': (nHour < 12) ? 'AM' : 'PM',\n '%P': (nHour < 12) ? 'am' : 'pm',\n '%s': Math.round(date.getTime() / 1000),\n '%S': zeroPad(date.getSeconds(), 2),\n '%u': nDay || 7,\n '%w': '' + nDay,\n '%x': date.toLocaleDateString(),\n '%X': date.toLocaleTimeString(),\n '%y': ('' + nYear).slice(2),\n '%Y': nYear,\n '%z': date.toTimeString().replace(/.+GMT([+-]\\d+).+/, '$1'),\n '%Z': date.toTimeString().replace(/.+\\((.+?)\\)$/, '$1')\n }[sMatch] || sMatch;\n });\n }\n static translate(key) {\n if (this.translationCallback) {\n return this.translationCallback(key);\n }\n return key;\n }\n static setTranslationCallback(callback) {\n this.translationCallback = callback;\n }\n }\n DateHelper.FORMAT = {\n ISO_TIME: \"%Y-%m-%dT%H:%M%S\"\n };\n return DateHelper;\n})();\nexports.DateHelper = DateHelper;\n//# sourceMappingURL=DateHelper.js.map\n\n//# sourceURL=webpack:///./node_modules/js-helper/dist/shared/DateHelper.js?");
/***/ }),
/***/ "./node_modules/js-helper/dist/shared/Helper.js":
/*!******************************************************!*\
!*** ./node_modules/js-helper/dist/shared/Helper.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Helper = void 0;\n/**\n * Eine Klasse mit häufig genutzten, nützlichen Funktionen\n */\nconst JsonHelper_1 = __webpack_require__(/*! ./JsonHelper */ \"./node_modules/js-helper/dist/shared/JsonHelper.js\");\nclass Helper {\n /**\n * Testet, ob eine Variable null oder Undefined ist\n *\n * @param variable\n * @returns {boolean}\n */\n static isNull(variable, ...args) {\n return Helper.isAllNull(...arguments);\n }\n static isAllNull(...args) {\n for (let i = 0; i < args.length; i++) {\n if (!(args[i] === null || args[i] === undefined)) {\n return false;\n }\n }\n return true;\n }\n static isAtLeastOneNull(...args) {\n return !Helper.isAllNull(...args);\n }\n /**\n * Testet, ob eine Variable nicht (null oder undefined) ist\n *\n * @param variable\n * @returns {boolean}\n */\n static isNotNull(variable, ...args) {\n return Helper.isAllNotNull(...arguments);\n }\n static isAllNotNull(...args) {\n for (let i = 0; i < args.length; i++) {\n if ((args[i] === null || args[i] === undefined)) {\n return false;\n }\n }\n return true;\n }\n static isAtLeastOneNotNull(...args) {\n return !Helper.isAllNull(...args);\n }\n /**\n * Gibt den ersten übergebenen Wert, der nicht (null oder undefined) ist, zurück\n *\n * @param val1\n * @param val2\n * @param args\n * @returns {*}\n */\n static nonNull(val1, val2, ...args) {\n for (let i = 0; i < arguments.length; i++) {\n if (Helper.isNotNull(arguments[i])) {\n return arguments[i];\n }\n }\n return null;\n }\n /**\n * Testet, ob der übergebene Index am Objekt gesetzt ist. Werden mehrere Indexes übergeben, so wird getestet,\n * ob die \"Index-Kette\" gesetzt ist.\n * Bsp.:\n * Helper.isSet({\"index1\":{\"index2\":value}}, \"index1\", \"index2\") ist wahr\n *\n * @param object\n * @param indexes\n * @returns {*}\n */\n static isSet(object, ...indexes) {\n if (Helper.isNotNull(object)) {\n if (indexes.length === 0) {\n return true;\n }\n return (Helper.isSet.apply(null, [object[indexes[0]]].concat(indexes.slice(1))));\n }\n return false;\n }\n /**\n * Testet, ob ein Wert null oder Leerstring, bzw nur aus leerzeichend bestehender String ist\n *\n * @param value\n * @returns {boolean}\n */\n static empty(value) {\n return (Helper.isNull(value) || (typeof value === 'string' && value.trim() === \"\"));\n }\n /**\n * Testet, ob ein Wert NICHT (null oder Leerstring, bzw nur aus leerzeichend bestehender String ist)\n *\n * @param value\n * @returns {boolean}\n */\n static notEmpty(value) {\n return !Helper.empty(value);\n }\n static arrayToObject(array, indexFunction) {\n let obj = {};\n array.forEach(val => {\n obj[indexFunction(val)] = val;\n });\n return obj;\n }\n /**\n * Deepcopies JSON\n *\n * @param obj\n * @returns {*}\n */\n static cloneJson(obj) {\n return JsonHelper_1.JsonHelper.deepCopy(obj);\n }\n /**\n * Erstellt ein FormData-Object von JSON-Data. Nützlich für fetch\n *\n * @param obj\n * @returns {FormData}\n */\n static formDataFromObject(obj) {\n let formData = new FormData();\n for (let k in obj) {\n formData.set(k, obj[k]);\n }\n return formData;\n }\n static shuffleArray(array) {\n let currentIndex = array.length, temporaryValue, randomIndex;\n // While there remain elements to shuffle...\n while (0 !== currentIndex) {\n // Pick a remaining element...\n randomIndex = Math.floor(Math.random() * currentIndex);\n currentIndex -= 1;\n // And swap it with the current element.\n temporaryValue = array[currentIndex];\n array[currentIndex] = array[randomIndex];\n array[randomIndex] = temporaryValue;\n }\n return array;\n }\n static padZero(n, width, z) {\n z = Helper.nonNull(z, '0');\n n = n + '';\n width = Helper.nonNull(width, 1);\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\n }\n static deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a === \"object\" && typeof b === \"object\") {\n let keysOfB = Object.keys(b);\n let childrenDeepEqual = Object.keys(a).every((key) => {\n let index = keysOfB.indexOf(key);\n if (index < 0) {\n return false;\n }\n keysOfB.splice(index, 1);\n return Helper.deepEqual(a[key], b[key]);\n });\n return (childrenDeepEqual && keysOfB.length === 0);\n }\n return false;\n }\n //Ältere evtl nützliche Funktionen\n static htmlspecialcharsDecode(text) {\n const map = {\n '&amp;': '&',\n '&#038;': \"&\",\n '&lt;': '<',\n '&gt;': '>',\n '&quot;': '\"',\n '&#039;': \"'\",\n '&#8217;': \"\",\n '&#8216;': \"\",\n '&#8211;': \"\",\n '&#8212;': \"—\",\n '&#8230;': \"…\",\n '&#8221;': '”'\n };\n if (Helper.isNotNull(text) && typeof text.replace === \"function\") {\n return text.replace(/\\&[\\w\\d\\#]{2,5}\\;/g, function (m) {\n return map[m];\n });\n }\n return text;\n }\n /**\n * Inverts the key-Values for an object\n * @param obj\n * @return {*}\n */\n static invertKeyValues(obj) {\n let new_obj = {};\n for (let prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n new_obj[obj[prop]] = prop;\n }\n }\n return new_obj;\n }\n static asyncForEach(array, callback, runAsyncronous) {\n return __awaiter(this, void 0, void 0, function* () {\n runAsyncronous = Helper.nonNull(runAsyncronous, false);\n let validPromises = [];\n for (let i = 0; i < array.length; i++) {\n let index = i;\n let currentPromise = Promise.resolve(callback(array[index], index, array));\n if (!runAsyncronous) {\n yield currentPromise;\n }\n validPromises.push(currentPromise);\n }\n return Promise.all(validPromises);\n });\n }\n static escapeRegExp(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"); // $& means the whole matched string\n }\n static objectForEach(object, callback) {\n Object.keys(object).forEach(key => {\n callback(object[key], key, object);\n });\n }\n static toArray(object) {\n let res = [];\n for (let k in object) {\n res.push(object[k]);\n }\n return res;\n }\n static imageUrlIsEmpty(url) {\n return (Helper.isNull(url) || url.trim() === \"\" || url.trim() === \"data:\");\n }\n static newPromiseWithResolve() {\n let resolver = null;\n let rejecter = null;\n let promise = new Promise((resolve, reject) => {\n resolver = resolve;\n rejecter = reject;\n });\n promise[\"resolve\"] = resolver;\n promise[\"reject\"] = rejecter;\n return promise;\n }\n static isMobileApp() {\n return (typeof device !== \"undefined\" && device.platform !== \"browser\");\n }\n static toSnakeCase(camelCase) {\n return camelCase.replace(/([A-Z])/g, function (find, something, position) { return ((position > 0) ? \"_\" : \"\") + find[0].toLowerCase(); });\n }\n static wait(timeout, result) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise(r => {\n setTimeout(() => {\n r(result);\n }, timeout);\n });\n });\n }\n static timeout(time, otherPromise, timeoutResult) {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.race([otherPromise, Helper.wait(time).then(() => {\n if (timeoutResult === undefined) {\n return Promise.reject();\n }\n else {\n return timeoutResult;\n }\n })]);\n });\n }\n}\nexports.Helper = Helper;\n//# sourceMappingURL=Helper.js.map\n\n//# sourceURL=webpack:///./node_modules/js-helper/dist/shared/Helper.js?");
/***/ }),
/***/ "./node_modules/js-helper/dist/shared/JsonHelper.js":
/*!**********************************************************!*\
!*** ./node_modules/js-helper/dist/shared/JsonHelper.js ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonHelper = void 0;\nconst Helper_1 = __webpack_require__(/*! ./Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nclass JsonHelper {\n static deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (a === null || b === null) {\n return false;\n }\n // array deepEqual\n if (a instanceof Array && b instanceof Array && a.length === b.length) {\n return a[\"every\"]((obj, i) => {\n return JsonHelper.deepEqual(obj, b[i]);\n });\n }\n //date deepEqual\n if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n }\n // object deep copy\n if (typeof a === \"object\" && typeof b === \"object\") {\n let aKeys = Object.keys(a);\n let bKeys = Object.keys(b);\n return aKeys.length === bKeys.length && aKeys[\"every\"]((key) => {\n return Helper_1.Helper.isNotNull(b[key]) && JsonHelper.deepEqual(a[key], b[key]);\n });\n }\n //else is false (or not handled)\n return false;\n }\n /**\n * Deepcopies JSON\n *\n * @param obj\n * @returns {*}\n */\n static deepCopy(obj) {\n // https://stackoverflow.com/questions/4120475/how-to-create-and-clone-a-json-object/17502990#17502990\n let i;\n // basic type deep copy\n if (Helper_1.Helper.isNull(obj) || typeof obj !== 'object') {\n return obj;\n }\n // array deep copy\n if (obj instanceof Array) {\n let cloneA = [];\n for (i = 0; i < obj.length; ++i) {\n cloneA[i] = JsonHelper.deepCopy(obj[i]);\n }\n return cloneA;\n }\n if (obj instanceof Date) {\n return new Date(obj.getTime());\n }\n // object deep copy\n let cloneO = {};\n for (i in obj) {\n cloneO[i] = JsonHelper.deepCopy(obj[i]);\n }\n return cloneO;\n }\n static deepAssign(...objects) {\n if (objects.length > 0 && Array.isArray(objects)) {\n const result = [];\n objects.forEach(arr => result.push(...arr));\n return result;\n }\n const resultObj = {};\n objects.forEach(obj => {\n for (let i in obj) {\n if (resultObj[i] && typeof obj[i] === \"object\" && typeof resultObj[i] === \"object\") {\n resultObj[i] = JsonHelper.deepAssign(resultObj[i], obj[i]);\n }\n else {\n resultObj[i] = obj[i];\n }\n }\n });\n return resultObj;\n }\n static getDiff(a, b) {\n const result = {\n changed: {},\n added: {},\n removed: [],\n };\n // if (Array.isArray(a) && Array.isArray(b)){\n // const lengthA = a.length;\n // const lengthB = b.length;\n //\n // const minLength = Math.min(lengthA, lengthB);\n // for (let i = 0; i < minLength; i++){\n // const\n // }\n // }\n if ((typeof a !== \"object\" || typeof b !== \"object\")\n && (!Array.isArray(a) && !Array.isArray(b))) {\n if (a === b) {\n return null;\n }\n else {\n return { value: b };\n }\n }\n let hasChanged = false;\n let hasRemoved = false;\n let hasAdded = false;\n for (let i in a) {\n if (i in b) {\n const newVal = JsonHelper.getDiff(a[i], b[i]);\n if (newVal !== null) {\n result.changed[i] = newVal;\n hasChanged = true;\n }\n }\n else {\n result.removed.push(i);\n hasRemoved = true;\n }\n }\n for (let i in b) {\n if (!(i in a)) {\n result.added[i] = b[i];\n hasAdded = true;\n }\n }\n if (hasRemoved || hasAdded || hasChanged) {\n return result;\n }\n else {\n return null;\n }\n }\n static applyDiff(obj, diff) {\n if (!Array.isArray(diff.removed)) {\n debugger;\n }\n Object.keys(diff.changed).forEach(key => {\n if (\"value\" in diff.changed[key]) {\n obj[key] = diff.changed[key].value;\n }\n else {\n obj[key] = JsonHelper.applyDiff(obj[key], diff.changed[key]);\n }\n });\n Object.keys(diff.added).forEach(key => obj[key] = diff.added[key]);\n if (Array.isArray(obj)) {\n diff.removed.sort((a, b) => (parseInt(b) - parseInt(a))).forEach(index => {\n obj.splice(parseInt(index), 1);\n });\n }\n else {\n diff.removed.forEach(rem => delete obj[rem]);\n }\n return obj;\n }\n}\nexports.JsonHelper = JsonHelper;\n//# sourceMappingURL=JsonHelper.js.map\n\n//# sourceURL=webpack:///./node_modules/js-helper/dist/shared/JsonHelper.js?");
/***/ }),
/***/ "./node_modules/js-helper/dist/shared/MigrationHelper.js":
/*!***************************************************************!*\
!*** ./node_modules/js-helper/dist/shared/MigrationHelper.js ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MigrationHelper = void 0;\nconst typeorm_1 = __webpack_require__(/*! typeorm */ \"./node_modules/typeorm/browser/index.js\");\nconst Helper_1 = __webpack_require__(/*! ./Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nclass MigrationHelper {\n static isServer() {\n return (typeof document !== \"object\");\n }\n static addTableFromModelClass(modelClass, queryRunner) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield queryRunner.createTable(this.createTableFromModelClass(modelClass));\n });\n }\n static addManyToManyTable(tableOne, tableTwo, queryRunner) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield queryRunner.createTable(this.createManyToManyTable(tableOne, tableTwo));\n });\n }\n static createManyToManyTable(tableOne, tableTwo) {\n let fieldOne = tableOne + \"Id\";\n let fieldTwo = tableTwo + \"Id\";\n let name = tableOne + tableTwo.substr(0, 1).toUpperCase() + tableTwo.substr(1);\n let manyToManyTable = new typeorm_1.Table({\n name: name,\n columns: [\n {\n name: fieldOne,\n isPrimary: true,\n type: \"integer\"\n },\n {\n name: fieldTwo,\n isPrimary: true,\n type: \"integer\"\n }\n ],\n indices: [\n {\n name: \"IDX_\" + name + \"_\" + fieldOne,\n columnNames: [fieldOne]\n },\n {\n name: \"IDX_\" + name + \"_\" + fieldTwo,\n columnNames: [fieldTwo]\n }\n ],\n foreignKeys: [\n {\n name: \"FK_\" + name + \"_\" + fieldOne,\n columnNames: [fieldOne],\n referencedTableName: tableOne.replace(/([A-Z])/, (match, p1) => \"_\" + p1.toLowerCase()),\n referencedColumnNames: [\"id\"],\n onDelete: \"cascade\",\n },\n {\n name: \"FK_\" + name + \"_\" + fieldTwo,\n columnNames: [fieldTwo],\n referencedTableName: tableTwo.replace(/([A-Z])/, (match, p1) => \"_\" + p1.toLowerCase()),\n referencedColumnNames: [\"id\"],\n onDelete: \"cascade\",\n },\n ]\n });\n return manyToManyTable;\n }\n static createTableFromModelClass(modelClass, prefix) {\n prefix = Helper_1.Helper.nonNull(prefix, \"\");\n let columns = [];\n let indices = [];\n let foreignKeys = [];\n let schemaDefinition = modelClass.getSchemaDefinition();\n let tableName = prefix + Helper_1.Helper.toSnakeCase(schemaDefinition.name);\n Object.keys(schemaDefinition.columns).forEach(column => {\n let columnConfig = {};\n Object.keys(schemaDefinition.columns[column]).forEach(key => {\n columnConfig[key] = schemaDefinition.columns[column][key];\n });\n columnConfig[\"name\"] = column;\n if (schemaDefinition.columns[column].primary) {\n columnConfig[\"isPrimary\"] = true;\n }\n if (schemaDefinition.columns[column].nullable) {\n columnConfig[\"isNullable\"] = true;\n }\n if (schemaDefinition.columns[column].generated) {\n //If it is not EasySyncBaseModel or server\n if (Helper_1.Helper.isNull(modelClass.CAN_BE_SYNCED) || this.isServer() || column === \"clientId\") {\n columnConfig[\"isGenerated\"] = true;\n columnConfig[\"generationStrategy\"] = \"increment\";\n if (!this.isServer()) {\n columnConfig[\"type\"] = \"INTEGER\";\n }\n }\n }\n if (typeof columnConfig[\"default\"] === \"string\") {\n columnConfig[\"default\"] = \"'\" + columnConfig[\"default\"] + \"'\";\n }\n else if (columnConfig[\"default\"] === true) {\n columnConfig[\"default\"] = 1;\n }\n else if (columnConfig[\"default\"] === false) {\n columnConfig[\"default\"] = 0;\n }\n if (columnConfig[\"type\"] === MigrationHelper.TYPES.SIMPLE_JSON) {\n columnConfig[\"type\"] = MigrationHelper.TYPES.TEXT;\n }\n if (columnConfig[\"type\"] === MigrationHelper.TYPES.MEDIUMTEXT && !this.isServer()) {\n columnConfig[\"type\"] = MigrationHelper.TYPES.TEXT;\n }\n if (columnConfig[\"type\"] === MigrationHelper.TYPES.SIMPLE_JSON && !this.isServer()) {\n columnConfig[\"type\"] = MigrationHelper.TYPES.TEXT;\n }\n columns.push(columnConfig);\n });\n Object.keys(schemaDefinition.relations).forEach(relation => {\n if (schemaDefinition.relations[relation].type === \"many-to-one\" || schemaDefinition.relations[relation].joinColumn) {\n // let columnName = Helper.toSnakeCase(relation) + \"Id\";\n let columnName = relation.substr(0, 1).toLowerCase() + relation.substr(1) + \"Id\";\n let columnConfig = {\n name: columnName,\n type: MigrationHelper.TYPES.INTEGER,\n isNullable: true\n };\n columns.push(columnConfig);\n let indexConfig = {\n name: \"IDX_\" + tableName + \"_\" + columnName,\n columnNames: [columnName]\n };\n indices.push(indexConfig);\n let foreignKeyConfig = {\n name: \"FK_\" + tableName + \"_\" + columnName,\n columnNames: [columnName],\n referencedTableName: Helper_1.Helper.toSnakeCase(schemaDefinition.relations[relation].target),\n referencedColumnNames: [\"id\"]\n };\n foreignKeys.push(foreignKeyConfig);\n }\n });\n return new typeorm_1.Table({\n name: tableName,\n columns: columns,\n indices: indices,\n foreignKeys: foreignKeys\n });\n }\n static updateModel(queryRunner, newModel) {\n return __awaiter(this, void 0, void 0, function* () {\n let schemaDefinition = newModel.getSchemaDefinition();\n let tableName = Helper_1.Helper.toSnakeCase(schemaDefinition.name);\n let newTable = this.createTableFromModelClass(newModel);\n let table = yield queryRunner.getTable(tableName);\n table.name = \"__temp__\" + table.name;\n table.indices.forEach(index => {\n index.name = \"__temp__\" + index.name;\n });\n table.foreignKeys.forEach(key => {\n key.name = \"__temp__\" + key.name;\n key.columnNames = [key.columnNames[0]];\n key.referencedColumnNames = [key.referencedColumnNames[0]];\n });\n if (MigrationHelper.isServer()) {\n table.columns.forEach(column => {\n if (column.default !== null && typeof column.default === \"string\" && column.default.startsWith(\"'\") && column.default.endsWith(\"'\") && (column.type !== \"varchar\" || column.default.startsWith(\"''\"))) {\n column.default = column.default.substring(1, column.default.length - 1);\n }\n });\n }\n yield queryRunner.createTable(table);\n let names = [];\n table.columns.forEach(column => {\n names.push(column.name);\n });\n yield queryRunner.query(\"INSERT INTO \" + table.name + \"(`\" + names.join(\"`,`\") + \"`) SELECT `\" + names.join(\"`,`\") + \"` FROM \" + tableName + \";\");\n yield queryRunner.query(\"DROP TABLE \" + tableName + \";\");\n yield queryRunner.createTable(newTable);\n let newColumnNames = [];\n newTable.columns.forEach(column => newColumnNames.push(column.name));\n names = [];\n table.columns.forEach(column => {\n if (newColumnNames.indexOf(column.name) !== -1) {\n names.push(column.name);\n }\n });\n yield queryRunner.query(\"INSERT INTO \" + tableName + \"(`\" + names.join(\"`,`\") + \"`) SELECT `\" + names.join(\"`,`\") + \"` FROM \" + table.name + \";\");\n yield queryRunner.query(\"DROP TABLE \" + table.name + \";\");\n });\n }\n}\nexports.MigrationHelper = MigrationHelper;\nMigrationHelper.TYPES = {\n INTEGER: \"int\",\n FLOAT: \"float\",\n DATE: \"datetime\",\n STRING: \"varchar\",\n TEXT: \"text\",\n MEDIUMTEXT: \"mediumtext\",\n BOOLEAN: \"boolean\",\n JSON: \"json\",\n SIMPLE_JSON: \"simple-json\",\n MY_JSON: \"my-json\"\n};\n//# sourceMappingURL=MigrationHelper.js.map\n\n//# sourceURL=webpack:///./node_modules/js-helper/dist/shared/MigrationHelper.js?");
/***/ }),
/***/ "./node_modules/js-helper/dist/shared/Prioritized.js":
/*!***********************************************************!*\
!*** ./node_modules/js-helper/dist/shared/Prioritized.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Prioritized = void 0;\nconst Helper_1 = __webpack_require__(/*! ./Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nclass Prioritized {\n constructor(promises) {\n this._lastPriority = 0;\n this._status = 0;\n this._lastResult = null;\n this._success = {};\n this._highestPromise = null;\n promises = Helper_1.Helper.nonNull(promises, {});\n this._callbacks = [];\n if (Array.isArray(promises)) {\n let tmpPromises = {};\n promises.forEach((promise, i) => {\n tmpPromises[(i + 1) * 10] = promise;\n });\n promises = tmpPromises;\n }\n let highestPromiseResolver = null;\n this._highestPromise = new Promise(resolve => {\n highestPromiseResolver = resolve;\n });\n Object.keys(promises).forEach(priority => {\n this._success[priority] = null;\n promises[priority].then(res => {\n this._success[priority] = true;\n if (parseInt(priority) > this._lastPriority) {\n this._lastResult = res;\n this._lastPriority = parseInt(priority);\n this._callCallbacks();\n if (this._checkHighest()) {\n this._status = 2;\n highestPromiseResolver();\n }\n else {\n this._status = 1;\n }\n }\n }).catch(e => {\n this._success[priority] = e;\n if (this._checkHighest()) {\n this._status = 2;\n highestPromiseResolver();\n }\n });\n });\n this._promises = promises;\n }\n _callCallbacks() {\n this._callbacks.forEach(callback => {\n callback(this._lastResult, this._lastPriority);\n });\n }\n _checkHighest() {\n let isHighestResult = false;\n Object.keys(this._success).reverse().some(priority => {\n if (Helper_1.Helper.isNull(this._success[priority])) {\n //return true beendet some-schleife\n return true;\n }\n else if (this._success[priority] === true) {\n isHighestResult = true;\n return true;\n }\n });\n return isHighestResult;\n }\n do(callback) {\n if (this._status < 2) {\n this._callbacks.push(callback);\n }\n if (this._status > 0) {\n callback(this._lastResult, this._lastPriority);\n }\n }\n highest(funcOrPromise) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this._highestPromise;\n if (Helper_1.Helper.isNotNull(funcOrPromise)) {\n return Promise.resolve(this._lastResult).then(funcOrPromise);\n }\n else {\n return Promise.resolve(this._lastResult);\n }\n });\n }\n first(funcOrPromise) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._status === 0) {\n if (Helper_1.Helper.isNotNull(funcOrPromise)) {\n return Promise.race(Object[\"values\"](this._promises)).then(funcOrPromise);\n }\n else {\n return Promise.race(Object[\"values\"](this._promises));\n }\n }\n else {\n return Promise.resolve(this._lastResult);\n }\n });\n }\n}\nexports.Prioritized = Prioritized;\n//# sourceMappingURL=Prioritized.js.map\n\n//# sourceURL=webpack:///./node_modules/js-helper/dist/shared/Prioritized.js?");
/***/ }),
/***/ "./node_modules/js-helper/dist/shared/PromiseWithHandlers.js":
/*!*******************************************************************!*\
!*** ./node_modules/js-helper/dist/shared/PromiseWithHandlers.js ***!
\*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PromiseWithHandlers = void 0;\nclass PromiseWithHandlers extends Promise {\n constructor(executor) {\n let resolver = null;\n let rejecter = null;\n super((res, rej) => {\n resolver = res;\n rejecter = rej;\n if (executor) {\n executor(resolver, rejecter);\n }\n });\n this.resolver = resolver;\n this.rejecter = rejecter;\n }\n resolve(value) {\n if (this.resolver) {\n this.resolver(value);\n }\n }\n reject(value) {\n if (this.rejecter) {\n this.rejecter(value);\n }\n }\n}\nexports.PromiseWithHandlers = PromiseWithHandlers;\n//# sourceMappingURL=PromiseWithHandlers.js.map\n\n//# sourceURL=webpack:///./node_modules/js-helper/dist/shared/PromiseWithHandlers.js?");
/***/ }),
/***/ "./node_modules/js-helper/dist/shared/Random.js":
/*!******************************************************!*\
!*** ./node_modules/js-helper/dist/shared/Random.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Random = void 0;\nconst Helper_1 = __webpack_require__(/*! ./Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\nlet Random = /** @class */ (() => {\n class Random {\n static seedRandom(seed) {\n this._seed = seed;\n }\n static getRandom() {\n let t = this._seed += 0x6D2B79F5;\n t = Math.imul(t ^ t >>> 15, t | 1);\n t ^= t + Math.imul(t ^ t >>> 7, t | 61);\n return ((t ^ t >>> 14) >>> 0) / 4294967296;\n }\n static getIntRandom(maxValue) {\n return Math.floor(Random.getRandom() * (maxValue + 1));\n }\n static getStringRandom(numSigns, alphabet) {\n alphabet = Helper_1.Helper.nonNull(alphabet, \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\");\n let random = \"\";\n const numAlphabet = alphabet.length - 1;\n for (let i = 0; i < numSigns; i++) {\n random += alphabet[Random.getIntRandom(numAlphabet)];\n }\n return random;\n }\n }\n Random._seed = new Date().getTime();\n return Random;\n})();\nexports.Random = Random;\n//# sourceMappingURL=Random.js.map\n\n//# sourceURL=webpack:///./node_modules/js-helper/dist/shared/Random.js?");
/***/ }),
/***/ "./node_modules/js-helper/dist/shared/XSSHelper.js":
/*!*********************************************************!*\
!*** ./node_modules/js-helper/dist/shared/XSSHelper.js ***!
\*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.XSSHelper = void 0;\nclass XSSHelper {\n static escapeHTML(text) {\n if (typeof text !== \"string\") {\n return text;\n }\n const MAP = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#039;'\n };\n return text.replace(/[&<>\"']/g, function (m) {\n return MAP[m];\n });\n }\n static escapeJS(text) {\n if (typeof text !== \"string\") {\n return text;\n }\n return text.replace(/[<]([\\\\s]*\\\\\\/?[\\\\s]*)script([^<]*)[>]/g, function (match, p1, p2) {\n return \"&lt;\" + p1 + \"sc&zwnj;ript\" + p2 + \"&gt;\";\n });\n }\n}\nexports.XSSHelper = XSSHelper;\n//# sourceMappingURL=XSSHelper.js.map\n\n//# sourceURL=webpack:///./node_modules/js-helper/dist/shared/XSSHelper.js?");
/***/ }),
/***/ "./node_modules/ms/index.js":
/*!**********************************!*\
!*** ./node_modules/ms/index.js ***!
\**********************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n 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(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n\n\n//# sourceURL=webpack:///./node_modules/ms/index.js?");
/***/ }),
/***/ "./node_modules/node-libs-browser/node_modules/buffer/index.js":
/*!*********************************************************************!*\
!*** ./node_modules/node-libs-browser/node_modules/buffer/index.js ***!
\*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("/* WEBPACK VAR INJECTION */(function(global) {/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\n\nvar base64 = __webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\")\nvar ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\")\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\")\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/node-libs-browser/node_modules/buffer/index.js?");
/***/ }),
/***/ "./node_modules/process/browser.js":
/*!*****************************************!*\
!*** ./node_modules/process/browser.js ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // 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\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // 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.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n//# sourceURL=webpack:///./node_modules/process/browser.js?");
/***/ }),
/***/ "./node_modules/reflect-metadata/Reflect.js":
/*!**************************************************!*\
!*** ./node_modules/reflect-metadata/Reflect.js ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/* WEBPACK VAR INJECTION */(function(process, global) {/*! *****************************************************************************\nCopyright (C) Microsoft. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\nvar Reflect;\n(function (Reflect) {\n // Metadata Proposal\n // https://rbuckton.github.io/reflect-metadata/\n (function (factory) {\n var root = typeof global === \"object\" ? global :\n typeof self === \"object\" ? self :\n typeof this === \"object\" ? this :\n Function(\"return this;\")();\n var exporter = makeExporter(Reflect);\n if (typeof root.Reflect === \"undefined\") {\n root.Reflect = Reflect;\n }\n else {\n exporter = makeExporter(root.Reflect, exporter);\n }\n factory(exporter);\n function makeExporter(target, previous) {\n return function (key, value) {\n if (typeof target[key] !== \"function\") {\n Object.defineProperty(target, key, { configurable: true, writable: true, value: value });\n }\n if (previous)\n previous(key, value);\n };\n }\n })(function (exporter) {\n var hasOwn = Object.prototype.hasOwnProperty;\n // feature test for Symbol support\n var supportsSymbol = typeof Symbol === \"function\";\n var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== \"undefined\" ? Symbol.toPrimitive : \"@@toPrimitive\";\n var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== \"undefined\" ? Symbol.iterator : \"@@iterator\";\n var supportsCreate = typeof Object.create === \"function\"; // feature test for Object.create support\n var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support\n var downLevel = !supportsCreate && !supportsProto;\n var HashMap = {\n // create an object in dictionary mode (a.k.a. \"slow\" mode in v8)\n create: supportsCreate\n ? function () { return MakeDictionary(Object.create(null)); }\n : supportsProto\n ? function () { return MakeDictionary({ __proto__: null }); }\n : function () { return MakeDictionary({}); },\n has: downLevel\n ? function (map, key) { return hasOwn.call(map, key); }\n : function (map, key) { return key in map; },\n get: downLevel\n ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; }\n : function (map, key) { return map[key]; },\n };\n // Load global or shim versions of Map, Set, and WeakMap\n var functionPrototype = Object.getPrototypeOf(Function);\n var usePolyfill = typeof process === \"object\" && process.env && process.env[\"REFLECT_METADATA_USE_MAP_POLYFILL\"] === \"true\";\n var _Map = !usePolyfill && typeof Map === \"function\" && typeof Map.prototype.entries === \"function\" ? Map : CreateMapPolyfill();\n var _Set = !usePolyfill && typeof Set === \"function\" && typeof Set.prototype.entries === \"function\" ? Set : CreateSetPolyfill();\n var _WeakMap = !usePolyfill && typeof WeakMap === \"function\" ? WeakMap : CreateWeakMapPolyfill();\n // [[Metadata]] internal slot\n // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots\n var Metadata = new _WeakMap();\n /**\n * Applies a set of decorators to a property of a target object.\n * @param decorators An array of decorators.\n * @param target The target object.\n * @param propertyKey (Optional) The property key to decorate.\n * @param attributes (Optional) The property descriptor for the target key.\n * @remarks Decorators are applied in reverse order.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Example = Reflect.decorate(decoratorsArray, Example);\n *\n * // property (on constructor)\n * Reflect.decorate(decoratorsArray, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.decorate(decoratorsArray, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Object.defineProperty(Example, \"staticMethod\",\n * Reflect.decorate(decoratorsArray, Example, \"staticMethod\",\n * Object.getOwnPropertyDescriptor(Example, \"staticMethod\")));\n *\n * // method (on prototype)\n * Object.defineProperty(Example.prototype, \"method\",\n * Reflect.decorate(decoratorsArray, Example.prototype, \"method\",\n * Object.getOwnPropertyDescriptor(Example.prototype, \"method\")));\n *\n */\n function decorate(decorators, target, propertyKey, attributes) {\n if (!IsUndefined(propertyKey)) {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsObject(target))\n throw new TypeError();\n if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))\n throw new TypeError();\n if (IsNull(attributes))\n attributes = undefined;\n propertyKey = ToPropertyKey(propertyKey);\n return DecorateProperty(decorators, target, propertyKey, attributes);\n }\n else {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsConstructor(target))\n throw new TypeError();\n return DecorateConstructor(decorators, target);\n }\n }\n exporter(\"decorate\", decorate);\n // 4.1.2 Reflect.metadata(metadataKey, metadataValue)\n // https://rbuckton.github.io/reflect-metadata/#reflect.metadata\n /**\n * A default metadata decorator factory that can be used on a class, class member, or parameter.\n * @param metadataKey The key for the metadata entry.\n * @param metadataValue The value for the metadata entry.\n * @returns A decorator function.\n * @remarks\n * If `metadataKey` is already defined for the target and target key, the\n * metadataValue for that key will be overwritten.\n * @example\n *\n * // constructor\n * @Reflect.metadata(key, value)\n * class Example {\n * }\n *\n * // property (on constructor, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticProperty;\n * }\n *\n * // property (on prototype, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * property;\n * }\n *\n * // method (on constructor)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticMethod() { }\n * }\n *\n * // method (on prototype)\n * class Example {\n * @Reflect.metadata(key, value)\n * method() { }\n * }\n *\n */\n function metadata(metadataKey, metadataValue) {\n function decorator(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))\n throw new TypeError();\n OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n return decorator;\n }\n exporter(\"metadata\", metadata);\n /**\n * Define a unique metadata entry on the target.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param metadataValue A value that contains attached metadata.\n * @param target The target object on which to define metadata.\n * @param propertyKey (Optional) The property key for the target.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Reflect.defineMetadata(\"custom:annotation\", options, Example);\n *\n * // property (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticMethod\");\n *\n * // method (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"method\");\n *\n * // decorator factory as metadata-producing annotation.\n * function MyAnnotation(options): Decorator {\n * return (target, key?) => Reflect.defineMetadata(\"custom:annotation\", options, target, key);\n * }\n *\n */\n function defineMetadata(metadataKey, metadataValue, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n exporter(\"defineMetadata\", defineMetadata);\n /**\n * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasMetadata\", hasMetadata);\n /**\n * Gets a value indicating whether the target object has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasOwnMetadata\", hasOwnMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object or its prototype chain.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getMetadata\", getMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getOwnMetadata\", getOwnMetadata);\n /**\n * Gets the metadata keys defined on the target object or its prototype chain.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryMetadataKeys(target, propertyKey);\n }\n exporter(\"getMetadataKeys\", getMetadataKeys);\n /**\n * Gets the unique metadata keys defined on the target object.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getOwnMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryOwnMetadataKeys(target, propertyKey);\n }\n exporter(\"getOwnMetadataKeys\", getOwnMetadataKeys);\n /**\n * Deletes the metadata entry from the target object with the provided key.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata entry was found and deleted; otherwise, false.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function deleteMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n if (!metadataMap.delete(metadataKey))\n return false;\n if (metadataMap.size > 0)\n return true;\n var targetMetadata = Metadata.get(target);\n targetMetadata.delete(propertyKey);\n if (targetMetadata.size > 0)\n return true;\n Metadata.delete(target);\n return true;\n }\n exporter(\"deleteMetadata\", deleteMetadata);\n function DecorateConstructor(decorators, target) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsConstructor(decorated))\n throw new TypeError();\n target = decorated;\n }\n }\n return target;\n }\n function DecorateProperty(decorators, target, propertyKey, descriptor) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target, propertyKey, descriptor);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsObject(decorated))\n throw new TypeError();\n descriptor = decorated;\n }\n }\n return descriptor;\n }\n function GetOrCreateMetadataMap(O, P, Create) {\n var targetMetadata = Metadata.get(O);\n if (IsUndefined(targetMetadata)) {\n if (!Create)\n return undefined;\n targetMetadata = new _Map();\n Metadata.set(O, targetMetadata);\n }\n var metadataMap = targetMetadata.get(P);\n if (IsUndefined(metadataMap)) {\n if (!Create)\n return undefined;\n metadataMap = new _Map();\n targetMetadata.set(P, metadataMap);\n }\n return metadataMap;\n }\n // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata\n function OrdinaryHasMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return true;\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryHasMetadata(MetadataKey, parent, P);\n return false;\n }\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n return ToBoolean(metadataMap.has(MetadataKey));\n }\n // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata\n function OrdinaryGetMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return OrdinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryGetMetadata(MetadataKey, parent, P);\n return undefined;\n }\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return undefined;\n return metadataMap.get(MetadataKey);\n }\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);\n metadataMap.set(MetadataKey, MetadataValue);\n }\n // 3.1.6.1 OrdinaryMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys\n function OrdinaryMetadataKeys(O, P) {\n var ownKeys = OrdinaryOwnMetadataKeys(O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (parent === null)\n return ownKeys;\n var parentKeys = OrdinaryMetadataKeys(parent, P);\n if (parentKeys.length <= 0)\n return ownKeys;\n if (ownKeys.length <= 0)\n return parentKeys;\n var set = new _Set();\n var keys = [];\n for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {\n var key = ownKeys_1[_i];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {\n var key = parentKeys_1[_a];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n return keys;\n }\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\n function OrdinaryOwnMetadataKeys(O, P) {\n var keys = [];\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return keys;\n var keysObj = metadataMap.keys();\n var iterator = GetIterator(keysObj);\n var k = 0;\n while (true) {\n var next = IteratorStep(iterator);\n if (!next) {\n keys.length = k;\n return keys;\n }\n var nextValue = IteratorValue(next);\n try {\n keys[k] = nextValue;\n }\n catch (e) {\n try {\n IteratorClose(iterator);\n }\n finally {\n throw e;\n }\n }\n k++;\n }\n }\n // 6 ECMAScript Data Typ0es and Values\n // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values\n function Type(x) {\n if (x === null)\n return 1 /* Null */;\n switch (typeof x) {\n case \"undefined\": return 0 /* Undefined */;\n case \"boolean\": return 2 /* Boolean */;\n case \"string\": return 3 /* String */;\n case \"symbol\": return 4 /* Symbol */;\n case \"number\": return 5 /* Number */;\n case \"object\": return x === null ? 1 /* Null */ : 6 /* Object */;\n default: return 6 /* Object */;\n }\n }\n // 6.1.1 The Undefined Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type\n function IsUndefined(x) {\n return x === undefined;\n }\n // 6.1.2 The Null Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type\n function IsNull(x) {\n return x === null;\n }\n // 6.1.5 The Symbol Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type\n function IsSymbol(x) {\n return typeof x === \"symbol\";\n }\n // 6.1.7 The Object Type\n // https://tc39.github.io/ecma262/#sec-object-type\n function IsObject(x) {\n return typeof x === \"object\" ? x !== null : typeof x === \"function\";\n }\n // 7.1 Type Conversion\n // https://tc39.github.io/ecma262/#sec-type-conversion\n // 7.1.1 ToPrimitive(input [, PreferredType])\n // https://tc39.github.io/ecma262/#sec-toprimitive\n function ToPrimitive(input, PreferredType) {\n switch (Type(input)) {\n case 0 /* Undefined */: return input;\n case 1 /* Null */: return input;\n case 2 /* Boolean */: return input;\n case 3 /* String */: return input;\n case 4 /* Symbol */: return input;\n case 5 /* Number */: return input;\n }\n var hint = PreferredType === 3 /* String */ ? \"string\" : PreferredType === 5 /* Number */ ? \"number\" : \"default\";\n var exoticToPrim = GetMethod(input, toPrimitiveSymbol);\n if (exoticToPrim !== undefined) {\n var result = exoticToPrim.call(input, hint);\n if (IsObject(result))\n throw new TypeError();\n return result;\n }\n return OrdinaryToPrimitive(input, hint === \"default\" ? \"number\" : hint);\n }\n // 7.1.1.1 OrdinaryToPrimitive(O, hint)\n // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive\n function OrdinaryToPrimitive(O, hint) {\n if (hint === \"string\") {\n var toString_1 = O.toString;\n if (IsCallable(toString_1)) {\n var result = toString_1.call(O);\n if (!IsObject(result))\n return result;\n }\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n else {\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n var toString_2 = O.toString;\n if (IsCallable(toString_2)) {\n var result = toString_2.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n throw new TypeError();\n }\n // 7.1.2 ToBoolean(argument)\n // https://tc39.github.io/ecma262/2016/#sec-toboolean\n function ToBoolean(argument) {\n return !!argument;\n }\n // 7.1.12 ToString(argument)\n // https://tc39.github.io/ecma262/#sec-tostring\n function ToString(argument) {\n return \"\" + argument;\n }\n // 7.1.14 ToPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-topropertykey\n function ToPropertyKey(argument) {\n var key = ToPrimitive(argument, 3 /* String */);\n if (IsSymbol(key))\n return key;\n return ToString(key);\n }\n // 7.2 Testing and Comparison Operations\n // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations\n // 7.2.2 IsArray(argument)\n // https://tc39.github.io/ecma262/#sec-isarray\n function IsArray(argument) {\n return Array.isArray\n ? Array.isArray(argument)\n : argument instanceof Object\n ? argument instanceof Array\n : Object.prototype.toString.call(argument) === \"[object Array]\";\n }\n // 7.2.3 IsCallable(argument)\n // https://tc39.github.io/ecma262/#sec-iscallable\n function IsCallable(argument) {\n // NOTE: This is an approximation as we cannot check for [[Call]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.4 IsConstructor(argument)\n // https://tc39.github.io/ecma262/#sec-isconstructor\n function IsConstructor(argument) {\n // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.7 IsPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-ispropertykey\n function IsPropertyKey(argument) {\n switch (Type(argument)) {\n case 3 /* String */: return true;\n case 4 /* Symbol */: return true;\n default: return false;\n }\n }\n // 7.3 Operations on Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-objects\n // 7.3.9 GetMethod(V, P)\n // https://tc39.github.io/ecma262/#sec-getmethod\n function GetMethod(V, P) {\n var func = V[P];\n if (func === undefined || func === null)\n return undefined;\n if (!IsCallable(func))\n throw new TypeError();\n return func;\n }\n // 7.4 Operations on Iterator Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects\n function GetIterator(obj) {\n var method = GetMethod(obj, iteratorSymbol);\n if (!IsCallable(method))\n throw new TypeError(); // from Call\n var iterator = method.call(obj);\n if (!IsObject(iterator))\n throw new TypeError();\n return iterator;\n }\n // 7.4.4 IteratorValue(iterResult)\n // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue\n function IteratorValue(iterResult) {\n return iterResult.value;\n }\n // 7.4.5 IteratorStep(iterator)\n // https://tc39.github.io/ecma262/#sec-iteratorstep\n function IteratorStep(iterator) {\n var result = iterator.next();\n return result.done ? false : result;\n }\n // 7.4.6 IteratorClose(iterator, completion)\n // https://tc39.github.io/ecma262/#sec-iteratorclose\n function IteratorClose(iterator) {\n var f = iterator[\"return\"];\n if (f)\n f.call(iterator);\n }\n // 9.1 Ordinary Object Internal Methods and Internal Slots\n // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots\n // 9.1.1.1 OrdinaryGetPrototypeOf(O)\n // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof\n function OrdinaryGetPrototypeOf(O) {\n var proto = Object.getPrototypeOf(O);\n if (typeof O !== \"function\" || O === functionPrototype)\n return proto;\n // TypeScript doesn't set __proto__ in ES5, as it's non-standard.\n // Try to determine the superclass constructor. Compatible implementations\n // must either set __proto__ on a subclass constructor to the superclass constructor,\n // or ensure each class has a valid `constructor` property on its prototype that\n // points back to the constructor.\n // If this is not the same as Function.[[Prototype]], then this is definately inherited.\n // This is the case when in ES6 or when using __proto__ in a compatible browser.\n if (proto !== functionPrototype)\n return proto;\n // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.\n var prototype = O.prototype;\n var prototypeProto = prototype && Object.getPrototypeOf(prototype);\n if (prototypeProto == null || prototypeProto === Object.prototype)\n return proto;\n // If the constructor was not a function, then we cannot determine the heritage.\n var constructor = prototypeProto.constructor;\n if (typeof constructor !== \"function\")\n return proto;\n // If we have some kind of self-reference, then we cannot determine the heritage.\n if (constructor === O)\n return proto;\n // we have a pretty good guess at the heritage.\n return constructor;\n }\n // naive Map shim\n function CreateMapPolyfill() {\n var cacheSentinel = {};\n var arraySentinel = [];\n var MapIterator = /** @class */ (function () {\n function MapIterator(keys, values, selector) {\n this._index = 0;\n this._keys = keys;\n this._values = values;\n this._selector = selector;\n }\n MapIterator.prototype[\"@@iterator\"] = function () { return this; };\n MapIterator.prototype[iteratorSymbol] = function () { return this; };\n MapIterator.prototype.next = function () {\n var index = this._index;\n if (index >= 0 && index < this._keys.length) {\n var result = this._selector(this._keys[index], this._values[index]);\n if (index + 1 >= this._keys.length) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n else {\n this._index++;\n }\n return { value: result, done: false };\n }\n return { value: undefined, done: true };\n };\n MapIterator.prototype.throw = function (error) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n throw error;\n };\n MapIterator.prototype.return = function (value) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n return { value: value, done: true };\n };\n return MapIterator;\n }());\n return /** @class */ (function () {\n function Map() {\n this._keys = [];\n this._values = [];\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n Object.defineProperty(Map.prototype, \"size\", {\n get: function () { return this._keys.length; },\n enumerable: true,\n configurable: true\n });\n Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };\n Map.prototype.get = function (key) {\n var index = this._find(key, /*insert*/ false);\n return index >= 0 ? this._values[index] : undefined;\n };\n Map.prototype.set = function (key, value) {\n var index = this._find(key, /*insert*/ true);\n this._values[index] = value;\n return this;\n };\n Map.prototype.delete = function (key) {\n var index = this._find(key, /*insert*/ false);\n if (index >= 0) {\n var size = this._keys.length;\n for (var i = index + 1; i < size; i++) {\n this._keys[i - 1] = this._keys[i];\n this._values[i - 1] = this._values[i];\n }\n this._keys.length--;\n this._values.length--;\n if (key === this._cacheKey) {\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n return true;\n }\n return false;\n };\n Map.prototype.clear = function () {\n this._keys.length = 0;\n this._values.length = 0;\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n };\n Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };\n Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };\n Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };\n Map.prototype[\"@@iterator\"] = function () { return this.entries(); };\n Map.prototype[iteratorSymbol] = function () { return this.entries(); };\n Map.prototype._find = function (key, insert) {\n if (this._cacheKey !== key) {\n this._cacheIndex = this._keys.indexOf(this._cacheKey = key);\n }\n if (this._cacheIndex < 0 && insert) {\n this._cacheIndex = this._keys.length;\n this._keys.push(key);\n this._values.push(undefined);\n }\n return this._cacheIndex;\n };\n return Map;\n }());\n function getKey(key, _) {\n return key;\n }\n function getValue(_, value) {\n return value;\n }\n function getEntry(key, value) {\n return [key, value];\n }\n }\n // naive Set shim\n function CreateSetPolyfill() {\n return /** @class */ (function () {\n function Set() {\n this._map = new _Map();\n }\n Object.defineProperty(Set.prototype, \"size\", {\n get: function () { return this._map.size; },\n enumerable: true,\n configurable: true\n });\n Set.prototype.has = function (value) { return this._map.has(value); };\n Set.prototype.add = function (value) { return this._map.set(value, value), this; };\n Set.prototype.delete = function (value) { return this._map.delete(value); };\n Set.prototype.clear = function () { this._map.clear(); };\n Set.prototype.keys = function () { return this._map.keys(); };\n Set.prototype.values = function () { return this._map.values(); };\n Set.prototype.entries = function () { return this._map.entries(); };\n Set.prototype[\"@@iterator\"] = function () { return this.keys(); };\n Set.prototype[iteratorSymbol] = function () { return this.keys(); };\n return Set;\n }());\n }\n // naive WeakMap shim\n function CreateWeakMapPolyfill() {\n var UUID_SIZE = 16;\n var keys = HashMap.create();\n var rootKey = CreateUniqueKey();\n return /** @class */ (function () {\n function WeakMap() {\n this._key = CreateUniqueKey();\n }\n WeakMap.prototype.has = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.has(table, this._key) : false;\n };\n WeakMap.prototype.get = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.get(table, this._key) : undefined;\n };\n WeakMap.prototype.set = function (target, value) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ true);\n table[this._key] = value;\n return this;\n };\n WeakMap.prototype.delete = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? delete table[this._key] : false;\n };\n WeakMap.prototype.clear = function () {\n // NOTE: not a real clear, just makes the previous data unreachable\n this._key = CreateUniqueKey();\n };\n return WeakMap;\n }());\n function CreateUniqueKey() {\n var key;\n do\n key = \"@@WeakMap@@\" + CreateUUID();\n while (HashMap.has(keys, key));\n keys[key] = true;\n return key;\n }\n function GetOrCreateWeakMapTable(target, create) {\n if (!hasOwn.call(target, rootKey)) {\n if (!create)\n return undefined;\n Object.defineProperty(target, rootKey, { value: HashMap.create() });\n }\n return target[rootKey];\n }\n function FillRandomBytes(buffer, size) {\n for (var i = 0; i < size; ++i)\n buffer[i] = Math.random() * 0xff | 0;\n return buffer;\n }\n function GenRandomBytes(size) {\n if (typeof Uint8Array === \"function\") {\n if (typeof crypto !== \"undefined\")\n return crypto.getRandomValues(new Uint8Array(size));\n if (typeof msCrypto !== \"undefined\")\n return msCrypto.getRandomValues(new Uint8Array(size));\n return FillRandomBytes(new Uint8Array(size), size);\n }\n return FillRandomBytes(new Array(size), size);\n }\n function CreateUUID() {\n var data = GenRandomBytes(UUID_SIZE);\n // mark as random - RFC 4122 § 4.4\n data[6] = data[6] & 0x4f | 0x40;\n data[8] = data[8] & 0xbf | 0x80;\n var result = \"\";\n for (var offset = 0; offset < UUID_SIZE; ++offset) {\n var byte = data[offset];\n if (offset === 4 || offset === 6 || offset === 8)\n result += \"-\";\n if (byte < 16)\n result += \"0\";\n result += byte.toString(16).toLowerCase();\n }\n return result;\n }\n }\n // uses a heuristic used by v8 and chakra to force an object into dictionary mode.\n function MakeDictionary(obj) {\n obj.__ = undefined;\n delete obj.__;\n return obj;\n }\n });\n})(Reflect || (Reflect = {}));\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ \"./node_modules/process/browser.js\"), __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/reflect-metadata/Reflect.js?");
/***/ }),
/***/ "./node_modules/safe-buffer/index.js":
/*!*******************************************!*\
!*** ./node_modules/safe-buffer/index.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/* eslint-disable node/no-deprecated-api */\nvar buffer = __webpack_require__(/*! buffer */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\")\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n\n\n//# sourceURL=webpack:///./node_modules/safe-buffer/index.js?");
/***/ }),
/***/ "./node_modules/sha.js/hash.js":
/*!*************************************!*\
!*** ./node_modules/sha.js/hash.js ***!
\*************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n\n\n//# sourceURL=webpack:///./node_modules/sha.js/hash.js?");
/***/ }),
/***/ "./node_modules/sha.js/index.js":
/*!**************************************!*\
!*** ./node_modules/sha.js/index.js ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = __webpack_require__(/*! ./sha */ \"./node_modules/sha.js/sha.js\")\nexports.sha1 = __webpack_require__(/*! ./sha1 */ \"./node_modules/sha.js/sha1.js\")\nexports.sha224 = __webpack_require__(/*! ./sha224 */ \"./node_modules/sha.js/sha224.js\")\nexports.sha256 = __webpack_require__(/*! ./sha256 */ \"./node_modules/sha.js/sha256.js\")\nexports.sha384 = __webpack_require__(/*! ./sha384 */ \"./node_modules/sha.js/sha384.js\")\nexports.sha512 = __webpack_require__(/*! ./sha512 */ \"./node_modules/sha.js/sha512.js\")\n\n\n//# sourceURL=webpack:///./node_modules/sha.js/index.js?");
/***/ }),
/***/ "./node_modules/sha.js/sha.js":
/*!************************************!*\
!*** ./node_modules/sha.js/sha.js ***!
\************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\")\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n\n\n//# sourceURL=webpack:///./node_modules/sha.js/sha.js?");
/***/ }),
/***/ "./node_modules/sha.js/sha1.js":
/*!*************************************!*\
!*** ./node_modules/sha.js/sha1.js ***!
\*************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\")\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n\n\n//# sourceURL=webpack:///./node_modules/sha.js/sha1.js?");
/***/ }),
/***/ "./node_modules/sha.js/sha224.js":
/*!***************************************!*\
!*** ./node_modules/sha.js/sha224.js ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar Sha256 = __webpack_require__(/*! ./sha256 */ \"./node_modules/sha.js/sha256.js\")\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\")\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n\n\n//# sourceURL=webpack:///./node_modules/sha.js/sha224.js?");
/***/ }),
/***/ "./node_modules/sha.js/sha256.js":
/*!***************************************!*\
!*** ./node_modules/sha.js/sha256.js ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\")\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n\n\n//# sourceURL=webpack:///./node_modules/sha.js/sha256.js?");
/***/ }),
/***/ "./node_modules/sha.js/sha384.js":
/*!***************************************!*\
!*** ./node_modules/sha.js/sha384.js ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar SHA512 = __webpack_require__(/*! ./sha512 */ \"./node_modules/sha.js/sha512.js\")\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\")\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n\n\n//# sourceURL=webpack:///./node_modules/sha.js/sha384.js?");
/***/ }),
/***/ "./node_modules/sha.js/sha512.js":
/*!***************************************!*\
!*** ./node_modules/sha.js/sha512.js ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\")\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n\n\n//# sourceURL=webpack:///./node_modules/sha.js/sha512.js?");
/***/ }),
/***/ "./node_modules/tslib/tslib.es6.js":
/*!*****************************************!*\
!*** ./node_modules/tslib/tslib.es6.js ***!
\*****************************************/
/*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __createBinding, __exportStar, __values, __read, __spread, __spreadArrays, __spreadArray, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__extends\", function() { return __extends; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__assign\", function() { return __assign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__rest\", function() { return __rest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__decorate\", function() { return __decorate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__param\", function() { return __param; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__metadata\", function() { return __metadata; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__awaiter\", function() { return __awaiter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__generator\", function() { return __generator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__createBinding\", function() { return __createBinding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__exportStar\", function() { return __exportStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__values\", function() { return __values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__read\", function() { return __read; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spread\", function() { return __spread; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spreadArrays\", function() { return __spreadArrays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spreadArray\", function() { return __spreadArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__await\", function() { return __await; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncGenerator\", function() { return __asyncGenerator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncDelegator\", function() { return __asyncDelegator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncValues\", function() { return __asyncValues; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__makeTemplateObject\", function() { return __makeTemplateObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importStar\", function() { return __importStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importDefault\", function() { return __importDefault; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldGet\", function() { return __classPrivateFieldGet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldSet\", function() { return __classPrivateFieldSet; });\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n 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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nvar __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nfunction __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nfunction __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n 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); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n 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; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n 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);\r\n 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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nfunction __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n 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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n 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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\n\n//# sourceURL=webpack:///./node_modules/tslib/tslib.es6.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/cache/DbQueryResultCache.js":
/*!******************************************************************!*\
!*** ./node_modules/typeorm/browser/cache/DbQueryResultCache.js ***!
\******************************************************************/
/*! exports provided: DbQueryResultCache */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DbQueryResultCache\", function() { return DbQueryResultCache; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _driver_oracle_OracleDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../driver/oracle/OracleDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _driver_sqlserver_MssqlParameter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../driver/sqlserver/MssqlParameter */ \"./node_modules/typeorm/browser/driver/sqlserver/MssqlParameter.js\");\n/* harmony import */ var _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../schema-builder/table/Table */ \"./node_modules/typeorm/browser/schema-builder/table/Table.js\");\n\n\n\n\n\n/**\n * Caches query result into current database, into separate table called \"query-result-cache\".\n */\nvar DbQueryResultCache = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function DbQueryResultCache(connection) {\n this.connection = connection;\n var options = this.connection.driver.options;\n var cacheOptions = typeof this.connection.options.cache === \"object\" ? this.connection.options.cache : {};\n var cacheTableName = cacheOptions.tableName || \"query-result-cache\";\n this.queryResultCacheTable = this.connection.driver.buildTableName(cacheTableName, options.schema, options.database);\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Creates a connection with given cache provider.\n */\n DbQueryResultCache.prototype.connect = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/];\n });\n });\n };\n /**\n * Disconnects with given cache provider.\n */\n DbQueryResultCache.prototype.disconnect = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/];\n });\n });\n };\n /**\n * Creates table for storing cache if it does not exist yet.\n */\n DbQueryResultCache.prototype.synchronize = function (queryRunner) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var driver, tableExist;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n queryRunner = this.getQueryRunner(queryRunner);\n driver = this.connection.driver;\n return [4 /*yield*/, queryRunner.hasTable(this.queryResultCacheTable)];\n case 1:\n tableExist = _a.sent();\n if (tableExist)\n return [2 /*return*/];\n return [4 /*yield*/, queryRunner.createTable(new _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_3__[\"Table\"]({\n name: this.queryResultCacheTable,\n columns: [\n {\n name: \"id\",\n isPrimary: true,\n isNullable: false,\n type: driver.normalizeType({ type: driver.mappedDataTypes.cacheId }),\n generationStrategy: \"increment\",\n isGenerated: true\n },\n {\n name: \"identifier\",\n type: driver.normalizeType({ type: driver.mappedDataTypes.cacheIdentifier }),\n isNullable: true\n },\n {\n name: \"time\",\n type: driver.normalizeType({ type: driver.mappedDataTypes.cacheTime }),\n isPrimary: false,\n isNullable: false\n },\n {\n name: \"duration\",\n type: driver.normalizeType({ type: driver.mappedDataTypes.cacheDuration }),\n isPrimary: false,\n isNullable: false\n },\n {\n name: \"query\",\n type: driver.normalizeType({ type: driver.mappedDataTypes.cacheQuery }),\n isPrimary: false,\n isNullable: false\n },\n {\n name: \"result\",\n type: driver.normalizeType({ type: driver.mappedDataTypes.cacheResult }),\n isNullable: false\n },\n ]\n }))];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Caches given query result.\n * Returns cache result if found.\n * Returns undefined if result is not cached.\n */\n DbQueryResultCache.prototype.getFromCache = function (options, queryRunner) {\n queryRunner = this.getQueryRunner(queryRunner);\n var qb = this.connection\n .createQueryBuilder(queryRunner)\n .select()\n .from(this.queryResultCacheTable, \"cache\");\n if (options.identifier) {\n return qb\n .where(qb.escape(\"cache\") + \".\" + qb.escape(\"identifier\") + \" = :identifier\")\n .setParameters({ identifier: this.connection.driver instanceof _driver_oracle_OracleDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"] ? new _driver_sqlserver_MssqlParameter__WEBPACK_IMPORTED_MODULE_2__[\"MssqlParameter\"](options.identifier, \"nvarchar\") : options.identifier })\n .getRawOne();\n }\n else if (options.query) {\n if (this.connection.driver instanceof _driver_oracle_OracleDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"]) {\n return qb\n .where(\"dbms_lob.compare(\" + qb.escape(\"cache\") + \".\" + qb.escape(\"query\") + \", :query) = 0\", { query: options.query })\n .getRawOne();\n }\n return qb\n .where(qb.escape(\"cache\") + \".\" + qb.escape(\"query\") + \" = :query\")\n .setParameters({ query: this.connection.driver instanceof _driver_oracle_OracleDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"] ? new _driver_sqlserver_MssqlParameter__WEBPACK_IMPORTED_MODULE_2__[\"MssqlParameter\"](options.query, \"nvarchar\") : options.query })\n .getRawOne();\n }\n return Promise.resolve(undefined);\n };\n /**\n * Checks if cache is expired or not.\n */\n DbQueryResultCache.prototype.isExpired = function (savedCache) {\n var duration = typeof savedCache.duration === \"string\" ? parseInt(savedCache.duration) : savedCache.duration;\n return ((typeof savedCache.time === \"string\" ? parseInt(savedCache.time) : savedCache.time) + duration) < new Date().getTime();\n };\n /**\n * Stores given query result in the cache.\n */\n DbQueryResultCache.prototype.storeInCache = function (options, savedCache, queryRunner) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var insertedValues, qb, qb;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n queryRunner = this.getQueryRunner(queryRunner);\n insertedValues = options;\n if (this.connection.driver instanceof _driver_oracle_OracleDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"]) { // todo: bad abstraction, re-implement this part, probably better if we create an entity metadata for cache table\n insertedValues = {\n identifier: new _driver_sqlserver_MssqlParameter__WEBPACK_IMPORTED_MODULE_2__[\"MssqlParameter\"](options.identifier, \"nvarchar\"),\n time: new _driver_sqlserver_MssqlParameter__WEBPACK_IMPORTED_MODULE_2__[\"MssqlParameter\"](options.time, \"bigint\"),\n duration: new _driver_sqlserver_MssqlParameter__WEBPACK_IMPORTED_MODULE_2__[\"MssqlParameter\"](options.duration, \"int\"),\n query: new _driver_sqlserver_MssqlParameter__WEBPACK_IMPORTED_MODULE_2__[\"MssqlParameter\"](options.query, \"nvarchar\"),\n result: new _driver_sqlserver_MssqlParameter__WEBPACK_IMPORTED_MODULE_2__[\"MssqlParameter\"](options.result, \"nvarchar\"),\n };\n }\n if (!(savedCache && savedCache.identifier)) return [3 /*break*/, 2];\n qb = queryRunner.manager\n .createQueryBuilder()\n .update(this.queryResultCacheTable)\n .set(insertedValues);\n qb.where(qb.escape(\"identifier\") + \" = :condition\", { condition: insertedValues.identifier });\n return [4 /*yield*/, qb.execute()];\n case 1:\n _a.sent();\n return [3 /*break*/, 6];\n case 2:\n if (!(savedCache && savedCache.query)) return [3 /*break*/, 4];\n qb = queryRunner.manager\n .createQueryBuilder()\n .update(this.queryResultCacheTable)\n .set(insertedValues);\n if (this.connection.driver instanceof _driver_oracle_OracleDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"]) {\n qb.where(\"dbms_lob.compare(\\\"query\\\", :condition) = 0\", { condition: insertedValues.query });\n }\n else {\n qb.where(qb.escape(\"query\") + \" = :condition\", { condition: insertedValues.query });\n }\n return [4 /*yield*/, qb.execute()];\n case 3:\n _a.sent();\n return [3 /*break*/, 6];\n case 4: // otherwise insert\n return [4 /*yield*/, queryRunner.manager\n .createQueryBuilder()\n .insert()\n .into(this.queryResultCacheTable)\n .values(insertedValues)\n .execute()];\n case 5:\n _a.sent();\n _a.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Clears everything stored in the cache.\n */\n DbQueryResultCache.prototype.clear = function (queryRunner) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, this.getQueryRunner(queryRunner).clearTable(this.queryResultCacheTable)];\n });\n });\n };\n /**\n * Removes all cached results by given identifiers from cache.\n */\n DbQueryResultCache.prototype.remove = function (identifiers, queryRunner) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Promise.all(identifiers.map(function (identifier) {\n var qb = _this.getQueryRunner(queryRunner).manager.createQueryBuilder();\n return qb.delete()\n .from(_this.queryResultCacheTable)\n .where(qb.escape(\"identifier\") + \" = :identifier\", { identifier: identifier })\n .execute();\n }))];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Gets a query runner to work with.\n */\n DbQueryResultCache.prototype.getQueryRunner = function (queryRunner) {\n if (queryRunner)\n return queryRunner;\n return this.connection.createQueryRunner();\n };\n return DbQueryResultCache;\n}());\n\n\n//# sourceMappingURL=DbQueryResultCache.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/cache/DbQueryResultCache.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/cache/QueryResultCacheFactory.js":
/*!***********************************************************************!*\
!*** ./node_modules/typeorm/browser/cache/QueryResultCacheFactory.js ***!
\***********************************************************************/
/*! exports provided: QueryResultCacheFactory */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QueryResultCacheFactory\", function() { return QueryResultCacheFactory; });\n/* harmony import */ var _RedisQueryResultCache__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RedisQueryResultCache */ \"./node_modules/typeorm/browser/cache/RedisQueryResultCache.js\");\n/* harmony import */ var _DbQueryResultCache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DbQueryResultCache */ \"./node_modules/typeorm/browser/cache/DbQueryResultCache.js\");\n\n\n/**\n * Caches query result into Redis database.\n */\nvar QueryResultCacheFactory = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function QueryResultCacheFactory(connection) {\n this.connection = connection;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Creates a new query result cache based on connection options.\n */\n QueryResultCacheFactory.prototype.create = function () {\n if (!this.connection.options.cache)\n 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 }\");\n var cache = this.connection.options.cache;\n if (cache.provider && typeof cache.provider === \"function\") {\n return cache.provider(this.connection);\n }\n if (cache.type === \"redis\" || cache.type === \"ioredis\" || cache.type === \"ioredis/cluster\") {\n return new _RedisQueryResultCache__WEBPACK_IMPORTED_MODULE_0__[\"RedisQueryResultCache\"](this.connection, cache.type);\n }\n else {\n return new _DbQueryResultCache__WEBPACK_IMPORTED_MODULE_1__[\"DbQueryResultCache\"](this.connection);\n }\n };\n return QueryResultCacheFactory;\n}());\n\n\n//# sourceMappingURL=QueryResultCacheFactory.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/cache/QueryResultCacheFactory.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/cache/RedisQueryResultCache.js":
/*!*********************************************************************!*\
!*** ./node_modules/typeorm/browser/cache/RedisQueryResultCache.js ***!
\*********************************************************************/
/*! exports provided: RedisQueryResultCache */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RedisQueryResultCache\", function() { return RedisQueryResultCache; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../platform/PlatformTools */ \"./node_modules/typeorm/browser/platform/BrowserPlatformTools.js\");\n\n\n/**\n * Caches query result into Redis database.\n */\nvar RedisQueryResultCache = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function RedisQueryResultCache(connection, clientType) {\n this.connection = connection;\n this.clientType = clientType;\n this.redis = this.loadRedis();\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Creates a connection with given cache provider.\n */\n RedisQueryResultCache.prototype.connect = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var cacheOptions;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n cacheOptions = this.connection.options.cache;\n if (this.clientType === \"redis\") {\n if (cacheOptions && cacheOptions.options) {\n this.client = this.redis.createClient(cacheOptions.options);\n }\n else {\n this.client = this.redis.createClient();\n }\n }\n else if (this.clientType === \"ioredis\") {\n if (cacheOptions && cacheOptions.options) {\n this.client = new this.redis(cacheOptions.options);\n }\n else {\n this.client = new this.redis();\n }\n }\n else if (this.clientType === \"ioredis/cluster\") {\n if (cacheOptions && cacheOptions.options && Array.isArray(cacheOptions.options)) {\n this.client = new this.redis.Cluster(cacheOptions.options);\n }\n else if (cacheOptions && cacheOptions.options && cacheOptions.options.startupNodes) {\n this.client = new this.redis.Cluster(cacheOptions.options.startupNodes, cacheOptions.options.options);\n }\n else {\n throw new Error(\"options.startupNodes required for \" + this.clientType + \".\");\n }\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * Disconnects the connection\n */\n RedisQueryResultCache.prototype.disconnect = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, new Promise(function (ok, fail) {\n _this.client.quit(function (err, result) {\n if (err)\n return fail(err);\n ok();\n _this.client = undefined;\n });\n })];\n });\n });\n };\n /**\n * Creates table for storing cache if it does not exist yet.\n */\n RedisQueryResultCache.prototype.synchronize = function (queryRunner) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/];\n });\n });\n };\n /**\n * Caches given query result.\n * Returns cache result if found.\n * Returns undefined if result is not cached.\n */\n RedisQueryResultCache.prototype.getFromCache = function (options, queryRunner) {\n var _this = this;\n return new Promise(function (ok, fail) {\n if (options.identifier) {\n _this.client.get(options.identifier, function (err, result) {\n if (err)\n return fail(err);\n ok(JSON.parse(result));\n });\n }\n else if (options.query) {\n _this.client.get(options.query, function (err, result) {\n if (err)\n return fail(err);\n ok(JSON.parse(result));\n });\n }\n else {\n ok(undefined);\n }\n });\n };\n /**\n * Checks if cache is expired or not.\n */\n RedisQueryResultCache.prototype.isExpired = function (savedCache) {\n return (savedCache.time + savedCache.duration) < new Date().getTime();\n };\n /**\n * Stores given query result in the cache.\n */\n RedisQueryResultCache.prototype.storeInCache = function (options, savedCache, queryRunner) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, new Promise(function (ok, fail) {\n if (options.identifier) {\n _this.client.set(options.identifier, JSON.stringify(options), \"PX\", options.duration, function (err, result) {\n if (err)\n return fail(err);\n ok();\n });\n }\n else if (options.query) {\n _this.client.set(options.query, JSON.stringify(options), \"PX\", options.duration, function (err, result) {\n if (err)\n return fail(err);\n ok();\n });\n }\n })];\n });\n });\n };\n /**\n * Clears everything stored in the cache.\n */\n RedisQueryResultCache.prototype.clear = function (queryRunner) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, new Promise(function (ok, fail) {\n _this.client.flushdb(function (err, result) {\n if (err)\n return fail(err);\n ok();\n });\n })];\n });\n });\n };\n /**\n * Removes all cached results by given identifiers from cache.\n */\n RedisQueryResultCache.prototype.remove = function (identifiers, queryRunner) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Promise.all(identifiers.map(function (identifier) {\n return _this.deleteKey(identifier);\n }))];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Removes a single key from redis database.\n */\n RedisQueryResultCache.prototype.deleteKey = function (key) {\n var _this = this;\n return new Promise(function (ok, fail) {\n _this.client.del(key, function (err, result) {\n if (err)\n return fail(err);\n ok();\n });\n });\n };\n /**\n * Loads redis dependency.\n */\n RedisQueryResultCache.prototype.loadRedis = function () {\n try {\n if (this.clientType === \"ioredis/cluster\") {\n return _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_1__[\"PlatformTools\"].load(\"ioredis\");\n }\n else {\n return _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_1__[\"PlatformTools\"].load(this.clientType);\n }\n }\n catch (e) {\n throw new Error(\"Cannot use cache because \" + this.clientType + \" is not installed. Please run \\\"npm i \" + this.clientType + \" --save\\\".\");\n }\n };\n return RedisQueryResultCache;\n}());\n\n\n//# sourceMappingURL=RedisQueryResultCache.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/cache/RedisQueryResultCache.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/common/DeepPartial.js":
/*!************************************************************!*\
!*** ./node_modules/typeorm/browser/common/DeepPartial.js ***!
\************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=DeepPartial.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/common/DeepPartial.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/common/EntityTarget.js":
/*!*************************************************************!*\
!*** ./node_modules/typeorm/browser/common/EntityTarget.js ***!
\*************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=EntityTarget.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/common/EntityTarget.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/common/ObjectLiteral.js":
/*!**************************************************************!*\
!*** ./node_modules/typeorm/browser/common/ObjectLiteral.js ***!
\**************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=ObjectLiteral.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/common/ObjectLiteral.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/common/ObjectType.js":
/*!***********************************************************!*\
!*** ./node_modules/typeorm/browser/common/ObjectType.js ***!
\***********************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=ObjectType.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/common/ObjectType.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/connection/Connection.js":
/*!***************************************************************!*\
!*** ./node_modules/typeorm/browser/connection/Connection.js ***!
\***************************************************************/
/*! exports provided: Connection */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Connection\", function() { return Connection; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _naming_strategy_DefaultNamingStrategy__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../naming-strategy/DefaultNamingStrategy */ \"./node_modules/typeorm/browser/naming-strategy/DefaultNamingStrategy.js\");\n/* harmony import */ var _error_CannotExecuteNotConnectedError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../error/CannotExecuteNotConnectedError */ \"./node_modules/typeorm/browser/error/CannotExecuteNotConnectedError.js\");\n/* harmony import */ var _error_CannotConnectAlreadyConnectedError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../error/CannotConnectAlreadyConnectedError */ \"./node_modules/typeorm/browser/error/CannotConnectAlreadyConnectedError.js\");\n/* harmony import */ var _error_EntityMetadataNotFoundError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../error/EntityMetadataNotFoundError */ \"./node_modules/typeorm/browser/error/EntityMetadataNotFoundError.js\");\n/* harmony import */ var _migration_MigrationExecutor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../migration/MigrationExecutor */ \"./node_modules/typeorm/browser/migration/MigrationExecutor.js\");\n/* harmony import */ var _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../driver/mongodb/MongoDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _metadata_builder_EntityMetadataValidator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../metadata-builder/EntityMetadataValidator */ \"./node_modules/typeorm/browser/metadata-builder/EntityMetadataValidator.js\");\n/* harmony import */ var _error_QueryRunnerProviderAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../error/QueryRunnerProviderAlreadyReleasedError */ \"./node_modules/typeorm/browser/error/QueryRunnerProviderAlreadyReleasedError.js\");\n/* harmony import */ var _entity_manager_EntityManagerFactory__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../entity-manager/EntityManagerFactory */ \"./node_modules/typeorm/browser/entity-manager/EntityManagerFactory.js\");\n/* harmony import */ var _driver_DriverFactory__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../driver/DriverFactory */ \"./node_modules/typeorm/browser/driver/DriverFactory.js\");\n/* harmony import */ var _ConnectionMetadataBuilder__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ConnectionMetadataBuilder */ \"./node_modules/typeorm/browser/connection/ConnectionMetadataBuilder.js\");\n/* harmony import */ var _query_builder_SelectQueryBuilder__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../query-builder/SelectQueryBuilder */ \"./node_modules/typeorm/browser/query-builder/SelectQueryBuilder.js\");\n/* harmony import */ var _logger_LoggerFactory__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../logger/LoggerFactory */ \"./node_modules/typeorm/browser/logger/LoggerFactory.js\");\n/* harmony import */ var _cache_QueryResultCacheFactory__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../cache/QueryResultCacheFactory */ \"./node_modules/typeorm/browser/cache/QueryResultCacheFactory.js\");\n/* harmony import */ var _entity_manager_SqljsEntityManager__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../entity-manager/SqljsEntityManager */ \"./node_modules/typeorm/browser/entity-manager/SqljsEntityManager.js\");\n/* harmony import */ var _query_builder_RelationLoader__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../query-builder/RelationLoader */ \"./node_modules/typeorm/browser/query-builder/RelationLoader.js\");\n/* harmony import */ var _query_builder_RelationIdLoader__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../query-builder/RelationIdLoader */ \"./node_modules/typeorm/browser/query-builder/RelationIdLoader.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../ */ \"./node_modules/typeorm/browser/index.js\");\n/* harmony import */ var _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../util/ObjectUtils */ \"./node_modules/typeorm/browser/util/ObjectUtils.js\");\n/* harmony import */ var _driver_DriverUtils__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../driver/DriverUtils */ \"./node_modules/typeorm/browser/driver/DriverUtils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Connection is a single database ORM connection to a specific database.\n * Its not required to be a database connection, depend on database type it can create connection pool.\n * You can have multiple connections to multiple databases in your application.\n */\nvar Connection = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function Connection(options) {\n /**\n * Migration instances that are registered for this connection.\n */\n this.migrations = [];\n /**\n * Entity subscriber instances that are registered for this connection.\n */\n this.subscribers = [];\n /**\n * All entity metadatas that are registered for this connection.\n */\n this.entityMetadatas = [];\n this.name = options.name || \"default\";\n this.options = options;\n this.logger = new _logger_LoggerFactory__WEBPACK_IMPORTED_MODULE_13__[\"LoggerFactory\"]().create(this.options.logger, this.options.logging);\n this.driver = new _driver_DriverFactory__WEBPACK_IMPORTED_MODULE_10__[\"DriverFactory\"]().create(this);\n this.manager = this.createEntityManager();\n this.namingStrategy = options.namingStrategy || new _naming_strategy_DefaultNamingStrategy__WEBPACK_IMPORTED_MODULE_1__[\"DefaultNamingStrategy\"]();\n this.queryResultCache = options.cache ? new _cache_QueryResultCacheFactory__WEBPACK_IMPORTED_MODULE_14__[\"QueryResultCacheFactory\"](this).create() : undefined;\n this.relationLoader = new _query_builder_RelationLoader__WEBPACK_IMPORTED_MODULE_16__[\"RelationLoader\"](this);\n this.relationIdLoader = new _query_builder_RelationIdLoader__WEBPACK_IMPORTED_MODULE_17__[\"RelationIdLoader\"](this);\n this.isConnected = false;\n }\n Object.defineProperty(Connection.prototype, \"mongoManager\", {\n // -------------------------------------------------------------------------\n // Public Accessors\n // -------------------------------------------------------------------------\n /**\n * Gets the mongodb entity manager that allows to perform mongodb-specific repository operations\n * with any entity in this connection.\n *\n * Available only in mongodb connections.\n */\n get: function () {\n if (!(this.manager instanceof _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_6__[\"MongoEntityManager\"]))\n throw new Error(\"MongoEntityManager is only available for MongoDB databases.\");\n return this.manager;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Connection.prototype, \"sqljsManager\", {\n /**\n * Gets a sql.js specific Entity Manager that allows to perform special load and save operations\n *\n * Available only in connection with the sqljs driver.\n */\n get: function () {\n if (!(this.manager instanceof _entity_manager_SqljsEntityManager__WEBPACK_IMPORTED_MODULE_15__[\"SqljsEntityManager\"]))\n throw new Error(\"SqljsEntityManager is only available for Sqljs databases.\");\n return this.manager;\n },\n enumerable: false,\n configurable: true\n });\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Performs connection to the database.\n * This method should be called once on application bootstrap.\n * This method not necessarily creates database connection (depend on database type),\n * but it also can setup a connection pool with database to use.\n */\n Connection.prototype.connect = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var error_1;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.isConnected)\n throw new _error_CannotConnectAlreadyConnectedError__WEBPACK_IMPORTED_MODULE_3__[\"CannotConnectAlreadyConnectedError\"](this.name);\n // connect to the database via its driver\n return [4 /*yield*/, this.driver.connect()];\n case 1:\n // connect to the database via its driver\n _a.sent();\n if (!this.queryResultCache) return [3 /*break*/, 3];\n return [4 /*yield*/, this.queryResultCache.connect()];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3:\n // set connected status for the current connection\n _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_19__[\"ObjectUtils\"].assign(this, { isConnected: true });\n _a.label = 4;\n case 4:\n _a.trys.push([4, 12, , 14]);\n // build all metadatas registered in the current connection\n this.buildMetadatas();\n return [4 /*yield*/, this.driver.afterConnect()];\n case 5:\n _a.sent();\n if (!this.options.dropSchema) return [3 /*break*/, 7];\n return [4 /*yield*/, this.dropDatabase()];\n case 6:\n _a.sent();\n _a.label = 7;\n case 7:\n if (!this.options.synchronize) return [3 /*break*/, 9];\n return [4 /*yield*/, this.synchronize()];\n case 8:\n _a.sent();\n _a.label = 9;\n case 9:\n if (!this.options.migrationsRun) return [3 /*break*/, 11];\n return [4 /*yield*/, this.runMigrations({ transaction: this.options.migrationsTransactionMode })];\n case 10:\n _a.sent();\n _a.label = 11;\n case 11: return [3 /*break*/, 14];\n case 12:\n error_1 = _a.sent();\n // if for some reason build metadata fail (for example validation error during entity metadata check)\n // connection needs to be closed\n return [4 /*yield*/, this.close()];\n case 13:\n // if for some reason build metadata fail (for example validation error during entity metadata check)\n // connection needs to be closed\n _a.sent();\n throw error_1;\n case 14: return [2 /*return*/, this];\n }\n });\n });\n };\n /**\n * Closes connection with the database.\n * Once connection is closed, you cannot use repositories or perform any operations except opening connection again.\n */\n Connection.prototype.close = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.isConnected)\n throw new _error_CannotExecuteNotConnectedError__WEBPACK_IMPORTED_MODULE_2__[\"CannotExecuteNotConnectedError\"](this.name);\n return [4 /*yield*/, this.driver.disconnect()];\n case 1:\n _a.sent();\n if (!this.queryResultCache) return [3 /*break*/, 3];\n return [4 /*yield*/, this.queryResultCache.disconnect()];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3:\n _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_19__[\"ObjectUtils\"].assign(this, { isConnected: false });\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates database schema for all entities registered in this connection.\n * Can be used only after connection to the database is established.\n *\n * @param dropBeforeSync If set to true then it drops the database with all its tables and data\n */\n Connection.prototype.synchronize = function (dropBeforeSync) {\n if (dropBeforeSync === void 0) { dropBeforeSync = false; }\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var schemaBuilder;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.isConnected)\n throw new _error_CannotExecuteNotConnectedError__WEBPACK_IMPORTED_MODULE_2__[\"CannotExecuteNotConnectedError\"](this.name);\n if (!dropBeforeSync) return [3 /*break*/, 2];\n return [4 /*yield*/, this.dropDatabase()];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n schemaBuilder = this.driver.createSchemaBuilder();\n return [4 /*yield*/, schemaBuilder.build()];\n case 3:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops the database and all its data.\n * Be careful with this method on production since this method will erase all your database tables and their data.\n * Can be used only after connection to the database is established.\n */\n // TODO rename\n Connection.prototype.dropDatabase = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var queryRunner, databases_2, databases_1, databases_1_1, database, e_1_1;\n var e_1, _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n queryRunner = this.createQueryRunner();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 13, 15]);\n if (!(this.driver instanceof _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_6__[\"SqlServerDriver\"] || this.driver instanceof _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_6__[\"MysqlDriver\"] || this.driver instanceof _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_6__[\"AuroraDataApiDriver\"])) return [3 /*break*/, 10];\n databases_2 = this.driver.database ? [this.driver.database] : [];\n this.entityMetadatas.forEach(function (metadata) {\n if (metadata.database && databases_2.indexOf(metadata.database) === -1)\n databases_2.push(metadata.database);\n });\n _b.label = 2;\n case 2:\n _b.trys.push([2, 7, 8, 9]);\n databases_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(databases_2), databases_1_1 = databases_1.next();\n _b.label = 3;\n case 3:\n if (!!databases_1_1.done) return [3 /*break*/, 6];\n database = databases_1_1.value;\n return [4 /*yield*/, queryRunner.clearDatabase(database)];\n case 4:\n _b.sent();\n _b.label = 5;\n case 5:\n databases_1_1 = databases_1.next();\n return [3 /*break*/, 3];\n case 6: return [3 /*break*/, 9];\n case 7:\n e_1_1 = _b.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 9];\n case 8:\n try {\n if (databases_1_1 && !databases_1_1.done && (_a = databases_1.return)) _a.call(databases_1);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 9: return [3 /*break*/, 12];\n case 10: return [4 /*yield*/, queryRunner.clearDatabase()];\n case 11:\n _b.sent();\n _b.label = 12;\n case 12: return [3 /*break*/, 15];\n case 13: return [4 /*yield*/, queryRunner.release()];\n case 14:\n _b.sent();\n return [7 /*endfinally*/];\n case 15: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Runs all pending migrations.\n * Can be used only after connection to the database is established.\n */\n Connection.prototype.runMigrations = function (options) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var migrationExecutor, successMigrations;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.isConnected)\n throw new _error_CannotExecuteNotConnectedError__WEBPACK_IMPORTED_MODULE_2__[\"CannotExecuteNotConnectedError\"](this.name);\n migrationExecutor = new _migration_MigrationExecutor__WEBPACK_IMPORTED_MODULE_5__[\"MigrationExecutor\"](this);\n migrationExecutor.transaction = (options && options.transaction) || \"all\";\n return [4 /*yield*/, migrationExecutor.executePendingMigrations()];\n case 1:\n successMigrations = _a.sent();\n return [2 /*return*/, successMigrations];\n }\n });\n });\n };\n /**\n * Reverts last executed migration.\n * Can be used only after connection to the database is established.\n */\n Connection.prototype.undoLastMigration = function (options) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var migrationExecutor;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.isConnected)\n throw new _error_CannotExecuteNotConnectedError__WEBPACK_IMPORTED_MODULE_2__[\"CannotExecuteNotConnectedError\"](this.name);\n migrationExecutor = new _migration_MigrationExecutor__WEBPACK_IMPORTED_MODULE_5__[\"MigrationExecutor\"](this);\n migrationExecutor.transaction = (options && options.transaction) || \"all\";\n return [4 /*yield*/, migrationExecutor.undoLastMigration()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Lists all migrations and whether they have been run.\n * Returns true if there are pending migrations\n */\n Connection.prototype.showMigrations = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var migrationExecutor;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.isConnected) {\n throw new _error_CannotExecuteNotConnectedError__WEBPACK_IMPORTED_MODULE_2__[\"CannotExecuteNotConnectedError\"](this.name);\n }\n migrationExecutor = new _migration_MigrationExecutor__WEBPACK_IMPORTED_MODULE_5__[\"MigrationExecutor\"](this);\n return [4 /*yield*/, migrationExecutor.showMigrations()];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Checks if entity metadata exist for the given entity class, target name or table name.\n */\n Connection.prototype.hasMetadata = function (target) {\n return !!this.findMetadata(target);\n };\n /**\n * Gets entity metadata for the given entity class or schema name.\n */\n Connection.prototype.getMetadata = function (target) {\n var metadata = this.findMetadata(target);\n if (!metadata)\n throw new _error_EntityMetadataNotFoundError__WEBPACK_IMPORTED_MODULE_4__[\"EntityMetadataNotFoundError\"](target);\n return metadata;\n };\n /**\n * Gets repository for the given entity.\n */\n Connection.prototype.getRepository = function (target) {\n return this.manager.getRepository(target);\n };\n /**\n * Gets tree repository for the given entity class or name.\n * Only tree-type entities can have a TreeRepository, like ones decorated with @Tree decorator.\n */\n Connection.prototype.getTreeRepository = function (target) {\n return this.manager.getTreeRepository(target);\n };\n /**\n * Gets mongodb-specific repository for the given entity class or name.\n * Works only if connection is mongodb-specific.\n */\n Connection.prototype.getMongoRepository = function (target) {\n if (!(this.driver instanceof _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_6__[\"MongoDriver\"]))\n throw new Error(\"You can use getMongoRepository only for MongoDB connections.\");\n return this.manager.getRepository(target);\n };\n /**\n * Gets custom entity repository marked with @EntityRepository decorator.\n */\n Connection.prototype.getCustomRepository = function (customRepository) {\n return this.manager.getCustomRepository(customRepository);\n };\n Connection.prototype.transaction = function (isolationOrRunInTransaction, runInTransactionParam) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, this.manager.transaction(isolationOrRunInTransaction, runInTransactionParam)];\n });\n });\n };\n /**\n * Executes raw SQL query and returns raw database results.\n */\n Connection.prototype.query = function (query, parameters, queryRunner) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var usedQueryRunner;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this instanceof _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_6__[\"MongoEntityManager\"])\n throw new Error(\"Queries aren't supported by MongoDB.\");\n if (queryRunner && queryRunner.isReleased)\n throw new _error_QueryRunnerProviderAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_8__[\"QueryRunnerProviderAlreadyReleasedError\"]();\n usedQueryRunner = queryRunner || this.createQueryRunner();\n _a.label = 1;\n case 1:\n _a.trys.push([1, , 3, 6]);\n return [4 /*yield*/, usedQueryRunner.query(query, parameters)];\n case 2: return [2 /*return*/, _a.sent()]; // await is needed here because we are using finally\n case 3:\n if (!!queryRunner) return [3 /*break*/, 5];\n return [4 /*yield*/, usedQueryRunner.release()];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [7 /*endfinally*/];\n case 6: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a new query builder that can be used to build a sql query.\n */\n Connection.prototype.createQueryBuilder = function (entityOrRunner, alias, queryRunner) {\n if (this instanceof _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_6__[\"MongoEntityManager\"])\n throw new Error(\"Query Builder is not supported by MongoDB.\");\n if (alias) {\n var metadata = this.getMetadata(entityOrRunner);\n return new _query_builder_SelectQueryBuilder__WEBPACK_IMPORTED_MODULE_12__[\"SelectQueryBuilder\"](this, queryRunner)\n .select(alias)\n .from(metadata.target, alias);\n }\n else {\n return new _query_builder_SelectQueryBuilder__WEBPACK_IMPORTED_MODULE_12__[\"SelectQueryBuilder\"](this, entityOrRunner);\n }\n };\n /**\n * Creates a query runner used for perform queries on a single database connection.\n * Using query runners you can control your queries to execute using single database connection and\n * manually control your database transaction.\n *\n * Mode is used in replication mode and indicates whatever you want to connect\n * to master database or any of slave databases.\n * If you perform writes you must use master database,\n * if you perform reads you can use slave databases.\n */\n Connection.prototype.createQueryRunner = function (mode) {\n if (mode === void 0) { mode = \"master\"; }\n var queryRunner = this.driver.createQueryRunner(mode);\n var manager = this.createEntityManager(queryRunner);\n Object.assign(queryRunner, { manager: manager });\n return queryRunner;\n };\n /**\n * Gets entity metadata of the junction table (many-to-many table).\n */\n Connection.prototype.getManyToManyMetadata = function (entityTarget, relationPropertyPath) {\n var relationMetadata = this.getMetadata(entityTarget).findRelationWithPropertyPath(relationPropertyPath);\n if (!relationMetadata)\n throw new Error(\"Relation \\\"\" + relationPropertyPath + \"\\\" was not found in \" + entityTarget + \" entity.\");\n if (!relationMetadata.isManyToMany)\n throw new Error(\"Relation \\\"\" + entityTarget + \"#\" + relationPropertyPath + \"\\\" does not have a many-to-many relationship.\" +\n \"You can use this method only on many-to-many relations.\");\n return relationMetadata.junctionEntityMetadata;\n };\n /**\n * Creates an Entity Manager for the current connection with the help of the EntityManagerFactory.\n */\n Connection.prototype.createEntityManager = function (queryRunner) {\n return new _entity_manager_EntityManagerFactory__WEBPACK_IMPORTED_MODULE_9__[\"EntityManagerFactory\"]().create(this, queryRunner);\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Finds exist entity metadata by the given entity class, target name or table name.\n */\n Connection.prototype.findMetadata = function (target) {\n return this.entityMetadatas.find(function (metadata) {\n if (metadata.target === target)\n return true;\n if (target instanceof ___WEBPACK_IMPORTED_MODULE_18__[\"EntitySchema\"]) {\n return metadata.name === target.options.name;\n }\n if (typeof target === \"string\") {\n if (target.indexOf(\".\") !== -1) {\n return metadata.tablePath === target;\n }\n else {\n return metadata.name === target || metadata.tableName === target;\n }\n }\n return false;\n });\n };\n /**\n * Builds metadatas for all registered classes inside this connection.\n */\n Connection.prototype.buildMetadatas = function () {\n var connectionMetadataBuilder = new _ConnectionMetadataBuilder__WEBPACK_IMPORTED_MODULE_11__[\"ConnectionMetadataBuilder\"](this);\n var entityMetadataValidator = new _metadata_builder_EntityMetadataValidator__WEBPACK_IMPORTED_MODULE_7__[\"EntityMetadataValidator\"]();\n // create subscribers instances if they are not disallowed from high-level (for example they can disallowed from migrations run process)\n var subscribers = connectionMetadataBuilder.buildSubscribers(this.options.subscribers || []);\n _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_19__[\"ObjectUtils\"].assign(this, { subscribers: subscribers });\n // build entity metadatas\n var entityMetadatas = connectionMetadataBuilder.buildEntityMetadatas(this.options.entities || []);\n _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_19__[\"ObjectUtils\"].assign(this, { entityMetadatas: entityMetadatas });\n // create migration instances\n var migrations = connectionMetadataBuilder.buildMigrations(this.options.migrations || []);\n _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_19__[\"ObjectUtils\"].assign(this, { migrations: migrations });\n this.driver.database = this.getDatabaseName();\n // validate all created entity metadatas to make sure user created entities are valid and correct\n entityMetadataValidator.validateMany(this.entityMetadatas.filter(function (metadata) { return metadata.tableType !== \"view\"; }), this.driver);\n };\n // This database name property is nested for replication configs.\n Connection.prototype.getDatabaseName = function () {\n var options = this.options;\n switch (options.type) {\n case \"mysql\":\n case \"mariadb\":\n case \"postgres\":\n case \"cockroachdb\":\n case \"mssql\":\n case \"oracle\":\n return _driver_DriverUtils__WEBPACK_IMPORTED_MODULE_20__[\"DriverUtils\"].buildDriverOptions(options.replication ? options.replication.master : options).database;\n case \"mongodb\":\n return _driver_DriverUtils__WEBPACK_IMPORTED_MODULE_20__[\"DriverUtils\"].buildMongoDBDriverOptions(options).database;\n default:\n return _driver_DriverUtils__WEBPACK_IMPORTED_MODULE_20__[\"DriverUtils\"].buildDriverOptions(options).database;\n }\n };\n return Connection;\n}());\n\n\n//# sourceMappingURL=Connection.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/connection/Connection.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/connection/ConnectionManager.js":
/*!**********************************************************************!*\
!*** ./node_modules/typeorm/browser/connection/ConnectionManager.js ***!
\**********************************************************************/
/*! exports provided: ConnectionManager */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ConnectionManager\", function() { return ConnectionManager; });\n/* harmony import */ var _Connection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Connection */ \"./node_modules/typeorm/browser/connection/Connection.js\");\n/* harmony import */ var _error_ConnectionNotFoundError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../error/ConnectionNotFoundError */ \"./node_modules/typeorm/browser/error/ConnectionNotFoundError.js\");\n/* harmony import */ var _error_AlreadyHasActiveConnectionError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../error/AlreadyHasActiveConnectionError */ \"./node_modules/typeorm/browser/error/AlreadyHasActiveConnectionError.js\");\n\n\n\n/**\n * ConnectionManager is used to store and manage multiple orm connections.\n * It also provides useful factory methods to simplify connection creation.\n */\nvar ConnectionManager = /** @class */ (function () {\n function ConnectionManager() {\n // -------------------------------------------------------------------------\n // Protected Properties\n // -------------------------------------------------------------------------\n /**\n * List of connections registered in this connection manager.\n */\n this.connections = [];\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Checks if connection with the given name exist in the manager.\n */\n ConnectionManager.prototype.has = function (name) {\n return !!this.connections.find(function (connection) { return connection.name === name; });\n };\n /**\n * Gets registered connection with the given name.\n * If connection name is not given then it will get a default connection.\n * Throws error if connection with the given name was not found.\n */\n ConnectionManager.prototype.get = function (name) {\n if (name === void 0) { name = \"default\"; }\n var connection = this.connections.find(function (connection) { return connection.name === name; });\n if (!connection)\n throw new _error_ConnectionNotFoundError__WEBPACK_IMPORTED_MODULE_1__[\"ConnectionNotFoundError\"](name);\n return connection;\n };\n /**\n * Creates a new connection based on the given connection options and registers it in the manager.\n * Connection won't be established, you'll need to manually call connect method to establish connection.\n */\n ConnectionManager.prototype.create = function (options) {\n // check if such connection is already registered\n var existConnection = this.connections.find(function (connection) { return connection.name === (options.name || \"default\"); });\n if (existConnection) {\n // if connection is registered and its not closed then throw an error\n if (existConnection.isConnected)\n throw new _error_AlreadyHasActiveConnectionError__WEBPACK_IMPORTED_MODULE_2__[\"AlreadyHasActiveConnectionError\"](options.name || \"default\");\n // if its registered but closed then simply remove it from the manager\n this.connections.splice(this.connections.indexOf(existConnection), 1);\n }\n // create a new connection\n var connection = new _Connection__WEBPACK_IMPORTED_MODULE_0__[\"Connection\"](options);\n this.connections.push(connection);\n return connection;\n };\n return ConnectionManager;\n}());\n\n\n//# sourceMappingURL=ConnectionManager.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/connection/ConnectionManager.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/connection/ConnectionMetadataBuilder.js":
/*!******************************************************************************!*\
!*** ./node_modules/typeorm/browser/connection/ConnectionMetadataBuilder.js ***!
\******************************************************************************/
/*! exports provided: ConnectionMetadataBuilder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ConnectionMetadataBuilder\", function() { return ConnectionMetadataBuilder; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_DirectoryExportedClassesLoader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/DirectoryExportedClassesLoader */ \"./node_modules/typeorm/browser/platform/BrowserDirectoryExportedClassesLoader.js\");\n/* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/OrmUtils */ \"./node_modules/typeorm/browser/util/OrmUtils.js\");\n/* harmony import */ var _container__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../container */ \"./node_modules/typeorm/browser/container.js\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../index */ \"./node_modules/typeorm/browser/index.js\");\n/* harmony import */ var _metadata_builder_EntityMetadataBuilder__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../metadata-builder/EntityMetadataBuilder */ \"./node_modules/typeorm/browser/metadata-builder/EntityMetadataBuilder.js\");\n/* harmony import */ var _entity_schema_EntitySchemaTransformer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../entity-schema/EntitySchemaTransformer */ \"./node_modules/typeorm/browser/entity-schema/EntitySchemaTransformer.js\");\n/* harmony import */ var _entity_schema_EntitySchema__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../entity-schema/EntitySchema */ \"./node_modules/typeorm/browser/entity-schema/EntitySchema.js\");\n\n\n\n\n\n\n\n\n/**\n * Builds migration instances, subscriber instances and entity metadatas for the given classes.\n */\nvar ConnectionMetadataBuilder = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function ConnectionMetadataBuilder(connection) {\n this.connection = connection;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Builds migration instances for the given classes or directories.\n */\n ConnectionMetadataBuilder.prototype.buildMigrations = function (migrations) {\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_util_OrmUtils__WEBPACK_IMPORTED_MODULE_2__[\"OrmUtils\"].splitClassesAndStrings(migrations), 2), migrationClasses = _a[0], migrationDirectories = _a[1];\n var allMigrationClasses = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(migrationClasses)), Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(Object(_util_DirectoryExportedClassesLoader__WEBPACK_IMPORTED_MODULE_1__[\"importClassesFromDirectories\"])(this.connection.logger, migrationDirectories)));\n return allMigrationClasses.map(function (migrationClass) { return Object(_container__WEBPACK_IMPORTED_MODULE_3__[\"getFromContainer\"])(migrationClass); });\n };\n /**\n * Builds subscriber instances for the given classes or directories.\n */\n ConnectionMetadataBuilder.prototype.buildSubscribers = function (subscribers) {\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_util_OrmUtils__WEBPACK_IMPORTED_MODULE_2__[\"OrmUtils\"].splitClassesAndStrings(subscribers || []), 2), subscriberClasses = _a[0], subscriberDirectories = _a[1];\n var allSubscriberClasses = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(subscriberClasses)), Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(Object(_util_DirectoryExportedClassesLoader__WEBPACK_IMPORTED_MODULE_1__[\"importClassesFromDirectories\"])(this.connection.logger, subscriberDirectories)));\n return Object(_index__WEBPACK_IMPORTED_MODULE_4__[\"getMetadataArgsStorage\"])()\n .filterSubscribers(allSubscriberClasses)\n .map(function (metadata) { return Object(_container__WEBPACK_IMPORTED_MODULE_3__[\"getFromContainer\"])(metadata.target); });\n };\n /**\n * Builds entity metadatas for the given classes or directories.\n */\n ConnectionMetadataBuilder.prototype.buildEntityMetadatas = function (entities) {\n // todo: instead we need to merge multiple metadata args storages\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_util_OrmUtils__WEBPACK_IMPORTED_MODULE_2__[\"OrmUtils\"].splitClassesAndStrings(entities || []), 2), entityClassesOrSchemas = _a[0], entityDirectories = _a[1];\n var entityClasses = entityClassesOrSchemas.filter(function (entityClass) { return (entityClass instanceof _entity_schema_EntitySchema__WEBPACK_IMPORTED_MODULE_7__[\"EntitySchema\"]) === false; });\n var entitySchemas = entityClassesOrSchemas.filter(function (entityClass) { return entityClass instanceof _entity_schema_EntitySchema__WEBPACK_IMPORTED_MODULE_7__[\"EntitySchema\"]; });\n var allEntityClasses = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(entityClasses)), Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(Object(_util_DirectoryExportedClassesLoader__WEBPACK_IMPORTED_MODULE_1__[\"importClassesFromDirectories\"])(this.connection.logger, entityDirectories)));\n allEntityClasses.forEach(function (entityClass) {\n if (entityClass instanceof _entity_schema_EntitySchema__WEBPACK_IMPORTED_MODULE_7__[\"EntitySchema\"]) {\n entitySchemas.push(entityClass);\n allEntityClasses.slice(allEntityClasses.indexOf(entityClass), 1);\n }\n });\n var decoratorEntityMetadatas = new _metadata_builder_EntityMetadataBuilder__WEBPACK_IMPORTED_MODULE_5__[\"EntityMetadataBuilder\"](this.connection, Object(_index__WEBPACK_IMPORTED_MODULE_4__[\"getMetadataArgsStorage\"])()).build(allEntityClasses);\n var metadataArgsStorageFromSchema = new _entity_schema_EntitySchemaTransformer__WEBPACK_IMPORTED_MODULE_6__[\"EntitySchemaTransformer\"]().transform(entitySchemas);\n var schemaEntityMetadatas = new _metadata_builder_EntityMetadataBuilder__WEBPACK_IMPORTED_MODULE_5__[\"EntityMetadataBuilder\"](this.connection, metadataArgsStorageFromSchema).build();\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(decoratorEntityMetadatas)), Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(schemaEntityMetadatas));\n };\n return ConnectionMetadataBuilder;\n}());\n\n\n//# sourceMappingURL=ConnectionMetadataBuilder.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/connection/ConnectionMetadataBuilder.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/container.js":
/*!***************************************************!*\
!*** ./node_modules/typeorm/browser/container.js ***!
\***************************************************/
/*! exports provided: useContainer, getFromContainer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useContainer\", function() { return useContainer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFromContainer\", function() { return getFromContainer; });\n/**\n * Container to be used by this library for inversion control. If container was not implicitly set then by default\n * container simply creates a new instance of the given class.\n */\nvar defaultContainer = new (/** @class */ (function () {\n function class_1() {\n this.instances = [];\n }\n class_1.prototype.get = function (someClass) {\n var instance = this.instances.find(function (i) { return i.type === someClass; });\n if (!instance) {\n instance = { type: someClass, object: new someClass() };\n this.instances.push(instance);\n }\n return instance.object;\n };\n return class_1;\n}()))();\nvar userContainer;\nvar userContainerOptions;\n/**\n * Sets container to be used by this library.\n */\nfunction useContainer(iocContainer, options) {\n userContainer = iocContainer;\n userContainerOptions = options;\n}\n/**\n * Gets the IOC container used by this library.\n */\nfunction getFromContainer(someClass) {\n if (userContainer) {\n try {\n var instance = userContainer.get(someClass);\n if (instance)\n return instance;\n if (!userContainerOptions || !userContainerOptions.fallback)\n return instance;\n }\n catch (error) {\n if (!userContainerOptions || !userContainerOptions.fallbackOnErrors)\n throw error;\n }\n }\n return defaultContainer.get(someClass);\n}\n\n//# sourceMappingURL=container.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/container.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/Check.js":
/*!*********************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/Check.js ***!
\*********************************************************/
/*! exports provided: Check */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Check\", function() { return Check; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * Creates a database check.\n * Can be used on entity property or on entity.\n * Can create checks with composite columns when used on entity.\n */\nfunction Check(nameOrExpression, maybeExpression) {\n var name = maybeExpression ? nameOrExpression : undefined;\n var expression = maybeExpression ? maybeExpression : nameOrExpression;\n if (!expression)\n throw new Error(\"Check expression is required\");\n return function (clsOrObject, propertyName) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().checks.push({\n target: propertyName ? clsOrObject.constructor : clsOrObject,\n name: name,\n expression: expression\n });\n };\n}\n\n//# sourceMappingURL=Check.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/Check.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/EntityRepository.js":
/*!********************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/EntityRepository.js ***!
\********************************************************************/
/*! exports provided: EntityRepository */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EntityRepository\", function() { return EntityRepository; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * Used to declare a class as a custom repository.\n * Custom repository can manage some specific entity or just be generic.\n * Custom repository optionally can extend AbstractRepository, Repository or TreeRepository.\n */\nfunction EntityRepository(entity) {\n return function (target) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().entityRepositories.push({\n target: target,\n entity: entity,\n });\n };\n}\n\n//# sourceMappingURL=EntityRepository.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/EntityRepository.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/Exclusion.js":
/*!*************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/Exclusion.js ***!
\*************************************************************/
/*! exports provided: Exclusion */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Exclusion\", function() { return Exclusion; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * Creates a database exclusion.\n * Can be used on entity.\n * Can create exclusions with composite columns when used on entity.\n */\nfunction Exclusion(nameOrExpression, maybeExpression) {\n var name = maybeExpression ? nameOrExpression : undefined;\n var expression = maybeExpression ? maybeExpression : nameOrExpression;\n if (!expression)\n throw new Error(\"Exclusion expression is required\");\n return function (clsOrObject, propertyName) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().exclusions.push({\n target: propertyName ? clsOrObject.constructor : clsOrObject,\n name: name,\n expression: expression\n });\n };\n}\n\n//# sourceMappingURL=Exclusion.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/Exclusion.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/Generated.js":
/*!*************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/Generated.js ***!
\*************************************************************/
/*! exports provided: Generated */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Generated\", function() { return Generated; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * Marks a column to generate a value on entity insertion.\n * There are three types of generation strategy - increment, uuid and rowid (cockroachdb only).\n * Increment uses a number which increases by one on each insertion.\n * Uuid generates a special UUID token.\n * Rowid supports only in CockroachDB and uses `unique_rowid()` function\n *\n * Note, some databases do not support non-primary generation columns.\n */\nfunction Generated(strategy) {\n if (strategy === void 0) { strategy = \"increment\"; }\n return function (object, propertyName) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().generations.push({\n target: object.constructor,\n propertyName: propertyName,\n strategy: strategy\n });\n };\n}\n\n//# sourceMappingURL=Generated.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/Generated.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/Index.js":
/*!*********************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/Index.js ***!
\*********************************************************/
/*! exports provided: Index */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Index\", function() { return Index; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * Creates a database index.\n * Can be used on entity property or on entity.\n * Can create indices with composite columns when used on entity.\n */\nfunction Index(nameOrFieldsOrOptions, maybeFieldsOrOptions, maybeOptions) {\n // normalize parameters\n var name = typeof nameOrFieldsOrOptions === \"string\" ? nameOrFieldsOrOptions : undefined;\n var fields = typeof nameOrFieldsOrOptions === \"string\" ? maybeFieldsOrOptions : nameOrFieldsOrOptions;\n var options = (typeof nameOrFieldsOrOptions === \"object\" && !Array.isArray(nameOrFieldsOrOptions)) ? nameOrFieldsOrOptions : maybeOptions;\n if (!options)\n options = (typeof maybeFieldsOrOptions === \"object\" && !Array.isArray(maybeFieldsOrOptions)) ? maybeFieldsOrOptions : maybeOptions;\n return function (clsOrObject, propertyName) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().indices.push({\n target: propertyName ? clsOrObject.constructor : clsOrObject,\n name: name,\n columns: propertyName ? [propertyName] : fields,\n synchronize: options && options.synchronize === false ? false : true,\n where: options ? options.where : undefined,\n unique: options && options.unique ? true : false,\n spatial: options && options.spatial ? true : false,\n fulltext: options && options.fulltext ? true : false,\n parser: options ? options.parser : undefined,\n sparse: options && options.sparse ? true : false,\n background: options && options.background ? true : false,\n expireAfterSeconds: options ? options.expireAfterSeconds : undefined\n });\n };\n}\n\n//# sourceMappingURL=Index.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/Index.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/Unique.js":
/*!**********************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/Unique.js ***!
\**********************************************************/
/*! exports provided: Unique */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Unique\", function() { return Unique; });\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../index */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * Composite unique constraint must be set on entity classes and must specify entity's fields to be unique.\n */\nfunction Unique(nameOrFields, maybeFields) {\n var name = typeof nameOrFields === \"string\" ? nameOrFields : undefined;\n var fields = typeof nameOrFields === \"string\" ? maybeFields : nameOrFields;\n return function (clsOrObject, propertyName) {\n var columns = fields;\n if (propertyName !== undefined) {\n switch (typeof (propertyName)) {\n case \"string\":\n columns = [propertyName];\n break;\n case \"symbol\":\n columns = [propertyName.toString()];\n break;\n }\n }\n var args = {\n target: propertyName ? clsOrObject.constructor : clsOrObject,\n name: name,\n columns: columns,\n };\n Object(_index__WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().uniques.push(args);\n };\n}\n\n//# sourceMappingURL=Unique.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/Unique.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/columns/Column.js":
/*!******************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/columns/Column.js ***!
\******************************************************************/
/*! exports provided: Column */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Column\", function() { return Column; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n/* harmony import */ var _error_ColumnTypeUndefinedError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../error/ColumnTypeUndefinedError */ \"./node_modules/typeorm/browser/error/ColumnTypeUndefinedError.js\");\n\n\n/**\n * Column decorator is used to mark a specific class property as a table column.\n * Only properties decorated with this decorator will be persisted to the database when entity be saved.\n */\nfunction Column(typeOrOptions, options) {\n return function (object, propertyName) {\n // normalize parameters\n var type;\n if (typeof typeOrOptions === \"string\" || typeOrOptions instanceof Function) {\n type = typeOrOptions;\n }\n else if (typeOrOptions) {\n options = typeOrOptions;\n type = typeOrOptions.type;\n }\n if (!options)\n options = {};\n // if type is not given explicitly then try to guess it\n var reflectMetadataType = Reflect && Reflect.getMetadata ? Reflect.getMetadata(\"design:type\", object, propertyName) : undefined;\n if (!type && reflectMetadataType) // if type is not given explicitly then try to guess it\n type = reflectMetadataType;\n // check if there is no type in column options then set type from first function argument, or guessed one\n if (!options.type && type)\n options.type = type;\n // specify HSTORE type if column is HSTORE\n if (options.type === \"hstore\" && !options.hstoreType)\n options.hstoreType = reflectMetadataType === Object ? \"object\" : \"string\";\n if (typeOrOptions instanceof Function) { // register an embedded\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().embeddeds.push({\n target: object.constructor,\n propertyName: propertyName,\n isArray: reflectMetadataType === Array || options.array === true,\n prefix: options.prefix !== undefined ? options.prefix : undefined,\n type: typeOrOptions\n });\n }\n else { // register a regular column\n // if we still don't have a type then we need to give error to user that type is required\n if (!options.type)\n throw new _error_ColumnTypeUndefinedError__WEBPACK_IMPORTED_MODULE_1__[\"ColumnTypeUndefinedError\"](object, propertyName);\n // create unique\n if (options.unique === true)\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().uniques.push({ target: object.constructor, columns: [propertyName] });\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().columns.push({\n target: object.constructor,\n propertyName: propertyName,\n mode: \"regular\",\n options: options\n });\n if (options.generated) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().generations.push({\n target: object.constructor,\n propertyName: propertyName,\n strategy: typeof options.generated === \"string\" ? options.generated : \"increment\"\n });\n }\n }\n };\n}\n\n//# sourceMappingURL=Column.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/columns/Column.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/columns/CreateDateColumn.js":
/*!****************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/columns/CreateDateColumn.js ***!
\****************************************************************************/
/*! exports provided: CreateDateColumn */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CreateDateColumn\", function() { return CreateDateColumn; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * This column will store a creation date of the inserted object.\n * Creation date is generated and inserted only once,\n * at the first time when you create an object, the value is inserted into the table, and is never touched again.\n */\nfunction CreateDateColumn(options) {\n return function (object, propertyName) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().columns.push({\n target: object.constructor,\n propertyName: propertyName,\n mode: \"createDate\",\n options: options || {}\n });\n };\n}\n\n//# sourceMappingURL=CreateDateColumn.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/columns/CreateDateColumn.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/columns/DeleteDateColumn.js":
/*!****************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/columns/DeleteDateColumn.js ***!
\****************************************************************************/
/*! exports provided: DeleteDateColumn */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DeleteDateColumn\", function() { return DeleteDateColumn; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * This column will store a delete date of the soft-deleted object.\n * This date is being updated each time you soft-delete the object.\n */\nfunction DeleteDateColumn(options) {\n return function (object, propertyName) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().columns.push({\n target: object.constructor,\n propertyName: propertyName,\n mode: \"deleteDate\",\n options: options || {}\n });\n };\n}\n\n//# sourceMappingURL=DeleteDateColumn.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/columns/DeleteDateColumn.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/columns/ObjectIdColumn.js":
/*!**************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/columns/ObjectIdColumn.js ***!
\**************************************************************************/
/*! exports provided: ObjectIdColumn */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObjectIdColumn\", function() { return ObjectIdColumn; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * Special type of column that is available only for MongoDB database.\n * Marks your entity's column to be an object id.\n */\nfunction ObjectIdColumn(options) {\n return function (object, propertyName) {\n // if column options are not given then create a new empty options\n if (!options)\n options = {};\n options.primary = true;\n if (!options.name)\n options.name = \"_id\";\n // create and register a new column metadata\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().columns.push({\n target: object.constructor,\n propertyName: propertyName,\n mode: \"objectId\",\n options: options\n });\n };\n}\n\n//# sourceMappingURL=ObjectIdColumn.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/columns/ObjectIdColumn.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/columns/PrimaryColumn.js":
/*!*************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/columns/PrimaryColumn.js ***!
\*************************************************************************/
/*! exports provided: PrimaryColumn */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PrimaryColumn\", function() { return PrimaryColumn; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n/* harmony import */ var _error_ColumnTypeUndefinedError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../error/ColumnTypeUndefinedError */ \"./node_modules/typeorm/browser/error/ColumnTypeUndefinedError.js\");\n/* harmony import */ var _error_PrimaryColumnCannotBeNullableError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../error/PrimaryColumnCannotBeNullableError */ \"./node_modules/typeorm/browser/error/PrimaryColumnCannotBeNullableError.js\");\n\n\n\n/**\n * Column decorator is used to mark a specific class property as a table column.\n * Only properties decorated with this decorator will be persisted to the database when entity be saved.\n * Primary columns also creates a PRIMARY KEY for this column in a db.\n */\nfunction PrimaryColumn(typeOrOptions, options) {\n return function (object, propertyName) {\n // normalize parameters\n var type;\n if (typeof typeOrOptions === \"string\") {\n type = typeOrOptions;\n }\n else {\n options = Object.assign({}, typeOrOptions);\n }\n if (!options)\n options = {};\n // if type is not given explicitly then try to guess it\n var reflectMetadataType = Reflect && Reflect.getMetadata ? Reflect.getMetadata(\"design:type\", object, propertyName) : undefined;\n if (!type && reflectMetadataType)\n type = reflectMetadataType;\n // check if there is no type in column options then set type from first function argument, or guessed one\n if (!options.type && type)\n options.type = type;\n // if we still don't have a type then we need to give error to user that type is required\n if (!options.type)\n throw new _error_ColumnTypeUndefinedError__WEBPACK_IMPORTED_MODULE_1__[\"ColumnTypeUndefinedError\"](object, propertyName);\n // check if column is not nullable, because we cannot allow a primary key to be nullable\n if (options.nullable)\n throw new _error_PrimaryColumnCannotBeNullableError__WEBPACK_IMPORTED_MODULE_2__[\"PrimaryColumnCannotBeNullableError\"](object, propertyName);\n // explicitly set a primary to column options\n options.primary = true;\n // create and register a new column metadata\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().columns.push({\n target: object.constructor,\n propertyName: propertyName,\n mode: \"regular\",\n options: options\n });\n if (options.generated) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().generations.push({\n target: object.constructor,\n propertyName: propertyName,\n strategy: typeof options.generated === \"string\" ? options.generated : \"increment\"\n });\n }\n };\n}\n\n//# sourceMappingURL=PrimaryColumn.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/columns/PrimaryColumn.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/columns/PrimaryGeneratedColumn.js":
/*!**********************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/columns/PrimaryGeneratedColumn.js ***!
\**********************************************************************************/
/*! exports provided: PrimaryGeneratedColumn */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PrimaryGeneratedColumn\", function() { return PrimaryGeneratedColumn; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * Column decorator is used to mark a specific class property as a table column.\n * Only properties decorated with this decorator will be persisted to the database when entity be saved.\n * This column creates an integer PRIMARY COLUMN with generated set to true.\n */\nfunction PrimaryGeneratedColumn(strategyOrOptions, maybeOptions) {\n // normalize parameters\n var options = {};\n var strategy;\n if (strategyOrOptions) {\n if (typeof strategyOrOptions === \"string\")\n strategy = strategyOrOptions;\n if (strategyOrOptions instanceof Object) {\n strategy = \"increment\";\n Object.assign(options, strategyOrOptions);\n }\n }\n else {\n strategy = \"increment\";\n }\n if (maybeOptions instanceof Object)\n Object.assign(options, maybeOptions);\n return function (object, propertyName) {\n // if column type is not explicitly set then determine it based on generation strategy\n if (!options.type) {\n if (strategy === \"increment\") {\n options.type = Number;\n }\n else if (strategy === \"uuid\") {\n options.type = \"uuid\";\n }\n else if (strategy === \"rowid\") {\n options.type = \"int\";\n }\n }\n // explicitly set a primary and generated to column options\n options.primary = true;\n // register column metadata args\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().columns.push({\n target: object.constructor,\n propertyName: propertyName,\n mode: \"regular\",\n options: options\n });\n // register generated metadata args\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().generations.push({\n target: object.constructor,\n propertyName: propertyName,\n strategy: strategy\n });\n };\n}\n\n//# sourceMappingURL=PrimaryGeneratedColumn.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/columns/PrimaryGeneratedColumn.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/columns/UpdateDateColumn.js":
/*!****************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/columns/UpdateDateColumn.js ***!
\****************************************************************************/
/*! exports provided: UpdateDateColumn */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UpdateDateColumn\", function() { return UpdateDateColumn; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * This column will store an update date of the updated object.\n * This date is being updated each time you persist the object.\n */\nfunction UpdateDateColumn(options) {\n return function (object, propertyName) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().columns.push({\n target: object.constructor,\n propertyName: propertyName,\n mode: \"updateDate\",\n options: options ? options : {}\n });\n };\n}\n\n//# sourceMappingURL=UpdateDateColumn.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/columns/UpdateDateColumn.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/columns/VersionColumn.js":
/*!*************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/columns/VersionColumn.js ***!
\*************************************************************************/
/*! exports provided: VersionColumn */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VersionColumn\", function() { return VersionColumn; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * This column will store a number - version of the entity.\n * Every time your entity will be persisted, this number will be increased by one -\n * so you can organize visioning and update strategies of your entity.\n */\nfunction VersionColumn(options) {\n return function (object, propertyName) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().columns.push({\n target: object.constructor,\n propertyName: propertyName,\n mode: \"version\",\n options: options || {}\n });\n };\n}\n\n//# sourceMappingURL=VersionColumn.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/columns/VersionColumn.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/columns/ViewColumn.js":
/*!**********************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/columns/ViewColumn.js ***!
\**********************************************************************/
/*! exports provided: ViewColumn */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ViewColumn\", function() { return ViewColumn; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * ViewColumn decorator is used to mark a specific class property as a view column.\n */\nfunction ViewColumn(options) {\n return function (object, propertyName) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().columns.push({\n target: object.constructor,\n propertyName: propertyName,\n mode: \"regular\",\n options: options || {}\n });\n };\n}\n\n//# sourceMappingURL=ViewColumn.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/columns/ViewColumn.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/entity-view/ViewEntity.js":
/*!**************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/entity-view/ViewEntity.js ***!
\**************************************************************************/
/*! exports provided: ViewEntity */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ViewEntity\", function() { return ViewEntity; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * This decorator is used to mark classes that will be an entity view.\n * Database schema will be created for all classes decorated with it, and Repository can be retrieved and used for it.\n */\nfunction ViewEntity(nameOrOptions, maybeOptions) {\n var options = (typeof nameOrOptions === \"object\" ? nameOrOptions : maybeOptions) || {};\n var name = typeof nameOrOptions === \"string\" ? nameOrOptions : options.name;\n return function (target) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().tables.push({\n target: target,\n name: name,\n expression: options.expression,\n type: \"view\",\n database: options.database ? options.database : undefined,\n schema: options.schema ? options.schema : undefined,\n synchronize: options.synchronize === false ? false : true,\n materialized: !!options.materialized\n });\n };\n}\n\n//# sourceMappingURL=ViewEntity.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/entity-view/ViewEntity.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/entity/ChildEntity.js":
/*!**********************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/entity/ChildEntity.js ***!
\**********************************************************************/
/*! exports provided: ChildEntity */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ChildEntity\", function() { return ChildEntity; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * Special type of the table used in the single-table inherited tables.\n */\nfunction ChildEntity(discriminatorValue) {\n return function (target) {\n // register a table metadata\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().tables.push({\n target: target,\n type: \"entity-child\",\n });\n // register discriminator value if it was provided\n if (typeof discriminatorValue !== 'undefined') {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().discriminatorValues.push({\n target: target,\n value: discriminatorValue\n });\n }\n };\n}\n\n//# sourceMappingURL=ChildEntity.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/entity/ChildEntity.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/entity/Entity.js":
/*!*****************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/entity/Entity.js ***!
\*****************************************************************/
/*! exports provided: Entity */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Entity\", function() { return Entity; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * This decorator is used to mark classes that will be an entity (table or document depend on database type).\n * Database schema will be created for all classes decorated with it, and Repository can be retrieved and used for it.\n */\nfunction Entity(nameOrOptions, maybeOptions) {\n var options = (typeof nameOrOptions === \"object\" ? nameOrOptions : maybeOptions) || {};\n var name = typeof nameOrOptions === \"string\" ? nameOrOptions : options.name;\n return function (target) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().tables.push({\n target: target,\n name: name,\n type: \"regular\",\n orderBy: options.orderBy ? options.orderBy : undefined,\n engine: options.engine ? options.engine : undefined,\n database: options.database ? options.database : undefined,\n schema: options.schema ? options.schema : undefined,\n synchronize: options.synchronize,\n withoutRowid: options.withoutRowid\n });\n };\n}\n\n//# sourceMappingURL=Entity.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/entity/Entity.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/entity/TableInheritance.js":
/*!***************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/entity/TableInheritance.js ***!
\***************************************************************************/
/*! exports provided: TableInheritance */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TableInheritance\", function() { return TableInheritance; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * Sets for entity to use table inheritance pattern.\n */\nfunction TableInheritance(options) {\n return function (target) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().inheritances.push({\n target: target,\n pattern: options && options.pattern ? options.pattern : \"STI\",\n column: options && options.column ? typeof options.column === \"string\" ? { name: options.column } : options.column : undefined\n });\n };\n}\n\n//# sourceMappingURL=TableInheritance.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/entity/TableInheritance.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/listeners/AfterInsert.js":
/*!*************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/listeners/AfterInsert.js ***!
\*************************************************************************/
/*! exports provided: AfterInsert */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AfterInsert\", function() { return AfterInsert; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n/* harmony import */ var _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../metadata/types/EventListenerTypes */ \"./node_modules/typeorm/browser/metadata/types/EventListenerTypes.js\");\n\n\n/**\n * Calls a method on which this decorator is applied after this entity insertion.\n */\nfunction AfterInsert() {\n return function (object, propertyName) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().entityListeners.push({\n target: object.constructor,\n propertyName: propertyName,\n type: _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_1__[\"EventListenerTypes\"].AFTER_INSERT\n });\n };\n}\n\n//# sourceMappingURL=AfterInsert.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/listeners/AfterInsert.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/listeners/AfterLoad.js":
/*!***********************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/listeners/AfterLoad.js ***!
\***********************************************************************/
/*! exports provided: AfterLoad */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AfterLoad\", function() { return AfterLoad; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n/* harmony import */ var _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../metadata/types/EventListenerTypes */ \"./node_modules/typeorm/browser/metadata/types/EventListenerTypes.js\");\n\n\n/**\n * Calls a method on which this decorator is applied after entity is loaded.\n */\nfunction AfterLoad() {\n return function (object, propertyName) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().entityListeners.push({\n target: object.constructor,\n propertyName: propertyName,\n type: _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_1__[\"EventListenerTypes\"].AFTER_LOAD\n });\n };\n}\n\n//# sourceMappingURL=AfterLoad.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/listeners/AfterLoad.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/listeners/AfterRemove.js":
/*!*************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/listeners/AfterRemove.js ***!
\*************************************************************************/
/*! exports provided: AfterRemove */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AfterRemove\", function() { return AfterRemove; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n/* harmony import */ var _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../metadata/types/EventListenerTypes */ \"./node_modules/typeorm/browser/metadata/types/EventListenerTypes.js\");\n\n\n/**\n * Calls a method on which this decorator is applied after this entity removal.\n */\nfunction AfterRemove() {\n return function (object, propertyName) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().entityListeners.push({\n target: object.constructor,\n propertyName: propertyName,\n type: _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_1__[\"EventListenerTypes\"].AFTER_REMOVE\n });\n };\n}\n\n//# sourceMappingURL=AfterRemove.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/listeners/AfterRemove.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/listeners/AfterUpdate.js":
/*!*************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/listeners/AfterUpdate.js ***!
\*************************************************************************/
/*! exports provided: AfterUpdate */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AfterUpdate\", function() { return AfterUpdate; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n/* harmony import */ var _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../metadata/types/EventListenerTypes */ \"./node_modules/typeorm/browser/metadata/types/EventListenerTypes.js\");\n\n\n/**\n * Calls a method on which this decorator is applied after this entity update.\n */\nfunction AfterUpdate() {\n return function (object, propertyName) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().entityListeners.push({\n target: object.constructor,\n propertyName: propertyName,\n type: _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_1__[\"EventListenerTypes\"].AFTER_UPDATE\n });\n };\n}\n\n//# sourceMappingURL=AfterUpdate.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/listeners/AfterUpdate.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/listeners/BeforeInsert.js":
/*!**************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/listeners/BeforeInsert.js ***!
\**************************************************************************/
/*! exports provided: BeforeInsert */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BeforeInsert\", function() { return BeforeInsert; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n/* harmony import */ var _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../metadata/types/EventListenerTypes */ \"./node_modules/typeorm/browser/metadata/types/EventListenerTypes.js\");\n\n\n/**\n * Calls a method on which this decorator is applied before this entity insertion.\n */\nfunction BeforeInsert() {\n return function (object, propertyName) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().entityListeners.push({\n target: object.constructor,\n propertyName: propertyName,\n type: _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_1__[\"EventListenerTypes\"].BEFORE_INSERT\n });\n };\n}\n\n//# sourceMappingURL=BeforeInsert.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/listeners/BeforeInsert.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/listeners/BeforeRemove.js":
/*!**************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/listeners/BeforeRemove.js ***!
\**************************************************************************/
/*! exports provided: BeforeRemove */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BeforeRemove\", function() { return BeforeRemove; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n/* harmony import */ var _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../metadata/types/EventListenerTypes */ \"./node_modules/typeorm/browser/metadata/types/EventListenerTypes.js\");\n\n\n/**\n * Calls a method on which this decorator is applied before this entity removal.\n */\nfunction BeforeRemove() {\n return function (object, propertyName) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().entityListeners.push({\n target: object.constructor,\n propertyName: propertyName,\n type: _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_1__[\"EventListenerTypes\"].BEFORE_REMOVE\n });\n };\n}\n\n//# sourceMappingURL=BeforeRemove.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/listeners/BeforeRemove.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/listeners/BeforeUpdate.js":
/*!**************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/listeners/BeforeUpdate.js ***!
\**************************************************************************/
/*! exports provided: BeforeUpdate */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BeforeUpdate\", function() { return BeforeUpdate; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n/* harmony import */ var _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../metadata/types/EventListenerTypes */ \"./node_modules/typeorm/browser/metadata/types/EventListenerTypes.js\");\n\n\n/**\n * Calls a method on which this decorator is applied before this entity update.\n */\nfunction BeforeUpdate() {\n return function (object, propertyName) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().entityListeners.push({\n target: object.constructor,\n propertyName: propertyName,\n type: _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_1__[\"EventListenerTypes\"].BEFORE_UPDATE\n });\n };\n}\n\n//# sourceMappingURL=BeforeUpdate.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/listeners/BeforeUpdate.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/listeners/EventSubscriber.js":
/*!*****************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/listeners/EventSubscriber.js ***!
\*****************************************************************************/
/*! exports provided: EventSubscriber */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EventSubscriber\", function() { return EventSubscriber; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * Classes decorated with this decorator will listen to ORM events and their methods will be triggered when event\n * occurs. Those classes must implement EventSubscriberInterface interface.\n */\nfunction EventSubscriber() {\n return function (target) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().entitySubscribers.push({\n target: target\n });\n };\n}\n\n//# sourceMappingURL=EventSubscriber.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/listeners/EventSubscriber.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/options/ColumnOptions.js":
/*!*************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/options/ColumnOptions.js ***!
\*************************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=ColumnOptions.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/options/ColumnOptions.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/options/EntityOptions.js":
/*!*************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/options/EntityOptions.js ***!
\*************************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=EntityOptions.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/options/EntityOptions.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/options/IndexOptions.js":
/*!************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/options/IndexOptions.js ***!
\************************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=IndexOptions.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/options/IndexOptions.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/options/JoinColumnOptions.js":
/*!*****************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/options/JoinColumnOptions.js ***!
\*****************************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=JoinColumnOptions.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/options/JoinColumnOptions.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/options/JoinTableOptions.js":
/*!****************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/options/JoinTableOptions.js ***!
\****************************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=JoinTableOptions.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/options/JoinTableOptions.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/options/RelationOptions.js":
/*!***************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/options/RelationOptions.js ***!
\***************************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=RelationOptions.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/options/RelationOptions.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/options/ValueTransformer.js":
/*!****************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/options/ValueTransformer.js ***!
\****************************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=ValueTransformer.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/options/ValueTransformer.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/relations/JoinColumn.js":
/*!************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/relations/JoinColumn.js ***!
\************************************************************************/
/*! exports provided: JoinColumn */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"JoinColumn\", function() { return JoinColumn; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * JoinColumn decorator used on one-to-one relations to specify owner side of relationship.\n * It also can be used on both one-to-one and many-to-one relations to specify custom column name\n * or custom referenced column.\n */\nfunction JoinColumn(optionsOrOptionsArray) {\n return function (object, propertyName) {\n var options = Array.isArray(optionsOrOptionsArray) ? optionsOrOptionsArray : [optionsOrOptionsArray || {}];\n options.forEach(function (options) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().joinColumns.push({\n target: object.constructor,\n propertyName: propertyName,\n name: options.name,\n referencedColumnName: options.referencedColumnName\n });\n });\n };\n}\n\n//# sourceMappingURL=JoinColumn.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/relations/JoinColumn.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/relations/JoinTable.js":
/*!***********************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/relations/JoinTable.js ***!
\***********************************************************************/
/*! exports provided: JoinTable */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"JoinTable\", function() { return JoinTable; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * JoinTable decorator is used in many-to-many relationship to specify owner side of relationship.\n * Its also used to set a custom junction table's name, column names and referenced columns.\n */\nfunction JoinTable(options) {\n return function (object, propertyName) {\n options = options || {};\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().joinTables.push({\n target: object.constructor,\n propertyName: propertyName,\n name: options.name,\n joinColumns: (options && options.joinColumn ? [options.joinColumn] : options.joinColumns),\n inverseJoinColumns: (options && options.inverseJoinColumn ? [options.inverseJoinColumn] : options.inverseJoinColumns),\n schema: options && options.schema ? options.schema : undefined,\n database: options && options.database ? options.database : undefined,\n });\n };\n}\n\n//# sourceMappingURL=JoinTable.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/relations/JoinTable.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/relations/ManyToMany.js":
/*!************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/relations/ManyToMany.js ***!
\************************************************************************/
/*! exports provided: ManyToMany */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ManyToMany\", function() { return ManyToMany; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * Many-to-many is a type of relationship when Entity1 can have multiple instances of Entity2, and Entity2 can have\n * multiple instances of Entity1. To achieve it, this type of relation creates a junction table, where it storage\n * entity1 and entity2 ids. This is owner side of the relationship.\n */\nfunction ManyToMany(typeFunctionOrTarget, inverseSideOrOptions, options) {\n // normalize parameters\n var inverseSideProperty;\n if (typeof inverseSideOrOptions === \"object\") {\n options = inverseSideOrOptions;\n }\n else {\n inverseSideProperty = inverseSideOrOptions;\n }\n return function (object, propertyName) {\n if (!options)\n options = {};\n // now try to determine it its lazy relation\n var isLazy = options.lazy === true;\n if (!isLazy && Reflect && Reflect.getMetadata) { // automatic determination\n var reflectedType = Reflect.getMetadata(\"design:type\", object, propertyName);\n if (reflectedType && typeof reflectedType.name === \"string\" && reflectedType.name.toLowerCase() === \"promise\")\n isLazy = true;\n }\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().relations.push({\n target: object.constructor,\n propertyName: propertyName,\n // propertyType: reflectedType,\n relationType: \"many-to-many\",\n isLazy: isLazy,\n type: typeFunctionOrTarget,\n inverseSideProperty: inverseSideProperty,\n options: options\n });\n };\n}\n\n//# sourceMappingURL=ManyToMany.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/relations/ManyToMany.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/relations/ManyToOne.js":
/*!***********************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/relations/ManyToOne.js ***!
\***********************************************************************/
/*! exports provided: ManyToOne */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ManyToOne\", function() { return ManyToOne; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * A many-to-one relation allows creating the type of relation where Entity1 can have a single instance of Entity2, but\n * Entity2 can have multiple instances of Entity1. Entity1 is the owner of the relationship, and stores the id of\n * Entity2 on its side of the relation.\n */\nfunction ManyToOne(typeFunctionOrTarget, inverseSideOrOptions, options) {\n // Normalize parameters.\n var inverseSideProperty;\n if (typeof inverseSideOrOptions === \"object\") {\n options = inverseSideOrOptions;\n }\n else {\n inverseSideProperty = inverseSideOrOptions;\n }\n return function (object, propertyName) {\n if (!options)\n options = {};\n // Now try to determine if it is a lazy relation.\n var isLazy = options && options.lazy === true ? true : false;\n if (!isLazy && Reflect && Reflect.getMetadata) { // automatic determination\n var reflectedType = Reflect.getMetadata(\"design:type\", object, propertyName);\n if (reflectedType && typeof reflectedType.name === \"string\" && reflectedType.name.toLowerCase() === \"promise\")\n isLazy = true;\n }\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().relations.push({\n target: object.constructor,\n propertyName: propertyName,\n // propertyType: reflectedType,\n relationType: \"many-to-one\",\n isLazy: isLazy,\n type: typeFunctionOrTarget,\n inverseSideProperty: inverseSideProperty,\n options: options\n });\n };\n}\n\n//# sourceMappingURL=ManyToOne.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/relations/ManyToOne.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/relations/OneToMany.js":
/*!***********************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/relations/OneToMany.js ***!
\***********************************************************************/
/*! exports provided: OneToMany */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OneToMany\", function() { return OneToMany; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * A one-to-many relation allows creating the type of relation where Entity1 can have multiple instances of Entity2,\n * but Entity2 has only one Entity1. Entity2 is the owner of the relationship, and stores the id of Entity1 on its\n * side of the relation.\n */\nfunction OneToMany(typeFunctionOrTarget, inverseSide, options) {\n return function (object, propertyName) {\n if (!options)\n options = {};\n // Now try to determine if it is a lazy relation.\n var isLazy = options && options.lazy === true ? true : false;\n if (!isLazy && Reflect && Reflect.getMetadata) { // automatic determination\n var reflectedType = Reflect.getMetadata(\"design:type\", object, propertyName);\n if (reflectedType && typeof reflectedType.name === \"string\" && reflectedType.name.toLowerCase() === \"promise\")\n isLazy = true;\n }\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().relations.push({\n target: object.constructor,\n propertyName: propertyName,\n // propertyType: reflectedType,\n isLazy: isLazy,\n relationType: \"one-to-many\",\n type: typeFunctionOrTarget,\n inverseSideProperty: inverseSide,\n options: options\n });\n };\n}\n\n//# sourceMappingURL=OneToMany.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/relations/OneToMany.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/relations/OneToOne.js":
/*!**********************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/relations/OneToOne.js ***!
\**********************************************************************/
/*! exports provided: OneToOne */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OneToOne\", function() { return OneToOne; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * One-to-one relation allows to create direct relation between two entities. Entity1 have only one Entity2.\n * Entity1 is an owner of the relationship, and storages Entity1 id on its own side.\n */\nfunction OneToOne(typeFunctionOrTarget, inverseSideOrOptions, options) {\n // normalize parameters\n var inverseSideProperty;\n if (typeof inverseSideOrOptions === \"object\") {\n options = inverseSideOrOptions;\n }\n else {\n inverseSideProperty = inverseSideOrOptions;\n }\n return function (object, propertyName) {\n if (!options)\n options = {};\n // now try to determine it its lazy relation\n var isLazy = options && options.lazy === true ? true : false;\n if (!isLazy && Reflect && Reflect.getMetadata) { // automatic determination\n var reflectedType = Reflect.getMetadata(\"design:type\", object, propertyName);\n if (reflectedType && typeof reflectedType.name === \"string\" && reflectedType.name.toLowerCase() === \"promise\")\n isLazy = true;\n }\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().relations.push({\n target: object.constructor,\n propertyName: propertyName,\n // propertyType: reflectedType,\n isLazy: isLazy,\n relationType: \"one-to-one\",\n type: typeFunctionOrTarget,\n inverseSideProperty: inverseSideProperty,\n options: options\n });\n };\n}\n\n//# sourceMappingURL=OneToOne.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/relations/OneToOne.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/relations/RelationCount.js":
/*!***************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/relations/RelationCount.js ***!
\***************************************************************************/
/*! exports provided: RelationCount */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RelationCount\", function() { return RelationCount; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * Holds a number of children in the closure table of the column.\n *\n * @deprecated Do not use this decorator, it may be removed in the future versions\n */\nfunction RelationCount(relation, alias, queryBuilderFactory) {\n return function (object, propertyName) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().relationCounts.push({\n target: object.constructor,\n propertyName: propertyName,\n relation: relation,\n alias: alias,\n queryBuilderFactory: queryBuilderFactory\n });\n };\n}\n\n//# sourceMappingURL=RelationCount.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/relations/RelationCount.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/relations/RelationId.js":
/*!************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/relations/RelationId.js ***!
\************************************************************************/
/*! exports provided: RelationId */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RelationId\", function() { return RelationId; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * Special decorator used to extract relation id into separate entity property.\n *\n * @experimental\n */\nfunction RelationId(relation, alias, queryBuilderFactory) {\n return function (object, propertyName) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().relationIds.push({\n target: object.constructor,\n propertyName: propertyName,\n relation: relation,\n alias: alias,\n queryBuilderFactory: queryBuilderFactory\n });\n };\n}\n\n//# sourceMappingURL=RelationId.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/relations/RelationId.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/transaction/Transaction.js":
/*!***************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/transaction/Transaction.js ***!
\***************************************************************************/
/*! exports provided: Transaction */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Transaction\", function() { return Transaction; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n\nfunction Transaction(connectionOrOptions) {\n return function (target, methodName, descriptor) {\n // save original method - we gonna need it\n var originalMethod = descriptor.value;\n // override method descriptor with proxy method\n descriptor.value = function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var connectionName = \"default\";\n var isolationLevel = undefined;\n if (connectionOrOptions) {\n if (typeof connectionOrOptions === \"string\") {\n connectionName = connectionOrOptions;\n }\n else {\n if (connectionOrOptions.connectionName) {\n connectionName = connectionOrOptions.connectionName;\n }\n if (connectionOrOptions.isolation) {\n isolationLevel = connectionOrOptions.isolation;\n }\n }\n }\n var transactionCallback = function (entityManager) {\n var argsWithInjectedTransactionManagerAndRepositories;\n // filter all @TransactionManager() and @TransactionRepository() decorator usages for this method\n var transactionEntityManagerMetadatas = Object(___WEBPACK_IMPORTED_MODULE_1__[\"getMetadataArgsStorage\"])()\n .filterTransactionEntityManagers(target.constructor, methodName)\n .reverse();\n var transactionRepositoryMetadatas = Object(___WEBPACK_IMPORTED_MODULE_1__[\"getMetadataArgsStorage\"])()\n .filterTransactionRepository(target.constructor, methodName)\n .reverse();\n // if there are @TransactionManager() decorator usages the inject them\n if (transactionEntityManagerMetadatas.length > 0) {\n argsWithInjectedTransactionManagerAndRepositories = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(args));\n // replace method params with injection of transactionEntityManager\n transactionEntityManagerMetadatas.forEach(function (metadata) {\n argsWithInjectedTransactionManagerAndRepositories.splice(metadata.index, 0, entityManager);\n });\n }\n else if (transactionRepositoryMetadatas.length === 0) { // otherwise if there's no transaction repositories in use, inject it as a first parameter\n argsWithInjectedTransactionManagerAndRepositories = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([entityManager], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(args));\n }\n else {\n argsWithInjectedTransactionManagerAndRepositories = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(args));\n }\n // for every usage of @TransactionRepository decorator\n transactionRepositoryMetadatas.forEach(function (metadata) {\n var repositoryInstance;\n // detect type of the repository and get instance from transaction entity manager\n switch (metadata.repositoryType) {\n case ___WEBPACK_IMPORTED_MODULE_1__[\"Repository\"]:\n repositoryInstance = entityManager.getRepository(metadata.entityType);\n break;\n case ___WEBPACK_IMPORTED_MODULE_1__[\"MongoRepository\"]:\n repositoryInstance = entityManager.getMongoRepository(metadata.entityType);\n break;\n case ___WEBPACK_IMPORTED_MODULE_1__[\"TreeRepository\"]:\n repositoryInstance = entityManager.getTreeRepository(metadata.entityType);\n break;\n // if not the TypeORM's ones, there must be custom repository classes\n default:\n repositoryInstance = entityManager.getCustomRepository(metadata.repositoryType);\n }\n // replace method param with injection of repository instance\n argsWithInjectedTransactionManagerAndRepositories.splice(metadata.index, 0, repositoryInstance);\n });\n return originalMethod.apply(_this, argsWithInjectedTransactionManagerAndRepositories);\n };\n if (isolationLevel) {\n return Object(___WEBPACK_IMPORTED_MODULE_1__[\"getConnection\"])(connectionName).manager.transaction(isolationLevel, transactionCallback);\n }\n else {\n return Object(___WEBPACK_IMPORTED_MODULE_1__[\"getConnection\"])(connectionName).manager.transaction(transactionCallback);\n }\n };\n };\n}\n\n//# sourceMappingURL=Transaction.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/transaction/Transaction.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/transaction/TransactionManager.js":
/*!**********************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/transaction/TransactionManager.js ***!
\**********************************************************************************/
/*! exports provided: TransactionManager */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TransactionManager\", function() { return TransactionManager; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * Injects transaction's entity manager into the method wrapped with @Transaction decorator.\n */\nfunction TransactionManager() {\n return function (object, methodName, index) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().transactionEntityManagers.push({\n target: object.constructor,\n methodName: methodName,\n index: index,\n });\n };\n}\n\n//# sourceMappingURL=TransactionManager.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/transaction/TransactionManager.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/transaction/TransactionRepository.js":
/*!*************************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/transaction/TransactionRepository.js ***!
\*************************************************************************************/
/*! exports provided: TransactionRepository */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TransactionRepository\", function() { return TransactionRepository; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n/* harmony import */ var _error_CannotReflectMethodParameterTypeError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../error/CannotReflectMethodParameterTypeError */ \"./node_modules/typeorm/browser/error/CannotReflectMethodParameterTypeError.js\");\n\n\n/**\n * Injects transaction's repository into the method wrapped with @Transaction decorator.\n */\nfunction TransactionRepository(entityType) {\n return function (object, methodName, index) {\n // get repository type\n var repositoryType;\n try {\n repositoryType = Reflect.getOwnMetadata(\"design:paramtypes\", object, methodName)[index];\n }\n catch (err) {\n throw new _error_CannotReflectMethodParameterTypeError__WEBPACK_IMPORTED_MODULE_1__[\"CannotReflectMethodParameterTypeError\"](object.constructor, methodName);\n }\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().transactionRepositories.push({\n target: object.constructor,\n methodName: methodName,\n index: index,\n repositoryType: repositoryType,\n entityType: entityType,\n });\n };\n}\n\n//# sourceMappingURL=TransactionRepository.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/transaction/TransactionRepository.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/tree/Tree.js":
/*!*************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/tree/Tree.js ***!
\*************************************************************/
/*! exports provided: Tree */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Tree\", function() { return Tree; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * Marks entity to work like a tree.\n * Tree pattern that will be used for the tree entity should be specified.\n * @TreeParent decorator must be used in tree entities.\n * TreeRepository can be used to manipulate with tree entities.\n */\nfunction Tree(type, options) {\n return function (target) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().trees.push({\n target: target,\n type: type,\n options: type === \"closure-table\" ? options : undefined\n });\n };\n}\n\n//# sourceMappingURL=Tree.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/tree/Tree.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/tree/TreeChildren.js":
/*!*********************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/tree/TreeChildren.js ***!
\*********************************************************************/
/*! exports provided: TreeChildren */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TreeChildren\", function() { return TreeChildren; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * Marks a entity property as a children of the tree.\n * \"Tree children\" will contain all children (bind) of this entity.\n */\nfunction TreeChildren(options) {\n return function (object, propertyName) {\n if (!options)\n options = {};\n // now try to determine it its lazy relation\n var reflectedType = Reflect && Reflect.getMetadata ? Reflect.getMetadata(\"design:type\", object, propertyName) : undefined;\n var isLazy = (reflectedType && typeof reflectedType.name === \"string\" && reflectedType.name.toLowerCase() === \"promise\") || false;\n // add one-to-many relation for this\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().relations.push({\n isTreeChildren: true,\n target: object.constructor,\n propertyName: propertyName,\n isLazy: isLazy,\n relationType: \"one-to-many\",\n type: function () { return object.constructor; },\n options: options\n });\n };\n}\n\n//# sourceMappingURL=TreeChildren.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/tree/TreeChildren.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/tree/TreeLevelColumn.js":
/*!************************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/tree/TreeLevelColumn.js ***!
\************************************************************************/
/*! exports provided: TreeLevelColumn */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TreeLevelColumn\", function() { return TreeLevelColumn; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * Creates a \"level\"/\"length\" column to the table that holds a closure table.\n */\nfunction TreeLevelColumn() {\n return function (object, propertyName) {\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().columns.push({\n target: object.constructor,\n propertyName: propertyName,\n mode: \"treeLevel\",\n options: {}\n });\n };\n}\n\n//# sourceMappingURL=TreeLevelColumn.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/tree/TreeLevelColumn.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/decorator/tree/TreeParent.js":
/*!*******************************************************************!*\
!*** ./node_modules/typeorm/browser/decorator/tree/TreeParent.js ***!
\*******************************************************************/
/*! exports provided: TreeParent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TreeParent\", function() { return TreeParent; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ */ \"./node_modules/typeorm/browser/index.js\");\n\n/**\n * Marks a entity property as a parent of the tree.\n * \"Tree parent\" indicates who owns (is a parent) of this entity in tree structure.\n */\nfunction TreeParent() {\n return function (object, propertyName) {\n // now try to determine it its lazy relation\n var reflectedType = Reflect && Reflect.getMetadata ? Reflect.getMetadata(\"design:type\", object, propertyName) : undefined;\n var isLazy = (reflectedType && typeof reflectedType.name === \"string\" && reflectedType.name.toLowerCase() === \"promise\") || false;\n Object(___WEBPACK_IMPORTED_MODULE_0__[\"getMetadataArgsStorage\"])().relations.push({\n isTreeParent: true,\n target: object.constructor,\n propertyName: propertyName,\n isLazy: isLazy,\n relationType: \"many-to-one\",\n type: function () { return object.constructor; },\n options: {}\n });\n };\n}\n\n//# sourceMappingURL=TreeParent.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/decorator/tree/TreeParent.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/DriverFactory.js":
/*!**************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/DriverFactory.js ***!
\**************************************************************/
/*! exports provided: DriverFactory */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DriverFactory\", function() { return DriverFactory; });\n/* harmony import */ var _error_MissingDriverError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../error/MissingDriverError */ \"./node_modules/typeorm/browser/error/MissingDriverError.js\");\n/* harmony import */ var _cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cockroachdb/CockroachDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _cordova_CordovaDriver__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cordova/CordovaDriver */ \"./node_modules/typeorm/browser/driver/cordova/CordovaDriver.js\");\n/* harmony import */ var _react_native_ReactNativeDriver__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./react-native/ReactNativeDriver */ \"./node_modules/typeorm/browser/driver/react-native/ReactNativeDriver.js\");\n/* harmony import */ var _nativescript_NativescriptDriver__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./nativescript/NativescriptDriver */ \"./node_modules/typeorm/browser/driver/nativescript/NativescriptDriver.js\");\n/* harmony import */ var _sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./sqljs/SqljsDriver */ \"./node_modules/typeorm/browser/driver/sqljs/SqljsDriver.js\");\n/* harmony import */ var _expo_ExpoDriver__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./expo/ExpoDriver */ \"./node_modules/typeorm/browser/driver/expo/ExpoDriver.js\");\n/* harmony import */ var _aurora_data_api_pg_AuroraDataApiPostgresDriver__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./aurora-data-api-pg/AuroraDataApiPostgresDriver */ \"./node_modules/typeorm/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Helps to create drivers.\n */\nvar DriverFactory = /** @class */ (function () {\n function DriverFactory() {\n }\n /**\n * Creates a new driver depend on a given connection's driver type.\n */\n DriverFactory.prototype.create = function (connection) {\n var type = connection.options.type;\n switch (type) {\n case \"mysql\":\n return new _cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"](connection);\n case \"postgres\":\n return new _cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"](connection);\n case \"cockroachdb\":\n return new _cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"CockroachDriver\"](connection);\n case \"sap\":\n return new _cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SapDriver\"](connection);\n case \"mariadb\":\n return new _cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"](connection);\n case \"sqlite\":\n return new _cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqliteDriver\"](connection);\n case \"better-sqlite3\":\n return new _cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"BetterSqlite3Driver\"](connection);\n case \"cordova\":\n return new _cordova_CordovaDriver__WEBPACK_IMPORTED_MODULE_2__[\"CordovaDriver\"](connection);\n case \"nativescript\":\n return new _nativescript_NativescriptDriver__WEBPACK_IMPORTED_MODULE_4__[\"NativescriptDriver\"](connection);\n case \"react-native\":\n return new _react_native_ReactNativeDriver__WEBPACK_IMPORTED_MODULE_3__[\"ReactNativeDriver\"](connection);\n case \"sqljs\":\n return new _sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_5__[\"SqljsDriver\"](connection);\n case \"oracle\":\n return new _cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"](connection);\n case \"mssql\":\n return new _cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"](connection);\n case \"mongodb\":\n return new _cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MongoDriver\"](connection);\n case \"expo\":\n return new _expo_ExpoDriver__WEBPACK_IMPORTED_MODULE_6__[\"ExpoDriver\"](connection);\n case \"aurora-data-api\":\n return new _cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"](connection);\n case \"aurora-data-api-pg\":\n return new _aurora_data_api_pg_AuroraDataApiPostgresDriver__WEBPACK_IMPORTED_MODULE_7__[\"AuroraDataApiPostgresDriver\"](connection);\n default:\n throw new _error_MissingDriverError__WEBPACK_IMPORTED_MODULE_0__[\"MissingDriverError\"](type);\n }\n };\n return DriverFactory;\n}());\n\n\n//# sourceMappingURL=DriverFactory.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/DriverFactory.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/DriverUtils.js":
/*!************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/DriverUtils.js ***!
\************************************************************/
/*! exports provided: DriverUtils */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DriverUtils\", function() { return DriverUtils; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_StringUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/StringUtils */ \"./node_modules/typeorm/browser/util/StringUtils.js\");\n\n\n/**\n * Common driver utility functions.\n */\nvar DriverUtils = /** @class */ (function () {\n function DriverUtils() {\n }\n // -------------------------------------------------------------------------\n // Public Static Methods\n // -------------------------------------------------------------------------\n /**\n * Normalizes and builds a new driver options.\n * Extracts settings from connection url and sets to a new options object.\n */\n DriverUtils.buildDriverOptions = function (options, buildOptions) {\n var e_1, _a;\n if (options.url) {\n var urlDriverOptions = this.parseConnectionUrl(options.url);\n if (buildOptions && buildOptions.useSid && urlDriverOptions.database) {\n urlDriverOptions.sid = urlDriverOptions.database;\n }\n try {\n for (var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(Object.keys(urlDriverOptions)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (typeof urlDriverOptions[key] === \"undefined\") {\n delete urlDriverOptions[key];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return Object.assign({}, options, urlDriverOptions);\n }\n return Object.assign({}, options);\n };\n /**\n * buildDriverOptions for MongodDB only to support replica set\n */\n DriverUtils.buildMongoDBDriverOptions = function (options, buildOptions) {\n var e_2, _a;\n if (options.url) {\n var urlDriverOptions = this.parseMongoDBConnectionUrl(options.url);\n if (buildOptions && buildOptions.useSid && urlDriverOptions.database) {\n urlDriverOptions.sid = urlDriverOptions.database;\n }\n try {\n for (var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(Object.keys(urlDriverOptions)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (typeof urlDriverOptions[key] === \"undefined\") {\n delete urlDriverOptions[key];\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return Object.assign({}, options, urlDriverOptions);\n }\n return Object.assign({}, options);\n };\n /**\n * Builds column alias from given alias name and column name.\n *\n * If alias length is greater than the limit (if any) allowed by the current\n * driver, replaces it with a hashed string.\n *\n * @param driver Current `Driver`.\n * @param alias Alias part.\n * @param column Name of the column to be concatened to `alias`.\n *\n * @return An alias allowing to select/transform the target `column`.\n */\n DriverUtils.buildColumnAlias = function (_a, alias, column) {\n var maxAliasLength = _a.maxAliasLength;\n var columnAliasName = alias + \"_\" + column;\n if (maxAliasLength && maxAliasLength > 0 && columnAliasName.length > maxAliasLength) {\n return Object(_util_StringUtils__WEBPACK_IMPORTED_MODULE_1__[\"hash\"])(columnAliasName, { length: maxAliasLength });\n }\n return columnAliasName;\n };\n // -------------------------------------------------------------------------\n // Private Static Methods\n // -------------------------------------------------------------------------\n /**\n * Extracts connection data from the connection url.\n */\n DriverUtils.parseConnectionUrl = function (url) {\n var type = url.split(\":\")[0];\n var firstSlashes = url.indexOf(\"//\");\n var preBase = url.substr(firstSlashes + 2);\n var secondSlash = preBase.indexOf(\"/\");\n var base = (secondSlash !== -1) ? preBase.substr(0, secondSlash) : preBase;\n var afterBase = (secondSlash !== -1) ? preBase.substr(secondSlash + 1) : undefined;\n // remove mongodb query params\n if (afterBase && afterBase.indexOf(\"?\") !== -1) {\n afterBase = afterBase.substr(0, afterBase.indexOf(\"?\"));\n }\n var lastAtSign = base.lastIndexOf(\"@\");\n var usernameAndPassword = base.substr(0, lastAtSign);\n var hostAndPort = base.substr(lastAtSign + 1);\n var username = usernameAndPassword;\n var password = \"\";\n var firstColon = usernameAndPassword.indexOf(\":\");\n if (firstColon !== -1) {\n username = usernameAndPassword.substr(0, firstColon);\n password = usernameAndPassword.substr(firstColon + 1);\n }\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(hostAndPort.split(\":\"), 2), host = _a[0], port = _a[1];\n return {\n type: type,\n host: host,\n username: decodeURIComponent(username),\n password: decodeURIComponent(password),\n port: port ? parseInt(port) : undefined,\n database: afterBase || undefined\n };\n };\n /**\n * Extracts connection data from the connection url for MongoDB to support replica set.\n */\n DriverUtils.parseMongoDBConnectionUrl = function (url) {\n var _a;\n var type = url.split(\":\")[0];\n var firstSlashes = url.indexOf(\"//\");\n var preBase = url.substr(firstSlashes + 2);\n var secondSlash = preBase.indexOf(\"/\");\n var base = (secondSlash !== -1) ? preBase.substr(0, secondSlash) : preBase;\n var afterBase = (secondSlash !== -1) ? preBase.substr(secondSlash + 1) : undefined;\n var afterQuestionMark = \"\";\n var host = undefined;\n var port = undefined;\n var hostReplicaSet = undefined;\n var replicaSet = undefined;\n // remove mongodb query params\n if (afterBase && afterBase.indexOf(\"?\") !== -1) {\n // split params to get replica set\n afterQuestionMark = afterBase.substr((afterBase.indexOf(\"?\") + 1), afterBase.length);\n replicaSet = afterQuestionMark.split(\"=\")[1];\n afterBase = afterBase.substr(0, afterBase.indexOf(\"?\"));\n }\n var lastAtSign = base.lastIndexOf(\"@\");\n var usernameAndPassword = base.substr(0, lastAtSign);\n var hostAndPort = base.substr(lastAtSign + 1);\n var username = usernameAndPassword;\n var password = \"\";\n var firstColon = usernameAndPassword.indexOf(\":\");\n if (firstColon !== -1) {\n username = usernameAndPassword.substr(0, firstColon);\n password = usernameAndPassword.substr(firstColon + 1);\n }\n if (replicaSet) {\n hostReplicaSet = hostAndPort;\n }\n else {\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(hostAndPort.split(\":\"), 2), host = _a[0], port = _a[1];\n }\n return {\n type: type,\n host: host,\n hostReplicaSet: hostReplicaSet,\n username: decodeURIComponent(username),\n password: decodeURIComponent(password),\n port: port ? parseInt(port) : undefined,\n database: afterBase || undefined,\n replicaSet: replicaSet || undefined\n };\n };\n return DriverUtils;\n}());\n\n\n//# sourceMappingURL=DriverUtils.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/DriverUtils.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/Query.js":
/*!******************************************************!*\
!*** ./node_modules/typeorm/browser/driver/Query.js ***!
\******************************************************/
/*! exports provided: Query */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Query\", function() { return Query; });\n/**\n * This class stores query and its parameters\n */\nvar Query = /** @class */ (function () {\n function Query(query, parameters) {\n this.query = query;\n this.parameters = parameters;\n }\n return Query;\n}());\n\n\n//# sourceMappingURL=Query.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/Query.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/SqlInMemory.js":
/*!************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/SqlInMemory.js ***!
\************************************************************/
/*! exports provided: SqlInMemory */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SqlInMemory\", function() { return SqlInMemory; });\n/**\n * This class stores up and down queries needed for migrations functionality.\n */\nvar SqlInMemory = /** @class */ (function () {\n function SqlInMemory() {\n this.upQueries = [];\n this.downQueries = [];\n }\n return SqlInMemory;\n}());\n\n\n//# sourceMappingURL=SqlInMemory.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/SqlInMemory.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js":
/*!***********************************************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js ***!
\***********************************************************************************************/
/*! exports provided: AuroraDataApiPostgresDriver */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AuroraDataApiPostgresDriver\", function() { return AuroraDataApiPostgresDriver; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../postgres/PostgresDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../platform/PlatformTools */ \"./node_modules/typeorm/browser/platform/BrowserPlatformTools.js\");\n/* harmony import */ var _aurora_data_api_pg_AuroraDataApiPostgresQueryRunner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../aurora-data-api-pg/AuroraDataApiPostgresQueryRunner */ \"./node_modules/typeorm/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js\");\n/* harmony import */ var _util_ApplyValueTransformers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/ApplyValueTransformers */ \"./node_modules/typeorm/browser/util/ApplyValueTransformers.js\");\n\n\n\n\n\nvar PostgresWrapper = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(PostgresWrapper, _super);\n function PostgresWrapper() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return PostgresWrapper;\n}(_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"]));\nvar AuroraDataApiPostgresDriver = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AuroraDataApiPostgresDriver, _super);\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function AuroraDataApiPostgresDriver(connection) {\n var _this = _super.call(this) || this;\n _this.connection = connection;\n _this.options = connection.options;\n _this.isReplicated = false;\n // load data-api package\n _this.loadDependencies();\n _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);\n return _this;\n }\n // -------------------------------------------------------------------------\n // Public Implemented Methods\n // -------------------------------------------------------------------------\n /**\n * Performs connection to the database.\n * Based on pooling options, it can either create connection immediately,\n * either create a pool and create connection when needed.\n */\n AuroraDataApiPostgresDriver.prototype.connect = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/];\n });\n });\n };\n /**\n * Closes connection with database.\n */\n AuroraDataApiPostgresDriver.prototype.disconnect = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/];\n });\n });\n };\n /**\n * Creates a query runner used to execute database queries.\n */\n AuroraDataApiPostgresDriver.prototype.createQueryRunner = function (mode) {\n var _this = this;\n return new _aurora_data_api_pg_AuroraDataApiPostgresQueryRunner__WEBPACK_IMPORTED_MODULE_3__[\"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);\n };\n /**\n * Prepares given value to a value to be persisted, based on its column type and metadata.\n */\n AuroraDataApiPostgresDriver.prototype.preparePersistentValue = function (value, columnMetadata) {\n if (this.options.formatOptions && this.options.formatOptions.castParameters === false) {\n return _super.prototype.preparePersistentValue.call(this, value, columnMetadata);\n }\n if (columnMetadata.transformer)\n value = _util_ApplyValueTransformers__WEBPACK_IMPORTED_MODULE_4__[\"ApplyValueTransformers\"].transformTo(columnMetadata.transformer, value);\n return this.client.preparePersistentValue(value, columnMetadata);\n };\n /**\n * Prepares given value to a value to be persisted, based on its column type and metadata.\n */\n AuroraDataApiPostgresDriver.prototype.prepareHydratedValue = function (value, columnMetadata) {\n if (this.options.formatOptions && this.options.formatOptions.castParameters === false) {\n return _super.prototype.prepareHydratedValue.call(this, value, columnMetadata);\n }\n if (columnMetadata.transformer)\n value = _util_ApplyValueTransformers__WEBPACK_IMPORTED_MODULE_4__[\"ApplyValueTransformers\"].transformFrom(columnMetadata.transformer, value);\n return this.client.prepareHydratedValue(value, columnMetadata);\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * If driver dependency is not given explicitly, then try to load it via \"require\".\n */\n AuroraDataApiPostgresDriver.prototype.loadDependencies = function () {\n var pg = _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_2__[\"PlatformTools\"].load(\"typeorm-aurora-data-api-driver\").pg;\n this.DataApiDriver = pg;\n };\n /**\n * Executes given query.\n */\n AuroraDataApiPostgresDriver.prototype.executeQuery = function (connection, query) {\n return this.connection.query(query);\n };\n /**\n * Makes any action after connection (e.g. create extensions in Postgres driver).\n */\n AuroraDataApiPostgresDriver.prototype.afterConnect = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var extensionsMetadata;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.checkMetadataForExtensions()];\n case 1:\n extensionsMetadata = _a.sent();\n if (!extensionsMetadata.hasExtensions) return [3 /*break*/, 3];\n return [4 /*yield*/, this.enableExtensions(extensionsMetadata, this.connection)];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3: return [2 /*return*/, Promise.resolve()];\n }\n });\n });\n };\n return AuroraDataApiPostgresDriver;\n}(PostgresWrapper));\n\n\n//# sourceMappingURL=AuroraDataApiPostgresDriver.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js":
/*!****************************************************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js ***!
\****************************************************************************************************/
/*! exports provided: AuroraDataApiPostgresQueryRunner */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AuroraDataApiPostgresQueryRunner\", function() { return AuroraDataApiPostgresQueryRunner; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _error_QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../error/QueryRunnerAlreadyReleasedError */ \"./node_modules/typeorm/browser/error/QueryRunnerAlreadyReleasedError.js\");\n/* harmony import */ var _error_TransactionAlreadyStartedError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../error/TransactionAlreadyStartedError */ \"./node_modules/typeorm/browser/error/TransactionAlreadyStartedError.js\");\n/* harmony import */ var _error_TransactionNotStartedError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../error/TransactionNotStartedError */ \"./node_modules/typeorm/browser/error/TransactionNotStartedError.js\");\n/* harmony import */ var _postgres_PostgresQueryRunner__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../postgres/PostgresQueryRunner */ \"./node_modules/typeorm/browser/driver/postgres/PostgresQueryRunner.js\");\n/* harmony import */ var _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../subscriber/BroadcasterResult */ \"./node_modules/typeorm/browser/subscriber/BroadcasterResult.js\");\n\n\n\n\n\n\nvar PostgresQueryRunnerWrapper = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(PostgresQueryRunnerWrapper, _super);\n function PostgresQueryRunnerWrapper(driver, mode) {\n return _super.call(this, driver, mode) || this;\n }\n return PostgresQueryRunnerWrapper;\n}(_postgres_PostgresQueryRunner__WEBPACK_IMPORTED_MODULE_4__[\"PostgresQueryRunner\"]));\n/**\n * Runs queries on a single postgres database connection.\n */\nvar AuroraDataApiPostgresQueryRunner = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AuroraDataApiPostgresQueryRunner, _super);\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function AuroraDataApiPostgresQueryRunner(driver, client, mode) {\n var _this = _super.call(this, driver, mode) || this;\n _this.client = client;\n return _this;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Creates/uses database connection from the connection pool to perform further operations.\n * Returns obtained database connection.\n */\n AuroraDataApiPostgresQueryRunner.prototype.connect = function () {\n var _this = this;\n if (this.databaseConnection)\n return Promise.resolve(this.databaseConnection);\n if (this.databaseConnectionPromise)\n return this.databaseConnectionPromise;\n if (this.mode === \"slave\" && this.driver.isReplicated) {\n this.databaseConnectionPromise = this.driver.obtainSlaveConnection().then(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), connection = _b[0], release = _b[1];\n _this.driver.connectedQueryRunners.push(_this);\n _this.databaseConnection = connection;\n _this.releaseCallback = release;\n return _this.databaseConnection;\n });\n }\n else { // master\n this.databaseConnectionPromise = this.driver.obtainMasterConnection().then(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), connection = _b[0], release = _b[1];\n _this.driver.connectedQueryRunners.push(_this);\n _this.databaseConnection = connection;\n _this.releaseCallback = release;\n return _this.databaseConnection;\n });\n }\n return this.databaseConnectionPromise;\n };\n /**\n * Starts transaction on the current connection.\n */\n AuroraDataApiPostgresQueryRunner.prototype.startTransaction = function (isolationLevel) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var beforeBroadcastResult, afterBroadcastResult;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.isTransactionActive)\n throw new _error_TransactionAlreadyStartedError__WEBPACK_IMPORTED_MODULE_2__[\"TransactionAlreadyStartedError\"]();\n beforeBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_5__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult);\n if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n this.isTransactionActive = true;\n return [4 /*yield*/, this.client.startTransaction()];\n case 3:\n _a.sent();\n afterBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_5__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult);\n if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];\n return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Commits transaction.\n * Error will be thrown if transaction was not started.\n */\n AuroraDataApiPostgresQueryRunner.prototype.commitTransaction = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var beforeBroadcastResult, afterBroadcastResult;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.isTransactionActive)\n throw new _error_TransactionNotStartedError__WEBPACK_IMPORTED_MODULE_3__[\"TransactionNotStartedError\"]();\n beforeBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_5__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastBeforeTransactionCommitEvent(beforeBroadcastResult);\n if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [4 /*yield*/, this.client.commitTransaction()];\n case 3:\n _a.sent();\n this.isTransactionActive = false;\n afterBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_5__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult);\n if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];\n return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Rollbacks transaction.\n * Error will be thrown if transaction was not started.\n */\n AuroraDataApiPostgresQueryRunner.prototype.rollbackTransaction = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var beforeBroadcastResult, afterBroadcastResult;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.isTransactionActive)\n throw new _error_TransactionNotStartedError__WEBPACK_IMPORTED_MODULE_3__[\"TransactionNotStartedError\"]();\n beforeBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_5__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult);\n if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [4 /*yield*/, this.client.rollbackTransaction()];\n case 3:\n _a.sent();\n afterBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_5__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult);\n if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];\n return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Executes a given SQL query.\n */\n AuroraDataApiPostgresQueryRunner.prototype.query = function (query, parameters) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var result;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.isReleased)\n throw new _error_QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_1__[\"QueryRunnerAlreadyReleasedError\"]();\n return [4 /*yield*/, this.client.query(query, parameters)];\n case 1:\n result = _a.sent();\n if (result.records) {\n return [2 /*return*/, result.records];\n }\n return [2 /*return*/, result];\n }\n });\n });\n };\n return AuroraDataApiPostgresQueryRunner;\n}(PostgresQueryRunnerWrapper));\n\n\n//# sourceMappingURL=AuroraDataApiPostgresQueryRunner.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/cordova/CordovaDriver.js":
/*!**********************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/cordova/CordovaDriver.js ***!
\**********************************************************************/
/*! exports provided: CordovaDriver */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CordovaDriver\", function() { return CordovaDriver; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../sqlite-abstract/AbstractSqliteDriver */ \"./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteDriver.js\");\n/* harmony import */ var _CordovaQueryRunner__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CordovaQueryRunner */ \"./node_modules/typeorm/browser/driver/cordova/CordovaQueryRunner.js\");\n/* harmony import */ var _error_DriverOptionNotSetError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../error/DriverOptionNotSetError */ \"./node_modules/typeorm/browser/error/DriverOptionNotSetError.js\");\n/* harmony import */ var _error_DriverPackageNotInstalledError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../error/DriverPackageNotInstalledError */ \"./node_modules/typeorm/browser/error/DriverPackageNotInstalledError.js\");\n\n\n\n\n\nvar CordovaDriver = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CordovaDriver, _super);\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function CordovaDriver(connection) {\n var _this = _super.call(this, connection) || this;\n // this.connection = connection;\n // this.options = connection.options as CordovaConnectionOptions;\n _this.database = _this.options.database;\n // validate options to make sure everything is set\n if (!_this.options.database)\n throw new _error_DriverOptionNotSetError__WEBPACK_IMPORTED_MODULE_3__[\"DriverOptionNotSetError\"](\"database\");\n if (!_this.options.location)\n throw new _error_DriverOptionNotSetError__WEBPACK_IMPORTED_MODULE_3__[\"DriverOptionNotSetError\"](\"location\");\n // load sqlite package\n _this.loadDependencies();\n return _this;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Closes connection with database.\n */\n CordovaDriver.prototype.disconnect = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, new Promise(function (ok, fail) {\n _this.queryRunner = undefined;\n _this.databaseConnection.close(ok, fail);\n })];\n });\n });\n };\n /**\n * Creates a query runner used to execute database queries.\n */\n CordovaDriver.prototype.createQueryRunner = function (mode) {\n if (!this.queryRunner)\n this.queryRunner = new _CordovaQueryRunner__WEBPACK_IMPORTED_MODULE_2__[\"CordovaQueryRunner\"](this);\n return this.queryRunner;\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Creates connection with the database.\n */\n CordovaDriver.prototype.createDatabaseConnection = function () {\n var _this = this;\n return new Promise(function (ok, fail) {\n var options = Object.assign({}, {\n name: _this.options.database,\n location: _this.options.location,\n }, _this.options.extra || {});\n _this.sqlite.openDatabase(options, function (db) {\n var databaseConnection = db;\n // we need to enable foreign keys in sqlite to make sure all foreign key related features\n // working properly. this also makes onDelete to work with sqlite.\n databaseConnection.executeSql(\"PRAGMA foreign_keys = ON;\", [], function (result) {\n ok(databaseConnection);\n }, function (error) {\n fail(error);\n });\n }, function (error) {\n fail(error);\n });\n });\n };\n /**\n * If driver dependency is not given explicitly, then try to load it via \"require\".\n */\n CordovaDriver.prototype.loadDependencies = function () {\n try {\n this.sqlite = window.sqlitePlugin;\n }\n catch (e) {\n throw new _error_DriverPackageNotInstalledError__WEBPACK_IMPORTED_MODULE_4__[\"DriverPackageNotInstalledError\"](\"Cordova-SQLite\", \"cordova-sqlite-storage\");\n }\n };\n return CordovaDriver;\n}(_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_1__[\"AbstractSqliteDriver\"]));\n\n\n//# sourceMappingURL=CordovaDriver.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/cordova/CordovaDriver.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/cordova/CordovaQueryRunner.js":
/*!***************************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/cordova/CordovaQueryRunner.js ***!
\***************************************************************************/
/*! exports provided: CordovaQueryRunner */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CordovaQueryRunner\", function() { return CordovaQueryRunner; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _error_QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../error/QueryRunnerAlreadyReleasedError */ \"./node_modules/typeorm/browser/error/QueryRunnerAlreadyReleasedError.js\");\n/* harmony import */ var _error_QueryFailedError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../error/QueryFailedError */ \"./node_modules/typeorm/browser/error/QueryFailedError.js\");\n/* harmony import */ var _sqlite_abstract_AbstractSqliteQueryRunner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../sqlite-abstract/AbstractSqliteQueryRunner */ \"./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js\");\n/* harmony import */ var _subscriber_Broadcaster__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../subscriber/Broadcaster */ \"./node_modules/typeorm/browser/subscriber/Broadcaster.js\");\n\n\n\n\n\n/**\n * Runs queries on a single sqlite database connection.\n */\nvar CordovaQueryRunner = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CordovaQueryRunner, _super);\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function CordovaQueryRunner(driver) {\n var _this = _super.call(this) || this;\n _this.driver = driver;\n _this.connection = driver.connection;\n _this.broadcaster = new _subscriber_Broadcaster__WEBPACK_IMPORTED_MODULE_4__[\"Broadcaster\"](_this);\n return _this;\n }\n /**\n * Executes a given SQL query.\n */\n CordovaQueryRunner.prototype.query = function (query, parameters) {\n var _this = this;\n if (this.isReleased)\n throw new _error_QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_1__[\"QueryRunnerAlreadyReleasedError\"]();\n return new Promise(function (ok, fail) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n var databaseConnection, queryStartTime;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.connect()];\n case 1:\n databaseConnection = _a.sent();\n this.driver.connection.logger.logQuery(query, parameters, this);\n queryStartTime = +new Date();\n databaseConnection.executeSql(query, parameters, function (result) {\n // log slow queries if maxQueryExecution time is set\n var maxQueryExecutionTime = _this.driver.connection.options.maxQueryExecutionTime;\n var queryEndTime = +new Date();\n var queryExecutionTime = queryEndTime - queryStartTime;\n if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)\n _this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, _this);\n if (query.substr(0, 11) === \"INSERT INTO\") {\n ok(result.insertId);\n }\n else {\n var resultSet = [];\n for (var i = 0; i < result.rows.length; i++) {\n resultSet.push(result.rows.item(i));\n }\n ok(resultSet);\n }\n }, function (err) {\n _this.driver.connection.logger.logQueryError(err, query, parameters, _this);\n fail(new _error_QueryFailedError__WEBPACK_IMPORTED_MODULE_2__[\"QueryFailedError\"](query, parameters, err));\n });\n return [2 /*return*/];\n }\n });\n }); });\n };\n /**\n * Insert a new row with given values into the given table.\n * Returns value of the generated column if given and generate column exist in the table.\n // todo: implement new syntax\n async insert(tableName: string, keyValues: ObjectLiteral): Promise<InsertResult> {\n const keys = Object.keys(keyValues);\n const columns = keys.map(key => `\"${key}\"`).join(\", \");\n const values = keys.map(key => \"?\").join(\",\");\n const generatedColumns = this.connection.hasMetadata(tableName) ? this.connection.getMetadata(tableName).generatedColumns : [];\n const sql = columns.length > 0 ? (`INSERT INTO \"${tableName}\"(${columns}) VALUES (${values})`) : `INSERT INTO \"${tableName}\" DEFAULT VALUES`;\n const parameters = keys.map(key => keyValues[key]);\n\n return new Promise<InsertResult>(async (ok, fail) => {\n this.driver.connection.logger.logQuery(sql, parameters, this);\n const __this = this;\n const databaseConnection = await this.connect();\n databaseConnection.executeSql(sql, parameters, (resultSet: any) => {\n const generatedMap = generatedColumns.reduce((map, generatedColumn) => {\n const value = generatedColumn.isPrimary && generatedColumn.generationStrategy === \"increment\" && resultSet.insertId ? resultSet.insertId : keyValues[generatedColumn.databaseName];\n if (!value) return map;\n return OrmUtils.mergeDeep(map, generatedColumn.createValueMap(value));\n }, {} as ObjectLiteral);\n\n ok({\n result: undefined,\n generatedMap: Object.keys(generatedMap).length > 0 ? generatedMap : undefined\n });\n }, (err: any) => {\n __this.driver.connection.logger.logQueryError(err, sql, parameters, this);\n fail(err);\n });\n });\n }*/\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Parametrizes given object of values. Used to create column=value queries.\n */\n CordovaQueryRunner.prototype.parametrize = function (objectLiteral, startIndex) {\n if (startIndex === void 0) { startIndex = 0; }\n return Object.keys(objectLiteral).map(function (key, index) { return \"\\\"\" + key + \"\\\"\" + \"=?\"; });\n };\n return CordovaQueryRunner;\n}(_sqlite_abstract_AbstractSqliteQueryRunner__WEBPACK_IMPORTED_MODULE_3__[\"AbstractSqliteQueryRunner\"]));\n\n\n//# sourceMappingURL=CordovaQueryRunner.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/cordova/CordovaQueryRunner.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/expo/ExpoDriver.js":
/*!****************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/expo/ExpoDriver.js ***!
\****************************************************************/
/*! exports provided: ExpoDriver */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ExpoDriver\", function() { return ExpoDriver; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../sqlite-abstract/AbstractSqliteDriver */ \"./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteDriver.js\");\n/* harmony import */ var _ExpoQueryRunner__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ExpoQueryRunner */ \"./node_modules/typeorm/browser/driver/expo/ExpoQueryRunner.js\");\n/* harmony import */ var _error_DriverOptionNotSetError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../error/DriverOptionNotSetError */ \"./node_modules/typeorm/browser/error/DriverOptionNotSetError.js\");\n\n\n\n\nvar ExpoDriver = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ExpoDriver, _super);\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function ExpoDriver(connection) {\n var _this = _super.call(this, connection) || this;\n _this.database = _this.options.database;\n // validate options to make sure everything is set\n if (!_this.options.database)\n throw new _error_DriverOptionNotSetError__WEBPACK_IMPORTED_MODULE_3__[\"DriverOptionNotSetError\"](\"database\");\n if (!_this.options.driver)\n throw new _error_DriverOptionNotSetError__WEBPACK_IMPORTED_MODULE_3__[\"DriverOptionNotSetError\"](\"driver\");\n // load sqlite package\n _this.sqlite = _this.options.driver;\n return _this;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Closes connection with database.\n */\n ExpoDriver.prototype.disconnect = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, new Promise(function (ok, fail) {\n try {\n _this.queryRunner = undefined;\n _this.databaseConnection._db.close();\n _this.databaseConnection = undefined;\n ok();\n }\n catch (error) {\n fail(error);\n }\n })];\n });\n });\n };\n /**\n * Creates a query runner used to execute database queries.\n */\n ExpoDriver.prototype.createQueryRunner = function (mode) {\n if (!this.queryRunner)\n this.queryRunner = new _ExpoQueryRunner__WEBPACK_IMPORTED_MODULE_2__[\"ExpoQueryRunner\"](this);\n return this.queryRunner;\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Creates connection with the database.\n */\n ExpoDriver.prototype.createDatabaseConnection = function () {\n var _this = this;\n return new Promise(function (ok, fail) {\n try {\n var databaseConnection_1 = _this.sqlite.openDatabase(_this.options.database);\n /*\n // we need to enable foreign keys in sqlite to make sure all foreign key related features\n // working properly. this also makes onDelete work with sqlite.\n */\n databaseConnection_1.transaction(function (tsx) {\n tsx.executeSql(\"PRAGMA foreign_keys = ON;\", [], function (t, result) {\n ok(databaseConnection_1);\n }, function (t, err) {\n fail({ transaction: t, error: err });\n });\n }, function (err) {\n fail(err);\n });\n }\n catch (error) {\n fail(error);\n }\n });\n };\n return ExpoDriver;\n}(_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_1__[\"AbstractSqliteDriver\"]));\n\n\n//# sourceMappingURL=ExpoDriver.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/expo/ExpoDriver.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/expo/ExpoQueryRunner.js":
/*!*********************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/expo/ExpoQueryRunner.js ***!
\*********************************************************************/
/*! exports provided: ExpoQueryRunner */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ExpoQueryRunner\", function() { return ExpoQueryRunner; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _error_QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../error/QueryRunnerAlreadyReleasedError */ \"./node_modules/typeorm/browser/error/QueryRunnerAlreadyReleasedError.js\");\n/* harmony import */ var _error_QueryFailedError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../error/QueryFailedError */ \"./node_modules/typeorm/browser/error/QueryFailedError.js\");\n/* harmony import */ var _sqlite_abstract_AbstractSqliteQueryRunner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../sqlite-abstract/AbstractSqliteQueryRunner */ \"./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js\");\n/* harmony import */ var _error_TransactionAlreadyStartedError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../error/TransactionAlreadyStartedError */ \"./node_modules/typeorm/browser/error/TransactionAlreadyStartedError.js\");\n/* harmony import */ var _error_TransactionNotStartedError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../error/TransactionNotStartedError */ \"./node_modules/typeorm/browser/error/TransactionNotStartedError.js\");\n/* harmony import */ var _subscriber_Broadcaster__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../subscriber/Broadcaster */ \"./node_modules/typeorm/browser/subscriber/Broadcaster.js\");\n/* harmony import */ var _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../subscriber/BroadcasterResult */ \"./node_modules/typeorm/browser/subscriber/BroadcasterResult.js\");\n\n\n\n\n\n\n\n\n/**\n * Runs queries on a single sqlite database connection.\n */\nvar ExpoQueryRunner = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ExpoQueryRunner, _super);\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function ExpoQueryRunner(driver) {\n var _this = _super.call(this) || this;\n _this.driver = driver;\n _this.connection = driver.connection;\n _this.broadcaster = new _subscriber_Broadcaster__WEBPACK_IMPORTED_MODULE_6__[\"Broadcaster\"](_this);\n return _this;\n }\n /**\n * Starts transaction. Within Expo, all database operations happen in a\n * transaction context, so issuing a `BEGIN TRANSACTION` command is\n * redundant and will result in the following error:\n *\n * `Error: Error code 1: cannot start a transaction within a transaction`\n *\n * Instead, we keep track of a `Transaction` object in `this.transaction`\n * and continue using the same object until we wish to commit the\n * transaction.\n */\n ExpoQueryRunner.prototype.startTransaction = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var beforeBroadcastResult, afterBroadcastResult;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.isTransactionActive && typeof this.transaction !== \"undefined\")\n throw new _error_TransactionAlreadyStartedError__WEBPACK_IMPORTED_MODULE_4__[\"TransactionAlreadyStartedError\"]();\n beforeBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_7__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult);\n if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n this.isTransactionActive = true;\n afterBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_7__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult);\n if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 4];\n return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Commits transaction.\n * Error will be thrown if transaction was not started.\n * Since Expo will automatically commit the transaction once all the\n * callbacks of the transaction object have been completed, \"committing\" a\n * transaction in this driver's context means that we delete the transaction\n * object and set the stage for the next transaction.\n */\n ExpoQueryRunner.prototype.commitTransaction = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var beforeBroadcastResult, afterBroadcastResult;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.isTransactionActive && typeof this.transaction === \"undefined\")\n throw new _error_TransactionNotStartedError__WEBPACK_IMPORTED_MODULE_5__[\"TransactionNotStartedError\"]();\n beforeBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_7__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastBeforeTransactionCommitEvent(beforeBroadcastResult);\n if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n this.isTransactionActive = false;\n this.transaction = undefined;\n afterBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_7__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult);\n if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 4];\n return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Rollbacks transaction.\n * Error will be thrown if transaction was not started.\n * This method's functionality is identical to `commitTransaction()` because\n * the transaction lifecycle is handled within the Expo transaction object.\n * Issuing separate statements for `COMMIT` or `ROLLBACK` aren't necessary.\n */\n ExpoQueryRunner.prototype.rollbackTransaction = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var beforeBroadcastResult, afterBroadcastResult;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.isTransactionActive && typeof this.transaction === \"undefined\")\n throw new _error_TransactionNotStartedError__WEBPACK_IMPORTED_MODULE_5__[\"TransactionNotStartedError\"]();\n beforeBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_7__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult);\n if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n this.isTransactionActive = false;\n this.transaction = undefined;\n afterBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_7__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult);\n if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 4];\n return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Executes a given SQL query.\n */\n ExpoQueryRunner.prototype.query = function (query, parameters) {\n var _this = this;\n if (this.isReleased)\n throw new _error_QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_1__[\"QueryRunnerAlreadyReleasedError\"]();\n return new Promise(function (ok, fail) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n var databaseConnection, queryStartTime;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.connect()];\n case 1:\n databaseConnection = _a.sent();\n this.driver.connection.logger.logQuery(query, parameters, this);\n queryStartTime = +new Date();\n // All Expo SQL queries are executed in a transaction context\n databaseConnection.transaction(function (transaction) {\n if (typeof _this.transaction === \"undefined\") {\n _this.startTransaction();\n _this.transaction = transaction;\n }\n _this.transaction.executeSql(query, parameters, function (t, result) {\n // log slow queries if maxQueryExecution time is set\n var maxQueryExecutionTime = _this.driver.connection.options.maxQueryExecutionTime;\n var queryEndTime = +new Date();\n var queryExecutionTime = queryEndTime - queryStartTime;\n if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime) {\n _this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, _this);\n }\n // return id of inserted row, if query was insert statement.\n if (query.substr(0, 11) === \"INSERT INTO\") {\n ok(result.insertId);\n }\n else {\n var resultSet = [];\n for (var i = 0; i < result.rows.length; i++) {\n resultSet.push(result.rows.item(i));\n }\n ok(resultSet);\n }\n }, function (t, err) {\n _this.driver.connection.logger.logQueryError(err, query, parameters, _this);\n fail(new _error_QueryFailedError__WEBPACK_IMPORTED_MODULE_2__[\"QueryFailedError\"](query, parameters, err));\n });\n }, function (err) {\n _this.rollbackTransaction();\n }, function () {\n _this.isTransactionActive = false;\n _this.transaction = undefined;\n });\n return [2 /*return*/];\n }\n });\n }); });\n };\n return ExpoQueryRunner;\n}(_sqlite_abstract_AbstractSqliteQueryRunner__WEBPACK_IMPORTED_MODULE_3__[\"AbstractSqliteQueryRunner\"]));\n\n\n//# sourceMappingURL=ExpoQueryRunner.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/expo/ExpoQueryRunner.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/mongodb/typings.js":
/*!****************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/mongodb/typings.js ***!
\****************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../platform/PlatformTools */ \"./node_modules/typeorm/browser/platform/BrowserPlatformTools.js\");\n\n\n//# sourceMappingURL=typings.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/mongodb/typings.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/nativescript/NativescriptDriver.js":
/*!********************************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/nativescript/NativescriptDriver.js ***!
\********************************************************************************/
/*! exports provided: NativescriptDriver */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(Buffer) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NativescriptDriver\", function() { return NativescriptDriver; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../sqlite-abstract/AbstractSqliteDriver */ \"./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteDriver.js\");\n/* harmony import */ var _NativescriptQueryRunner__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NativescriptQueryRunner */ \"./node_modules/typeorm/browser/driver/nativescript/NativescriptQueryRunner.js\");\n/* harmony import */ var _error_DriverOptionNotSetError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../error/DriverOptionNotSetError */ \"./node_modules/typeorm/browser/error/DriverOptionNotSetError.js\");\n/* harmony import */ var _error_DriverPackageNotInstalledError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../error/DriverPackageNotInstalledError */ \"./node_modules/typeorm/browser/error/DriverPackageNotInstalledError.js\");\n\n\n\n\n\n/**\n * Organizes communication with sqlite DBMS within Nativescript.\n */\nvar NativescriptDriver = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(NativescriptDriver, _super);\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function NativescriptDriver(connection) {\n var _this = _super.call(this, connection) || this;\n _this.connection = connection;\n _this.options = connection.options;\n _this.database = _this.options.database;\n _this.driver = _this.options.driver;\n // validate options to make sure everything is set\n if (!_this.options.database) {\n throw new _error_DriverOptionNotSetError__WEBPACK_IMPORTED_MODULE_3__[\"DriverOptionNotSetError\"](\"database\");\n }\n // load sqlite package\n _this.loadDependencies();\n return _this;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Closes connection with database.\n */\n NativescriptDriver.prototype.disconnect = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, new Promise(function (ok, fail) {\n _this.queryRunner = undefined;\n _this.databaseConnection.close().then(ok).catch(fail);\n })];\n });\n });\n };\n /**\n * Creates a query runner used to execute database queries.\n */\n NativescriptDriver.prototype.createQueryRunner = function (mode) {\n if (!this.queryRunner) {\n this.queryRunner = new _NativescriptQueryRunner__WEBPACK_IMPORTED_MODULE_2__[\"NativescriptQueryRunner\"](this);\n }\n return this.queryRunner;\n };\n NativescriptDriver.prototype.normalizeType = function (column) {\n if (column.type === Buffer) {\n return \"blob\";\n }\n return _super.prototype.normalizeType.call(this, column);\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Creates connection with the database.\n */\n NativescriptDriver.prototype.createDatabaseConnection = function () {\n var _this = this;\n return new Promise(function (ok, fail) {\n var options = Object.assign({}, {\n readOnly: _this.options.readOnly,\n key: _this.options.key,\n multithreading: _this.options.multithreading,\n migrate: _this.options.migrate,\n iosFlags: _this.options.iosFlags,\n androidFlags: _this.options.androidFlags,\n }, _this.options.extra || {});\n new _this.sqlite(_this.options.database, options, function (err, db) {\n if (err)\n return fail(err);\n // use object mode to work with TypeORM\n db.resultType(_this.sqlite.RESULTSASOBJECT);\n // we need to enable foreign keys in sqlite to make sure all foreign key related features\n // working properly. this also makes onDelete work with sqlite.\n db.execSQL(\"PRAGMA foreign_keys = ON;\", [], function (err, result) {\n if (err)\n return fail(err);\n // We are all set\n ok(db);\n });\n });\n });\n };\n /**\n * If driver dependency is not given explicitly, then try to load it via \"require\".\n */\n NativescriptDriver.prototype.loadDependencies = function () {\n this.sqlite = this.driver;\n if (!this.driver) {\n throw new _error_DriverPackageNotInstalledError__WEBPACK_IMPORTED_MODULE_4__[\"DriverPackageNotInstalledError\"](\"Nativescript\", \"nativescript-sqlite\");\n }\n };\n return NativescriptDriver;\n}(_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_1__[\"AbstractSqliteDriver\"]));\n\n\n//# sourceMappingURL=NativescriptDriver.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/nativescript/NativescriptDriver.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/nativescript/NativescriptQueryRunner.js":
/*!*************************************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/nativescript/NativescriptQueryRunner.js ***!
\*************************************************************************************/
/*! exports provided: NativescriptQueryRunner */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NativescriptQueryRunner\", function() { return NativescriptQueryRunner; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _error_QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../error/QueryRunnerAlreadyReleasedError */ \"./node_modules/typeorm/browser/error/QueryRunnerAlreadyReleasedError.js\");\n/* harmony import */ var _error_QueryFailedError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../error/QueryFailedError */ \"./node_modules/typeorm/browser/error/QueryFailedError.js\");\n/* harmony import */ var _sqlite_abstract_AbstractSqliteQueryRunner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../sqlite-abstract/AbstractSqliteQueryRunner */ \"./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js\");\n/* harmony import */ var _subscriber_Broadcaster__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../subscriber/Broadcaster */ \"./node_modules/typeorm/browser/subscriber/Broadcaster.js\");\n\n\n\n\n\n/**\n * Runs queries on a single sqlite database connection.\n */\nvar NativescriptQueryRunner = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(NativescriptQueryRunner, _super);\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function NativescriptQueryRunner(driver) {\n var _this = _super.call(this) || this;\n _this.driver = driver;\n _this.connection = driver.connection;\n _this.broadcaster = new _subscriber_Broadcaster__WEBPACK_IMPORTED_MODULE_4__[\"Broadcaster\"](_this);\n return _this;\n }\n /**\n * Executes a given SQL query.\n */\n NativescriptQueryRunner.prototype.query = function (query, parameters) {\n var _this = this;\n if (this.isReleased)\n throw new _error_QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_1__[\"QueryRunnerAlreadyReleasedError\"]();\n var connection = this.driver.connection;\n return new Promise(function (ok, fail) {\n var isInsertQuery = query.substr(0, 11) === \"INSERT INTO\";\n var handler = function (err, result) {\n // log slow queries if maxQueryExecution time is set\n var maxQueryExecutionTime = connection.options.maxQueryExecutionTime;\n var queryEndTime = +new Date();\n var queryExecutionTime = queryEndTime - queryStartTime;\n if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)\n connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);\n if (err) {\n connection.logger.logQueryError(err, query, parameters, this);\n fail(new _error_QueryFailedError__WEBPACK_IMPORTED_MODULE_2__[\"QueryFailedError\"](query, parameters, err));\n }\n else {\n // when isInsertQuery == true, result is the id\n ok(result);\n }\n };\n _this.driver.connection.logger.logQuery(query, parameters, _this);\n var queryStartTime = +new Date();\n _this.connect().then(function (databaseConnection) {\n if (isInsertQuery) {\n databaseConnection.execSQL(query, parameters, handler);\n }\n else {\n databaseConnection.all(query, parameters, handler);\n }\n });\n });\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Parametrizes given object of values. Used to create column=value queries.\n */\n NativescriptQueryRunner.prototype.parametrize = function (objectLiteral, startIndex) {\n if (startIndex === void 0) { startIndex = 0; }\n return Object.keys(objectLiteral).map(function (key, index) { return \"\\\"\" + key + \"\\\"\" + \"=?\"; });\n };\n return NativescriptQueryRunner;\n}(_sqlite_abstract_AbstractSqliteQueryRunner__WEBPACK_IMPORTED_MODULE_3__[\"AbstractSqliteQueryRunner\"]));\n\n\n//# sourceMappingURL=NativescriptQueryRunner.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/nativescript/NativescriptQueryRunner.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/postgres/PostgresQueryRunner.js":
/*!*****************************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/postgres/PostgresQueryRunner.js ***!
\*****************************************************************************/
/*! exports provided: PostgresQueryRunner */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PostgresQueryRunner\", function() { return PostgresQueryRunner; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _error_QueryFailedError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../error/QueryFailedError */ \"./node_modules/typeorm/browser/error/QueryFailedError.js\");\n/* harmony import */ var _error_QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../error/QueryRunnerAlreadyReleasedError */ \"./node_modules/typeorm/browser/error/QueryRunnerAlreadyReleasedError.js\");\n/* harmony import */ var _error_TransactionAlreadyStartedError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../error/TransactionAlreadyStartedError */ \"./node_modules/typeorm/browser/error/TransactionAlreadyStartedError.js\");\n/* harmony import */ var _error_TransactionNotStartedError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../error/TransactionNotStartedError */ \"./node_modules/typeorm/browser/error/TransactionNotStartedError.js\");\n/* harmony import */ var _query_runner_BaseQueryRunner__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../query-runner/BaseQueryRunner */ \"./node_modules/typeorm/browser/query-runner/BaseQueryRunner.js\");\n/* harmony import */ var _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../schema-builder/table/Table */ \"./node_modules/typeorm/browser/schema-builder/table/Table.js\");\n/* harmony import */ var _schema_builder_table_TableCheck__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../schema-builder/table/TableCheck */ \"./node_modules/typeorm/browser/schema-builder/table/TableCheck.js\");\n/* harmony import */ var _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../schema-builder/table/TableColumn */ \"./node_modules/typeorm/browser/schema-builder/table/TableColumn.js\");\n/* harmony import */ var _schema_builder_table_TableExclusion__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../schema-builder/table/TableExclusion */ \"./node_modules/typeorm/browser/schema-builder/table/TableExclusion.js\");\n/* harmony import */ var _schema_builder_table_TableForeignKey__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../schema-builder/table/TableForeignKey */ \"./node_modules/typeorm/browser/schema-builder/table/TableForeignKey.js\");\n/* harmony import */ var _schema_builder_table_TableIndex__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../schema-builder/table/TableIndex */ \"./node_modules/typeorm/browser/schema-builder/table/TableIndex.js\");\n/* harmony import */ var _schema_builder_table_TableUnique__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../schema-builder/table/TableUnique */ \"./node_modules/typeorm/browser/schema-builder/table/TableUnique.js\");\n/* harmony import */ var _schema_builder_view_View__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../schema-builder/view/View */ \"./node_modules/typeorm/browser/schema-builder/view/View.js\");\n/* harmony import */ var _subscriber_Broadcaster__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../subscriber/Broadcaster */ \"./node_modules/typeorm/browser/subscriber/Broadcaster.js\");\n/* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../util/OrmUtils */ \"./node_modules/typeorm/browser/util/OrmUtils.js\");\n/* harmony import */ var _Query__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../Query */ \"./node_modules/typeorm/browser/driver/Query.js\");\n/* harmony import */ var _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../subscriber/BroadcasterResult */ \"./node_modules/typeorm/browser/subscriber/BroadcasterResult.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Runs queries on a single postgres database connection.\n */\nvar PostgresQueryRunner = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(PostgresQueryRunner, _super);\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function PostgresQueryRunner(driver, mode) {\n var _this = _super.call(this) || this;\n _this.driver = driver;\n _this.connection = driver.connection;\n _this.mode = mode;\n _this.broadcaster = new _subscriber_Broadcaster__WEBPACK_IMPORTED_MODULE_14__[\"Broadcaster\"](_this);\n return _this;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Creates/uses database connection from the connection pool to perform further operations.\n * Returns obtained database connection.\n */\n PostgresQueryRunner.prototype.connect = function () {\n var _this = this;\n if (this.databaseConnection)\n return Promise.resolve(this.databaseConnection);\n if (this.databaseConnectionPromise)\n return this.databaseConnectionPromise;\n if (this.mode === \"slave\" && this.driver.isReplicated) {\n this.databaseConnectionPromise = this.driver.obtainSlaveConnection().then(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), connection = _b[0], release = _b[1];\n _this.driver.connectedQueryRunners.push(_this);\n _this.databaseConnection = connection;\n var onErrorCallback = function () { return _this.release(); };\n _this.releaseCallback = function () {\n _this.databaseConnection.removeListener(\"error\", onErrorCallback);\n release();\n };\n _this.databaseConnection.on(\"error\", onErrorCallback);\n return _this.databaseConnection;\n });\n }\n else { // master\n this.databaseConnectionPromise = this.driver.obtainMasterConnection().then(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), connection = _b[0], release = _b[1];\n _this.driver.connectedQueryRunners.push(_this);\n _this.databaseConnection = connection;\n var onErrorCallback = function () { return _this.release(); };\n _this.releaseCallback = function () {\n _this.databaseConnection.removeListener(\"error\", onErrorCallback);\n release();\n };\n _this.databaseConnection.on(\"error\", onErrorCallback);\n return _this.databaseConnection;\n });\n }\n return this.databaseConnectionPromise;\n };\n /**\n * Releases used database connection.\n * You cannot use query runner methods once its released.\n */\n PostgresQueryRunner.prototype.release = function () {\n if (this.isReleased) {\n return Promise.resolve();\n }\n this.isReleased = true;\n if (this.releaseCallback)\n this.releaseCallback();\n var index = this.driver.connectedQueryRunners.indexOf(this);\n if (index !== -1)\n this.driver.connectedQueryRunners.splice(index);\n return Promise.resolve();\n };\n /**\n * Starts transaction.\n */\n PostgresQueryRunner.prototype.startTransaction = function (isolationLevel) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var beforeBroadcastResult, afterBroadcastResult;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.isTransactionActive)\n throw new _error_TransactionAlreadyStartedError__WEBPACK_IMPORTED_MODULE_3__[\"TransactionAlreadyStartedError\"]();\n beforeBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_17__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult);\n if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n this.isTransactionActive = true;\n return [4 /*yield*/, this.query(\"START TRANSACTION\")];\n case 3:\n _a.sent();\n if (!isolationLevel) return [3 /*break*/, 5];\n return [4 /*yield*/, this.query(\"SET TRANSACTION ISOLATION LEVEL \" + isolationLevel)];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5:\n afterBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_17__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult);\n if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 7];\n return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];\n case 6:\n _a.sent();\n _a.label = 7;\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Commits transaction.\n * Error will be thrown if transaction was not started.\n */\n PostgresQueryRunner.prototype.commitTransaction = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var beforeBroadcastResult, afterBroadcastResult;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.isTransactionActive)\n throw new _error_TransactionNotStartedError__WEBPACK_IMPORTED_MODULE_4__[\"TransactionNotStartedError\"]();\n beforeBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_17__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastBeforeTransactionCommitEvent(beforeBroadcastResult);\n if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [4 /*yield*/, this.query(\"COMMIT\")];\n case 3:\n _a.sent();\n this.isTransactionActive = false;\n afterBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_17__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult);\n if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];\n return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Rollbacks transaction.\n * Error will be thrown if transaction was not started.\n */\n PostgresQueryRunner.prototype.rollbackTransaction = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var beforeBroadcastResult, afterBroadcastResult;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.isTransactionActive)\n throw new _error_TransactionNotStartedError__WEBPACK_IMPORTED_MODULE_4__[\"TransactionNotStartedError\"]();\n beforeBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_17__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult);\n if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [4 /*yield*/, this.query(\"ROLLBACK\")];\n case 3:\n _a.sent();\n this.isTransactionActive = false;\n afterBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_17__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult);\n if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];\n return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Executes a given SQL query.\n */\n PostgresQueryRunner.prototype.query = function (query, parameters) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var databaseConnection, queryStartTime, result, maxQueryExecutionTime, queryEndTime, queryExecutionTime, err_1;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.isReleased)\n throw new _error_QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_2__[\"QueryRunnerAlreadyReleasedError\"]();\n return [4 /*yield*/, this.connect()];\n case 1:\n databaseConnection = _a.sent();\n this.driver.connection.logger.logQuery(query, parameters, this);\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n queryStartTime = +new Date();\n return [4 /*yield*/, databaseConnection.query(query, parameters)];\n case 3:\n result = _a.sent();\n maxQueryExecutionTime = this.driver.connection.options.maxQueryExecutionTime;\n queryEndTime = +new Date();\n queryExecutionTime = queryEndTime - queryStartTime;\n if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)\n this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);\n switch (result.command) {\n case \"DELETE\":\n case \"UPDATE\":\n // for UPDATE and DELETE query additionally return number of affected rows\n return [2 /*return*/, [result.rows, result.rowCount]];\n break;\n default:\n return [2 /*return*/, result.rows];\n }\n return [3 /*break*/, 5];\n case 4:\n err_1 = _a.sent();\n this.driver.connection.logger.logQueryError(err_1, query, parameters, this);\n throw new _error_QueryFailedError__WEBPACK_IMPORTED_MODULE_1__[\"QueryFailedError\"](query, parameters, err_1);\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Returns raw data stream.\n */\n PostgresQueryRunner.prototype.stream = function (query, parameters, onEnd, onError) {\n var _this = this;\n var QueryStream = this.driver.loadStreamDependency();\n if (this.isReleased)\n throw new _error_QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_2__[\"QueryRunnerAlreadyReleasedError\"]();\n return new Promise(function (ok, fail) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n var databaseConnection, stream, err_2;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.connect()];\n case 1:\n databaseConnection = _a.sent();\n this.driver.connection.logger.logQuery(query, parameters, this);\n stream = databaseConnection.query(new QueryStream(query, parameters));\n if (onEnd)\n stream.on(\"end\", onEnd);\n if (onError)\n stream.on(\"error\", onError);\n ok(stream);\n return [3 /*break*/, 3];\n case 2:\n err_2 = _a.sent();\n fail(err_2);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n }); });\n };\n /**\n * Returns all available database names including system databases.\n */\n PostgresQueryRunner.prototype.getDatabases = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, Promise.resolve([])];\n });\n });\n };\n /**\n * Returns all available schema names including system schemas.\n * If database parameter specified, returns schemas of that database.\n */\n PostgresQueryRunner.prototype.getSchemas = function (database) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, Promise.resolve([])];\n });\n });\n };\n /**\n * Checks if database with the given name exist.\n */\n PostgresQueryRunner.prototype.hasDatabase = function (database) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, Promise.resolve(false)];\n });\n });\n };\n /**\n * Checks if schema with the given name exist.\n */\n PostgresQueryRunner.prototype.hasSchema = function (schema) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var result;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.query(\"SELECT * FROM \\\"information_schema\\\".\\\"schemata\\\" WHERE \\\"schema_name\\\" = '\" + schema + \"'\")];\n case 1:\n result = _a.sent();\n return [2 /*return*/, result.length ? true : false];\n }\n });\n });\n };\n /**\n * Checks if table with the given name exist in the database.\n */\n PostgresQueryRunner.prototype.hasTable = function (tableOrName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var parsedTableName, sql, result;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n parsedTableName = this.parseTableName(tableOrName);\n sql = \"SELECT * FROM \\\"information_schema\\\".\\\"tables\\\" WHERE \\\"table_schema\\\" = \" + parsedTableName.schema + \" AND \\\"table_name\\\" = \" + parsedTableName.tableName;\n return [4 /*yield*/, this.query(sql)];\n case 1:\n result = _a.sent();\n return [2 /*return*/, result.length ? true : false];\n }\n });\n });\n };\n /**\n * Checks if column with the given name exist in the given table.\n */\n PostgresQueryRunner.prototype.hasColumn = function (tableOrName, columnName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var parsedTableName, sql, result;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n parsedTableName = this.parseTableName(tableOrName);\n sql = \"SELECT * FROM \\\"information_schema\\\".\\\"columns\\\" WHERE \\\"table_schema\\\" = \" + parsedTableName.schema + \" AND \\\"table_name\\\" = \" + parsedTableName.tableName + \" AND \\\"column_name\\\" = '\" + columnName + \"'\";\n return [4 /*yield*/, this.query(sql)];\n case 1:\n result = _a.sent();\n return [2 /*return*/, result.length ? true : false];\n }\n });\n });\n };\n /**\n * Creates a new database.\n * Postgres does not supports database creation inside a transaction block.\n */\n PostgresQueryRunner.prototype.createDatabase = function (database, ifNotExist) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Promise.resolve()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops database.\n * Postgres does not supports database drop inside a transaction block.\n */\n PostgresQueryRunner.prototype.dropDatabase = function (database, ifExist) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, Promise.resolve()];\n });\n });\n };\n /**\n * Creates a new table schema.\n */\n PostgresQueryRunner.prototype.createSchema = function (schema, ifNotExist) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var up, down;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n up = ifNotExist ? \"CREATE SCHEMA IF NOT EXISTS \\\"\" + schema + \"\\\"\" : \"CREATE SCHEMA \\\"\" + schema + \"\\\"\";\n down = \"DROP SCHEMA \\\"\" + schema + \"\\\" CASCADE\";\n return [4 /*yield*/, this.executeQueries(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](up), new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](down))];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops table schema.\n */\n PostgresQueryRunner.prototype.dropSchema = function (schemaPath, ifExist, isCascade) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var schema, up, down;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n schema = schemaPath.indexOf(\".\") === -1 ? schemaPath : schemaPath.split(\".\")[0];\n up = ifExist ? \"DROP SCHEMA IF EXISTS \\\"\" + schema + \"\\\" \" + (isCascade ? \"CASCADE\" : \"\") : \"DROP SCHEMA \\\"\" + schema + \"\\\" \" + (isCascade ? \"CASCADE\" : \"\");\n down = \"CREATE SCHEMA \\\"\" + schema + \"\\\"\";\n return [4 /*yield*/, this.executeQueries(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](up), new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](down))];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a new table.\n */\n PostgresQueryRunner.prototype.createTable = function (table, ifNotExist, createForeignKeys, createIndices) {\n if (ifNotExist === void 0) { ifNotExist = false; }\n if (createForeignKeys === void 0) { createForeignKeys = true; }\n if (createIndices === void 0) { createIndices = true; }\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var isTableExist, upQueries, downQueries, enumColumns, createdEnumTypes, enumColumns_1, enumColumns_1_1, column, hasEnum, enumName, e_1_1;\n var e_1, _a;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!ifNotExist) return [3 /*break*/, 2];\n return [4 /*yield*/, this.hasTable(table)];\n case 1:\n isTableExist = _b.sent();\n if (isTableExist)\n return [2 /*return*/, Promise.resolve()];\n _b.label = 2;\n case 2:\n upQueries = [];\n downQueries = [];\n enumColumns = table.columns.filter(function (column) { return column.type === \"enum\" || column.type === \"simple-enum\"; });\n createdEnumTypes = [];\n _b.label = 3;\n case 3:\n _b.trys.push([3, 8, 9, 10]);\n enumColumns_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(enumColumns), enumColumns_1_1 = enumColumns_1.next();\n _b.label = 4;\n case 4:\n if (!!enumColumns_1_1.done) return [3 /*break*/, 7];\n column = enumColumns_1_1.value;\n return [4 /*yield*/, this.hasEnumType(table, column)];\n case 5:\n hasEnum = _b.sent();\n enumName = this.buildEnumName(table, column);\n // if enum with the same \"enumName\" is defined more then once, me must prevent double creation\n if (!hasEnum && createdEnumTypes.indexOf(enumName) === -1) {\n createdEnumTypes.push(enumName);\n upQueries.push(this.createEnumTypeSql(table, column, enumName));\n downQueries.push(this.dropEnumTypeSql(table, column, enumName));\n }\n _b.label = 6;\n case 6:\n enumColumns_1_1 = enumColumns_1.next();\n return [3 /*break*/, 4];\n case 7: return [3 /*break*/, 10];\n case 8:\n e_1_1 = _b.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 10];\n case 9:\n try {\n if (enumColumns_1_1 && !enumColumns_1_1.done && (_a = enumColumns_1.return)) _a.call(enumColumns_1);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 10:\n upQueries.push(this.createTableSql(table, createForeignKeys));\n downQueries.push(this.dropTableSql(table));\n // if createForeignKeys is true, we must drop created foreign keys in down query.\n // createTable does not need separate method to create foreign keys, because it create fk's in the same query with table creation.\n if (createForeignKeys)\n table.foreignKeys.forEach(function (foreignKey) { return downQueries.push(_this.dropForeignKeySql(table, foreignKey)); });\n if (createIndices) {\n table.indices.forEach(function (index) {\n // new index may be passed without name. In this case we generate index name manually.\n if (!index.name)\n index.name = _this.connection.namingStrategy.indexName(table.name, index.columnNames, index.where);\n upQueries.push(_this.createIndexSql(table, index));\n downQueries.push(_this.dropIndexSql(table, index));\n });\n }\n return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];\n case 11:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops the table.\n */\n PostgresQueryRunner.prototype.dropTable = function (target, ifExist, dropForeignKeys, dropIndices) {\n if (dropForeignKeys === void 0) { dropForeignKeys = true; }\n if (dropIndices === void 0) { dropIndices = true; }\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var isTableExist, createForeignKeys, tableName, table, upQueries, downQueries;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!ifExist) return [3 /*break*/, 2];\n return [4 /*yield*/, this.hasTable(target)];\n case 1:\n isTableExist = _a.sent();\n if (!isTableExist)\n return [2 /*return*/, Promise.resolve()];\n _a.label = 2;\n case 2:\n createForeignKeys = dropForeignKeys;\n tableName = target instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"] ? target.name : target;\n return [4 /*yield*/, this.getCachedTable(tableName)];\n case 3:\n table = _a.sent();\n upQueries = [];\n downQueries = [];\n if (dropIndices) {\n table.indices.forEach(function (index) {\n upQueries.push(_this.dropIndexSql(table, index));\n downQueries.push(_this.createIndexSql(table, index));\n });\n }\n if (dropForeignKeys)\n table.foreignKeys.forEach(function (foreignKey) { return upQueries.push(_this.dropForeignKeySql(table, foreignKey)); });\n upQueries.push(this.dropTableSql(table));\n downQueries.push(this.createTableSql(table, createForeignKeys));\n return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];\n case 4:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a new view.\n */\n PostgresQueryRunner.prototype.createView = function (view) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var upQueries, downQueries, _a, _b, _c, _d;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n upQueries = [];\n downQueries = [];\n upQueries.push(this.createViewSql(view));\n _b = (_a = upQueries).push;\n return [4 /*yield*/, this.insertViewDefinitionSql(view)];\n case 1:\n _b.apply(_a, [_e.sent()]);\n downQueries.push(this.dropViewSql(view));\n _d = (_c = downQueries).push;\n return [4 /*yield*/, this.deleteViewDefinitionSql(view)];\n case 2:\n _d.apply(_c, [_e.sent()]);\n return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];\n case 3:\n _e.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops the view.\n */\n PostgresQueryRunner.prototype.dropView = function (target) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var viewName, view, upQueries, downQueries, _a, _b, _c, _d;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n viewName = target instanceof _schema_builder_view_View__WEBPACK_IMPORTED_MODULE_13__[\"View\"] ? target.name : target;\n return [4 /*yield*/, this.getCachedView(viewName)];\n case 1:\n view = _e.sent();\n upQueries = [];\n downQueries = [];\n _b = (_a = upQueries).push;\n return [4 /*yield*/, this.deleteViewDefinitionSql(view)];\n case 2:\n _b.apply(_a, [_e.sent()]);\n upQueries.push(this.dropViewSql(view));\n _d = (_c = downQueries).push;\n return [4 /*yield*/, this.insertViewDefinitionSql(view)];\n case 3:\n _d.apply(_c, [_e.sent()]);\n downQueries.push(this.createViewSql(view));\n return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];\n case 4:\n _e.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Renames the given table.\n */\n PostgresQueryRunner.prototype.renameTable = function (oldTableOrName, newTableName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var upQueries, downQueries, oldTable, _a, newTable, oldTableName, schemaName, columnNames, oldPkName, newPkName, enumColumns, enumColumns_2, enumColumns_2_1, column, oldEnumType, e_2_1;\n var e_2, _b;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_c) {\n switch (_c.label) {\n case 0:\n upQueries = [];\n downQueries = [];\n if (!(oldTableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"])) return [3 /*break*/, 1];\n _a = oldTableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(oldTableOrName)];\n case 2:\n _a = _c.sent();\n _c.label = 3;\n case 3:\n oldTable = _a;\n newTable = oldTable.clone();\n oldTableName = oldTable.name.indexOf(\".\") === -1 ? oldTable.name : oldTable.name.split(\".\")[1];\n schemaName = oldTable.name.indexOf(\".\") === -1 ? undefined : oldTable.name.split(\".\")[0];\n newTable.name = schemaName ? schemaName + \".\" + newTableName : newTableName;\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(oldTable) + \" RENAME TO \\\"\" + newTableName + \"\\\"\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(newTable) + \" RENAME TO \\\"\" + oldTableName + \"\\\"\"));\n // rename column primary key constraint\n if (newTable.primaryColumns.length > 0) {\n columnNames = newTable.primaryColumns.map(function (column) { return column.name; });\n oldPkName = this.connection.namingStrategy.primaryKeyName(oldTable, columnNames);\n newPkName = this.connection.namingStrategy.primaryKeyName(newTable, columnNames);\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(newTable) + \" RENAME CONSTRAINT \\\"\" + oldPkName + \"\\\" TO \\\"\" + newPkName + \"\\\"\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(newTable) + \" RENAME CONSTRAINT \\\"\" + newPkName + \"\\\" TO \\\"\" + oldPkName + \"\\\"\"));\n }\n // rename sequences\n newTable.columns.map(function (col) {\n if (col.isGenerated && col.generationStrategy === \"increment\") {\n var seqName = _this.buildSequenceName(oldTable, col.name, undefined, true, true);\n var newSeqName = _this.buildSequenceName(newTable, col.name, undefined, true, true);\n var up = schemaName ? \"ALTER SEQUENCE \\\"\" + schemaName + \"\\\".\\\"\" + seqName + \"\\\" RENAME TO \\\"\" + newSeqName + \"\\\"\" : \"ALTER SEQUENCE \\\"\" + seqName + \"\\\" RENAME TO \\\"\" + newSeqName + \"\\\"\";\n var down = schemaName ? \"ALTER SEQUENCE \\\"\" + schemaName + \"\\\".\\\"\" + newSeqName + \"\\\" RENAME TO \\\"\" + seqName + \"\\\"\" : \"ALTER SEQUENCE \\\"\" + newSeqName + \"\\\" RENAME TO \\\"\" + seqName + \"\\\"\";\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](up));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](down));\n }\n });\n // rename unique constraints\n newTable.uniques.forEach(function (unique) {\n // build new constraint name\n var newUniqueName = _this.connection.namingStrategy.uniqueConstraintName(newTable, unique.columnNames);\n // build queries\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + _this.escapePath(newTable) + \" RENAME CONSTRAINT \\\"\" + unique.name + \"\\\" TO \\\"\" + newUniqueName + \"\\\"\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + _this.escapePath(newTable) + \" RENAME CONSTRAINT \\\"\" + newUniqueName + \"\\\" TO \\\"\" + unique.name + \"\\\"\"));\n // replace constraint name\n unique.name = newUniqueName;\n });\n // rename index constraints\n newTable.indices.forEach(function (index) {\n // build new constraint name\n var schema = _this.extractSchema(newTable);\n var newIndexName = _this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where);\n // build queries\n var up = schema ? \"ALTER INDEX \\\"\" + schema + \"\\\".\\\"\" + index.name + \"\\\" RENAME TO \\\"\" + newIndexName + \"\\\"\" : \"ALTER INDEX \\\"\" + index.name + \"\\\" RENAME TO \\\"\" + newIndexName + \"\\\"\";\n var down = schema ? \"ALTER INDEX \\\"\" + schema + \"\\\".\\\"\" + newIndexName + \"\\\" RENAME TO \\\"\" + index.name + \"\\\"\" : \"ALTER INDEX \\\"\" + newIndexName + \"\\\" RENAME TO \\\"\" + index.name + \"\\\"\";\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](up));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](down));\n // replace constraint name\n index.name = newIndexName;\n });\n // rename foreign key constraints\n newTable.foreignKeys.forEach(function (foreignKey) {\n // build new constraint name\n var newForeignKeyName = _this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);\n // build queries\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + _this.escapePath(newTable) + \" RENAME CONSTRAINT \\\"\" + foreignKey.name + \"\\\" TO \\\"\" + newForeignKeyName + \"\\\"\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + _this.escapePath(newTable) + \" RENAME CONSTRAINT \\\"\" + newForeignKeyName + \"\\\" TO \\\"\" + foreignKey.name + \"\\\"\"));\n // replace constraint name\n foreignKey.name = newForeignKeyName;\n });\n enumColumns = newTable.columns.filter(function (column) { return column.type === \"enum\" || column.type === \"simple-enum\"; });\n _c.label = 4;\n case 4:\n _c.trys.push([4, 9, 10, 11]);\n enumColumns_2 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(enumColumns), enumColumns_2_1 = enumColumns_2.next();\n _c.label = 5;\n case 5:\n if (!!enumColumns_2_1.done) return [3 /*break*/, 8];\n column = enumColumns_2_1.value;\n return [4 /*yield*/, this.getEnumTypeName(oldTable, column)];\n case 6:\n oldEnumType = _c.sent();\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TYPE \\\"\" + oldEnumType.enumTypeSchema + \"\\\".\\\"\" + oldEnumType.enumTypeName + \"\\\" RENAME TO \" + this.buildEnumName(newTable, column, false)));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TYPE \" + this.buildEnumName(newTable, column) + \" RENAME TO \\\"\" + oldEnumType.enumTypeName + \"\\\"\"));\n _c.label = 7;\n case 7:\n enumColumns_2_1 = enumColumns_2.next();\n return [3 /*break*/, 5];\n case 8: return [3 /*break*/, 11];\n case 9:\n e_2_1 = _c.sent();\n e_2 = { error: e_2_1 };\n return [3 /*break*/, 11];\n case 10:\n try {\n if (enumColumns_2_1 && !enumColumns_2_1.done && (_b = enumColumns_2.return)) _b.call(enumColumns_2);\n }\n finally { if (e_2) throw e_2.error; }\n return [7 /*endfinally*/];\n case 11: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];\n case 12:\n _c.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a new column from the column in the table.\n */\n PostgresQueryRunner.prototype.addColumn = function (tableOrName, column) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, clonedTable, upQueries, downQueries, hasEnum, primaryColumns, pkName_1, columnNames_1, pkName, columnNames, columnIndex, uniqueConstraint;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n clonedTable = table.clone();\n upQueries = [];\n downQueries = [];\n if (!(column.type === \"enum\" || column.type === \"simple-enum\")) return [3 /*break*/, 5];\n return [4 /*yield*/, this.hasEnumType(table, column)];\n case 4:\n hasEnum = _b.sent();\n if (!hasEnum) {\n upQueries.push(this.createEnumTypeSql(table, column));\n downQueries.push(this.dropEnumTypeSql(table, column));\n }\n _b.label = 5;\n case 5:\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ADD \" + this.buildCreateColumnSql(table, column)));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" DROP COLUMN \\\"\" + column.name + \"\\\"\"));\n // create or update primary key constraint\n if (column.isPrimary) {\n primaryColumns = clonedTable.primaryColumns;\n // if table already have primary key, me must drop it and recreate again\n if (primaryColumns.length > 0) {\n pkName_1 = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));\n columnNames_1 = primaryColumns.map(function (column) { return \"\\\"\" + column.name + \"\\\"\"; }).join(\", \");\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" DROP CONSTRAINT \\\"\" + pkName_1 + \"\\\"\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ADD CONSTRAINT \\\"\" + pkName_1 + \"\\\" PRIMARY KEY (\" + columnNames_1 + \")\"));\n }\n primaryColumns.push(column);\n pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));\n columnNames = primaryColumns.map(function (column) { return \"\\\"\" + column.name + \"\\\"\"; }).join(\", \");\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ADD CONSTRAINT \\\"\" + pkName + \"\\\" PRIMARY KEY (\" + columnNames + \")\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" DROP CONSTRAINT \\\"\" + pkName + \"\\\"\"));\n }\n columnIndex = clonedTable.indices.find(function (index) { return index.columnNames.length === 1 && index.columnNames[0] === column.name; });\n if (columnIndex) {\n upQueries.push(this.createIndexSql(table, columnIndex));\n downQueries.push(this.dropIndexSql(table, columnIndex));\n }\n // create unique constraint\n if (column.isUnique) {\n uniqueConstraint = new _schema_builder_table_TableUnique__WEBPACK_IMPORTED_MODULE_12__[\"TableUnique\"]({\n name: this.connection.namingStrategy.uniqueConstraintName(table.name, [column.name]),\n columnNames: [column.name]\n });\n clonedTable.uniques.push(uniqueConstraint);\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ADD CONSTRAINT \\\"\" + uniqueConstraint.name + \"\\\" UNIQUE (\\\"\" + column.name + \"\\\")\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" DROP CONSTRAINT \\\"\" + uniqueConstraint.name + \"\\\"\"));\n }\n // create column's comment\n if (column.comment) {\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"COMMENT ON COLUMN \" + this.escapePath(table) + \".\\\"\" + column.name + \"\\\" IS \" + this.escapeComment(column.comment)));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"COMMENT ON COLUMN \" + this.escapePath(table) + \".\\\"\" + column.name + \"\\\" IS \" + this.escapeComment(column.comment)));\n }\n return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];\n case 6:\n _b.sent();\n clonedTable.addColumn(column);\n this.replaceCachedTable(table, clonedTable);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a new columns from the column in the table.\n */\n PostgresQueryRunner.prototype.addColumns = function (tableOrName, columns) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var columns_1, columns_1_1, column, e_3_1;\n var e_3, _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 7]);\n columns_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(columns), columns_1_1 = columns_1.next();\n _b.label = 1;\n case 1:\n if (!!columns_1_1.done) return [3 /*break*/, 4];\n column = columns_1_1.value;\n return [4 /*yield*/, this.addColumn(tableOrName, column)];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3:\n columns_1_1 = columns_1.next();\n return [3 /*break*/, 1];\n case 4: return [3 /*break*/, 7];\n case 5:\n e_3_1 = _b.sent();\n e_3 = { error: e_3_1 };\n return [3 /*break*/, 7];\n case 6:\n try {\n if (columns_1_1 && !columns_1_1.done && (_a = columns_1.return)) _a.call(columns_1);\n }\n finally { if (e_3) throw e_3.error; }\n return [7 /*endfinally*/];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Renames column in the given table.\n */\n PostgresQueryRunner.prototype.renameColumn = function (tableOrName, oldTableColumnOrName, newTableColumnOrName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, oldColumn, newColumn;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n oldColumn = oldTableColumnOrName instanceof _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_8__[\"TableColumn\"] ? oldTableColumnOrName : table.columns.find(function (c) { return c.name === oldTableColumnOrName; });\n if (!oldColumn)\n throw new Error(\"Column \\\"\" + oldTableColumnOrName + \"\\\" was not found in the \\\"\" + table.name + \"\\\" table.\");\n if (newTableColumnOrName instanceof _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_8__[\"TableColumn\"]) {\n newColumn = newTableColumnOrName;\n }\n else {\n newColumn = oldColumn.clone();\n newColumn.name = newTableColumnOrName;\n }\n return [2 /*return*/, this.changeColumn(table, oldColumn, newColumn)];\n }\n });\n });\n };\n /**\n * Changes a column in the table.\n */\n PostgresQueryRunner.prototype.changeColumn = function (tableOrName, oldTableColumnOrName, newColumn) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n 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;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n clonedTable = table.clone();\n upQueries = [];\n downQueries = [];\n defaultValueChanged = false;\n oldColumn = oldTableColumnOrName instanceof _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_8__[\"TableColumn\"]\n ? oldTableColumnOrName\n : table.columns.find(function (column) { return column.name === oldTableColumnOrName; });\n if (!oldColumn)\n throw new Error(\"Column \\\"\" + oldTableColumnOrName + \"\\\" was not found in the \\\"\" + table.name + \"\\\" table.\");\n if (!(oldColumn.type !== newColumn.type || oldColumn.length !== newColumn.length || newColumn.isArray !== oldColumn.isArray)) return [3 /*break*/, 6];\n // To avoid data conversion, we just recreate column\n return [4 /*yield*/, this.dropColumn(table, oldColumn)];\n case 4:\n // To avoid data conversion, we just recreate column\n _b.sent();\n return [4 /*yield*/, this.addColumn(table, newColumn)];\n case 5:\n _b.sent();\n // update cloned table\n clonedTable = table.clone();\n return [3 /*break*/, 10];\n case 6:\n if (!(oldColumn.name !== newColumn.name)) return [3 /*break*/, 9];\n // rename column\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" RENAME COLUMN \\\"\" + oldColumn.name + \"\\\" TO \\\"\" + newColumn.name + \"\\\"\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" RENAME COLUMN \\\"\" + newColumn.name + \"\\\" TO \\\"\" + oldColumn.name + \"\\\"\"));\n if (!(oldColumn.type === \"enum\" || oldColumn.type === \"simple-enum\")) return [3 /*break*/, 8];\n return [4 /*yield*/, this.getEnumTypeName(table, oldColumn)];\n case 7:\n oldEnumType = _b.sent();\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TYPE \\\"\" + oldEnumType.enumTypeSchema + \"\\\".\\\"\" + oldEnumType.enumTypeName + \"\\\" RENAME TO \" + this.buildEnumName(table, newColumn, false)));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TYPE \" + this.buildEnumName(table, newColumn) + \" RENAME TO \\\"\" + oldEnumType.enumTypeName + \"\\\"\"));\n _b.label = 8;\n case 8:\n // rename column primary key constraint\n if (oldColumn.isPrimary === true) {\n primaryColumns = clonedTable.primaryColumns;\n columnNames = primaryColumns.map(function (column) { return column.name; });\n oldPkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);\n // replace old column name with new column name\n columnNames.splice(columnNames.indexOf(oldColumn.name), 1);\n columnNames.push(newColumn.name);\n newPkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" RENAME CONSTRAINT \\\"\" + oldPkName + \"\\\" TO \\\"\" + newPkName + \"\\\"\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" RENAME CONSTRAINT \\\"\" + newPkName + \"\\\" TO \\\"\" + oldPkName + \"\\\"\"));\n }\n // rename column sequence\n if (oldColumn.isGenerated === true && newColumn.generationStrategy === \"increment\") {\n schema = this.extractSchema(table);\n seqName = this.buildSequenceName(table, oldColumn.name, undefined, true, true);\n newSeqName = this.buildSequenceName(table, newColumn.name, undefined, true, true);\n up = schema ? \"ALTER SEQUENCE \\\"\" + schema + \"\\\".\\\"\" + seqName + \"\\\" RENAME TO \\\"\" + newSeqName + \"\\\"\" : \"ALTER SEQUENCE \\\"\" + seqName + \"\\\" RENAME TO \\\"\" + newSeqName + \"\\\"\";\n down = schema ? \"ALTER SEQUENCE \\\"\" + schema + \"\\\".\\\"\" + newSeqName + \"\\\" RENAME TO \\\"\" + seqName + \"\\\"\" : \"ALTER SEQUENCE \\\"\" + newSeqName + \"\\\" RENAME TO \\\"\" + seqName + \"\\\"\";\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](up));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](down));\n }\n // rename unique constraints\n clonedTable.findColumnUniques(oldColumn).forEach(function (unique) {\n // build new constraint name\n unique.columnNames.splice(unique.columnNames.indexOf(oldColumn.name), 1);\n unique.columnNames.push(newColumn.name);\n var newUniqueName = _this.connection.namingStrategy.uniqueConstraintName(clonedTable, unique.columnNames);\n // build queries\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + _this.escapePath(table) + \" RENAME CONSTRAINT \\\"\" + unique.name + \"\\\" TO \\\"\" + newUniqueName + \"\\\"\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + _this.escapePath(table) + \" RENAME CONSTRAINT \\\"\" + newUniqueName + \"\\\" TO \\\"\" + unique.name + \"\\\"\"));\n // replace constraint name\n unique.name = newUniqueName;\n });\n // rename index constraints\n clonedTable.findColumnIndices(oldColumn).forEach(function (index) {\n // build new constraint name\n index.columnNames.splice(index.columnNames.indexOf(oldColumn.name), 1);\n index.columnNames.push(newColumn.name);\n var schema = _this.extractSchema(table);\n var newIndexName = _this.connection.namingStrategy.indexName(clonedTable, index.columnNames, index.where);\n // build queries\n var up = schema ? \"ALTER INDEX \\\"\" + schema + \"\\\".\\\"\" + index.name + \"\\\" RENAME TO \\\"\" + newIndexName + \"\\\"\" : \"ALTER INDEX \\\"\" + index.name + \"\\\" RENAME TO \\\"\" + newIndexName + \"\\\"\";\n var down = schema ? \"ALTER INDEX \\\"\" + schema + \"\\\".\\\"\" + newIndexName + \"\\\" RENAME TO \\\"\" + index.name + \"\\\"\" : \"ALTER INDEX \\\"\" + newIndexName + \"\\\" RENAME TO \\\"\" + index.name + \"\\\"\";\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](up));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](down));\n // replace constraint name\n index.name = newIndexName;\n });\n // rename foreign key constraints\n clonedTable.findColumnForeignKeys(oldColumn).forEach(function (foreignKey) {\n // build new constraint name\n foreignKey.columnNames.splice(foreignKey.columnNames.indexOf(oldColumn.name), 1);\n foreignKey.columnNames.push(newColumn.name);\n var newForeignKeyName = _this.connection.namingStrategy.foreignKeyName(clonedTable, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);\n // build queries\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + _this.escapePath(table) + \" RENAME CONSTRAINT \\\"\" + foreignKey.name + \"\\\" TO \\\"\" + newForeignKeyName + \"\\\"\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + _this.escapePath(table) + \" RENAME CONSTRAINT \\\"\" + newForeignKeyName + \"\\\" TO \\\"\" + foreignKey.name + \"\\\"\"));\n // replace constraint name\n foreignKey.name = newForeignKeyName;\n });\n oldTableColumn = clonedTable.columns.find(function (column) { return column.name === oldColumn.name; });\n clonedTable.columns[clonedTable.columns.indexOf(oldTableColumn)].name = newColumn.name;\n oldColumn.name = newColumn.name;\n _b.label = 9;\n case 9:\n if (newColumn.precision !== oldColumn.precision || newColumn.scale !== oldColumn.scale) {\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + newColumn.name + \"\\\" TYPE \" + this.driver.createFullType(newColumn)));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + newColumn.name + \"\\\" TYPE \" + this.driver.createFullType(oldColumn)));\n }\n if ((newColumn.type === \"enum\" || newColumn.type === \"simple-enum\")\n && (oldColumn.type === \"enum\" || oldColumn.type === \"simple-enum\")\n && (!_util_OrmUtils__WEBPACK_IMPORTED_MODULE_15__[\"OrmUtils\"].isArraysEqual(newColumn.enum, oldColumn.enum) || newColumn.enumName !== oldColumn.enumName)) {\n arraySuffix = newColumn.isArray ? \"[]\" : \"\";\n newEnumName = this.buildEnumName(table, newColumn);\n oldEnumName = this.buildEnumName(table, oldColumn);\n oldEnumNameWithoutSchema = this.buildEnumName(table, oldColumn, false);\n oldEnumNameWithSchema_old = this.buildEnumName(table, oldColumn, true, false, true);\n oldEnumNameWithoutSchema_old = this.buildEnumName(table, oldColumn, false, false, true);\n // rename old ENUM\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TYPE \" + oldEnumName + \" RENAME TO \" + oldEnumNameWithoutSchema_old));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TYPE \" + oldEnumNameWithSchema_old + \" RENAME TO \" + oldEnumNameWithoutSchema));\n // create new ENUM\n upQueries.push(this.createEnumTypeSql(table, newColumn, newEnumName));\n downQueries.push(this.dropEnumTypeSql(table, newColumn, newEnumName));\n // if column have default value, we must drop it to avoid issues with type casting\n if (oldColumn.default !== null && oldColumn.default !== undefined) {\n // mark default as changed to prevent double update\n defaultValueChanged = true;\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + oldColumn.name + \"\\\" DROP DEFAULT\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + oldColumn.name + \"\\\" SET DEFAULT \" + oldColumn.default));\n }\n upType = \"\" + newEnumName + arraySuffix + \" USING \\\"\" + newColumn.name + \"\\\"::\\\"text\\\"::\" + newEnumName + arraySuffix;\n downType = \"\" + oldEnumNameWithSchema_old + arraySuffix + \" USING \\\"\" + newColumn.name + \"\\\"::\\\"text\\\"::\" + oldEnumNameWithSchema_old + arraySuffix;\n // update column to use new type\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + newColumn.name + \"\\\" TYPE \" + upType));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + newColumn.name + \"\\\" TYPE \" + downType));\n // restore column default or create new one\n if (newColumn.default !== null && newColumn.default !== undefined) {\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + newColumn.name + \"\\\" SET DEFAULT \" + newColumn.default));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + newColumn.name + \"\\\" DROP DEFAULT\"));\n }\n // remove old ENUM\n upQueries.push(this.dropEnumTypeSql(table, oldColumn, oldEnumNameWithSchema_old));\n downQueries.push(this.createEnumTypeSql(table, oldColumn, oldEnumNameWithSchema_old));\n }\n if (oldColumn.isNullable !== newColumn.isNullable) {\n if (newColumn.isNullable) {\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + oldColumn.name + \"\\\" DROP NOT NULL\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + oldColumn.name + \"\\\" SET NOT NULL\"));\n }\n else {\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + oldColumn.name + \"\\\" SET NOT NULL\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + oldColumn.name + \"\\\" DROP NOT NULL\"));\n }\n }\n if (oldColumn.comment !== newColumn.comment) {\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"COMMENT ON COLUMN \" + this.escapePath(table) + \".\\\"\" + oldColumn.name + \"\\\" IS \" + this.escapeComment(newColumn.comment)));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"COMMENT ON COLUMN \" + this.escapePath(table) + \".\\\"\" + newColumn.name + \"\\\" IS \" + this.escapeComment(oldColumn.comment)));\n }\n if (newColumn.isPrimary !== oldColumn.isPrimary) {\n primaryColumns = clonedTable.primaryColumns;\n // if primary column state changed, we must always drop existed constraint.\n if (primaryColumns.length > 0) {\n pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));\n columnNames = primaryColumns.map(function (column) { return \"\\\"\" + column.name + \"\\\"\"; }).join(\", \");\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" DROP CONSTRAINT \\\"\" + pkName + \"\\\"\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ADD CONSTRAINT \\\"\" + pkName + \"\\\" PRIMARY KEY (\" + columnNames + \")\"));\n }\n if (newColumn.isPrimary === true) {\n primaryColumns.push(newColumn);\n column = clonedTable.columns.find(function (column) { return column.name === newColumn.name; });\n column.isPrimary = true;\n pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));\n columnNames = primaryColumns.map(function (column) { return \"\\\"\" + column.name + \"\\\"\"; }).join(\", \");\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ADD CONSTRAINT \\\"\" + pkName + \"\\\" PRIMARY KEY (\" + columnNames + \")\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" DROP CONSTRAINT \\\"\" + pkName + \"\\\"\"));\n }\n else {\n primaryColumn = primaryColumns.find(function (c) { return c.name === newColumn.name; });\n primaryColumns.splice(primaryColumns.indexOf(primaryColumn), 1);\n column = clonedTable.columns.find(function (column) { return column.name === newColumn.name; });\n column.isPrimary = false;\n // if we have another primary keys, we must recreate constraint.\n if (primaryColumns.length > 0) {\n pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));\n columnNames = primaryColumns.map(function (column) { return \"\\\"\" + column.name + \"\\\"\"; }).join(\", \");\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ADD CONSTRAINT \\\"\" + pkName + \"\\\" PRIMARY KEY (\" + columnNames + \")\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" DROP CONSTRAINT \\\"\" + pkName + \"\\\"\"));\n }\n }\n }\n if (newColumn.isUnique !== oldColumn.isUnique) {\n if (newColumn.isUnique === true) {\n uniqueConstraint = new _schema_builder_table_TableUnique__WEBPACK_IMPORTED_MODULE_12__[\"TableUnique\"]({\n name: this.connection.namingStrategy.uniqueConstraintName(table.name, [newColumn.name]),\n columnNames: [newColumn.name]\n });\n clonedTable.uniques.push(uniqueConstraint);\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ADD CONSTRAINT \\\"\" + uniqueConstraint.name + \"\\\" UNIQUE (\\\"\" + newColumn.name + \"\\\")\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" DROP CONSTRAINT \\\"\" + uniqueConstraint.name + \"\\\"\"));\n }\n else {\n uniqueConstraint = clonedTable.uniques.find(function (unique) {\n return unique.columnNames.length === 1 && !!unique.columnNames.find(function (columnName) { return columnName === newColumn.name; });\n });\n clonedTable.uniques.splice(clonedTable.uniques.indexOf(uniqueConstraint), 1);\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" DROP CONSTRAINT \\\"\" + uniqueConstraint.name + \"\\\"\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ADD CONSTRAINT \\\"\" + uniqueConstraint.name + \"\\\" UNIQUE (\\\"\" + newColumn.name + \"\\\")\"));\n }\n }\n if (oldColumn.isGenerated !== newColumn.isGenerated && newColumn.generationStrategy !== \"uuid\") {\n if (newColumn.isGenerated === true) {\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"CREATE SEQUENCE \" + this.buildSequenceName(table, newColumn) + \" OWNED BY \" + this.escapePath(table) + \".\\\"\" + newColumn.name + \"\\\"\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"DROP SEQUENCE \" + this.buildSequenceName(table, newColumn)));\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + newColumn.name + \"\\\" SET DEFAULT nextval('\" + this.buildSequenceName(table, newColumn, undefined, true) + \"')\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + newColumn.name + \"\\\" DROP DEFAULT\"));\n }\n else {\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + newColumn.name + \"\\\" DROP DEFAULT\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + newColumn.name + \"\\\" SET DEFAULT nextval('\" + this.buildSequenceName(table, newColumn, undefined, true) + \"')\"));\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"DROP SEQUENCE \" + this.buildSequenceName(table, newColumn)));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"CREATE SEQUENCE \" + this.buildSequenceName(table, newColumn) + \" OWNED BY \" + this.escapePath(table) + \".\\\"\" + newColumn.name + \"\\\"\"));\n }\n }\n // the default might have changed when the enum changed\n if (newColumn.default !== oldColumn.default && !defaultValueChanged) {\n if (newColumn.default !== null && newColumn.default !== undefined) {\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + newColumn.name + \"\\\" SET DEFAULT \" + newColumn.default));\n if (oldColumn.default !== null && oldColumn.default !== undefined) {\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + newColumn.name + \"\\\" SET DEFAULT \" + oldColumn.default));\n }\n else {\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + newColumn.name + \"\\\" DROP DEFAULT\"));\n }\n }\n else if (oldColumn.default !== null && oldColumn.default !== undefined) {\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + newColumn.name + \"\\\" DROP DEFAULT\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + newColumn.name + \"\\\" SET DEFAULT \" + oldColumn.default));\n }\n }\n if ((newColumn.spatialFeatureType || \"\").toLowerCase() !== (oldColumn.spatialFeatureType || \"\").toLowerCase() || newColumn.srid !== oldColumn.srid) {\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + newColumn.name + \"\\\" TYPE \" + this.driver.createFullType(newColumn)));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ALTER COLUMN \\\"\" + newColumn.name + \"\\\" TYPE \" + this.driver.createFullType(oldColumn)));\n }\n _b.label = 10;\n case 10: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];\n case 11:\n _b.sent();\n this.replaceCachedTable(table, clonedTable);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Changes a column in the table.\n */\n PostgresQueryRunner.prototype.changeColumns = function (tableOrName, changedColumns) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var changedColumns_1, changedColumns_1_1, _a, oldColumn, newColumn, e_4_1;\n var e_4, _b;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 5, 6, 7]);\n changedColumns_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(changedColumns), changedColumns_1_1 = changedColumns_1.next();\n _c.label = 1;\n case 1:\n if (!!changedColumns_1_1.done) return [3 /*break*/, 4];\n _a = changedColumns_1_1.value, oldColumn = _a.oldColumn, newColumn = _a.newColumn;\n return [4 /*yield*/, this.changeColumn(tableOrName, oldColumn, newColumn)];\n case 2:\n _c.sent();\n _c.label = 3;\n case 3:\n changedColumns_1_1 = changedColumns_1.next();\n return [3 /*break*/, 1];\n case 4: return [3 /*break*/, 7];\n case 5:\n e_4_1 = _c.sent();\n e_4 = { error: e_4_1 };\n return [3 /*break*/, 7];\n case 6:\n try {\n if (changedColumns_1_1 && !changedColumns_1_1.done && (_b = changedColumns_1.return)) _b.call(changedColumns_1);\n }\n finally { if (e_4) throw e_4.error; }\n return [7 /*endfinally*/];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops column in the table.\n */\n PostgresQueryRunner.prototype.dropColumn = function (tableOrName, columnOrName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, column, clonedTable, upQueries, downQueries, pkName, columnNames, tableColumn, pkName_2, columnNames_2, columnIndex, columnCheck, columnUnique, hasEnum, enumType, escapedEnumName;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n column = columnOrName instanceof _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_8__[\"TableColumn\"] ? columnOrName : table.findColumnByName(columnOrName);\n if (!column)\n throw new Error(\"Column \\\"\" + columnOrName + \"\\\" was not found in table \\\"\" + table.name + \"\\\"\");\n clonedTable = table.clone();\n upQueries = [];\n downQueries = [];\n // drop primary key constraint\n if (column.isPrimary) {\n pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, clonedTable.primaryColumns.map(function (column) { return column.name; }));\n columnNames = clonedTable.primaryColumns.map(function (primaryColumn) { return \"\\\"\" + primaryColumn.name + \"\\\"\"; }).join(\", \");\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(clonedTable) + \" DROP CONSTRAINT \\\"\" + pkName + \"\\\"\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(clonedTable) + \" ADD CONSTRAINT \\\"\" + pkName + \"\\\" PRIMARY KEY (\" + columnNames + \")\"));\n tableColumn = clonedTable.findColumnByName(column.name);\n tableColumn.isPrimary = false;\n // if primary key have multiple columns, we must recreate it without dropped column\n if (clonedTable.primaryColumns.length > 0) {\n pkName_2 = this.connection.namingStrategy.primaryKeyName(clonedTable.name, clonedTable.primaryColumns.map(function (column) { return column.name; }));\n columnNames_2 = clonedTable.primaryColumns.map(function (primaryColumn) { return \"\\\"\" + primaryColumn.name + \"\\\"\"; }).join(\", \");\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(clonedTable) + \" ADD CONSTRAINT \\\"\" + pkName_2 + \"\\\" PRIMARY KEY (\" + columnNames_2 + \")\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(clonedTable) + \" DROP CONSTRAINT \\\"\" + pkName_2 + \"\\\"\"));\n }\n }\n columnIndex = clonedTable.indices.find(function (index) { return index.columnNames.length === 1 && index.columnNames[0] === column.name; });\n if (columnIndex) {\n clonedTable.indices.splice(clonedTable.indices.indexOf(columnIndex), 1);\n upQueries.push(this.dropIndexSql(table, columnIndex));\n downQueries.push(this.createIndexSql(table, columnIndex));\n }\n columnCheck = clonedTable.checks.find(function (check) { return !!check.columnNames && check.columnNames.length === 1 && check.columnNames[0] === column.name; });\n if (columnCheck) {\n clonedTable.checks.splice(clonedTable.checks.indexOf(columnCheck), 1);\n upQueries.push(this.dropCheckConstraintSql(table, columnCheck));\n downQueries.push(this.createCheckConstraintSql(table, columnCheck));\n }\n columnUnique = clonedTable.uniques.find(function (unique) { return unique.columnNames.length === 1 && unique.columnNames[0] === column.name; });\n if (columnUnique) {\n clonedTable.uniques.splice(clonedTable.uniques.indexOf(columnUnique), 1);\n upQueries.push(this.dropUniqueConstraintSql(table, columnUnique));\n downQueries.push(this.createUniqueConstraintSql(table, columnUnique));\n }\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" DROP COLUMN \\\"\" + column.name + \"\\\"\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ADD \" + this.buildCreateColumnSql(table, column)));\n if (!(column.type === \"enum\" || column.type === \"simple-enum\")) return [3 /*break*/, 6];\n return [4 /*yield*/, this.hasEnumType(table, column)];\n case 4:\n hasEnum = _b.sent();\n if (!hasEnum) return [3 /*break*/, 6];\n return [4 /*yield*/, this.getEnumTypeName(table, column)];\n case 5:\n enumType = _b.sent();\n escapedEnumName = \"\\\"\" + enumType.enumTypeSchema + \"\\\".\\\"\" + enumType.enumTypeName + \"\\\"\";\n upQueries.push(this.dropEnumTypeSql(table, column, escapedEnumName));\n downQueries.push(this.createEnumTypeSql(table, column, escapedEnumName));\n _b.label = 6;\n case 6: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];\n case 7:\n _b.sent();\n clonedTable.removeColumn(column);\n this.replaceCachedTable(table, clonedTable);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops the columns in the table.\n */\n PostgresQueryRunner.prototype.dropColumns = function (tableOrName, columns) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var columns_2, columns_2_1, column, e_5_1;\n var e_5, _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 7]);\n columns_2 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(columns), columns_2_1 = columns_2.next();\n _b.label = 1;\n case 1:\n if (!!columns_2_1.done) return [3 /*break*/, 4];\n column = columns_2_1.value;\n return [4 /*yield*/, this.dropColumn(tableOrName, column)];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3:\n columns_2_1 = columns_2.next();\n return [3 /*break*/, 1];\n case 4: return [3 /*break*/, 7];\n case 5:\n e_5_1 = _b.sent();\n e_5 = { error: e_5_1 };\n return [3 /*break*/, 7];\n case 6:\n try {\n if (columns_2_1 && !columns_2_1.done && (_a = columns_2.return)) _a.call(columns_2);\n }\n finally { if (e_5) throw e_5.error; }\n return [7 /*endfinally*/];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a new primary key.\n */\n PostgresQueryRunner.prototype.createPrimaryKey = function (tableOrName, columnNames) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, clonedTable, up, down;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n clonedTable = table.clone();\n up = this.createPrimaryKeySql(table, columnNames);\n // mark columns as primary, because dropPrimaryKeySql build constraint name from table primary column names.\n clonedTable.columns.forEach(function (column) {\n if (columnNames.find(function (columnName) { return columnName === column.name; }))\n column.isPrimary = true;\n });\n down = this.dropPrimaryKeySql(clonedTable);\n return [4 /*yield*/, this.executeQueries(up, down)];\n case 4:\n _b.sent();\n this.replaceCachedTable(table, clonedTable);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Updates composite primary keys.\n */\n PostgresQueryRunner.prototype.updatePrimaryKeys = function (tableOrName, columns) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, clonedTable, columnNames, upQueries, downQueries, primaryColumns, pkName_3, columnNamesString_1, pkName, columnNamesString;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n clonedTable = table.clone();\n columnNames = columns.map(function (column) { return column.name; });\n upQueries = [];\n downQueries = [];\n primaryColumns = clonedTable.primaryColumns;\n if (primaryColumns.length > 0) {\n pkName_3 = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));\n columnNamesString_1 = primaryColumns.map(function (column) { return \"\\\"\" + column.name + \"\\\"\"; }).join(\", \");\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" DROP CONSTRAINT \\\"\" + pkName_3 + \"\\\"\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ADD CONSTRAINT \\\"\" + pkName_3 + \"\\\" PRIMARY KEY (\" + columnNamesString_1 + \")\"));\n }\n // update columns in table.\n clonedTable.columns\n .filter(function (column) { return columnNames.indexOf(column.name) !== -1; })\n .forEach(function (column) { return column.isPrimary = true; });\n pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, columnNames);\n columnNamesString = columnNames.map(function (columnName) { return \"\\\"\" + columnName + \"\\\"\"; }).join(\", \");\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ADD CONSTRAINT \\\"\" + pkName + \"\\\" PRIMARY KEY (\" + columnNamesString + \")\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" DROP CONSTRAINT \\\"\" + pkName + \"\\\"\"));\n return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];\n case 4:\n _b.sent();\n this.replaceCachedTable(table, clonedTable);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops a primary key.\n */\n PostgresQueryRunner.prototype.dropPrimaryKey = function (tableOrName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, up, down;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n up = this.dropPrimaryKeySql(table);\n down = this.createPrimaryKeySql(table, table.primaryColumns.map(function (column) { return column.name; }));\n return [4 /*yield*/, this.executeQueries(up, down)];\n case 4:\n _b.sent();\n table.primaryColumns.forEach(function (column) {\n column.isPrimary = false;\n });\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates new unique constraint.\n */\n PostgresQueryRunner.prototype.createUniqueConstraint = function (tableOrName, uniqueConstraint) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, up, down;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n // new unique constraint may be passed without name. In this case we generate unique name manually.\n if (!uniqueConstraint.name)\n uniqueConstraint.name = this.connection.namingStrategy.uniqueConstraintName(table.name, uniqueConstraint.columnNames);\n up = this.createUniqueConstraintSql(table, uniqueConstraint);\n down = this.dropUniqueConstraintSql(table, uniqueConstraint);\n return [4 /*yield*/, this.executeQueries(up, down)];\n case 4:\n _b.sent();\n table.addUniqueConstraint(uniqueConstraint);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates new unique constraints.\n */\n PostgresQueryRunner.prototype.createUniqueConstraints = function (tableOrName, uniqueConstraints) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var uniqueConstraints_1, uniqueConstraints_1_1, uniqueConstraint, e_6_1;\n var e_6, _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 7]);\n uniqueConstraints_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(uniqueConstraints), uniqueConstraints_1_1 = uniqueConstraints_1.next();\n _b.label = 1;\n case 1:\n if (!!uniqueConstraints_1_1.done) return [3 /*break*/, 4];\n uniqueConstraint = uniqueConstraints_1_1.value;\n return [4 /*yield*/, this.createUniqueConstraint(tableOrName, uniqueConstraint)];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3:\n uniqueConstraints_1_1 = uniqueConstraints_1.next();\n return [3 /*break*/, 1];\n case 4: return [3 /*break*/, 7];\n case 5:\n e_6_1 = _b.sent();\n e_6 = { error: e_6_1 };\n return [3 /*break*/, 7];\n case 6:\n try {\n if (uniqueConstraints_1_1 && !uniqueConstraints_1_1.done && (_a = uniqueConstraints_1.return)) _a.call(uniqueConstraints_1);\n }\n finally { if (e_6) throw e_6.error; }\n return [7 /*endfinally*/];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops unique constraint.\n */\n PostgresQueryRunner.prototype.dropUniqueConstraint = function (tableOrName, uniqueOrName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, uniqueConstraint, up, down;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n uniqueConstraint = uniqueOrName instanceof _schema_builder_table_TableUnique__WEBPACK_IMPORTED_MODULE_12__[\"TableUnique\"] ? uniqueOrName : table.uniques.find(function (u) { return u.name === uniqueOrName; });\n if (!uniqueConstraint)\n throw new Error(\"Supplied unique constraint was not found in table \" + table.name);\n up = this.dropUniqueConstraintSql(table, uniqueConstraint);\n down = this.createUniqueConstraintSql(table, uniqueConstraint);\n return [4 /*yield*/, this.executeQueries(up, down)];\n case 4:\n _b.sent();\n table.removeUniqueConstraint(uniqueConstraint);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops unique constraints.\n */\n PostgresQueryRunner.prototype.dropUniqueConstraints = function (tableOrName, uniqueConstraints) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var uniqueConstraints_2, uniqueConstraints_2_1, uniqueConstraint, e_7_1;\n var e_7, _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 7]);\n uniqueConstraints_2 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(uniqueConstraints), uniqueConstraints_2_1 = uniqueConstraints_2.next();\n _b.label = 1;\n case 1:\n if (!!uniqueConstraints_2_1.done) return [3 /*break*/, 4];\n uniqueConstraint = uniqueConstraints_2_1.value;\n return [4 /*yield*/, this.dropUniqueConstraint(tableOrName, uniqueConstraint)];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3:\n uniqueConstraints_2_1 = uniqueConstraints_2.next();\n return [3 /*break*/, 1];\n case 4: return [3 /*break*/, 7];\n case 5:\n e_7_1 = _b.sent();\n e_7 = { error: e_7_1 };\n return [3 /*break*/, 7];\n case 6:\n try {\n if (uniqueConstraints_2_1 && !uniqueConstraints_2_1.done && (_a = uniqueConstraints_2.return)) _a.call(uniqueConstraints_2);\n }\n finally { if (e_7) throw e_7.error; }\n return [7 /*endfinally*/];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates new check constraint.\n */\n PostgresQueryRunner.prototype.createCheckConstraint = function (tableOrName, checkConstraint) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, up, down;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n // new unique constraint may be passed without name. In this case we generate unique name manually.\n if (!checkConstraint.name)\n checkConstraint.name = this.connection.namingStrategy.checkConstraintName(table.name, checkConstraint.expression);\n up = this.createCheckConstraintSql(table, checkConstraint);\n down = this.dropCheckConstraintSql(table, checkConstraint);\n return [4 /*yield*/, this.executeQueries(up, down)];\n case 4:\n _b.sent();\n table.addCheckConstraint(checkConstraint);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates new check constraints.\n */\n PostgresQueryRunner.prototype.createCheckConstraints = function (tableOrName, checkConstraints) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var promises;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n promises = checkConstraints.map(function (checkConstraint) { return _this.createCheckConstraint(tableOrName, checkConstraint); });\n return [4 /*yield*/, Promise.all(promises)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops check constraint.\n */\n PostgresQueryRunner.prototype.dropCheckConstraint = function (tableOrName, checkOrName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, checkConstraint, up, down;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n checkConstraint = checkOrName instanceof _schema_builder_table_TableCheck__WEBPACK_IMPORTED_MODULE_7__[\"TableCheck\"] ? checkOrName : table.checks.find(function (c) { return c.name === checkOrName; });\n if (!checkConstraint)\n throw new Error(\"Supplied check constraint was not found in table \" + table.name);\n up = this.dropCheckConstraintSql(table, checkConstraint);\n down = this.createCheckConstraintSql(table, checkConstraint);\n return [4 /*yield*/, this.executeQueries(up, down)];\n case 4:\n _b.sent();\n table.removeCheckConstraint(checkConstraint);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops check constraints.\n */\n PostgresQueryRunner.prototype.dropCheckConstraints = function (tableOrName, checkConstraints) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var promises;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n promises = checkConstraints.map(function (checkConstraint) { return _this.dropCheckConstraint(tableOrName, checkConstraint); });\n return [4 /*yield*/, Promise.all(promises)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates new exclusion constraint.\n */\n PostgresQueryRunner.prototype.createExclusionConstraint = function (tableOrName, exclusionConstraint) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, up, down;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n // new unique constraint may be passed without name. In this case we generate unique name manually.\n if (!exclusionConstraint.name)\n exclusionConstraint.name = this.connection.namingStrategy.exclusionConstraintName(table.name, exclusionConstraint.expression);\n up = this.createExclusionConstraintSql(table, exclusionConstraint);\n down = this.dropExclusionConstraintSql(table, exclusionConstraint);\n return [4 /*yield*/, this.executeQueries(up, down)];\n case 4:\n _b.sent();\n table.addExclusionConstraint(exclusionConstraint);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates new exclusion constraints.\n */\n PostgresQueryRunner.prototype.createExclusionConstraints = function (tableOrName, exclusionConstraints) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var promises;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n promises = exclusionConstraints.map(function (exclusionConstraint) { return _this.createExclusionConstraint(tableOrName, exclusionConstraint); });\n return [4 /*yield*/, Promise.all(promises)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops exclusion constraint.\n */\n PostgresQueryRunner.prototype.dropExclusionConstraint = function (tableOrName, exclusionOrName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, exclusionConstraint, up, down;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n exclusionConstraint = exclusionOrName instanceof _schema_builder_table_TableExclusion__WEBPACK_IMPORTED_MODULE_9__[\"TableExclusion\"] ? exclusionOrName : table.exclusions.find(function (c) { return c.name === exclusionOrName; });\n if (!exclusionConstraint)\n throw new Error(\"Supplied exclusion constraint was not found in table \" + table.name);\n up = this.dropExclusionConstraintSql(table, exclusionConstraint);\n down = this.createExclusionConstraintSql(table, exclusionConstraint);\n return [4 /*yield*/, this.executeQueries(up, down)];\n case 4:\n _b.sent();\n table.removeExclusionConstraint(exclusionConstraint);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops exclusion constraints.\n */\n PostgresQueryRunner.prototype.dropExclusionConstraints = function (tableOrName, exclusionConstraints) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var promises;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n promises = exclusionConstraints.map(function (exclusionConstraint) { return _this.dropExclusionConstraint(tableOrName, exclusionConstraint); });\n return [4 /*yield*/, Promise.all(promises)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a new foreign key.\n */\n PostgresQueryRunner.prototype.createForeignKey = function (tableOrName, foreignKey) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, up, down;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n // new FK may be passed without name. In this case we generate FK name manually.\n if (!foreignKey.name)\n foreignKey.name = this.connection.namingStrategy.foreignKeyName(table.name, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);\n up = this.createForeignKeySql(table, foreignKey);\n down = this.dropForeignKeySql(table, foreignKey);\n return [4 /*yield*/, this.executeQueries(up, down)];\n case 4:\n _b.sent();\n table.addForeignKey(foreignKey);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a new foreign keys.\n */\n PostgresQueryRunner.prototype.createForeignKeys = function (tableOrName, foreignKeys) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var foreignKeys_1, foreignKeys_1_1, foreignKey, e_8_1;\n var e_8, _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 7]);\n foreignKeys_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(foreignKeys), foreignKeys_1_1 = foreignKeys_1.next();\n _b.label = 1;\n case 1:\n if (!!foreignKeys_1_1.done) return [3 /*break*/, 4];\n foreignKey = foreignKeys_1_1.value;\n return [4 /*yield*/, this.createForeignKey(tableOrName, foreignKey)];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3:\n foreignKeys_1_1 = foreignKeys_1.next();\n return [3 /*break*/, 1];\n case 4: return [3 /*break*/, 7];\n case 5:\n e_8_1 = _b.sent();\n e_8 = { error: e_8_1 };\n return [3 /*break*/, 7];\n case 6:\n try {\n if (foreignKeys_1_1 && !foreignKeys_1_1.done && (_a = foreignKeys_1.return)) _a.call(foreignKeys_1);\n }\n finally { if (e_8) throw e_8.error; }\n return [7 /*endfinally*/];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops a foreign key from the table.\n */\n PostgresQueryRunner.prototype.dropForeignKey = function (tableOrName, foreignKeyOrName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, foreignKey, up, down;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n foreignKey = foreignKeyOrName instanceof _schema_builder_table_TableForeignKey__WEBPACK_IMPORTED_MODULE_10__[\"TableForeignKey\"] ? foreignKeyOrName : table.foreignKeys.find(function (fk) { return fk.name === foreignKeyOrName; });\n if (!foreignKey)\n throw new Error(\"Supplied foreign key was not found in table \" + table.name);\n up = this.dropForeignKeySql(table, foreignKey);\n down = this.createForeignKeySql(table, foreignKey);\n return [4 /*yield*/, this.executeQueries(up, down)];\n case 4:\n _b.sent();\n table.removeForeignKey(foreignKey);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops a foreign keys from the table.\n */\n PostgresQueryRunner.prototype.dropForeignKeys = function (tableOrName, foreignKeys) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var foreignKeys_2, foreignKeys_2_1, foreignKey, e_9_1;\n var e_9, _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 7]);\n foreignKeys_2 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(foreignKeys), foreignKeys_2_1 = foreignKeys_2.next();\n _b.label = 1;\n case 1:\n if (!!foreignKeys_2_1.done) return [3 /*break*/, 4];\n foreignKey = foreignKeys_2_1.value;\n return [4 /*yield*/, this.dropForeignKey(tableOrName, foreignKey)];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3:\n foreignKeys_2_1 = foreignKeys_2.next();\n return [3 /*break*/, 1];\n case 4: return [3 /*break*/, 7];\n case 5:\n e_9_1 = _b.sent();\n e_9 = { error: e_9_1 };\n return [3 /*break*/, 7];\n case 6:\n try {\n if (foreignKeys_2_1 && !foreignKeys_2_1.done && (_a = foreignKeys_2.return)) _a.call(foreignKeys_2);\n }\n finally { if (e_9) throw e_9.error; }\n return [7 /*endfinally*/];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a new index.\n */\n PostgresQueryRunner.prototype.createIndex = function (tableOrName, index) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, up, down;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n // new index may be passed without name. In this case we generate index name manually.\n if (!index.name)\n index.name = this.connection.namingStrategy.indexName(table.name, index.columnNames, index.where);\n up = this.createIndexSql(table, index);\n down = this.dropIndexSql(table, index);\n return [4 /*yield*/, this.executeQueries(up, down)];\n case 4:\n _b.sent();\n table.addIndex(index);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a new indices\n */\n PostgresQueryRunner.prototype.createIndices = function (tableOrName, indices) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var indices_1, indices_1_1, index, e_10_1;\n var e_10, _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 7]);\n indices_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(indices), indices_1_1 = indices_1.next();\n _b.label = 1;\n case 1:\n if (!!indices_1_1.done) return [3 /*break*/, 4];\n index = indices_1_1.value;\n return [4 /*yield*/, this.createIndex(tableOrName, index)];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3:\n indices_1_1 = indices_1.next();\n return [3 /*break*/, 1];\n case 4: return [3 /*break*/, 7];\n case 5:\n e_10_1 = _b.sent();\n e_10 = { error: e_10_1 };\n return [3 /*break*/, 7];\n case 6:\n try {\n if (indices_1_1 && !indices_1_1.done && (_a = indices_1.return)) _a.call(indices_1);\n }\n finally { if (e_10) throw e_10.error; }\n return [7 /*endfinally*/];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops an index from the table.\n */\n PostgresQueryRunner.prototype.dropIndex = function (tableOrName, indexOrName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, index, up, down;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n index = indexOrName instanceof _schema_builder_table_TableIndex__WEBPACK_IMPORTED_MODULE_11__[\"TableIndex\"] ? indexOrName : table.indices.find(function (i) { return i.name === indexOrName; });\n if (!index)\n throw new Error(\"Supplied index was not found in table \" + table.name);\n up = this.dropIndexSql(table, index);\n down = this.createIndexSql(table, index);\n return [4 /*yield*/, this.executeQueries(up, down)];\n case 4:\n _b.sent();\n table.removeIndex(index);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops an indices from the table.\n */\n PostgresQueryRunner.prototype.dropIndices = function (tableOrName, indices) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var indices_2, indices_2_1, index, e_11_1;\n var e_11, _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 7]);\n indices_2 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(indices), indices_2_1 = indices_2.next();\n _b.label = 1;\n case 1:\n if (!!indices_2_1.done) return [3 /*break*/, 4];\n index = indices_2_1.value;\n return [4 /*yield*/, this.dropIndex(tableOrName, index)];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3:\n indices_2_1 = indices_2.next();\n return [3 /*break*/, 1];\n case 4: return [3 /*break*/, 7];\n case 5:\n e_11_1 = _b.sent();\n e_11 = { error: e_11_1 };\n return [3 /*break*/, 7];\n case 6:\n try {\n if (indices_2_1 && !indices_2_1.done && (_a = indices_2.return)) _a.call(indices_2);\n }\n finally { if (e_11) throw e_11.error; }\n return [7 /*endfinally*/];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Clears all table contents.\n * Note: this operation uses SQL's TRUNCATE query which cannot be reverted in transactions.\n */\n PostgresQueryRunner.prototype.clearTable = function (tableName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.query(\"TRUNCATE TABLE \" + this.escapePath(tableName))];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Removes all tables from the currently connected database.\n */\n PostgresQueryRunner.prototype.clearDatabase = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var schemas, schemaNamesString, selectViewDropsQuery, dropViewQueries, selectTableDropsQuery, dropTableQueries, error_1, rollbackError_1;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n schemas = [];\n this.connection.entityMetadatas\n .filter(function (metadata) { return metadata.schema; })\n .forEach(function (metadata) {\n var isSchemaExist = !!schemas.find(function (schema) { return schema === metadata.schema; });\n if (!isSchemaExist)\n schemas.push(metadata.schema);\n });\n schemas.push(this.driver.options.schema || \"current_schema()\");\n schemaNamesString = schemas.map(function (name) {\n return name === \"current_schema()\" ? name : \"'\" + name + \"'\";\n }).join(\", \");\n return [4 /*yield*/, this.startTransaction()];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n _a.trys.push([2, 9, , 14]);\n selectViewDropsQuery = \"SELECT 'DROP VIEW IF EXISTS \\\"' || schemaname || '\\\".\\\"' || viewname || '\\\" CASCADE;' as \\\"query\\\" \" +\n (\"FROM \\\"pg_views\\\" WHERE \\\"schemaname\\\" IN (\" + schemaNamesString + \") AND \\\"viewname\\\" NOT IN ('geography_columns', 'geometry_columns', 'raster_columns', 'raster_overviews')\");\n return [4 /*yield*/, this.query(selectViewDropsQuery)];\n case 3:\n dropViewQueries = _a.sent();\n return [4 /*yield*/, Promise.all(dropViewQueries.map(function (q) { return _this.query(q[\"query\"]); }))];\n case 4:\n _a.sent();\n 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')\";\n return [4 /*yield*/, this.query(selectTableDropsQuery)];\n case 5:\n dropTableQueries = _a.sent();\n return [4 /*yield*/, Promise.all(dropTableQueries.map(function (q) { return _this.query(q[\"query\"]); }))];\n case 6:\n _a.sent();\n return [4 /*yield*/, this.dropEnumTypes(schemaNamesString)];\n case 7:\n _a.sent();\n return [4 /*yield*/, this.commitTransaction()];\n case 8:\n _a.sent();\n return [3 /*break*/, 14];\n case 9:\n error_1 = _a.sent();\n _a.label = 10;\n case 10:\n _a.trys.push([10, 12, , 13]);\n return [4 /*yield*/, this.rollbackTransaction()];\n case 11:\n _a.sent();\n return [3 /*break*/, 13];\n case 12:\n rollbackError_1 = _a.sent();\n return [3 /*break*/, 13];\n case 13: throw error_1;\n case 14: return [2 /*return*/];\n }\n });\n });\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n PostgresQueryRunner.prototype.loadViews = function (viewNames) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var hasTable, currentSchemaQuery, currentSchema, viewsCondition, query, dbViews;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.hasTable(this.getTypeormMetadataTableName())];\n case 1:\n hasTable = _a.sent();\n if (!hasTable)\n return [2 /*return*/, Promise.resolve([])];\n return [4 /*yield*/, this.query(\"SELECT * FROM current_schema()\")];\n case 2:\n currentSchemaQuery = _a.sent();\n currentSchema = currentSchemaQuery[0][\"current_schema\"];\n viewsCondition = viewNames.map(function (viewName) {\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(viewName.split(\".\"), 2), schema = _a[0], name = _a[1];\n if (!name) {\n name = schema;\n schema = _this.driver.options.schema || currentSchema;\n }\n return \"(\\\"t\\\".\\\"schema\\\" = '\" + schema + \"' AND \\\"t\\\".\\\"name\\\" = '\" + name + \"')\";\n }).join(\" OR \");\n query = \"SELECT \\\"t\\\".*, \\\"v\\\".\\\"check_option\\\" FROM \" + this.escapePath(this.getTypeormMetadataTableName()) + \" \\\"t\\\" \" +\n (\"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 + \")\" : \"\"));\n return [4 /*yield*/, this.query(query)];\n case 3:\n dbViews = _a.sent();\n return [2 /*return*/, dbViews.map(function (dbView) {\n var view = new _schema_builder_view_View__WEBPACK_IMPORTED_MODULE_13__[\"View\"]();\n var schema = dbView[\"schema\"] === currentSchema && !_this.driver.options.schema ? undefined : dbView[\"schema\"];\n view.name = _this.driver.buildTableName(dbView[\"name\"], schema);\n view.expression = dbView[\"value\"];\n return view;\n })];\n }\n });\n });\n };\n /**\n * Loads all tables (with given names) from the database and creates a Table from them.\n */\n PostgresQueryRunner.prototype.loadTables = function (tableNames) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var currentSchemaQuery, currentSchema, tablesCondition, tablesSql, columnsSql, constraintsCondition, constraintsSql, indicesSql, foreignKeysCondition, hasRelispartitionColumn, isPartitionCondition, foreignKeysSql, _a, dbTables, dbColumns, dbConstraints, dbIndices, dbForeignKeys;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n // if no tables given then no need to proceed\n if (!tableNames || !tableNames.length)\n return [2 /*return*/, []];\n return [4 /*yield*/, this.query(\"SELECT * FROM current_schema()\")];\n case 1:\n currentSchemaQuery = _b.sent();\n currentSchema = currentSchemaQuery[0][\"current_schema\"];\n tablesCondition = tableNames.map(function (tableName) {\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(tableName.split(\".\"), 2), schema = _a[0], name = _a[1];\n if (!name) {\n name = schema;\n schema = _this.driver.options.schema || currentSchema;\n }\n return \"(\\\"table_schema\\\" = '\" + schema + \"' AND \\\"table_name\\\" = '\" + name + \"')\";\n }).join(\" OR \");\n tablesSql = \"SELECT * FROM \\\"information_schema\\\".\\\"tables\\\" WHERE \" + tablesCondition;\n 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;\n constraintsCondition = tableNames.map(function (tableName) {\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(tableName.split(\".\"), 2), schema = _a[0], name = _a[1];\n if (!name) {\n name = schema;\n schema = _this.driver.options.schema || currentSchema;\n }\n return \"(\\\"ns\\\".\\\"nspname\\\" = '\" + schema + \"' AND \\\"t\\\".\\\"relname\\\" = '\" + name + \"')\";\n }).join(\" OR \");\n constraintsSql = \"SELECT \\\"ns\\\".\\\"nspname\\\" AS \\\"table_schema\\\", \\\"t\\\".\\\"relname\\\" AS \\\"table_name\\\", \\\"cnst\\\".\\\"conname\\\" AS \\\"constraint_name\\\", \" +\n \"pg_get_constraintdef(\\\"cnst\\\".\\\"oid\\\") AS \\\"expression\\\", \" +\n \"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\\\" \" +\n \"FROM \\\"pg_constraint\\\" \\\"cnst\\\" \" +\n \"INNER JOIN \\\"pg_class\\\" \\\"t\\\" ON \\\"t\\\".\\\"oid\\\" = \\\"cnst\\\".\\\"conrelid\\\" \" +\n \"INNER JOIN \\\"pg_namespace\\\" \\\"ns\\\" ON \\\"ns\\\".\\\"oid\\\" = \\\"cnst\\\".\\\"connamespace\\\" \" +\n \"LEFT JOIN \\\"pg_attribute\\\" \\\"a\\\" ON \\\"a\\\".\\\"attrelid\\\" = \\\"cnst\\\".\\\"conrelid\\\" AND \\\"a\\\".\\\"attnum\\\" = ANY (\\\"cnst\\\".\\\"conkey\\\") \" +\n (\"WHERE \\\"t\\\".\\\"relkind\\\" IN ('r', 'p') AND (\" + constraintsCondition + \")\");\n indicesSql = \"SELECT \\\"ns\\\".\\\"nspname\\\" AS \\\"table_schema\\\", \\\"t\\\".\\\"relname\\\" AS \\\"table_name\\\", \\\"i\\\".\\\"relname\\\" AS \\\"constraint_name\\\", \\\"a\\\".\\\"attname\\\" AS \\\"column_name\\\", \" +\n \"CASE \\\"ix\\\".\\\"indisunique\\\" WHEN 't' THEN 'TRUE' ELSE'FALSE' END AS \\\"is_unique\\\", pg_get_expr(\\\"ix\\\".\\\"indpred\\\", \\\"ix\\\".\\\"indrelid\\\") AS \\\"condition\\\", \" +\n \"\\\"types\\\".\\\"typname\\\" AS \\\"type_name\\\" \" +\n \"FROM \\\"pg_class\\\" \\\"t\\\" \" +\n \"INNER JOIN \\\"pg_index\\\" \\\"ix\\\" ON \\\"ix\\\".\\\"indrelid\\\" = \\\"t\\\".\\\"oid\\\" \" +\n \"INNER JOIN \\\"pg_attribute\\\" \\\"a\\\" ON \\\"a\\\".\\\"attrelid\\\" = \\\"t\\\".\\\"oid\\\" AND \\\"a\\\".\\\"attnum\\\" = ANY (\\\"ix\\\".\\\"indkey\\\") \" +\n \"INNER JOIN \\\"pg_namespace\\\" \\\"ns\\\" ON \\\"ns\\\".\\\"oid\\\" = \\\"t\\\".\\\"relnamespace\\\" \" +\n \"INNER JOIN \\\"pg_class\\\" \\\"i\\\" ON \\\"i\\\".\\\"oid\\\" = \\\"ix\\\".\\\"indexrelid\\\" \" +\n \"INNER JOIN \\\"pg_type\\\" \\\"types\\\" ON \\\"types\\\".\\\"oid\\\" = \\\"a\\\".\\\"atttypid\\\" \" +\n \"LEFT JOIN \\\"pg_constraint\\\" \\\"cnst\\\" ON \\\"cnst\\\".\\\"conname\\\" = \\\"i\\\".\\\"relname\\\" \" +\n (\"WHERE \\\"t\\\".\\\"relkind\\\" IN ('r', 'p') AND \\\"cnst\\\".\\\"contype\\\" IS NULL AND (\" + constraintsCondition + \")\");\n foreignKeysCondition = tableNames.map(function (tableName) {\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(tableName.split(\".\"), 2), schema = _a[0], name = _a[1];\n if (!name) {\n name = schema;\n schema = _this.driver.options.schema || currentSchema;\n }\n return \"(\\\"ns\\\".\\\"nspname\\\" = '\" + schema + \"' AND \\\"cl\\\".\\\"relname\\\" = '\" + name + \"')\";\n }).join(\" OR \");\n return [4 /*yield*/, this.hasSupportForPartitionedTables()];\n case 2:\n hasRelispartitionColumn = _b.sent();\n isPartitionCondition = hasRelispartitionColumn ? \" AND \\\"cl\\\".\\\"relispartition\\\" = 'f'\" : \"\";\n foreignKeysSql = \"SELECT \\\"con\\\".\\\"conname\\\" AS \\\"constraint_name\\\", \\\"con\\\".\\\"nspname\\\" AS \\\"table_schema\\\", \\\"con\\\".\\\"relname\\\" AS \\\"table_name\\\", \\\"att2\\\".\\\"attname\\\" AS \\\"column_name\\\", \" +\n \"\\\"ns\\\".\\\"nspname\\\" AS \\\"referenced_table_schema\\\", \\\"cl\\\".\\\"relname\\\" AS \\\"referenced_table_name\\\", \\\"att\\\".\\\"attname\\\" AS \\\"referenced_column_name\\\", \\\"con\\\".\\\"confdeltype\\\" AS \\\"on_delete\\\", \" +\n \"\\\"con\\\".\\\"confupdtype\\\" AS \\\"on_update\\\", \\\"con\\\".\\\"condeferrable\\\" AS \\\"deferrable\\\", \\\"con\\\".\\\"condeferred\\\" AS \\\"deferred\\\" \" +\n \"FROM ( \" +\n \"SELECT UNNEST (\\\"con1\\\".\\\"conkey\\\") AS \\\"parent\\\", UNNEST (\\\"con1\\\".\\\"confkey\\\") AS \\\"child\\\", \\\"con1\\\".\\\"confrelid\\\", \\\"con1\\\".\\\"conrelid\\\", \\\"con1\\\".\\\"conname\\\", \\\"con1\\\".\\\"contype\\\", \\\"ns\\\".\\\"nspname\\\", \" +\n \"\\\"cl\\\".\\\"relname\\\", \\\"con1\\\".\\\"condeferrable\\\", \" +\n \"CASE WHEN \\\"con1\\\".\\\"condeferred\\\" THEN 'INITIALLY DEFERRED' ELSE 'INITIALLY IMMEDIATE' END as condeferred, \" +\n \"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\\\", \" +\n \"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\\\" \" +\n \"FROM \\\"pg_class\\\" \\\"cl\\\" \" +\n \"INNER JOIN \\\"pg_namespace\\\" \\\"ns\\\" ON \\\"cl\\\".\\\"relnamespace\\\" = \\\"ns\\\".\\\"oid\\\" \" +\n \"INNER JOIN \\\"pg_constraint\\\" \\\"con1\\\" ON \\\"con1\\\".\\\"conrelid\\\" = \\\"cl\\\".\\\"oid\\\" \" +\n (\"WHERE \\\"con1\\\".\\\"contype\\\" = 'f' AND (\" + foreignKeysCondition + \") \") +\n \") \\\"con\\\" \" +\n \"INNER JOIN \\\"pg_attribute\\\" \\\"att\\\" ON \\\"att\\\".\\\"attrelid\\\" = \\\"con\\\".\\\"confrelid\\\" AND \\\"att\\\".\\\"attnum\\\" = \\\"con\\\".\\\"child\\\" \" +\n (\"INNER JOIN \\\"pg_class\\\" \\\"cl\\\" ON \\\"cl\\\".\\\"oid\\\" = \\\"con\\\".\\\"confrelid\\\" \" + isPartitionCondition) +\n \"INNER JOIN \\\"pg_namespace\\\" \\\"ns\\\" ON \\\"cl\\\".\\\"relnamespace\\\" = \\\"ns\\\".\\\"oid\\\" \" +\n \"INNER JOIN \\\"pg_attribute\\\" \\\"att2\\\" ON \\\"att2\\\".\\\"attrelid\\\" = \\\"con\\\".\\\"conrelid\\\" AND \\\"att2\\\".\\\"attnum\\\" = \\\"con\\\".\\\"parent\\\"\";\n return [4 /*yield*/, Promise.all([\n this.query(tablesSql),\n this.query(columnsSql),\n this.query(constraintsSql),\n this.query(indicesSql),\n this.query(foreignKeysSql),\n ])];\n case 3:\n _a = tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"].apply(void 0, [_b.sent(), 5]), dbTables = _a[0], dbColumns = _a[1], dbConstraints = _a[2], dbIndices = _a[3], dbForeignKeys = _a[4];\n // if tables were not found in the db, no need to proceed\n if (!dbTables.length)\n return [2 /*return*/, []];\n // create tables for loaded tables\n return [2 /*return*/, Promise.all(dbTables.map(function (dbTable) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n var table, getSchemaFromKey, schema, tableFullName, _a, tableUniqueConstraints, tableCheckConstraints, tableExclusionConstraints, tableForeignKeyConstraints, tableIndexConstraints;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n table = new _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"]();\n getSchemaFromKey = function (dbObject, key) { return dbObject[key] === currentSchema && !_this.driver.options.schema ? undefined : dbObject[key]; };\n schema = getSchemaFromKey(dbTable, \"table_schema\");\n table.name = this.driver.buildTableName(dbTable[\"table_name\"], schema);\n tableFullName = this.driver.buildTableName(dbTable[\"table_name\"], dbTable[\"table_schema\"]);\n // create columns from the loaded columns\n _a = table;\n return [4 /*yield*/, Promise.all(dbColumns\n .filter(function (dbColumn) { return _this.driver.buildTableName(dbColumn[\"table_name\"], dbColumn[\"table_schema\"]) === tableFullName; })\n .map(function (dbColumn) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n var columnConstraints, tableColumn, type, enumTypeName, builtEnumName, sql, results, geometryColumnSql, results, geographyColumnSql, results, length_1, match, uniqueConstraint, isConstraintComposite;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n columnConstraints = dbConstraints.filter(function (dbConstraint) {\n return _this.driver.buildTableName(dbConstraint[\"table_name\"], dbConstraint[\"table_schema\"]) === tableFullName && dbConstraint[\"column_name\"] === dbColumn[\"column_name\"];\n });\n tableColumn = new _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_8__[\"TableColumn\"]();\n tableColumn.name = dbColumn[\"column_name\"];\n tableColumn.type = dbColumn[\"regtype\"].toLowerCase();\n if (tableColumn.type === \"numeric\" || tableColumn.type === \"decimal\" || tableColumn.type === \"float\") {\n // If one of these properties was set, and another was not, Postgres sets '0' in to unspecified property\n // we set 'undefined' in to unspecified property to avoid changing column on sync\n if (dbColumn[\"numeric_precision\"] !== null && !this.isDefaultColumnPrecision(table, tableColumn, dbColumn[\"numeric_precision\"])) {\n tableColumn.precision = dbColumn[\"numeric_precision\"];\n }\n else if (dbColumn[\"numeric_scale\"] !== null && !this.isDefaultColumnScale(table, tableColumn, dbColumn[\"numeric_scale\"])) {\n tableColumn.precision = undefined;\n }\n if (dbColumn[\"numeric_scale\"] !== null && !this.isDefaultColumnScale(table, tableColumn, dbColumn[\"numeric_scale\"])) {\n tableColumn.scale = dbColumn[\"numeric_scale\"];\n }\n else if (dbColumn[\"numeric_precision\"] !== null && !this.isDefaultColumnPrecision(table, tableColumn, dbColumn[\"numeric_precision\"])) {\n tableColumn.scale = undefined;\n }\n }\n if (dbColumn[\"data_type\"].toLowerCase() === \"array\") {\n tableColumn.isArray = true;\n type = tableColumn.type.replace(\"[]\", \"\");\n tableColumn.type = this.connection.driver.normalizeType({ type: type });\n }\n if (tableColumn.type === \"interval\"\n || tableColumn.type === \"time without time zone\"\n || tableColumn.type === \"time with time zone\"\n || tableColumn.type === \"timestamp without time zone\"\n || tableColumn.type === \"timestamp with time zone\") {\n tableColumn.precision = !this.isDefaultColumnPrecision(table, tableColumn, dbColumn[\"datetime_precision\"]) ? dbColumn[\"datetime_precision\"] : undefined;\n }\n if (!(tableColumn.type.indexOf(\"enum\") !== -1)) return [3 /*break*/, 3];\n return [4 /*yield*/, this.getEnumTypeName(table, tableColumn)];\n case 1:\n enumTypeName = (_a.sent()).enumTypeName;\n builtEnumName = this.buildEnumName(table, tableColumn, false, true);\n if (builtEnumName !== enumTypeName)\n tableColumn.enumName = enumTypeName;\n tableColumn.type = \"enum\";\n sql = \"SELECT \\\"e\\\".\\\"enumlabel\\\" AS \\\"value\\\" FROM \\\"pg_enum\\\" \\\"e\\\" \" +\n \"INNER JOIN \\\"pg_type\\\" \\\"t\\\" ON \\\"t\\\".\\\"oid\\\" = \\\"e\\\".\\\"enumtypid\\\" \" +\n \"INNER JOIN \\\"pg_namespace\\\" \\\"n\\\" ON \\\"n\\\".\\\"oid\\\" = \\\"t\\\".\\\"typnamespace\\\" \" +\n (\"WHERE \\\"n\\\".\\\"nspname\\\" = '\" + dbTable[\"table_schema\"] + \"' AND \\\"t\\\".\\\"typname\\\" = '\" + this.buildEnumName(table, tableColumn, false, true) + \"'\");\n return [4 /*yield*/, this.query(sql)];\n case 2:\n results = _a.sent();\n tableColumn.enum = results.map(function (result) { return result[\"value\"]; });\n _a.label = 3;\n case 3:\n if (!(tableColumn.type === \"geometry\")) return [3 /*break*/, 5];\n 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\"] + \"'\";\n return [4 /*yield*/, this.query(geometryColumnSql)];\n case 4:\n results = _a.sent();\n tableColumn.spatialFeatureType = results[0].type;\n tableColumn.srid = results[0].srid;\n _a.label = 5;\n case 5:\n if (!(tableColumn.type === \"geography\")) return [3 /*break*/, 7];\n 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\"] + \"'\";\n return [4 /*yield*/, this.query(geographyColumnSql)];\n case 6:\n results = _a.sent();\n tableColumn.spatialFeatureType = results[0].type;\n tableColumn.srid = results[0].srid;\n _a.label = 7;\n case 7:\n // check only columns that have length property\n if (this.driver.withLengthColumnTypes.indexOf(tableColumn.type) !== -1) {\n if (tableColumn.isArray) {\n match = /\\((\\d+)\\)/.exec(dbColumn[\"format_type\"]);\n length_1 = match ? match[1] : undefined;\n }\n else if (dbColumn[\"character_maximum_length\"]) {\n length_1 = dbColumn[\"character_maximum_length\"].toString();\n }\n if (length_1) {\n tableColumn.length = !this.isDefaultColumnLength(table, tableColumn, length_1) ? length_1 : \"\";\n }\n }\n tableColumn.isNullable = dbColumn[\"is_nullable\"] === \"YES\";\n tableColumn.isPrimary = !!columnConstraints.find(function (constraint) { return constraint[\"constraint_type\"] === \"PRIMARY\"; });\n uniqueConstraint = columnConstraints.find(function (constraint) { return constraint[\"constraint_type\"] === \"UNIQUE\"; });\n isConstraintComposite = uniqueConstraint\n ? !!dbConstraints.find(function (dbConstraint) { return dbConstraint[\"constraint_type\"] === \"UNIQUE\"\n && dbConstraint[\"constraint_name\"] === uniqueConstraint[\"constraint_name\"]\n && dbConstraint[\"column_name\"] !== dbColumn[\"column_name\"]; })\n : false;\n tableColumn.isUnique = !!uniqueConstraint && !isConstraintComposite;\n if (dbColumn[\"column_default\"] !== null && dbColumn[\"column_default\"] !== undefined) {\n if (dbColumn[\"column_default\"].replace(/\"/gi, \"\") === \"nextval('\" + this.buildSequenceName(table, dbColumn[\"column_name\"], currentSchema, true) + \"'::regclass)\") {\n tableColumn.isGenerated = true;\n tableColumn.generationStrategy = \"increment\";\n }\n else if (dbColumn[\"column_default\"] === \"gen_random_uuid()\" || /^uuid_generate_v\\d\\(\\)/.test(dbColumn[\"column_default\"])) {\n tableColumn.isGenerated = true;\n tableColumn.generationStrategy = \"uuid\";\n }\n else {\n tableColumn.default = dbColumn[\"column_default\"].replace(/::.*/, \"\");\n tableColumn.default = tableColumn.default.replace(/^(-?\\d+)$/, \"'$1'\");\n }\n }\n tableColumn.comment = dbColumn[\"description\"] ? dbColumn[\"description\"] : undefined;\n if (dbColumn[\"character_set_name\"])\n tableColumn.charset = dbColumn[\"character_set_name\"];\n if (dbColumn[\"collation_name\"])\n tableColumn.collation = dbColumn[\"collation_name\"];\n return [2 /*return*/, tableColumn];\n }\n });\n }); }))];\n case 1:\n // create columns from the loaded columns\n _a.columns = _b.sent();\n tableUniqueConstraints = _util_OrmUtils__WEBPACK_IMPORTED_MODULE_15__[\"OrmUtils\"].uniq(dbConstraints.filter(function (dbConstraint) {\n return _this.driver.buildTableName(dbConstraint[\"table_name\"], dbConstraint[\"table_schema\"]) === tableFullName\n && dbConstraint[\"constraint_type\"] === \"UNIQUE\";\n }), function (dbConstraint) { return dbConstraint[\"constraint_name\"]; });\n table.uniques = tableUniqueConstraints.map(function (constraint) {\n var uniques = dbConstraints.filter(function (dbC) { return dbC[\"constraint_name\"] === constraint[\"constraint_name\"]; });\n return new _schema_builder_table_TableUnique__WEBPACK_IMPORTED_MODULE_12__[\"TableUnique\"]({\n name: constraint[\"constraint_name\"],\n columnNames: uniques.map(function (u) { return u[\"column_name\"]; })\n });\n });\n tableCheckConstraints = _util_OrmUtils__WEBPACK_IMPORTED_MODULE_15__[\"OrmUtils\"].uniq(dbConstraints.filter(function (dbConstraint) {\n return _this.driver.buildTableName(dbConstraint[\"table_name\"], dbConstraint[\"table_schema\"]) === tableFullName\n && dbConstraint[\"constraint_type\"] === \"CHECK\";\n }), function (dbConstraint) { return dbConstraint[\"constraint_name\"]; });\n table.checks = tableCheckConstraints.map(function (constraint) {\n var checks = dbConstraints.filter(function (dbC) { return dbC[\"constraint_name\"] === constraint[\"constraint_name\"]; });\n return new _schema_builder_table_TableCheck__WEBPACK_IMPORTED_MODULE_7__[\"TableCheck\"]({\n name: constraint[\"constraint_name\"],\n columnNames: checks.map(function (c) { return c[\"column_name\"]; }),\n expression: constraint[\"expression\"].replace(/^\\s*CHECK\\s*\\((.*)\\)\\s*$/i, \"$1\")\n });\n });\n tableExclusionConstraints = _util_OrmUtils__WEBPACK_IMPORTED_MODULE_15__[\"OrmUtils\"].uniq(dbConstraints.filter(function (dbConstraint) {\n return _this.driver.buildTableName(dbConstraint[\"table_name\"], dbConstraint[\"table_schema\"]) === tableFullName\n && dbConstraint[\"constraint_type\"] === \"EXCLUDE\";\n }), function (dbConstraint) { return dbConstraint[\"constraint_name\"]; });\n table.exclusions = tableExclusionConstraints.map(function (constraint) {\n return new _schema_builder_table_TableExclusion__WEBPACK_IMPORTED_MODULE_9__[\"TableExclusion\"]({\n name: constraint[\"constraint_name\"],\n expression: constraint[\"expression\"].substring(8) // trim EXCLUDE from start of expression\n });\n });\n tableForeignKeyConstraints = _util_OrmUtils__WEBPACK_IMPORTED_MODULE_15__[\"OrmUtils\"].uniq(dbForeignKeys.filter(function (dbForeignKey) {\n return _this.driver.buildTableName(dbForeignKey[\"table_name\"], dbForeignKey[\"table_schema\"]) === tableFullName;\n }), function (dbForeignKey) { return dbForeignKey[\"constraint_name\"]; });\n table.foreignKeys = tableForeignKeyConstraints.map(function (dbForeignKey) {\n var foreignKeys = dbForeignKeys.filter(function (dbFk) { return dbFk[\"constraint_name\"] === dbForeignKey[\"constraint_name\"]; });\n // if referenced table located in currently used schema, we don't need to concat schema name to table name.\n var schema = getSchemaFromKey(dbForeignKey, \"referenced_table_schema\");\n var referencedTableName = _this.driver.buildTableName(dbForeignKey[\"referenced_table_name\"], schema);\n return new _schema_builder_table_TableForeignKey__WEBPACK_IMPORTED_MODULE_10__[\"TableForeignKey\"]({\n name: dbForeignKey[\"constraint_name\"],\n columnNames: foreignKeys.map(function (dbFk) { return dbFk[\"column_name\"]; }),\n referencedTableName: referencedTableName,\n referencedColumnNames: foreignKeys.map(function (dbFk) { return dbFk[\"referenced_column_name\"]; }),\n onDelete: dbForeignKey[\"on_delete\"],\n onUpdate: dbForeignKey[\"on_update\"],\n deferrable: dbForeignKey[\"deferrable\"] ? dbForeignKey[\"deferred\"] : undefined,\n });\n });\n tableIndexConstraints = _util_OrmUtils__WEBPACK_IMPORTED_MODULE_15__[\"OrmUtils\"].uniq(dbIndices.filter(function (dbIndex) {\n return _this.driver.buildTableName(dbIndex[\"table_name\"], dbIndex[\"table_schema\"]) === tableFullName;\n }), function (dbIndex) { return dbIndex[\"constraint_name\"]; });\n table.indices = tableIndexConstraints.map(function (constraint) {\n var indices = dbIndices.filter(function (index) {\n return index[\"table_schema\"] === constraint[\"table_schema\"]\n && index[\"table_name\"] === constraint[\"table_name\"]\n && index[\"constraint_name\"] === constraint[\"constraint_name\"];\n });\n return new _schema_builder_table_TableIndex__WEBPACK_IMPORTED_MODULE_11__[\"TableIndex\"]({\n table: table,\n name: constraint[\"constraint_name\"],\n columnNames: indices.map(function (i) { return i[\"column_name\"]; }),\n isUnique: constraint[\"is_unique\"] === \"TRUE\",\n where: constraint[\"condition\"],\n isSpatial: indices.every(function (i) { return _this.driver.spatialTypes.indexOf(i[\"type_name\"]) >= 0; }),\n isFulltext: false\n });\n });\n return [2 /*return*/, table];\n }\n });\n }); }))];\n }\n });\n });\n };\n /**\n * Builds create table sql.\n */\n PostgresQueryRunner.prototype.createTableSql = function (table, createForeignKeys) {\n var _this = this;\n var columnDefinitions = table.columns.map(function (column) { return _this.buildCreateColumnSql(table, column); }).join(\", \");\n var sql = \"CREATE TABLE \" + this.escapePath(table) + \" (\" + columnDefinitions;\n table.columns\n .filter(function (column) { return column.isUnique; })\n .forEach(function (column) {\n var isUniqueExist = table.uniques.some(function (unique) { return unique.columnNames.length === 1 && unique.columnNames[0] === column.name; });\n if (!isUniqueExist)\n table.uniques.push(new _schema_builder_table_TableUnique__WEBPACK_IMPORTED_MODULE_12__[\"TableUnique\"]({\n name: _this.connection.namingStrategy.uniqueConstraintName(table.name, [column.name]),\n columnNames: [column.name]\n }));\n });\n if (table.uniques.length > 0) {\n var uniquesSql = table.uniques.map(function (unique) {\n var uniqueName = unique.name ? unique.name : _this.connection.namingStrategy.uniqueConstraintName(table.name, unique.columnNames);\n var columnNames = unique.columnNames.map(function (columnName) { return \"\\\"\" + columnName + \"\\\"\"; }).join(\", \");\n return \"CONSTRAINT \\\"\" + uniqueName + \"\\\" UNIQUE (\" + columnNames + \")\";\n }).join(\", \");\n sql += \", \" + uniquesSql;\n }\n if (table.checks.length > 0) {\n var checksSql = table.checks.map(function (check) {\n var checkName = check.name ? check.name : _this.connection.namingStrategy.checkConstraintName(table.name, check.expression);\n return \"CONSTRAINT \\\"\" + checkName + \"\\\" CHECK (\" + check.expression + \")\";\n }).join(\", \");\n sql += \", \" + checksSql;\n }\n if (table.exclusions.length > 0) {\n var exclusionsSql = table.exclusions.map(function (exclusion) {\n var exclusionName = exclusion.name ? exclusion.name : _this.connection.namingStrategy.exclusionConstraintName(table.name, exclusion.expression);\n return \"CONSTRAINT \\\"\" + exclusionName + \"\\\" EXCLUDE \" + exclusion.expression;\n }).join(\", \");\n sql += \", \" + exclusionsSql;\n }\n if (table.foreignKeys.length > 0 && createForeignKeys) {\n var foreignKeysSql = table.foreignKeys.map(function (fk) {\n var columnNames = fk.columnNames.map(function (columnName) { return \"\\\"\" + columnName + \"\\\"\"; }).join(\", \");\n if (!fk.name)\n fk.name = _this.connection.namingStrategy.foreignKeyName(table.name, fk.columnNames, fk.referencedTableName, fk.referencedColumnNames);\n var referencedColumnNames = fk.referencedColumnNames.map(function (columnName) { return \"\\\"\" + columnName + \"\\\"\"; }).join(\", \");\n var constraint = \"CONSTRAINT \\\"\" + fk.name + \"\\\" FOREIGN KEY (\" + columnNames + \") REFERENCES \" + _this.escapePath(fk.referencedTableName) + \" (\" + referencedColumnNames + \")\";\n if (fk.onDelete)\n constraint += \" ON DELETE \" + fk.onDelete;\n if (fk.onUpdate)\n constraint += \" ON UPDATE \" + fk.onUpdate;\n if (fk.deferrable)\n constraint += \" DEFERRABLE \" + fk.deferrable;\n return constraint;\n }).join(\", \");\n sql += \", \" + foreignKeysSql;\n }\n var primaryColumns = table.columns.filter(function (column) { return column.isPrimary; });\n if (primaryColumns.length > 0) {\n var primaryKeyName = this.connection.namingStrategy.primaryKeyName(table.name, primaryColumns.map(function (column) { return column.name; }));\n var columnNames = primaryColumns.map(function (column) { return \"\\\"\" + column.name + \"\\\"\"; }).join(\", \");\n sql += \", CONSTRAINT \\\"\" + primaryKeyName + \"\\\" PRIMARY KEY (\" + columnNames + \")\";\n }\n sql += \")\";\n table.columns\n .filter(function (it) { return it.comment; })\n .forEach(function (it) { return sql += \"; COMMENT ON COLUMN \" + _this.escapePath(table) + \".\\\"\" + it.name + \"\\\" IS \" + _this.escapeComment(it.comment); });\n return new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](sql);\n };\n /**\n * Builds drop table sql.\n */\n PostgresQueryRunner.prototype.dropTableSql = function (tableOrPath) {\n return new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"DROP TABLE \" + this.escapePath(tableOrPath));\n };\n PostgresQueryRunner.prototype.createViewSql = function (view) {\n var materializedClause = view.materialized ? \"MATERIALIZED \" : \"\";\n var viewName = this.escapePath(view);\n if (typeof view.expression === \"string\") {\n return new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"CREATE \" + materializedClause + \"VIEW \" + viewName + \" AS \" + view.expression);\n }\n else {\n return new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"CREATE \" + materializedClause + \"VIEW \" + viewName + \" AS \" + view.expression(this.connection).getQuery());\n }\n };\n PostgresQueryRunner.prototype.insertViewDefinitionSql = function (view) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var currentSchemaQuery, currentSchema, splittedName, schema, name, expression, _a, query, parameters;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.query(\"SELECT * FROM current_schema()\")];\n case 1:\n currentSchemaQuery = _b.sent();\n currentSchema = currentSchemaQuery[0][\"current_schema\"];\n splittedName = view.name.split(\".\");\n schema = this.driver.options.schema || currentSchema;\n name = view.name;\n if (splittedName.length === 2) {\n schema = splittedName[0];\n name = splittedName[1];\n }\n expression = typeof view.expression === \"string\" ? view.expression.trim() : view.expression(this.connection).getQuery();\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.connection.createQueryBuilder()\n .insert()\n .into(this.getTypeormMetadataTableName())\n .values({ type: \"VIEW\", schema: schema, name: name, value: expression })\n .getQueryAndParameters(), 2), query = _a[0], parameters = _a[1];\n return [2 /*return*/, new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](query, parameters)];\n }\n });\n });\n };\n /**\n * Builds drop view sql.\n */\n PostgresQueryRunner.prototype.dropViewSql = function (viewOrPath) {\n return new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"DROP VIEW \" + this.escapePath(viewOrPath));\n };\n /**\n * Builds remove view sql.\n */\n PostgresQueryRunner.prototype.deleteViewDefinitionSql = function (viewOrPath) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var currentSchemaQuery, currentSchema, viewName, splittedName, schema, name, qb, _a, query, parameters;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.query(\"SELECT * FROM current_schema()\")];\n case 1:\n currentSchemaQuery = _b.sent();\n currentSchema = currentSchemaQuery[0][\"current_schema\"];\n viewName = viewOrPath instanceof _schema_builder_view_View__WEBPACK_IMPORTED_MODULE_13__[\"View\"] ? viewOrPath.name : viewOrPath;\n splittedName = viewName.split(\".\");\n schema = this.driver.options.schema || currentSchema;\n name = viewName;\n if (splittedName.length === 2) {\n schema = splittedName[0];\n name = splittedName[1];\n }\n qb = this.connection.createQueryBuilder();\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(qb.delete()\n .from(this.getTypeormMetadataTableName())\n .where(qb.escape(\"type\") + \" = 'VIEW'\")\n .andWhere(qb.escape(\"schema\") + \" = :schema\", { schema: schema })\n .andWhere(qb.escape(\"name\") + \" = :name\", { name: name })\n .getQueryAndParameters(), 2), query = _a[0], parameters = _a[1];\n return [2 /*return*/, new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](query, parameters)];\n }\n });\n });\n };\n /**\n * Extracts schema name from given Table object or table name string.\n */\n PostgresQueryRunner.prototype.extractSchema = function (target) {\n var tableName = target instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"] ? target.name : target;\n return tableName.indexOf(\".\") === -1 ? this.driver.options.schema : tableName.split(\".\")[0];\n };\n /**\n * Drops ENUM type from given schemas.\n */\n PostgresQueryRunner.prototype.dropEnumTypes = function (schemaNames) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var selectDropsQuery, dropQueries;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n selectDropsQuery = \"SELECT 'DROP TYPE IF EXISTS \\\"' || n.nspname || '\\\".\\\"' || t.typname || '\\\" CASCADE;' as \\\"query\\\" FROM \\\"pg_type\\\" \\\"t\\\" \" +\n \"INNER JOIN \\\"pg_enum\\\" \\\"e\\\" ON \\\"e\\\".\\\"enumtypid\\\" = \\\"t\\\".\\\"oid\\\" \" +\n \"INNER JOIN \\\"pg_namespace\\\" \\\"n\\\" ON \\\"n\\\".\\\"oid\\\" = \\\"t\\\".\\\"typnamespace\\\" \" +\n (\"WHERE \\\"n\\\".\\\"nspname\\\" IN (\" + schemaNames + \") GROUP BY \\\"n\\\".\\\"nspname\\\", \\\"t\\\".\\\"typname\\\"\");\n return [4 /*yield*/, this.query(selectDropsQuery)];\n case 1:\n dropQueries = _a.sent();\n return [4 /*yield*/, Promise.all(dropQueries.map(function (q) { return _this.query(q[\"query\"]); }))];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Checks if enum with the given name exist in the database.\n */\n PostgresQueryRunner.prototype.hasEnumType = function (table, column) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var schema, enumName, sql, result;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n schema = this.parseTableName(table).schema;\n enumName = this.buildEnumName(table, column, false, true);\n sql = \"SELECT \\\"n\\\".\\\"nspname\\\", \\\"t\\\".\\\"typname\\\" FROM \\\"pg_type\\\" \\\"t\\\" \" +\n \"INNER JOIN \\\"pg_namespace\\\" \\\"n\\\" ON \\\"n\\\".\\\"oid\\\" = \\\"t\\\".\\\"typnamespace\\\" \" +\n (\"WHERE \\\"n\\\".\\\"nspname\\\" = \" + schema + \" AND \\\"t\\\".\\\"typname\\\" = '\" + enumName + \"'\");\n return [4 /*yield*/, this.query(sql)];\n case 1:\n result = _a.sent();\n return [2 /*return*/, result.length ? true : false];\n }\n });\n });\n };\n /**\n * Builds create ENUM type sql.\n */\n PostgresQueryRunner.prototype.createEnumTypeSql = function (table, column, enumName) {\n if (!enumName)\n enumName = this.buildEnumName(table, column);\n var enumValues = column.enum.map(function (value) { return \"'\" + value.replace(\"'\", \"''\") + \"'\"; }).join(\", \");\n return new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"CREATE TYPE \" + enumName + \" AS ENUM(\" + enumValues + \")\");\n };\n /**\n * Builds create ENUM type sql.\n */\n PostgresQueryRunner.prototype.dropEnumTypeSql = function (table, column, enumName) {\n if (!enumName)\n enumName = this.buildEnumName(table, column);\n return new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"DROP TYPE \" + enumName);\n };\n /**\n * Builds create index sql.\n */\n PostgresQueryRunner.prototype.createIndexSql = function (table, index) {\n var columns = index.columnNames.map(function (columnName) { return \"\\\"\" + columnName + \"\\\"\"; }).join(\", \");\n return new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"CREATE \" + (index.isUnique ? \"UNIQUE \" : \"\") + \"INDEX \\\"\" + index.name + \"\\\" ON \" + this.escapePath(table) + \" \" + (index.isSpatial ? \"USING GiST \" : \"\") + \"(\" + columns + \") \" + (index.where ? \"WHERE \" + index.where : \"\"));\n };\n /**\n * Builds drop index sql.\n */\n PostgresQueryRunner.prototype.dropIndexSql = function (table, indexOrName) {\n var indexName = indexOrName instanceof _schema_builder_table_TableIndex__WEBPACK_IMPORTED_MODULE_11__[\"TableIndex\"] ? indexOrName.name : indexOrName;\n var schema = this.extractSchema(table);\n return schema ? new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"DROP INDEX \\\"\" + schema + \"\\\".\\\"\" + indexName + \"\\\"\") : new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"DROP INDEX \\\"\" + indexName + \"\\\"\");\n };\n /**\n * Builds create primary key sql.\n */\n PostgresQueryRunner.prototype.createPrimaryKeySql = function (table, columnNames) {\n var primaryKeyName = this.connection.namingStrategy.primaryKeyName(table.name, columnNames);\n var columnNamesString = columnNames.map(function (columnName) { return \"\\\"\" + columnName + \"\\\"\"; }).join(\", \");\n return new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ADD CONSTRAINT \\\"\" + primaryKeyName + \"\\\" PRIMARY KEY (\" + columnNamesString + \")\");\n };\n /**\n * Builds drop primary key sql.\n */\n PostgresQueryRunner.prototype.dropPrimaryKeySql = function (table) {\n var columnNames = table.primaryColumns.map(function (column) { return column.name; });\n var primaryKeyName = this.connection.namingStrategy.primaryKeyName(table.name, columnNames);\n return new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" DROP CONSTRAINT \\\"\" + primaryKeyName + \"\\\"\");\n };\n /**\n * Builds create unique constraint sql.\n */\n PostgresQueryRunner.prototype.createUniqueConstraintSql = function (table, uniqueConstraint) {\n var columnNames = uniqueConstraint.columnNames.map(function (column) { return \"\\\"\" + column + \"\\\"\"; }).join(\", \");\n return new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ADD CONSTRAINT \\\"\" + uniqueConstraint.name + \"\\\" UNIQUE (\" + columnNames + \")\");\n };\n /**\n * Builds drop unique constraint sql.\n */\n PostgresQueryRunner.prototype.dropUniqueConstraintSql = function (table, uniqueOrName) {\n var uniqueName = uniqueOrName instanceof _schema_builder_table_TableUnique__WEBPACK_IMPORTED_MODULE_12__[\"TableUnique\"] ? uniqueOrName.name : uniqueOrName;\n return new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" DROP CONSTRAINT \\\"\" + uniqueName + \"\\\"\");\n };\n /**\n * Builds create check constraint sql.\n */\n PostgresQueryRunner.prototype.createCheckConstraintSql = function (table, checkConstraint) {\n return new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ADD CONSTRAINT \\\"\" + checkConstraint.name + \"\\\" CHECK (\" + checkConstraint.expression + \")\");\n };\n /**\n * Builds drop check constraint sql.\n */\n PostgresQueryRunner.prototype.dropCheckConstraintSql = function (table, checkOrName) {\n var checkName = checkOrName instanceof _schema_builder_table_TableCheck__WEBPACK_IMPORTED_MODULE_7__[\"TableCheck\"] ? checkOrName.name : checkOrName;\n return new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" DROP CONSTRAINT \\\"\" + checkName + \"\\\"\");\n };\n /**\n * Builds create exclusion constraint sql.\n */\n PostgresQueryRunner.prototype.createExclusionConstraintSql = function (table, exclusionConstraint) {\n return new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" ADD CONSTRAINT \\\"\" + exclusionConstraint.name + \"\\\" EXCLUDE \" + exclusionConstraint.expression);\n };\n /**\n * Builds drop exclusion constraint sql.\n */\n PostgresQueryRunner.prototype.dropExclusionConstraintSql = function (table, exclusionOrName) {\n var exclusionName = exclusionOrName instanceof _schema_builder_table_TableExclusion__WEBPACK_IMPORTED_MODULE_9__[\"TableExclusion\"] ? exclusionOrName.name : exclusionOrName;\n return new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" DROP CONSTRAINT \\\"\" + exclusionName + \"\\\"\");\n };\n /**\n * Builds create foreign key sql.\n */\n PostgresQueryRunner.prototype.createForeignKeySql = function (table, foreignKey) {\n var columnNames = foreignKey.columnNames.map(function (column) { return \"\\\"\" + column + \"\\\"\"; }).join(\", \");\n var referencedColumnNames = foreignKey.referencedColumnNames.map(function (column) { return \"\\\"\" + column + \"\\\"\"; }).join(\",\");\n var sql = \"ALTER TABLE \" + this.escapePath(table) + \" ADD CONSTRAINT \\\"\" + foreignKey.name + \"\\\" FOREIGN KEY (\" + columnNames + \") \" +\n (\"REFERENCES \" + this.escapePath(foreignKey.referencedTableName) + \"(\" + referencedColumnNames + \")\");\n if (foreignKey.onDelete)\n sql += \" ON DELETE \" + foreignKey.onDelete;\n if (foreignKey.onUpdate)\n sql += \" ON UPDATE \" + foreignKey.onUpdate;\n if (foreignKey.deferrable)\n sql += \" DEFERRABLE \" + foreignKey.deferrable;\n return new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](sql);\n };\n /**\n * Builds drop foreign key sql.\n */\n PostgresQueryRunner.prototype.dropForeignKeySql = function (table, foreignKeyOrName) {\n var foreignKeyName = foreignKeyOrName instanceof _schema_builder_table_TableForeignKey__WEBPACK_IMPORTED_MODULE_10__[\"TableForeignKey\"] ? foreignKeyOrName.name : foreignKeyOrName;\n return new _Query__WEBPACK_IMPORTED_MODULE_16__[\"Query\"](\"ALTER TABLE \" + this.escapePath(table) + \" DROP CONSTRAINT \\\"\" + foreignKeyName + \"\\\"\");\n };\n /**\n * Builds sequence name from given table and column.\n */\n PostgresQueryRunner.prototype.buildSequenceName = function (table, columnOrName, currentSchema, disableEscape, skipSchema) {\n var columnName = columnOrName instanceof _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_8__[\"TableColumn\"] ? columnOrName.name : columnOrName;\n var schema = undefined;\n var tableName = undefined;\n if (table.name.indexOf(\".\") === -1) {\n tableName = table.name;\n }\n else {\n schema = table.name.split(\".\")[0];\n tableName = table.name.split(\".\")[1];\n }\n var seqName = tableName + \"_\" + columnName + \"_seq\";\n if (seqName.length > this.connection.driver.maxAliasLength) // note doesn't yet handle corner cases where .length differs from number of UTF-8 bytes\n seqName = tableName.substring(0, 29) + \"_\" + columnName.substring(0, Math.max(29, 63 - tableName.length - 5)) + \"_seq\";\n if (schema && schema !== currentSchema && !skipSchema) {\n return disableEscape ? schema + \".\" + seqName : \"\\\"\" + schema + \"\\\".\\\"\" + seqName + \"\\\"\";\n }\n else {\n return disableEscape ? \"\" + seqName : \"\\\"\" + seqName + \"\\\"\";\n }\n };\n /**\n * Builds ENUM type name from given table and column.\n */\n PostgresQueryRunner.prototype.buildEnumName = function (table, column, withSchema, disableEscape, toOld) {\n if (withSchema === void 0) { withSchema = true; }\n var schema = table.name.indexOf(\".\") === -1 ? this.driver.options.schema : table.name.split(\".\")[0];\n var tableName = table.name.indexOf(\".\") === -1 ? table.name : table.name.split(\".\")[1];\n var enumName = column.enumName ? column.enumName : tableName + \"_\" + column.name.toLowerCase() + \"_enum\";\n if (schema && withSchema)\n enumName = schema + \".\" + enumName;\n if (toOld)\n enumName = enumName + \"_old\";\n return enumName.split(\".\").map(function (i) {\n return disableEscape ? i : \"\\\"\" + i + \"\\\"\";\n }).join(\".\");\n };\n PostgresQueryRunner.prototype.getEnumTypeName = function (table, column) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var currentSchemaQuery, currentSchema, _a, schema, name, result, udtName;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.query(\"SELECT * FROM current_schema()\")];\n case 1:\n currentSchemaQuery = _b.sent();\n currentSchema = currentSchemaQuery[0][\"current_schema\"];\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(table.name.split(\".\"), 2), schema = _a[0], name = _a[1];\n if (!name) {\n name = schema;\n schema = this.driver.options.schema || currentSchema;\n }\n return [4 /*yield*/, this.query(\"SELECT \\\"udt_schema\\\", \\\"udt_name\\\" \" +\n (\"FROM \\\"information_schema\\\".\\\"columns\\\" WHERE \\\"table_schema\\\" = '\" + schema + \"' AND \\\"table_name\\\" = '\" + name + \"' AND \\\"column_name\\\"='\" + column.name + \"'\"))];\n case 2:\n result = _b.sent();\n udtName = result[0][\"udt_name\"];\n if (udtName.indexOf(\"_\") === 0) {\n udtName = udtName.substr(1, udtName.length);\n }\n return [2 /*return*/, {\n enumTypeSchema: result[0][\"udt_schema\"],\n enumTypeName: udtName\n }];\n }\n });\n });\n };\n /**\n * Escapes a given comment so it's safe to include in a query.\n */\n PostgresQueryRunner.prototype.escapeComment = function (comment) {\n if (!comment || comment.length === 0) {\n return \"NULL\";\n }\n comment = comment\n .replace(/'/g, \"''\")\n .replace(\"\\0\", \"\"); // Null bytes aren't allowed in comments\n return \"'\" + comment + \"'\";\n };\n /**\n * Escapes given table or view path.\n */\n PostgresQueryRunner.prototype.escapePath = function (target, disableEscape) {\n var tableName = target instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"] || target instanceof _schema_builder_view_View__WEBPACK_IMPORTED_MODULE_13__[\"View\"] ? target.name : target;\n tableName = tableName.indexOf(\".\") === -1 && this.driver.options.schema ? this.driver.options.schema + \".\" + tableName : tableName;\n return tableName.split(\".\").map(function (i) {\n return disableEscape ? i : \"\\\"\" + i + \"\\\"\";\n }).join(\".\");\n };\n /**\n * Returns object with table schema and table name.\n */\n PostgresQueryRunner.prototype.parseTableName = function (target) {\n var tableName = target instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_6__[\"Table\"] ? target.name : target;\n if (tableName.indexOf(\".\") === -1) {\n return {\n schema: this.driver.options.schema ? \"'\" + this.driver.options.schema + \"'\" : \"current_schema()\",\n tableName: \"'\" + tableName + \"'\"\n };\n }\n else {\n return {\n schema: \"'\" + tableName.split(\".\")[0] + \"'\",\n tableName: \"'\" + tableName.split(\".\")[1] + \"'\"\n };\n }\n };\n /**\n * Builds a query for create column.\n */\n PostgresQueryRunner.prototype.buildCreateColumnSql = function (table, column) {\n var c = \"\\\"\" + column.name + \"\\\"\";\n if (column.isGenerated === true && column.generationStrategy !== \"uuid\") {\n if (column.type === \"integer\" || column.type === \"int\" || column.type === \"int4\")\n c += \" SERIAL\";\n if (column.type === \"smallint\" || column.type === \"int2\")\n c += \" SMALLSERIAL\";\n if (column.type === \"bigint\" || column.type === \"int8\")\n c += \" BIGSERIAL\";\n }\n if (column.type === \"enum\" || column.type === \"simple-enum\") {\n c += \" \" + this.buildEnumName(table, column);\n if (column.isArray)\n c += \" array\";\n }\n else if (!column.isGenerated || column.type === \"uuid\") {\n c += \" \" + this.connection.driver.createFullType(column);\n }\n if (column.charset)\n c += \" CHARACTER SET \\\"\" + column.charset + \"\\\"\";\n if (column.collation)\n c += \" COLLATE \\\"\" + column.collation + \"\\\"\";\n if (column.isNullable !== true)\n c += \" NOT NULL\";\n if (column.default !== undefined && column.default !== null)\n c += \" DEFAULT \" + column.default;\n if (column.isGenerated && column.generationStrategy === \"uuid\" && !column.default)\n c += \" DEFAULT \" + this.driver.uuidGenerator;\n return c;\n };\n /**\n * Checks if the PostgreSQL server has support for partitioned tables\n */\n PostgresQueryRunner.prototype.hasSupportForPartitionedTables = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var result;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.query(\"SELECT TRUE FROM information_schema.columns WHERE table_name = 'pg_class' and column_name = 'relispartition'\")];\n case 1:\n result = _a.sent();\n return [2 /*return*/, result.length ? true : false];\n }\n });\n });\n };\n return PostgresQueryRunner;\n}(_query_runner_BaseQueryRunner__WEBPACK_IMPORTED_MODULE_5__[\"BaseQueryRunner\"]));\n\n\n//# sourceMappingURL=PostgresQueryRunner.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/postgres/PostgresQueryRunner.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/react-native/ReactNativeDriver.js":
/*!*******************************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/react-native/ReactNativeDriver.js ***!
\*******************************************************************************/
/*! exports provided: ReactNativeDriver */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ReactNativeDriver\", function() { return ReactNativeDriver; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../sqlite-abstract/AbstractSqliteDriver */ \"./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteDriver.js\");\n/* harmony import */ var _ReactNativeQueryRunner__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ReactNativeQueryRunner */ \"./node_modules/typeorm/browser/driver/react-native/ReactNativeQueryRunner.js\");\n/* harmony import */ var _error_DriverOptionNotSetError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../error/DriverOptionNotSetError */ \"./node_modules/typeorm/browser/error/DriverOptionNotSetError.js\");\n/* harmony import */ var _error_DriverPackageNotInstalledError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../error/DriverPackageNotInstalledError */ \"./node_modules/typeorm/browser/error/DriverPackageNotInstalledError.js\");\n\n\n\n\n\nvar ReactNativeDriver = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ReactNativeDriver, _super);\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function ReactNativeDriver(connection) {\n var _this = _super.call(this, connection) || this;\n _this.database = _this.options.database;\n // validate options to make sure everything is set\n if (!_this.options.database)\n throw new _error_DriverOptionNotSetError__WEBPACK_IMPORTED_MODULE_3__[\"DriverOptionNotSetError\"](\"database\");\n if (!_this.options.location)\n throw new _error_DriverOptionNotSetError__WEBPACK_IMPORTED_MODULE_3__[\"DriverOptionNotSetError\"](\"location\");\n // load sqlite package\n _this.loadDependencies();\n return _this;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Closes connection with database.\n */\n ReactNativeDriver.prototype.disconnect = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, new Promise(function (ok, fail) {\n _this.queryRunner = undefined;\n _this.databaseConnection.close(ok, fail);\n })];\n });\n });\n };\n /**\n * Creates a query runner used to execute database queries.\n */\n ReactNativeDriver.prototype.createQueryRunner = function (mode) {\n if (!this.queryRunner)\n this.queryRunner = new _ReactNativeQueryRunner__WEBPACK_IMPORTED_MODULE_2__[\"ReactNativeQueryRunner\"](this);\n return this.queryRunner;\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Creates connection with the database.\n */\n ReactNativeDriver.prototype.createDatabaseConnection = function () {\n var _this = this;\n return new Promise(function (ok, fail) {\n var options = Object.assign({}, {\n name: _this.options.database,\n location: _this.options.location,\n }, _this.options.extra || {});\n _this.sqlite.openDatabase(options, function (db) {\n var databaseConnection = db;\n // we need to enable foreign keys in sqlite to make sure all foreign key related features\n // working properly. this also makes onDelete work with sqlite.\n databaseConnection.executeSql(\"PRAGMA foreign_keys = ON;\", [], function (result) {\n ok(databaseConnection);\n }, function (error) {\n fail(error);\n });\n }, function (error) {\n fail(error);\n });\n });\n };\n /**\n * If driver dependency is not given explicitly, then try to load it via \"require\".\n */\n ReactNativeDriver.prototype.loadDependencies = function () {\n try {\n this.sqlite = __webpack_require__(!(function webpackMissingModule() { var e = new Error(\"Cannot find module 'react-native-sqlite-storage'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }()));\n }\n catch (e) {\n throw new _error_DriverPackageNotInstalledError__WEBPACK_IMPORTED_MODULE_4__[\"DriverPackageNotInstalledError\"](\"React-Native\", \"react-native-sqlite-storage\");\n }\n };\n return ReactNativeDriver;\n}(_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_1__[\"AbstractSqliteDriver\"]));\n\n\n//# sourceMappingURL=ReactNativeDriver.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/react-native/ReactNativeDriver.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/react-native/ReactNativeQueryRunner.js":
/*!************************************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/react-native/ReactNativeQueryRunner.js ***!
\************************************************************************************/
/*! exports provided: ReactNativeQueryRunner */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ReactNativeQueryRunner\", function() { return ReactNativeQueryRunner; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _error_QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../error/QueryRunnerAlreadyReleasedError */ \"./node_modules/typeorm/browser/error/QueryRunnerAlreadyReleasedError.js\");\n/* harmony import */ var _error_QueryFailedError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../error/QueryFailedError */ \"./node_modules/typeorm/browser/error/QueryFailedError.js\");\n/* harmony import */ var _sqlite_abstract_AbstractSqliteQueryRunner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../sqlite-abstract/AbstractSqliteQueryRunner */ \"./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js\");\n/* harmony import */ var _subscriber_Broadcaster__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../subscriber/Broadcaster */ \"./node_modules/typeorm/browser/subscriber/Broadcaster.js\");\n\n\n\n\n\n/**\n * Runs queries on a single sqlite database connection.\n */\nvar ReactNativeQueryRunner = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ReactNativeQueryRunner, _super);\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function ReactNativeQueryRunner(driver) {\n var _this = _super.call(this) || this;\n _this.driver = driver;\n _this.connection = driver.connection;\n _this.broadcaster = new _subscriber_Broadcaster__WEBPACK_IMPORTED_MODULE_4__[\"Broadcaster\"](_this);\n return _this;\n }\n /**\n * Executes a given SQL query.\n */\n ReactNativeQueryRunner.prototype.query = function (query, parameters) {\n var _this = this;\n if (this.isReleased)\n throw new _error_QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_1__[\"QueryRunnerAlreadyReleasedError\"]();\n return new Promise(function (ok, fail) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n var databaseConnection, queryStartTime;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.connect()];\n case 1:\n databaseConnection = _a.sent();\n this.driver.connection.logger.logQuery(query, parameters, this);\n queryStartTime = +new Date();\n databaseConnection.executeSql(query, parameters, function (result) {\n // log slow queries if maxQueryExecution time is set\n var maxQueryExecutionTime = _this.driver.connection.options.maxQueryExecutionTime;\n var queryEndTime = +new Date();\n var queryExecutionTime = queryEndTime - queryStartTime;\n if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)\n _this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, _this);\n // return id of inserted row, if query was insert statement.\n if (query.substr(0, 11) === \"INSERT INTO\") {\n ok(result.insertId);\n }\n else {\n var resultSet = [];\n for (var i = 0; i < result.rows.length; i++) {\n resultSet.push(result.rows.item(i));\n }\n ok(resultSet);\n }\n }, function (err) {\n _this.driver.connection.logger.logQueryError(err, query, parameters, _this);\n fail(new _error_QueryFailedError__WEBPACK_IMPORTED_MODULE_2__[\"QueryFailedError\"](query, parameters, err));\n });\n return [2 /*return*/];\n }\n });\n }); });\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Parametrizes given object of values. Used to create column=value queries.\n */\n ReactNativeQueryRunner.prototype.parametrize = function (objectLiteral, startIndex) {\n if (startIndex === void 0) { startIndex = 0; }\n return Object.keys(objectLiteral).map(function (key, index) { return \"\\\"\" + key + \"\\\"\" + \"=?\"; });\n };\n return ReactNativeQueryRunner;\n}(_sqlite_abstract_AbstractSqliteQueryRunner__WEBPACK_IMPORTED_MODULE_3__[\"AbstractSqliteQueryRunner\"]));\n\n\n//# sourceMappingURL=ReactNativeQueryRunner.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/react-native/ReactNativeQueryRunner.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteDriver.js":
/*!*************************************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteDriver.js ***!
\*************************************************************************************/
/*! exports provided: AbstractSqliteDriver */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AbstractSqliteDriver\", function() { return AbstractSqliteDriver; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_DateUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/DateUtils */ \"./node_modules/typeorm/browser/util/DateUtils.js\");\n/* harmony import */ var _schema_builder_RdbmsSchemaBuilder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../schema-builder/RdbmsSchemaBuilder */ \"./node_modules/typeorm/browser/schema-builder/RdbmsSchemaBuilder.js\");\n/* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/OrmUtils */ \"./node_modules/typeorm/browser/util/OrmUtils.js\");\n/* harmony import */ var _util_ApplyValueTransformers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/ApplyValueTransformers */ \"./node_modules/typeorm/browser/util/ApplyValueTransformers.js\");\n\n\n\n\n\n/**\n * Organizes communication with sqlite DBMS.\n */\nvar AbstractSqliteDriver = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function AbstractSqliteDriver(connection) {\n /**\n * Indicates if replication is enabled.\n */\n this.isReplicated = false;\n /**\n * Indicates if tree tables are supported by this driver.\n */\n this.treeSupport = true;\n /**\n * Gets list of supported column data types by a driver.\n *\n * @see https://www.tutorialspoint.com/sqlite/sqlite_data_types.htm\n * @see https://sqlite.org/datatype3.html\n */\n this.supportedDataTypes = [\n \"int\",\n \"integer\",\n \"tinyint\",\n \"smallint\",\n \"mediumint\",\n \"bigint\",\n \"unsigned big int\",\n \"int2\",\n \"int8\",\n \"integer\",\n \"character\",\n \"varchar\",\n \"varying character\",\n \"nchar\",\n \"native character\",\n \"nvarchar\",\n \"text\",\n \"clob\",\n \"text\",\n \"blob\",\n \"real\",\n \"double\",\n \"double precision\",\n \"float\",\n \"real\",\n \"numeric\",\n \"decimal\",\n \"boolean\",\n \"date\",\n \"time\",\n \"datetime\"\n ];\n /**\n * Gets list of column data types that support length by a driver.\n */\n this.withLengthColumnTypes = [\n \"character\",\n \"varchar\",\n \"varying character\",\n \"nchar\",\n \"native character\",\n \"nvarchar\",\n \"text\",\n \"blob\",\n \"clob\"\n ];\n /**\n * Gets list of spatial column data types.\n */\n this.spatialTypes = [];\n /**\n * Gets list of column data types that support precision by a driver.\n */\n this.withPrecisionColumnTypes = [\n \"real\",\n \"double\",\n \"double precision\",\n \"float\",\n \"real\",\n \"numeric\",\n \"decimal\",\n \"date\",\n \"time\",\n \"datetime\"\n ];\n /**\n * Gets list of column data types that support scale by a driver.\n */\n this.withScaleColumnTypes = [\n \"real\",\n \"double\",\n \"double precision\",\n \"float\",\n \"real\",\n \"numeric\",\n \"decimal\",\n ];\n /**\n * Orm has special columns and we need to know what database column types should be for those types.\n * Column types are driver dependant.\n */\n this.mappedDataTypes = {\n createDate: \"datetime\",\n createDateDefault: \"datetime('now')\",\n updateDate: \"datetime\",\n updateDateDefault: \"datetime('now')\",\n deleteDate: \"datetime\",\n deleteDateNullable: true,\n version: \"integer\",\n treeLevel: \"integer\",\n migrationId: \"integer\",\n migrationName: \"varchar\",\n migrationTimestamp: \"bigint\",\n cacheId: \"int\",\n cacheIdentifier: \"varchar\",\n cacheTime: \"bigint\",\n cacheDuration: \"int\",\n cacheQuery: \"text\",\n cacheResult: \"text\",\n metadataType: \"varchar\",\n metadataDatabase: \"varchar\",\n metadataSchema: \"varchar\",\n metadataTable: \"varchar\",\n metadataName: \"varchar\",\n metadataValue: \"text\",\n };\n this.connection = connection;\n this.options = connection.options;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Performs connection to the database.\n */\n AbstractSqliteDriver.prototype.connect = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this;\n return [4 /*yield*/, this.createDatabaseConnection()];\n case 1:\n _a.databaseConnection = _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Makes any action after connection (e.g. create extensions in Postgres driver).\n */\n AbstractSqliteDriver.prototype.afterConnect = function () {\n return Promise.resolve();\n };\n /**\n * Closes connection with database.\n */\n AbstractSqliteDriver.prototype.disconnect = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, new Promise(function (ok, fail) {\n _this.queryRunner = undefined;\n _this.databaseConnection.close(function (err) { return err ? fail(err) : ok(); });\n })];\n });\n });\n };\n /**\n * Creates a schema builder used to build and sync a schema.\n */\n AbstractSqliteDriver.prototype.createSchemaBuilder = function () {\n return new _schema_builder_RdbmsSchemaBuilder__WEBPACK_IMPORTED_MODULE_2__[\"RdbmsSchemaBuilder\"](this.connection);\n };\n /**\n * Prepares given value to a value to be persisted, based on its column type and metadata.\n */\n AbstractSqliteDriver.prototype.preparePersistentValue = function (value, columnMetadata) {\n if (columnMetadata.transformer)\n value = _util_ApplyValueTransformers__WEBPACK_IMPORTED_MODULE_4__[\"ApplyValueTransformers\"].transformTo(columnMetadata.transformer, value);\n if (value === null || value === undefined)\n return value;\n if (columnMetadata.type === Boolean || columnMetadata.type === \"boolean\") {\n return value === true ? 1 : 0;\n }\n else if (columnMetadata.type === \"date\") {\n return _util_DateUtils__WEBPACK_IMPORTED_MODULE_1__[\"DateUtils\"].mixedDateToDateString(value);\n }\n else if (columnMetadata.type === \"time\") {\n return _util_DateUtils__WEBPACK_IMPORTED_MODULE_1__[\"DateUtils\"].mixedDateToTimeString(value);\n }\n else if (columnMetadata.type === \"datetime\" || columnMetadata.type === Date) {\n // to string conversation needs because SQLite stores date as integer number, when date came as Object\n // TODO: think about `toUTC` conversion\n return _util_DateUtils__WEBPACK_IMPORTED_MODULE_1__[\"DateUtils\"].mixedDateToUtcDatetimeString(value);\n }\n else if (columnMetadata.type === \"simple-array\") {\n return _util_DateUtils__WEBPACK_IMPORTED_MODULE_1__[\"DateUtils\"].simpleArrayToString(value);\n }\n else if (columnMetadata.type === \"simple-json\") {\n return _util_DateUtils__WEBPACK_IMPORTED_MODULE_1__[\"DateUtils\"].simpleJsonToString(value);\n }\n else if (columnMetadata.type === \"simple-enum\") {\n return _util_DateUtils__WEBPACK_IMPORTED_MODULE_1__[\"DateUtils\"].simpleEnumToString(value);\n }\n return value;\n };\n /**\n * Prepares given value to a value to be hydrated, based on its column type or metadata.\n */\n AbstractSqliteDriver.prototype.prepareHydratedValue = function (value, columnMetadata) {\n if (value === null || value === undefined)\n return columnMetadata.transformer ? _util_ApplyValueTransformers__WEBPACK_IMPORTED_MODULE_4__[\"ApplyValueTransformers\"].transformFrom(columnMetadata.transformer, value) : value;\n if (columnMetadata.type === Boolean || columnMetadata.type === \"boolean\") {\n value = value ? true : false;\n }\n else if (columnMetadata.type === \"datetime\" || columnMetadata.type === Date) {\n /**\n * Fix date conversion issue\n *\n * 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.\n * We need to modify the date string to \"2018-03-14T02:33:33.906Z\" and Safari will convert it correctly.\n *\n * ISO 8601\n * https://www.w3.org/TR/NOTE-datetime\n */\n if (value && typeof value === \"string\") {\n // There are various valid time string formats a sqlite time string might have:\n // https://www.sqlite.org/lang_datefunc.html\n // There are two separate fixes we may need to do:\n // 1) Add 'T' separator if space is used instead\n // 2) Add 'Z' UTC suffix if no timezone or offset specified\n if (/^\\d\\d\\d\\d-\\d\\d-\\d\\d \\d\\d:\\d\\d/.test(value)) {\n value = value.replace(\" \", \"T\");\n }\n if (/^\\d\\d\\d\\d-\\d\\d-\\d\\dT\\d\\d:\\d\\d(:\\d\\d(\\.\\d\\d\\d)?)?$/.test(value)) {\n value += \"Z\";\n }\n }\n value = _util_DateUtils__WEBPACK_IMPORTED_MODULE_1__[\"DateUtils\"].normalizeHydratedDate(value);\n }\n else if (columnMetadata.type === \"date\") {\n value = _util_DateUtils__WEBPACK_IMPORTED_MODULE_1__[\"DateUtils\"].mixedDateToDateString(value);\n }\n else if (columnMetadata.type === \"time\") {\n value = _util_DateUtils__WEBPACK_IMPORTED_MODULE_1__[\"DateUtils\"].mixedTimeToString(value);\n }\n else if (columnMetadata.type === \"simple-array\") {\n value = _util_DateUtils__WEBPACK_IMPORTED_MODULE_1__[\"DateUtils\"].stringToSimpleArray(value);\n }\n else if (columnMetadata.type === \"simple-json\") {\n value = _util_DateUtils__WEBPACK_IMPORTED_MODULE_1__[\"DateUtils\"].stringToSimpleJson(value);\n }\n else if (columnMetadata.type === \"simple-enum\") {\n value = _util_DateUtils__WEBPACK_IMPORTED_MODULE_1__[\"DateUtils\"].stringToSimpleEnum(value, columnMetadata);\n }\n if (columnMetadata.transformer)\n value = _util_ApplyValueTransformers__WEBPACK_IMPORTED_MODULE_4__[\"ApplyValueTransformers\"].transformFrom(columnMetadata.transformer, value);\n return value;\n };\n /**\n * Replaces parameters in the given sql with special escaping character\n * and an array of parameter names to be passed to a query.\n */\n AbstractSqliteDriver.prototype.escapeQueryWithParameters = function (sql, parameters, nativeParameters) {\n var builtParameters = Object.keys(nativeParameters).map(function (key) {\n // Mapping boolean values to their numeric representation\n if (typeof nativeParameters[key] === \"boolean\") {\n return nativeParameters[key] === true ? 1 : 0;\n }\n return nativeParameters[key];\n });\n if (!parameters || !Object.keys(parameters).length)\n return [sql, builtParameters];\n var keys = Object.keys(parameters).map(function (parameter) { return \"(:(\\\\.\\\\.\\\\.)?\" + parameter + \"\\\\b)\"; }).join(\"|\");\n sql = sql.replace(new RegExp(keys, \"g\"), function (key) {\n var value;\n var isArray = false;\n if (key.substr(0, 4) === \":...\") {\n isArray = true;\n value = parameters[key.substr(4)];\n }\n else {\n value = parameters[key.substr(1)];\n }\n if (isArray) {\n return value.map(function (v) {\n builtParameters.push(v);\n return \"?\";\n // return \"$\" + builtParameters.length;\n }).join(\", \");\n }\n else if (value instanceof Function) {\n return value();\n }\n else {\n builtParameters.push(value);\n return \"?\";\n // return \"$\" + builtParameters.length;\n }\n }); // todo: make replace only in value statements, otherwise problems\n return [sql, builtParameters];\n };\n /**\n * Escapes a column name.\n */\n AbstractSqliteDriver.prototype.escape = function (columnName) {\n return \"\\\"\" + columnName + \"\\\"\";\n };\n /**\n * Build full table name with database name, schema name and table name.\n * E.g. \"myDB\".\"mySchema\".\"myTable\"\n *\n * Returns only simple table name because all inherited drivers does not supports schema and database.\n */\n AbstractSqliteDriver.prototype.buildTableName = function (tableName, schema, database) {\n return tableName;\n };\n /**\n * Creates a database type from a given column metadata.\n */\n AbstractSqliteDriver.prototype.normalizeType = function (column) {\n if (column.type === Number || column.type === \"int\") {\n return \"integer\";\n }\n else if (column.type === String) {\n return \"varchar\";\n }\n else if (column.type === Date) {\n return \"datetime\";\n }\n else if (column.type === Boolean) {\n return \"boolean\";\n }\n else if (column.type === \"uuid\") {\n return \"varchar\";\n }\n else if (column.type === \"simple-array\") {\n return \"text\";\n }\n else if (column.type === \"simple-json\") {\n return \"text\";\n }\n else if (column.type === \"simple-enum\") {\n return \"varchar\";\n }\n else {\n return column.type || \"\";\n }\n };\n /**\n * Normalizes \"default\" value of the column.\n */\n AbstractSqliteDriver.prototype.normalizeDefault = function (columnMetadata) {\n var defaultValue = columnMetadata.default;\n if (typeof defaultValue === \"number\") {\n return \"\" + defaultValue;\n }\n else if (typeof defaultValue === \"boolean\") {\n return defaultValue === true ? \"1\" : \"0\";\n }\n else if (typeof defaultValue === \"function\") {\n return defaultValue();\n }\n else if (typeof defaultValue === \"string\") {\n return \"'\" + defaultValue + \"'\";\n }\n else if (defaultValue === null) {\n return undefined;\n }\n else {\n return defaultValue;\n }\n };\n /**\n * Normalizes \"isUnique\" value of the column.\n */\n AbstractSqliteDriver.prototype.normalizeIsUnique = function (column) {\n return column.entityMetadata.uniques.some(function (uq) { return uq.columns.length === 1 && uq.columns[0] === column; });\n };\n /**\n * Calculates column length taking into account the default length values.\n */\n AbstractSqliteDriver.prototype.getColumnLength = function (column) {\n return column.length ? column.length.toString() : \"\";\n };\n /**\n * Normalizes \"default\" value of the column.\n */\n AbstractSqliteDriver.prototype.createFullType = function (column) {\n var type = column.type;\n if (column.enum) {\n return \"varchar\";\n }\n if (column.length) {\n type += \"(\" + column.length + \")\";\n }\n else if (column.precision !== null && column.precision !== undefined && column.scale !== null && column.scale !== undefined) {\n type += \"(\" + column.precision + \",\" + column.scale + \")\";\n }\n else if (column.precision !== null && column.precision !== undefined) {\n type += \"(\" + column.precision + \")\";\n }\n if (column.isArray)\n type += \" array\";\n return type;\n };\n /**\n * Obtains a new database connection to a master server.\n * Used for replication.\n * If replication is not setup then returns default connection's database connection.\n */\n AbstractSqliteDriver.prototype.obtainMasterConnection = function () {\n return Promise.resolve();\n };\n /**\n * Obtains a new database connection to a slave server.\n * Used for replication.\n * If replication is not setup then returns master (default) connection's database connection.\n */\n AbstractSqliteDriver.prototype.obtainSlaveConnection = function () {\n return Promise.resolve();\n };\n /**\n * Creates generated map of values generated or returned by database after INSERT query.\n */\n AbstractSqliteDriver.prototype.createGeneratedMap = function (metadata, insertResult, entityIndex, entityNum) {\n var generatedMap = metadata.generatedColumns.reduce(function (map, generatedColumn) {\n var value;\n if (generatedColumn.generationStrategy === \"increment\" && insertResult) {\n // NOTE: When INSERT statement is successfully completed, the last inserted row ID is returned.\n // see also: SqliteQueryRunner.query()\n value = insertResult - entityNum + entityIndex + 1;\n // } else if (generatedColumn.generationStrategy === \"uuid\") {\n // value = insertValue[generatedColumn.databaseName];\n }\n if (!value)\n return map;\n return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_3__[\"OrmUtils\"].mergeDeep(map, generatedColumn.createValueMap(value));\n }, {});\n return Object.keys(generatedMap).length > 0 ? generatedMap : undefined;\n };\n /**\n * Differentiate columns of this table and columns from the given column metadatas columns\n * and returns only changed.\n */\n AbstractSqliteDriver.prototype.findChangedColumns = function (tableColumns, columnMetadatas) {\n var _this = this;\n return columnMetadatas.filter(function (columnMetadata) {\n var tableColumn = tableColumns.find(function (c) { return c.name === columnMetadata.databaseName; });\n if (!tableColumn)\n return false; // we don't need new columns, we only need exist and changed\n // console.log(\"table:\", columnMetadata.entityMetadata.tableName);\n // console.log(\"name:\", tableColumn.name, columnMetadata.databaseName);\n // console.log(\"type:\", tableColumn.type, this.normalizeType(columnMetadata));\n // console.log(\"length:\", tableColumn.length, columnMetadata.length);\n // console.log(\"precision:\", tableColumn.precision, columnMetadata.precision);\n // console.log(\"scale:\", tableColumn.scale, columnMetadata.scale);\n // console.log(\"comment:\", tableColumn.comment, columnMetadata.comment);\n // console.log(\"default:\", this.normalizeDefault(columnMetadata), columnMetadata.default);\n // console.log(\"isPrimary:\", tableColumn.isPrimary, columnMetadata.isPrimary);\n // console.log(\"isNullable:\", tableColumn.isNullable, columnMetadata.isNullable);\n // console.log(\"isUnique:\", tableColumn.isUnique, this.normalizeIsUnique(columnMetadata));\n // console.log(\"isGenerated:\", tableColumn.isGenerated, columnMetadata.isGenerated);\n // console.log(\"==========================================\");\n return tableColumn.name !== columnMetadata.databaseName\n || tableColumn.type !== _this.normalizeType(columnMetadata)\n || tableColumn.length !== columnMetadata.length\n || tableColumn.precision !== columnMetadata.precision\n || tableColumn.scale !== columnMetadata.scale\n // || tableColumn.comment !== columnMetadata.comment || // todo\n || _this.normalizeDefault(columnMetadata) !== tableColumn.default\n || tableColumn.isPrimary !== columnMetadata.isPrimary\n || tableColumn.isNullable !== columnMetadata.isNullable\n || tableColumn.isUnique !== _this.normalizeIsUnique(columnMetadata)\n || (columnMetadata.generationStrategy !== \"uuid\" && tableColumn.isGenerated !== columnMetadata.isGenerated);\n });\n };\n /**\n * Returns true if driver supports RETURNING / OUTPUT statement.\n */\n AbstractSqliteDriver.prototype.isReturningSqlSupported = function () {\n return false;\n };\n /**\n * Returns true if driver supports uuid values generation on its own.\n */\n AbstractSqliteDriver.prototype.isUUIDGenerationSupported = function () {\n return false;\n };\n /**\n * Returns true if driver supports fulltext indices.\n */\n AbstractSqliteDriver.prototype.isFullTextColumnTypeSupported = function () {\n return false;\n };\n /**\n * Creates an escaped parameter.\n */\n AbstractSqliteDriver.prototype.createParameter = function (parameterName, index) {\n // return \"$\" + (index + 1);\n return \"?\";\n // return \"$\" + parameterName;\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Creates connection with the database.\n */\n AbstractSqliteDriver.prototype.createDatabaseConnection = function () {\n throw new Error(\"Do not use AbstractSqlite directly, it has to be used with one of the sqlite drivers\");\n };\n /**\n * If driver dependency is not given explicitly, then try to load it via \"require\".\n */\n AbstractSqliteDriver.prototype.loadDependencies = function () {\n // dependencies have to be loaded in the specific driver\n };\n return AbstractSqliteDriver;\n}());\n\n\n//# sourceMappingURL=AbstractSqliteDriver.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteDriver.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js":
/*!******************************************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js ***!
\******************************************************************************************/
/*! exports provided: AbstractSqliteQueryRunner */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AbstractSqliteQueryRunner\", function() { return AbstractSqliteQueryRunner; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _error_TransactionAlreadyStartedError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../error/TransactionAlreadyStartedError */ \"./node_modules/typeorm/browser/error/TransactionAlreadyStartedError.js\");\n/* harmony import */ var _error_TransactionNotStartedError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../error/TransactionNotStartedError */ \"./node_modules/typeorm/browser/error/TransactionNotStartedError.js\");\n/* harmony import */ var _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../schema-builder/table/TableColumn */ \"./node_modules/typeorm/browser/schema-builder/table/TableColumn.js\");\n/* harmony import */ var _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../metadata/ColumnMetadata */ \"./node_modules/typeorm/browser/metadata/ColumnMetadata.js\");\n/* harmony import */ var _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../schema-builder/table/Table */ \"./node_modules/typeorm/browser/schema-builder/table/Table.js\");\n/* harmony import */ var _schema_builder_table_TableIndex__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../schema-builder/table/TableIndex */ \"./node_modules/typeorm/browser/schema-builder/table/TableIndex.js\");\n/* harmony import */ var _schema_builder_table_TableForeignKey__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../schema-builder/table/TableForeignKey */ \"./node_modules/typeorm/browser/schema-builder/table/TableForeignKey.js\");\n/* harmony import */ var _schema_builder_view_View__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../schema-builder/view/View */ \"./node_modules/typeorm/browser/schema-builder/view/View.js\");\n/* harmony import */ var _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../subscriber/BroadcasterResult */ \"./node_modules/typeorm/browser/subscriber/BroadcasterResult.js\");\n/* harmony import */ var _Query__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Query */ \"./node_modules/typeorm/browser/driver/Query.js\");\n/* harmony import */ var _schema_builder_table_TableUnique__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../schema-builder/table/TableUnique */ \"./node_modules/typeorm/browser/schema-builder/table/TableUnique.js\");\n/* harmony import */ var _query_runner_BaseQueryRunner__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../query-runner/BaseQueryRunner */ \"./node_modules/typeorm/browser/query-runner/BaseQueryRunner.js\");\n/* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../util/OrmUtils */ \"./node_modules/typeorm/browser/util/OrmUtils.js\");\n/* harmony import */ var _schema_builder_table_TableCheck__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../schema-builder/table/TableCheck */ \"./node_modules/typeorm/browser/schema-builder/table/TableCheck.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Runs queries on a single sqlite database connection.\n */\nvar AbstractSqliteQueryRunner = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AbstractSqliteQueryRunner, _super);\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function AbstractSqliteQueryRunner() {\n return _super.call(this) || this;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Creates/uses database connection from the connection pool to perform further operations.\n * Returns obtained database connection.\n */\n AbstractSqliteQueryRunner.prototype.connect = function () {\n return Promise.resolve(this.driver.databaseConnection);\n };\n /**\n * Releases used database connection.\n * We just clear loaded tables and sql in memory, because sqlite do not support multiple connections thus query runners.\n */\n AbstractSqliteQueryRunner.prototype.release = function () {\n this.loadedTables = [];\n this.clearSqlMemory();\n return Promise.resolve();\n };\n /**\n * Starts transaction.\n */\n AbstractSqliteQueryRunner.prototype.startTransaction = function (isolationLevel) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var beforeBroadcastResult, afterBroadcastResult;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.isTransactionActive)\n throw new _error_TransactionAlreadyStartedError__WEBPACK_IMPORTED_MODULE_1__[\"TransactionAlreadyStartedError\"]();\n if (!isolationLevel) return [3 /*break*/, 4];\n if (isolationLevel !== \"READ UNCOMMITTED\" && isolationLevel !== \"SERIALIZABLE\") {\n throw new Error(\"SQLite only supports SERIALIZABLE and READ UNCOMMITTED isolation\");\n }\n if (!(isolationLevel === \"READ UNCOMMITTED\")) return [3 /*break*/, 2];\n return [4 /*yield*/, this.query(\"PRAGMA read_uncommitted = true\")];\n case 1:\n _a.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.query(\"PRAGMA read_uncommitted = false\")];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4:\n beforeBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_9__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult);\n if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 6];\n return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];\n case 5:\n _a.sent();\n _a.label = 6;\n case 6:\n this.isTransactionActive = true;\n return [4 /*yield*/, this.query(\"BEGIN TRANSACTION\")];\n case 7:\n _a.sent();\n afterBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_9__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult);\n if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 9];\n return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];\n case 8:\n _a.sent();\n _a.label = 9;\n case 9: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Commits transaction.\n * Error will be thrown if transaction was not started.\n */\n AbstractSqliteQueryRunner.prototype.commitTransaction = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var beforeBroadcastResult, afterBroadcastResult;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.isTransactionActive)\n throw new _error_TransactionNotStartedError__WEBPACK_IMPORTED_MODULE_2__[\"TransactionNotStartedError\"]();\n beforeBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_9__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastBeforeTransactionCommitEvent(beforeBroadcastResult);\n if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [4 /*yield*/, this.query(\"COMMIT\")];\n case 3:\n _a.sent();\n this.isTransactionActive = false;\n afterBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_9__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult);\n if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];\n return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Rollbacks transaction.\n * Error will be thrown if transaction was not started.\n */\n AbstractSqliteQueryRunner.prototype.rollbackTransaction = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var beforeBroadcastResult, afterBroadcastResult;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.isTransactionActive)\n throw new _error_TransactionNotStartedError__WEBPACK_IMPORTED_MODULE_2__[\"TransactionNotStartedError\"]();\n beforeBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_9__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult);\n if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [4 /*yield*/, this.query(\"ROLLBACK\")];\n case 3:\n _a.sent();\n this.isTransactionActive = false;\n afterBroadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_9__[\"BroadcasterResult\"]();\n this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult);\n if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];\n return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Returns raw data stream.\n */\n AbstractSqliteQueryRunner.prototype.stream = function (query, parameters, onEnd, onError) {\n throw new Error(\"Stream is not supported by sqlite driver.\");\n };\n /**\n * Returns all available database names including system databases.\n */\n AbstractSqliteQueryRunner.prototype.getDatabases = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, Promise.resolve([])];\n });\n });\n };\n /**\n * Returns all available schema names including system schemas.\n * If database parameter specified, returns schemas of that database.\n */\n AbstractSqliteQueryRunner.prototype.getSchemas = function (database) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, Promise.resolve([])];\n });\n });\n };\n /**\n * Checks if database with the given name exist.\n */\n AbstractSqliteQueryRunner.prototype.hasDatabase = function (database) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, Promise.resolve(false)];\n });\n });\n };\n /**\n * Checks if schema with the given name exist.\n */\n AbstractSqliteQueryRunner.prototype.hasSchema = function (schema) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n throw new Error(\"This driver does not support table schemas\");\n });\n });\n };\n /**\n * Checks if table with the given name exist in the database.\n */\n AbstractSqliteQueryRunner.prototype.hasTable = function (tableOrName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var tableName, sql, result;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n tableName = tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"] ? tableOrName.name : tableOrName;\n sql = \"SELECT * FROM \\\"sqlite_master\\\" WHERE \\\"type\\\" = 'table' AND \\\"name\\\" = '\" + tableName + \"'\";\n return [4 /*yield*/, this.query(sql)];\n case 1:\n result = _a.sent();\n return [2 /*return*/, result.length ? true : false];\n }\n });\n });\n };\n /**\n * Checks if column with the given name exist in the given table.\n */\n AbstractSqliteQueryRunner.prototype.hasColumn = function (tableOrName, columnName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var tableName, sql, columns;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n tableName = tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"] ? tableOrName.name : tableOrName;\n sql = \"PRAGMA table_info(\\\"\" + tableName + \"\\\")\";\n return [4 /*yield*/, this.query(sql)];\n case 1:\n columns = _a.sent();\n return [2 /*return*/, !!columns.find(function (column) { return column[\"name\"] === columnName; })];\n }\n });\n });\n };\n /**\n * Creates a new database.\n */\n AbstractSqliteQueryRunner.prototype.createDatabase = function (database, ifNotExist) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, Promise.resolve()];\n });\n });\n };\n /**\n * Drops database.\n */\n AbstractSqliteQueryRunner.prototype.dropDatabase = function (database, ifExist) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, Promise.resolve()];\n });\n });\n };\n /**\n * Creates a new table schema.\n */\n AbstractSqliteQueryRunner.prototype.createSchema = function (schema, ifNotExist) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, Promise.resolve()];\n });\n });\n };\n /**\n * Drops table schema.\n */\n AbstractSqliteQueryRunner.prototype.dropSchema = function (schemaPath, ifExist) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, Promise.resolve()];\n });\n });\n };\n /**\n * Creates a new table.\n */\n AbstractSqliteQueryRunner.prototype.createTable = function (table, ifNotExist, createForeignKeys, createIndices) {\n if (ifNotExist === void 0) { ifNotExist = false; }\n if (createForeignKeys === void 0) { createForeignKeys = true; }\n if (createIndices === void 0) { createIndices = true; }\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var upQueries, downQueries, isTableExist;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n upQueries = [];\n downQueries = [];\n if (!ifNotExist) return [3 /*break*/, 2];\n return [4 /*yield*/, this.hasTable(table)];\n case 1:\n isTableExist = _a.sent();\n if (isTableExist)\n return [2 /*return*/, Promise.resolve()];\n _a.label = 2;\n case 2:\n upQueries.push(this.createTableSql(table, createForeignKeys));\n downQueries.push(this.dropTableSql(table));\n if (createIndices) {\n table.indices.forEach(function (index) {\n // new index may be passed without name. In this case we generate index name manually.\n if (!index.name)\n index.name = _this.connection.namingStrategy.indexName(table.name, index.columnNames, index.where);\n upQueries.push(_this.createIndexSql(table, index));\n downQueries.push(_this.dropIndexSql(index));\n });\n }\n return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];\n case 3:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops the table.\n */\n AbstractSqliteQueryRunner.prototype.dropTable = function (tableOrName, ifExist, dropForeignKeys, dropIndices) {\n if (dropForeignKeys === void 0) { dropForeignKeys = true; }\n if (dropIndices === void 0) { dropIndices = true; }\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var isTableExist, createForeignKeys, table, _a, upQueries, downQueries;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!ifExist) return [3 /*break*/, 2];\n return [4 /*yield*/, this.hasTable(tableOrName)];\n case 1:\n isTableExist = _b.sent();\n if (!isTableExist)\n return [2 /*return*/, Promise.resolve()];\n _b.label = 2;\n case 2:\n createForeignKeys = dropForeignKeys;\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 3];\n _a = tableOrName;\n return [3 /*break*/, 5];\n case 3: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 4:\n _a = _b.sent();\n _b.label = 5;\n case 5:\n table = _a;\n upQueries = [];\n downQueries = [];\n if (dropIndices) {\n table.indices.forEach(function (index) {\n upQueries.push(_this.dropIndexSql(index));\n downQueries.push(_this.createIndexSql(table, index));\n });\n }\n upQueries.push(this.dropTableSql(table, ifExist));\n downQueries.push(this.createTableSql(table, createForeignKeys));\n return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];\n case 6:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a new view.\n */\n AbstractSqliteQueryRunner.prototype.createView = function (view) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var upQueries, downQueries;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n upQueries = [];\n downQueries = [];\n upQueries.push(this.createViewSql(view));\n upQueries.push(this.insertViewDefinitionSql(view));\n downQueries.push(this.dropViewSql(view));\n downQueries.push(this.deleteViewDefinitionSql(view));\n return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops the view.\n */\n AbstractSqliteQueryRunner.prototype.dropView = function (target) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var viewName, view, upQueries, downQueries;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n viewName = target instanceof _schema_builder_view_View__WEBPACK_IMPORTED_MODULE_8__[\"View\"] ? target.name : target;\n return [4 /*yield*/, this.getCachedView(viewName)];\n case 1:\n view = _a.sent();\n upQueries = [];\n downQueries = [];\n upQueries.push(this.deleteViewDefinitionSql(view));\n upQueries.push(this.dropViewSql(view));\n downQueries.push(this.insertViewDefinitionSql(view));\n downQueries.push(this.createViewSql(view));\n return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Renames the given table.\n */\n AbstractSqliteQueryRunner.prototype.renameTable = function (oldTableOrName, newTableName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var oldTable, _a, newTable, up, down;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(oldTableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = oldTableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(oldTableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n oldTable = _a;\n newTable = oldTable.clone();\n newTable.name = newTableName;\n up = new _Query__WEBPACK_IMPORTED_MODULE_10__[\"Query\"](\"ALTER TABLE \\\"\" + oldTable.name + \"\\\" RENAME TO \\\"\" + newTableName + \"\\\"\");\n down = new _Query__WEBPACK_IMPORTED_MODULE_10__[\"Query\"](\"ALTER TABLE \\\"\" + newTableName + \"\\\" RENAME TO \\\"\" + oldTable.name + \"\\\"\");\n return [4 /*yield*/, this.executeQueries(up, down)];\n case 4:\n _b.sent();\n // rename old table;\n oldTable.name = newTable.name;\n // rename unique constraints\n newTable.uniques.forEach(function (unique) {\n unique.name = _this.connection.namingStrategy.uniqueConstraintName(newTable, unique.columnNames);\n });\n // rename foreign key constraints\n newTable.foreignKeys.forEach(function (foreignKey) {\n foreignKey.name = _this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);\n });\n // rename indices\n newTable.indices.forEach(function (index) {\n index.name = _this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where);\n });\n // recreate table with new constraint names\n return [4 /*yield*/, this.recreateTable(newTable, oldTable)];\n case 5:\n // recreate table with new constraint names\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a new column from the column in the table.\n */\n AbstractSqliteQueryRunner.prototype.addColumn = function (tableOrName, column) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n return [2 /*return*/, this.addColumns(table, [column])];\n }\n });\n });\n };\n /**\n * Creates a new columns from the column in the table.\n */\n AbstractSqliteQueryRunner.prototype.addColumns = function (tableOrName, columns) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, changedTable;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n changedTable = table.clone();\n columns.forEach(function (column) { return changedTable.addColumn(column); });\n return [4 /*yield*/, this.recreateTable(changedTable, table)];\n case 4:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Renames column in the given table.\n */\n AbstractSqliteQueryRunner.prototype.renameColumn = function (tableOrName, oldTableColumnOrName, newTableColumnOrName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, oldColumn, newColumn;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n oldColumn = oldTableColumnOrName instanceof _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_3__[\"TableColumn\"] ? oldTableColumnOrName : table.columns.find(function (c) { return c.name === oldTableColumnOrName; });\n if (!oldColumn)\n throw new Error(\"Column \\\"\" + oldTableColumnOrName + \"\\\" was not found in the \\\"\" + table.name + \"\\\" table.\");\n newColumn = undefined;\n if (newTableColumnOrName instanceof _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_3__[\"TableColumn\"]) {\n newColumn = newTableColumnOrName;\n }\n else {\n newColumn = oldColumn.clone();\n newColumn.name = newTableColumnOrName;\n }\n return [2 /*return*/, this.changeColumn(table, oldColumn, newColumn)];\n }\n });\n });\n };\n /**\n * Changes a column in the table.\n */\n AbstractSqliteQueryRunner.prototype.changeColumn = function (tableOrName, oldTableColumnOrName, newColumn) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, oldColumn;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n oldColumn = oldTableColumnOrName instanceof _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_3__[\"TableColumn\"] ? oldTableColumnOrName : table.columns.find(function (c) { return c.name === oldTableColumnOrName; });\n if (!oldColumn)\n throw new Error(\"Column \\\"\" + oldTableColumnOrName + \"\\\" was not found in the \\\"\" + table.name + \"\\\" table.\");\n return [4 /*yield*/, this.changeColumns(table, [{ oldColumn: oldColumn, newColumn: newColumn }])];\n case 4:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Changes a column in the table.\n * Changed column looses all its keys in the db.\n */\n AbstractSqliteQueryRunner.prototype.changeColumns = function (tableOrName, changedColumns) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, changedTable;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n changedTable = table.clone();\n changedColumns.forEach(function (changedColumnSet) {\n if (changedColumnSet.newColumn.name !== changedColumnSet.oldColumn.name) {\n changedTable.findColumnUniques(changedColumnSet.oldColumn).forEach(function (unique) {\n unique.columnNames.splice(unique.columnNames.indexOf(changedColumnSet.oldColumn.name), 1);\n unique.columnNames.push(changedColumnSet.newColumn.name);\n unique.name = _this.connection.namingStrategy.uniqueConstraintName(changedTable, unique.columnNames);\n });\n changedTable.findColumnForeignKeys(changedColumnSet.oldColumn).forEach(function (fk) {\n fk.columnNames.splice(fk.columnNames.indexOf(changedColumnSet.oldColumn.name), 1);\n fk.columnNames.push(changedColumnSet.newColumn.name);\n fk.name = _this.connection.namingStrategy.foreignKeyName(changedTable, fk.columnNames, fk.referencedTableName, fk.referencedColumnNames);\n });\n changedTable.findColumnIndices(changedColumnSet.oldColumn).forEach(function (index) {\n index.columnNames.splice(index.columnNames.indexOf(changedColumnSet.oldColumn.name), 1);\n index.columnNames.push(changedColumnSet.newColumn.name);\n index.name = _this.connection.namingStrategy.indexName(changedTable, index.columnNames, index.where);\n });\n }\n var originalColumn = changedTable.columns.find(function (column) { return column.name === changedColumnSet.oldColumn.name; });\n if (originalColumn)\n changedTable.columns[changedTable.columns.indexOf(originalColumn)] = changedColumnSet.newColumn;\n });\n return [4 /*yield*/, this.recreateTable(changedTable, table)];\n case 4:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops column in the table.\n */\n AbstractSqliteQueryRunner.prototype.dropColumn = function (tableOrName, columnOrName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, column;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n column = columnOrName instanceof _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_3__[\"TableColumn\"] ? columnOrName : table.findColumnByName(columnOrName);\n if (!column)\n throw new Error(\"Column \\\"\" + columnOrName + \"\\\" was not found in table \\\"\" + table.name + \"\\\"\");\n return [4 /*yield*/, this.dropColumns(table, [column])];\n case 4:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops the columns in the table.\n */\n AbstractSqliteQueryRunner.prototype.dropColumns = function (tableOrName, columns) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, changedTable;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n changedTable = table.clone();\n columns.forEach(function (column) {\n changedTable.removeColumn(column);\n changedTable.findColumnUniques(column).forEach(function (unique) { return changedTable.removeUniqueConstraint(unique); });\n changedTable.findColumnIndices(column).forEach(function (index) { return changedTable.removeIndex(index); });\n changedTable.findColumnForeignKeys(column).forEach(function (fk) { return changedTable.removeForeignKey(fk); });\n });\n return [4 /*yield*/, this.recreateTable(changedTable, table)];\n case 4:\n _b.sent();\n // remove column and its constraints from original table.\n columns.forEach(function (column) {\n table.removeColumn(column);\n table.findColumnUniques(column).forEach(function (unique) { return table.removeUniqueConstraint(unique); });\n table.findColumnIndices(column).forEach(function (index) { return table.removeIndex(index); });\n table.findColumnForeignKeys(column).forEach(function (fk) { return table.removeForeignKey(fk); });\n });\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a new primary key.\n */\n AbstractSqliteQueryRunner.prototype.createPrimaryKey = function (tableOrName, columnNames) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, changedTable;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n changedTable = table.clone();\n changedTable.columns.forEach(function (column) {\n if (columnNames.find(function (columnName) { return columnName === column.name; }))\n column.isPrimary = true;\n });\n return [4 /*yield*/, this.recreateTable(changedTable, table)];\n case 4:\n _b.sent();\n // mark columns as primary in original table\n table.columns.forEach(function (column) {\n if (columnNames.find(function (columnName) { return columnName === column.name; }))\n column.isPrimary = true;\n });\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Updates composite primary keys.\n */\n AbstractSqliteQueryRunner.prototype.updatePrimaryKeys = function (tableOrName, columns) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Promise.resolve()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops a primary key.\n */\n AbstractSqliteQueryRunner.prototype.dropPrimaryKey = function (tableOrName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, changedTable;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n changedTable = table.clone();\n changedTable.primaryColumns.forEach(function (column) {\n column.isPrimary = false;\n });\n return [4 /*yield*/, this.recreateTable(changedTable, table)];\n case 4:\n _b.sent();\n // mark primary columns as non-primary in original table\n table.primaryColumns.forEach(function (column) {\n column.isPrimary = false;\n });\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a new unique constraint.\n */\n AbstractSqliteQueryRunner.prototype.createUniqueConstraint = function (tableOrName, uniqueConstraint) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.createUniqueConstraints(tableOrName, [uniqueConstraint])];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a new unique constraints.\n */\n AbstractSqliteQueryRunner.prototype.createUniqueConstraints = function (tableOrName, uniqueConstraints) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, changedTable;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n changedTable = table.clone();\n uniqueConstraints.forEach(function (uniqueConstraint) { return changedTable.addUniqueConstraint(uniqueConstraint); });\n return [4 /*yield*/, this.recreateTable(changedTable, table)];\n case 4:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops an unique constraint.\n */\n AbstractSqliteQueryRunner.prototype.dropUniqueConstraint = function (tableOrName, uniqueOrName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, uniqueConstraint;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n uniqueConstraint = uniqueOrName instanceof _schema_builder_table_TableUnique__WEBPACK_IMPORTED_MODULE_11__[\"TableUnique\"] ? uniqueOrName : table.uniques.find(function (u) { return u.name === uniqueOrName; });\n if (!uniqueConstraint)\n throw new Error(\"Supplied unique constraint was not found in table \" + table.name);\n return [4 /*yield*/, this.dropUniqueConstraints(table, [uniqueConstraint])];\n case 4:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates an unique constraints.\n */\n AbstractSqliteQueryRunner.prototype.dropUniqueConstraints = function (tableOrName, uniqueConstraints) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, changedTable;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n changedTable = table.clone();\n uniqueConstraints.forEach(function (uniqueConstraint) { return changedTable.removeUniqueConstraint(uniqueConstraint); });\n return [4 /*yield*/, this.recreateTable(changedTable, table)];\n case 4:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates new check constraint.\n */\n AbstractSqliteQueryRunner.prototype.createCheckConstraint = function (tableOrName, checkConstraint) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.createCheckConstraints(tableOrName, [checkConstraint])];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates new check constraints.\n */\n AbstractSqliteQueryRunner.prototype.createCheckConstraints = function (tableOrName, checkConstraints) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, changedTable;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n changedTable = table.clone();\n checkConstraints.forEach(function (checkConstraint) { return changedTable.addCheckConstraint(checkConstraint); });\n return [4 /*yield*/, this.recreateTable(changedTable, table)];\n case 4:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops check constraint.\n */\n AbstractSqliteQueryRunner.prototype.dropCheckConstraint = function (tableOrName, checkOrName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, checkConstraint;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n checkConstraint = checkOrName instanceof _schema_builder_table_TableCheck__WEBPACK_IMPORTED_MODULE_14__[\"TableCheck\"] ? checkOrName : table.checks.find(function (c) { return c.name === checkOrName; });\n if (!checkConstraint)\n throw new Error(\"Supplied check constraint was not found in table \" + table.name);\n return [4 /*yield*/, this.dropCheckConstraints(table, [checkConstraint])];\n case 4:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops check constraints.\n */\n AbstractSqliteQueryRunner.prototype.dropCheckConstraints = function (tableOrName, checkConstraints) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, changedTable;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n changedTable = table.clone();\n checkConstraints.forEach(function (checkConstraint) { return changedTable.removeCheckConstraint(checkConstraint); });\n return [4 /*yield*/, this.recreateTable(changedTable, table)];\n case 4:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a new exclusion constraint.\n */\n AbstractSqliteQueryRunner.prototype.createExclusionConstraint = function (tableOrName, exclusionConstraint) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n throw new Error(\"Sqlite does not support exclusion constraints.\");\n });\n });\n };\n /**\n * Creates a new exclusion constraints.\n */\n AbstractSqliteQueryRunner.prototype.createExclusionConstraints = function (tableOrName, exclusionConstraints) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n throw new Error(\"Sqlite does not support exclusion constraints.\");\n });\n });\n };\n /**\n * Drops exclusion constraint.\n */\n AbstractSqliteQueryRunner.prototype.dropExclusionConstraint = function (tableOrName, exclusionOrName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n throw new Error(\"Sqlite does not support exclusion constraints.\");\n });\n });\n };\n /**\n * Drops exclusion constraints.\n */\n AbstractSqliteQueryRunner.prototype.dropExclusionConstraints = function (tableOrName, exclusionConstraints) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n throw new Error(\"Sqlite does not support exclusion constraints.\");\n });\n });\n };\n /**\n * Creates a new foreign key.\n */\n AbstractSqliteQueryRunner.prototype.createForeignKey = function (tableOrName, foreignKey) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.createForeignKeys(tableOrName, [foreignKey])];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a new foreign keys.\n */\n AbstractSqliteQueryRunner.prototype.createForeignKeys = function (tableOrName, foreignKeys) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, changedTable;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n changedTable = table.clone();\n foreignKeys.forEach(function (foreignKey) { return changedTable.addForeignKey(foreignKey); });\n return [4 /*yield*/, this.recreateTable(changedTable, table)];\n case 4:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops a foreign key from the table.\n */\n AbstractSqliteQueryRunner.prototype.dropForeignKey = function (tableOrName, foreignKeyOrName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, foreignKey;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n foreignKey = foreignKeyOrName instanceof _schema_builder_table_TableForeignKey__WEBPACK_IMPORTED_MODULE_7__[\"TableForeignKey\"] ? foreignKeyOrName : table.foreignKeys.find(function (fk) { return fk.name === foreignKeyOrName; });\n if (!foreignKey)\n throw new Error(\"Supplied foreign key was not found in table \" + table.name);\n return [4 /*yield*/, this.dropForeignKeys(tableOrName, [foreignKey])];\n case 4:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops a foreign keys from the table.\n */\n AbstractSqliteQueryRunner.prototype.dropForeignKeys = function (tableOrName, foreignKeys) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, changedTable;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n changedTable = table.clone();\n foreignKeys.forEach(function (foreignKey) { return changedTable.removeForeignKey(foreignKey); });\n return [4 /*yield*/, this.recreateTable(changedTable, table)];\n case 4:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a new index.\n */\n AbstractSqliteQueryRunner.prototype.createIndex = function (tableOrName, index) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, up, down;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n // new index may be passed without name. In this case we generate index name manually.\n if (!index.name)\n index.name = this.connection.namingStrategy.indexName(table.name, index.columnNames, index.where);\n up = this.createIndexSql(table, index);\n down = this.dropIndexSql(index);\n return [4 /*yield*/, this.executeQueries(up, down)];\n case 4:\n _b.sent();\n table.addIndex(index);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a new indices\n */\n AbstractSqliteQueryRunner.prototype.createIndices = function (tableOrName, indices) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var promises;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n promises = indices.map(function (index) { return _this.createIndex(tableOrName, index); });\n return [4 /*yield*/, Promise.all(promises)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops an index from the table.\n */\n AbstractSqliteQueryRunner.prototype.dropIndex = function (tableOrName, indexOrName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, _a, index, up, down;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"])) return [3 /*break*/, 1];\n _a = tableOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n table = _a;\n index = indexOrName instanceof _schema_builder_table_TableIndex__WEBPACK_IMPORTED_MODULE_6__[\"TableIndex\"] ? indexOrName : table.indices.find(function (i) { return i.name === indexOrName; });\n if (!index)\n throw new Error(\"Supplied index was not found in table \" + table.name);\n up = this.dropIndexSql(index);\n down = this.createIndexSql(table, index);\n return [4 /*yield*/, this.executeQueries(up, down)];\n case 4:\n _b.sent();\n table.removeIndex(index);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops an indices from the table.\n */\n AbstractSqliteQueryRunner.prototype.dropIndices = function (tableOrName, indices) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var promises;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n promises = indices.map(function (index) { return _this.dropIndex(tableOrName, index); });\n return [4 /*yield*/, Promise.all(promises)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Clears all table contents.\n * Note: this operation uses SQL's TRUNCATE query which cannot be reverted in transactions.\n */\n AbstractSqliteQueryRunner.prototype.clearTable = function (tableName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.query(\"DELETE FROM \\\"\" + tableName + \"\\\"\")];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Removes all tables from the currently connected database.\n */\n AbstractSqliteQueryRunner.prototype.clearDatabase = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var selectViewDropsQuery, dropViewQueries, selectTableDropsQuery, dropTableQueries, error_1, rollbackError_1;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.query(\"PRAGMA foreign_keys = OFF;\")];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.startTransaction()];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3:\n _a.trys.push([3, 9, 14, 16]);\n selectViewDropsQuery = \"SELECT 'DROP VIEW \\\"' || name || '\\\";' as query FROM \\\"sqlite_master\\\" WHERE \\\"type\\\" = 'view'\";\n return [4 /*yield*/, this.query(selectViewDropsQuery)];\n case 4:\n dropViewQueries = _a.sent();\n return [4 /*yield*/, Promise.all(dropViewQueries.map(function (q) { return _this.query(q[\"query\"]); }))];\n case 5:\n _a.sent();\n selectTableDropsQuery = \"SELECT 'DROP TABLE \\\"' || name || '\\\";' as query FROM \\\"sqlite_master\\\" WHERE \\\"type\\\" = 'table' AND \\\"name\\\" != 'sqlite_sequence'\";\n return [4 /*yield*/, this.query(selectTableDropsQuery)];\n case 6:\n dropTableQueries = _a.sent();\n return [4 /*yield*/, Promise.all(dropTableQueries.map(function (q) { return _this.query(q[\"query\"]); }))];\n case 7:\n _a.sent();\n return [4 /*yield*/, this.commitTransaction()];\n case 8:\n _a.sent();\n return [3 /*break*/, 16];\n case 9:\n error_1 = _a.sent();\n _a.label = 10;\n case 10:\n _a.trys.push([10, 12, , 13]);\n return [4 /*yield*/, this.rollbackTransaction()];\n case 11:\n _a.sent();\n return [3 /*break*/, 13];\n case 12:\n rollbackError_1 = _a.sent();\n return [3 /*break*/, 13];\n case 13: throw error_1;\n case 14: return [4 /*yield*/, this.query(\"PRAGMA foreign_keys = ON;\")];\n case 15:\n _a.sent();\n return [7 /*endfinally*/];\n case 16: return [2 /*return*/];\n }\n });\n });\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n AbstractSqliteQueryRunner.prototype.loadViews = function (viewNames) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var hasTable, viewNamesString, query, dbViews;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.hasTable(this.getTypeormMetadataTableName())];\n case 1:\n hasTable = _a.sent();\n if (!hasTable)\n return [2 /*return*/, Promise.resolve([])];\n viewNamesString = viewNames.map(function (name) { return \"'\" + name + \"'\"; }).join(\", \");\n 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'\";\n if (viewNamesString.length > 0)\n query += \" AND \\\"t\\\".\\\"name\\\" IN (\" + viewNamesString + \")\";\n return [4 /*yield*/, this.query(query)];\n case 2:\n dbViews = _a.sent();\n return [2 /*return*/, dbViews.map(function (dbView) {\n var view = new _schema_builder_view_View__WEBPACK_IMPORTED_MODULE_8__[\"View\"]();\n view.name = dbView[\"name\"];\n view.expression = dbView[\"value\"];\n return view;\n })];\n }\n });\n });\n };\n /**\n * Loads all tables (with given names) from the database and creates a Table from them.\n */\n AbstractSqliteQueryRunner.prototype.loadTables = function (tableNames) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var tableNamesString, dbTables, dbIndicesDef;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n // if no tables given then no need to proceed\n if (!tableNames || !tableNames.length)\n return [2 /*return*/, []];\n tableNamesString = tableNames.map(function (tableName) { return \"'\" + tableName + \"'\"; }).join(\", \");\n return [4 /*yield*/, this.query(\"SELECT * FROM \\\"sqlite_master\\\" WHERE \\\"type\\\" = 'table' AND \\\"name\\\" IN (\" + tableNamesString + \")\")];\n case 1:\n dbTables = _a.sent();\n return [4 /*yield*/, this.query(\"SELECT * FROM \\\"sqlite_master\\\" WHERE \\\"type\\\" = 'index' AND \\\"tbl_name\\\" IN (\" + tableNamesString + \")\")];\n case 2:\n dbIndicesDef = _a.sent();\n // if tables were not found in the db, no need to proceed\n if (!dbTables || !dbTables.length)\n return [2 /*return*/, []];\n // create table schemas for loaded tables\n return [2 /*return*/, Promise.all(dbTables.map(function (dbTable) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n var table, sql, _a, dbColumns, dbIndices, dbForeignKeys, autoIncrementColumnName, tableSql, autoIncrementIndex, comma, bracket, tableForeignKeyConstraints, tableUniquePromises, _b, result, regexp, indicesPromises, indices;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_c) {\n switch (_c.label) {\n case 0:\n table = new _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"]({ name: dbTable[\"name\"] });\n sql = dbTable[\"sql\"];\n return [4 /*yield*/, Promise.all([\n this.query(\"PRAGMA table_info(\\\"\" + dbTable[\"name\"] + \"\\\")\"),\n this.query(\"PRAGMA index_list(\\\"\" + dbTable[\"name\"] + \"\\\")\"),\n this.query(\"PRAGMA foreign_key_list(\\\"\" + dbTable[\"name\"] + \"\\\")\"),\n ])];\n case 1:\n _a = tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"].apply(void 0, [_c.sent(), 3]), dbColumns = _a[0], dbIndices = _a[1], dbForeignKeys = _a[2];\n autoIncrementColumnName = undefined;\n tableSql = dbTable[\"sql\"];\n autoIncrementIndex = tableSql.toUpperCase().indexOf(\"AUTOINCREMENT\");\n if (autoIncrementIndex !== -1) {\n autoIncrementColumnName = tableSql.substr(0, autoIncrementIndex);\n comma = autoIncrementColumnName.lastIndexOf(\",\");\n bracket = autoIncrementColumnName.lastIndexOf(\"(\");\n if (comma !== -1) {\n autoIncrementColumnName = autoIncrementColumnName.substr(comma);\n autoIncrementColumnName = autoIncrementColumnName.substr(0, autoIncrementColumnName.lastIndexOf(\"\\\"\"));\n autoIncrementColumnName = autoIncrementColumnName.substr(autoIncrementColumnName.indexOf(\"\\\"\") + 1);\n }\n else if (bracket !== -1) {\n autoIncrementColumnName = autoIncrementColumnName.substr(bracket);\n autoIncrementColumnName = autoIncrementColumnName.substr(0, autoIncrementColumnName.lastIndexOf(\"\\\"\"));\n autoIncrementColumnName = autoIncrementColumnName.substr(autoIncrementColumnName.indexOf(\"\\\"\") + 1);\n }\n }\n // create columns from the loaded columns\n table.columns = dbColumns.map(function (dbColumn) {\n var tableColumn = new _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_3__[\"TableColumn\"]();\n tableColumn.name = dbColumn[\"name\"];\n tableColumn.type = dbColumn[\"type\"].toLowerCase();\n tableColumn.default = dbColumn[\"dflt_value\"] !== null && dbColumn[\"dflt_value\"] !== undefined ? dbColumn[\"dflt_value\"] : undefined;\n tableColumn.isNullable = dbColumn[\"notnull\"] === 0;\n // primary keys are numbered starting with 1, columns that aren't primary keys are marked with 0\n tableColumn.isPrimary = dbColumn[\"pk\"] > 0;\n tableColumn.comment = \"\"; // SQLite does not support column comments\n tableColumn.isGenerated = autoIncrementColumnName === dbColumn[\"name\"];\n if (tableColumn.isGenerated) {\n tableColumn.generationStrategy = \"increment\";\n }\n if (tableColumn.type === \"varchar\") {\n // Check if this is an enum\n var enumMatch = sql.match(new RegExp(\"\\\"(\" + tableColumn.name + \")\\\" varchar CHECK\\\\s*\\\\(\\\\s*\\\\1\\\\s+IN\\\\s*\\\\(('[^']+'(?:\\\\s*,\\\\s*'[^']+')+)\\\\s*\\\\)\\\\s*\\\\)\"));\n if (enumMatch) {\n // This is an enum\n tableColumn.enum = enumMatch[2].substr(1, enumMatch[2].length - 2).split(\"','\");\n }\n }\n // parse datatype and attempt to retrieve length, precision and scale\n var pos = tableColumn.type.indexOf(\"(\");\n if (pos !== -1) {\n var fullType = tableColumn.type;\n var dataType_1 = fullType.substr(0, pos);\n if (!!_this.driver.withLengthColumnTypes.find(function (col) { return col === dataType_1; })) {\n var len = parseInt(fullType.substring(pos + 1, fullType.length - 1));\n if (len) {\n tableColumn.length = len.toString();\n tableColumn.type = dataType_1; // remove the length part from the datatype\n }\n }\n if (!!_this.driver.withPrecisionColumnTypes.find(function (col) { return col === dataType_1; })) {\n var re = new RegExp(\"^\" + dataType_1 + \"\\\\((\\\\d+),?\\\\s?(\\\\d+)?\\\\)\");\n var matches = fullType.match(re);\n if (matches && matches[1]) {\n tableColumn.precision = +matches[1];\n }\n if (!!_this.driver.withScaleColumnTypes.find(function (col) { return col === dataType_1; })) {\n if (matches && matches[2]) {\n tableColumn.scale = +matches[2];\n }\n }\n tableColumn.type = dataType_1; // remove the precision/scale part from the datatype\n }\n }\n return tableColumn;\n });\n tableForeignKeyConstraints = _util_OrmUtils__WEBPACK_IMPORTED_MODULE_13__[\"OrmUtils\"].uniq(dbForeignKeys, function (dbForeignKey) { return dbForeignKey[\"id\"]; });\n table.foreignKeys = tableForeignKeyConstraints.map(function (foreignKey) {\n var ownForeignKeys = dbForeignKeys.filter(function (dbForeignKey) { return dbForeignKey[\"id\"] === foreignKey[\"id\"] && dbForeignKey[\"table\"] === foreignKey[\"table\"]; });\n var columnNames = ownForeignKeys.map(function (dbForeignKey) { return dbForeignKey[\"from\"]; });\n var referencedColumnNames = ownForeignKeys.map(function (dbForeignKey) { return dbForeignKey[\"to\"]; });\n // build foreign key name, because we can not get it directly.\n var fkName = _this.connection.namingStrategy.foreignKeyName(table, columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);\n return new _schema_builder_table_TableForeignKey__WEBPACK_IMPORTED_MODULE_7__[\"TableForeignKey\"]({\n name: fkName,\n columnNames: columnNames,\n referencedTableName: foreignKey[\"table\"],\n referencedColumnNames: referencedColumnNames,\n onDelete: foreignKey[\"on_delete\"],\n onUpdate: foreignKey[\"on_update\"]\n });\n });\n tableUniquePromises = dbIndices\n .filter(function (dbIndex) { return dbIndex[\"origin\"] === \"u\"; })\n .map(function (dbIndex) { return dbIndex[\"name\"]; })\n .filter(function (value, index, self) { return self.indexOf(value) === index; })\n .map(function (dbIndexName) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n var dbIndex, indexInfos, indexColumns, column;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n dbIndex = dbIndices.find(function (dbIndex) { return dbIndex[\"name\"] === dbIndexName; });\n return [4 /*yield*/, this.query(\"PRAGMA index_info(\\\"\" + dbIndex[\"name\"] + \"\\\")\")];\n case 1:\n indexInfos = _a.sent();\n indexColumns = indexInfos\n .sort(function (indexInfo1, indexInfo2) { return parseInt(indexInfo1[\"seqno\"]) - parseInt(indexInfo2[\"seqno\"]); })\n .map(function (indexInfo) { return indexInfo[\"name\"]; });\n if (indexColumns.length === 1) {\n column = table.columns.find(function (column) {\n return !!indexColumns.find(function (indexColumn) { return indexColumn === column.name; });\n });\n if (column)\n column.isUnique = true;\n }\n // Sqlite does not store unique constraint name, so we generate its name manually.\n return [2 /*return*/, new _schema_builder_table_TableUnique__WEBPACK_IMPORTED_MODULE_11__[\"TableUnique\"]({\n name: this.connection.namingStrategy.uniqueConstraintName(table, indexColumns),\n columnNames: indexColumns\n })];\n }\n });\n }); });\n _b = table;\n return [4 /*yield*/, Promise.all(tableUniquePromises)];\n case 2:\n _b.uniques = (_c.sent());\n regexp = /CONSTRAINT \"([^\"]*)\" CHECK (\\(.*?\\))([,]|[)]$)/g;\n while (((result = regexp.exec(sql)) !== null)) {\n table.checks.push(new _schema_builder_table_TableCheck__WEBPACK_IMPORTED_MODULE_14__[\"TableCheck\"]({ name: result[1], expression: result[2] }));\n }\n indicesPromises = dbIndices\n .filter(function (dbIndex) { return dbIndex[\"origin\"] === \"c\"; })\n .map(function (dbIndex) { return dbIndex[\"name\"]; })\n .filter(function (value, index, self) { return self.indexOf(value) === index; }) // unqiue\n .map(function (dbIndexName) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n var indexDef, condition, dbIndex, indexInfos, indexColumns, isUnique;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n indexDef = dbIndicesDef.find(function (dbIndexDef) { return dbIndexDef[\"name\"] === dbIndexName; });\n condition = /WHERE (.*)/.exec(indexDef[\"sql\"]);\n dbIndex = dbIndices.find(function (dbIndex) { return dbIndex[\"name\"] === dbIndexName; });\n return [4 /*yield*/, this.query(\"PRAGMA index_info(\\\"\" + dbIndex[\"name\"] + \"\\\")\")];\n case 1:\n indexInfos = _a.sent();\n indexColumns = indexInfos\n .sort(function (indexInfo1, indexInfo2) { return parseInt(indexInfo1[\"seqno\"]) - parseInt(indexInfo2[\"seqno\"]); })\n .map(function (indexInfo) { return indexInfo[\"name\"]; });\n isUnique = dbIndex[\"unique\"] === \"1\" || dbIndex[\"unique\"] === 1;\n return [2 /*return*/, new _schema_builder_table_TableIndex__WEBPACK_IMPORTED_MODULE_6__[\"TableIndex\"]({\n table: table,\n name: dbIndex[\"name\"],\n columnNames: indexColumns,\n isUnique: isUnique,\n where: condition ? condition[1] : undefined\n })];\n }\n });\n }); });\n return [4 /*yield*/, Promise.all(indicesPromises)];\n case 3:\n indices = _c.sent();\n table.indices = indices.filter(function (index) { return !!index; });\n return [2 /*return*/, table];\n }\n });\n }); }))];\n }\n });\n });\n };\n /**\n * Builds create table sql.\n */\n AbstractSqliteQueryRunner.prototype.createTableSql = function (table, createForeignKeys) {\n var _this = this;\n var primaryColumns = table.columns.filter(function (column) { return column.isPrimary; });\n var hasAutoIncrement = primaryColumns.find(function (column) { return column.isGenerated && column.generationStrategy === \"increment\"; });\n var skipPrimary = primaryColumns.length > 1;\n if (skipPrimary && hasAutoIncrement)\n throw new Error(\"Sqlite does not support AUTOINCREMENT on composite primary key\");\n var columnDefinitions = table.columns.map(function (column) { return _this.buildCreateColumnSql(column, skipPrimary); }).join(\", \");\n var sql = \"CREATE TABLE \\\"\" + table.name + \"\\\" (\" + columnDefinitions;\n // need for `addColumn()` method, because it recreates table.\n table.columns\n .filter(function (column) { return column.isUnique; })\n .forEach(function (column) {\n var isUniqueExist = table.uniques.some(function (unique) { return unique.columnNames.length === 1 && unique.columnNames[0] === column.name; });\n if (!isUniqueExist)\n table.uniques.push(new _schema_builder_table_TableUnique__WEBPACK_IMPORTED_MODULE_11__[\"TableUnique\"]({\n name: _this.connection.namingStrategy.uniqueConstraintName(table.name, [column.name]),\n columnNames: [column.name]\n }));\n });\n if (table.uniques.length > 0) {\n var uniquesSql = table.uniques.map(function (unique) {\n var uniqueName = unique.name ? unique.name : _this.connection.namingStrategy.uniqueConstraintName(table.name, unique.columnNames);\n var columnNames = unique.columnNames.map(function (columnName) { return \"\\\"\" + columnName + \"\\\"\"; }).join(\", \");\n return \"CONSTRAINT \\\"\" + uniqueName + \"\\\" UNIQUE (\" + columnNames + \")\";\n }).join(\", \");\n sql += \", \" + uniquesSql;\n }\n if (table.checks.length > 0) {\n var checksSql = table.checks.map(function (check) {\n var checkName = check.name ? check.name : _this.connection.namingStrategy.checkConstraintName(table.name, check.expression);\n return \"CONSTRAINT \\\"\" + checkName + \"\\\" CHECK (\" + check.expression + \")\";\n }).join(\", \");\n sql += \", \" + checksSql;\n }\n if (table.foreignKeys.length > 0 && createForeignKeys) {\n var foreignKeysSql = table.foreignKeys.map(function (fk) {\n var columnNames = fk.columnNames.map(function (columnName) { return \"\\\"\" + columnName + \"\\\"\"; }).join(\", \");\n if (!fk.name)\n fk.name = _this.connection.namingStrategy.foreignKeyName(table.name, fk.columnNames, fk.referencedTableName, fk.referencedColumnNames);\n var referencedColumnNames = fk.referencedColumnNames.map(function (columnName) { return \"\\\"\" + columnName + \"\\\"\"; }).join(\", \");\n var constraint = \"CONSTRAINT \\\"\" + fk.name + \"\\\" FOREIGN KEY (\" + columnNames + \") REFERENCES \\\"\" + fk.referencedTableName + \"\\\" (\" + referencedColumnNames + \")\";\n if (fk.onDelete)\n constraint += \" ON DELETE \" + fk.onDelete;\n if (fk.onUpdate)\n constraint += \" ON UPDATE \" + fk.onUpdate;\n return constraint;\n }).join(\", \");\n sql += \", \" + foreignKeysSql;\n }\n if (primaryColumns.length > 1) {\n var columnNames = primaryColumns.map(function (column) { return \"\\\"\" + column.name + \"\\\"\"; }).join(\", \");\n sql += \", PRIMARY KEY (\" + columnNames + \")\";\n }\n sql += \")\";\n var tableMetadata = this.connection.entityMetadatas.find(function (metadata) { return metadata.tableName === table.name; });\n if (tableMetadata && tableMetadata.withoutRowid) {\n sql += \" WITHOUT ROWID\";\n }\n return new _Query__WEBPACK_IMPORTED_MODULE_10__[\"Query\"](sql);\n };\n /**\n * Builds drop table sql.\n */\n AbstractSqliteQueryRunner.prototype.dropTableSql = function (tableOrName, ifExist) {\n var tableName = tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_5__[\"Table\"] ? tableOrName.name : tableOrName;\n var query = ifExist ? \"DROP TABLE IF EXISTS \\\"\" + tableName + \"\\\"\" : \"DROP TABLE \\\"\" + tableName + \"\\\"\";\n return new _Query__WEBPACK_IMPORTED_MODULE_10__[\"Query\"](query);\n };\n AbstractSqliteQueryRunner.prototype.createViewSql = function (view) {\n if (typeof view.expression === \"string\") {\n return new _Query__WEBPACK_IMPORTED_MODULE_10__[\"Query\"](\"CREATE VIEW \\\"\" + view.name + \"\\\" AS \" + view.expression);\n }\n else {\n return new _Query__WEBPACK_IMPORTED_MODULE_10__[\"Query\"](\"CREATE VIEW \\\"\" + view.name + \"\\\" AS \" + view.expression(this.connection).getQuery());\n }\n };\n AbstractSqliteQueryRunner.prototype.insertViewDefinitionSql = function (view) {\n var expression = typeof view.expression === \"string\" ? view.expression.trim() : view.expression(this.connection).getQuery();\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.connection.createQueryBuilder()\n .insert()\n .into(this.getTypeormMetadataTableName())\n .values({ type: \"VIEW\", name: view.name, value: expression })\n .getQueryAndParameters(), 2), query = _a[0], parameters = _a[1];\n return new _Query__WEBPACK_IMPORTED_MODULE_10__[\"Query\"](query, parameters);\n };\n /**\n * Builds drop view sql.\n */\n AbstractSqliteQueryRunner.prototype.dropViewSql = function (viewOrPath) {\n var viewName = viewOrPath instanceof _schema_builder_view_View__WEBPACK_IMPORTED_MODULE_8__[\"View\"] ? viewOrPath.name : viewOrPath;\n return new _Query__WEBPACK_IMPORTED_MODULE_10__[\"Query\"](\"DROP VIEW \\\"\" + viewName + \"\\\"\");\n };\n /**\n * Builds remove view sql.\n */\n AbstractSqliteQueryRunner.prototype.deleteViewDefinitionSql = function (viewOrPath) {\n var viewName = viewOrPath instanceof _schema_builder_view_View__WEBPACK_IMPORTED_MODULE_8__[\"View\"] ? viewOrPath.name : viewOrPath;\n var qb = this.connection.createQueryBuilder();\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(qb.delete()\n .from(this.getTypeormMetadataTableName())\n .where(qb.escape(\"type\") + \" = 'VIEW'\")\n .andWhere(qb.escape(\"name\") + \" = :name\", { name: viewName })\n .getQueryAndParameters(), 2), query = _a[0], parameters = _a[1];\n return new _Query__WEBPACK_IMPORTED_MODULE_10__[\"Query\"](query, parameters);\n };\n /**\n * Builds create index sql.\n */\n AbstractSqliteQueryRunner.prototype.createIndexSql = function (table, index) {\n var columns = index.columnNames.map(function (columnName) { return \"\\\"\" + columnName + \"\\\"\"; }).join(\", \");\n return new _Query__WEBPACK_IMPORTED_MODULE_10__[\"Query\"](\"CREATE \" + (index.isUnique ? \"UNIQUE \" : \"\") + \"INDEX \\\"\" + index.name + \"\\\" ON \\\"\" + table.name + \"\\\" (\" + columns + \") \" + (index.where ? \"WHERE \" + index.where : \"\"));\n };\n /**\n * Builds drop index sql.\n */\n AbstractSqliteQueryRunner.prototype.dropIndexSql = function (indexOrName) {\n var indexName = indexOrName instanceof _schema_builder_table_TableIndex__WEBPACK_IMPORTED_MODULE_6__[\"TableIndex\"] ? indexOrName.name : indexOrName;\n return new _Query__WEBPACK_IMPORTED_MODULE_10__[\"Query\"](\"DROP INDEX \\\"\" + indexName + \"\\\"\");\n };\n /**\n * Builds a query for create column.\n */\n AbstractSqliteQueryRunner.prototype.buildCreateColumnSql = function (column, skipPrimary) {\n var c = \"\\\"\" + column.name + \"\\\"\";\n if (column instanceof _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_4__[\"ColumnMetadata\"]) {\n c += \" \" + this.driver.normalizeType(column);\n }\n else {\n c += \" \" + this.connection.driver.createFullType(column);\n }\n if (column.enum)\n c += \" CHECK( \" + column.name + \" IN (\" + column.enum.map(function (val) { return \"'\" + val + \"'\"; }).join(\",\") + \") )\";\n if (column.isPrimary && !skipPrimary)\n c += \" PRIMARY KEY\";\n if (column.isGenerated === true && column.generationStrategy === \"increment\") // don't use skipPrimary here since updates can update already exist primary without auto inc.\n c += \" AUTOINCREMENT\";\n if (column.collation)\n c += \" COLLATE \" + column.collation;\n if (column.isNullable !== true)\n c += \" NOT NULL\";\n if (column.default !== undefined && column.default !== null)\n c += \" DEFAULT (\" + column.default + \")\";\n return c;\n };\n AbstractSqliteQueryRunner.prototype.recreateTable = function (newTable, oldTable, migrateData) {\n if (migrateData === void 0) { migrateData = true; }\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var upQueries, downQueries, newColumnNames, oldColumnNames;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n upQueries = [];\n downQueries = [];\n // drop old table indices\n oldTable.indices.forEach(function (index) {\n upQueries.push(_this.dropIndexSql(index));\n downQueries.push(_this.createIndexSql(oldTable, index));\n });\n // change table name into 'temporary_table'\n newTable.name = \"temporary_\" + newTable.name;\n // create new table\n upQueries.push(this.createTableSql(newTable, true));\n downQueries.push(this.dropTableSql(newTable));\n // migrate all data from the old table into new table\n if (migrateData) {\n newColumnNames = newTable.columns.map(function (column) { return \"\\\"\" + column.name + \"\\\"\"; }).join(\", \");\n oldColumnNames = oldTable.columns.map(function (column) { return \"\\\"\" + column.name + \"\\\"\"; }).join(\", \");\n if (oldTable.columns.length < newTable.columns.length) {\n newColumnNames = newTable.columns.filter(function (column) {\n return oldTable.columns.find(function (c) { return c.name === column.name; });\n }).map(function (column) { return \"\\\"\" + column.name + \"\\\"\"; }).join(\", \");\n }\n else if (oldTable.columns.length > newTable.columns.length) {\n oldColumnNames = oldTable.columns.filter(function (column) {\n return newTable.columns.find(function (c) { return c.name === column.name; });\n }).map(function (column) { return \"\\\"\" + column.name + \"\\\"\"; }).join(\", \");\n }\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_10__[\"Query\"](\"INSERT INTO \\\"\" + newTable.name + \"\\\"(\" + newColumnNames + \") SELECT \" + oldColumnNames + \" FROM \\\"\" + oldTable.name + \"\\\"\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_10__[\"Query\"](\"INSERT INTO \\\"\" + oldTable.name + \"\\\"(\" + oldColumnNames + \") SELECT \" + newColumnNames + \" FROM \\\"\" + newTable.name + \"\\\"\"));\n }\n // drop old table\n upQueries.push(this.dropTableSql(oldTable));\n downQueries.push(this.createTableSql(oldTable, true));\n // rename old table\n upQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_10__[\"Query\"](\"ALTER TABLE \\\"\" + newTable.name + \"\\\" RENAME TO \\\"\" + oldTable.name + \"\\\"\"));\n downQueries.push(new _Query__WEBPACK_IMPORTED_MODULE_10__[\"Query\"](\"ALTER TABLE \\\"\" + oldTable.name + \"\\\" RENAME TO \\\"\" + newTable.name + \"\\\"\"));\n newTable.name = oldTable.name;\n // recreate table indices\n newTable.indices.forEach(function (index) {\n // new index may be passed without name. In this case we generate index name manually.\n if (!index.name)\n index.name = _this.connection.namingStrategy.indexName(newTable.name, index.columnNames, index.where);\n upQueries.push(_this.createIndexSql(newTable, index));\n downQueries.push(_this.dropIndexSql(index));\n });\n return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];\n case 1:\n _a.sent();\n this.replaceCachedTable(oldTable, newTable);\n return [2 /*return*/];\n }\n });\n });\n };\n return AbstractSqliteQueryRunner;\n}(_query_runner_BaseQueryRunner__WEBPACK_IMPORTED_MODULE_12__[\"BaseQueryRunner\"]));\n\n\n//# sourceMappingURL=AbstractSqliteQueryRunner.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/sqljs/SqljsDriver.js":
/*!******************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/sqljs/SqljsDriver.js ***!
\******************************************************************/
/*! exports provided: SqljsDriver */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(Buffer) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SqljsDriver\", function() { return SqljsDriver; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../sqlite-abstract/AbstractSqliteDriver */ \"./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteDriver.js\");\n/* harmony import */ var _SqljsQueryRunner__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SqljsQueryRunner */ \"./node_modules/typeorm/browser/driver/sqljs/SqljsQueryRunner.js\");\n/* harmony import */ var _error_DriverPackageNotInstalledError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../error/DriverPackageNotInstalledError */ \"./node_modules/typeorm/browser/error/DriverPackageNotInstalledError.js\");\n/* harmony import */ var _error_DriverOptionNotSetError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../error/DriverOptionNotSetError */ \"./node_modules/typeorm/browser/error/DriverOptionNotSetError.js\");\n/* harmony import */ var _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../platform/PlatformTools */ \"./node_modules/typeorm/browser/platform/BrowserPlatformTools.js\");\n/* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/OrmUtils */ \"./node_modules/typeorm/browser/util/OrmUtils.js\");\n\n\n\n\n\n\n\nvar SqljsDriver = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SqljsDriver, _super);\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function SqljsDriver(connection) {\n var _this = _super.call(this, connection) || this;\n // If autoSave is enabled by user, location or autoSaveCallback have to be set\n // because either autoSave saves to location or calls autoSaveCallback.\n if (_this.options.autoSave && !_this.options.location && !_this.options.autoSaveCallback) {\n throw new _error_DriverOptionNotSetError__WEBPACK_IMPORTED_MODULE_4__[\"DriverOptionNotSetError\"](\"location or autoSaveCallback\");\n }\n // load sql.js package\n _this.loadDependencies();\n return _this;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Performs connection to the database.\n */\n SqljsDriver.prototype.connect = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this;\n return [4 /*yield*/, this.createDatabaseConnection()];\n case 1:\n _a.databaseConnection = _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Closes connection with database.\n */\n SqljsDriver.prototype.disconnect = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, new Promise(function (ok, fail) {\n try {\n _this.queryRunner = undefined;\n _this.databaseConnection.close();\n ok();\n }\n catch (e) {\n fail(e);\n }\n })];\n });\n });\n };\n /**\n * Creates a query runner used to execute database queries.\n */\n SqljsDriver.prototype.createQueryRunner = function (mode) {\n if (!this.queryRunner)\n this.queryRunner = new _SqljsQueryRunner__WEBPACK_IMPORTED_MODULE_2__[\"SqljsQueryRunner\"](this);\n return this.queryRunner;\n };\n /**\n * Loads a database from a given file (Node.js), local storage key (browser) or array.\n * This will delete the current database!\n */\n SqljsDriver.prototype.load = function (fileNameOrLocalStorageOrData, checkIfFileOrLocalStorageExists) {\n if (checkIfFileOrLocalStorageExists === void 0) { checkIfFileOrLocalStorageExists = true; }\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var database, localStorageContent;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(typeof fileNameOrLocalStorageOrData === \"string\")) return [3 /*break*/, 8];\n if (!(_platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__[\"PlatformTools\"].type === \"node\")) return [3 /*break*/, 1];\n // Node.js\n // fileNameOrLocalStorageOrData should be a path to the file\n if (_platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__[\"PlatformTools\"].fileExist(fileNameOrLocalStorageOrData)) {\n database = _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__[\"PlatformTools\"].readFileSync(fileNameOrLocalStorageOrData);\n return [2 /*return*/, this.createDatabaseConnectionWithImport(database)];\n }\n else if (checkIfFileOrLocalStorageExists) {\n throw new Error(\"File \" + fileNameOrLocalStorageOrData + \" does not exist\");\n }\n else {\n // File doesn't exist and checkIfFileOrLocalStorageExists is set to false.\n // Therefore open a database without importing an existing file.\n // File will be written on first write operation.\n return [2 /*return*/, this.createDatabaseConnectionWithImport()];\n }\n return [3 /*break*/, 7];\n case 1:\n localStorageContent = null;\n if (!this.options.useLocalForage) return [3 /*break*/, 5];\n if (!window.localforage) return [3 /*break*/, 3];\n return [4 /*yield*/, window.localforage.getItem(fileNameOrLocalStorageOrData)];\n case 2:\n localStorageContent = _a.sent();\n return [3 /*break*/, 4];\n case 3: throw new Error(\"localforage is not defined - please import localforage.js into your site\");\n case 4: return [3 /*break*/, 6];\n case 5:\n localStorageContent = _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__[\"PlatformTools\"].getGlobalVariable().localStorage.getItem(fileNameOrLocalStorageOrData);\n _a.label = 6;\n case 6:\n if (localStorageContent != null) {\n // localStorage value exists.\n return [2 /*return*/, this.createDatabaseConnectionWithImport(JSON.parse(localStorageContent))];\n }\n else if (checkIfFileOrLocalStorageExists) {\n throw new Error(\"File \" + fileNameOrLocalStorageOrData + \" does not exist\");\n }\n else {\n // localStorage value doesn't exist and checkIfFileOrLocalStorageExists is set to false.\n // Therefore open a database without importing anything.\n // localStorage value will be written on first write operation.\n return [2 /*return*/, this.createDatabaseConnectionWithImport()];\n }\n _a.label = 7;\n case 7: return [3 /*break*/, 9];\n case 8: return [2 /*return*/, this.createDatabaseConnectionWithImport(fileNameOrLocalStorageOrData)];\n case 9: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Saved the current database to the given file (Node.js), local storage key (browser) or\n * indexedDB key (browser with enabled useLocalForage option).\n * If no location path is given, the location path in the options (if specified) will be used.\n */\n SqljsDriver.prototype.save = function (location) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var path, content, e_1, database, databaseArray;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!location && !this.options.location) {\n throw new Error(\"No location is set, specify a location parameter or add the location option to your configuration\");\n }\n path = \"\";\n if (location) {\n path = location;\n }\n else if (this.options.location) {\n path = this.options.location;\n }\n if (!(_platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__[\"PlatformTools\"].type === \"node\")) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n content = Buffer.from(this.databaseConnection.export());\n return [4 /*yield*/, _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__[\"PlatformTools\"].writeFile(path, content)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n e_1 = _a.sent();\n throw new Error(\"Could not save database, error: \" + e_1);\n case 4: return [3 /*break*/, 10];\n case 5:\n database = this.databaseConnection.export();\n databaseArray = [].slice.call(database);\n if (!this.options.useLocalForage) return [3 /*break*/, 9];\n if (!window.localforage) return [3 /*break*/, 7];\n return [4 /*yield*/, window.localforage.setItem(path, JSON.stringify(databaseArray))];\n case 6:\n _a.sent();\n return [3 /*break*/, 8];\n case 7: throw new Error(\"localforage is not defined - please import localforage.js into your site\");\n case 8: return [3 /*break*/, 10];\n case 9:\n _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__[\"PlatformTools\"].getGlobalVariable().localStorage.setItem(path, JSON.stringify(databaseArray));\n _a.label = 10;\n case 10: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * This gets called by the QueryRunner when a change to the database is made.\n * If a custom autoSaveCallback is specified, it get's called with the database as Uint8Array,\n * otherwise the save method is called which saves it to file (Node.js), local storage (browser)\n * or indexedDB (browser with enabled useLocalForage option).\n */\n SqljsDriver.prototype.autoSave = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.options.autoSave) return [3 /*break*/, 4];\n if (!this.options.autoSaveCallback) return [3 /*break*/, 2];\n return [4 /*yield*/, this.options.autoSaveCallback(this.export())];\n case 1:\n _a.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.save()];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Returns the current database as Uint8Array.\n */\n SqljsDriver.prototype.export = function () {\n return this.databaseConnection.export();\n };\n /**\n * Creates generated map of values generated or returned by database after INSERT query.\n */\n SqljsDriver.prototype.createGeneratedMap = function (metadata, insertResult) {\n var _this = this;\n var generatedMap = metadata.generatedColumns.reduce(function (map, generatedColumn) {\n // seems to be the only way to get the inserted id, see https://github.com/kripken/sql.js/issues/77\n if (generatedColumn.isPrimary && generatedColumn.generationStrategy === \"increment\") {\n var query = \"SELECT last_insert_rowid()\";\n try {\n var result = _this.databaseConnection.exec(query);\n _this.connection.logger.logQuery(query);\n return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_6__[\"OrmUtils\"].mergeDeep(map, generatedColumn.createValueMap(result[0].values[0][0]));\n }\n catch (e) {\n _this.connection.logger.logQueryError(e, query, []);\n }\n }\n return map;\n }, {});\n return Object.keys(generatedMap).length > 0 ? generatedMap : undefined;\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Creates connection with the database.\n * If the location option is set, the database is loaded first.\n */\n SqljsDriver.prototype.createDatabaseConnection = function () {\n if (this.options.location) {\n return this.load(this.options.location, false);\n }\n return this.createDatabaseConnectionWithImport(this.options.database);\n };\n /**\n * Creates connection with an optional database.\n * If database is specified it is loaded, otherwise a new empty database is created.\n */\n SqljsDriver.prototype.createDatabaseConnectionWithImport = function (database) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var isLegacyVersion, sqlite, _a;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n isLegacyVersion = typeof this.sqlite.Database === \"function\";\n if (!isLegacyVersion) return [3 /*break*/, 1];\n _a = this.sqlite;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.sqlite(this.options.sqlJsConfig)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n sqlite = _a;\n if (database && database.length > 0) {\n this.databaseConnection = new sqlite.Database(database);\n }\n else {\n this.databaseConnection = new sqlite.Database();\n }\n // Enable foreign keys for database\n return [2 /*return*/, new Promise(function (ok, fail) {\n try {\n _this.databaseConnection.exec(\"PRAGMA foreign_keys = ON;\");\n ok(_this.databaseConnection);\n }\n catch (e) {\n fail(e);\n }\n })];\n }\n });\n });\n };\n /**\n * If driver dependency is not given explicitly, then try to load it via \"require\".\n */\n SqljsDriver.prototype.loadDependencies = function () {\n if (_platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__[\"PlatformTools\"].type === \"browser\") {\n this.sqlite = window.SQL;\n }\n else {\n try {\n this.sqlite = _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__[\"PlatformTools\"].load(\"sql.js\");\n }\n catch (e) {\n throw new _error_DriverPackageNotInstalledError__WEBPACK_IMPORTED_MODULE_3__[\"DriverPackageNotInstalledError\"](\"sql.js\", \"sql.js\");\n }\n }\n };\n return SqljsDriver;\n}(_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_1__[\"AbstractSqliteDriver\"]));\n\n\n//# sourceMappingURL=SqljsDriver.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/sqljs/SqljsDriver.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/sqljs/SqljsQueryRunner.js":
/*!***********************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/sqljs/SqljsQueryRunner.js ***!
\***********************************************************************/
/*! exports provided: SqljsQueryRunner */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SqljsQueryRunner\", function() { return SqljsQueryRunner; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _error_QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../error/QueryRunnerAlreadyReleasedError */ \"./node_modules/typeorm/browser/error/QueryRunnerAlreadyReleasedError.js\");\n/* harmony import */ var _sqlite_abstract_AbstractSqliteQueryRunner__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../sqlite-abstract/AbstractSqliteQueryRunner */ \"./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js\");\n/* harmony import */ var _subscriber_Broadcaster__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../subscriber/Broadcaster */ \"./node_modules/typeorm/browser/subscriber/Broadcaster.js\");\n/* harmony import */ var _error_QueryFailedError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../error/QueryFailedError */ \"./node_modules/typeorm/browser/error/QueryFailedError.js\");\n\n\n\n\n\n/**\n * Runs queries on a single sqlite database connection.\n */\nvar SqljsQueryRunner = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SqljsQueryRunner, _super);\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function SqljsQueryRunner(driver) {\n var _this = _super.call(this) || this;\n _this.driver = driver;\n _this.connection = driver.connection;\n _this.broadcaster = new _subscriber_Broadcaster__WEBPACK_IMPORTED_MODULE_3__[\"Broadcaster\"](_this);\n return _this;\n }\n // -------------------------------------------------------------------------\n // Public methods\n // -------------------------------------------------------------------------\n /**\n * Commits transaction.\n * Error will be thrown if transaction was not started.\n */\n SqljsQueryRunner.prototype.commitTransaction = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, _super.prototype.commitTransaction.call(this)];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.driver.autoSave()];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Executes a given SQL query.\n */\n SqljsQueryRunner.prototype.query = function (query, parameters) {\n var _this = this;\n if (parameters === void 0) { parameters = []; }\n if (this.isReleased)\n throw new _error_QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_1__[\"QueryRunnerAlreadyReleasedError\"]();\n return new Promise(function (ok, fail) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n var databaseConnection, queryStartTime, statement, maxQueryExecutionTime, queryEndTime, queryExecutionTime, result;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n databaseConnection = this.driver.databaseConnection;\n this.driver.connection.logger.logQuery(query, parameters, this);\n queryStartTime = +new Date();\n try {\n statement = databaseConnection.prepare(query);\n if (parameters) {\n parameters = parameters.map(function (p) { return typeof p !== 'undefined' ? p : null; });\n statement.bind(parameters);\n }\n maxQueryExecutionTime = this.driver.connection.options.maxQueryExecutionTime;\n queryEndTime = +new Date();\n queryExecutionTime = queryEndTime - queryStartTime;\n if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)\n this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);\n result = [];\n while (statement.step()) {\n result.push(statement.getAsObject());\n }\n statement.free();\n ok(result);\n }\n catch (e) {\n if (statement) {\n statement.free();\n }\n this.driver.connection.logger.logQueryError(e, query, parameters, this);\n fail(new _error_QueryFailedError__WEBPACK_IMPORTED_MODULE_4__[\"QueryFailedError\"](query, parameters, e));\n }\n return [2 /*return*/];\n });\n }); });\n };\n return SqljsQueryRunner;\n}(_sqlite_abstract_AbstractSqliteQueryRunner__WEBPACK_IMPORTED_MODULE_2__[\"AbstractSqliteQueryRunner\"]));\n\n\n//# sourceMappingURL=SqljsQueryRunner.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/sqljs/SqljsQueryRunner.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/sqlserver/MssqlParameter.js":
/*!*************************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/sqlserver/MssqlParameter.js ***!
\*************************************************************************/
/*! exports provided: MssqlParameter */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MssqlParameter\", function() { return MssqlParameter; });\n/**\n * Sql server driver requires parameter types to be specified fo input parameters used in the query.\n *\n * @see https://github.com/patriksimek/node-mssql#data-types\n */\nvar MssqlParameter = /** @class */ (function () {\n function MssqlParameter(value, type) {\n var params = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n params[_i - 2] = arguments[_i];\n }\n this.value = value;\n this.type = type;\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n this.params = [];\n this.params = params || [];\n }\n return MssqlParameter;\n}());\n\n\n//# sourceMappingURL=MssqlParameter.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/sqlserver/MssqlParameter.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/types/DatabaseType.js":
/*!*******************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/types/DatabaseType.js ***!
\*******************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=DatabaseType.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/types/DatabaseType.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/driver/types/ReplicationMode.js":
/*!**********************************************************************!*\
!*** ./node_modules/typeorm/browser/driver/types/ReplicationMode.js ***!
\**********************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=ReplicationMode.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/driver/types/ReplicationMode.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/entity-manager/EntityManager.js":
/*!**********************************************************************!*\
!*** ./node_modules/typeorm/browser/entity-manager/EntityManager.js ***!
\**********************************************************************/
/*! exports provided: EntityManager */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EntityManager\", function() { return EntityManager; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _error_EntityNotFoundError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../error/EntityNotFoundError */ \"./node_modules/typeorm/browser/error/EntityNotFoundError.js\");\n/* harmony import */ var _error_QueryRunnerProviderAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../error/QueryRunnerProviderAlreadyReleasedError */ \"./node_modules/typeorm/browser/error/QueryRunnerProviderAlreadyReleasedError.js\");\n/* harmony import */ var _error_NoNeedToReleaseEntityManagerError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../error/NoNeedToReleaseEntityManagerError */ \"./node_modules/typeorm/browser/error/NoNeedToReleaseEntityManagerError.js\");\n/* harmony import */ var _repository_TreeRepository__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../repository/TreeRepository */ \"./node_modules/typeorm/browser/repository/TreeRepository.js\");\n/* harmony import */ var _repository_Repository__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../repository/Repository */ \"./node_modules/typeorm/browser/repository/Repository.js\");\n/* harmony import */ var _find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../find-options/FindOptionsUtils */ \"./node_modules/typeorm/browser/find-options/FindOptionsUtils.js\");\n/* harmony import */ var _query_builder_transformer_PlainObjectToNewEntityTransformer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../query-builder/transformer/PlainObjectToNewEntityTransformer */ \"./node_modules/typeorm/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js\");\n/* harmony import */ var _query_builder_transformer_PlainObjectToDatabaseEntityTransformer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../query-builder/transformer/PlainObjectToDatabaseEntityTransformer */ \"./node_modules/typeorm/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js\");\n/* harmony import */ var _error_CustomRepositoryNotFoundError__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../error/CustomRepositoryNotFoundError */ \"./node_modules/typeorm/browser/error/CustomRepositoryNotFoundError.js\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../index */ \"./node_modules/typeorm/browser/index.js\");\n/* harmony import */ var _repository_AbstractRepository__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../repository/AbstractRepository */ \"./node_modules/typeorm/browser/repository/AbstractRepository.js\");\n/* harmony import */ var _error_CustomRepositoryCannotInheritRepositoryError__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../error/CustomRepositoryCannotInheritRepositoryError */ \"./node_modules/typeorm/browser/error/CustomRepositoryCannotInheritRepositoryError.js\");\n/* harmony import */ var _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../driver/mongodb/MongoDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _error_RepositoryNotFoundError__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../error/RepositoryNotFoundError */ \"./node_modules/typeorm/browser/error/RepositoryNotFoundError.js\");\n/* harmony import */ var _error_RepositoryNotTreeError__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../error/RepositoryNotTreeError */ \"./node_modules/typeorm/browser/error/RepositoryNotTreeError.js\");\n/* harmony import */ var _repository_RepositoryFactory__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../repository/RepositoryFactory */ \"./node_modules/typeorm/browser/repository/RepositoryFactory.js\");\n/* harmony import */ var _error_TreeRepositoryNotSupportedError__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../error/TreeRepositoryNotSupportedError */ \"./node_modules/typeorm/browser/error/TreeRepositoryNotSupportedError.js\");\n/* harmony import */ var _persistence_EntityPersistExecutor__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../persistence/EntityPersistExecutor */ \"./node_modules/typeorm/browser/persistence/EntityPersistExecutor.js\");\n/* harmony import */ var _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../util/ObjectUtils */ \"./node_modules/typeorm/browser/util/ObjectUtils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Entity manager supposed to work with any entity, automatically find its repository and call its methods,\n * whatever entity type are you passing.\n */\nvar EntityManager = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function EntityManager(connection, queryRunner) {\n // -------------------------------------------------------------------------\n // Protected Properties\n // -------------------------------------------------------------------------\n /**\n * Once created and then reused by en repositories.\n */\n this.repositories = [];\n /**\n * Plain to object transformer used in create and merge operations.\n */\n this.plainObjectToEntityTransformer = new _query_builder_transformer_PlainObjectToNewEntityTransformer__WEBPACK_IMPORTED_MODULE_7__[\"PlainObjectToNewEntityTransformer\"]();\n this.connection = connection;\n if (queryRunner) {\n this.queryRunner = queryRunner;\n // dynamic: this.queryRunner = manager;\n _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_19__[\"ObjectUtils\"].assign(this.queryRunner, { manager: this });\n }\n }\n /**\n * Wraps given function execution (and all operations made there) in a transaction.\n * All database operations must be executed using provided entity manager.\n */\n EntityManager.prototype.transaction = function (isolationOrRunInTransaction, runInTransactionParam) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var isolation, runInTransaction, queryRunner, result, err_1, rollbackError_1;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n isolation = typeof isolationOrRunInTransaction === \"string\" ? isolationOrRunInTransaction : undefined;\n runInTransaction = typeof isolationOrRunInTransaction === \"function\" ? isolationOrRunInTransaction : runInTransactionParam;\n if (!runInTransaction) {\n throw new Error(\"Transaction method requires callback in second paramter if isolation level is supplied.\");\n }\n if (this.connection.driver instanceof _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_13__[\"MongoDriver\"])\n throw new Error(\"Transactions aren't supported by MongoDB.\");\n if (this.queryRunner && this.queryRunner.isReleased)\n throw new _error_QueryRunnerProviderAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_2__[\"QueryRunnerProviderAlreadyReleasedError\"]();\n if (this.queryRunner && this.queryRunner.isTransactionActive)\n throw new Error(\"Cannot start transaction because its already started\");\n queryRunner = this.queryRunner || this.connection.createQueryRunner();\n _a.label = 1;\n case 1:\n _a.trys.push([1, 8, 13, 16]);\n if (!isolation) return [3 /*break*/, 3];\n return [4 /*yield*/, queryRunner.startTransaction(isolation)];\n case 2:\n _a.sent();\n return [3 /*break*/, 5];\n case 3: return [4 /*yield*/, queryRunner.startTransaction()];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [4 /*yield*/, runInTransaction(queryRunner.manager)];\n case 6:\n result = _a.sent();\n return [4 /*yield*/, queryRunner.commitTransaction()];\n case 7:\n _a.sent();\n return [2 /*return*/, result];\n case 8:\n err_1 = _a.sent();\n _a.label = 9;\n case 9:\n _a.trys.push([9, 11, , 12]);\n return [4 /*yield*/, queryRunner.rollbackTransaction()];\n case 10:\n _a.sent();\n return [3 /*break*/, 12];\n case 11:\n rollbackError_1 = _a.sent();\n return [3 /*break*/, 12];\n case 12: throw err_1;\n case 13:\n if (!!this.queryRunner) return [3 /*break*/, 15];\n return [4 /*yield*/, queryRunner.release()];\n case 14:\n _a.sent();\n _a.label = 15;\n case 15: return [7 /*endfinally*/];\n case 16: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Executes raw SQL query and returns raw database results.\n */\n EntityManager.prototype.query = function (query, parameters) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, this.connection.query(query, parameters, this.queryRunner)];\n });\n });\n };\n /**\n * Creates a new query builder that can be used to build a sql query.\n */\n EntityManager.prototype.createQueryBuilder = function (entityClass, alias, queryRunner) {\n if (alias) {\n return this.connection.createQueryBuilder(entityClass, alias, queryRunner || this.queryRunner);\n }\n else {\n return this.connection.createQueryBuilder(entityClass || queryRunner || this.queryRunner);\n }\n };\n /**\n * Checks if entity has an id by its Function type or schema name.\n */\n EntityManager.prototype.hasId = function (targetOrEntity, maybeEntity) {\n var target = arguments.length === 2 ? targetOrEntity : targetOrEntity.constructor;\n var entity = arguments.length === 2 ? maybeEntity : targetOrEntity;\n var metadata = this.connection.getMetadata(target);\n return metadata.hasId(entity);\n };\n /**\n * Gets entity mixed id.\n */\n EntityManager.prototype.getId = function (targetOrEntity, maybeEntity) {\n var target = arguments.length === 2 ? targetOrEntity : targetOrEntity.constructor;\n var entity = arguments.length === 2 ? maybeEntity : targetOrEntity;\n var metadata = this.connection.getMetadata(target);\n return metadata.getEntityIdMixedMap(entity);\n };\n /**\n * Creates a new entity instance or instances.\n * Can copy properties from the given object into new entities.\n */\n EntityManager.prototype.create = function (entityClass, plainObjectOrObjects) {\n var _this = this;\n var metadata = this.connection.getMetadata(entityClass);\n if (!plainObjectOrObjects)\n return metadata.create(this.queryRunner);\n if (Array.isArray(plainObjectOrObjects))\n return plainObjectOrObjects.map(function (plainEntityLike) { return _this.create(entityClass, plainEntityLike); });\n var mergeIntoEntity = metadata.create(this.queryRunner);\n this.plainObjectToEntityTransformer.transform(mergeIntoEntity, plainObjectOrObjects, metadata, true);\n return mergeIntoEntity;\n };\n /**\n * Merges two entities into one new entity.\n */\n EntityManager.prototype.merge = function (entityClass, mergeIntoEntity) {\n var _this = this;\n var entityLikes = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n entityLikes[_i - 2] = arguments[_i];\n }\n var metadata = this.connection.getMetadata(entityClass);\n entityLikes.forEach(function (object) { return _this.plainObjectToEntityTransformer.transform(mergeIntoEntity, object, metadata); });\n return mergeIntoEntity;\n };\n /**\n * Creates a new entity from the given plain javascript object. If entity already exist in the database, then\n * it loads it (and everything related to it), replaces all values with the new ones from the given object\n * and returns this new entity. This new entity is actually a loaded from the db entity with all properties\n * replaced from the new object.\n */\n EntityManager.prototype.preload = function (entityClass, entityLike) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var metadata, plainObjectToDatabaseEntityTransformer, transformedEntity;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n metadata = this.connection.getMetadata(entityClass);\n plainObjectToDatabaseEntityTransformer = new _query_builder_transformer_PlainObjectToDatabaseEntityTransformer__WEBPACK_IMPORTED_MODULE_8__[\"PlainObjectToDatabaseEntityTransformer\"](this.connection.manager);\n return [4 /*yield*/, plainObjectToDatabaseEntityTransformer.transform(entityLike, metadata)];\n case 1:\n transformedEntity = _a.sent();\n if (transformedEntity)\n return [2 /*return*/, this.merge(entityClass, transformedEntity, entityLike)];\n return [2 /*return*/, undefined];\n }\n });\n });\n };\n /**\n * Saves a given entity in the database.\n */\n EntityManager.prototype.save = function (targetOrEntity, maybeEntityOrOptions, maybeOptions) {\n // normalize mixed parameters\n var target = (arguments.length > 1 && (targetOrEntity instanceof Function || targetOrEntity instanceof _index__WEBPACK_IMPORTED_MODULE_10__[\"EntitySchema\"] || typeof targetOrEntity === \"string\")) ? targetOrEntity : undefined;\n var entity = target ? maybeEntityOrOptions : targetOrEntity;\n var options = target ? maybeOptions : maybeEntityOrOptions;\n if (target instanceof _index__WEBPACK_IMPORTED_MODULE_10__[\"EntitySchema\"])\n target = target.options.name;\n // if user passed empty array of entities then we don't need to do anything\n if (Array.isArray(entity) && entity.length === 0)\n return Promise.resolve(entity);\n // execute save operation\n return new _persistence_EntityPersistExecutor__WEBPACK_IMPORTED_MODULE_18__[\"EntityPersistExecutor\"](this.connection, this.queryRunner, \"save\", target, entity, options)\n .execute()\n .then(function () { return entity; });\n };\n /**\n * Removes a given entity from the database.\n */\n EntityManager.prototype.remove = function (targetOrEntity, maybeEntityOrOptions, maybeOptions) {\n // normalize mixed parameters\n var target = (arguments.length > 1 && (targetOrEntity instanceof Function || typeof targetOrEntity === \"string\")) ? targetOrEntity : undefined;\n var entity = target ? maybeEntityOrOptions : targetOrEntity;\n var options = target ? maybeOptions : maybeEntityOrOptions;\n // if user passed empty array of entities then we don't need to do anything\n if (Array.isArray(entity) && entity.length === 0)\n return Promise.resolve(entity);\n // execute save operation\n return new _persistence_EntityPersistExecutor__WEBPACK_IMPORTED_MODULE_18__[\"EntityPersistExecutor\"](this.connection, this.queryRunner, \"remove\", target, entity, options)\n .execute()\n .then(function () { return entity; });\n };\n /**\n * Records the delete date of one or many given entities.\n */\n EntityManager.prototype.softRemove = function (targetOrEntity, maybeEntityOrOptions, maybeOptions) {\n // normalize mixed parameters\n var target = (arguments.length > 1 && (targetOrEntity instanceof Function || targetOrEntity instanceof _index__WEBPACK_IMPORTED_MODULE_10__[\"EntitySchema\"] || typeof targetOrEntity === \"string\")) ? targetOrEntity : undefined;\n var entity = target ? maybeEntityOrOptions : targetOrEntity;\n var options = target ? maybeOptions : maybeEntityOrOptions;\n if (target instanceof _index__WEBPACK_IMPORTED_MODULE_10__[\"EntitySchema\"])\n target = target.options.name;\n // if user passed empty array of entities then we don't need to do anything\n if (Array.isArray(entity) && entity.length === 0)\n return Promise.resolve(entity);\n // execute soft-remove operation\n return new _persistence_EntityPersistExecutor__WEBPACK_IMPORTED_MODULE_18__[\"EntityPersistExecutor\"](this.connection, this.queryRunner, \"soft-remove\", target, entity, options)\n .execute()\n .then(function () { return entity; });\n };\n /**\n * Recovers one or many given entities.\n */\n EntityManager.prototype.recover = function (targetOrEntity, maybeEntityOrOptions, maybeOptions) {\n // normalize mixed parameters\n var target = (arguments.length > 1 && (targetOrEntity instanceof Function || targetOrEntity instanceof _index__WEBPACK_IMPORTED_MODULE_10__[\"EntitySchema\"] || typeof targetOrEntity === \"string\")) ? targetOrEntity : undefined;\n var entity = target ? maybeEntityOrOptions : targetOrEntity;\n var options = target ? maybeOptions : maybeEntityOrOptions;\n if (target instanceof _index__WEBPACK_IMPORTED_MODULE_10__[\"EntitySchema\"])\n target = target.options.name;\n // if user passed empty array of entities then we don't need to do anything\n if (Array.isArray(entity) && entity.length === 0)\n return Promise.resolve(entity);\n // execute recover operation\n return new _persistence_EntityPersistExecutor__WEBPACK_IMPORTED_MODULE_18__[\"EntityPersistExecutor\"](this.connection, this.queryRunner, \"recover\", target, entity, options)\n .execute()\n .then(function () { return entity; });\n };\n /**\n * Inserts a given entity into the database.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient INSERT query.\n * Does not check if entity exist in the database, so query will fail if duplicate entity is being inserted.\n * You can execute bulk inserts using this method.\n */\n EntityManager.prototype.insert = function (target, entity) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, this.createQueryBuilder()\n .insert()\n .into(target)\n .values(entity)\n .execute()];\n });\n });\n };\n /**\n * Updates entity partially. Entity can be found by a given condition(s).\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient UPDATE query.\n * Does not check if entity exist in the database.\n * Condition(s) cannot be empty.\n */\n EntityManager.prototype.update = function (target, criteria, partialEntity) {\n // if user passed empty criteria or empty list of criterias, then throw an error\n if (criteria === undefined ||\n criteria === null ||\n criteria === \"\" ||\n (Array.isArray(criteria) && criteria.length === 0)) {\n return Promise.reject(new Error(\"Empty criteria(s) are not allowed for the update method.\"));\n }\n if (typeof criteria === \"string\" ||\n typeof criteria === \"number\" ||\n criteria instanceof Date ||\n Array.isArray(criteria)) {\n return this.createQueryBuilder()\n .update(target)\n .set(partialEntity)\n .whereInIds(criteria)\n .execute();\n }\n else {\n return this.createQueryBuilder()\n .update(target)\n .set(partialEntity)\n .where(criteria)\n .execute();\n }\n };\n /**\n * Deletes entities by a given condition(s).\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient DELETE query.\n * Does not check if entity exist in the database.\n * Condition(s) cannot be empty.\n */\n EntityManager.prototype.delete = function (targetOrEntity, criteria) {\n // if user passed empty criteria or empty list of criterias, then throw an error\n if (criteria === undefined ||\n criteria === null ||\n criteria === \"\" ||\n (Array.isArray(criteria) && criteria.length === 0)) {\n return Promise.reject(new Error(\"Empty criteria(s) are not allowed for the delete method.\"));\n }\n if (typeof criteria === \"string\" ||\n typeof criteria === \"number\" ||\n criteria instanceof Date ||\n Array.isArray(criteria)) {\n return this.createQueryBuilder()\n .delete()\n .from(targetOrEntity)\n .whereInIds(criteria)\n .execute();\n }\n else {\n return this.createQueryBuilder()\n .delete()\n .from(targetOrEntity)\n .where(criteria)\n .execute();\n }\n };\n /**\n * Records the delete date of entities by a given condition(s).\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient DELETE query.\n * Does not check if entity exist in the database.\n * Condition(s) cannot be empty.\n */\n EntityManager.prototype.softDelete = function (targetOrEntity, criteria) {\n // if user passed empty criteria or empty list of criterias, then throw an error\n if (criteria === undefined ||\n criteria === null ||\n criteria === \"\" ||\n (Array.isArray(criteria) && criteria.length === 0)) {\n return Promise.reject(new Error(\"Empty criteria(s) are not allowed for the delete method.\"));\n }\n if (typeof criteria === \"string\" ||\n typeof criteria === \"number\" ||\n criteria instanceof Date ||\n Array.isArray(criteria)) {\n return this.createQueryBuilder()\n .softDelete()\n .from(targetOrEntity)\n .whereInIds(criteria)\n .execute();\n }\n else {\n return this.createQueryBuilder()\n .softDelete()\n .from(targetOrEntity)\n .where(criteria)\n .execute();\n }\n };\n /**\n * Restores entities by a given condition(s).\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient DELETE query.\n * Does not check if entity exist in the database.\n * Condition(s) cannot be empty.\n */\n EntityManager.prototype.restore = function (targetOrEntity, criteria) {\n // if user passed empty criteria or empty list of criterias, then throw an error\n if (criteria === undefined ||\n criteria === null ||\n criteria === \"\" ||\n (Array.isArray(criteria) && criteria.length === 0)) {\n return Promise.reject(new Error(\"Empty criteria(s) are not allowed for the delete method.\"));\n }\n if (typeof criteria === \"string\" ||\n typeof criteria === \"number\" ||\n criteria instanceof Date ||\n Array.isArray(criteria)) {\n return this.createQueryBuilder()\n .restore()\n .from(targetOrEntity)\n .whereInIds(criteria)\n .execute();\n }\n else {\n return this.createQueryBuilder()\n .restore()\n .from(targetOrEntity)\n .where(criteria)\n .execute();\n }\n };\n /**\n * Counts entities that match given find options or conditions.\n * Useful for pagination.\n */\n EntityManager.prototype.count = function (entityClass, optionsOrConditions) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var metadata, qb;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n metadata = this.connection.getMetadata(entityClass);\n qb = this.createQueryBuilder(entityClass, _find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].extractFindManyOptionsAlias(optionsOrConditions) || metadata.name);\n return [2 /*return*/, _find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].applyFindManyOptionsOrConditionsToQueryBuilder(qb, optionsOrConditions).getCount()];\n });\n });\n };\n /**\n * Finds entities that match given find options or conditions.\n */\n EntityManager.prototype.find = function (entityClass, optionsOrConditions) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var metadata, qb;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n metadata = this.connection.getMetadata(entityClass);\n qb = this.createQueryBuilder(entityClass, _find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].extractFindManyOptionsAlias(optionsOrConditions) || metadata.name);\n if (!_find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].isFindManyOptions(optionsOrConditions) || optionsOrConditions.loadEagerRelations !== false)\n _find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].joinEagerRelations(qb, qb.alias, metadata);\n return [2 /*return*/, _find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].applyFindManyOptionsOrConditionsToQueryBuilder(qb, optionsOrConditions).getMany()];\n });\n });\n };\n /**\n * Finds entities that match given find options and conditions.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n EntityManager.prototype.findAndCount = function (entityClass, optionsOrConditions) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var metadata, qb;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n metadata = this.connection.getMetadata(entityClass);\n qb = this.createQueryBuilder(entityClass, _find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].extractFindManyOptionsAlias(optionsOrConditions) || metadata.name);\n if (!_find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].isFindManyOptions(optionsOrConditions) || optionsOrConditions.loadEagerRelations !== false)\n _find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].joinEagerRelations(qb, qb.alias, metadata);\n return [2 /*return*/, _find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].applyFindManyOptionsOrConditionsToQueryBuilder(qb, optionsOrConditions).getManyAndCount()];\n });\n });\n };\n /**\n * Finds entities with ids.\n * Optionally find options or conditions can be applied.\n */\n EntityManager.prototype.findByIds = function (entityClass, ids, optionsOrConditions) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var metadata, qb;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n // if no ids passed, no need to execute a query - just return an empty array of values\n if (!ids.length)\n return [2 /*return*/, Promise.resolve([])];\n metadata = this.connection.getMetadata(entityClass);\n qb = this.createQueryBuilder(entityClass, _find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].extractFindManyOptionsAlias(optionsOrConditions) || metadata.name);\n _find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].applyFindManyOptionsOrConditionsToQueryBuilder(qb, optionsOrConditions);\n if (!_find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].isFindManyOptions(optionsOrConditions) || optionsOrConditions.loadEagerRelations !== false)\n _find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].joinEagerRelations(qb, qb.alias, metadata);\n return [2 /*return*/, qb.andWhereInIds(ids).getMany()];\n });\n });\n };\n /**\n * Finds first entity that matches given conditions.\n */\n EntityManager.prototype.findOne = function (entityClass, idOrOptionsOrConditions, maybeOptions) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var findOptions, options, metadata, alias, qb, passedId;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n findOptions = undefined;\n if (_find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].isFindOneOptions(idOrOptionsOrConditions)) {\n findOptions = idOrOptionsOrConditions;\n }\n else if (maybeOptions && _find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].isFindOneOptions(maybeOptions)) {\n findOptions = maybeOptions;\n }\n options = undefined;\n if (idOrOptionsOrConditions instanceof Object && !_find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].isFindOneOptions(idOrOptionsOrConditions))\n options = idOrOptionsOrConditions;\n metadata = this.connection.getMetadata(entityClass);\n alias = metadata.name;\n if (findOptions && findOptions.join) {\n alias = findOptions.join.alias;\n }\n else if (maybeOptions && _find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].isFindOneOptions(maybeOptions) && maybeOptions.join) {\n alias = maybeOptions.join.alias;\n }\n qb = this.createQueryBuilder(entityClass, alias);\n if (!findOptions || findOptions.loadEagerRelations !== false)\n _find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].joinEagerRelations(qb, qb.alias, qb.expressionMap.mainAlias.metadata);\n passedId = typeof idOrOptionsOrConditions === \"string\" || typeof idOrOptionsOrConditions === \"number\" || idOrOptionsOrConditions instanceof Date;\n if (!passedId) {\n findOptions = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({}, (findOptions || {})), { take: 1 });\n }\n _find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_6__[\"FindOptionsUtils\"].applyOptionsToQueryBuilder(qb, findOptions);\n if (options) {\n qb.where(options);\n }\n else if (passedId) {\n qb.andWhereInIds(metadata.ensureEntityIdMap(idOrOptionsOrConditions));\n }\n return [2 /*return*/, qb.getOne()];\n });\n });\n };\n /**\n * Finds first entity that matches given conditions or rejects the returned promise on error.\n */\n EntityManager.prototype.findOneOrFail = function (entityClass, idOrOptionsOrConditions, maybeOptions) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, this.findOne(entityClass, idOrOptionsOrConditions, maybeOptions).then(function (value) {\n if (value === undefined) {\n return Promise.reject(new _error_EntityNotFoundError__WEBPACK_IMPORTED_MODULE_1__[\"EntityNotFoundError\"](entityClass, idOrOptionsOrConditions));\n }\n return Promise.resolve(value);\n })];\n });\n });\n };\n /**\n * Clears all the data from the given table (truncates/drops it).\n *\n * Note: this method uses TRUNCATE and may not work as you expect in transactions on some platforms.\n * @see https://stackoverflow.com/a/5972738/925151\n */\n EntityManager.prototype.clear = function (entityClass) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var metadata, queryRunner;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n metadata = this.connection.getMetadata(entityClass);\n queryRunner = this.queryRunner || this.connection.createQueryRunner();\n _a.label = 1;\n case 1:\n _a.trys.push([1, , 3, 6]);\n return [4 /*yield*/, queryRunner.clearTable(metadata.tablePath)];\n case 2: return [2 /*return*/, _a.sent()]; // await is needed here because we are using finally\n case 3:\n if (!!this.queryRunner) return [3 /*break*/, 5];\n return [4 /*yield*/, queryRunner.release()];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [7 /*endfinally*/];\n case 6: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Increments some column by provided value of the entities matched given conditions.\n */\n EntityManager.prototype.increment = function (entityClass, conditions, propertyPath, value) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var metadata, column, values;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n metadata = this.connection.getMetadata(entityClass);\n column = metadata.findColumnWithPropertyPath(propertyPath);\n if (!column)\n throw new Error(\"Column \" + propertyPath + \" was not found in \" + metadata.targetName + \" entity.\");\n if (isNaN(Number(value)))\n throw new Error(\"Value \\\"\" + value + \"\\\" is not a number.\");\n values = propertyPath\n .split(\".\")\n .reduceRight(function (value, key) {\n var _a;\n return (_a = {}, _a[key] = value, _a);\n }, function () { return _this.connection.driver.escape(column.databaseName) + \" + \" + value; });\n return [2 /*return*/, this\n .createQueryBuilder(entityClass, \"entity\")\n .update(entityClass)\n .set(values)\n .where(conditions)\n .execute()];\n });\n });\n };\n /**\n * Decrements some column by provided value of the entities matched given conditions.\n */\n EntityManager.prototype.decrement = function (entityClass, conditions, propertyPath, value) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var metadata, column, values;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n metadata = this.connection.getMetadata(entityClass);\n column = metadata.findColumnWithPropertyPath(propertyPath);\n if (!column)\n throw new Error(\"Column \" + propertyPath + \" was not found in \" + metadata.targetName + \" entity.\");\n if (isNaN(Number(value)))\n throw new Error(\"Value \\\"\" + value + \"\\\" is not a number.\");\n values = propertyPath\n .split(\".\")\n .reduceRight(function (value, key) {\n var _a;\n return (_a = {}, _a[key] = value, _a);\n }, function () { return _this.connection.driver.escape(column.databaseName) + \" - \" + value; });\n return [2 /*return*/, this\n .createQueryBuilder(entityClass, \"entity\")\n .update(entityClass)\n .set(values)\n .where(conditions)\n .execute()];\n });\n });\n };\n /**\n * Gets repository for the given entity class or name.\n * If single database connection mode is used, then repository is obtained from the\n * repository aggregator, where each repository is individually created for this entity manager.\n * When single database connection is not used, repository is being obtained from the connection.\n */\n EntityManager.prototype.getRepository = function (target) {\n // throw exception if there is no repository with this target registered\n if (!this.connection.hasMetadata(target))\n throw new _error_RepositoryNotFoundError__WEBPACK_IMPORTED_MODULE_14__[\"RepositoryNotFoundError\"](this.connection.name, target);\n // find already created repository instance and return it if found\n var metadata = this.connection.getMetadata(target);\n var repository = this.repositories.find(function (repository) { return repository.metadata === metadata; });\n if (repository)\n return repository;\n // if repository was not found then create it, store its instance and return it\n var newRepository = new _repository_RepositoryFactory__WEBPACK_IMPORTED_MODULE_16__[\"RepositoryFactory\"]().create(this, metadata, this.queryRunner);\n this.repositories.push(newRepository);\n return newRepository;\n };\n /**\n * Gets tree repository for the given entity class or name.\n * If single database connection mode is used, then repository is obtained from the\n * repository aggregator, where each repository is individually created for this entity manager.\n * When single database connection is not used, repository is being obtained from the connection.\n */\n EntityManager.prototype.getTreeRepository = function (target) {\n // tree tables aren't supported by some drivers (mongodb)\n if (this.connection.driver.treeSupport === false)\n throw new _error_TreeRepositoryNotSupportedError__WEBPACK_IMPORTED_MODULE_17__[\"TreeRepositoryNotSupportedError\"](this.connection.driver);\n // check if repository is real tree repository\n var repository = this.getRepository(target);\n if (!(repository instanceof _repository_TreeRepository__WEBPACK_IMPORTED_MODULE_4__[\"TreeRepository\"]))\n throw new _error_RepositoryNotTreeError__WEBPACK_IMPORTED_MODULE_15__[\"RepositoryNotTreeError\"](target);\n return repository;\n };\n /**\n * Gets mongodb repository for the given entity class.\n */\n EntityManager.prototype.getMongoRepository = function (target) {\n return this.connection.getMongoRepository(target);\n };\n /**\n * Gets custom entity repository marked with @EntityRepository decorator.\n */\n EntityManager.prototype.getCustomRepository = function (customRepository) {\n var entityRepositoryMetadataArgs = Object(_index__WEBPACK_IMPORTED_MODULE_10__[\"getMetadataArgsStorage\"])().entityRepositories.find(function (repository) {\n return repository.target === (customRepository instanceof Function ? customRepository : customRepository.constructor);\n });\n if (!entityRepositoryMetadataArgs)\n throw new _error_CustomRepositoryNotFoundError__WEBPACK_IMPORTED_MODULE_9__[\"CustomRepositoryNotFoundError\"](customRepository);\n var entityMetadata = entityRepositoryMetadataArgs.entity ? this.connection.getMetadata(entityRepositoryMetadataArgs.entity) : undefined;\n var entityRepositoryInstance = new entityRepositoryMetadataArgs.target(this, entityMetadata);\n // NOTE: dynamic access to protected properties. We need this to prevent unwanted properties in those classes to be exposed,\n // however we need these properties for internal work of the class\n if (entityRepositoryInstance instanceof _repository_AbstractRepository__WEBPACK_IMPORTED_MODULE_11__[\"AbstractRepository\"]) {\n if (!entityRepositoryInstance[\"manager\"])\n entityRepositoryInstance[\"manager\"] = this;\n }\n if (entityRepositoryInstance instanceof _repository_Repository__WEBPACK_IMPORTED_MODULE_5__[\"Repository\"]) {\n if (!entityMetadata)\n throw new _error_CustomRepositoryCannotInheritRepositoryError__WEBPACK_IMPORTED_MODULE_12__[\"CustomRepositoryCannotInheritRepositoryError\"](customRepository);\n entityRepositoryInstance[\"manager\"] = this;\n entityRepositoryInstance[\"metadata\"] = entityMetadata;\n }\n return entityRepositoryInstance;\n };\n /**\n * Releases all resources used by entity manager.\n * This is used when entity manager is created with a single query runner,\n * and this single query runner needs to be released after job with entity manager is done.\n */\n EntityManager.prototype.release = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n if (!this.queryRunner)\n throw new _error_NoNeedToReleaseEntityManagerError__WEBPACK_IMPORTED_MODULE_3__[\"NoNeedToReleaseEntityManagerError\"]();\n return [2 /*return*/, this.queryRunner.release()];\n });\n });\n };\n return EntityManager;\n}());\n\n\n//# sourceMappingURL=EntityManager.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/entity-manager/EntityManager.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/entity-manager/EntityManagerFactory.js":
/*!*****************************************************************************!*\
!*** ./node_modules/typeorm/browser/entity-manager/EntityManagerFactory.js ***!
\*****************************************************************************/
/*! exports provided: EntityManagerFactory */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EntityManagerFactory\", function() { return EntityManagerFactory; });\n/* harmony import */ var _EntityManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./EntityManager */ \"./node_modules/typeorm/browser/entity-manager/EntityManager.js\");\n/* harmony import */ var _MongoEntityManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MongoEntityManager */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _SqljsEntityManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SqljsEntityManager */ \"./node_modules/typeorm/browser/entity-manager/SqljsEntityManager.js\");\n/* harmony import */ var _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../driver/sqljs/SqljsDriver */ \"./node_modules/typeorm/browser/driver/sqljs/SqljsDriver.js\");\n\n\n\n\n\n/**\n * Helps to create entity managers.\n */\nvar EntityManagerFactory = /** @class */ (function () {\n function EntityManagerFactory() {\n }\n /**\n * Creates a new entity manager depend on a given connection's driver.\n */\n EntityManagerFactory.prototype.create = function (connection, queryRunner) {\n if (connection.driver instanceof _MongoEntityManager__WEBPACK_IMPORTED_MODULE_1__[\"MongoDriver\"])\n return new _MongoEntityManager__WEBPACK_IMPORTED_MODULE_1__[\"MongoEntityManager\"](connection);\n if (connection.driver instanceof _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_3__[\"SqljsDriver\"])\n return new _SqljsEntityManager__WEBPACK_IMPORTED_MODULE_2__[\"SqljsEntityManager\"](connection, queryRunner);\n return new _EntityManager__WEBPACK_IMPORTED_MODULE_0__[\"EntityManager\"](connection, queryRunner);\n };\n return EntityManagerFactory;\n}());\n\n\n//# sourceMappingURL=EntityManagerFactory.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/entity-manager/EntityManagerFactory.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/entity-manager/SqljsEntityManager.js":
/*!***************************************************************************!*\
!*** ./node_modules/typeorm/browser/entity-manager/SqljsEntityManager.js ***!
\***************************************************************************/
/*! exports provided: SqljsEntityManager */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SqljsEntityManager\", function() { return SqljsEntityManager; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _EntityManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./EntityManager */ \"./node_modules/typeorm/browser/entity-manager/EntityManager.js\");\n\n\n/**\n * A special EntityManager that includes import/export and load/save function\n * that are unique to Sql.js.\n */\nvar SqljsEntityManager = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SqljsEntityManager, _super);\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function SqljsEntityManager(connection, queryRunner) {\n var _this = _super.call(this, connection, queryRunner) || this;\n _this.driver = connection.driver;\n return _this;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Loads either the definition from a file (Node.js) or localstorage (browser)\n * or uses the given definition to open a new database.\n */\n SqljsEntityManager.prototype.loadDatabase = function (fileNameOrLocalStorageOrData) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.driver.load(fileNameOrLocalStorageOrData)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Saves the current database to a file (Node.js) or localstorage (browser)\n * if fileNameOrLocalStorage is not set options.location is used.\n */\n SqljsEntityManager.prototype.saveDatabase = function (fileNameOrLocalStorage) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.driver.save(fileNameOrLocalStorage)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Returns the current database definition.\n */\n SqljsEntityManager.prototype.exportDatabase = function () {\n return this.driver.export();\n };\n return SqljsEntityManager;\n}(_EntityManager__WEBPACK_IMPORTED_MODULE_1__[\"EntityManager\"]));\n\n\n//# sourceMappingURL=SqljsEntityManager.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/entity-manager/SqljsEntityManager.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/entity-schema/EntitySchema.js":
/*!********************************************************************!*\
!*** ./node_modules/typeorm/browser/entity-schema/EntitySchema.js ***!
\********************************************************************/
/*! exports provided: EntitySchema */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EntitySchema\", function() { return EntitySchema; });\n/**\n * Interface for entity metadata mappings stored inside \"schemas\" instead of models decorated by decorators.\n */\nvar EntitySchema = /** @class */ (function () {\n function EntitySchema(options) {\n this.options = options;\n }\n return EntitySchema;\n}());\n\n\n//# sourceMappingURL=EntitySchema.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/entity-schema/EntitySchema.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/entity-schema/EntitySchemaTransformer.js":
/*!*******************************************************************************!*\
!*** ./node_modules/typeorm/browser/entity-schema/EntitySchemaTransformer.js ***!
\*******************************************************************************/
/*! exports provided: EntitySchemaTransformer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EntitySchemaTransformer\", function() { return EntitySchemaTransformer; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _metadata_args_MetadataArgsStorage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../metadata-args/MetadataArgsStorage */ \"./node_modules/typeorm/browser/metadata-args/MetadataArgsStorage.js\");\n\n\n/**\n * Transforms entity schema into metadata args storage.\n * The result will be just like entities read from decorators.\n */\nvar EntitySchemaTransformer = /** @class */ (function () {\n function EntitySchemaTransformer() {\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Transforms entity schema into new metadata args storage object.\n */\n EntitySchemaTransformer.prototype.transform = function (schemas) {\n var metadataArgsStorage = new _metadata_args_MetadataArgsStorage__WEBPACK_IMPORTED_MODULE_1__[\"MetadataArgsStorage\"]();\n schemas.forEach(function (entitySchema) {\n var options = entitySchema.options;\n // add table metadata args from the schema\n var tableMetadata = {\n target: options.target || options.name,\n name: options.tableName,\n database: options.database,\n schema: options.schema,\n type: options.type || \"regular\",\n orderBy: options.orderBy,\n synchronize: options.synchronize,\n expression: options.expression\n };\n metadataArgsStorage.tables.push(tableMetadata);\n // add columns metadata args from the schema\n Object.keys(options.columns).forEach(function (columnName) {\n var column = options.columns[columnName];\n var mode = \"regular\";\n if (column.createDate)\n mode = \"createDate\";\n if (column.updateDate)\n mode = \"updateDate\";\n if (column.deleteDate)\n mode = \"deleteDate\";\n if (column.version)\n mode = \"version\";\n if (column.treeChildrenCount)\n mode = \"treeChildrenCount\";\n if (column.treeLevel)\n mode = \"treeLevel\";\n if (column.objectId)\n mode = \"objectId\";\n var columnAgrs = {\n target: options.target || options.name,\n mode: mode,\n propertyName: columnName,\n options: {\n type: column.type,\n name: column.objectId ? \"_id\" : column.name,\n length: column.length,\n width: column.width,\n nullable: column.nullable,\n readonly: column.readonly,\n update: column.update,\n select: column.select,\n insert: column.insert,\n primary: column.primary,\n unique: column.unique,\n comment: column.comment,\n default: column.default,\n onUpdate: column.onUpdate,\n precision: column.precision,\n scale: column.scale,\n zerofill: column.zerofill,\n unsigned: column.unsigned,\n charset: column.charset,\n collation: column.collation,\n enum: column.enum,\n asExpression: column.asExpression,\n generatedType: column.generatedType,\n hstoreType: column.hstoreType,\n array: column.array,\n transformer: column.transformer,\n spatialFeatureType: column.spatialFeatureType,\n srid: column.srid\n }\n };\n metadataArgsStorage.columns.push(columnAgrs);\n if (column.generated) {\n var generationArgs = {\n target: options.target || options.name,\n propertyName: columnName,\n strategy: typeof column.generated === \"string\" ? column.generated : \"increment\"\n };\n metadataArgsStorage.generations.push(generationArgs);\n }\n if (column.unique)\n metadataArgsStorage.uniques.push({ target: options.target || options.name, columns: [columnName] });\n });\n // add relation metadata args from the schema\n if (options.relations) {\n Object.keys(options.relations).forEach(function (relationName) {\n var e_1, _a;\n var relationSchema = options.relations[relationName];\n var relation = {\n target: options.target || options.name,\n propertyName: relationName,\n relationType: relationSchema.type,\n isLazy: relationSchema.lazy || false,\n type: relationSchema.target,\n inverseSideProperty: relationSchema.inverseSide,\n isTreeParent: relationSchema.treeParent,\n isTreeChildren: relationSchema.treeChildren,\n options: {\n eager: relationSchema.eager || false,\n cascade: relationSchema.cascade,\n nullable: relationSchema.nullable,\n onDelete: relationSchema.onDelete,\n onUpdate: relationSchema.onUpdate,\n deferrable: relationSchema.deferrable,\n primary: relationSchema.primary,\n persistence: relationSchema.persistence\n }\n };\n metadataArgsStorage.relations.push(relation);\n // add join column\n if (relationSchema.joinColumn) {\n if (typeof relationSchema.joinColumn === \"boolean\") {\n var joinColumn = {\n target: options.target || options.name,\n propertyName: relationName\n };\n metadataArgsStorage.joinColumns.push(joinColumn);\n }\n else {\n var joinColumnsOptions = Array.isArray(relationSchema.joinColumn) ? relationSchema.joinColumn : [relationSchema.joinColumn];\n try {\n for (var joinColumnsOptions_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(joinColumnsOptions), joinColumnsOptions_1_1 = joinColumnsOptions_1.next(); !joinColumnsOptions_1_1.done; joinColumnsOptions_1_1 = joinColumnsOptions_1.next()) {\n var joinColumnOption = joinColumnsOptions_1_1.value;\n var joinColumn = {\n target: options.target || options.name,\n propertyName: relationName,\n name: joinColumnOption.name,\n referencedColumnName: joinColumnOption.referencedColumnName\n };\n metadataArgsStorage.joinColumns.push(joinColumn);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (joinColumnsOptions_1_1 && !joinColumnsOptions_1_1.done && (_a = joinColumnsOptions_1.return)) _a.call(joinColumnsOptions_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n }\n // add join table\n if (relationSchema.joinTable) {\n if (typeof relationSchema.joinTable === \"boolean\") {\n var joinTable = {\n target: options.target || options.name,\n propertyName: relationName\n };\n metadataArgsStorage.joinTables.push(joinTable);\n }\n else {\n var joinTable = {\n target: options.target || options.name,\n propertyName: relationName,\n name: relationSchema.joinTable.name,\n database: relationSchema.joinTable.database,\n schema: relationSchema.joinTable.schema,\n joinColumns: (relationSchema.joinTable.joinColumn ? [relationSchema.joinTable.joinColumn] : relationSchema.joinTable.joinColumns),\n inverseJoinColumns: (relationSchema.joinTable.inverseJoinColumn ? [relationSchema.joinTable.inverseJoinColumn] : relationSchema.joinTable.inverseJoinColumns),\n };\n metadataArgsStorage.joinTables.push(joinTable);\n }\n }\n });\n }\n // add index metadata args from the schema\n if (options.indices) {\n options.indices.forEach(function (index) {\n var indexAgrs = {\n target: options.target || options.name,\n name: index.name,\n unique: index.unique === true ? true : false,\n spatial: index.spatial === true ? true : false,\n fulltext: index.fulltext === true ? true : false,\n parser: index.parser,\n synchronize: index.synchronize === false ? false : true,\n where: index.where,\n sparse: index.sparse,\n columns: index.columns\n };\n metadataArgsStorage.indices.push(indexAgrs);\n });\n }\n // add unique metadata args from the schema\n if (options.uniques) {\n options.uniques.forEach(function (unique) {\n var uniqueAgrs = {\n target: options.target || options.name,\n name: unique.name,\n columns: unique.columns\n };\n metadataArgsStorage.uniques.push(uniqueAgrs);\n });\n }\n // add check metadata args from the schema\n if (options.checks) {\n options.checks.forEach(function (check) {\n var checkAgrs = {\n target: options.target || options.name,\n name: check.name,\n expression: check.expression\n };\n metadataArgsStorage.checks.push(checkAgrs);\n });\n }\n // add exclusion metadata args from the schema\n if (options.exclusions) {\n options.exclusions.forEach(function (exclusion) {\n var exclusionArgs = {\n target: options.target || options.name,\n name: exclusion.name,\n expression: exclusion.expression\n };\n metadataArgsStorage.exclusions.push(exclusionArgs);\n });\n }\n });\n return metadataArgsStorage;\n };\n return EntitySchemaTransformer;\n}());\n\n\n//# sourceMappingURL=EntitySchemaTransformer.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/entity-schema/EntitySchemaTransformer.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/AlreadyHasActiveConnectionError.js":
/*!*******************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/AlreadyHasActiveConnectionError.js ***!
\*******************************************************************************/
/*! exports provided: AlreadyHasActiveConnectionError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AlreadyHasActiveConnectionError\", function() { return AlreadyHasActiveConnectionError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when consumer tries to recreate connection with the same name, but previous connection was not closed yet.\n */\nvar AlreadyHasActiveConnectionError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AlreadyHasActiveConnectionError, _super);\n function AlreadyHasActiveConnectionError(connectionName) {\n var _this = _super.call(this) || this;\n _this.name = \"AlreadyHasActiveConnectionError\";\n Object.setPrototypeOf(_this, AlreadyHasActiveConnectionError.prototype);\n _this.message = \"Cannot create a new connection named \\\"\" + connectionName + \"\\\", because connection with such name \" +\n \"already exist and it now has an active connection session.\";\n return _this;\n }\n return AlreadyHasActiveConnectionError;\n}(Error));\n\n\n//# sourceMappingURL=AlreadyHasActiveConnectionError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/AlreadyHasActiveConnectionError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/CannotAttachTreeChildrenEntityError.js":
/*!***********************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/CannotAttachTreeChildrenEntityError.js ***!
\***********************************************************************************/
/*! exports provided: CannotAttachTreeChildrenEntityError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CannotAttachTreeChildrenEntityError\", function() { return CannotAttachTreeChildrenEntityError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when user saves tree children entity but its parent is not saved yet.\n*/\nvar CannotAttachTreeChildrenEntityError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CannotAttachTreeChildrenEntityError, _super);\n function CannotAttachTreeChildrenEntityError(entityName) {\n var _this = _super.call(this) || this;\n _this.name = \"CannotAttachTreeChildrenEntityError\";\n Object.setPrototypeOf(_this, CannotAttachTreeChildrenEntityError.prototype);\n _this.message = \"Cannot attach entity \\\"\" + entityName + \"\\\" to its parent. Please make sure parent is saved in the database before saving children nodes.\";\n return _this;\n }\n return CannotAttachTreeChildrenEntityError;\n}(Error));\n\n\n//# sourceMappingURL=CannotAttachTreeChildrenEntityError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/CannotAttachTreeChildrenEntityError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/CannotConnectAlreadyConnectedError.js":
/*!**********************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/CannotConnectAlreadyConnectedError.js ***!
\**********************************************************************************/
/*! exports provided: CannotConnectAlreadyConnectedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CannotConnectAlreadyConnectedError\", function() { return CannotConnectAlreadyConnectedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when consumer tries to connect when he already connected.\n */\nvar CannotConnectAlreadyConnectedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CannotConnectAlreadyConnectedError, _super);\n function CannotConnectAlreadyConnectedError(connectionName) {\n var _this = _super.call(this) || this;\n _this.name = \"CannotConnectAlreadyConnectedError\";\n Object.setPrototypeOf(_this, CannotConnectAlreadyConnectedError.prototype);\n _this.message = \"Cannot create a \\\"\" + connectionName + \"\\\" connection because connection to the database already established.\";\n return _this;\n }\n return CannotConnectAlreadyConnectedError;\n}(Error));\n\n\n//# sourceMappingURL=CannotConnectAlreadyConnectedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/CannotConnectAlreadyConnectedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/CannotCreateEntityIdMapError.js":
/*!****************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/CannotCreateEntityIdMapError.js ***!
\****************************************************************************/
/*! exports provided: CannotCreateEntityIdMapError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CannotCreateEntityIdMapError\", function() { return CannotCreateEntityIdMapError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when user tries to create entity id map from the mixed id value,\n * but id value is a single value when entity requires multiple values.\n */\nvar CannotCreateEntityIdMapError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CannotCreateEntityIdMapError, _super);\n function CannotCreateEntityIdMapError(metadata, id) {\n var _this = _super.call(this) || this;\n _this.name = \"CannotCreateEntityIdMapError\";\n Object.setPrototypeOf(_this, CannotCreateEntityIdMapError.prototype);\n var objectExample = metadata.primaryColumns.reduce(function (object, column, index) {\n column.setEntityValue(object, index + 1);\n return object;\n }, {});\n _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.\";\n return _this;\n }\n return CannotCreateEntityIdMapError;\n}(Error));\n\n\n//# sourceMappingURL=CannotCreateEntityIdMapError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/CannotCreateEntityIdMapError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/CannotDetermineEntityError.js":
/*!**************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/CannotDetermineEntityError.js ***!
\**************************************************************************/
/*! exports provided: CannotDetermineEntityError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CannotDetermineEntityError\", function() { return CannotDetermineEntityError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when user tries to save/remove/etc. constructor-less object (object literal) instead of entity.\n */\nvar CannotDetermineEntityError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CannotDetermineEntityError, _super);\n function CannotDetermineEntityError(operation) {\n var _this = _super.call(this) || this;\n _this.name = \"CannotDetermineEntityError\";\n Object.setPrototypeOf(_this, CannotDetermineEntityError.prototype);\n _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.\";\n return _this;\n }\n return CannotDetermineEntityError;\n}(Error));\n\n\n//# sourceMappingURL=CannotDetermineEntityError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/CannotDetermineEntityError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/CannotExecuteNotConnectedError.js":
/*!******************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/CannotExecuteNotConnectedError.js ***!
\******************************************************************************/
/*! exports provided: CannotExecuteNotConnectedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CannotExecuteNotConnectedError\", function() { return CannotExecuteNotConnectedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when consumer tries to execute operation allowed only if connection is opened.\n */\nvar CannotExecuteNotConnectedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CannotExecuteNotConnectedError, _super);\n function CannotExecuteNotConnectedError(connectionName) {\n var _this = _super.call(this) || this;\n _this.name = \"CannotExecuteNotConnectedError\";\n Object.setPrototypeOf(_this, CannotExecuteNotConnectedError.prototype);\n _this.message = \"Cannot execute operation on \\\"\" + connectionName + \"\\\" connection because connection is not yet established.\";\n return _this;\n }\n return CannotExecuteNotConnectedError;\n}(Error));\n\n\n//# sourceMappingURL=CannotExecuteNotConnectedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/CannotExecuteNotConnectedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/CannotGetEntityManagerNotConnectedError.js":
/*!***************************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/CannotGetEntityManagerNotConnectedError.js ***!
\***************************************************************************************/
/*! exports provided: CannotGetEntityManagerNotConnectedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CannotGetEntityManagerNotConnectedError\", function() { return CannotGetEntityManagerNotConnectedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when consumer tries to access entity manager before connection is established.\n */\nvar CannotGetEntityManagerNotConnectedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CannotGetEntityManagerNotConnectedError, _super);\n function CannotGetEntityManagerNotConnectedError(connectionName) {\n var _this = _super.call(this) || this;\n _this.name = \"CannotGetEntityManagerNotConnectedError\";\n Object.setPrototypeOf(_this, CannotGetEntityManagerNotConnectedError.prototype);\n _this.message = \"Cannot get entity manager for \\\"\" + connectionName + \"\\\" connection because connection is not yet established.\";\n return _this;\n }\n return CannotGetEntityManagerNotConnectedError;\n}(Error));\n\n\n//# sourceMappingURL=CannotGetEntityManagerNotConnectedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/CannotGetEntityManagerNotConnectedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/CannotReflectMethodParameterTypeError.js":
/*!*************************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/CannotReflectMethodParameterTypeError.js ***!
\*************************************************************************************/
/*! exports provided: CannotReflectMethodParameterTypeError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CannotReflectMethodParameterTypeError\", function() { return CannotReflectMethodParameterTypeError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when ORM cannot get method parameter's type.\n * Basically, when reflect-metadata is not available or tsconfig is not properly setup.\n */\nvar CannotReflectMethodParameterTypeError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CannotReflectMethodParameterTypeError, _super);\n function CannotReflectMethodParameterTypeError(target, methodName) {\n var _this = _super.call(this) || this;\n _this.name = \"CannotReflectMethodParameterTypeError\";\n Object.setPrototypeOf(_this, CannotReflectMethodParameterTypeError.prototype);\n _this.message = \"Cannot get reflected type for a \\\"\" + methodName + \"\\\" method's parameter of \\\"\" + target.name + \"\\\" class. \" +\n \"Make sure you have turned on an \\\"emitDecoratorMetadata\\\": true option in tsconfig.json. \" +\n \"Also make sure you have imported \\\"reflect-metadata\\\" on top of the main entry file in your application.\";\n return _this;\n }\n return CannotReflectMethodParameterTypeError;\n}(Error));\n\n\n//# sourceMappingURL=CannotReflectMethodParameterTypeError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/CannotReflectMethodParameterTypeError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/CircularRelationsError.js":
/*!**********************************************************************!*\
!*** ./node_modules/typeorm/browser/error/CircularRelationsError.js ***!
\**********************************************************************/
/*! exports provided: CircularRelationsError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CircularRelationsError\", function() { return CircularRelationsError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when circular relations detected with nullable set to false.\n */\nvar CircularRelationsError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CircularRelationsError, _super);\n function CircularRelationsError(path) {\n var _this = _super.call(this) || this;\n _this.name = \"CircularRelationsError\";\n Object.setPrototypeOf(_this, CircularRelationsError.prototype);\n _this.message = \"Circular relations detected: \" + path + \". To resolve this issue you need to set nullable: true somewhere in this dependency structure.\";\n return _this;\n }\n return CircularRelationsError;\n}(Error));\n\n\n//# sourceMappingURL=CircularRelationsError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/CircularRelationsError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/ColumnTypeUndefinedError.js":
/*!************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/ColumnTypeUndefinedError.js ***!
\************************************************************************/
/*! exports provided: ColumnTypeUndefinedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ColumnTypeUndefinedError\", function() { return ColumnTypeUndefinedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when ORM cannot get column's type automatically.\n * Basically, when reflect-metadata is not available or tsconfig is not properly setup.\n */\nvar ColumnTypeUndefinedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ColumnTypeUndefinedError, _super);\n function ColumnTypeUndefinedError(object, propertyName) {\n var _this = _super.call(this) || this;\n _this.name = \"ColumnTypeUndefinedError\";\n Object.setPrototypeOf(_this, ColumnTypeUndefinedError.prototype);\n _this.message = \"Column type for \" + object.constructor.name + \"#\" + propertyName + \" is not defined and cannot be guessed. \" +\n \"Make sure you have turned on an \\\"emitDecoratorMetadata\\\": true option in tsconfig.json. \" +\n \"Also make sure you have imported \\\"reflect-metadata\\\" on top of the main entry file in your application (before any entity imported).\" +\n \"If you are using JavaScript instead of TypeScript you must explicitly provide a column type.\";\n return _this;\n }\n return ColumnTypeUndefinedError;\n}(Error));\n\n\n//# sourceMappingURL=ColumnTypeUndefinedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/ColumnTypeUndefinedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/ConnectionIsNotSetError.js":
/*!***********************************************************************!*\
!*** ./node_modules/typeorm/browser/error/ConnectionIsNotSetError.js ***!
\***********************************************************************/
/*! exports provided: ConnectionIsNotSetError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ConnectionIsNotSetError\", function() { return ConnectionIsNotSetError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when user tries to execute operation that requires connection to be established.\n */\nvar ConnectionIsNotSetError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ConnectionIsNotSetError, _super);\n function ConnectionIsNotSetError(dbType) {\n var _this = _super.call(this) || this;\n _this.name = \"ConnectionIsNotSetError\";\n Object.setPrototypeOf(_this, ConnectionIsNotSetError.prototype);\n _this.message = \"Connection with \" + dbType + \" database is not established. Check connection configuration.\";\n return _this;\n }\n return ConnectionIsNotSetError;\n}(Error));\n\n\n//# sourceMappingURL=ConnectionIsNotSetError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/ConnectionIsNotSetError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/ConnectionNotFoundError.js":
/*!***********************************************************************!*\
!*** ./node_modules/typeorm/browser/error/ConnectionNotFoundError.js ***!
\***********************************************************************/
/*! exports provided: ConnectionNotFoundError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ConnectionNotFoundError\", function() { return ConnectionNotFoundError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when consumer tries to get connection that does not exist.\n */\nvar ConnectionNotFoundError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ConnectionNotFoundError, _super);\n function ConnectionNotFoundError(name) {\n var _this = _super.call(this) || this;\n _this.name = \"ConnectionNotFoundError\";\n Object.setPrototypeOf(_this, ConnectionNotFoundError.prototype);\n _this.message = \"Connection \\\"\" + name + \"\\\" was not found.\";\n return _this;\n }\n return ConnectionNotFoundError;\n}(Error));\n\n\n//# sourceMappingURL=ConnectionNotFoundError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/ConnectionNotFoundError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/CustomRepositoryCannotInheritRepositoryError.js":
/*!********************************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/CustomRepositoryCannotInheritRepositoryError.js ***!
\********************************************************************************************/
/*! exports provided: CustomRepositoryCannotInheritRepositoryError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CustomRepositoryCannotInheritRepositoryError\", function() { return CustomRepositoryCannotInheritRepositoryError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown if custom repository inherits Repository class however entity is not set in @EntityRepository decorator.\n */\nvar CustomRepositoryCannotInheritRepositoryError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CustomRepositoryCannotInheritRepositoryError, _super);\n function CustomRepositoryCannotInheritRepositoryError(repository) {\n var _this = _super.call(this) || this;\n _this.name = \"CustomRepositoryCannotInheritRepositoryError\";\n Object.setPrototypeOf(_this, CustomRepositoryCannotInheritRepositoryError.prototype);\n _this.message = \"Custom entity repository \" + (repository instanceof Function ? repository.name : repository.constructor.name) + \" \" +\n \" cannot inherit Repository class without entity being set in the @EntityRepository decorator.\";\n return _this;\n }\n return CustomRepositoryCannotInheritRepositoryError;\n}(Error));\n\n\n//# sourceMappingURL=CustomRepositoryCannotInheritRepositoryError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/CustomRepositoryCannotInheritRepositoryError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/CustomRepositoryDoesNotHaveEntityError.js":
/*!**************************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/CustomRepositoryDoesNotHaveEntityError.js ***!
\**************************************************************************************/
/*! exports provided: CustomRepositoryDoesNotHaveEntityError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CustomRepositoryDoesNotHaveEntityError\", function() { return CustomRepositoryDoesNotHaveEntityError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown if custom repositories that extend AbstractRepository classes does not have managed entity.\n */\nvar CustomRepositoryDoesNotHaveEntityError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CustomRepositoryDoesNotHaveEntityError, _super);\n function CustomRepositoryDoesNotHaveEntityError(repository) {\n var _this = _super.call(this) || this;\n _this.name = \"CustomRepositoryDoesNotHaveEntityError\";\n Object.setPrototypeOf(_this, CustomRepositoryDoesNotHaveEntityError.prototype);\n _this.message = \"Custom repository \" + (repository instanceof Function ? repository.name : repository.constructor.name) + \" does not have managed entity. \" +\n \"Did you forget to specify entity for it @EntityRepository(MyEntity)? \";\n return _this;\n }\n return CustomRepositoryDoesNotHaveEntityError;\n}(Error));\n\n\n//# sourceMappingURL=CustomRepositoryDoesNotHaveEntityError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/CustomRepositoryDoesNotHaveEntityError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/CustomRepositoryNotFoundError.js":
/*!*****************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/CustomRepositoryNotFoundError.js ***!
\*****************************************************************************/
/*! exports provided: CustomRepositoryNotFoundError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CustomRepositoryNotFoundError\", function() { return CustomRepositoryNotFoundError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown if custom repository was not found.\n */\nvar CustomRepositoryNotFoundError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CustomRepositoryNotFoundError, _super);\n function CustomRepositoryNotFoundError(repository) {\n var _this = _super.call(this) || this;\n _this.name = \"CustomRepositoryNotFoundError\";\n Object.setPrototypeOf(_this, CustomRepositoryNotFoundError.prototype);\n _this.message = \"Custom repository \" + (repository instanceof Function ? repository.name : repository.constructor.name) + \" was not found. \" +\n \"Did you forgot to put @EntityRepository decorator on it?\";\n return _this;\n }\n return CustomRepositoryNotFoundError;\n}(Error));\n\n\n//# sourceMappingURL=CustomRepositoryNotFoundError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/CustomRepositoryNotFoundError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/DataTypeNotSupportedError.js":
/*!*************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/DataTypeNotSupportedError.js ***!
\*************************************************************************/
/*! exports provided: DataTypeNotSupportedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DataTypeNotSupportedError\", function() { return DataTypeNotSupportedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\nvar DataTypeNotSupportedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DataTypeNotSupportedError, _super);\n function DataTypeNotSupportedError(column, dataType, database) {\n var _this = _super.call(this) || this;\n _this.name = \"DataTypeNotSupportedError\";\n Object.setPrototypeOf(_this, DataTypeNotSupportedError.prototype);\n var type = typeof dataType === \"string\" ? dataType : dataType.name;\n _this.message = \"Data type \\\"\" + type + \"\\\" in \\\"\" + column.entityMetadata.targetName + \".\" + column.propertyName + \"\\\" is not supported by \\\"\" + database + \"\\\" database.\";\n return _this;\n }\n return DataTypeNotSupportedError;\n}(Error));\n\n\n//# sourceMappingURL=DataTypeNotSupportedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/DataTypeNotSupportedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/DriverOptionNotSetError.js":
/*!***********************************************************************!*\
!*** ./node_modules/typeorm/browser/error/DriverOptionNotSetError.js ***!
\***********************************************************************/
/*! exports provided: DriverOptionNotSetError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DriverOptionNotSetError\", function() { return DriverOptionNotSetError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown if some required driver's option is not set.\n */\nvar DriverOptionNotSetError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DriverOptionNotSetError, _super);\n function DriverOptionNotSetError(optionName) {\n var _this = _super.call(this) || this;\n _this.name = \"DriverOptionNotSetError\";\n Object.setPrototypeOf(_this, DriverOptionNotSetError.prototype);\n _this.message = \"Driver option (\" + optionName + \") is not set. Please set it to perform connection to the database.\";\n return _this;\n }\n return DriverOptionNotSetError;\n}(Error));\n\n\n//# sourceMappingURL=DriverOptionNotSetError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/DriverOptionNotSetError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/DriverPackageNotInstalledError.js":
/*!******************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/DriverPackageNotInstalledError.js ***!
\******************************************************************************/
/*! exports provided: DriverPackageNotInstalledError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DriverPackageNotInstalledError\", function() { return DriverPackageNotInstalledError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when required driver's package is not installed.\n */\nvar DriverPackageNotInstalledError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DriverPackageNotInstalledError, _super);\n function DriverPackageNotInstalledError(driverName, packageName) {\n var _this = _super.call(this) || this;\n _this.name = \"DriverPackageNotInstalledError\";\n Object.setPrototypeOf(_this, DriverPackageNotInstalledError.prototype);\n _this.message = driverName + \" package has not been found installed. Try to install it: npm install \" + packageName + \" --save\";\n return _this;\n }\n return DriverPackageNotInstalledError;\n}(Error));\n\n\n//# sourceMappingURL=DriverPackageNotInstalledError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/DriverPackageNotInstalledError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/EntityColumnNotFound.js":
/*!********************************************************************!*\
!*** ./node_modules/typeorm/browser/error/EntityColumnNotFound.js ***!
\********************************************************************/
/*! exports provided: EntityColumnNotFound */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EntityColumnNotFound\", function() { return EntityColumnNotFound; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n *\n */\nvar EntityColumnNotFound = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(EntityColumnNotFound, _super);\n function EntityColumnNotFound(propertyPath) {\n var _this = _super.call(this) || this;\n _this.name = \"EntityColumnNotFound\";\n Object.setPrototypeOf(_this, EntityColumnNotFound.prototype);\n _this.message = \"No entity column \\\"\" + propertyPath + \"\\\" was found.\";\n return _this;\n }\n return EntityColumnNotFound;\n}(Error));\n\n\n//# sourceMappingURL=EntityColumnNotFound.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/EntityColumnNotFound.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/EntityMetadataNotFoundError.js":
/*!***************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/EntityMetadataNotFoundError.js ***!
\***************************************************************************/
/*! exports provided: EntityMetadataNotFoundError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EntityMetadataNotFoundError\", function() { return EntityMetadataNotFoundError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../index */ \"./node_modules/typeorm/browser/index.js\");\n\n\n/**\n */\nvar EntityMetadataNotFoundError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(EntityMetadataNotFoundError, _super);\n function EntityMetadataNotFoundError(target) {\n var _this = _super.call(this) || this;\n _this.name = \"EntityMetadataNotFound\";\n Object.setPrototypeOf(_this, EntityMetadataNotFoundError.prototype);\n var targetName;\n if (target instanceof _index__WEBPACK_IMPORTED_MODULE_1__[\"EntitySchema\"]) {\n targetName = target.options.name;\n }\n else if (typeof target === \"function\") {\n targetName = target.name;\n }\n else if (typeof target === \"object\" && \"name\" in target) {\n targetName = target.name;\n }\n else {\n targetName = target;\n }\n _this.message = \"No metadata for \\\"\" + targetName + \"\\\" was found.\";\n return _this;\n }\n return EntityMetadataNotFoundError;\n}(Error));\n\n\n//# sourceMappingURL=EntityMetadataNotFoundError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/EntityMetadataNotFoundError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/EntityNotFoundError.js":
/*!*******************************************************************!*\
!*** ./node_modules/typeorm/browser/error/EntityNotFoundError.js ***!
\*******************************************************************/
/*! exports provided: EntityNotFoundError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EntityNotFoundError\", function() { return EntityNotFoundError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../index */ \"./node_modules/typeorm/browser/index.js\");\n\n\n/**\n * Thrown when no result could be found in methods which are not allowed to return undefined or an empty set.\n */\nvar EntityNotFoundError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(EntityNotFoundError, _super);\n function EntityNotFoundError(entityClass, criteria) {\n var _this = _super.call(this) || this;\n _this.name = \"EntityNotFound\";\n Object.setPrototypeOf(_this, EntityNotFoundError.prototype);\n var targetName;\n if (entityClass instanceof _index__WEBPACK_IMPORTED_MODULE_1__[\"EntitySchema\"]) {\n targetName = entityClass.options.name;\n }\n else if (typeof entityClass === \"function\") {\n targetName = entityClass.name;\n }\n else if (typeof entityClass === \"object\" && \"name\" in entityClass) {\n targetName = entityClass.name;\n }\n else {\n targetName = entityClass;\n }\n var criteriaString = _this.stringifyCriteria(criteria);\n _this.message = \"Could not find any entity of type \\\"\" + targetName + \"\\\" matching: \" + criteriaString;\n return _this;\n }\n EntityNotFoundError.prototype.stringifyCriteria = function (criteria) {\n try {\n return JSON.stringify(criteria, null, 4);\n }\n catch (e) { }\n return \"\" + criteria;\n };\n return EntityNotFoundError;\n}(Error));\n\n\n//# sourceMappingURL=EntityNotFoundError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/EntityNotFoundError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/FindRelationsNotFoundError.js":
/*!**************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/FindRelationsNotFoundError.js ***!
\**************************************************************************/
/*! exports provided: FindRelationsNotFoundError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FindRelationsNotFoundError\", function() { return FindRelationsNotFoundError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when relations specified in the find options were not found in the entities.\n*/\nvar FindRelationsNotFoundError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(FindRelationsNotFoundError, _super);\n function FindRelationsNotFoundError(notFoundRelations) {\n var _this = _super.call(this) || this;\n Object.setPrototypeOf(_this, FindRelationsNotFoundError.prototype);\n if (notFoundRelations.length === 1) {\n _this.message = \"Relation \\\"\" + notFoundRelations[0] + \"\\\" was not found; please check if it is correct and really exists in your entity.\";\n }\n else {\n _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.\";\n }\n return _this;\n }\n return FindRelationsNotFoundError;\n}(Error));\n\n\n//# sourceMappingURL=FindRelationsNotFoundError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/FindRelationsNotFoundError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/InitializedRelationError.js":
/*!************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/InitializedRelationError.js ***!
\************************************************************************/
/*! exports provided: InitializedRelationError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InitializedRelationError\", function() { return InitializedRelationError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when relation has array initialized which is forbidden my ORM.\n *\n * @see https://github.com/typeorm/typeorm/issues/1319\n * @see http://typeorm.io/#/relations-faq/avoid-relation-property-initializers\n */\nvar InitializedRelationError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(InitializedRelationError, _super);\n function InitializedRelationError(relation) {\n var _this = _super.call(this) || this;\n Object.setPrototypeOf(_this, InitializedRelationError.prototype);\n _this.message = \"Array initializations are not allowed in entity relations. \" +\n (\"Please remove array initialization (= []) from \\\"\" + relation.entityMetadata.targetName + \"#\" + relation.propertyPath + \"\\\". \") +\n \"This is ORM requirement to make relations to work properly. Refer docs for more information.\";\n return _this;\n }\n return InitializedRelationError;\n}(Error));\n\n\n//# sourceMappingURL=InitializedRelationError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/InitializedRelationError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/InsertValuesMissingError.js":
/*!************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/InsertValuesMissingError.js ***!
\************************************************************************/
/*! exports provided: InsertValuesMissingError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InsertValuesMissingError\", function() { return InsertValuesMissingError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when user tries to insert using QueryBuilder but do not specify what to insert.\n */\nvar InsertValuesMissingError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(InsertValuesMissingError, _super);\n function InsertValuesMissingError() {\n var _this = _super.call(this) || this;\n _this.name = \"InsertValuesMissingError\";\n Object.setPrototypeOf(_this, InsertValuesMissingError.prototype);\n _this.message = \"Cannot perform insert query because values are not defined. Call \\\"qb.values(...)\\\" method to specify inserted values.\";\n return _this;\n }\n return InsertValuesMissingError;\n}(Error));\n\n\n//# sourceMappingURL=InsertValuesMissingError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/InsertValuesMissingError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/LimitOnUpdateNotSupportedError.js":
/*!******************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/LimitOnUpdateNotSupportedError.js ***!
\******************************************************************************/
/*! exports provided: LimitOnUpdateNotSupportedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LimitOnUpdateNotSupportedError\", function() { return LimitOnUpdateNotSupportedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when user tries to build an UPDATE query with LIMIT but the database does not support it.\n*/\nvar LimitOnUpdateNotSupportedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(LimitOnUpdateNotSupportedError, _super);\n function LimitOnUpdateNotSupportedError() {\n var _this = _super.call(this) || this;\n _this.name = \"LimitOnUpdateNotSupportedError\";\n Object.setPrototypeOf(_this, LimitOnUpdateNotSupportedError.prototype);\n _this.message = \"Your database does not support LIMIT on UPDATE statements.\";\n return _this;\n }\n return LimitOnUpdateNotSupportedError;\n}(Error));\n\n\n//# sourceMappingURL=LimitOnUpdateNotSupportedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/LimitOnUpdateNotSupportedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/LockNotSupportedOnGivenDriverError.js":
/*!**********************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/LockNotSupportedOnGivenDriverError.js ***!
\**********************************************************************************/
/*! exports provided: LockNotSupportedOnGivenDriverError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LockNotSupportedOnGivenDriverError\", function() { return LockNotSupportedOnGivenDriverError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when selected sql driver does not supports locking.\n */\nvar LockNotSupportedOnGivenDriverError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(LockNotSupportedOnGivenDriverError, _super);\n function LockNotSupportedOnGivenDriverError() {\n var _this = _super.call(this) || this;\n _this.name = \"LockNotSupportedOnGivenDriverError\";\n Object.setPrototypeOf(_this, LockNotSupportedOnGivenDriverError.prototype);\n _this.message = \"Locking not supported on given driver.\";\n return _this;\n }\n return LockNotSupportedOnGivenDriverError;\n}(Error));\n\n\n//# sourceMappingURL=LockNotSupportedOnGivenDriverError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/LockNotSupportedOnGivenDriverError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/MetadataAlreadyExistsError.js":
/*!**************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/MetadataAlreadyExistsError.js ***!
\**************************************************************************/
/*! exports provided: MetadataAlreadyExistsError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MetadataAlreadyExistsError\", function() { return MetadataAlreadyExistsError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n */\nvar MetadataAlreadyExistsError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MetadataAlreadyExistsError, _super);\n function MetadataAlreadyExistsError(metadataType, constructor, propertyName) {\n var _this = _super.call(this) || this;\n _this.name = \"MetadataAlreadyExistsError\";\n Object.setPrototypeOf(_this, MetadataAlreadyExistsError.prototype);\n _this.message = metadataType + \" metadata already exists for the class constructor \" + JSON.stringify(constructor) +\n (propertyName ? \" on property \" + propertyName : \". If you previously renamed or moved entity class, make sure\" +\n \" that compiled version of old entity class source wasn't left in the compiler output directory.\");\n return _this;\n }\n return MetadataAlreadyExistsError;\n}(Error));\n\n\n//# sourceMappingURL=MetadataAlreadyExistsError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/MetadataAlreadyExistsError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/MetadataWithSuchNameAlreadyExistsError.js":
/*!**************************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/MetadataWithSuchNameAlreadyExistsError.js ***!
\**************************************************************************************/
/*! exports provided: MetadataWithSuchNameAlreadyExistsError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MetadataWithSuchNameAlreadyExistsError\", function() { return MetadataWithSuchNameAlreadyExistsError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n */\nvar MetadataWithSuchNameAlreadyExistsError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MetadataWithSuchNameAlreadyExistsError, _super);\n function MetadataWithSuchNameAlreadyExistsError(metadataType, name) {\n var _this = _super.call(this) || this;\n _this.name = \"MetadataWithSuchNameAlreadyExistsError\";\n Object.setPrototypeOf(_this, MetadataWithSuchNameAlreadyExistsError.prototype);\n _this.message = metadataType + \" metadata with such name \" + name + \" already exists. \" +\n \"Do you apply decorator twice? Or maybe try to change a name?\";\n return _this;\n }\n return MetadataWithSuchNameAlreadyExistsError;\n}(Error));\n\n\n//# sourceMappingURL=MetadataWithSuchNameAlreadyExistsError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/MetadataWithSuchNameAlreadyExistsError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/MissingDeleteDateColumnError.js":
/*!****************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/MissingDeleteDateColumnError.js ***!
\****************************************************************************/
/*! exports provided: MissingDeleteDateColumnError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MissingDeleteDateColumnError\", function() { return MissingDeleteDateColumnError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n */\nvar MissingDeleteDateColumnError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MissingDeleteDateColumnError, _super);\n function MissingDeleteDateColumnError(entityMetadata) {\n var _this = _super.call(this) || this;\n _this.name = \"MissingDeleteDateColumnError\";\n Object.setPrototypeOf(_this, MissingDeleteDateColumnError.prototype);\n _this.message = \"Entity \\\"\" + entityMetadata.name + \"\\\" does not have delete date columns.\";\n return _this;\n }\n return MissingDeleteDateColumnError;\n}(Error));\n\n\n//# sourceMappingURL=MissingDeleteDateColumnError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/MissingDeleteDateColumnError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/MissingDriverError.js":
/*!******************************************************************!*\
!*** ./node_modules/typeorm/browser/error/MissingDriverError.js ***!
\******************************************************************/
/*! exports provided: MissingDriverError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MissingDriverError\", function() { return MissingDriverError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when consumer specifies driver type that does not exist or supported.\n */\nvar MissingDriverError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MissingDriverError, _super);\n function MissingDriverError(driverType) {\n var _this = _super.call(this) || this;\n _this.name = \"MissingDriverError\";\n Object.setPrototypeOf(_this, MissingDriverError.prototype);\n _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\\\".\";\n return _this;\n }\n return MissingDriverError;\n}(Error));\n\n\n//# sourceMappingURL=MissingDriverError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/MissingDriverError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/MissingJoinColumnError.js":
/*!**********************************************************************!*\
!*** ./node_modules/typeorm/browser/error/MissingJoinColumnError.js ***!
\**********************************************************************/
/*! exports provided: MissingJoinColumnError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MissingJoinColumnError\", function() { return MissingJoinColumnError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n */\nvar MissingJoinColumnError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MissingJoinColumnError, _super);\n function MissingJoinColumnError(entityMetadata, relation) {\n var _this = _super.call(this) || this;\n _this.name = \"MissingJoinColumnError\";\n Object.setPrototypeOf(_this, MissingJoinColumnError.prototype);\n if (relation.inverseRelation) {\n _this.message = \"JoinColumn is missing on both sides of \" + entityMetadata.name + \"#\" + relation.propertyName + \" and \" +\n (relation.inverseEntityMetadata.name + \"#\" + relation.inverseRelation.propertyName + \" one-to-one relationship. \") +\n \"You need to put JoinColumn decorator on one of the sides.\";\n }\n else {\n _this.message = \"JoinColumn is missing on \" + entityMetadata.name + \"#\" + relation.propertyName + \" one-to-one relationship. \" +\n \"You need to put JoinColumn decorator on it.\";\n }\n return _this;\n }\n return MissingJoinColumnError;\n}(Error));\n\n\n//# sourceMappingURL=MissingJoinColumnError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/MissingJoinColumnError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/MissingJoinTableError.js":
/*!*********************************************************************!*\
!*** ./node_modules/typeorm/browser/error/MissingJoinTableError.js ***!
\*********************************************************************/
/*! exports provided: MissingJoinTableError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MissingJoinTableError\", function() { return MissingJoinTableError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n */\nvar MissingJoinTableError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MissingJoinTableError, _super);\n function MissingJoinTableError(entityMetadata, relation) {\n var _this = _super.call(this) || this;\n _this.name = \"MissingJoinTableError\";\n Object.setPrototypeOf(_this, MissingJoinTableError.prototype);\n if (relation.inverseRelation) {\n _this.message = \"JoinTable is missing on both sides of \" + entityMetadata.name + \"#\" + relation.propertyName + \" and \" +\n (relation.inverseEntityMetadata.name + \"#\" + relation.inverseRelation.propertyName + \" many-to-many relationship. \") +\n \"You need to put decorator decorator on one of the sides.\";\n }\n else {\n _this.message = \"JoinTable is missing on \" + entityMetadata.name + \"#\" + relation.propertyName + \" many-to-many relationship. \" +\n \"You need to put JoinTable decorator on it.\";\n }\n return _this;\n }\n return MissingJoinTableError;\n}(Error));\n\n\n//# sourceMappingURL=MissingJoinTableError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/MissingJoinTableError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/MissingPrimaryColumnError.js":
/*!*************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/MissingPrimaryColumnError.js ***!
\*************************************************************************/
/*! exports provided: MissingPrimaryColumnError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MissingPrimaryColumnError\", function() { return MissingPrimaryColumnError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n */\nvar MissingPrimaryColumnError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MissingPrimaryColumnError, _super);\n function MissingPrimaryColumnError(entityMetadata) {\n var _this = _super.call(this) || this;\n _this.name = \"MissingPrimaryColumnError\";\n Object.setPrototypeOf(_this, MissingPrimaryColumnError.prototype);\n _this.message = \"Entity \\\"\" + entityMetadata.name + \"\\\" does not have a primary column. Primary column is required to \" +\n \"have in all your entities. Use @PrimaryColumn decorator to add a primary column to your entity.\";\n return _this;\n }\n return MissingPrimaryColumnError;\n}(Error));\n\n\n//# sourceMappingURL=MissingPrimaryColumnError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/MissingPrimaryColumnError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/MustBeEntityError.js":
/*!*****************************************************************!*\
!*** ./node_modules/typeorm/browser/error/MustBeEntityError.js ***!
\*****************************************************************/
/*! exports provided: MustBeEntityError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MustBeEntityError\", function() { return MustBeEntityError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when method expects entity but instead something else is given.\n */\nvar MustBeEntityError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MustBeEntityError, _super);\n function MustBeEntityError(operation, wrongValue) {\n var _this = _super.call(this) || this;\n _this.name = \"MustBeEntityError\";\n Object.setPrototypeOf(_this, MustBeEntityError.prototype);\n _this.message = \"Cannot \" + operation + \", given value must be an entity, instead \\\"\" + wrongValue + \"\\\" is given.\";\n return _this;\n }\n return MustBeEntityError;\n}(Error));\n\n\n//# sourceMappingURL=MustBeEntityError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/MustBeEntityError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/NamingStrategyNotFoundError.js":
/*!***************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/NamingStrategyNotFoundError.js ***!
\***************************************************************************/
/*! exports provided: NamingStrategyNotFoundError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NamingStrategyNotFoundError\", function() { return NamingStrategyNotFoundError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when consumer tries to use naming strategy that does not exist.\n */\nvar NamingStrategyNotFoundError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(NamingStrategyNotFoundError, _super);\n function NamingStrategyNotFoundError(strategyName, connectionName) {\n var _this = _super.call(this) || this;\n _this.name = \"NamingStrategyNotFoundError\";\n Object.setPrototypeOf(_this, NamingStrategyNotFoundError.prototype);\n var name = strategyName instanceof Function ? strategyName.name : strategyName;\n _this.message = \"Naming strategy \\\"\" + name + \"\\\" was not found. Looks like this naming strategy does not \" +\n (\"exist or it was not registered in current \\\"\" + connectionName + \"\\\" connection?\");\n return _this;\n }\n return NamingStrategyNotFoundError;\n}(Error));\n\n\n//# sourceMappingURL=NamingStrategyNotFoundError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/NamingStrategyNotFoundError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/NoConnectionForRepositoryError.js":
/*!******************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/NoConnectionForRepositoryError.js ***!
\******************************************************************************/
/*! exports provided: NoConnectionForRepositoryError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NoConnectionForRepositoryError\", function() { return NoConnectionForRepositoryError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when consumer tries to access repository before connection is established.\n */\nvar NoConnectionForRepositoryError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(NoConnectionForRepositoryError, _super);\n function NoConnectionForRepositoryError(connectionName) {\n var _this = _super.call(this) || this;\n _this.name = \"NoConnectionForRepositoryError\";\n Object.setPrototypeOf(_this, NoConnectionForRepositoryError.prototype);\n _this.message = \"Cannot get a Repository for \\\"\" + connectionName + \" connection, because connection with the database \" +\n \"is not established yet. Call connection#connect method to establish connection.\";\n return _this;\n }\n return NoConnectionForRepositoryError;\n}(Error));\n\n\n//# sourceMappingURL=NoConnectionForRepositoryError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/NoConnectionForRepositoryError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/NoConnectionOptionError.js":
/*!***********************************************************************!*\
!*** ./node_modules/typeorm/browser/error/NoConnectionOptionError.js ***!
\***********************************************************************/
/*! exports provided: NoConnectionOptionError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NoConnectionOptionError\", function() { return NoConnectionOptionError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when some option is not set in the connection options.\n */\nvar NoConnectionOptionError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(NoConnectionOptionError, _super);\n function NoConnectionOptionError(optionName) {\n var _this = _super.call(this) || this;\n Object.setPrototypeOf(_this, NoConnectionOptionError.prototype);\n _this.message = \"Option \\\"\" + optionName + \"\\\" is not set in your connection options, please define \\\"\" + optionName + \"\\\" option in your connection options or ormconfig.json\";\n return _this;\n }\n return NoConnectionOptionError;\n}(Error));\n\n\n//# sourceMappingURL=NoConnectionOptionError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/NoConnectionOptionError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/NoNeedToReleaseEntityManagerError.js":
/*!*********************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/NoNeedToReleaseEntityManagerError.js ***!
\*********************************************************************************/
/*! exports provided: NoNeedToReleaseEntityManagerError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NoNeedToReleaseEntityManagerError\", function() { return NoNeedToReleaseEntityManagerError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when consumer tries to release entity manager that does not use single database connection.\n */\nvar NoNeedToReleaseEntityManagerError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(NoNeedToReleaseEntityManagerError, _super);\n function NoNeedToReleaseEntityManagerError() {\n var _this = _super.call(this) || this;\n _this.name = \"NoNeedToReleaseEntityManagerError\";\n Object.setPrototypeOf(_this, NoNeedToReleaseEntityManagerError.prototype);\n _this.message = \"Entity manager is not using single database connection and cannot be released. \" +\n \"Only entity managers created by connection#createEntityManagerWithSingleDatabaseConnection \" +\n \"methods have a single database connection and they should be released.\";\n return _this;\n }\n return NoNeedToReleaseEntityManagerError;\n}(Error));\n\n\n//# sourceMappingURL=NoNeedToReleaseEntityManagerError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/NoNeedToReleaseEntityManagerError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/NoVersionOrUpdateDateColumnError.js":
/*!********************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/NoVersionOrUpdateDateColumnError.js ***!
\********************************************************************************/
/*! exports provided: NoVersionOrUpdateDateColumnError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NoVersionOrUpdateDateColumnError\", function() { return NoVersionOrUpdateDateColumnError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when an entity does not have no version and no update date column.\n */\nvar NoVersionOrUpdateDateColumnError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(NoVersionOrUpdateDateColumnError, _super);\n function NoVersionOrUpdateDateColumnError(entity) {\n var _this = _super.call(this) || this;\n _this.name = \"NoVersionOrUpdateDateColumnError\";\n Object.setPrototypeOf(_this, NoVersionOrUpdateDateColumnError.prototype);\n _this.message = \"Entity \" + entity + \" does not have version or update date columns.\";\n return _this;\n }\n return NoVersionOrUpdateDateColumnError;\n}(Error));\n\n\n//# sourceMappingURL=NoVersionOrUpdateDateColumnError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/NoVersionOrUpdateDateColumnError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/OffsetWithoutLimitNotSupportedError.js":
/*!***********************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/OffsetWithoutLimitNotSupportedError.js ***!
\***********************************************************************************/
/*! exports provided: OffsetWithoutLimitNotSupportedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OffsetWithoutLimitNotSupportedError\", function() { return OffsetWithoutLimitNotSupportedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when user tries to build SELECT query using OFFSET without LIMIT applied but database does not support it.\n*/\nvar OffsetWithoutLimitNotSupportedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(OffsetWithoutLimitNotSupportedError, _super);\n function OffsetWithoutLimitNotSupportedError() {\n var _this = _super.call(this) || this;\n _this.name = \"OffsetWithoutLimitNotSupportedError\";\n Object.setPrototypeOf(_this, OffsetWithoutLimitNotSupportedError.prototype);\n _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).\";\n return _this;\n }\n return OffsetWithoutLimitNotSupportedError;\n}(Error));\n\n\n//# sourceMappingURL=OffsetWithoutLimitNotSupportedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/OffsetWithoutLimitNotSupportedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/OptimisticLockCanNotBeUsedError.js":
/*!*******************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/OptimisticLockCanNotBeUsedError.js ***!
\*******************************************************************************/
/*! exports provided: OptimisticLockCanNotBeUsedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OptimisticLockCanNotBeUsedError\", function() { return OptimisticLockCanNotBeUsedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when an optimistic lock cannot be used in query builder.\n */\nvar OptimisticLockCanNotBeUsedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(OptimisticLockCanNotBeUsedError, _super);\n function OptimisticLockCanNotBeUsedError() {\n var _this = _super.call(this) || this;\n _this.name = \"OptimisticLockCanNotBeUsedError\";\n Object.setPrototypeOf(_this, OptimisticLockCanNotBeUsedError.prototype);\n _this.message = \"The optimistic lock can be used only with getOne() method.\";\n return _this;\n }\n return OptimisticLockCanNotBeUsedError;\n}(Error));\n\n\n//# sourceMappingURL=OptimisticLockCanNotBeUsedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/OptimisticLockCanNotBeUsedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/OptimisticLockVersionMismatchError.js":
/*!**********************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/OptimisticLockVersionMismatchError.js ***!
\**********************************************************************************/
/*! exports provided: OptimisticLockVersionMismatchError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OptimisticLockVersionMismatchError\", function() { return OptimisticLockVersionMismatchError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when a version check on an object that uses optimistic locking through a version field fails.\n */\nvar OptimisticLockVersionMismatchError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(OptimisticLockVersionMismatchError, _super);\n function OptimisticLockVersionMismatchError(entity, expectedVersion, actualVersion) {\n var _this = _super.call(this) || this;\n _this.name = \"OptimisticLockVersionMismatchError\";\n Object.setPrototypeOf(_this, OptimisticLockVersionMismatchError.prototype);\n _this.message = \"The optimistic lock on entity \" + entity + \" failed, version \" + expectedVersion + \" was expected, but is actually \" + actualVersion + \".\";\n return _this;\n }\n return OptimisticLockVersionMismatchError;\n}(Error));\n\n\n//# sourceMappingURL=OptimisticLockVersionMismatchError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/OptimisticLockVersionMismatchError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/PersistedEntityNotFoundError.js":
/*!****************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/PersistedEntityNotFoundError.js ***!
\****************************************************************************/
/*! exports provided: PersistedEntityNotFoundError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PersistedEntityNotFoundError\", function() { return PersistedEntityNotFoundError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown . Theoretically can't be thrown.\n */\nvar PersistedEntityNotFoundError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(PersistedEntityNotFoundError, _super);\n function PersistedEntityNotFoundError() {\n var _this = _super.call(this) || this;\n _this.name = \"PersistedEntityNotFoundError\";\n Object.setPrototypeOf(_this, PersistedEntityNotFoundError.prototype);\n _this.message = \"Internal error. Persisted entity was not found in the list of prepared operated entities.\";\n return _this;\n }\n return PersistedEntityNotFoundError;\n}(Error));\n\n\n//# sourceMappingURL=PersistedEntityNotFoundError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/PersistedEntityNotFoundError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/PessimisticLockTransactionRequiredError.js":
/*!***************************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/PessimisticLockTransactionRequiredError.js ***!
\***************************************************************************************/
/*! exports provided: PessimisticLockTransactionRequiredError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PessimisticLockTransactionRequiredError\", function() { return PessimisticLockTransactionRequiredError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when a transaction is required for the current operation, but there is none open.\n */\nvar PessimisticLockTransactionRequiredError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(PessimisticLockTransactionRequiredError, _super);\n function PessimisticLockTransactionRequiredError() {\n var _this = _super.call(this) || this;\n _this.name = \"PessimisticLockTransactionRequiredError\";\n Object.setPrototypeOf(_this, PessimisticLockTransactionRequiredError.prototype);\n _this.message = \"An open transaction is required for pessimistic lock.\";\n return _this;\n }\n return PessimisticLockTransactionRequiredError;\n}(Error));\n\n\n//# sourceMappingURL=PessimisticLockTransactionRequiredError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/PessimisticLockTransactionRequiredError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/PrimaryColumnCannotBeNullableError.js":
/*!**********************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/PrimaryColumnCannotBeNullableError.js ***!
\**********************************************************************************/
/*! exports provided: PrimaryColumnCannotBeNullableError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PrimaryColumnCannotBeNullableError\", function() { return PrimaryColumnCannotBeNullableError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\nvar PrimaryColumnCannotBeNullableError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(PrimaryColumnCannotBeNullableError, _super);\n function PrimaryColumnCannotBeNullableError(object, propertyName) {\n var _this = _super.call(this) || this;\n _this.name = \"PrimaryColumnCannotBeNullableError\";\n Object.setPrototypeOf(_this, PrimaryColumnCannotBeNullableError.prototype);\n _this.message = \"Primary column \" + object.constructor.name + \"#\" + propertyName + \" cannot be nullable. \" +\n \"Its not allowed for primary keys. Try to remove nullable option.\";\n return _this;\n }\n return PrimaryColumnCannotBeNullableError;\n}(Error));\n\n\n//# sourceMappingURL=PrimaryColumnCannotBeNullableError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/PrimaryColumnCannotBeNullableError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/QueryFailedError.js":
/*!****************************************************************!*\
!*** ./node_modules/typeorm/browser/error/QueryFailedError.js ***!
\****************************************************************/
/*! exports provided: QueryFailedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QueryFailedError\", function() { return QueryFailedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/ObjectUtils */ \"./node_modules/typeorm/browser/util/ObjectUtils.js\");\n\n\n/**\n * Thrown when query execution has failed.\n*/\nvar QueryFailedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(QueryFailedError, _super);\n function QueryFailedError(query, parameters, driverError) {\n var _this = _super.call(this) || this;\n Object.setPrototypeOf(_this, QueryFailedError.prototype);\n _this.message = driverError.toString()\n .replace(/^error: /, \"\")\n .replace(/^Error: /, \"\")\n .replace(/^Request/, \"\");\n _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_1__[\"ObjectUtils\"].assign(_this, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({}, driverError), { name: \"QueryFailedError\", query: query, parameters: parameters || [] }));\n return _this;\n }\n return QueryFailedError;\n}(Error));\n\n\n//# sourceMappingURL=QueryFailedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/QueryFailedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/QueryRunnerAlreadyReleasedError.js":
/*!*******************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/QueryRunnerAlreadyReleasedError.js ***!
\*******************************************************************************/
/*! exports provided: QueryRunnerAlreadyReleasedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QueryRunnerAlreadyReleasedError\", function() { return QueryRunnerAlreadyReleasedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n */\nvar QueryRunnerAlreadyReleasedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(QueryRunnerAlreadyReleasedError, _super);\n function QueryRunnerAlreadyReleasedError() {\n var _this = _super.call(this) || this;\n _this.name = \"QueryRunnerAlreadyReleasedError\";\n Object.setPrototypeOf(_this, QueryRunnerAlreadyReleasedError.prototype);\n _this.message = \"Query runner already released. Cannot run queries anymore.\";\n return _this;\n }\n return QueryRunnerAlreadyReleasedError;\n}(Error));\n\n\n//# sourceMappingURL=QueryRunnerAlreadyReleasedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/QueryRunnerAlreadyReleasedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/QueryRunnerProviderAlreadyReleasedError.js":
/*!***************************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/QueryRunnerProviderAlreadyReleasedError.js ***!
\***************************************************************************************/
/*! exports provided: QueryRunnerProviderAlreadyReleasedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QueryRunnerProviderAlreadyReleasedError\", function() { return QueryRunnerProviderAlreadyReleasedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when consumer tries to use query runner from query runner provider after it was released.\n */\nvar QueryRunnerProviderAlreadyReleasedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(QueryRunnerProviderAlreadyReleasedError, _super);\n function QueryRunnerProviderAlreadyReleasedError() {\n var _this = _super.call(this) || this;\n _this.name = \"QueryRunnerProviderAlreadyReleasedError\";\n Object.setPrototypeOf(_this, QueryRunnerProviderAlreadyReleasedError.prototype);\n _this.message = \"Database connection provided by a query runner was already released, cannot continue to use its querying methods anymore.\";\n return _this;\n }\n return QueryRunnerProviderAlreadyReleasedError;\n}(Error));\n\n\n//# sourceMappingURL=QueryRunnerProviderAlreadyReleasedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/QueryRunnerProviderAlreadyReleasedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/RepositoryNotFoundError.js":
/*!***********************************************************************!*\
!*** ./node_modules/typeorm/browser/error/RepositoryNotFoundError.js ***!
\***********************************************************************/
/*! exports provided: RepositoryNotFoundError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RepositoryNotFoundError\", function() { return RepositoryNotFoundError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../index */ \"./node_modules/typeorm/browser/index.js\");\n\n\n/**\n * Thrown when repository for the given class is not found.\n */\nvar RepositoryNotFoundError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RepositoryNotFoundError, _super);\n function RepositoryNotFoundError(connectionName, entityClass) {\n var _this = _super.call(this) || this;\n _this.name = \"RepositoryNotFoundError\";\n Object.setPrototypeOf(_this, RepositoryNotFoundError.prototype);\n var targetName;\n if (entityClass instanceof _index__WEBPACK_IMPORTED_MODULE_1__[\"EntitySchema\"]) {\n targetName = entityClass.options.name;\n }\n else if (typeof entityClass === \"function\") {\n targetName = entityClass.name;\n }\n else if (typeof entityClass === \"object\" && \"name\" in entityClass) {\n targetName = entityClass.name;\n }\n else {\n targetName = entityClass;\n }\n _this.message = \"No repository for \\\"\" + targetName + \"\\\" was found. Looks like this entity is not registered in \" +\n (\"current \\\"\" + connectionName + \"\\\" connection?\");\n return _this;\n }\n return RepositoryNotFoundError;\n}(Error));\n\n\n//# sourceMappingURL=RepositoryNotFoundError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/RepositoryNotFoundError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/RepositoryNotTreeError.js":
/*!**********************************************************************!*\
!*** ./node_modules/typeorm/browser/error/RepositoryNotTreeError.js ***!
\**********************************************************************/
/*! exports provided: RepositoryNotTreeError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RepositoryNotTreeError\", function() { return RepositoryNotTreeError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../index */ \"./node_modules/typeorm/browser/index.js\");\n\n\n/**\n * Thrown when repository for the given class is not found.\n */\nvar RepositoryNotTreeError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RepositoryNotTreeError, _super);\n function RepositoryNotTreeError(entityClass) {\n var _this = _super.call(this) || this;\n _this.name = \"RepositoryNotTreeError\";\n Object.setPrototypeOf(_this, RepositoryNotTreeError.prototype);\n var targetName;\n if (entityClass instanceof _index__WEBPACK_IMPORTED_MODULE_1__[\"EntitySchema\"]) {\n targetName = entityClass.options.name;\n }\n else if (typeof entityClass === \"function\") {\n targetName = entityClass.name;\n }\n else if (typeof entityClass === \"object\" && \"name\" in entityClass) {\n targetName = entityClass.name;\n }\n else {\n targetName = entityClass;\n }\n _this.message = \"Repository of the \\\"\" + targetName + \"\\\" class is not a TreeRepository. Try to apply @Tree decorator on your entity.\";\n return _this;\n }\n return RepositoryNotTreeError;\n}(Error));\n\n\n//# sourceMappingURL=RepositoryNotTreeError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/RepositoryNotTreeError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/ReturningStatementNotSupportedError.js":
/*!***********************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/ReturningStatementNotSupportedError.js ***!
\***********************************************************************************/
/*! exports provided: ReturningStatementNotSupportedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ReturningStatementNotSupportedError\", function() { return ReturningStatementNotSupportedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when user tries to build a query with RETURNING / OUTPUT statement,\n * but used database does not support it.\n */\nvar ReturningStatementNotSupportedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ReturningStatementNotSupportedError, _super);\n function ReturningStatementNotSupportedError() {\n var _this = _super.call(this) || this;\n _this.name = \"ReturningStatementNotSupportedError\";\n Object.setPrototypeOf(_this, ReturningStatementNotSupportedError.prototype);\n _this.message = \"OUTPUT or RETURNING clause only supported by Microsoft SQL Server or PostgreSQL databases.\";\n return _this;\n }\n return ReturningStatementNotSupportedError;\n}(Error));\n\n\n//# sourceMappingURL=ReturningStatementNotSupportedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/ReturningStatementNotSupportedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/SubjectRemovedAndUpdatedError.js":
/*!*****************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/SubjectRemovedAndUpdatedError.js ***!
\*****************************************************************************/
/*! exports provided: SubjectRemovedAndUpdatedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SubjectRemovedAndUpdatedError\", function() { return SubjectRemovedAndUpdatedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when same object is scheduled for remove and updation at the same time.\n */\nvar SubjectRemovedAndUpdatedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SubjectRemovedAndUpdatedError, _super);\n function SubjectRemovedAndUpdatedError(subject) {\n var _this = _super.call(this) || this;\n _this.name = \"SubjectRemovedAndUpdatedError\";\n Object.setPrototypeOf(_this, SubjectRemovedAndUpdatedError.prototype);\n _this.message = \"Removed entity \\\"\" + subject.metadata.name + \"\\\" is also scheduled for update operation. \" +\n \"Make sure you are not updating and removing same object (note that update or remove may be executed by cascade operations).\";\n return _this;\n }\n return SubjectRemovedAndUpdatedError;\n}(Error));\n\n\n//# sourceMappingURL=SubjectRemovedAndUpdatedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/SubjectRemovedAndUpdatedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/SubjectWithoutIdentifierError.js":
/*!*****************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/SubjectWithoutIdentifierError.js ***!
\*****************************************************************************/
/*! exports provided: SubjectWithoutIdentifierError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SubjectWithoutIdentifierError\", function() { return SubjectWithoutIdentifierError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when operation is going to be executed on a subject without identifier.\n * This error should never be thrown, however it still presents to prevent user from updation or removing the whole table.\n * If this error occurs still, it most probably is an ORM internal problem which must be reported and fixed.\n */\nvar SubjectWithoutIdentifierError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SubjectWithoutIdentifierError, _super);\n function SubjectWithoutIdentifierError(subject) {\n var _this = _super.call(this) || this;\n _this.name = \"SubjectWithoutIdentifierError\";\n Object.setPrototypeOf(_this, SubjectWithoutIdentifierError.prototype);\n _this.message = \"Internal error. Subject \" + subject.metadata.targetName + \" must have an identifier to perform operation. \" +\n \"Please report a github issue if you face this error.\";\n return _this;\n }\n return SubjectWithoutIdentifierError;\n}(Error));\n\n\n//# sourceMappingURL=SubjectWithoutIdentifierError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/SubjectWithoutIdentifierError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/TransactionAlreadyStartedError.js":
/*!******************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/TransactionAlreadyStartedError.js ***!
\******************************************************************************/
/*! exports provided: TransactionAlreadyStartedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TransactionAlreadyStartedError\", function() { return TransactionAlreadyStartedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when transaction is already started and user tries to run it again.\n */\nvar TransactionAlreadyStartedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TransactionAlreadyStartedError, _super);\n function TransactionAlreadyStartedError() {\n var _this = _super.call(this) || this;\n _this.name = \"TransactionAlreadyStartedError\";\n Object.setPrototypeOf(_this, TransactionAlreadyStartedError.prototype);\n _this.message = \"Transaction already started for the given connection, commit current transaction before starting a new one.\";\n return _this;\n }\n return TransactionAlreadyStartedError;\n}(Error));\n\n\n//# sourceMappingURL=TransactionAlreadyStartedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/TransactionAlreadyStartedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/TransactionNotStartedError.js":
/*!**************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/TransactionNotStartedError.js ***!
\**************************************************************************/
/*! exports provided: TransactionNotStartedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TransactionNotStartedError\", function() { return TransactionNotStartedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when transaction is not started yet and user tries to run commit or rollback.\n */\nvar TransactionNotStartedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TransactionNotStartedError, _super);\n function TransactionNotStartedError() {\n var _this = _super.call(this) || this;\n _this.name = \"TransactionNotStartedError\";\n Object.setPrototypeOf(_this, TransactionNotStartedError.prototype);\n _this.message = \"Transaction is not started yet, start transaction before committing or rolling it back.\";\n return _this;\n }\n return TransactionNotStartedError;\n}(Error));\n\n\n//# sourceMappingURL=TransactionNotStartedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/TransactionNotStartedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/TreeRepositoryNotSupportedError.js":
/*!*******************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/TreeRepositoryNotSupportedError.js ***!
\*******************************************************************************/
/*! exports provided: TreeRepositoryNotSupportedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TreeRepositoryNotSupportedError\", function() { return TreeRepositoryNotSupportedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\nvar TreeRepositoryNotSupportedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TreeRepositoryNotSupportedError, _super);\n function TreeRepositoryNotSupportedError(driver) {\n var _this = _super.call(this) || this;\n _this.name = \"TreeRepositoryNotSupportedError\";\n Object.setPrototypeOf(_this, TreeRepositoryNotSupportedError.prototype);\n _this.message = \"Tree repositories are not supported in \" + driver.options.type + \" driver.\";\n return _this;\n }\n return TreeRepositoryNotSupportedError;\n}(Error));\n\n\n//# sourceMappingURL=TreeRepositoryNotSupportedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/TreeRepositoryNotSupportedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/UpdateValuesMissingError.js":
/*!************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/UpdateValuesMissingError.js ***!
\************************************************************************/
/*! exports provided: UpdateValuesMissingError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UpdateValuesMissingError\", function() { return UpdateValuesMissingError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Thrown when user tries to update using QueryBuilder but do not specify what to update.\n */\nvar UpdateValuesMissingError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(UpdateValuesMissingError, _super);\n function UpdateValuesMissingError() {\n var _this = _super.call(this) || this;\n _this.name = \"UpdateValuesMissingError\";\n Object.setPrototypeOf(_this, UpdateValuesMissingError.prototype);\n _this.message = \"Cannot perform update query because update values are not defined. Call \\\"qb.set(...)\\\" method to specify updated values.\";\n return _this;\n }\n return UpdateValuesMissingError;\n}(Error));\n\n\n//# sourceMappingURL=UpdateValuesMissingError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/UpdateValuesMissingError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/UsingJoinColumnIsNotAllowedError.js":
/*!********************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/UsingJoinColumnIsNotAllowedError.js ***!
\********************************************************************************/
/*! exports provided: UsingJoinColumnIsNotAllowedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UsingJoinColumnIsNotAllowedError\", function() { return UsingJoinColumnIsNotAllowedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n */\nvar UsingJoinColumnIsNotAllowedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(UsingJoinColumnIsNotAllowedError, _super);\n function UsingJoinColumnIsNotAllowedError(entityMetadata, relation) {\n var _this = _super.call(this) || this;\n _this.name = \"UsingJoinColumnIsNotAllowedError\";\n Object.setPrototypeOf(_this, UsingJoinColumnIsNotAllowedError.prototype);\n _this.message = \"Using JoinColumn on \" + entityMetadata.name + \"#\" + relation.propertyName + \" is wrong. \" +\n \"You can use JoinColumn only on one-to-one and many-to-one relations.\";\n return _this;\n }\n return UsingJoinColumnIsNotAllowedError;\n}(Error));\n\n\n//# sourceMappingURL=UsingJoinColumnIsNotAllowedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/UsingJoinColumnIsNotAllowedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js":
/*!****************************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js ***!
\****************************************************************************************/
/*! exports provided: UsingJoinColumnOnlyOnOneSideAllowedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UsingJoinColumnOnlyOnOneSideAllowedError\", function() { return UsingJoinColumnOnlyOnOneSideAllowedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n */\nvar UsingJoinColumnOnlyOnOneSideAllowedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(UsingJoinColumnOnlyOnOneSideAllowedError, _super);\n function UsingJoinColumnOnlyOnOneSideAllowedError(entityMetadata, relation) {\n var _this = _super.call(this) || this;\n _this.name = \"UsingJoinColumnOnlyOnOneSideAllowedError\";\n Object.setPrototypeOf(_this, UsingJoinColumnOnlyOnOneSideAllowedError.prototype);\n _this.message = \"Using JoinColumn is allowed only on one side of the one-to-one relationship. \" +\n (\"Both \" + entityMetadata.name + \"#\" + relation.propertyName + \" and \" + relation.inverseEntityMetadata.name + \"#\" + relation.inverseRelation.propertyName + \" \") +\n \"has JoinTable decorators. Choose one of them and left JoinTable decorator only on it.\";\n return _this;\n }\n return UsingJoinColumnOnlyOnOneSideAllowedError;\n}(Error));\n\n\n//# sourceMappingURL=UsingJoinColumnOnlyOnOneSideAllowedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/UsingJoinTableIsNotAllowedError.js":
/*!*******************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/UsingJoinTableIsNotAllowedError.js ***!
\*******************************************************************************/
/*! exports provided: UsingJoinTableIsNotAllowedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UsingJoinTableIsNotAllowedError\", function() { return UsingJoinTableIsNotAllowedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n */\nvar UsingJoinTableIsNotAllowedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(UsingJoinTableIsNotAllowedError, _super);\n function UsingJoinTableIsNotAllowedError(entityMetadata, relation) {\n var _this = _super.call(this) || this;\n _this.name = \"UsingJoinTableIsNotAllowedError\";\n Object.setPrototypeOf(_this, UsingJoinTableIsNotAllowedError.prototype);\n _this.message = \"Using JoinTable on \" + entityMetadata.name + \"#\" + relation.propertyName + \" is wrong. \" +\n (entityMetadata.name + \"#\" + relation.propertyName + \" has \" + relation.relationType + \" relation, \") +\n \"however you can use JoinTable only on many-to-many relations.\";\n return _this;\n }\n return UsingJoinTableIsNotAllowedError;\n}(Error));\n\n\n//# sourceMappingURL=UsingJoinTableIsNotAllowedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/UsingJoinTableIsNotAllowedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js":
/*!***************************************************************************************!*\
!*** ./node_modules/typeorm/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js ***!
\***************************************************************************************/
/*! exports provided: UsingJoinTableOnlyOnOneSideAllowedError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UsingJoinTableOnlyOnOneSideAllowedError\", function() { return UsingJoinTableOnlyOnOneSideAllowedError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n */\nvar UsingJoinTableOnlyOnOneSideAllowedError = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(UsingJoinTableOnlyOnOneSideAllowedError, _super);\n function UsingJoinTableOnlyOnOneSideAllowedError(entityMetadata, relation) {\n var _this = _super.call(this) || this;\n _this.name = \"UsingJoinTableOnlyOnOneSideAllowedError\";\n Object.setPrototypeOf(_this, UsingJoinTableOnlyOnOneSideAllowedError.prototype);\n _this.message = \"Using JoinTable is allowed only on one side of the many-to-many relationship. \" +\n (\"Both \" + entityMetadata.name + \"#\" + relation.propertyName + \" and \" + relation.inverseEntityMetadata.name + \"#\" + relation.inverseRelation.propertyName + \" \") +\n \"has JoinTable decorators. Choose one of them and left JoinColumn decorator only on it.\";\n return _this;\n }\n return UsingJoinTableOnlyOnOneSideAllowedError;\n}(Error));\n\n\n//# sourceMappingURL=UsingJoinTableOnlyOnOneSideAllowedError.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/error/index.js":
/*!*****************************************************!*\
!*** ./node_modules/typeorm/browser/error/index.js ***!
\*****************************************************/
/*! exports provided: CannotReflectMethodParameterTypeError, AlreadyHasActiveConnectionError, SubjectWithoutIdentifierError, CannotConnectAlreadyConnectedError, LockNotSupportedOnGivenDriverError, ConnectionIsNotSetError, CannotCreateEntityIdMapError, MetadataAlreadyExistsError, CannotDetermineEntityError, UpdateValuesMissingError, TreeRepositoryNotSupportedError, CustomRepositoryNotFoundError, TransactionNotStartedError, TransactionAlreadyStartedError, EntityNotFoundError, EntityMetadataNotFoundError, MustBeEntityError, OptimisticLockVersionMismatchError, LimitOnUpdateNotSupportedError, PrimaryColumnCannotBeNullableError, CustomRepositoryCannotInheritRepositoryError, QueryRunnerProviderAlreadyReleasedError, CannotAttachTreeChildrenEntityError, CustomRepositoryDoesNotHaveEntityError, MissingDeleteDateColumnError, NoConnectionForRepositoryError, CircularRelationsError, ReturningStatementNotSupportedError, UsingJoinTableIsNotAllowedError, MissingJoinColumnError, MissingPrimaryColumnError, EntityColumnNotFound, MissingDriverError, DriverPackageNotInstalledError, CannotGetEntityManagerNotConnectedError, ConnectionNotFoundError, NoVersionOrUpdateDateColumnError, InsertValuesMissingError, OptimisticLockCanNotBeUsedError, MetadataWithSuchNameAlreadyExistsError, DriverOptionNotSetError, FindRelationsNotFoundError, RepositoryNotFoundError, NamingStrategyNotFoundError, PessimisticLockTransactionRequiredError, RepositoryNotTreeError, DataTypeNotSupportedError, InitializedRelationError, MissingJoinTableError, QueryFailedError, NoNeedToReleaseEntityManagerError, UsingJoinColumnOnlyOnOneSideAllowedError, UsingJoinTableOnlyOnOneSideAllowedError, SubjectRemovedAndUpdatedError, PersistedEntityNotFoundError, UsingJoinColumnIsNotAllowedError, ColumnTypeUndefinedError, QueryRunnerAlreadyReleasedError, OffsetWithoutLimitNotSupportedError, CannotExecuteNotConnectedError, NoConnectionOptionError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _CannotReflectMethodParameterTypeError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CannotReflectMethodParameterTypeError */ \"./node_modules/typeorm/browser/error/CannotReflectMethodParameterTypeError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CannotReflectMethodParameterTypeError\", function() { return _CannotReflectMethodParameterTypeError__WEBPACK_IMPORTED_MODULE_0__[\"CannotReflectMethodParameterTypeError\"]; });\n\n/* harmony import */ var _AlreadyHasActiveConnectionError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AlreadyHasActiveConnectionError */ \"./node_modules/typeorm/browser/error/AlreadyHasActiveConnectionError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AlreadyHasActiveConnectionError\", function() { return _AlreadyHasActiveConnectionError__WEBPACK_IMPORTED_MODULE_1__[\"AlreadyHasActiveConnectionError\"]; });\n\n/* harmony import */ var _SubjectWithoutIdentifierError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SubjectWithoutIdentifierError */ \"./node_modules/typeorm/browser/error/SubjectWithoutIdentifierError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SubjectWithoutIdentifierError\", function() { return _SubjectWithoutIdentifierError__WEBPACK_IMPORTED_MODULE_2__[\"SubjectWithoutIdentifierError\"]; });\n\n/* harmony import */ var _CannotConnectAlreadyConnectedError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CannotConnectAlreadyConnectedError */ \"./node_modules/typeorm/browser/error/CannotConnectAlreadyConnectedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CannotConnectAlreadyConnectedError\", function() { return _CannotConnectAlreadyConnectedError__WEBPACK_IMPORTED_MODULE_3__[\"CannotConnectAlreadyConnectedError\"]; });\n\n/* harmony import */ var _LockNotSupportedOnGivenDriverError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./LockNotSupportedOnGivenDriverError */ \"./node_modules/typeorm/browser/error/LockNotSupportedOnGivenDriverError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LockNotSupportedOnGivenDriverError\", function() { return _LockNotSupportedOnGivenDriverError__WEBPACK_IMPORTED_MODULE_4__[\"LockNotSupportedOnGivenDriverError\"]; });\n\n/* harmony import */ var _ConnectionIsNotSetError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ConnectionIsNotSetError */ \"./node_modules/typeorm/browser/error/ConnectionIsNotSetError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ConnectionIsNotSetError\", function() { return _ConnectionIsNotSetError__WEBPACK_IMPORTED_MODULE_5__[\"ConnectionIsNotSetError\"]; });\n\n/* harmony import */ var _CannotCreateEntityIdMapError__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./CannotCreateEntityIdMapError */ \"./node_modules/typeorm/browser/error/CannotCreateEntityIdMapError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CannotCreateEntityIdMapError\", function() { return _CannotCreateEntityIdMapError__WEBPACK_IMPORTED_MODULE_6__[\"CannotCreateEntityIdMapError\"]; });\n\n/* harmony import */ var _MetadataAlreadyExistsError__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./MetadataAlreadyExistsError */ \"./node_modules/typeorm/browser/error/MetadataAlreadyExistsError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MetadataAlreadyExistsError\", function() { return _MetadataAlreadyExistsError__WEBPACK_IMPORTED_MODULE_7__[\"MetadataAlreadyExistsError\"]; });\n\n/* harmony import */ var _CannotDetermineEntityError__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./CannotDetermineEntityError */ \"./node_modules/typeorm/browser/error/CannotDetermineEntityError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CannotDetermineEntityError\", function() { return _CannotDetermineEntityError__WEBPACK_IMPORTED_MODULE_8__[\"CannotDetermineEntityError\"]; });\n\n/* harmony import */ var _UpdateValuesMissingError__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./UpdateValuesMissingError */ \"./node_modules/typeorm/browser/error/UpdateValuesMissingError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UpdateValuesMissingError\", function() { return _UpdateValuesMissingError__WEBPACK_IMPORTED_MODULE_9__[\"UpdateValuesMissingError\"]; });\n\n/* harmony import */ var _TreeRepositoryNotSupportedError__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./TreeRepositoryNotSupportedError */ \"./node_modules/typeorm/browser/error/TreeRepositoryNotSupportedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TreeRepositoryNotSupportedError\", function() { return _TreeRepositoryNotSupportedError__WEBPACK_IMPORTED_MODULE_10__[\"TreeRepositoryNotSupportedError\"]; });\n\n/* harmony import */ var _CustomRepositoryNotFoundError__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./CustomRepositoryNotFoundError */ \"./node_modules/typeorm/browser/error/CustomRepositoryNotFoundError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CustomRepositoryNotFoundError\", function() { return _CustomRepositoryNotFoundError__WEBPACK_IMPORTED_MODULE_11__[\"CustomRepositoryNotFoundError\"]; });\n\n/* harmony import */ var _TransactionNotStartedError__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./TransactionNotStartedError */ \"./node_modules/typeorm/browser/error/TransactionNotStartedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TransactionNotStartedError\", function() { return _TransactionNotStartedError__WEBPACK_IMPORTED_MODULE_12__[\"TransactionNotStartedError\"]; });\n\n/* harmony import */ var _TransactionAlreadyStartedError__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./TransactionAlreadyStartedError */ \"./node_modules/typeorm/browser/error/TransactionAlreadyStartedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TransactionAlreadyStartedError\", function() { return _TransactionAlreadyStartedError__WEBPACK_IMPORTED_MODULE_13__[\"TransactionAlreadyStartedError\"]; });\n\n/* harmony import */ var _EntityNotFoundError__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./EntityNotFoundError */ \"./node_modules/typeorm/browser/error/EntityNotFoundError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EntityNotFoundError\", function() { return _EntityNotFoundError__WEBPACK_IMPORTED_MODULE_14__[\"EntityNotFoundError\"]; });\n\n/* harmony import */ var _EntityMetadataNotFoundError__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./EntityMetadataNotFoundError */ \"./node_modules/typeorm/browser/error/EntityMetadataNotFoundError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EntityMetadataNotFoundError\", function() { return _EntityMetadataNotFoundError__WEBPACK_IMPORTED_MODULE_15__[\"EntityMetadataNotFoundError\"]; });\n\n/* harmony import */ var _MustBeEntityError__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./MustBeEntityError */ \"./node_modules/typeorm/browser/error/MustBeEntityError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MustBeEntityError\", function() { return _MustBeEntityError__WEBPACK_IMPORTED_MODULE_16__[\"MustBeEntityError\"]; });\n\n/* harmony import */ var _OptimisticLockVersionMismatchError__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./OptimisticLockVersionMismatchError */ \"./node_modules/typeorm/browser/error/OptimisticLockVersionMismatchError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"OptimisticLockVersionMismatchError\", function() { return _OptimisticLockVersionMismatchError__WEBPACK_IMPORTED_MODULE_17__[\"OptimisticLockVersionMismatchError\"]; });\n\n/* harmony import */ var _LimitOnUpdateNotSupportedError__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./LimitOnUpdateNotSupportedError */ \"./node_modules/typeorm/browser/error/LimitOnUpdateNotSupportedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LimitOnUpdateNotSupportedError\", function() { return _LimitOnUpdateNotSupportedError__WEBPACK_IMPORTED_MODULE_18__[\"LimitOnUpdateNotSupportedError\"]; });\n\n/* harmony import */ var _PrimaryColumnCannotBeNullableError__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./PrimaryColumnCannotBeNullableError */ \"./node_modules/typeorm/browser/error/PrimaryColumnCannotBeNullableError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PrimaryColumnCannotBeNullableError\", function() { return _PrimaryColumnCannotBeNullableError__WEBPACK_IMPORTED_MODULE_19__[\"PrimaryColumnCannotBeNullableError\"]; });\n\n/* harmony import */ var _CustomRepositoryCannotInheritRepositoryError__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./CustomRepositoryCannotInheritRepositoryError */ \"./node_modules/typeorm/browser/error/CustomRepositoryCannotInheritRepositoryError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CustomRepositoryCannotInheritRepositoryError\", function() { return _CustomRepositoryCannotInheritRepositoryError__WEBPACK_IMPORTED_MODULE_20__[\"CustomRepositoryCannotInheritRepositoryError\"]; });\n\n/* harmony import */ var _QueryRunnerProviderAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./QueryRunnerProviderAlreadyReleasedError */ \"./node_modules/typeorm/browser/error/QueryRunnerProviderAlreadyReleasedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"QueryRunnerProviderAlreadyReleasedError\", function() { return _QueryRunnerProviderAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_21__[\"QueryRunnerProviderAlreadyReleasedError\"]; });\n\n/* harmony import */ var _CannotAttachTreeChildrenEntityError__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./CannotAttachTreeChildrenEntityError */ \"./node_modules/typeorm/browser/error/CannotAttachTreeChildrenEntityError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CannotAttachTreeChildrenEntityError\", function() { return _CannotAttachTreeChildrenEntityError__WEBPACK_IMPORTED_MODULE_22__[\"CannotAttachTreeChildrenEntityError\"]; });\n\n/* harmony import */ var _CustomRepositoryDoesNotHaveEntityError__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./CustomRepositoryDoesNotHaveEntityError */ \"./node_modules/typeorm/browser/error/CustomRepositoryDoesNotHaveEntityError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CustomRepositoryDoesNotHaveEntityError\", function() { return _CustomRepositoryDoesNotHaveEntityError__WEBPACK_IMPORTED_MODULE_23__[\"CustomRepositoryDoesNotHaveEntityError\"]; });\n\n/* harmony import */ var _MissingDeleteDateColumnError__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./MissingDeleteDateColumnError */ \"./node_modules/typeorm/browser/error/MissingDeleteDateColumnError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MissingDeleteDateColumnError\", function() { return _MissingDeleteDateColumnError__WEBPACK_IMPORTED_MODULE_24__[\"MissingDeleteDateColumnError\"]; });\n\n/* harmony import */ var _NoConnectionForRepositoryError__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./NoConnectionForRepositoryError */ \"./node_modules/typeorm/browser/error/NoConnectionForRepositoryError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NoConnectionForRepositoryError\", function() { return _NoConnectionForRepositoryError__WEBPACK_IMPORTED_MODULE_25__[\"NoConnectionForRepositoryError\"]; });\n\n/* harmony import */ var _CircularRelationsError__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./CircularRelationsError */ \"./node_modules/typeorm/browser/error/CircularRelationsError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CircularRelationsError\", function() { return _CircularRelationsError__WEBPACK_IMPORTED_MODULE_26__[\"CircularRelationsError\"]; });\n\n/* harmony import */ var _ReturningStatementNotSupportedError__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./ReturningStatementNotSupportedError */ \"./node_modules/typeorm/browser/error/ReturningStatementNotSupportedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ReturningStatementNotSupportedError\", function() { return _ReturningStatementNotSupportedError__WEBPACK_IMPORTED_MODULE_27__[\"ReturningStatementNotSupportedError\"]; });\n\n/* harmony import */ var _UsingJoinTableIsNotAllowedError__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./UsingJoinTableIsNotAllowedError */ \"./node_modules/typeorm/browser/error/UsingJoinTableIsNotAllowedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UsingJoinTableIsNotAllowedError\", function() { return _UsingJoinTableIsNotAllowedError__WEBPACK_IMPORTED_MODULE_28__[\"UsingJoinTableIsNotAllowedError\"]; });\n\n/* harmony import */ var _MissingJoinColumnError__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./MissingJoinColumnError */ \"./node_modules/typeorm/browser/error/MissingJoinColumnError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MissingJoinColumnError\", function() { return _MissingJoinColumnError__WEBPACK_IMPORTED_MODULE_29__[\"MissingJoinColumnError\"]; });\n\n/* harmony import */ var _MissingPrimaryColumnError__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./MissingPrimaryColumnError */ \"./node_modules/typeorm/browser/error/MissingPrimaryColumnError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MissingPrimaryColumnError\", function() { return _MissingPrimaryColumnError__WEBPACK_IMPORTED_MODULE_30__[\"MissingPrimaryColumnError\"]; });\n\n/* harmony import */ var _EntityColumnNotFound__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./EntityColumnNotFound */ \"./node_modules/typeorm/browser/error/EntityColumnNotFound.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EntityColumnNotFound\", function() { return _EntityColumnNotFound__WEBPACK_IMPORTED_MODULE_31__[\"EntityColumnNotFound\"]; });\n\n/* harmony import */ var _MissingDriverError__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./MissingDriverError */ \"./node_modules/typeorm/browser/error/MissingDriverError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MissingDriverError\", function() { return _MissingDriverError__WEBPACK_IMPORTED_MODULE_32__[\"MissingDriverError\"]; });\n\n/* harmony import */ var _DriverPackageNotInstalledError__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./DriverPackageNotInstalledError */ \"./node_modules/typeorm/browser/error/DriverPackageNotInstalledError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DriverPackageNotInstalledError\", function() { return _DriverPackageNotInstalledError__WEBPACK_IMPORTED_MODULE_33__[\"DriverPackageNotInstalledError\"]; });\n\n/* harmony import */ var _CannotGetEntityManagerNotConnectedError__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./CannotGetEntityManagerNotConnectedError */ \"./node_modules/typeorm/browser/error/CannotGetEntityManagerNotConnectedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CannotGetEntityManagerNotConnectedError\", function() { return _CannotGetEntityManagerNotConnectedError__WEBPACK_IMPORTED_MODULE_34__[\"CannotGetEntityManagerNotConnectedError\"]; });\n\n/* harmony import */ var _ConnectionNotFoundError__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./ConnectionNotFoundError */ \"./node_modules/typeorm/browser/error/ConnectionNotFoundError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ConnectionNotFoundError\", function() { return _ConnectionNotFoundError__WEBPACK_IMPORTED_MODULE_35__[\"ConnectionNotFoundError\"]; });\n\n/* harmony import */ var _NoVersionOrUpdateDateColumnError__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./NoVersionOrUpdateDateColumnError */ \"./node_modules/typeorm/browser/error/NoVersionOrUpdateDateColumnError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NoVersionOrUpdateDateColumnError\", function() { return _NoVersionOrUpdateDateColumnError__WEBPACK_IMPORTED_MODULE_36__[\"NoVersionOrUpdateDateColumnError\"]; });\n\n/* harmony import */ var _InsertValuesMissingError__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./InsertValuesMissingError */ \"./node_modules/typeorm/browser/error/InsertValuesMissingError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"InsertValuesMissingError\", function() { return _InsertValuesMissingError__WEBPACK_IMPORTED_MODULE_37__[\"InsertValuesMissingError\"]; });\n\n/* harmony import */ var _OptimisticLockCanNotBeUsedError__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./OptimisticLockCanNotBeUsedError */ \"./node_modules/typeorm/browser/error/OptimisticLockCanNotBeUsedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"OptimisticLockCanNotBeUsedError\", function() { return _OptimisticLockCanNotBeUsedError__WEBPACK_IMPORTED_MODULE_38__[\"OptimisticLockCanNotBeUsedError\"]; });\n\n/* harmony import */ var _MetadataWithSuchNameAlreadyExistsError__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./MetadataWithSuchNameAlreadyExistsError */ \"./node_modules/typeorm/browser/error/MetadataWithSuchNameAlreadyExistsError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MetadataWithSuchNameAlreadyExistsError\", function() { return _MetadataWithSuchNameAlreadyExistsError__WEBPACK_IMPORTED_MODULE_39__[\"MetadataWithSuchNameAlreadyExistsError\"]; });\n\n/* harmony import */ var _DriverOptionNotSetError__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./DriverOptionNotSetError */ \"./node_modules/typeorm/browser/error/DriverOptionNotSetError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DriverOptionNotSetError\", function() { return _DriverOptionNotSetError__WEBPACK_IMPORTED_MODULE_40__[\"DriverOptionNotSetError\"]; });\n\n/* harmony import */ var _FindRelationsNotFoundError__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./FindRelationsNotFoundError */ \"./node_modules/typeorm/browser/error/FindRelationsNotFoundError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FindRelationsNotFoundError\", function() { return _FindRelationsNotFoundError__WEBPACK_IMPORTED_MODULE_41__[\"FindRelationsNotFoundError\"]; });\n\n/* harmony import */ var _RepositoryNotFoundError__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./RepositoryNotFoundError */ \"./node_modules/typeorm/browser/error/RepositoryNotFoundError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RepositoryNotFoundError\", function() { return _RepositoryNotFoundError__WEBPACK_IMPORTED_MODULE_42__[\"RepositoryNotFoundError\"]; });\n\n/* harmony import */ var _NamingStrategyNotFoundError__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./NamingStrategyNotFoundError */ \"./node_modules/typeorm/browser/error/NamingStrategyNotFoundError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NamingStrategyNotFoundError\", function() { return _NamingStrategyNotFoundError__WEBPACK_IMPORTED_MODULE_43__[\"NamingStrategyNotFoundError\"]; });\n\n/* harmony import */ var _PessimisticLockTransactionRequiredError__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./PessimisticLockTransactionRequiredError */ \"./node_modules/typeorm/browser/error/PessimisticLockTransactionRequiredError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PessimisticLockTransactionRequiredError\", function() { return _PessimisticLockTransactionRequiredError__WEBPACK_IMPORTED_MODULE_44__[\"PessimisticLockTransactionRequiredError\"]; });\n\n/* harmony import */ var _RepositoryNotTreeError__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./RepositoryNotTreeError */ \"./node_modules/typeorm/browser/error/RepositoryNotTreeError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RepositoryNotTreeError\", function() { return _RepositoryNotTreeError__WEBPACK_IMPORTED_MODULE_45__[\"RepositoryNotTreeError\"]; });\n\n/* harmony import */ var _DataTypeNotSupportedError__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./DataTypeNotSupportedError */ \"./node_modules/typeorm/browser/error/DataTypeNotSupportedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DataTypeNotSupportedError\", function() { return _DataTypeNotSupportedError__WEBPACK_IMPORTED_MODULE_46__[\"DataTypeNotSupportedError\"]; });\n\n/* harmony import */ var _InitializedRelationError__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./InitializedRelationError */ \"./node_modules/typeorm/browser/error/InitializedRelationError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"InitializedRelationError\", function() { return _InitializedRelationError__WEBPACK_IMPORTED_MODULE_47__[\"InitializedRelationError\"]; });\n\n/* harmony import */ var _MissingJoinTableError__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./MissingJoinTableError */ \"./node_modules/typeorm/browser/error/MissingJoinTableError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MissingJoinTableError\", function() { return _MissingJoinTableError__WEBPACK_IMPORTED_MODULE_48__[\"MissingJoinTableError\"]; });\n\n/* harmony import */ var _QueryFailedError__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./QueryFailedError */ \"./node_modules/typeorm/browser/error/QueryFailedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"QueryFailedError\", function() { return _QueryFailedError__WEBPACK_IMPORTED_MODULE_49__[\"QueryFailedError\"]; });\n\n/* harmony import */ var _NoNeedToReleaseEntityManagerError__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./NoNeedToReleaseEntityManagerError */ \"./node_modules/typeorm/browser/error/NoNeedToReleaseEntityManagerError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NoNeedToReleaseEntityManagerError\", function() { return _NoNeedToReleaseEntityManagerError__WEBPACK_IMPORTED_MODULE_50__[\"NoNeedToReleaseEntityManagerError\"]; });\n\n/* harmony import */ var _UsingJoinColumnOnlyOnOneSideAllowedError__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./UsingJoinColumnOnlyOnOneSideAllowedError */ \"./node_modules/typeorm/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UsingJoinColumnOnlyOnOneSideAllowedError\", function() { return _UsingJoinColumnOnlyOnOneSideAllowedError__WEBPACK_IMPORTED_MODULE_51__[\"UsingJoinColumnOnlyOnOneSideAllowedError\"]; });\n\n/* harmony import */ var _UsingJoinTableOnlyOnOneSideAllowedError__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./UsingJoinTableOnlyOnOneSideAllowedError */ \"./node_modules/typeorm/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UsingJoinTableOnlyOnOneSideAllowedError\", function() { return _UsingJoinTableOnlyOnOneSideAllowedError__WEBPACK_IMPORTED_MODULE_52__[\"UsingJoinTableOnlyOnOneSideAllowedError\"]; });\n\n/* harmony import */ var _SubjectRemovedAndUpdatedError__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./SubjectRemovedAndUpdatedError */ \"./node_modules/typeorm/browser/error/SubjectRemovedAndUpdatedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SubjectRemovedAndUpdatedError\", function() { return _SubjectRemovedAndUpdatedError__WEBPACK_IMPORTED_MODULE_53__[\"SubjectRemovedAndUpdatedError\"]; });\n\n/* harmony import */ var _PersistedEntityNotFoundError__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./PersistedEntityNotFoundError */ \"./node_modules/typeorm/browser/error/PersistedEntityNotFoundError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PersistedEntityNotFoundError\", function() { return _PersistedEntityNotFoundError__WEBPACK_IMPORTED_MODULE_54__[\"PersistedEntityNotFoundError\"]; });\n\n/* harmony import */ var _UsingJoinColumnIsNotAllowedError__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./UsingJoinColumnIsNotAllowedError */ \"./node_modules/typeorm/browser/error/UsingJoinColumnIsNotAllowedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UsingJoinColumnIsNotAllowedError\", function() { return _UsingJoinColumnIsNotAllowedError__WEBPACK_IMPORTED_MODULE_55__[\"UsingJoinColumnIsNotAllowedError\"]; });\n\n/* harmony import */ var _ColumnTypeUndefinedError__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./ColumnTypeUndefinedError */ \"./node_modules/typeorm/browser/error/ColumnTypeUndefinedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ColumnTypeUndefinedError\", function() { return _ColumnTypeUndefinedError__WEBPACK_IMPORTED_MODULE_56__[\"ColumnTypeUndefinedError\"]; });\n\n/* harmony import */ var _QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./QueryRunnerAlreadyReleasedError */ \"./node_modules/typeorm/browser/error/QueryRunnerAlreadyReleasedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"QueryRunnerAlreadyReleasedError\", function() { return _QueryRunnerAlreadyReleasedError__WEBPACK_IMPORTED_MODULE_57__[\"QueryRunnerAlreadyReleasedError\"]; });\n\n/* harmony import */ var _OffsetWithoutLimitNotSupportedError__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./OffsetWithoutLimitNotSupportedError */ \"./node_modules/typeorm/browser/error/OffsetWithoutLimitNotSupportedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"OffsetWithoutLimitNotSupportedError\", function() { return _OffsetWithoutLimitNotSupportedError__WEBPACK_IMPORTED_MODULE_58__[\"OffsetWithoutLimitNotSupportedError\"]; });\n\n/* harmony import */ var _CannotExecuteNotConnectedError__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./CannotExecuteNotConnectedError */ \"./node_modules/typeorm/browser/error/CannotExecuteNotConnectedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CannotExecuteNotConnectedError\", function() { return _CannotExecuteNotConnectedError__WEBPACK_IMPORTED_MODULE_59__[\"CannotExecuteNotConnectedError\"]; });\n\n/* harmony import */ var _NoConnectionOptionError__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./NoConnectionOptionError */ \"./node_modules/typeorm/browser/error/NoConnectionOptionError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NoConnectionOptionError\", function() { return _NoConnectionOptionError__WEBPACK_IMPORTED_MODULE_60__[\"NoConnectionOptionError\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/error/index.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/FindConditions.js":
/*!*********************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/FindConditions.js ***!
\*********************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=FindConditions.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/FindConditions.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/FindManyOptions.js":
/*!**********************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/FindManyOptions.js ***!
\**********************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=FindManyOptions.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/FindManyOptions.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/FindOneOptions.js":
/*!*********************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/FindOneOptions.js ***!
\*********************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=FindOneOptions.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/FindOneOptions.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/FindOperator.js":
/*!*******************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/FindOperator.js ***!
\*******************************************************************/
/*! exports provided: FindOperator */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FindOperator\", function() { return FindOperator; });\n/**\n * Find Operator used in Find Conditions.\n */\nvar FindOperator = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function FindOperator(type, value, useParameter, multipleParameters, getSql, objectLiteralParameters) {\n if (useParameter === void 0) { useParameter = true; }\n if (multipleParameters === void 0) { multipleParameters = false; }\n this._type = type;\n this._value = value;\n this._useParameter = useParameter;\n this._multipleParameters = multipleParameters;\n this._getSql = getSql;\n this._objectLiteralParameters = objectLiteralParameters;\n }\n Object.defineProperty(FindOperator.prototype, \"useParameter\", {\n // -------------------------------------------------------------------------\n // Accessors\n // -------------------------------------------------------------------------\n /**\n * Indicates if parameter is used or not for this operator.\n * Extracts final value if value is another find operator.\n */\n get: function () {\n if (this._value instanceof FindOperator)\n return this._value.useParameter;\n return this._useParameter;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FindOperator.prototype, \"multipleParameters\", {\n /**\n * Indicates if multiple parameters must be used for this operator.\n * Extracts final value if value is another find operator.\n */\n get: function () {\n if (this._value instanceof FindOperator)\n return this._value.multipleParameters;\n return this._multipleParameters;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FindOperator.prototype, \"type\", {\n /**\n * Gets the Type of this FindOperator\n */\n get: function () {\n return this._type;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FindOperator.prototype, \"value\", {\n /**\n * Gets the final value needs to be used as parameter value.\n */\n get: function () {\n if (this._value instanceof FindOperator)\n return this._value.value;\n return this._value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FindOperator.prototype, \"objectLiteralParameters\", {\n /**\n * Gets ObjectLiteral parameters.\n */\n get: function () {\n if (this._value instanceof FindOperator)\n return this._value.objectLiteralParameters;\n return this._objectLiteralParameters;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FindOperator.prototype, \"child\", {\n /**\n * Gets the child FindOperator if it exists\n */\n get: function () {\n if (this._value instanceof FindOperator)\n return this._value;\n return undefined;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FindOperator.prototype, \"getSql\", {\n /**\n * Gets the SQL generator\n */\n get: function () {\n if (this._value instanceof FindOperator)\n return this._value.getSql;\n return this._getSql;\n },\n enumerable: false,\n configurable: true\n });\n return FindOperator;\n}());\n\n\n//# sourceMappingURL=FindOperator.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/FindOperator.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/FindOperatorType.js":
/*!***********************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/FindOperatorType.js ***!
\***********************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=FindOperatorType.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/FindOperatorType.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/FindOptionsUtils.js":
/*!***********************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/FindOptionsUtils.js ***!
\***********************************************************************/
/*! exports provided: FindOptionsUtils */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FindOptionsUtils\", function() { return FindOptionsUtils; });\n/* harmony import */ var _error_FindRelationsNotFoundError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../error/FindRelationsNotFoundError */ \"./node_modules/typeorm/browser/error/FindRelationsNotFoundError.js\");\n/* harmony import */ var _util_StringUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/StringUtils */ \"./node_modules/typeorm/browser/util/StringUtils.js\");\n\n\n/**\n * Utilities to work with FindOptions.\n */\nvar FindOptionsUtils = /** @class */ (function () {\n function FindOptionsUtils() {\n }\n // -------------------------------------------------------------------------\n // Public Static Methods\n // -------------------------------------------------------------------------\n /**\n * Checks if given object is really instance of FindOneOptions interface.\n */\n FindOptionsUtils.isFindOneOptions = function (obj) {\n var possibleOptions = obj;\n return possibleOptions &&\n (Array.isArray(possibleOptions.select) ||\n possibleOptions.where instanceof Object ||\n typeof possibleOptions.where === \"string\" ||\n Array.isArray(possibleOptions.relations) ||\n possibleOptions.join instanceof Object ||\n possibleOptions.order instanceof Object ||\n possibleOptions.cache instanceof Object ||\n typeof possibleOptions.cache === \"boolean\" ||\n typeof possibleOptions.cache === \"number\" ||\n possibleOptions.lock instanceof Object ||\n possibleOptions.loadRelationIds instanceof Object ||\n typeof possibleOptions.loadRelationIds === \"boolean\" ||\n typeof possibleOptions.loadEagerRelations === \"boolean\" ||\n typeof possibleOptions.withDeleted === \"boolean\" ||\n typeof possibleOptions.transaction === \"boolean\");\n };\n /**\n * Checks if given object is really instance of FindManyOptions interface.\n */\n FindOptionsUtils.isFindManyOptions = function (obj) {\n var possibleOptions = obj;\n return possibleOptions && (this.isFindOneOptions(possibleOptions) ||\n typeof possibleOptions.skip === \"number\" ||\n typeof possibleOptions.take === \"number\" ||\n typeof possibleOptions.skip === \"string\" ||\n typeof possibleOptions.take === \"string\");\n };\n /**\n * Checks if given object is really instance of FindOptions interface.\n */\n FindOptionsUtils.extractFindManyOptionsAlias = function (object) {\n if (this.isFindManyOptions(object) && object.join)\n return object.join.alias;\n return undefined;\n };\n /**\n * Applies give find many options to the given query builder.\n */\n FindOptionsUtils.applyFindManyOptionsOrConditionsToQueryBuilder = function (qb, options) {\n if (this.isFindManyOptions(options))\n return this.applyOptionsToQueryBuilder(qb, options);\n if (options)\n return qb.where(options);\n return qb;\n };\n /**\n * Applies give find options to the given query builder.\n */\n FindOptionsUtils.applyOptionsToQueryBuilder = function (qb, options) {\n // if options are not set then simply return query builder. This is made for simplicity of usage.\n if (!options || (!this.isFindOneOptions(options) && !this.isFindManyOptions(options)))\n return qb;\n if (options.transaction === true) {\n qb.expressionMap.useTransaction = true;\n }\n if (!qb.expressionMap.mainAlias || !qb.expressionMap.mainAlias.hasMetadata)\n return qb;\n var metadata = qb.expressionMap.mainAlias.metadata;\n // apply all options from FindOptions\n if (options.select) {\n qb.select([]);\n options.select.forEach(function (select) {\n if (!metadata.findColumnWithPropertyPath(String(select)))\n throw new Error(select + \" column was not found in the \" + metadata.name + \" entity.\");\n qb.addSelect(qb.alias + \".\" + select);\n });\n }\n if (options.where)\n qb.where(options.where);\n if (options.skip)\n qb.skip(options.skip);\n if (options.take)\n qb.take(options.take);\n if (options.order)\n Object.keys(options.order).forEach(function (key) {\n var order = options.order[key];\n if (!metadata.findColumnWithPropertyPath(key))\n throw new Error(key + \" column was not found in the \" + metadata.name + \" entity.\");\n switch (order) {\n case 1:\n qb.addOrderBy(qb.alias + \".\" + key, \"ASC\");\n break;\n case -1:\n qb.addOrderBy(qb.alias + \".\" + key, \"DESC\");\n break;\n case \"ASC\":\n qb.addOrderBy(qb.alias + \".\" + key, \"ASC\");\n break;\n case \"DESC\":\n qb.addOrderBy(qb.alias + \".\" + key, \"DESC\");\n break;\n }\n });\n if (options.relations) {\n var allRelations = options.relations.map(function (relation) { return relation; });\n this.applyRelationsRecursively(qb, allRelations, qb.expressionMap.mainAlias.name, qb.expressionMap.mainAlias.metadata, \"\");\n // recursive removes found relations from allRelations array\n // if there are relations left in this array it means those relations were not found in the entity structure\n // so, we give an exception about not found relations\n if (allRelations.length > 0)\n throw new _error_FindRelationsNotFoundError__WEBPACK_IMPORTED_MODULE_0__[\"FindRelationsNotFoundError\"](allRelations);\n }\n if (options.join) {\n if (options.join.leftJoin)\n Object.keys(options.join.leftJoin).forEach(function (key) {\n qb.leftJoin(options.join.leftJoin[key], key);\n });\n if (options.join.innerJoin)\n Object.keys(options.join.innerJoin).forEach(function (key) {\n qb.innerJoin(options.join.innerJoin[key], key);\n });\n if (options.join.leftJoinAndSelect)\n Object.keys(options.join.leftJoinAndSelect).forEach(function (key) {\n qb.leftJoinAndSelect(options.join.leftJoinAndSelect[key], key);\n });\n if (options.join.innerJoinAndSelect)\n Object.keys(options.join.innerJoinAndSelect).forEach(function (key) {\n qb.innerJoinAndSelect(options.join.innerJoinAndSelect[key], key);\n });\n }\n if (options.cache) {\n if (options.cache instanceof Object) {\n var cache = options.cache;\n qb.cache(cache.id, cache.milliseconds);\n }\n else {\n qb.cache(options.cache);\n }\n }\n if (options.lock) {\n if (options.lock.mode === \"optimistic\") {\n qb.setLock(options.lock.mode, options.lock.version);\n }\n 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\") {\n var tableNames = options.lock.tables ? options.lock.tables.map(function (table) {\n var tableAlias = qb.expressionMap.aliases.find(function (alias) {\n return alias.metadata.tableNameWithoutPrefix === table;\n });\n if (!tableAlias) {\n throw new Error(\"\\\"\" + table + \"\\\" is not part of this query\");\n }\n return qb.escape(tableAlias.name);\n }) : undefined;\n qb.setLock(options.lock.mode, undefined, tableNames);\n }\n }\n if (options.withDeleted) {\n qb.withDeleted();\n }\n if (options.loadRelationIds === true) {\n qb.loadAllRelationIds();\n }\n else if (options.loadRelationIds instanceof Object) {\n qb.loadAllRelationIds(options.loadRelationIds);\n }\n return qb;\n };\n // -------------------------------------------------------------------------\n // Protected Static Methods\n // -------------------------------------------------------------------------\n /**\n * Adds joins for all relations and sub-relations of the given relations provided in the find options.\n */\n FindOptionsUtils.applyRelationsRecursively = function (qb, allRelations, alias, metadata, prefix) {\n var _this = this;\n // find all relations that match given prefix\n var matchedBaseRelations = [];\n if (prefix) {\n var regexp_1 = new RegExp(\"^\" + prefix.replace(\".\", \"\\\\.\") + \"\\\\.\");\n matchedBaseRelations = allRelations\n .filter(function (relation) { return relation.match(regexp_1); })\n .map(function (relation) { return relation.replace(regexp_1, \"\"); })\n .filter(function (relation) { return metadata.findRelationWithPropertyPath(relation); });\n }\n else {\n matchedBaseRelations = allRelations.filter(function (relation) { return metadata.findRelationWithPropertyPath(relation); });\n }\n // go through all matched relations and add join for them\n matchedBaseRelations.forEach(function (relation) {\n // generate a relation alias\n var relationAlias = alias + \"__\" + relation;\n // shorten it if needed by the driver\n if (qb.connection.driver.maxAliasLength && relationAlias.length > qb.connection.driver.maxAliasLength) {\n relationAlias = Object(_util_StringUtils__WEBPACK_IMPORTED_MODULE_1__[\"shorten\"])(relationAlias);\n }\n // add a join for the found relation\n var selection = alias + \".\" + relation;\n qb.leftJoinAndSelect(selection, relationAlias);\n // join the eager relations of the found relation\n var relMetadata = metadata.relations.find(function (metadata) { return metadata.propertyName === relation; });\n if (relMetadata) {\n _this.joinEagerRelations(qb, relationAlias, relMetadata.inverseEntityMetadata);\n }\n // remove added relations from the allRelations array, this is needed to find all not found relations at the end\n allRelations.splice(allRelations.indexOf(prefix ? prefix + \".\" + relation : relation), 1);\n // try to find sub-relations\n var join = qb.expressionMap.joinAttributes.find(function (join) { return join.entityOrProperty === selection; });\n _this.applyRelationsRecursively(qb, allRelations, join.alias.name, join.metadata, prefix ? prefix + \".\" + relation : relation);\n });\n };\n FindOptionsUtils.joinEagerRelations = function (qb, alias, metadata) {\n var _this = this;\n metadata.eagerRelations.forEach(function (relation) {\n var relationAlias = qb.connection.namingStrategy.eagerJoinRelationAlias(alias, relation.propertyPath);\n qb.leftJoinAndSelect(alias + \".\" + relation.propertyPath, relationAlias);\n _this.joinEagerRelations(qb, relationAlias, relation.inverseEntityMetadata);\n });\n };\n return FindOptionsUtils;\n}());\n\n\n//# sourceMappingURL=FindOptionsUtils.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/FindOptionsUtils.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/JoinOptions.js":
/*!******************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/JoinOptions.js ***!
\******************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=JoinOptions.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/JoinOptions.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/OrderByCondition.js":
/*!***********************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/OrderByCondition.js ***!
\***********************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=OrderByCondition.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/OrderByCondition.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/operator/Any.js":
/*!*******************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/operator/Any.js ***!
\*******************************************************************/
/*! exports provided: Any */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Any\", function() { return Any; });\n/* harmony import */ var _FindOperator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../FindOperator */ \"./node_modules/typeorm/browser/find-options/FindOperator.js\");\n\n/**\n * Find Options Operator.\n * Example: { someField: Any([...]) }\n */\nfunction Any(value) {\n return new _FindOperator__WEBPACK_IMPORTED_MODULE_0__[\"FindOperator\"](\"any\", value);\n}\n\n//# sourceMappingURL=Any.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/operator/Any.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/operator/Between.js":
/*!***********************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/operator/Between.js ***!
\***********************************************************************/
/*! exports provided: Between */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Between\", function() { return Between; });\n/* harmony import */ var _FindOperator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../FindOperator */ \"./node_modules/typeorm/browser/find-options/FindOperator.js\");\n\n/**\n * Find Options Operator.\n * Example: { someField: Between(x, y) }\n */\nfunction Between(from, to) {\n return new _FindOperator__WEBPACK_IMPORTED_MODULE_0__[\"FindOperator\"](\"between\", [from, to], true, true);\n}\n\n//# sourceMappingURL=Between.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/operator/Between.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/operator/Equal.js":
/*!*********************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/operator/Equal.js ***!
\*********************************************************************/
/*! exports provided: Equal */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Equal\", function() { return Equal; });\n/* harmony import */ var _FindOperator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../FindOperator */ \"./node_modules/typeorm/browser/find-options/FindOperator.js\");\n\n/**\n * Find Options Operator.\n * Example: { someField: Equal(\"value\") }\n */\nfunction Equal(value) {\n return new _FindOperator__WEBPACK_IMPORTED_MODULE_0__[\"FindOperator\"](\"equal\", value);\n}\n\n//# sourceMappingURL=Equal.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/operator/Equal.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/operator/ILike.js":
/*!*********************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/operator/ILike.js ***!
\*********************************************************************/
/*! exports provided: ILike */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ILike\", function() { return ILike; });\n/* harmony import */ var _FindOperator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../FindOperator */ \"./node_modules/typeorm/browser/find-options/FindOperator.js\");\n\n/**\n * Find Options Operator.\n * Example: { someField: ILike(\"%SOME string%\") }\n */\nfunction ILike(value) {\n return new _FindOperator__WEBPACK_IMPORTED_MODULE_0__[\"FindOperator\"](\"ilike\", value);\n}\n\n//# sourceMappingURL=ILike.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/operator/ILike.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/operator/In.js":
/*!******************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/operator/In.js ***!
\******************************************************************/
/*! exports provided: In */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"In\", function() { return In; });\n/* harmony import */ var _FindOperator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../FindOperator */ \"./node_modules/typeorm/browser/find-options/FindOperator.js\");\n\n/**\n * Find Options Operator.\n * Example: { someField: In([...]) }\n */\nfunction In(value) {\n return new _FindOperator__WEBPACK_IMPORTED_MODULE_0__[\"FindOperator\"](\"in\", value, true, true);\n}\n\n//# sourceMappingURL=In.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/operator/In.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/operator/IsNull.js":
/*!**********************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/operator/IsNull.js ***!
\**********************************************************************/
/*! exports provided: IsNull */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IsNull\", function() { return IsNull; });\n/* harmony import */ var _FindOperator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../FindOperator */ \"./node_modules/typeorm/browser/find-options/FindOperator.js\");\n\n/**\n * Find Options Operator.\n * Example: { someField: IsNull() }\n */\nfunction IsNull() {\n return new _FindOperator__WEBPACK_IMPORTED_MODULE_0__[\"FindOperator\"](\"isNull\", undefined, false);\n}\n\n//# sourceMappingURL=IsNull.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/operator/IsNull.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/operator/LessThan.js":
/*!************************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/operator/LessThan.js ***!
\************************************************************************/
/*! exports provided: LessThan */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LessThan\", function() { return LessThan; });\n/* harmony import */ var _FindOperator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../FindOperator */ \"./node_modules/typeorm/browser/find-options/FindOperator.js\");\n\n/**\n * Find Options Operator.\n * Example: { someField: LessThan(10) }\n */\nfunction LessThan(value) {\n return new _FindOperator__WEBPACK_IMPORTED_MODULE_0__[\"FindOperator\"](\"lessThan\", value);\n}\n\n//# sourceMappingURL=LessThan.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/operator/LessThan.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/operator/LessThanOrEqual.js":
/*!*******************************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/operator/LessThanOrEqual.js ***!
\*******************************************************************************/
/*! exports provided: LessThanOrEqual */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LessThanOrEqual\", function() { return LessThanOrEqual; });\n/* harmony import */ var _FindOperator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../FindOperator */ \"./node_modules/typeorm/browser/find-options/FindOperator.js\");\n\n/**\n * Find Options Operator.\n * Example: { someField: LessThanOrEqual(10) }\n */\nfunction LessThanOrEqual(value) {\n return new _FindOperator__WEBPACK_IMPORTED_MODULE_0__[\"FindOperator\"](\"lessThanOrEqual\", value);\n}\n\n//# sourceMappingURL=LessThanOrEqual.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/operator/LessThanOrEqual.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/operator/Like.js":
/*!********************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/operator/Like.js ***!
\********************************************************************/
/*! exports provided: Like */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Like\", function() { return Like; });\n/* harmony import */ var _FindOperator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../FindOperator */ \"./node_modules/typeorm/browser/find-options/FindOperator.js\");\n\n/**\n * Find Options Operator.\n * Example: { someField: Like(\"%some sting%\") }\n */\nfunction Like(value) {\n return new _FindOperator__WEBPACK_IMPORTED_MODULE_0__[\"FindOperator\"](\"like\", value);\n}\n\n//# sourceMappingURL=Like.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/operator/Like.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/operator/MoreThan.js":
/*!************************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/operator/MoreThan.js ***!
\************************************************************************/
/*! exports provided: MoreThan */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MoreThan\", function() { return MoreThan; });\n/* harmony import */ var _FindOperator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../FindOperator */ \"./node_modules/typeorm/browser/find-options/FindOperator.js\");\n\n/**\n * Find Options Operator.\n * Example: { someField: MoreThan(10) }\n */\nfunction MoreThan(value) {\n return new _FindOperator__WEBPACK_IMPORTED_MODULE_0__[\"FindOperator\"](\"moreThan\", value);\n}\n\n//# sourceMappingURL=MoreThan.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/operator/MoreThan.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/operator/MoreThanOrEqual.js":
/*!*******************************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/operator/MoreThanOrEqual.js ***!
\*******************************************************************************/
/*! exports provided: MoreThanOrEqual */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MoreThanOrEqual\", function() { return MoreThanOrEqual; });\n/* harmony import */ var _FindOperator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../FindOperator */ \"./node_modules/typeorm/browser/find-options/FindOperator.js\");\n\n/**\n * Find Options Operator.\n * Example: { someField: MoreThanOrEqual(10) }\n */\nfunction MoreThanOrEqual(value) {\n return new _FindOperator__WEBPACK_IMPORTED_MODULE_0__[\"FindOperator\"](\"moreThanOrEqual\", value);\n}\n\n//# sourceMappingURL=MoreThanOrEqual.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/operator/MoreThanOrEqual.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/operator/Not.js":
/*!*******************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/operator/Not.js ***!
\*******************************************************************/
/*! exports provided: Not */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Not\", function() { return Not; });\n/* harmony import */ var _FindOperator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../FindOperator */ \"./node_modules/typeorm/browser/find-options/FindOperator.js\");\n\n/**\n * Find Options Operator.\n * Used to negotiate expression.\n * Example: { title: not(\"hello\") } will return entities where title not equal to \"hello\".\n */\nfunction Not(value) {\n return new _FindOperator__WEBPACK_IMPORTED_MODULE_0__[\"FindOperator\"](\"not\", value);\n}\n\n//# sourceMappingURL=Not.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/operator/Not.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/find-options/operator/Raw.js":
/*!*******************************************************************!*\
!*** ./node_modules/typeorm/browser/find-options/operator/Raw.js ***!
\*******************************************************************/
/*! exports provided: Raw */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Raw\", function() { return Raw; });\n/* harmony import */ var _FindOperator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../FindOperator */ \"./node_modules/typeorm/browser/find-options/FindOperator.js\");\n\nfunction Raw(valueOrSqlGenerator, sqlGeneratorParameters) {\n if (typeof valueOrSqlGenerator !== 'function') {\n return new _FindOperator__WEBPACK_IMPORTED_MODULE_0__[\"FindOperator\"](\"raw\", valueOrSqlGenerator, false);\n }\n return new _FindOperator__WEBPACK_IMPORTED_MODULE_0__[\"FindOperator\"](\"raw\", [], true, true, valueOrSqlGenerator, sqlGeneratorParameters);\n}\n\n//# sourceMappingURL=Raw.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/find-options/operator/Raw.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/index.js":
/*!***********************************************!*\
!*** ./node_modules/typeorm/browser/index.js ***!
\***********************************************/
/*! exports provided: useContainer, getFromContainer, CannotReflectMethodParameterTypeError, AlreadyHasActiveConnectionError, SubjectWithoutIdentifierError, CannotConnectAlreadyConnectedError, LockNotSupportedOnGivenDriverError, ConnectionIsNotSetError, CannotCreateEntityIdMapError, MetadataAlreadyExistsError, CannotDetermineEntityError, UpdateValuesMissingError, TreeRepositoryNotSupportedError, CustomRepositoryNotFoundError, TransactionNotStartedError, TransactionAlreadyStartedError, EntityNotFoundError, EntityMetadataNotFoundError, MustBeEntityError, OptimisticLockVersionMismatchError, LimitOnUpdateNotSupportedError, PrimaryColumnCannotBeNullableError, CustomRepositoryCannotInheritRepositoryError, QueryRunnerProviderAlreadyReleasedError, CannotAttachTreeChildrenEntityError, CustomRepositoryDoesNotHaveEntityError, MissingDeleteDateColumnError, NoConnectionForRepositoryError, CircularRelationsError, ReturningStatementNotSupportedError, UsingJoinTableIsNotAllowedError, MissingJoinColumnError, MissingPrimaryColumnError, EntityColumnNotFound, MissingDriverError, DriverPackageNotInstalledError, CannotGetEntityManagerNotConnectedError, ConnectionNotFoundError, NoVersionOrUpdateDateColumnError, InsertValuesMissingError, OptimisticLockCanNotBeUsedError, MetadataWithSuchNameAlreadyExistsError, DriverOptionNotSetError, FindRelationsNotFoundError, RepositoryNotFoundError, NamingStrategyNotFoundError, PessimisticLockTransactionRequiredError, RepositoryNotTreeError, DataTypeNotSupportedError, InitializedRelationError, MissingJoinTableError, QueryFailedError, NoNeedToReleaseEntityManagerError, UsingJoinColumnOnlyOnOneSideAllowedError, UsingJoinTableOnlyOnOneSideAllowedError, SubjectRemovedAndUpdatedError, PersistedEntityNotFoundError, UsingJoinColumnIsNotAllowedError, ColumnTypeUndefinedError, QueryRunnerAlreadyReleasedError, OffsetWithoutLimitNotSupportedError, CannotExecuteNotConnectedError, NoConnectionOptionError, Column, CreateDateColumn, DeleteDateColumn, PrimaryGeneratedColumn, PrimaryColumn, UpdateDateColumn, VersionColumn, ViewColumn, ObjectIdColumn, AfterInsert, AfterLoad, AfterRemove, AfterUpdate, BeforeInsert, BeforeRemove, BeforeUpdate, EventSubscriber, JoinColumn, JoinTable, ManyToMany, ManyToOne, OneToMany, OneToOne, RelationCount, RelationId, Entity, ChildEntity, TableInheritance, ViewEntity, Transaction, TransactionManager, TransactionRepository, TreeLevelColumn, TreeParent, TreeChildren, Tree, Index, Unique, Check, Exclusion, Generated, EntityRepository, Any, Between, Equal, In, IsNull, LessThan, LessThanOrEqual, ILike, Like, MoreThan, MoreThanOrEqual, Not, Raw, FindOperator, FindOptionsUtils, AdvancedConsoleLogger, SimpleConsoleLogger, DummyLogger, FileLogger, EntityMetadata, EntityManager, AbstractRepository, Repository, BaseEntity, TreeRepository, MongoDriver, MongoQueryRunner, MongoRepository, PostgresDriver, AuroraDataApiDriver, CockroachDriver, AuroraDataApiPostgresDriver, SqlServerDriver, SapDriver, MysqlDriver, OracleDriver, SqliteDriver, BetterSqlite3Driver, TableCheck, TableColumn, TableExclusion, TableForeignKey, TableIndex, TableUnique, Table, MssqlParameter, ConnectionOptionsReader, Connection, ConnectionManager, QueryBuilder, SelectQueryBuilder, DeleteQueryBuilder, InsertQueryBuilder, UpdateQueryBuilder, RelationQueryBuilder, Brackets, InsertResult, UpdateResult, DeleteResult, MongoEntityManager, Migration, MigrationExecutor, DefaultNamingStrategy, EntitySchema, getMetadataArgsStorage, getConnectionOptions, getConnectionManager, createConnection, createConnections, getConnection, getManager, getMongoManager, getSqljsManager, getRepository, getTreeRepository, getCustomRepository, getMongoRepository, createQueryBuilder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getMetadataArgsStorage\", function() { return getMetadataArgsStorage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getConnectionOptions\", function() { return getConnectionOptions; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getConnectionManager\", function() { return getConnectionManager; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createConnection\", function() { return createConnection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createConnections\", function() { return createConnections; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getConnection\", function() { return getConnection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getManager\", function() { return getManager; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getMongoManager\", function() { return getMongoManager; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getSqljsManager\", function() { return getSqljsManager; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getRepository\", function() { return getRepository; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getTreeRepository\", function() { return getTreeRepository; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getCustomRepository\", function() { return getCustomRepository; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getMongoRepository\", function() { return getMongoRepository; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createQueryBuilder\", function() { return createQueryBuilder; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var reflect_metadata__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! reflect-metadata */ \"./node_modules/reflect-metadata/Reflect.js\");\n/* harmony import */ var reflect_metadata__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(reflect_metadata__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _connection_ConnectionManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./connection/ConnectionManager */ \"./node_modules/typeorm/browser/connection/ConnectionManager.js\");\n/* harmony import */ var _metadata_args_MetadataArgsStorage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./metadata-args/MetadataArgsStorage */ \"./node_modules/typeorm/browser/metadata-args/MetadataArgsStorage.js\");\n/* harmony import */ var _container__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./container */ \"./node_modules/typeorm/browser/container.js\");\n/* harmony import */ var _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./platform/PlatformTools */ \"./node_modules/typeorm/browser/platform/BrowserPlatformTools.js\");\n/* harmony import */ var _connection_ConnectionOptionsReader__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./connection/ConnectionOptionsReader */ \"./node_modules/typeorm/browser/platform/BrowserConnectionOptionsReaderDummy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useContainer\", function() { return _container__WEBPACK_IMPORTED_MODULE_4__[\"useContainer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getFromContainer\", function() { return _container__WEBPACK_IMPORTED_MODULE_4__[\"getFromContainer\"]; });\n\n/* harmony import */ var _common_EntityTarget__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./common/EntityTarget */ \"./node_modules/typeorm/browser/common/EntityTarget.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _common_ObjectType__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./common/ObjectType */ \"./node_modules/typeorm/browser/common/ObjectType.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _common_ObjectLiteral__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./common/ObjectLiteral */ \"./node_modules/typeorm/browser/common/ObjectLiteral.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _common_DeepPartial__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./common/DeepPartial */ \"./node_modules/typeorm/browser/common/DeepPartial.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./error */ \"./node_modules/typeorm/browser/error/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CannotReflectMethodParameterTypeError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"CannotReflectMethodParameterTypeError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AlreadyHasActiveConnectionError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"AlreadyHasActiveConnectionError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SubjectWithoutIdentifierError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"SubjectWithoutIdentifierError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CannotConnectAlreadyConnectedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"CannotConnectAlreadyConnectedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LockNotSupportedOnGivenDriverError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"LockNotSupportedOnGivenDriverError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ConnectionIsNotSetError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"ConnectionIsNotSetError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CannotCreateEntityIdMapError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"CannotCreateEntityIdMapError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MetadataAlreadyExistsError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"MetadataAlreadyExistsError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CannotDetermineEntityError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"CannotDetermineEntityError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UpdateValuesMissingError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"UpdateValuesMissingError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TreeRepositoryNotSupportedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"TreeRepositoryNotSupportedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CustomRepositoryNotFoundError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"CustomRepositoryNotFoundError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TransactionNotStartedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"TransactionNotStartedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TransactionAlreadyStartedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"TransactionAlreadyStartedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EntityNotFoundError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"EntityNotFoundError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EntityMetadataNotFoundError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"EntityMetadataNotFoundError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MustBeEntityError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"MustBeEntityError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"OptimisticLockVersionMismatchError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"OptimisticLockVersionMismatchError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LimitOnUpdateNotSupportedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"LimitOnUpdateNotSupportedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PrimaryColumnCannotBeNullableError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"PrimaryColumnCannotBeNullableError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CustomRepositoryCannotInheritRepositoryError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"CustomRepositoryCannotInheritRepositoryError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"QueryRunnerProviderAlreadyReleasedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"QueryRunnerProviderAlreadyReleasedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CannotAttachTreeChildrenEntityError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"CannotAttachTreeChildrenEntityError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CustomRepositoryDoesNotHaveEntityError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"CustomRepositoryDoesNotHaveEntityError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MissingDeleteDateColumnError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"MissingDeleteDateColumnError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NoConnectionForRepositoryError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"NoConnectionForRepositoryError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CircularRelationsError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"CircularRelationsError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ReturningStatementNotSupportedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"ReturningStatementNotSupportedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UsingJoinTableIsNotAllowedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"UsingJoinTableIsNotAllowedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MissingJoinColumnError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"MissingJoinColumnError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MissingPrimaryColumnError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"MissingPrimaryColumnError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EntityColumnNotFound\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"EntityColumnNotFound\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MissingDriverError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"MissingDriverError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DriverPackageNotInstalledError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"DriverPackageNotInstalledError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CannotGetEntityManagerNotConnectedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"CannotGetEntityManagerNotConnectedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ConnectionNotFoundError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"ConnectionNotFoundError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NoVersionOrUpdateDateColumnError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"NoVersionOrUpdateDateColumnError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"InsertValuesMissingError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"InsertValuesMissingError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"OptimisticLockCanNotBeUsedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"OptimisticLockCanNotBeUsedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MetadataWithSuchNameAlreadyExistsError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"MetadataWithSuchNameAlreadyExistsError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DriverOptionNotSetError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"DriverOptionNotSetError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FindRelationsNotFoundError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"FindRelationsNotFoundError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RepositoryNotFoundError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"RepositoryNotFoundError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NamingStrategyNotFoundError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"NamingStrategyNotFoundError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PessimisticLockTransactionRequiredError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"PessimisticLockTransactionRequiredError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RepositoryNotTreeError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"RepositoryNotTreeError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DataTypeNotSupportedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"DataTypeNotSupportedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"InitializedRelationError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"InitializedRelationError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MissingJoinTableError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"MissingJoinTableError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"QueryFailedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"QueryFailedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NoNeedToReleaseEntityManagerError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"NoNeedToReleaseEntityManagerError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UsingJoinColumnOnlyOnOneSideAllowedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"UsingJoinColumnOnlyOnOneSideAllowedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UsingJoinTableOnlyOnOneSideAllowedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"UsingJoinTableOnlyOnOneSideAllowedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SubjectRemovedAndUpdatedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"SubjectRemovedAndUpdatedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PersistedEntityNotFoundError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"PersistedEntityNotFoundError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UsingJoinColumnIsNotAllowedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"UsingJoinColumnIsNotAllowedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ColumnTypeUndefinedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"ColumnTypeUndefinedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"QueryRunnerAlreadyReleasedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"QueryRunnerAlreadyReleasedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"OffsetWithoutLimitNotSupportedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"OffsetWithoutLimitNotSupportedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CannotExecuteNotConnectedError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"CannotExecuteNotConnectedError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NoConnectionOptionError\", function() { return _error__WEBPACK_IMPORTED_MODULE_11__[\"NoConnectionOptionError\"]; });\n\n/* harmony import */ var _decorator_columns_Column__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./decorator/columns/Column */ \"./node_modules/typeorm/browser/decorator/columns/Column.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Column\", function() { return _decorator_columns_Column__WEBPACK_IMPORTED_MODULE_12__[\"Column\"]; });\n\n/* harmony import */ var _decorator_columns_CreateDateColumn__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./decorator/columns/CreateDateColumn */ \"./node_modules/typeorm/browser/decorator/columns/CreateDateColumn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CreateDateColumn\", function() { return _decorator_columns_CreateDateColumn__WEBPACK_IMPORTED_MODULE_13__[\"CreateDateColumn\"]; });\n\n/* harmony import */ var _decorator_columns_DeleteDateColumn__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./decorator/columns/DeleteDateColumn */ \"./node_modules/typeorm/browser/decorator/columns/DeleteDateColumn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DeleteDateColumn\", function() { return _decorator_columns_DeleteDateColumn__WEBPACK_IMPORTED_MODULE_14__[\"DeleteDateColumn\"]; });\n\n/* harmony import */ var _decorator_columns_PrimaryGeneratedColumn__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./decorator/columns/PrimaryGeneratedColumn */ \"./node_modules/typeorm/browser/decorator/columns/PrimaryGeneratedColumn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PrimaryGeneratedColumn\", function() { return _decorator_columns_PrimaryGeneratedColumn__WEBPACK_IMPORTED_MODULE_15__[\"PrimaryGeneratedColumn\"]; });\n\n/* harmony import */ var _decorator_columns_PrimaryColumn__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./decorator/columns/PrimaryColumn */ \"./node_modules/typeorm/browser/decorator/columns/PrimaryColumn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PrimaryColumn\", function() { return _decorator_columns_PrimaryColumn__WEBPACK_IMPORTED_MODULE_16__[\"PrimaryColumn\"]; });\n\n/* harmony import */ var _decorator_columns_UpdateDateColumn__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./decorator/columns/UpdateDateColumn */ \"./node_modules/typeorm/browser/decorator/columns/UpdateDateColumn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UpdateDateColumn\", function() { return _decorator_columns_UpdateDateColumn__WEBPACK_IMPORTED_MODULE_17__[\"UpdateDateColumn\"]; });\n\n/* harmony import */ var _decorator_columns_VersionColumn__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./decorator/columns/VersionColumn */ \"./node_modules/typeorm/browser/decorator/columns/VersionColumn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VersionColumn\", function() { return _decorator_columns_VersionColumn__WEBPACK_IMPORTED_MODULE_18__[\"VersionColumn\"]; });\n\n/* harmony import */ var _decorator_columns_ViewColumn__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./decorator/columns/ViewColumn */ \"./node_modules/typeorm/browser/decorator/columns/ViewColumn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ViewColumn\", function() { return _decorator_columns_ViewColumn__WEBPACK_IMPORTED_MODULE_19__[\"ViewColumn\"]; });\n\n/* harmony import */ var _decorator_columns_ObjectIdColumn__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./decorator/columns/ObjectIdColumn */ \"./node_modules/typeorm/browser/decorator/columns/ObjectIdColumn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ObjectIdColumn\", function() { return _decorator_columns_ObjectIdColumn__WEBPACK_IMPORTED_MODULE_20__[\"ObjectIdColumn\"]; });\n\n/* harmony import */ var _decorator_listeners_AfterInsert__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./decorator/listeners/AfterInsert */ \"./node_modules/typeorm/browser/decorator/listeners/AfterInsert.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AfterInsert\", function() { return _decorator_listeners_AfterInsert__WEBPACK_IMPORTED_MODULE_21__[\"AfterInsert\"]; });\n\n/* harmony import */ var _decorator_listeners_AfterLoad__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./decorator/listeners/AfterLoad */ \"./node_modules/typeorm/browser/decorator/listeners/AfterLoad.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AfterLoad\", function() { return _decorator_listeners_AfterLoad__WEBPACK_IMPORTED_MODULE_22__[\"AfterLoad\"]; });\n\n/* harmony import */ var _decorator_listeners_AfterRemove__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./decorator/listeners/AfterRemove */ \"./node_modules/typeorm/browser/decorator/listeners/AfterRemove.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AfterRemove\", function() { return _decorator_listeners_AfterRemove__WEBPACK_IMPORTED_MODULE_23__[\"AfterRemove\"]; });\n\n/* harmony import */ var _decorator_listeners_AfterUpdate__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./decorator/listeners/AfterUpdate */ \"./node_modules/typeorm/browser/decorator/listeners/AfterUpdate.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AfterUpdate\", function() { return _decorator_listeners_AfterUpdate__WEBPACK_IMPORTED_MODULE_24__[\"AfterUpdate\"]; });\n\n/* harmony import */ var _decorator_listeners_BeforeInsert__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./decorator/listeners/BeforeInsert */ \"./node_modules/typeorm/browser/decorator/listeners/BeforeInsert.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BeforeInsert\", function() { return _decorator_listeners_BeforeInsert__WEBPACK_IMPORTED_MODULE_25__[\"BeforeInsert\"]; });\n\n/* harmony import */ var _decorator_listeners_BeforeRemove__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./decorator/listeners/BeforeRemove */ \"./node_modules/typeorm/browser/decorator/listeners/BeforeRemove.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BeforeRemove\", function() { return _decorator_listeners_BeforeRemove__WEBPACK_IMPORTED_MODULE_26__[\"BeforeRemove\"]; });\n\n/* harmony import */ var _decorator_listeners_BeforeUpdate__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./decorator/listeners/BeforeUpdate */ \"./node_modules/typeorm/browser/decorator/listeners/BeforeUpdate.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BeforeUpdate\", function() { return _decorator_listeners_BeforeUpdate__WEBPACK_IMPORTED_MODULE_27__[\"BeforeUpdate\"]; });\n\n/* harmony import */ var _decorator_listeners_EventSubscriber__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./decorator/listeners/EventSubscriber */ \"./node_modules/typeorm/browser/decorator/listeners/EventSubscriber.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EventSubscriber\", function() { return _decorator_listeners_EventSubscriber__WEBPACK_IMPORTED_MODULE_28__[\"EventSubscriber\"]; });\n\n/* harmony import */ var _decorator_options_ColumnOptions__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./decorator/options/ColumnOptions */ \"./node_modules/typeorm/browser/decorator/options/ColumnOptions.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _decorator_options_IndexOptions__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./decorator/options/IndexOptions */ \"./node_modules/typeorm/browser/decorator/options/IndexOptions.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _decorator_options_JoinColumnOptions__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./decorator/options/JoinColumnOptions */ \"./node_modules/typeorm/browser/decorator/options/JoinColumnOptions.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _decorator_options_JoinTableOptions__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./decorator/options/JoinTableOptions */ \"./node_modules/typeorm/browser/decorator/options/JoinTableOptions.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _decorator_options_RelationOptions__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./decorator/options/RelationOptions */ \"./node_modules/typeorm/browser/decorator/options/RelationOptions.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _decorator_options_EntityOptions__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./decorator/options/EntityOptions */ \"./node_modules/typeorm/browser/decorator/options/EntityOptions.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _decorator_options_ValueTransformer__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./decorator/options/ValueTransformer */ \"./node_modules/typeorm/browser/decorator/options/ValueTransformer.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _decorator_relations_JoinColumn__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./decorator/relations/JoinColumn */ \"./node_modules/typeorm/browser/decorator/relations/JoinColumn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"JoinColumn\", function() { return _decorator_relations_JoinColumn__WEBPACK_IMPORTED_MODULE_36__[\"JoinColumn\"]; });\n\n/* harmony import */ var _decorator_relations_JoinTable__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./decorator/relations/JoinTable */ \"./node_modules/typeorm/browser/decorator/relations/JoinTable.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"JoinTable\", function() { return _decorator_relations_JoinTable__WEBPACK_IMPORTED_MODULE_37__[\"JoinTable\"]; });\n\n/* harmony import */ var _decorator_relations_ManyToMany__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./decorator/relations/ManyToMany */ \"./node_modules/typeorm/browser/decorator/relations/ManyToMany.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ManyToMany\", function() { return _decorator_relations_ManyToMany__WEBPACK_IMPORTED_MODULE_38__[\"ManyToMany\"]; });\n\n/* harmony import */ var _decorator_relations_ManyToOne__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./decorator/relations/ManyToOne */ \"./node_modules/typeorm/browser/decorator/relations/ManyToOne.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ManyToOne\", function() { return _decorator_relations_ManyToOne__WEBPACK_IMPORTED_MODULE_39__[\"ManyToOne\"]; });\n\n/* harmony import */ var _decorator_relations_OneToMany__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./decorator/relations/OneToMany */ \"./node_modules/typeorm/browser/decorator/relations/OneToMany.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"OneToMany\", function() { return _decorator_relations_OneToMany__WEBPACK_IMPORTED_MODULE_40__[\"OneToMany\"]; });\n\n/* harmony import */ var _decorator_relations_OneToOne__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./decorator/relations/OneToOne */ \"./node_modules/typeorm/browser/decorator/relations/OneToOne.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"OneToOne\", function() { return _decorator_relations_OneToOne__WEBPACK_IMPORTED_MODULE_41__[\"OneToOne\"]; });\n\n/* harmony import */ var _decorator_relations_RelationCount__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./decorator/relations/RelationCount */ \"./node_modules/typeorm/browser/decorator/relations/RelationCount.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RelationCount\", function() { return _decorator_relations_RelationCount__WEBPACK_IMPORTED_MODULE_42__[\"RelationCount\"]; });\n\n/* harmony import */ var _decorator_relations_RelationId__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./decorator/relations/RelationId */ \"./node_modules/typeorm/browser/decorator/relations/RelationId.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RelationId\", function() { return _decorator_relations_RelationId__WEBPACK_IMPORTED_MODULE_43__[\"RelationId\"]; });\n\n/* harmony import */ var _decorator_entity_Entity__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./decorator/entity/Entity */ \"./node_modules/typeorm/browser/decorator/entity/Entity.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Entity\", function() { return _decorator_entity_Entity__WEBPACK_IMPORTED_MODULE_44__[\"Entity\"]; });\n\n/* harmony import */ var _decorator_entity_ChildEntity__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./decorator/entity/ChildEntity */ \"./node_modules/typeorm/browser/decorator/entity/ChildEntity.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ChildEntity\", function() { return _decorator_entity_ChildEntity__WEBPACK_IMPORTED_MODULE_45__[\"ChildEntity\"]; });\n\n/* harmony import */ var _decorator_entity_TableInheritance__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./decorator/entity/TableInheritance */ \"./node_modules/typeorm/browser/decorator/entity/TableInheritance.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TableInheritance\", function() { return _decorator_entity_TableInheritance__WEBPACK_IMPORTED_MODULE_46__[\"TableInheritance\"]; });\n\n/* harmony import */ var _decorator_entity_view_ViewEntity__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./decorator/entity-view/ViewEntity */ \"./node_modules/typeorm/browser/decorator/entity-view/ViewEntity.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ViewEntity\", function() { return _decorator_entity_view_ViewEntity__WEBPACK_IMPORTED_MODULE_47__[\"ViewEntity\"]; });\n\n/* harmony import */ var _decorator_transaction_Transaction__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./decorator/transaction/Transaction */ \"./node_modules/typeorm/browser/decorator/transaction/Transaction.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Transaction\", function() { return _decorator_transaction_Transaction__WEBPACK_IMPORTED_MODULE_48__[\"Transaction\"]; });\n\n/* harmony import */ var _decorator_transaction_TransactionManager__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./decorator/transaction/TransactionManager */ \"./node_modules/typeorm/browser/decorator/transaction/TransactionManager.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TransactionManager\", function() { return _decorator_transaction_TransactionManager__WEBPACK_IMPORTED_MODULE_49__[\"TransactionManager\"]; });\n\n/* harmony import */ var _decorator_transaction_TransactionRepository__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./decorator/transaction/TransactionRepository */ \"./node_modules/typeorm/browser/decorator/transaction/TransactionRepository.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TransactionRepository\", function() { return _decorator_transaction_TransactionRepository__WEBPACK_IMPORTED_MODULE_50__[\"TransactionRepository\"]; });\n\n/* harmony import */ var _decorator_tree_TreeLevelColumn__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./decorator/tree/TreeLevelColumn */ \"./node_modules/typeorm/browser/decorator/tree/TreeLevelColumn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TreeLevelColumn\", function() { return _decorator_tree_TreeLevelColumn__WEBPACK_IMPORTED_MODULE_51__[\"TreeLevelColumn\"]; });\n\n/* harmony import */ var _decorator_tree_TreeParent__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./decorator/tree/TreeParent */ \"./node_modules/typeorm/browser/decorator/tree/TreeParent.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TreeParent\", function() { return _decorator_tree_TreeParent__WEBPACK_IMPORTED_MODULE_52__[\"TreeParent\"]; });\n\n/* harmony import */ var _decorator_tree_TreeChildren__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./decorator/tree/TreeChildren */ \"./node_modules/typeorm/browser/decorator/tree/TreeChildren.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TreeChildren\", function() { return _decorator_tree_TreeChildren__WEBPACK_IMPORTED_MODULE_53__[\"TreeChildren\"]; });\n\n/* harmony import */ var _decorator_tree_Tree__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./decorator/tree/Tree */ \"./node_modules/typeorm/browser/decorator/tree/Tree.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Tree\", function() { return _decorator_tree_Tree__WEBPACK_IMPORTED_MODULE_54__[\"Tree\"]; });\n\n/* harmony import */ var _decorator_Index__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./decorator/Index */ \"./node_modules/typeorm/browser/decorator/Index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Index\", function() { return _decorator_Index__WEBPACK_IMPORTED_MODULE_55__[\"Index\"]; });\n\n/* harmony import */ var _decorator_Unique__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./decorator/Unique */ \"./node_modules/typeorm/browser/decorator/Unique.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Unique\", function() { return _decorator_Unique__WEBPACK_IMPORTED_MODULE_56__[\"Unique\"]; });\n\n/* harmony import */ var _decorator_Check__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./decorator/Check */ \"./node_modules/typeorm/browser/decorator/Check.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Check\", function() { return _decorator_Check__WEBPACK_IMPORTED_MODULE_57__[\"Check\"]; });\n\n/* harmony import */ var _decorator_Exclusion__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./decorator/Exclusion */ \"./node_modules/typeorm/browser/decorator/Exclusion.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Exclusion\", function() { return _decorator_Exclusion__WEBPACK_IMPORTED_MODULE_58__[\"Exclusion\"]; });\n\n/* harmony import */ var _decorator_Generated__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./decorator/Generated */ \"./node_modules/typeorm/browser/decorator/Generated.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Generated\", function() { return _decorator_Generated__WEBPACK_IMPORTED_MODULE_59__[\"Generated\"]; });\n\n/* harmony import */ var _decorator_EntityRepository__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./decorator/EntityRepository */ \"./node_modules/typeorm/browser/decorator/EntityRepository.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EntityRepository\", function() { return _decorator_EntityRepository__WEBPACK_IMPORTED_MODULE_60__[\"EntityRepository\"]; });\n\n/* harmony import */ var _find_options_operator_Any__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./find-options/operator/Any */ \"./node_modules/typeorm/browser/find-options/operator/Any.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Any\", function() { return _find_options_operator_Any__WEBPACK_IMPORTED_MODULE_61__[\"Any\"]; });\n\n/* harmony import */ var _find_options_operator_Between__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./find-options/operator/Between */ \"./node_modules/typeorm/browser/find-options/operator/Between.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Between\", function() { return _find_options_operator_Between__WEBPACK_IMPORTED_MODULE_62__[\"Between\"]; });\n\n/* harmony import */ var _find_options_operator_Equal__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./find-options/operator/Equal */ \"./node_modules/typeorm/browser/find-options/operator/Equal.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Equal\", function() { return _find_options_operator_Equal__WEBPACK_IMPORTED_MODULE_63__[\"Equal\"]; });\n\n/* harmony import */ var _find_options_operator_In__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./find-options/operator/In */ \"./node_modules/typeorm/browser/find-options/operator/In.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"In\", function() { return _find_options_operator_In__WEBPACK_IMPORTED_MODULE_64__[\"In\"]; });\n\n/* harmony import */ var _find_options_operator_IsNull__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./find-options/operator/IsNull */ \"./node_modules/typeorm/browser/find-options/operator/IsNull.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"IsNull\", function() { return _find_options_operator_IsNull__WEBPACK_IMPORTED_MODULE_65__[\"IsNull\"]; });\n\n/* harmony import */ var _find_options_operator_LessThan__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./find-options/operator/LessThan */ \"./node_modules/typeorm/browser/find-options/operator/LessThan.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LessThan\", function() { return _find_options_operator_LessThan__WEBPACK_IMPORTED_MODULE_66__[\"LessThan\"]; });\n\n/* harmony import */ var _find_options_operator_LessThanOrEqual__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./find-options/operator/LessThanOrEqual */ \"./node_modules/typeorm/browser/find-options/operator/LessThanOrEqual.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LessThanOrEqual\", function() { return _find_options_operator_LessThanOrEqual__WEBPACK_IMPORTED_MODULE_67__[\"LessThanOrEqual\"]; });\n\n/* harmony import */ var _find_options_operator_ILike__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./find-options/operator/ILike */ \"./node_modules/typeorm/browser/find-options/operator/ILike.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ILike\", function() { return _find_options_operator_ILike__WEBPACK_IMPORTED_MODULE_68__[\"ILike\"]; });\n\n/* harmony import */ var _find_options_operator_Like__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./find-options/operator/Like */ \"./node_modules/typeorm/browser/find-options/operator/Like.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Like\", function() { return _find_options_operator_Like__WEBPACK_IMPORTED_MODULE_69__[\"Like\"]; });\n\n/* harmony import */ var _find_options_operator_MoreThan__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./find-options/operator/MoreThan */ \"./node_modules/typeorm/browser/find-options/operator/MoreThan.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MoreThan\", function() { return _find_options_operator_MoreThan__WEBPACK_IMPORTED_MODULE_70__[\"MoreThan\"]; });\n\n/* harmony import */ var _find_options_operator_MoreThanOrEqual__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./find-options/operator/MoreThanOrEqual */ \"./node_modules/typeorm/browser/find-options/operator/MoreThanOrEqual.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MoreThanOrEqual\", function() { return _find_options_operator_MoreThanOrEqual__WEBPACK_IMPORTED_MODULE_71__[\"MoreThanOrEqual\"]; });\n\n/* harmony import */ var _find_options_operator_Not__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./find-options/operator/Not */ \"./node_modules/typeorm/browser/find-options/operator/Not.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Not\", function() { return _find_options_operator_Not__WEBPACK_IMPORTED_MODULE_72__[\"Not\"]; });\n\n/* harmony import */ var _find_options_operator_Raw__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./find-options/operator/Raw */ \"./node_modules/typeorm/browser/find-options/operator/Raw.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Raw\", function() { return _find_options_operator_Raw__WEBPACK_IMPORTED_MODULE_73__[\"Raw\"]; });\n\n/* harmony import */ var _find_options_FindConditions__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./find-options/FindConditions */ \"./node_modules/typeorm/browser/find-options/FindConditions.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _find_options_FindManyOptions__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./find-options/FindManyOptions */ \"./node_modules/typeorm/browser/find-options/FindManyOptions.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _find_options_FindOneOptions__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./find-options/FindOneOptions */ \"./node_modules/typeorm/browser/find-options/FindOneOptions.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _find_options_FindOperator__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./find-options/FindOperator */ \"./node_modules/typeorm/browser/find-options/FindOperator.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FindOperator\", function() { return _find_options_FindOperator__WEBPACK_IMPORTED_MODULE_77__[\"FindOperator\"]; });\n\n/* harmony import */ var _find_options_FindOperatorType__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./find-options/FindOperatorType */ \"./node_modules/typeorm/browser/find-options/FindOperatorType.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _find_options_JoinOptions__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./find-options/JoinOptions */ \"./node_modules/typeorm/browser/find-options/JoinOptions.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _find_options_OrderByCondition__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./find-options/OrderByCondition */ \"./node_modules/typeorm/browser/find-options/OrderByCondition.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./find-options/FindOptionsUtils */ \"./node_modules/typeorm/browser/find-options/FindOptionsUtils.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FindOptionsUtils\", function() { return _find_options_FindOptionsUtils__WEBPACK_IMPORTED_MODULE_81__[\"FindOptionsUtils\"]; });\n\n/* harmony import */ var _logger_Logger__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./logger/Logger */ \"./node_modules/typeorm/browser/logger/Logger.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _logger_LoggerOptions__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./logger/LoggerOptions */ \"./node_modules/typeorm/browser/logger/LoggerOptions.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _logger_AdvancedConsoleLogger__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./logger/AdvancedConsoleLogger */ \"./node_modules/typeorm/browser/logger/AdvancedConsoleLogger.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AdvancedConsoleLogger\", function() { return _logger_AdvancedConsoleLogger__WEBPACK_IMPORTED_MODULE_84__[\"AdvancedConsoleLogger\"]; });\n\n/* harmony import */ var _logger_SimpleConsoleLogger__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./logger/SimpleConsoleLogger */ \"./node_modules/typeorm/browser/logger/SimpleConsoleLogger.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SimpleConsoleLogger\", function() { return _logger_SimpleConsoleLogger__WEBPACK_IMPORTED_MODULE_85__[\"SimpleConsoleLogger\"]; });\n\n/* harmony import */ var _logger_FileLogger__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./logger/FileLogger */ \"./node_modules/typeorm/browser/platform/BrowserFileLoggerDummy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DummyLogger\", function() { return _logger_FileLogger__WEBPACK_IMPORTED_MODULE_86__[\"DummyLogger\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FileLogger\", function() { return _logger_FileLogger__WEBPACK_IMPORTED_MODULE_86__[\"FileLogger\"]; });\n\n/* harmony import */ var _metadata_EntityMetadata__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./metadata/EntityMetadata */ \"./node_modules/typeorm/browser/metadata/EntityMetadata.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EntityMetadata\", function() { return _metadata_EntityMetadata__WEBPACK_IMPORTED_MODULE_87__[\"EntityMetadata\"]; });\n\n/* harmony import */ var _entity_manager_EntityManager__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./entity-manager/EntityManager */ \"./node_modules/typeorm/browser/entity-manager/EntityManager.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EntityManager\", function() { return _entity_manager_EntityManager__WEBPACK_IMPORTED_MODULE_88__[\"EntityManager\"]; });\n\n/* harmony import */ var _repository_AbstractRepository__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./repository/AbstractRepository */ \"./node_modules/typeorm/browser/repository/AbstractRepository.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AbstractRepository\", function() { return _repository_AbstractRepository__WEBPACK_IMPORTED_MODULE_89__[\"AbstractRepository\"]; });\n\n/* harmony import */ var _repository_Repository__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./repository/Repository */ \"./node_modules/typeorm/browser/repository/Repository.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Repository\", function() { return _repository_Repository__WEBPACK_IMPORTED_MODULE_90__[\"Repository\"]; });\n\n/* harmony import */ var _repository_BaseEntity__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./repository/BaseEntity */ \"./node_modules/typeorm/browser/repository/BaseEntity.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BaseEntity\", function() { return _repository_BaseEntity__WEBPACK_IMPORTED_MODULE_91__[\"BaseEntity\"]; });\n\n/* harmony import */ var _repository_TreeRepository__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./repository/TreeRepository */ \"./node_modules/typeorm/browser/repository/TreeRepository.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TreeRepository\", function() { return _repository_TreeRepository__WEBPACK_IMPORTED_MODULE_92__[\"TreeRepository\"]; });\n\n/* harmony import */ var _repository_MongoRepository__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./repository/MongoRepository */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MongoDriver\", function() { return _repository_MongoRepository__WEBPACK_IMPORTED_MODULE_93__[\"MongoDriver\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MongoQueryRunner\", function() { return _repository_MongoRepository__WEBPACK_IMPORTED_MODULE_93__[\"MongoQueryRunner\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MongoRepository\", function() { return _repository_MongoRepository__WEBPACK_IMPORTED_MODULE_93__[\"MongoRepository\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PostgresDriver\", function() { return _repository_MongoRepository__WEBPACK_IMPORTED_MODULE_93__[\"PostgresDriver\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AuroraDataApiDriver\", function() { return _repository_MongoRepository__WEBPACK_IMPORTED_MODULE_93__[\"AuroraDataApiDriver\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CockroachDriver\", function() { return _repository_MongoRepository__WEBPACK_IMPORTED_MODULE_93__[\"CockroachDriver\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AuroraDataApiPostgresDriver\", function() { return _repository_MongoRepository__WEBPACK_IMPORTED_MODULE_93__[\"AuroraDataApiPostgresDriver\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SqlServerDriver\", function() { return _repository_MongoRepository__WEBPACK_IMPORTED_MODULE_93__[\"SqlServerDriver\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SapDriver\", function() { return _repository_MongoRepository__WEBPACK_IMPORTED_MODULE_93__[\"SapDriver\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MysqlDriver\", function() { return _repository_MongoRepository__WEBPACK_IMPORTED_MODULE_93__[\"MysqlDriver\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"OracleDriver\", function() { return _repository_MongoRepository__WEBPACK_IMPORTED_MODULE_93__[\"OracleDriver\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SqliteDriver\", function() { return _repository_MongoRepository__WEBPACK_IMPORTED_MODULE_93__[\"SqliteDriver\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BetterSqlite3Driver\", function() { return _repository_MongoRepository__WEBPACK_IMPORTED_MODULE_93__[\"BetterSqlite3Driver\"]; });\n\n/* harmony import */ var _repository_RemoveOptions__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./repository/RemoveOptions */ \"./node_modules/typeorm/browser/repository/RemoveOptions.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _repository_SaveOptions__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./repository/SaveOptions */ \"./node_modules/typeorm/browser/repository/SaveOptions.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _schema_builder_table_TableCheck__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./schema-builder/table/TableCheck */ \"./node_modules/typeorm/browser/schema-builder/table/TableCheck.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TableCheck\", function() { return _schema_builder_table_TableCheck__WEBPACK_IMPORTED_MODULE_96__[\"TableCheck\"]; });\n\n/* harmony import */ var _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./schema-builder/table/TableColumn */ \"./node_modules/typeorm/browser/schema-builder/table/TableColumn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TableColumn\", function() { return _schema_builder_table_TableColumn__WEBPACK_IMPORTED_MODULE_97__[\"TableColumn\"]; });\n\n/* harmony import */ var _schema_builder_table_TableExclusion__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./schema-builder/table/TableExclusion */ \"./node_modules/typeorm/browser/schema-builder/table/TableExclusion.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TableExclusion\", function() { return _schema_builder_table_TableExclusion__WEBPACK_IMPORTED_MODULE_98__[\"TableExclusion\"]; });\n\n/* harmony import */ var _schema_builder_table_TableForeignKey__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./schema-builder/table/TableForeignKey */ \"./node_modules/typeorm/browser/schema-builder/table/TableForeignKey.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TableForeignKey\", function() { return _schema_builder_table_TableForeignKey__WEBPACK_IMPORTED_MODULE_99__[\"TableForeignKey\"]; });\n\n/* harmony import */ var _schema_builder_table_TableIndex__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./schema-builder/table/TableIndex */ \"./node_modules/typeorm/browser/schema-builder/table/TableIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TableIndex\", function() { return _schema_builder_table_TableIndex__WEBPACK_IMPORTED_MODULE_100__[\"TableIndex\"]; });\n\n/* harmony import */ var _schema_builder_table_TableUnique__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./schema-builder/table/TableUnique */ \"./node_modules/typeorm/browser/schema-builder/table/TableUnique.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TableUnique\", function() { return _schema_builder_table_TableUnique__WEBPACK_IMPORTED_MODULE_101__[\"TableUnique\"]; });\n\n/* harmony import */ var _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./schema-builder/table/Table */ \"./node_modules/typeorm/browser/schema-builder/table/Table.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Table\", function() { return _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_102__[\"Table\"]; });\n\n/* harmony import */ var _driver_mongodb_typings__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./driver/mongodb/typings */ \"./node_modules/typeorm/browser/driver/mongodb/typings.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _driver_types_DatabaseType__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./driver/types/DatabaseType */ \"./node_modules/typeorm/browser/driver/types/DatabaseType.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _driver_types_ReplicationMode__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./driver/types/ReplicationMode */ \"./node_modules/typeorm/browser/driver/types/ReplicationMode.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _driver_sqlserver_MssqlParameter__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./driver/sqlserver/MssqlParameter */ \"./node_modules/typeorm/browser/driver/sqlserver/MssqlParameter.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MssqlParameter\", function() { return _driver_sqlserver_MssqlParameter__WEBPACK_IMPORTED_MODULE_106__[\"MssqlParameter\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ConnectionOptionsReader\", function() { return _connection_ConnectionOptionsReader__WEBPACK_IMPORTED_MODULE_6__[\"ConnectionOptionsReader\"]; });\n\n/* harmony import */ var _connection_Connection__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./connection/Connection */ \"./node_modules/typeorm/browser/connection/Connection.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Connection\", function() { return _connection_Connection__WEBPACK_IMPORTED_MODULE_107__[\"Connection\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ConnectionManager\", function() { return _connection_ConnectionManager__WEBPACK_IMPORTED_MODULE_2__[\"ConnectionManager\"]; });\n\n/* harmony import */ var _query_builder_QueryBuilder__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./query-builder/QueryBuilder */ \"./node_modules/typeorm/browser/query-builder/QueryBuilder.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"QueryBuilder\", function() { return _query_builder_QueryBuilder__WEBPACK_IMPORTED_MODULE_108__[\"QueryBuilder\"]; });\n\n/* harmony import */ var _query_builder_SelectQueryBuilder__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./query-builder/SelectQueryBuilder */ \"./node_modules/typeorm/browser/query-builder/SelectQueryBuilder.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SelectQueryBuilder\", function() { return _query_builder_SelectQueryBuilder__WEBPACK_IMPORTED_MODULE_109__[\"SelectQueryBuilder\"]; });\n\n/* harmony import */ var _query_builder_DeleteQueryBuilder__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./query-builder/DeleteQueryBuilder */ \"./node_modules/typeorm/browser/query-builder/DeleteQueryBuilder.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DeleteQueryBuilder\", function() { return _query_builder_DeleteQueryBuilder__WEBPACK_IMPORTED_MODULE_110__[\"DeleteQueryBuilder\"]; });\n\n/* harmony import */ var _query_builder_InsertQueryBuilder__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./query-builder/InsertQueryBuilder */ \"./node_modules/typeorm/browser/query-builder/InsertQueryBuilder.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"InsertQueryBuilder\", function() { return _query_builder_InsertQueryBuilder__WEBPACK_IMPORTED_MODULE_111__[\"InsertQueryBuilder\"]; });\n\n/* harmony import */ var _query_builder_UpdateQueryBuilder__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./query-builder/UpdateQueryBuilder */ \"./node_modules/typeorm/browser/query-builder/UpdateQueryBuilder.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UpdateQueryBuilder\", function() { return _query_builder_UpdateQueryBuilder__WEBPACK_IMPORTED_MODULE_112__[\"UpdateQueryBuilder\"]; });\n\n/* harmony import */ var _query_builder_RelationQueryBuilder__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./query-builder/RelationQueryBuilder */ \"./node_modules/typeorm/browser/query-builder/RelationQueryBuilder.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RelationQueryBuilder\", function() { return _query_builder_RelationQueryBuilder__WEBPACK_IMPORTED_MODULE_113__[\"RelationQueryBuilder\"]; });\n\n/* harmony import */ var _query_builder_Brackets__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./query-builder/Brackets */ \"./node_modules/typeorm/browser/query-builder/Brackets.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Brackets\", function() { return _query_builder_Brackets__WEBPACK_IMPORTED_MODULE_114__[\"Brackets\"]; });\n\n/* harmony import */ var _query_builder_result_InsertResult__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./query-builder/result/InsertResult */ \"./node_modules/typeorm/browser/query-builder/result/InsertResult.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"InsertResult\", function() { return _query_builder_result_InsertResult__WEBPACK_IMPORTED_MODULE_115__[\"InsertResult\"]; });\n\n/* harmony import */ var _query_builder_result_UpdateResult__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./query-builder/result/UpdateResult */ \"./node_modules/typeorm/browser/query-builder/result/UpdateResult.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UpdateResult\", function() { return _query_builder_result_UpdateResult__WEBPACK_IMPORTED_MODULE_116__[\"UpdateResult\"]; });\n\n/* harmony import */ var _query_builder_result_DeleteResult__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./query-builder/result/DeleteResult */ \"./node_modules/typeorm/browser/query-builder/result/DeleteResult.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DeleteResult\", function() { return _query_builder_result_DeleteResult__WEBPACK_IMPORTED_MODULE_117__[\"DeleteResult\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MongoEntityManager\", function() { return _repository_MongoRepository__WEBPACK_IMPORTED_MODULE_93__[\"MongoEntityManager\"]; });\n\n/* harmony import */ var _migration_Migration__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./migration/Migration */ \"./node_modules/typeorm/browser/migration/Migration.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Migration\", function() { return _migration_Migration__WEBPACK_IMPORTED_MODULE_118__[\"Migration\"]; });\n\n/* harmony import */ var _migration_MigrationExecutor__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./migration/MigrationExecutor */ \"./node_modules/typeorm/browser/migration/MigrationExecutor.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MigrationExecutor\", function() { return _migration_MigrationExecutor__WEBPACK_IMPORTED_MODULE_119__[\"MigrationExecutor\"]; });\n\n/* harmony import */ var _naming_strategy_DefaultNamingStrategy__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./naming-strategy/DefaultNamingStrategy */ \"./node_modules/typeorm/browser/naming-strategy/DefaultNamingStrategy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DefaultNamingStrategy\", function() { return _naming_strategy_DefaultNamingStrategy__WEBPACK_IMPORTED_MODULE_120__[\"DefaultNamingStrategy\"]; });\n\n/* harmony import */ var _entity_schema_EntitySchema__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./entity-schema/EntitySchema */ \"./node_modules/typeorm/browser/entity-schema/EntitySchema.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EntitySchema\", function() { return _entity_schema_EntitySchema__WEBPACK_IMPORTED_MODULE_121__[\"EntitySchema\"]; });\n\n\n/*!\n */\n\n\n\n\n\n\n// -------------------------------------------------------------------------\n// Commonly Used exports\n// -------------------------------------------------------------------------\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// -------------------------------------------------------------------------\n// Deprecated\n// -------------------------------------------------------------------------\n// -------------------------------------------------------------------------\n// Commonly used functionality\n// -------------------------------------------------------------------------\n/**\n * Gets metadata args storage.\n */\nfunction getMetadataArgsStorage() {\n // we should store metadata storage in a global variable otherwise it brings too much problems\n // one of the problem is that if any entity (or any other) will be imported before consumer will call\n // useContainer method with his own container implementation, that entity will be registered in the\n // old old container (default one post probably) and consumer will his entity.\n // calling useContainer before he imports any entity (or any other) is not always convenient.\n // another reason is that when we run migrations typeorm is being called from a global package\n // and it may load entities which register decorators in typeorm of local package\n // this leads to impossibility of usage of entities in migrations and cli related operations\n var globalScope = _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_5__[\"PlatformTools\"].getGlobalVariable();\n if (!globalScope.typeormMetadataArgsStorage)\n globalScope.typeormMetadataArgsStorage = new _metadata_args_MetadataArgsStorage__WEBPACK_IMPORTED_MODULE_3__[\"MetadataArgsStorage\"]();\n return globalScope.typeormMetadataArgsStorage;\n}\n/**\n * Reads connection options stored in ormconfig configuration file.\n */\nfunction getConnectionOptions(connectionName) {\n if (connectionName === void 0) { connectionName = \"default\"; }\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, new _connection_ConnectionOptionsReader__WEBPACK_IMPORTED_MODULE_6__[\"ConnectionOptionsReader\"]().get(connectionName)];\n });\n });\n}\n/**\n * Gets a ConnectionManager which creates connections.\n */\nfunction getConnectionManager() {\n return Object(_container__WEBPACK_IMPORTED_MODULE_4__[\"getFromContainer\"])(_connection_ConnectionManager__WEBPACK_IMPORTED_MODULE_2__[\"ConnectionManager\"]);\n}\n/**\n * Creates a new connection and registers it in the manager.\n *\n * If connection options were not specified, then it will try to create connection automatically,\n * based on content of ormconfig (json/js/yml/xml/env) file or environment variables.\n * Only one connection from ormconfig will be created (name \"default\" or connection without name).\n */\nfunction createConnection(optionsOrName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var connectionName, options, _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n connectionName = typeof optionsOrName === \"string\" ? optionsOrName : \"default\";\n if (!(optionsOrName instanceof Object)) return [3 /*break*/, 1];\n _a = optionsOrName;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, getConnectionOptions(connectionName)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n options = _a;\n return [2 /*return*/, getConnectionManager().create(options).connect()];\n }\n });\n });\n}\n/**\n * Creates new connections and registers them in the manager.\n *\n * If connection options were not specified, then it will try to create connection automatically,\n * based on content of ormconfig (json/js/yml/xml/env) file or environment variables.\n * All connections from the ormconfig will be created.\n */\nfunction createConnections(options) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var connections;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!options) return [3 /*break*/, 2];\n return [4 /*yield*/, new _connection_ConnectionOptionsReader__WEBPACK_IMPORTED_MODULE_6__[\"ConnectionOptionsReader\"]().all()];\n case 1:\n options = _a.sent();\n _a.label = 2;\n case 2:\n connections = options.map(function (options) { return getConnectionManager().create(options); });\n return [2 /*return*/, Promise.all(connections.map(function (connection) { return connection.connect(); }))];\n }\n });\n });\n}\n/**\n * Gets connection from the connection manager.\n * If connection name wasn't specified, then \"default\" connection will be retrieved.\n */\nfunction getConnection(connectionName) {\n if (connectionName === void 0) { connectionName = \"default\"; }\n return getConnectionManager().get(connectionName);\n}\n/**\n * Gets entity manager from the connection.\n * If connection name wasn't specified, then \"default\" connection will be retrieved.\n */\nfunction getManager(connectionName) {\n if (connectionName === void 0) { connectionName = \"default\"; }\n return getConnectionManager().get(connectionName).manager;\n}\n/**\n * Gets MongoDB entity manager from the connection.\n * If connection name wasn't specified, then \"default\" connection will be retrieved.\n */\nfunction getMongoManager(connectionName) {\n if (connectionName === void 0) { connectionName = \"default\"; }\n return getConnectionManager().get(connectionName).manager;\n}\n/**\n * Gets Sqljs entity manager from connection name.\n * \"default\" connection is used, when no name is specified.\n * Only works when Sqljs driver is used.\n */\nfunction getSqljsManager(connectionName) {\n if (connectionName === void 0) { connectionName = \"default\"; }\n return getConnectionManager().get(connectionName).manager;\n}\n/**\n * Gets repository for the given entity class.\n */\nfunction getRepository(entityClass, connectionName) {\n if (connectionName === void 0) { connectionName = \"default\"; }\n return getConnectionManager().get(connectionName).getRepository(entityClass);\n}\n/**\n * Gets tree repository for the given entity class.\n */\nfunction getTreeRepository(entityClass, connectionName) {\n if (connectionName === void 0) { connectionName = \"default\"; }\n return getConnectionManager().get(connectionName).getTreeRepository(entityClass);\n}\n/**\n * Gets tree repository for the given entity class.\n */\nfunction getCustomRepository(customRepository, connectionName) {\n if (connectionName === void 0) { connectionName = \"default\"; }\n return getConnectionManager().get(connectionName).getCustomRepository(customRepository);\n}\n/**\n * Gets mongodb repository for the given entity class or name.\n */\nfunction getMongoRepository(entityClass, connectionName) {\n if (connectionName === void 0) { connectionName = \"default\"; }\n return getConnectionManager().get(connectionName).getMongoRepository(entityClass);\n}\n/**\n * Creates a new query builder.\n */\nfunction createQueryBuilder(entityClass, alias, connectionName) {\n if (connectionName === void 0) { connectionName = \"default\"; }\n if (entityClass) {\n return getRepository(entityClass, connectionName).createQueryBuilder(alias);\n }\n return getConnection(connectionName).createQueryBuilder();\n}\n\n//# sourceMappingURL=index.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/index.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/logger/AdvancedConsoleLogger.js":
/*!**********************************************************************!*\
!*** ./node_modules/typeorm/browser/logger/AdvancedConsoleLogger.js ***!
\**********************************************************************/
/*! exports provided: AdvancedConsoleLogger */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AdvancedConsoleLogger\", function() { return AdvancedConsoleLogger; });\n/* harmony import */ var _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/PlatformTools */ \"./node_modules/typeorm/browser/platform/BrowserPlatformTools.js\");\n\n/**\n * Performs logging of the events in TypeORM.\n * This version of logger uses console to log events and use syntax highlighting.\n */\nvar AdvancedConsoleLogger = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function AdvancedConsoleLogger(options) {\n this.options = options;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Logs query and parameters used in it.\n */\n AdvancedConsoleLogger.prototype.logQuery = function (query, parameters, queryRunner) {\n if (this.options === \"all\" || this.options === true || (Array.isArray(this.options) && this.options.indexOf(\"query\") !== -1)) {\n var sql = query + (parameters && parameters.length ? \" -- PARAMETERS: \" + this.stringifyParams(parameters) : \"\");\n _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_0__[\"PlatformTools\"].logInfo(\"query:\", _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_0__[\"PlatformTools\"].highlightSql(sql));\n }\n };\n /**\n * Logs query that is failed.\n */\n AdvancedConsoleLogger.prototype.logQueryError = function (error, query, parameters, queryRunner) {\n if (this.options === \"all\" || this.options === true || (Array.isArray(this.options) && this.options.indexOf(\"error\") !== -1)) {\n var sql = query + (parameters && parameters.length ? \" -- PARAMETERS: \" + this.stringifyParams(parameters) : \"\");\n _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_0__[\"PlatformTools\"].logError(\"query failed:\", _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_0__[\"PlatformTools\"].highlightSql(sql));\n _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_0__[\"PlatformTools\"].logError(\"error:\", error);\n }\n };\n /**\n * Logs query that is slow.\n */\n AdvancedConsoleLogger.prototype.logQuerySlow = function (time, query, parameters, queryRunner) {\n var sql = query + (parameters && parameters.length ? \" -- PARAMETERS: \" + this.stringifyParams(parameters) : \"\");\n _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_0__[\"PlatformTools\"].logWarn(\"query is slow:\", _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_0__[\"PlatformTools\"].highlightSql(sql));\n _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_0__[\"PlatformTools\"].logWarn(\"execution time:\", time);\n };\n /**\n * Logs events from the schema build process.\n */\n AdvancedConsoleLogger.prototype.logSchemaBuild = function (message, queryRunner) {\n if (this.options === \"all\" || (Array.isArray(this.options) && this.options.indexOf(\"schema\") !== -1)) {\n _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_0__[\"PlatformTools\"].log(message);\n }\n };\n /**\n * Logs events from the migration run process.\n */\n AdvancedConsoleLogger.prototype.logMigration = function (message, queryRunner) {\n _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_0__[\"PlatformTools\"].log(message);\n };\n /**\n * Perform logging using given logger, or by default to the console.\n * Log has its own level and message.\n */\n AdvancedConsoleLogger.prototype.log = function (level, message, queryRunner) {\n switch (level) {\n case \"log\":\n if (this.options === \"all\" || (Array.isArray(this.options) && this.options.indexOf(\"log\") !== -1))\n _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_0__[\"PlatformTools\"].log(message);\n break;\n case \"info\":\n if (this.options === \"all\" || (Array.isArray(this.options) && this.options.indexOf(\"info\") !== -1))\n _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_0__[\"PlatformTools\"].logInfo(\"INFO:\", message);\n break;\n case \"warn\":\n if (this.options === \"all\" || (Array.isArray(this.options) && this.options.indexOf(\"warn\") !== -1))\n console.warn(_platform_PlatformTools__WEBPACK_IMPORTED_MODULE_0__[\"PlatformTools\"].warn(message));\n break;\n }\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Converts parameters to a string.\n * Sometimes parameters can have circular objects and therefor we are handle this case too.\n */\n AdvancedConsoleLogger.prototype.stringifyParams = function (parameters) {\n try {\n return JSON.stringify(parameters);\n }\n catch (error) { // most probably circular objects in parameters\n return parameters;\n }\n };\n return AdvancedConsoleLogger;\n}());\n\n\n//# sourceMappingURL=AdvancedConsoleLogger.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/logger/AdvancedConsoleLogger.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/logger/DebugLogger.js":
/*!************************************************************!*\
!*** ./node_modules/typeorm/browser/logger/DebugLogger.js ***!
\************************************************************/
/*! exports provided: DebugLogger */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DebugLogger\", function() { return DebugLogger; });\n/* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! debug */ \"./node_modules/debug/src/browser.js\");\n/* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(debug__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _platform_PlatformTools__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../platform/PlatformTools */ \"./node_modules/typeorm/browser/platform/BrowserPlatformTools.js\");\n\n\n/**\n * Performs logging of the events in TypeORM via debug library.\n */\nvar DebugLogger = /** @class */ (function () {\n function DebugLogger() {\n this.debugQueryLog = debug__WEBPACK_IMPORTED_MODULE_0___default()(\"typeorm:query:log\");\n this.debugQueryError = debug__WEBPACK_IMPORTED_MODULE_0___default()(\"typeorm:query:error\");\n this.debugQuerySlow = debug__WEBPACK_IMPORTED_MODULE_0___default()(\"typeorm:query:slow\");\n this.debugSchemaBuild = debug__WEBPACK_IMPORTED_MODULE_0___default()(\"typeorm:schema\");\n this.debugMigration = debug__WEBPACK_IMPORTED_MODULE_0___default()(\"typeorm:migration\");\n this.debugLog = debug__WEBPACK_IMPORTED_MODULE_0___default()(\"typeorm:log\");\n this.debugInfo = debug__WEBPACK_IMPORTED_MODULE_0___default()(\"typeorm:info\");\n this.debugWarn = debug__WEBPACK_IMPORTED_MODULE_0___default()(\"typeorm:warn\");\n }\n /**\n * Logs query and parameters used in it.\n */\n DebugLogger.prototype.logQuery = function (query, parameters, queryRunner) {\n if (this.debugQueryLog.enabled) {\n this.debugQueryLog(_platform_PlatformTools__WEBPACK_IMPORTED_MODULE_1__[\"PlatformTools\"].highlightSql(query) + \";\");\n if (parameters && parameters.length) {\n this.debugQueryLog(\"parameters:\", parameters);\n }\n }\n };\n /**\n * Logs query that failed.\n */\n DebugLogger.prototype.logQueryError = function (error, query, parameters, queryRunner) {\n if (this.debugQueryError.enabled) {\n this.debugQueryError(_platform_PlatformTools__WEBPACK_IMPORTED_MODULE_1__[\"PlatformTools\"].highlightSql(query) + \";\");\n if (parameters && parameters.length) {\n this.debugQueryError(\"parameters:\", parameters);\n }\n this.debugQueryError(\"error: \", error);\n }\n };\n /**\n * Logs query that is slow.\n */\n DebugLogger.prototype.logQuerySlow = function (time, query, parameters, queryRunner) {\n if (this.debugQuerySlow.enabled) {\n this.debugQuerySlow(_platform_PlatformTools__WEBPACK_IMPORTED_MODULE_1__[\"PlatformTools\"].highlightSql(query) + \";\");\n if (parameters && parameters.length) {\n this.debugQuerySlow(\"parameters:\", parameters);\n }\n this.debugQuerySlow(\"execution time:\", time);\n }\n };\n /**\n * Logs events from the schema build process.\n */\n DebugLogger.prototype.logSchemaBuild = function (message, queryRunner) {\n if (this.debugSchemaBuild.enabled) {\n this.debugSchemaBuild(message);\n }\n };\n /**\n * Logs events from the migration run process.\n */\n DebugLogger.prototype.logMigration = function (message, queryRunner) {\n if (this.debugMigration.enabled) {\n this.debugMigration(message);\n }\n };\n /**\n * Perform logging using given logger.\n * Log has its own level and message.\n */\n DebugLogger.prototype.log = function (level, message, queryRunner) {\n switch (level) {\n case \"log\":\n if (this.debugLog.enabled) {\n this.debugLog(message);\n }\n break;\n case \"info\":\n if (this.debugInfo.enabled) {\n this.debugInfo(message);\n }\n break;\n case \"warn\":\n if (this.debugWarn.enabled) {\n this.debugWarn(message);\n }\n break;\n }\n };\n return DebugLogger;\n}());\n\n\n//# sourceMappingURL=DebugLogger.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/logger/DebugLogger.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/logger/Logger.js":
/*!*******************************************************!*\
!*** ./node_modules/typeorm/browser/logger/Logger.js ***!
\*******************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=Logger.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/logger/Logger.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/logger/LoggerFactory.js":
/*!**************************************************************!*\
!*** ./node_modules/typeorm/browser/logger/LoggerFactory.js ***!
\**************************************************************/
/*! exports provided: LoggerFactory */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LoggerFactory\", function() { return LoggerFactory; });\n/* harmony import */ var _SimpleConsoleLogger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SimpleConsoleLogger */ \"./node_modules/typeorm/browser/logger/SimpleConsoleLogger.js\");\n/* harmony import */ var _AdvancedConsoleLogger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AdvancedConsoleLogger */ \"./node_modules/typeorm/browser/logger/AdvancedConsoleLogger.js\");\n/* harmony import */ var _FileLogger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FileLogger */ \"./node_modules/typeorm/browser/platform/BrowserFileLoggerDummy.js\");\n/* harmony import */ var _DebugLogger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DebugLogger */ \"./node_modules/typeorm/browser/logger/DebugLogger.js\");\n\n\n\n\n/**\n * Helps to create logger instances.\n */\nvar LoggerFactory = /** @class */ (function () {\n function LoggerFactory() {\n }\n /**\n * Creates a new logger depend on a given connection's driver.\n */\n LoggerFactory.prototype.create = function (logger, options) {\n if (logger instanceof Object)\n return logger;\n if (logger) {\n switch (logger) {\n case \"simple-console\":\n return new _SimpleConsoleLogger__WEBPACK_IMPORTED_MODULE_0__[\"SimpleConsoleLogger\"](options);\n case \"file\":\n return new _FileLogger__WEBPACK_IMPORTED_MODULE_2__[\"FileLogger\"](options);\n case \"advanced-console\":\n return new _AdvancedConsoleLogger__WEBPACK_IMPORTED_MODULE_1__[\"AdvancedConsoleLogger\"](options);\n case \"debug\":\n return new _DebugLogger__WEBPACK_IMPORTED_MODULE_3__[\"DebugLogger\"]();\n }\n }\n return new _AdvancedConsoleLogger__WEBPACK_IMPORTED_MODULE_1__[\"AdvancedConsoleLogger\"](options);\n };\n return LoggerFactory;\n}());\n\n\n//# sourceMappingURL=LoggerFactory.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/logger/LoggerFactory.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/logger/LoggerOptions.js":
/*!**************************************************************!*\
!*** ./node_modules/typeorm/browser/logger/LoggerOptions.js ***!
\**************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=LoggerOptions.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/logger/LoggerOptions.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/logger/SimpleConsoleLogger.js":
/*!********************************************************************!*\
!*** ./node_modules/typeorm/browser/logger/SimpleConsoleLogger.js ***!
\********************************************************************/
/*! exports provided: SimpleConsoleLogger */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SimpleConsoleLogger\", function() { return SimpleConsoleLogger; });\n/**\n * Performs logging of the events in TypeORM.\n * This version of logger uses console to log events and does not use syntax highlighting.\n */\nvar SimpleConsoleLogger = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function SimpleConsoleLogger(options) {\n this.options = options;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Logs query and parameters used in it.\n */\n SimpleConsoleLogger.prototype.logQuery = function (query, parameters, queryRunner) {\n if (this.options === \"all\" || this.options === true || (Array.isArray(this.options) && this.options.indexOf(\"query\") !== -1)) {\n var sql = query + (parameters && parameters.length ? \" -- PARAMETERS: \" + this.stringifyParams(parameters) : \"\");\n console.log(\"query\" + \": \" + sql);\n }\n };\n /**\n * Logs query that is failed.\n */\n SimpleConsoleLogger.prototype.logQueryError = function (error, query, parameters, queryRunner) {\n if (this.options === \"all\" || this.options === true || (Array.isArray(this.options) && this.options.indexOf(\"error\") !== -1)) {\n var sql = query + (parameters && parameters.length ? \" -- PARAMETERS: \" + this.stringifyParams(parameters) : \"\");\n console.log(\"query failed: \" + sql);\n console.log(\"error:\", error);\n }\n };\n /**\n * Logs query that is slow.\n */\n SimpleConsoleLogger.prototype.logQuerySlow = function (time, query, parameters, queryRunner) {\n var sql = query + (parameters && parameters.length ? \" -- PARAMETERS: \" + this.stringifyParams(parameters) : \"\");\n console.log(\"query is slow: \" + sql);\n console.log(\"execution time: \" + time);\n };\n /**\n * Logs events from the schema build process.\n */\n SimpleConsoleLogger.prototype.logSchemaBuild = function (message, queryRunner) {\n if (this.options === \"all\" || (Array.isArray(this.options) && this.options.indexOf(\"schema\") !== -1)) {\n console.log(message);\n }\n };\n /**\n * Logs events from the migrations run process.\n */\n SimpleConsoleLogger.prototype.logMigration = function (message, queryRunner) {\n console.log(message);\n };\n /**\n * Perform logging using given logger, or by default to the console.\n * Log has its own level and message.\n */\n SimpleConsoleLogger.prototype.log = function (level, message, queryRunner) {\n switch (level) {\n case \"log\":\n if (this.options === \"all\" || (Array.isArray(this.options) && this.options.indexOf(\"log\") !== -1))\n console.log(message);\n break;\n case \"info\":\n if (this.options === \"all\" || (Array.isArray(this.options) && this.options.indexOf(\"info\") !== -1))\n console.info(message);\n break;\n case \"warn\":\n if (this.options === \"all\" || (Array.isArray(this.options) && this.options.indexOf(\"warn\") !== -1))\n console.warn(message);\n break;\n }\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Converts parameters to a string.\n * Sometimes parameters can have circular objects and therefor we are handle this case too.\n */\n SimpleConsoleLogger.prototype.stringifyParams = function (parameters) {\n try {\n return JSON.stringify(parameters);\n }\n catch (error) { // most probably circular objects in parameters\n return parameters;\n }\n };\n return SimpleConsoleLogger;\n}());\n\n\n//# sourceMappingURL=SimpleConsoleLogger.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/logger/SimpleConsoleLogger.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata-args/MetadataArgsStorage.js":
/*!***************************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata-args/MetadataArgsStorage.js ***!
\***************************************************************************/
/*! exports provided: MetadataArgsStorage */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MetadataArgsStorage\", function() { return MetadataArgsStorage; });\n/* harmony import */ var _metadata_builder_MetadataUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../metadata-builder/MetadataUtils */ \"./node_modules/typeorm/browser/metadata-builder/MetadataUtils.js\");\n\n/**\n * Storage all metadatas args of all available types: tables, columns, subscribers, relations, etc.\n * Each metadata args represents some specifications of what it represents.\n * MetadataArgs used to create a real Metadata objects.\n */\nvar MetadataArgsStorage = /** @class */ (function () {\n function MetadataArgsStorage() {\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n this.tables = [];\n this.trees = [];\n this.entityRepositories = [];\n this.transactionEntityManagers = [];\n this.transactionRepositories = [];\n this.namingStrategies = [];\n this.entitySubscribers = [];\n this.indices = [];\n this.uniques = [];\n this.checks = [];\n this.exclusions = [];\n this.columns = [];\n this.generations = [];\n this.relations = [];\n this.joinColumns = [];\n this.joinTables = [];\n this.entityListeners = [];\n this.relationCounts = [];\n this.relationIds = [];\n this.embeddeds = [];\n this.inheritances = [];\n this.discriminatorValues = [];\n }\n MetadataArgsStorage.prototype.filterTables = function (target) {\n return this.filterByTarget(this.tables, target);\n };\n MetadataArgsStorage.prototype.filterColumns = function (target) {\n return this.filterByTargetAndWithoutDuplicateProperties(this.columns, target);\n };\n MetadataArgsStorage.prototype.findGenerated = function (target, propertyName) {\n return this.generations.find(function (generated) {\n return (Array.isArray(target) ? target.indexOf(generated.target) !== -1 : generated.target === target) && generated.propertyName === propertyName;\n });\n };\n MetadataArgsStorage.prototype.findTree = function (target) {\n return this.trees.find(function (tree) {\n return (Array.isArray(target) ? target.indexOf(tree.target) !== -1 : tree.target === target);\n });\n };\n MetadataArgsStorage.prototype.filterRelations = function (target) {\n return this.filterByTargetAndWithoutDuplicateProperties(this.relations, target);\n };\n MetadataArgsStorage.prototype.filterRelationIds = function (target) {\n return this.filterByTargetAndWithoutDuplicateProperties(this.relationIds, target);\n };\n MetadataArgsStorage.prototype.filterRelationCounts = function (target) {\n return this.filterByTargetAndWithoutDuplicateProperties(this.relationCounts, target);\n };\n MetadataArgsStorage.prototype.filterIndices = function (target) {\n // todo: implement parent-entity overrides?\n return this.indices.filter(function (index) {\n return Array.isArray(target) ? target.indexOf(index.target) !== -1 : index.target === target;\n });\n };\n MetadataArgsStorage.prototype.filterUniques = function (target) {\n return this.uniques.filter(function (unique) {\n return Array.isArray(target) ? target.indexOf(unique.target) !== -1 : unique.target === target;\n });\n };\n MetadataArgsStorage.prototype.filterChecks = function (target) {\n return this.checks.filter(function (check) {\n return Array.isArray(target) ? target.indexOf(check.target) !== -1 : check.target === target;\n });\n };\n MetadataArgsStorage.prototype.filterExclusions = function (target) {\n return this.exclusions.filter(function (exclusion) {\n return Array.isArray(target) ? target.indexOf(exclusion.target) !== -1 : exclusion.target === target;\n });\n };\n MetadataArgsStorage.prototype.filterListeners = function (target) {\n return this.filterByTarget(this.entityListeners, target);\n };\n MetadataArgsStorage.prototype.filterEmbeddeds = function (target) {\n return this.filterByTargetAndWithoutDuplicateEmbeddedProperties(this.embeddeds, target);\n };\n MetadataArgsStorage.prototype.findJoinTable = function (target, propertyName) {\n return this.joinTables.find(function (joinTable) {\n return joinTable.target === target && joinTable.propertyName === propertyName;\n });\n };\n MetadataArgsStorage.prototype.filterJoinColumns = function (target, propertyName) {\n // todo: implement parent-entity overrides?\n return this.joinColumns.filter(function (joinColumn) {\n return joinColumn.target === target && joinColumn.propertyName === propertyName;\n });\n };\n MetadataArgsStorage.prototype.filterSubscribers = function (target) {\n return this.filterByTarget(this.entitySubscribers, target);\n };\n MetadataArgsStorage.prototype.filterNamingStrategies = function (target) {\n return this.filterByTarget(this.namingStrategies, target);\n };\n MetadataArgsStorage.prototype.filterTransactionEntityManagers = function (target, propertyName) {\n return this.transactionEntityManagers.filter(function (transactionEm) {\n return (Array.isArray(target) ? target.indexOf(transactionEm.target) !== -1 : transactionEm.target === target) && transactionEm.methodName === propertyName;\n });\n };\n MetadataArgsStorage.prototype.filterTransactionRepository = function (target, propertyName) {\n return this.transactionRepositories.filter(function (transactionEm) {\n return (Array.isArray(target) ? target.indexOf(transactionEm.target) !== -1 : transactionEm.target === target) && transactionEm.methodName === propertyName;\n });\n };\n MetadataArgsStorage.prototype.filterSingleTableChildren = function (target) {\n return this.tables.filter(function (table) {\n return table.target instanceof Function\n && target instanceof Function\n && _metadata_builder_MetadataUtils__WEBPACK_IMPORTED_MODULE_0__[\"MetadataUtils\"].isInherited(table.target, target)\n && table.type === \"entity-child\";\n });\n };\n MetadataArgsStorage.prototype.findInheritanceType = function (target) {\n return this.inheritances.find(function (inheritance) { return inheritance.target === target; });\n };\n MetadataArgsStorage.prototype.findDiscriminatorValue = function (target) {\n return this.discriminatorValues.find(function (discriminatorValue) { return discriminatorValue.target === target; });\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Filters given array by a given target or targets.\n */\n MetadataArgsStorage.prototype.filterByTarget = function (array, target) {\n return array.filter(function (table) {\n return Array.isArray(target) ? target.indexOf(table.target) !== -1 : table.target === target;\n });\n };\n /**\n * Filters given array by a given target or targets and prevents duplicate property names.\n */\n MetadataArgsStorage.prototype.filterByTargetAndWithoutDuplicateProperties = function (array, target) {\n var newArray = [];\n array.forEach(function (item) {\n var sameTarget = Array.isArray(target) ? target.indexOf(item.target) !== -1 : item.target === target;\n if (sameTarget) {\n if (!newArray.find(function (newItem) { return newItem.propertyName === item.propertyName; }))\n newArray.push(item);\n }\n });\n return newArray;\n };\n /**\n * Filters given array by a given target or targets and prevents duplicate embedded property names.\n */\n MetadataArgsStorage.prototype.filterByTargetAndWithoutDuplicateEmbeddedProperties = function (array, target) {\n var newArray = [];\n array.forEach(function (item) {\n var sameTarget = Array.isArray(target) ? target.indexOf(item.target) !== -1 : item.target === target;\n if (sameTarget) {\n var isDuplicateEmbeddedProperty = newArray.find(function (newItem) {\n return newItem.prefix === item.prefix && newItem.propertyName === item.propertyName;\n });\n if (!isDuplicateEmbeddedProperty)\n newArray.push(item);\n }\n });\n return newArray;\n };\n return MetadataArgsStorage;\n}());\n\n\n//# sourceMappingURL=MetadataArgsStorage.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata-args/MetadataArgsStorage.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js":
/*!***********************************************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js ***!
\***********************************************************************************************/
/*! exports provided: ClosureJunctionEntityMetadataBuilder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ClosureJunctionEntityMetadataBuilder\", function() { return ClosureJunctionEntityMetadataBuilder; });\n/* harmony import */ var _metadata_EntityMetadata__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../metadata/EntityMetadata */ \"./node_modules/typeorm/browser/metadata/EntityMetadata.js\");\n/* harmony import */ var _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../metadata/ColumnMetadata */ \"./node_modules/typeorm/browser/metadata/ColumnMetadata.js\");\n/* harmony import */ var _metadata_ForeignKeyMetadata__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../metadata/ForeignKeyMetadata */ \"./node_modules/typeorm/browser/metadata/ForeignKeyMetadata.js\");\n/* harmony import */ var _metadata_IndexMetadata__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../metadata/IndexMetadata */ \"./node_modules/typeorm/browser/metadata/IndexMetadata.js\");\n\n\n\n\n/**\n * Creates EntityMetadata for junction tables of the closure entities.\n * Closure junction tables are tables generated by closure entities.\n */\nvar ClosureJunctionEntityMetadataBuilder = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function ClosureJunctionEntityMetadataBuilder(connection) {\n this.connection = connection;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Builds EntityMetadata for the closure junction of the given closure entity.\n */\n ClosureJunctionEntityMetadataBuilder.prototype.build = function (parentClosureEntityMetadata) {\n var _this = this;\n // create entity metadata itself\n var entityMetadata = new _metadata_EntityMetadata__WEBPACK_IMPORTED_MODULE_0__[\"EntityMetadata\"]({\n parentClosureEntityMetadata: parentClosureEntityMetadata,\n connection: this.connection,\n args: {\n target: \"\",\n name: parentClosureEntityMetadata.treeOptions && parentClosureEntityMetadata.treeOptions.closureTableName ? parentClosureEntityMetadata.treeOptions.closureTableName : parentClosureEntityMetadata.tableNameWithoutPrefix,\n type: \"closure-junction\"\n }\n });\n entityMetadata.build();\n // create ancestor and descendant columns for new closure junction table\n parentClosureEntityMetadata.primaryColumns.forEach(function (primaryColumn) {\n entityMetadata.ownColumns.push(new _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_1__[\"ColumnMetadata\"]({\n connection: _this.connection,\n entityMetadata: entityMetadata,\n closureType: \"ancestor\",\n referencedColumn: primaryColumn,\n args: {\n target: \"\",\n mode: \"virtual\",\n propertyName: parentClosureEntityMetadata.treeOptions && parentClosureEntityMetadata.treeOptions.ancestorColumnName ? parentClosureEntityMetadata.treeOptions.ancestorColumnName(primaryColumn) : primaryColumn.propertyName + \"_ancestor\",\n options: {\n primary: true,\n length: primaryColumn.length,\n type: primaryColumn.type\n }\n }\n }));\n entityMetadata.ownColumns.push(new _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_1__[\"ColumnMetadata\"]({\n connection: _this.connection,\n entityMetadata: entityMetadata,\n closureType: \"descendant\",\n referencedColumn: primaryColumn,\n args: {\n target: \"\",\n mode: \"virtual\",\n propertyName: parentClosureEntityMetadata.treeOptions && parentClosureEntityMetadata.treeOptions.descendantColumnName ? parentClosureEntityMetadata.treeOptions.descendantColumnName(primaryColumn) : primaryColumn.propertyName + \"_descendant\",\n options: {\n primary: true,\n length: primaryColumn.length,\n type: primaryColumn.type,\n }\n }\n }));\n });\n entityMetadata.ownIndices = [\n new _metadata_IndexMetadata__WEBPACK_IMPORTED_MODULE_3__[\"IndexMetadata\"]({\n entityMetadata: entityMetadata,\n columns: [entityMetadata.ownColumns[0]],\n args: {\n target: entityMetadata.target,\n synchronize: true\n }\n }),\n new _metadata_IndexMetadata__WEBPACK_IMPORTED_MODULE_3__[\"IndexMetadata\"]({\n entityMetadata: entityMetadata,\n columns: [entityMetadata.ownColumns[1]],\n args: {\n target: entityMetadata.target,\n synchronize: true\n }\n })\n ];\n // if tree level column was defined by a closure entity then add it to the junction columns as well\n if (parentClosureEntityMetadata.treeLevelColumn) {\n entityMetadata.ownColumns.push(new _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_1__[\"ColumnMetadata\"]({\n connection: this.connection,\n entityMetadata: entityMetadata,\n args: {\n target: \"\",\n mode: \"virtual\",\n propertyName: \"level\",\n options: {\n type: this.connection.driver.mappedDataTypes.treeLevel,\n }\n }\n }));\n }\n // create junction table foreign keys\n entityMetadata.foreignKeys = [\n new _metadata_ForeignKeyMetadata__WEBPACK_IMPORTED_MODULE_2__[\"ForeignKeyMetadata\"]({\n entityMetadata: entityMetadata,\n referencedEntityMetadata: parentClosureEntityMetadata,\n columns: [entityMetadata.ownColumns[0]],\n referencedColumns: parentClosureEntityMetadata.primaryColumns,\n // onDelete: \"CASCADE\" // todo: does not work in mssql for some reason\n }),\n new _metadata_ForeignKeyMetadata__WEBPACK_IMPORTED_MODULE_2__[\"ForeignKeyMetadata\"]({\n entityMetadata: entityMetadata,\n referencedEntityMetadata: parentClosureEntityMetadata,\n columns: [entityMetadata.ownColumns[1]],\n referencedColumns: parentClosureEntityMetadata.primaryColumns,\n // onDelete: \"CASCADE\" // todo: does not work in mssql for some reason\n }),\n ];\n return entityMetadata;\n };\n return ClosureJunctionEntityMetadataBuilder;\n}());\n\n\n//# sourceMappingURL=ClosureJunctionEntityMetadataBuilder.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata-builder/EntityMetadataBuilder.js":
/*!********************************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata-builder/EntityMetadataBuilder.js ***!
\********************************************************************************/
/*! exports provided: EntityMetadataBuilder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EntityMetadataBuilder\", function() { return EntityMetadataBuilder; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../driver/cockroachdb/CockroachDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _metadata_EntityMetadata__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../metadata/EntityMetadata */ \"./node_modules/typeorm/browser/metadata/EntityMetadata.js\");\n/* harmony import */ var _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../metadata/ColumnMetadata */ \"./node_modules/typeorm/browser/metadata/ColumnMetadata.js\");\n/* harmony import */ var _metadata_IndexMetadata__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../metadata/IndexMetadata */ \"./node_modules/typeorm/browser/metadata/IndexMetadata.js\");\n/* harmony import */ var _metadata_RelationMetadata__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../metadata/RelationMetadata */ \"./node_modules/typeorm/browser/metadata/RelationMetadata.js\");\n/* harmony import */ var _metadata_EmbeddedMetadata__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../metadata/EmbeddedMetadata */ \"./node_modules/typeorm/browser/metadata/EmbeddedMetadata.js\");\n/* harmony import */ var _metadata_RelationIdMetadata__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../metadata/RelationIdMetadata */ \"./node_modules/typeorm/browser/metadata/RelationIdMetadata.js\");\n/* harmony import */ var _metadata_RelationCountMetadata__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../metadata/RelationCountMetadata */ \"./node_modules/typeorm/browser/metadata/RelationCountMetadata.js\");\n/* harmony import */ var _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../metadata/types/EventListenerTypes */ \"./node_modules/typeorm/browser/metadata/types/EventListenerTypes.js\");\n/* harmony import */ var _MetadataUtils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./MetadataUtils */ \"./node_modules/typeorm/browser/metadata-builder/MetadataUtils.js\");\n/* harmony import */ var _JunctionEntityMetadataBuilder__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./JunctionEntityMetadataBuilder */ \"./node_modules/typeorm/browser/metadata-builder/JunctionEntityMetadataBuilder.js\");\n/* harmony import */ var _ClosureJunctionEntityMetadataBuilder__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ClosureJunctionEntityMetadataBuilder */ \"./node_modules/typeorm/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js\");\n/* harmony import */ var _RelationJoinColumnBuilder__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./RelationJoinColumnBuilder */ \"./node_modules/typeorm/browser/metadata-builder/RelationJoinColumnBuilder.js\");\n/* harmony import */ var _metadata_EntityListenerMetadata__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../metadata/EntityListenerMetadata */ \"./node_modules/typeorm/browser/metadata/EntityListenerMetadata.js\");\n/* harmony import */ var _metadata_UniqueMetadata__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../metadata/UniqueMetadata */ \"./node_modules/typeorm/browser/metadata/UniqueMetadata.js\");\n/* harmony import */ var _metadata_CheckMetadata__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../metadata/CheckMetadata */ \"./node_modules/typeorm/browser/metadata/CheckMetadata.js\");\n/* harmony import */ var _metadata_ExclusionMetadata__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../metadata/ExclusionMetadata */ \"./node_modules/typeorm/browser/metadata/ExclusionMetadata.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Builds EntityMetadata objects and all its sub-metadatas.\n */\nvar EntityMetadataBuilder = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function EntityMetadataBuilder(connection, metadataArgsStorage) {\n this.connection = connection;\n this.metadataArgsStorage = metadataArgsStorage;\n this.junctionEntityMetadataBuilder = new _JunctionEntityMetadataBuilder__WEBPACK_IMPORTED_MODULE_11__[\"JunctionEntityMetadataBuilder\"](connection);\n this.closureJunctionEntityMetadataBuilder = new _ClosureJunctionEntityMetadataBuilder__WEBPACK_IMPORTED_MODULE_12__[\"ClosureJunctionEntityMetadataBuilder\"](connection);\n this.relationJoinColumnBuilder = new _RelationJoinColumnBuilder__WEBPACK_IMPORTED_MODULE_13__[\"RelationJoinColumnBuilder\"](connection);\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Builds a complete entity metadatas for the given entity classes.\n */\n EntityMetadataBuilder.prototype.build = function (entityClasses) {\n var _this = this;\n // if entity classes to filter entities by are given then do filtering, otherwise use all\n var allTables = entityClasses ? this.metadataArgsStorage.filterTables(entityClasses) : this.metadataArgsStorage.tables;\n // filter out table metadata args for those we really create entity metadatas and tables in the db\n var realTables = allTables.filter(function (table) { return table.type === \"regular\" || table.type === \"closure\" || table.type === \"entity-child\" || table.type === \"view\"; });\n // create entity metadatas for a user defined entities (marked with @Entity decorator or loaded from entity schemas)\n var entityMetadatas = realTables.map(function (tableArgs) { return _this.createEntityMetadata(tableArgs); });\n // compute parent entity metadatas for table inheritance\n entityMetadatas.forEach(function (entityMetadata) { return _this.computeParentEntityMetadata(entityMetadatas, entityMetadata); });\n // after all metadatas created we set child entity metadatas for table inheritance\n entityMetadatas.forEach(function (metadata) {\n metadata.childEntityMetadatas = entityMetadatas.filter(function (childMetadata) {\n return metadata.target instanceof Function\n && childMetadata.target instanceof Function\n && _MetadataUtils__WEBPACK_IMPORTED_MODULE_10__[\"MetadataUtils\"].isInherited(childMetadata.target, metadata.target);\n });\n });\n // build entity metadata (step0), first for non-single-table-inherited entity metadatas (dependant)\n entityMetadatas\n .filter(function (entityMetadata) { return entityMetadata.tableType !== \"entity-child\"; })\n .forEach(function (entityMetadata) { return entityMetadata.build(); });\n // build entity metadata (step0), now for single-table-inherited entity metadatas (dependant)\n entityMetadatas\n .filter(function (entityMetadata) { return entityMetadata.tableType === \"entity-child\"; })\n .forEach(function (entityMetadata) { return entityMetadata.build(); });\n // compute entity metadata columns, relations, etc. first for the regular, non-single-table-inherited entity metadatas\n entityMetadatas\n .filter(function (entityMetadata) { return entityMetadata.tableType !== \"entity-child\"; })\n .forEach(function (entityMetadata) { return _this.computeEntityMetadataStep1(entityMetadatas, entityMetadata); });\n // then do it for single table inheritance children (since they are depend on their parents to be built)\n entityMetadatas\n .filter(function (entityMetadata) { return entityMetadata.tableType === \"entity-child\"; })\n .forEach(function (entityMetadata) { return _this.computeEntityMetadataStep1(entityMetadatas, entityMetadata); });\n // calculate entity metadata computed properties and all its sub-metadatas\n entityMetadatas.forEach(function (entityMetadata) { return _this.computeEntityMetadataStep2(entityMetadata); });\n // calculate entity metadata's inverse properties\n entityMetadatas.forEach(function (entityMetadata) { return _this.computeInverseProperties(entityMetadata, entityMetadatas); });\n // go through all entity metadatas and create foreign keys / junction entity metadatas for their relations\n entityMetadatas\n .filter(function (entityMetadata) { return entityMetadata.tableType !== \"entity-child\"; })\n .forEach(function (entityMetadata) {\n // create entity's relations join columns (for many-to-one and one-to-one owner)\n entityMetadata.relations.filter(function (relation) { return relation.isOneToOne || relation.isManyToOne; }).forEach(function (relation) {\n var joinColumns = _this.metadataArgsStorage.filterJoinColumns(relation.target, relation.propertyName);\n 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\n if (foreignKey) {\n relation.registerForeignKeys(foreignKey); // push it to the relation and thus register there a join column\n entityMetadata.foreignKeys.push(foreignKey);\n }\n if (columns) {\n relation.registerJoinColumns(columns);\n }\n if (uniqueConstraint) {\n if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] || _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"]\n || _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"] || _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SapDriver\"]) {\n var index = new _metadata_IndexMetadata__WEBPACK_IMPORTED_MODULE_4__[\"IndexMetadata\"]({\n entityMetadata: uniqueConstraint.entityMetadata,\n columns: uniqueConstraint.columns,\n args: {\n target: uniqueConstraint.target,\n name: uniqueConstraint.name,\n unique: true,\n synchronize: true\n }\n });\n if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"]) {\n index.where = index.columns.map(function (column) {\n return _this.connection.driver.escape(column.databaseName) + \" IS NOT NULL\";\n }).join(\" AND \");\n }\n if (relation.embeddedMetadata) {\n relation.embeddedMetadata.indices.push(index);\n }\n else {\n relation.entityMetadata.ownIndices.push(index);\n }\n _this.computeEntityMetadataStep2(entityMetadata);\n }\n else {\n if (relation.embeddedMetadata) {\n relation.embeddedMetadata.uniques.push(uniqueConstraint);\n }\n else {\n relation.entityMetadata.ownUniques.push(uniqueConstraint);\n }\n _this.computeEntityMetadataStep2(entityMetadata);\n }\n }\n if (foreignKey && _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"CockroachDriver\"]) {\n var index = new _metadata_IndexMetadata__WEBPACK_IMPORTED_MODULE_4__[\"IndexMetadata\"]({\n entityMetadata: relation.entityMetadata,\n columns: foreignKey.columns,\n args: {\n target: relation.entityMetadata.target,\n synchronize: true\n }\n });\n if (relation.embeddedMetadata) {\n relation.embeddedMetadata.indices.push(index);\n }\n else {\n relation.entityMetadata.ownIndices.push(index);\n }\n _this.computeEntityMetadataStep2(entityMetadata);\n }\n });\n // create junction entity metadatas for entity many-to-many relations\n entityMetadata.relations.filter(function (relation) { return relation.isManyToMany; }).forEach(function (relation) {\n var joinTable = _this.metadataArgsStorage.findJoinTable(relation.target, relation.propertyName);\n if (!joinTable)\n return; // no join table set - no need to do anything (it means this is many-to-many inverse side)\n // here we create a junction entity metadata for a new junction table of many-to-many relation\n var junctionEntityMetadata = _this.junctionEntityMetadataBuilder.build(relation, joinTable);\n relation.registerForeignKeys.apply(relation, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(junctionEntityMetadata.foreignKeys)));\n relation.registerJoinColumns(junctionEntityMetadata.ownIndices[0].columns, junctionEntityMetadata.ownIndices[1].columns);\n relation.registerJunctionEntityMetadata(junctionEntityMetadata);\n // compute new entity metadata properties and push it to entity metadatas pool\n _this.computeEntityMetadataStep2(junctionEntityMetadata);\n _this.computeInverseProperties(junctionEntityMetadata, entityMetadatas);\n entityMetadatas.push(junctionEntityMetadata);\n });\n });\n // update entity metadata depend properties\n entityMetadatas\n .forEach(function (entityMetadata) {\n entityMetadata.relationsWithJoinColumns = entityMetadata.relations.filter(function (relation) { return relation.isWithJoinColumn; });\n entityMetadata.hasNonNullableRelations = entityMetadata.relationsWithJoinColumns.some(function (relation) { return !relation.isNullable || relation.isPrimary; });\n });\n // generate closure junction tables for all closure tables\n entityMetadatas\n .filter(function (metadata) { return metadata.treeType === \"closure-table\"; })\n .forEach(function (entityMetadata) {\n var closureJunctionEntityMetadata = _this.closureJunctionEntityMetadataBuilder.build(entityMetadata);\n entityMetadata.closureJunctionTable = closureJunctionEntityMetadata;\n _this.computeEntityMetadataStep2(closureJunctionEntityMetadata);\n _this.computeInverseProperties(closureJunctionEntityMetadata, entityMetadatas);\n entityMetadatas.push(closureJunctionEntityMetadata);\n });\n // generate keys for tables with single-table inheritance\n entityMetadatas\n .filter(function (metadata) { return metadata.inheritancePattern === \"STI\" && metadata.discriminatorColumn; })\n .forEach(function (entityMetadata) { return _this.createKeysForTableInheritance(entityMetadata); });\n // build all indices (need to do it after relations and their join columns are built)\n entityMetadatas.forEach(function (entityMetadata) {\n entityMetadata.indices.forEach(function (index) { return index.build(_this.connection.namingStrategy); });\n });\n // build all unique constraints (need to do it after relations and their join columns are built)\n entityMetadatas.forEach(function (entityMetadata) {\n entityMetadata.uniques.forEach(function (unique) { return unique.build(_this.connection.namingStrategy); });\n });\n // build all check constraints\n entityMetadatas.forEach(function (entityMetadata) {\n entityMetadata.checks.forEach(function (check) { return check.build(_this.connection.namingStrategy); });\n });\n // build all exclusion constraints\n entityMetadatas.forEach(function (entityMetadata) {\n entityMetadata.exclusions.forEach(function (exclusion) { return exclusion.build(_this.connection.namingStrategy); });\n });\n // add lazy initializer for entity relations\n entityMetadatas\n .filter(function (metadata) { return metadata.target instanceof Function; })\n .forEach(function (entityMetadata) {\n entityMetadata.relations\n .filter(function (relation) { return relation.isLazy; })\n .forEach(function (relation) {\n _this.connection.relationLoader.enableLazyLoad(relation, entityMetadata.target.prototype);\n });\n });\n entityMetadatas.forEach(function (entityMetadata) {\n entityMetadata.columns.forEach(function (column) {\n // const target = column.embeddedMetadata ? column.embeddedMetadata.type : column.target;\n var generated = _this.metadataArgsStorage.findGenerated(column.target, column.propertyName);\n if (generated) {\n column.isGenerated = true;\n column.generationStrategy = generated.strategy;\n if (generated.strategy === \"uuid\") {\n column.type = \"uuid\";\n }\n else if (generated.strategy === \"rowid\") {\n column.type = \"int\";\n }\n else {\n column.type = column.type || Number;\n }\n column.build(_this.connection);\n _this.computeEntityMetadataStep2(entityMetadata);\n }\n });\n });\n return entityMetadatas;\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Creates entity metadata from the given table args.\n * Creates column, relation, etc. metadatas for everything this entity metadata owns.\n */\n EntityMetadataBuilder.prototype.createEntityMetadata = function (tableArgs) {\n // we take all \"inheritance tree\" from a target entity to collect all stored metadata args\n // (by decorators or inside entity schemas). For example for target Post < ContentModel < Unit\n // it will be an array of [Post, ContentModel, Unit] and we can then get all metadata args of those classes\n var inheritanceTree = tableArgs.target instanceof Function\n ? _MetadataUtils__WEBPACK_IMPORTED_MODULE_10__[\"MetadataUtils\"].getInheritanceTree(tableArgs.target)\n : [tableArgs.target]; // todo: implement later here inheritance for string-targets\n var tableInheritance = this.metadataArgsStorage.findInheritanceType(tableArgs.target);\n var tableTree = this.metadataArgsStorage.findTree(tableArgs.target);\n // if single table inheritance used, we need to copy all children columns in to parent table\n var singleTableChildrenTargets;\n if ((tableInheritance && tableInheritance.pattern === \"STI\") || tableArgs.type === \"entity-child\") {\n singleTableChildrenTargets = this.metadataArgsStorage\n .filterSingleTableChildren(tableArgs.target)\n .map(function (args) { return args.target; })\n .filter(function (target) { return target instanceof Function; });\n inheritanceTree.push.apply(inheritanceTree, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(singleTableChildrenTargets)));\n }\n return new _metadata_EntityMetadata__WEBPACK_IMPORTED_MODULE_2__[\"EntityMetadata\"]({\n connection: this.connection,\n args: tableArgs,\n inheritanceTree: inheritanceTree,\n tableTree: tableTree,\n inheritancePattern: tableInheritance ? tableInheritance.pattern : undefined\n });\n };\n EntityMetadataBuilder.prototype.computeParentEntityMetadata = function (allEntityMetadatas, entityMetadata) {\n // after all metadatas created we set parent entity metadata for table inheritance\n if (entityMetadata.tableType === \"entity-child\") {\n entityMetadata.parentEntityMetadata = allEntityMetadatas.find(function (allEntityMetadata) {\n return allEntityMetadata.inheritanceTree.indexOf(entityMetadata.target) !== -1 && allEntityMetadata.inheritancePattern === \"STI\";\n });\n }\n };\n EntityMetadataBuilder.prototype.computeEntityMetadataStep1 = function (allEntityMetadatas, entityMetadata) {\n var _a, _b, _c;\n var _this = this;\n var entityInheritance = this.metadataArgsStorage.findInheritanceType(entityMetadata.target);\n var discriminatorValue = this.metadataArgsStorage.findDiscriminatorValue(entityMetadata.target);\n if (typeof discriminatorValue !== \"undefined\") {\n entityMetadata.discriminatorValue = discriminatorValue.value;\n }\n else {\n entityMetadata.discriminatorValue = entityMetadata.target.name;\n }\n // if single table inheritance is used, we need to mark all embedded columns as nullable\n entityMetadata.embeddeds = this.createEmbeddedsRecursively(entityMetadata, this.metadataArgsStorage.filterEmbeddeds(entityMetadata.inheritanceTree))\n .map(function (embedded) {\n if (entityMetadata.inheritancePattern === \"STI\") {\n embedded.columns = embedded.columns.map(function (column) {\n column.isNullable = true;\n return column;\n });\n }\n return embedded;\n });\n entityMetadata.ownColumns = this.metadataArgsStorage\n .filterColumns(entityMetadata.inheritanceTree)\n .map(function (args) {\n // for single table children we reuse columns created for their parents\n if (entityMetadata.tableType === \"entity-child\")\n return entityMetadata.parentEntityMetadata.ownColumns.find(function (column) { return column.propertyName === args.propertyName; });\n var column = new _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_3__[\"ColumnMetadata\"]({ connection: _this.connection, entityMetadata: entityMetadata, args: args });\n // if single table inheritance used, we need to mark all inherit table columns as nullable\n var columnInSingleTableInheritedChild = allEntityMetadatas.find(function (otherEntityMetadata) { return otherEntityMetadata.tableType === \"entity-child\" && otherEntityMetadata.target === args.target; });\n if (columnInSingleTableInheritedChild)\n column.isNullable = true;\n return column;\n });\n // for table inheritance we need to add a discriminator column\n //\n if (entityInheritance && entityInheritance.column) {\n var discriminatorColumnName_1 = entityInheritance.column && entityInheritance.column.name ? entityInheritance.column.name : \"type\";\n var discriminatorColumn = entityMetadata.ownColumns.find(function (column) { return column.propertyName === discriminatorColumnName_1; });\n if (!discriminatorColumn) {\n discriminatorColumn = new _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_3__[\"ColumnMetadata\"]({\n connection: this.connection,\n entityMetadata: entityMetadata,\n args: {\n target: entityMetadata.target,\n mode: \"virtual\",\n propertyName: discriminatorColumnName_1,\n options: entityInheritance.column || {\n name: discriminatorColumnName_1,\n type: \"varchar\",\n nullable: false\n }\n }\n });\n discriminatorColumn.isVirtual = true;\n discriminatorColumn.isDiscriminator = true;\n entityMetadata.ownColumns.push(discriminatorColumn);\n }\n else {\n discriminatorColumn.isDiscriminator = true;\n }\n }\n // add discriminator column to the child entity metadatas\n // discriminator column will not be there automatically since we are creating it in the code above\n if (entityMetadata.tableType === \"entity-child\") {\n var discriminatorColumn_1 = entityMetadata.parentEntityMetadata.ownColumns.find(function (column) { return column.isDiscriminator; });\n if (discriminatorColumn_1 && !entityMetadata.ownColumns.find(function (column) { return column === discriminatorColumn_1; })) {\n entityMetadata.ownColumns.push(discriminatorColumn_1);\n }\n }\n var namingStrategy = this.connection.namingStrategy;\n // check if tree is used then we need to add extra columns for specific tree types\n if (entityMetadata.treeType === \"materialized-path\") {\n entityMetadata.ownColumns.push(new _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_3__[\"ColumnMetadata\"]({\n connection: this.connection,\n entityMetadata: entityMetadata,\n materializedPath: true,\n args: {\n target: entityMetadata.target,\n mode: \"virtual\",\n propertyName: \"mpath\",\n options: /*tree.column || */ {\n name: namingStrategy.materializedPathColumnName,\n type: \"varchar\",\n nullable: true,\n default: \"\"\n }\n }\n }));\n }\n else if (entityMetadata.treeType === \"nested-set\") {\n var _d = namingStrategy.nestedSetColumnNames, left = _d.left, right = _d.right;\n entityMetadata.ownColumns.push(new _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_3__[\"ColumnMetadata\"]({\n connection: this.connection,\n entityMetadata: entityMetadata,\n nestedSetLeft: true,\n args: {\n target: entityMetadata.target,\n mode: \"virtual\",\n propertyName: left,\n options: /*tree.column || */ {\n name: left,\n type: \"integer\",\n nullable: false,\n default: 1\n }\n }\n }));\n entityMetadata.ownColumns.push(new _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_3__[\"ColumnMetadata\"]({\n connection: this.connection,\n entityMetadata: entityMetadata,\n nestedSetRight: true,\n args: {\n target: entityMetadata.target,\n mode: \"virtual\",\n propertyName: right,\n options: /*tree.column || */ {\n name: right,\n type: \"integer\",\n nullable: false,\n default: 2\n }\n }\n }));\n }\n entityMetadata.ownRelations = this.metadataArgsStorage.filterRelations(entityMetadata.inheritanceTree).map(function (args) {\n // for single table children we reuse relations created for their parents\n if (entityMetadata.tableType === \"entity-child\")\n return entityMetadata.parentEntityMetadata.ownRelations.find(function (relation) { return relation.propertyName === args.propertyName; });\n return new _metadata_RelationMetadata__WEBPACK_IMPORTED_MODULE_5__[\"RelationMetadata\"]({ entityMetadata: entityMetadata, args: args });\n });\n entityMetadata.relationIds = this.metadataArgsStorage.filterRelationIds(entityMetadata.inheritanceTree).map(function (args) {\n // for single table children we reuse relation ids created for their parents\n if (entityMetadata.tableType === \"entity-child\")\n return entityMetadata.parentEntityMetadata.relationIds.find(function (relationId) { return relationId.propertyName === args.propertyName; });\n return new _metadata_RelationIdMetadata__WEBPACK_IMPORTED_MODULE_7__[\"RelationIdMetadata\"]({ entityMetadata: entityMetadata, args: args });\n });\n entityMetadata.relationCounts = this.metadataArgsStorage.filterRelationCounts(entityMetadata.inheritanceTree).map(function (args) {\n // for single table children we reuse relation counts created for their parents\n if (entityMetadata.tableType === \"entity-child\")\n return entityMetadata.parentEntityMetadata.relationCounts.find(function (relationCount) { return relationCount.propertyName === args.propertyName; });\n return new _metadata_RelationCountMetadata__WEBPACK_IMPORTED_MODULE_8__[\"RelationCountMetadata\"]({ entityMetadata: entityMetadata, args: args });\n });\n entityMetadata.ownListeners = this.metadataArgsStorage.filterListeners(entityMetadata.inheritanceTree).map(function (args) {\n return new _metadata_EntityListenerMetadata__WEBPACK_IMPORTED_MODULE_14__[\"EntityListenerMetadata\"]({ entityMetadata: entityMetadata, args: args });\n });\n entityMetadata.checks = this.metadataArgsStorage.filterChecks(entityMetadata.inheritanceTree).map(function (args) {\n return new _metadata_CheckMetadata__WEBPACK_IMPORTED_MODULE_16__[\"CheckMetadata\"]({ entityMetadata: entityMetadata, args: args });\n });\n // Only PostgreSQL supports exclusion constraints.\n if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"]) {\n entityMetadata.exclusions = this.metadataArgsStorage.filterExclusions(entityMetadata.inheritanceTree).map(function (args) {\n return new _metadata_ExclusionMetadata__WEBPACK_IMPORTED_MODULE_17__[\"ExclusionMetadata\"]({ entityMetadata: entityMetadata, args: args });\n });\n }\n if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"CockroachDriver\"]) {\n entityMetadata.ownIndices = this.metadataArgsStorage.filterIndices(entityMetadata.inheritanceTree)\n .filter(function (args) { return !args.unique; })\n .map(function (args) {\n return new _metadata_IndexMetadata__WEBPACK_IMPORTED_MODULE_4__[\"IndexMetadata\"]({ entityMetadata: entityMetadata, args: args });\n });\n var uniques = this.metadataArgsStorage.filterIndices(entityMetadata.inheritanceTree)\n .filter(function (args) { return args.unique; })\n .map(function (args) {\n return new _metadata_UniqueMetadata__WEBPACK_IMPORTED_MODULE_15__[\"UniqueMetadata\"]({\n entityMetadata: entityMetadata,\n args: {\n target: args.target,\n name: args.name,\n columns: args.columns,\n }\n });\n });\n (_a = entityMetadata.ownUniques).push.apply(_a, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(uniques)));\n }\n else {\n entityMetadata.ownIndices = this.metadataArgsStorage.filterIndices(entityMetadata.inheritanceTree).map(function (args) {\n return new _metadata_IndexMetadata__WEBPACK_IMPORTED_MODULE_4__[\"IndexMetadata\"]({ entityMetadata: entityMetadata, args: args });\n });\n }\n // Mysql and SAP HANA stores unique constraints as unique indices.\n if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SapDriver\"]) {\n var indices = this.metadataArgsStorage.filterUniques(entityMetadata.inheritanceTree).map(function (args) {\n return new _metadata_IndexMetadata__WEBPACK_IMPORTED_MODULE_4__[\"IndexMetadata\"]({\n entityMetadata: entityMetadata,\n args: {\n target: args.target,\n name: args.name,\n columns: args.columns,\n unique: true,\n synchronize: true\n }\n });\n });\n (_b = entityMetadata.ownIndices).push.apply(_b, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(indices)));\n }\n else {\n var uniques = this.metadataArgsStorage.filterUniques(entityMetadata.inheritanceTree).map(function (args) {\n return new _metadata_UniqueMetadata__WEBPACK_IMPORTED_MODULE_15__[\"UniqueMetadata\"]({ entityMetadata: entityMetadata, args: args });\n });\n (_c = entityMetadata.ownUniques).push.apply(_c, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(uniques)));\n }\n };\n /**\n * Creates from the given embedded metadata args real embedded metadatas with its columns and relations,\n * and does the same for all its sub-embeddeds (goes recursively).\n */\n EntityMetadataBuilder.prototype.createEmbeddedsRecursively = function (entityMetadata, embeddedArgs) {\n var _this = this;\n return embeddedArgs.map(function (embeddedArgs) {\n var embeddedMetadata = new _metadata_EmbeddedMetadata__WEBPACK_IMPORTED_MODULE_6__[\"EmbeddedMetadata\"]({ entityMetadata: entityMetadata, args: embeddedArgs });\n var targets = _MetadataUtils__WEBPACK_IMPORTED_MODULE_10__[\"MetadataUtils\"].getInheritanceTree(embeddedMetadata.type);\n embeddedMetadata.columns = _this.metadataArgsStorage.filterColumns(targets).map(function (args) {\n return new _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_3__[\"ColumnMetadata\"]({ connection: _this.connection, entityMetadata: entityMetadata, embeddedMetadata: embeddedMetadata, args: args });\n });\n embeddedMetadata.relations = _this.metadataArgsStorage.filterRelations(targets).map(function (args) {\n return new _metadata_RelationMetadata__WEBPACK_IMPORTED_MODULE_5__[\"RelationMetadata\"]({ entityMetadata: entityMetadata, embeddedMetadata: embeddedMetadata, args: args });\n });\n embeddedMetadata.listeners = _this.metadataArgsStorage.filterListeners(targets).map(function (args) {\n return new _metadata_EntityListenerMetadata__WEBPACK_IMPORTED_MODULE_14__[\"EntityListenerMetadata\"]({ entityMetadata: entityMetadata, embeddedMetadata: embeddedMetadata, args: args });\n });\n embeddedMetadata.indices = _this.metadataArgsStorage.filterIndices(targets).map(function (args) {\n return new _metadata_IndexMetadata__WEBPACK_IMPORTED_MODULE_4__[\"IndexMetadata\"]({ entityMetadata: entityMetadata, embeddedMetadata: embeddedMetadata, args: args });\n });\n embeddedMetadata.uniques = _this.metadataArgsStorage.filterUniques(targets).map(function (args) {\n return new _metadata_UniqueMetadata__WEBPACK_IMPORTED_MODULE_15__[\"UniqueMetadata\"]({ entityMetadata: entityMetadata, embeddedMetadata: embeddedMetadata, args: args });\n });\n embeddedMetadata.relationIds = _this.metadataArgsStorage.filterRelationIds(targets).map(function (args) {\n return new _metadata_RelationIdMetadata__WEBPACK_IMPORTED_MODULE_7__[\"RelationIdMetadata\"]({ entityMetadata: entityMetadata, args: args });\n });\n embeddedMetadata.relationCounts = _this.metadataArgsStorage.filterRelationCounts(targets).map(function (args) {\n return new _metadata_RelationCountMetadata__WEBPACK_IMPORTED_MODULE_8__[\"RelationCountMetadata\"]({ entityMetadata: entityMetadata, args: args });\n });\n embeddedMetadata.embeddeds = _this.createEmbeddedsRecursively(entityMetadata, _this.metadataArgsStorage.filterEmbeddeds(targets));\n embeddedMetadata.embeddeds.forEach(function (subEmbedded) { return subEmbedded.parentEmbeddedMetadata = embeddedMetadata; });\n entityMetadata.allEmbeddeds.push(embeddedMetadata);\n return embeddedMetadata;\n });\n };\n /**\n * Computes all entity metadata's computed properties, and all its sub-metadatas (relations, columns, embeds, etc).\n */\n EntityMetadataBuilder.prototype.computeEntityMetadataStep2 = function (entityMetadata) {\n var _this = this;\n entityMetadata.embeddeds.forEach(function (embedded) { return embedded.build(_this.connection); });\n entityMetadata.embeddeds.forEach(function (embedded) {\n embedded.columnsFromTree.forEach(function (column) { return column.build(_this.connection); });\n embedded.relationsFromTree.forEach(function (relation) { return relation.build(); });\n });\n entityMetadata.ownColumns.forEach(function (column) { return column.build(_this.connection); });\n entityMetadata.ownRelations.forEach(function (relation) { return relation.build(); });\n entityMetadata.relations = entityMetadata.embeddeds.reduce(function (relations, embedded) { return relations.concat(embedded.relationsFromTree); }, entityMetadata.ownRelations);\n entityMetadata.eagerRelations = entityMetadata.relations.filter(function (relation) { return relation.isEager; });\n entityMetadata.lazyRelations = entityMetadata.relations.filter(function (relation) { return relation.isLazy; });\n entityMetadata.oneToOneRelations = entityMetadata.relations.filter(function (relation) { return relation.isOneToOne; });\n entityMetadata.oneToManyRelations = entityMetadata.relations.filter(function (relation) { return relation.isOneToMany; });\n entityMetadata.manyToOneRelations = entityMetadata.relations.filter(function (relation) { return relation.isManyToOne; });\n entityMetadata.manyToManyRelations = entityMetadata.relations.filter(function (relation) { return relation.isManyToMany; });\n entityMetadata.ownerOneToOneRelations = entityMetadata.relations.filter(function (relation) { return relation.isOneToOneOwner; });\n entityMetadata.ownerManyToManyRelations = entityMetadata.relations.filter(function (relation) { return relation.isManyToManyOwner; });\n entityMetadata.treeParentRelation = entityMetadata.relations.find(function (relation) { return relation.isTreeParent; });\n entityMetadata.treeChildrenRelation = entityMetadata.relations.find(function (relation) { return relation.isTreeChildren; });\n entityMetadata.columns = entityMetadata.embeddeds.reduce(function (columns, embedded) { return columns.concat(embedded.columnsFromTree); }, entityMetadata.ownColumns);\n entityMetadata.listeners = entityMetadata.embeddeds.reduce(function (columns, embedded) { return columns.concat(embedded.listenersFromTree); }, entityMetadata.ownListeners);\n entityMetadata.afterLoadListeners = entityMetadata.listeners.filter(function (listener) { return listener.type === _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_9__[\"EventListenerTypes\"].AFTER_LOAD; });\n entityMetadata.afterInsertListeners = entityMetadata.listeners.filter(function (listener) { return listener.type === _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_9__[\"EventListenerTypes\"].AFTER_INSERT; });\n entityMetadata.afterUpdateListeners = entityMetadata.listeners.filter(function (listener) { return listener.type === _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_9__[\"EventListenerTypes\"].AFTER_UPDATE; });\n entityMetadata.afterRemoveListeners = entityMetadata.listeners.filter(function (listener) { return listener.type === _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_9__[\"EventListenerTypes\"].AFTER_REMOVE; });\n entityMetadata.beforeInsertListeners = entityMetadata.listeners.filter(function (listener) { return listener.type === _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_9__[\"EventListenerTypes\"].BEFORE_INSERT; });\n entityMetadata.beforeUpdateListeners = entityMetadata.listeners.filter(function (listener) { return listener.type === _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_9__[\"EventListenerTypes\"].BEFORE_UPDATE; });\n entityMetadata.beforeRemoveListeners = entityMetadata.listeners.filter(function (listener) { return listener.type === _metadata_types_EventListenerTypes__WEBPACK_IMPORTED_MODULE_9__[\"EventListenerTypes\"].BEFORE_REMOVE; });\n entityMetadata.indices = entityMetadata.embeddeds.reduce(function (columns, embedded) { return columns.concat(embedded.indicesFromTree); }, entityMetadata.ownIndices);\n entityMetadata.uniques = entityMetadata.embeddeds.reduce(function (columns, embedded) { return columns.concat(embedded.uniquesFromTree); }, entityMetadata.ownUniques);\n entityMetadata.primaryColumns = entityMetadata.columns.filter(function (column) { return column.isPrimary; });\n entityMetadata.nonVirtualColumns = entityMetadata.columns.filter(function (column) { return !column.isVirtual; });\n entityMetadata.ancestorColumns = entityMetadata.columns.filter(function (column) { return column.closureType === \"ancestor\"; });\n entityMetadata.descendantColumns = entityMetadata.columns.filter(function (column) { return column.closureType === \"descendant\"; });\n entityMetadata.hasMultiplePrimaryKeys = entityMetadata.primaryColumns.length > 1;\n entityMetadata.generatedColumns = entityMetadata.columns.filter(function (column) { return column.isGenerated || column.isObjectId; });\n entityMetadata.hasUUIDGeneratedColumns = entityMetadata.columns.filter(function (column) { return column.isGenerated || column.generationStrategy === \"uuid\"; }).length > 0;\n entityMetadata.createDateColumn = entityMetadata.columns.find(function (column) { return column.isCreateDate; });\n entityMetadata.updateDateColumn = entityMetadata.columns.find(function (column) { return column.isUpdateDate; });\n entityMetadata.deleteDateColumn = entityMetadata.columns.find(function (column) { return column.isDeleteDate; });\n entityMetadata.versionColumn = entityMetadata.columns.find(function (column) { return column.isVersion; });\n entityMetadata.discriminatorColumn = entityMetadata.columns.find(function (column) { return column.isDiscriminator; });\n entityMetadata.treeLevelColumn = entityMetadata.columns.find(function (column) { return column.isTreeLevel; });\n entityMetadata.nestedSetLeftColumn = entityMetadata.columns.find(function (column) { return column.isNestedSetLeft; });\n entityMetadata.nestedSetRightColumn = entityMetadata.columns.find(function (column) { return column.isNestedSetRight; });\n entityMetadata.materializedPathColumn = entityMetadata.columns.find(function (column) { return column.isMaterializedPath; });\n entityMetadata.objectIdColumn = entityMetadata.columns.find(function (column) { return column.isObjectId; });\n entityMetadata.foreignKeys.forEach(function (foreignKey) { return foreignKey.build(_this.connection.namingStrategy); });\n entityMetadata.propertiesMap = entityMetadata.createPropertiesMap();\n entityMetadata.relationIds.forEach(function (relationId) { return relationId.build(); });\n entityMetadata.relationCounts.forEach(function (relationCount) { return relationCount.build(); });\n entityMetadata.embeddeds.forEach(function (embedded) {\n embedded.relationIdsFromTree.forEach(function (relationId) { return relationId.build(); });\n embedded.relationCountsFromTree.forEach(function (relationCount) { return relationCount.build(); });\n });\n };\n /**\n * Computes entity metadata's relations inverse side properties.\n */\n EntityMetadataBuilder.prototype.computeInverseProperties = function (entityMetadata, entityMetadatas) {\n entityMetadata.relations.forEach(function (relation) {\n // compute inverse side (related) entity metadatas for all relation metadatas\n var inverseEntityMetadata = entityMetadatas.find(function (m) { return m.target === relation.type || (typeof relation.type === \"string\" && (m.targetName === relation.type || m.givenTableName === relation.type)); });\n if (!inverseEntityMetadata)\n 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.\");\n relation.inverseEntityMetadata = inverseEntityMetadata;\n relation.inverseSidePropertyPath = relation.buildInverseSidePropertyPath();\n // and compute inverse relation and mark if it has such\n relation.inverseRelation = inverseEntityMetadata.relations.find(function (foundRelation) { return foundRelation.propertyPath === relation.inverseSidePropertyPath; });\n });\n };\n /**\n * Creates indices for the table of single table inheritance.\n */\n EntityMetadataBuilder.prototype.createKeysForTableInheritance = function (entityMetadata) {\n entityMetadata.indices.push(new _metadata_IndexMetadata__WEBPACK_IMPORTED_MODULE_4__[\"IndexMetadata\"]({\n entityMetadata: entityMetadata,\n columns: [entityMetadata.discriminatorColumn],\n args: {\n target: entityMetadata.target,\n unique: false\n }\n }));\n };\n return EntityMetadataBuilder;\n}());\n\n\n//# sourceMappingURL=EntityMetadataBuilder.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata-builder/EntityMetadataBuilder.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata-builder/EntityMetadataValidator.js":
/*!**********************************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata-builder/EntityMetadataValidator.js ***!
\**********************************************************************************/
/*! exports provided: EntityMetadataValidator */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EntityMetadataValidator\", function() { return EntityMetadataValidator; });\n/* harmony import */ var _error_MissingPrimaryColumnError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../error/MissingPrimaryColumnError */ \"./node_modules/typeorm/browser/error/MissingPrimaryColumnError.js\");\n/* harmony import */ var _error_CircularRelationsError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../error/CircularRelationsError */ \"./node_modules/typeorm/browser/error/CircularRelationsError.js\");\n/* harmony import */ var _util_DepGraph__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/DepGraph */ \"./node_modules/typeorm/browser/util/DepGraph.js\");\n/* harmony import */ var _error_DataTypeNotSupportedError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../error/DataTypeNotSupportedError */ \"./node_modules/typeorm/browser/error/DataTypeNotSupportedError.js\");\n/* harmony import */ var _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../driver/mongodb/MongoDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _error_NoConnectionOptionError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../error/NoConnectionOptionError */ \"./node_modules/typeorm/browser/error/NoConnectionOptionError.js\");\n/* harmony import */ var _error_InitializedRelationError__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../error/InitializedRelationError */ \"./node_modules/typeorm/browser/error/InitializedRelationError.js\");\n\n\n\n\n\n\n\n\n\n\n/// todo: add check if there are multiple tables with the same name\n/// todo: add checks when generated column / table names are too long for the specific driver\n// todo: type in function validation, inverse side function validation\n// todo: check on build for duplicate names, since naming checking was removed from MetadataStorage\n// todo: duplicate name checking for: table, relation, column, index, naming strategy, join tables/columns?\n// todo: check if multiple tree parent metadatas in validator\n// todo: tree decorators can be used only on closure table (validation)\n// todo: throw error if parent tree metadata was not specified in a closure table\n// todo: MetadataArgsStorage: type in function validation, inverse side function validation\n// todo: MetadataArgsStorage: check on build for duplicate names, since naming checking was removed from MetadataStorage\n// todo: MetadataArgsStorage: duplicate name checking for: table, relation, column, index, naming strategy, join tables/columns?\n// todo: MetadataArgsStorage: check for duplicate targets too since this check has been removed too\n// todo: check if relation decorator contains primary: true and nullable: true\n// todo: check column length, precision. scale\n// todo: MySQL index can be unique or spatial or fulltext\n/**\n * Validates built entity metadatas.\n */\nvar EntityMetadataValidator = /** @class */ (function () {\n function EntityMetadataValidator() {\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Validates all given entity metadatas.\n */\n EntityMetadataValidator.prototype.validateMany = function (entityMetadatas, driver) {\n var _this = this;\n entityMetadatas.forEach(function (entityMetadata) { return _this.validate(entityMetadata, entityMetadatas, driver); });\n this.validateDependencies(entityMetadatas);\n this.validateEagerRelations(entityMetadatas);\n };\n /**\n * Validates given entity metadata.\n */\n EntityMetadataValidator.prototype.validate = function (entityMetadata, allEntityMetadatas, driver) {\n // check if table metadata has an id\n if (!entityMetadata.primaryColumns.length && !entityMetadata.isJunction)\n throw new _error_MissingPrimaryColumnError__WEBPACK_IMPORTED_MODULE_0__[\"MissingPrimaryColumnError\"](entityMetadata);\n // validate if table is using inheritance it has a discriminator\n // also validate if discriminator values are not empty and not repeated\n if (entityMetadata.inheritancePattern === \"STI\" || entityMetadata.tableType === \"entity-child\") {\n if (!entityMetadata.discriminatorColumn)\n 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?\");\n if (typeof entityMetadata.discriminatorValue === \"undefined\")\n throw new Error(\"Entity \" + entityMetadata.name + \" has an undefined discriminator value. Discriminator value should be defined.\");\n var sameDiscriminatorValueEntityMetadata = allEntityMetadatas.find(function (metadata) {\n return metadata !== entityMetadata\n && (metadata.inheritancePattern === \"STI\" || metadata.tableType === \"entity-child\")\n && metadata.discriminatorValue === entityMetadata.discriminatorValue\n && metadata.inheritanceTree.some(function (parent) { return entityMetadata.inheritanceTree.indexOf(parent) !== -1; });\n });\n if (sameDiscriminatorValueEntityMetadata)\n throw new Error(\"Entities \" + entityMetadata.name + \" and \" + sameDiscriminatorValueEntityMetadata.name + \" have the same discriminator values. Make sure they are different while using the @ChildEntity decorator.\");\n }\n entityMetadata.relationCounts.forEach(function (relationCount) {\n if (relationCount.relation.isManyToOne || relationCount.relation.isOneToOne)\n throw new Error(\"Relation count can not be implemented on ManyToOne or OneToOne relations.\");\n });\n if (!(driver instanceof _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_4__[\"MongoDriver\"])) {\n entityMetadata.columns.forEach(function (column) {\n var normalizedColumn = driver.normalizeType(column);\n if (driver.supportedDataTypes.indexOf(normalizedColumn) === -1)\n throw new _error_DataTypeNotSupportedError__WEBPACK_IMPORTED_MODULE_3__[\"DataTypeNotSupportedError\"](column, normalizedColumn, driver.options.type);\n if (column.length && driver.withLengthColumnTypes.indexOf(normalizedColumn) === -1)\n throw new Error(\"Column \" + column.propertyName + \" of Entity \" + entityMetadata.name + \" does not support length property.\");\n if (column.type === \"enum\" && !column.enum && !column.enumName)\n throw new Error(\"Column \\\"\" + column.propertyName + \"\\\" of Entity \\\"\" + entityMetadata.name + \"\\\" is defined as enum, but missing \\\"enum\\\" or \\\"enumName\\\" properties.\");\n });\n }\n if (driver instanceof _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_4__[\"MysqlDriver\"] || driver instanceof _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_4__[\"AuroraDataApiDriver\"]) {\n var generatedColumns = entityMetadata.columns.filter(function (column) { return column.isGenerated && column.generationStrategy !== \"uuid\"; });\n if (generatedColumns.length > 1)\n throw new Error(\"Error in \" + entityMetadata.name + \" entity. There can be only one auto-increment column in MySql table.\");\n }\n // for mysql we are able to not define a default selected database, instead all entities can have their database\n // defined in their decorators. To make everything work either all entities must have database define and we\n // can live without database set in the connection options, either database in the connection options must be set\n if (driver instanceof _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_4__[\"MysqlDriver\"]) {\n var metadatasWithDatabase = allEntityMetadatas.filter(function (metadata) { return metadata.database; });\n if (metadatasWithDatabase.length === 0 && !driver.database)\n throw new _error_NoConnectionOptionError__WEBPACK_IMPORTED_MODULE_5__[\"NoConnectionOptionError\"](\"database\");\n }\n if (driver instanceof _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_4__[\"SqlServerDriver\"]) {\n var charsetColumns = entityMetadata.columns.filter(function (column) { return column.charset; });\n if (charsetColumns.length > 1)\n throw new Error(\"Character set specifying is not supported in Sql Server\");\n }\n // check if relations are all without initialized properties\n var entityInstance = entityMetadata.create();\n entityMetadata.relations.forEach(function (relation) {\n if (relation.isManyToMany || relation.isOneToMany) {\n // we skip relations for which persistence is disabled since initialization in them cannot harm somehow\n if (relation.persistenceEnabled === false)\n return;\n // get entity relation value and check if its an array\n var relationInitializedValue = relation.getEntityValue(entityInstance);\n if (Array.isArray(relationInitializedValue))\n throw new _error_InitializedRelationError__WEBPACK_IMPORTED_MODULE_6__[\"InitializedRelationError\"](relation);\n }\n });\n // validate relations\n entityMetadata.relations.forEach(function (relation) {\n // check join tables:\n // using JoinTable is possible only on one side of the many-to-many relation\n // todo(dima): fix\n // if (relation.joinTable) {\n // if (!relation.isManyToMany)\n // throw new UsingJoinTableIsNotAllowedError(entityMetadata, relation);\n // // if there is inverse side of the relation, then check if it does not have join table too\n // if (relation.hasInverseSide && relation.inverseRelation.joinTable)\n // throw new UsingJoinTableOnlyOnOneSideAllowedError(entityMetadata, relation);\n // }\n // check join columns:\n // using JoinColumn is possible only on one side of the relation and on one-to-one, many-to-one relation types\n // first check if relation is one-to-one or many-to-one\n // todo(dima): fix\n /*if (relation.joinColumn) {\n\n // join column can be applied only on one-to-one and many-to-one relations\n if (!relation.isOneToOne && !relation.isManyToOne)\n throw new UsingJoinColumnIsNotAllowedError(entityMetadata, relation);\n\n // if there is inverse side of the relation, then check if it does not have join table too\n if (relation.hasInverseSide && relation.inverseRelation.joinColumn && relation.isOneToOne)\n throw new UsingJoinColumnOnlyOnOneSideAllowedError(entityMetadata, relation);\n\n // check if join column really has referenced column\n if (relation.joinColumn && !relation.joinColumn.referencedColumn)\n throw new Error(`Join column does not have referenced column set`);\n\n }\n\n // if its a one-to-one relation and JoinColumn is missing on both sides of the relation\n // or its one-side relation without JoinColumn we should give an error\n if (!relation.joinColumn && relation.isOneToOne && (!relation.hasInverseSide || !relation.inverseRelation.joinColumn))\n throw new MissingJoinColumnError(entityMetadata, relation);*/\n // if its a many-to-many relation and JoinTable is missing on both sides of the relation\n // or its one-side relation without JoinTable we should give an error\n // todo(dima): fix it\n // if (!relation.joinTable && relation.isManyToMany && (!relation.hasInverseSide || !relation.inverseRelation.joinTable))\n // throw new MissingJoinTableError(entityMetadata, relation);\n // todo: validate if its one-to-one and side which does not have join column MUST have inverse side\n // todo: validate if its many-to-many and side which does not have join table MUST have inverse side\n // todo: if there is a relation, and inverse side is specified only on one side, shall we give error\n // todo: with message like: \"Inverse side is specified only on one side of the relationship. Specify on other side too to prevent confusion\".\n // 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)\n // todo: check if there are multiple columns on the same column applied.\n // todo: check column type if is missing in relational databases (throw new Error(`Column type of ${type} cannot be determined.`);)\n // todo: include driver-specific checks. for example in mongodb empty prefixes are not allowed\n // todo: if multiple columns with same name - throw exception, including cases when columns are in embeds with same prefixes or without prefix at all\n // todo: if multiple primary key used, at least one of them must be unique or @Index decorator must be set on entity\n // todo: check if entity with duplicate names, some decorators exist\n });\n // make sure cascade remove is not set for both sides of relationships (can be set in OneToOne decorators)\n entityMetadata.relations.forEach(function (relation) {\n var isCircularCascadeRemove = relation.isCascadeRemove && relation.inverseRelation && relation.inverseRelation.isCascadeRemove;\n if (isCircularCascadeRemove)\n throw new Error(\"Relation \" + entityMetadata.name + \"#\" + relation.propertyName + \" and \" + relation.inverseRelation.entityMetadata.name + \"#\" + relation.inverseRelation.propertyName + \" both has cascade remove set. \" +\n \"This may lead to unexpected circular removals. Please set cascade remove only from one side of relationship.\");\n }); // todo: maybe better just deny removal from one to one relation without join column?\n entityMetadata.eagerRelations.forEach(function (relation) {\n });\n };\n /**\n * Validates dependencies of the entity metadatas.\n */\n EntityMetadataValidator.prototype.validateDependencies = function (entityMetadatas) {\n var graph = new _util_DepGraph__WEBPACK_IMPORTED_MODULE_2__[\"DepGraph\"]();\n entityMetadatas.forEach(function (entityMetadata) {\n graph.addNode(entityMetadata.name);\n });\n entityMetadatas.forEach(function (entityMetadata) {\n entityMetadata.relationsWithJoinColumns\n .filter(function (relation) { return !relation.isNullable; })\n .forEach(function (relation) {\n graph.addDependency(entityMetadata.name, relation.inverseEntityMetadata.name);\n });\n });\n try {\n graph.overallOrder();\n }\n catch (err) {\n throw new _error_CircularRelationsError__WEBPACK_IMPORTED_MODULE_1__[\"CircularRelationsError\"](err.toString().replace(\"Error: Dependency Cycle Found: \", \"\"));\n }\n };\n /**\n * Validates eager relations to prevent circular dependency in them.\n */\n EntityMetadataValidator.prototype.validateEagerRelations = function (entityMetadatas) {\n entityMetadatas.forEach(function (entityMetadata) {\n entityMetadata.eagerRelations.forEach(function (relation) {\n if (relation.inverseRelation && relation.inverseRelation.isEager)\n throw new Error(\"Circular eager relations are disallowed. \" +\n (entityMetadata.targetName + \"#\" + relation.propertyPath + \" contains \\\"eager: true\\\", and its inverse side \") +\n (relation.inverseEntityMetadata.targetName + \"#\" + relation.inverseRelation.propertyPath + \" contains \\\"eager: true\\\" as well.\") +\n \" Remove \\\"eager: true\\\" from one side of the relation.\");\n });\n });\n };\n return EntityMetadataValidator;\n}());\n\n\n//# sourceMappingURL=EntityMetadataValidator.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata-builder/EntityMetadataValidator.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata-builder/JunctionEntityMetadataBuilder.js":
/*!****************************************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata-builder/JunctionEntityMetadataBuilder.js ***!
\****************************************************************************************/
/*! exports provided: JunctionEntityMetadataBuilder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"JunctionEntityMetadataBuilder\", function() { return JunctionEntityMetadataBuilder; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _driver_mysql_MysqlDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../driver/mysql/MysqlDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../metadata/ColumnMetadata */ \"./node_modules/typeorm/browser/metadata/ColumnMetadata.js\");\n/* harmony import */ var _metadata_EntityMetadata__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../metadata/EntityMetadata */ \"./node_modules/typeorm/browser/metadata/EntityMetadata.js\");\n/* harmony import */ var _metadata_ForeignKeyMetadata__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../metadata/ForeignKeyMetadata */ \"./node_modules/typeorm/browser/metadata/ForeignKeyMetadata.js\");\n/* harmony import */ var _metadata_IndexMetadata__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../metadata/IndexMetadata */ \"./node_modules/typeorm/browser/metadata/IndexMetadata.js\");\n\n\n\n\n\n\n\n/**\n * Creates EntityMetadata for junction tables.\n * Junction tables are tables generated by many-to-many relations.\n */\nvar JunctionEntityMetadataBuilder = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function JunctionEntityMetadataBuilder(connection) {\n this.connection = connection;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Builds EntityMetadata for the junction of the given many-to-many relation.\n */\n JunctionEntityMetadataBuilder.prototype.build = function (relation, joinTable) {\n var _this = this;\n var referencedColumns = this.collectReferencedColumns(relation, joinTable);\n var inverseReferencedColumns = this.collectInverseReferencedColumns(relation, joinTable);\n var joinTableName = joinTable.name || this.connection.namingStrategy.joinTableName(relation.entityMetadata.tableNameWithoutPrefix, relation.inverseEntityMetadata.tableNameWithoutPrefix, relation.propertyPath, relation.inverseRelation ? relation.inverseRelation.propertyName : \"\");\n var entityMetadata = new _metadata_EntityMetadata__WEBPACK_IMPORTED_MODULE_3__[\"EntityMetadata\"]({\n connection: this.connection,\n args: {\n target: \"\",\n name: joinTableName,\n type: \"junction\",\n database: joinTable.database || relation.entityMetadata.database,\n schema: joinTable.schema || relation.entityMetadata.schema,\n }\n });\n entityMetadata.build();\n // create original side junction columns\n var junctionColumns = referencedColumns.map(function (referencedColumn) {\n var joinColumn = joinTable.joinColumns ? joinTable.joinColumns.find(function (joinColumnArgs) {\n return (!joinColumnArgs.referencedColumnName || joinColumnArgs.referencedColumnName === referencedColumn.propertyName) &&\n !!joinColumnArgs.name;\n }) : undefined;\n var columnName = joinColumn && joinColumn.name ? joinColumn.name\n : _this.connection.namingStrategy.joinTableColumnName(relation.entityMetadata.tableNameWithoutPrefix, referencedColumn.propertyName, referencedColumn.databaseName);\n return new _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_2__[\"ColumnMetadata\"]({\n connection: _this.connection,\n entityMetadata: entityMetadata,\n referencedColumn: referencedColumn,\n args: {\n target: \"\",\n mode: \"virtual\",\n propertyName: columnName,\n options: {\n name: columnName,\n length: !referencedColumn.length\n && (_this.connection.driver instanceof _driver_mysql_MysqlDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] || _this.connection.driver instanceof _driver_mysql_MysqlDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"])\n && (referencedColumn.generationStrategy === \"uuid\" || referencedColumn.type === \"uuid\")\n ? \"36\"\n : referencedColumn.length,\n width: referencedColumn.width,\n type: referencedColumn.type,\n precision: referencedColumn.precision,\n scale: referencedColumn.scale,\n charset: referencedColumn.charset,\n collation: referencedColumn.collation,\n zerofill: referencedColumn.zerofill,\n unsigned: referencedColumn.zerofill ? true : referencedColumn.unsigned,\n enum: referencedColumn.enum,\n enumName: referencedColumn.enumName,\n nullable: false,\n primary: true,\n }\n }\n });\n });\n // create inverse side junction columns\n var inverseJunctionColumns = inverseReferencedColumns.map(function (inverseReferencedColumn) {\n var joinColumn = joinTable.inverseJoinColumns ? joinTable.inverseJoinColumns.find(function (joinColumnArgs) {\n return (!joinColumnArgs.referencedColumnName || joinColumnArgs.referencedColumnName === inverseReferencedColumn.propertyName) &&\n !!joinColumnArgs.name;\n }) : undefined;\n var columnName = joinColumn && joinColumn.name ? joinColumn.name\n : _this.connection.namingStrategy.joinTableInverseColumnName(relation.inverseEntityMetadata.tableNameWithoutPrefix, inverseReferencedColumn.propertyName, inverseReferencedColumn.databaseName);\n return new _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_2__[\"ColumnMetadata\"]({\n connection: _this.connection,\n entityMetadata: entityMetadata,\n referencedColumn: inverseReferencedColumn,\n args: {\n target: \"\",\n mode: \"virtual\",\n propertyName: columnName,\n options: {\n length: !inverseReferencedColumn.length\n && (_this.connection.driver instanceof _driver_mysql_MysqlDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] || _this.connection.driver instanceof _driver_mysql_MysqlDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"])\n && (inverseReferencedColumn.generationStrategy === \"uuid\" || inverseReferencedColumn.type === \"uuid\")\n ? \"36\"\n : inverseReferencedColumn.length,\n width: inverseReferencedColumn.width,\n type: inverseReferencedColumn.type,\n precision: inverseReferencedColumn.precision,\n scale: inverseReferencedColumn.scale,\n charset: inverseReferencedColumn.charset,\n collation: inverseReferencedColumn.collation,\n zerofill: inverseReferencedColumn.zerofill,\n unsigned: inverseReferencedColumn.zerofill ? true : inverseReferencedColumn.unsigned,\n enum: inverseReferencedColumn.enum,\n enumName: inverseReferencedColumn.enumName,\n name: columnName,\n nullable: false,\n primary: true,\n }\n }\n });\n });\n this.changeDuplicatedColumnNames(junctionColumns, inverseJunctionColumns);\n // set junction table columns\n entityMetadata.ownerColumns = junctionColumns;\n entityMetadata.inverseColumns = inverseJunctionColumns;\n entityMetadata.ownColumns = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(junctionColumns)), Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(inverseJunctionColumns));\n entityMetadata.ownColumns.forEach(function (column) { return column.relationMetadata = relation; });\n // create junction table foreign keys\n entityMetadata.foreignKeys = relation.createForeignKeyConstraints ? [\n new _metadata_ForeignKeyMetadata__WEBPACK_IMPORTED_MODULE_4__[\"ForeignKeyMetadata\"]({\n entityMetadata: entityMetadata,\n referencedEntityMetadata: relation.entityMetadata,\n columns: junctionColumns,\n referencedColumns: referencedColumns,\n onDelete: relation.onDelete || \"CASCADE\"\n }),\n new _metadata_ForeignKeyMetadata__WEBPACK_IMPORTED_MODULE_4__[\"ForeignKeyMetadata\"]({\n entityMetadata: entityMetadata,\n referencedEntityMetadata: relation.inverseEntityMetadata,\n columns: inverseJunctionColumns,\n referencedColumns: inverseReferencedColumns,\n onDelete: relation.onDelete || \"CASCADE\"\n }),\n ] : [];\n // create junction table indices\n entityMetadata.ownIndices = [\n new _metadata_IndexMetadata__WEBPACK_IMPORTED_MODULE_5__[\"IndexMetadata\"]({\n entityMetadata: entityMetadata,\n columns: junctionColumns,\n args: {\n target: entityMetadata.target,\n synchronize: true\n }\n }),\n new _metadata_IndexMetadata__WEBPACK_IMPORTED_MODULE_5__[\"IndexMetadata\"]({\n entityMetadata: entityMetadata,\n columns: inverseJunctionColumns,\n args: {\n target: entityMetadata.target,\n synchronize: true\n }\n })\n ];\n // finally return entity metadata\n return entityMetadata;\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Collects referenced columns from the given join column args.\n */\n JunctionEntityMetadataBuilder.prototype.collectReferencedColumns = function (relation, joinTable) {\n var hasAnyReferencedColumnName = joinTable.joinColumns ? joinTable.joinColumns.find(function (joinColumn) { return !!joinColumn.referencedColumnName; }) : false;\n if (!joinTable.joinColumns || (joinTable.joinColumns && !hasAnyReferencedColumnName)) {\n return relation.entityMetadata.columns.filter(function (column) { return column.isPrimary; });\n }\n else {\n return joinTable.joinColumns.map(function (joinColumn) {\n var referencedColumn = relation.entityMetadata.columns.find(function (column) { return column.propertyName === joinColumn.referencedColumnName; });\n if (!referencedColumn)\n throw new Error(\"Referenced column \" + joinColumn.referencedColumnName + \" was not found in entity \" + relation.entityMetadata.name);\n return referencedColumn;\n });\n }\n };\n /**\n * Collects inverse referenced columns from the given join column args.\n */\n JunctionEntityMetadataBuilder.prototype.collectInverseReferencedColumns = function (relation, joinTable) {\n var hasInverseJoinColumns = !!joinTable.inverseJoinColumns;\n var hasAnyInverseReferencedColumnName = hasInverseJoinColumns ? joinTable.inverseJoinColumns.find(function (joinColumn) { return !!joinColumn.referencedColumnName; }) : false;\n if (!hasInverseJoinColumns || (hasInverseJoinColumns && !hasAnyInverseReferencedColumnName)) {\n return relation.inverseEntityMetadata.primaryColumns;\n }\n else {\n return joinTable.inverseJoinColumns.map(function (joinColumn) {\n var referencedColumn = relation.inverseEntityMetadata.ownColumns.find(function (column) { return column.propertyName === joinColumn.referencedColumnName; });\n if (!referencedColumn)\n throw new Error(\"Referenced column \" + joinColumn.referencedColumnName + \" was not found in entity \" + relation.inverseEntityMetadata.name);\n return referencedColumn;\n });\n }\n };\n JunctionEntityMetadataBuilder.prototype.changeDuplicatedColumnNames = function (junctionColumns, inverseJunctionColumns) {\n var _this = this;\n junctionColumns.forEach(function (junctionColumn) {\n inverseJunctionColumns.forEach(function (inverseJunctionColumn) {\n if (junctionColumn.givenDatabaseName === inverseJunctionColumn.givenDatabaseName) {\n var junctionColumnName = _this.connection.namingStrategy.joinTableColumnDuplicationPrefix(junctionColumn.propertyName, 1);\n junctionColumn.propertyName = junctionColumnName;\n junctionColumn.givenDatabaseName = junctionColumnName;\n var inverseJunctionColumnName = _this.connection.namingStrategy.joinTableColumnDuplicationPrefix(inverseJunctionColumn.propertyName, 2);\n inverseJunctionColumn.propertyName = inverseJunctionColumnName;\n inverseJunctionColumn.givenDatabaseName = inverseJunctionColumnName;\n }\n });\n });\n };\n return JunctionEntityMetadataBuilder;\n}());\n\n\n//# sourceMappingURL=JunctionEntityMetadataBuilder.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata-builder/JunctionEntityMetadataBuilder.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata-builder/MetadataUtils.js":
/*!************************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata-builder/MetadataUtils.js ***!
\************************************************************************/
/*! exports provided: MetadataUtils */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MetadataUtils\", function() { return MetadataUtils; });\n/**\n * Metadata args utility functions.\n */\nvar MetadataUtils = /** @class */ (function () {\n function MetadataUtils() {\n }\n /**\n * Gets given's entity all inherited classes.\n * Gives in order from parents to children.\n * For example Post extends ContentModel which extends Unit it will give\n * [Unit, ContentModel, Post]\n */\n MetadataUtils.getInheritanceTree = function (entity) {\n var tree = [entity];\n var getPrototypeOf = function (object) {\n var proto = Object.getPrototypeOf(object);\n if (proto && proto.name) {\n tree.push(proto);\n getPrototypeOf(proto);\n }\n };\n getPrototypeOf(entity);\n return tree;\n };\n /**\n * Checks if this table is inherited from another table.\n */\n MetadataUtils.isInherited = function (target1, target2) {\n return target1.prototype instanceof target2;\n };\n /**\n * Filters given array of targets by a given classes.\n * If classes are not given, then it returns array itself.\n */\n MetadataUtils.filterByTarget = function (array, classes) {\n if (!classes)\n return array;\n return array.filter(function (item) { return item.target && classes.indexOf(item.target) !== -1; });\n };\n return MetadataUtils;\n}());\n\n\n//# sourceMappingURL=MetadataUtils.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata-builder/MetadataUtils.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata-builder/RelationJoinColumnBuilder.js":
/*!************************************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata-builder/RelationJoinColumnBuilder.js ***!
\************************************************************************************/
/*! exports provided: RelationJoinColumnBuilder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RelationJoinColumnBuilder\", function() { return RelationJoinColumnBuilder; });\n/* harmony import */ var _driver_mysql_MysqlDriver__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../driver/mysql/MysqlDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../metadata/ColumnMetadata */ \"./node_modules/typeorm/browser/metadata/ColumnMetadata.js\");\n/* harmony import */ var _metadata_UniqueMetadata__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../metadata/UniqueMetadata */ \"./node_modules/typeorm/browser/metadata/UniqueMetadata.js\");\n/* harmony import */ var _metadata_ForeignKeyMetadata__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../metadata/ForeignKeyMetadata */ \"./node_modules/typeorm/browser/metadata/ForeignKeyMetadata.js\");\n\n\n\n\n\n\n/**\n * Builds join column for the many-to-one and one-to-one owner relations.\n *\n * Cases it should cover:\n * 1. when join column is set with custom name and without referenced column name\n * we need automatically set referenced column name - primary ids by default\n * @JoinColumn({ name: \"custom_name\" })\n *\n * 2. when join column is set with only referenced column name\n * we need automatically set join column name - relation name + referenced column name\n * @JoinColumn({ referencedColumnName: \"title\" })\n *\n * 3. when join column is set without both referenced column name and join column name\n * we need to automatically set both of them\n * @JoinColumn()\n *\n * 4. when join column is not set at all (as in case of @ManyToOne relation)\n * we need to create join column for it with proper referenced column name and join column name\n *\n * 5. when multiple join columns set none of referencedColumnName and name can be optional\n * both options are required\n * @JoinColumn([\n * { name: \"category_title\", referencedColumnName: \"type\" },\n * { name: \"category_title\", referencedColumnName: \"name\" },\n * ])\n *\n * Since for many-to-one relations having JoinColumn decorator is not required,\n * we need to go thought each many-to-one relation without join column decorator set\n * and create join column metadata args for them.\n */\nvar RelationJoinColumnBuilder = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function RelationJoinColumnBuilder(connection) {\n this.connection = connection;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Builds a foreign key of the many-to-one or one-to-one owner relations.\n */\n RelationJoinColumnBuilder.prototype.build = function (joinColumns, relation) {\n var referencedColumns = this.collectReferencedColumns(joinColumns, relation);\n var columns = this.collectColumns(joinColumns, relation, referencedColumns);\n if (!referencedColumns.length || !relation.createForeignKeyConstraints)\n return { foreignKey: undefined, columns: columns, uniqueConstraint: undefined }; // this case is possible for one-to-one non owning side and relations with createForeignKeyConstraints = false\n var foreignKey = new _metadata_ForeignKeyMetadata__WEBPACK_IMPORTED_MODULE_3__[\"ForeignKeyMetadata\"]({\n entityMetadata: relation.entityMetadata,\n referencedEntityMetadata: relation.inverseEntityMetadata,\n namingStrategy: this.connection.namingStrategy,\n columns: columns,\n referencedColumns: referencedColumns,\n onDelete: relation.onDelete,\n onUpdate: relation.onUpdate,\n deferrable: relation.deferrable,\n });\n // Oracle does not allow both primary and unique constraints on the same column\n if (this.connection.driver instanceof _driver_mysql_MysqlDriver__WEBPACK_IMPORTED_MODULE_0__[\"OracleDriver\"] && columns.every(function (column) { return column.isPrimary; }))\n return { foreignKey: foreignKey, columns: columns, uniqueConstraint: undefined };\n // CockroachDB requires UNIQUE constraints on referenced columns\n if (referencedColumns.length > 0 && relation.isOneToOne) {\n var uniqueConstraint = new _metadata_UniqueMetadata__WEBPACK_IMPORTED_MODULE_2__[\"UniqueMetadata\"]({\n entityMetadata: relation.entityMetadata,\n columns: foreignKey.columns,\n args: {\n name: this.connection.namingStrategy.relationConstraintName(relation.entityMetadata.tablePath, foreignKey.columns.map(function (c) { return c.databaseName; })),\n target: relation.entityMetadata.target,\n }\n });\n uniqueConstraint.build(this.connection.namingStrategy);\n return { foreignKey: foreignKey, columns: columns, uniqueConstraint: uniqueConstraint };\n }\n return { foreignKey: foreignKey, columns: columns, uniqueConstraint: undefined };\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Collects referenced columns from the given join column args.\n */\n RelationJoinColumnBuilder.prototype.collectReferencedColumns = function (joinColumns, relation) {\n var hasAnyReferencedColumnName = joinColumns.find(function (joinColumnArgs) { return !!joinColumnArgs.referencedColumnName; });\n var manyToOneWithoutJoinColumn = joinColumns.length === 0 && relation.isManyToOne;\n var hasJoinColumnWithoutAnyReferencedColumnName = joinColumns.length > 0 && !hasAnyReferencedColumnName;\n if (manyToOneWithoutJoinColumn || hasJoinColumnWithoutAnyReferencedColumnName) { // covers case3 and case1\n return relation.inverseEntityMetadata.primaryColumns;\n }\n else { // cases with referenced columns defined\n return joinColumns.map(function (joinColumn) {\n var referencedColumn = relation.inverseEntityMetadata.ownColumns.find(function (column) { return column.propertyName === joinColumn.referencedColumnName; }); // todo: can we also search in relations?\n if (!referencedColumn)\n throw new Error(\"Referenced column \" + joinColumn.referencedColumnName + \" was not found in entity \" + relation.inverseEntityMetadata.name);\n return referencedColumn;\n });\n }\n };\n /**\n * Collects columns from the given join column args.\n */\n RelationJoinColumnBuilder.prototype.collectColumns = function (joinColumns, relation, referencedColumns) {\n var _this = this;\n return referencedColumns.map(function (referencedColumn) {\n // in the case if relation has join column with only name set we need this check\n var joinColumnMetadataArg = joinColumns.find(function (joinColumn) {\n return (!joinColumn.referencedColumnName || joinColumn.referencedColumnName === referencedColumn.propertyName) &&\n !!joinColumn.name;\n });\n var joinColumnName = joinColumnMetadataArg ? joinColumnMetadataArg.name : _this.connection.namingStrategy.joinColumnName(relation.propertyName, referencedColumn.propertyName);\n var relationalColumn = relation.entityMetadata.ownColumns.find(function (column) { return column.databaseName === joinColumnName; });\n if (!relationalColumn) {\n relationalColumn = new _metadata_ColumnMetadata__WEBPACK_IMPORTED_MODULE_1__[\"ColumnMetadata\"]({\n connection: _this.connection,\n entityMetadata: relation.entityMetadata,\n args: {\n target: \"\",\n mode: \"virtual\",\n propertyName: relation.propertyName,\n options: {\n name: joinColumnName,\n type: referencedColumn.type,\n length: !referencedColumn.length\n && (_this.connection.driver instanceof _driver_mysql_MysqlDriver__WEBPACK_IMPORTED_MODULE_0__[\"MysqlDriver\"] || _this.connection.driver instanceof _driver_mysql_MysqlDriver__WEBPACK_IMPORTED_MODULE_0__[\"AuroraDataApiDriver\"])\n && (referencedColumn.generationStrategy === \"uuid\" || referencedColumn.type === \"uuid\")\n ? \"36\"\n : referencedColumn.length,\n width: referencedColumn.width,\n charset: referencedColumn.charset,\n collation: referencedColumn.collation,\n precision: referencedColumn.precision,\n scale: referencedColumn.scale,\n zerofill: referencedColumn.zerofill,\n unsigned: referencedColumn.unsigned,\n comment: referencedColumn.comment,\n enum: referencedColumn.enum,\n enumName: referencedColumn.enumName,\n primary: relation.isPrimary,\n nullable: relation.isNullable,\n }\n }\n });\n relation.entityMetadata.registerColumn(relationalColumn);\n }\n relationalColumn.referencedColumn = referencedColumn; // its important to set it here because we need to set referenced column for user defined join column\n relationalColumn.type = referencedColumn.type; // also since types of relational column and join column must be equal we override user defined column type\n relationalColumn.relationMetadata = relation;\n relationalColumn.build(_this.connection);\n return relationalColumn;\n });\n };\n return RelationJoinColumnBuilder;\n}());\n\n\n//# sourceMappingURL=RelationJoinColumnBuilder.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata-builder/RelationJoinColumnBuilder.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata/CheckMetadata.js":
/*!****************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata/CheckMetadata.js ***!
\****************************************************************/
/*! exports provided: CheckMetadata */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CheckMetadata\", function() { return CheckMetadata; });\n/**\n * Check metadata contains all information about table's check constraints.\n */\nvar CheckMetadata = /** @class */ (function () {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n function CheckMetadata(options) {\n this.entityMetadata = options.entityMetadata;\n if (options.args) {\n this.target = options.args.target;\n this.expression = options.args.expression;\n this.givenName = options.args.name;\n }\n }\n // ---------------------------------------------------------------------\n // Public Build Methods\n // ---------------------------------------------------------------------\n /**\n * Builds some depend check constraint properties.\n * Must be called after all entity metadata's properties map, columns and relations are built.\n */\n CheckMetadata.prototype.build = function (namingStrategy) {\n this.name = this.givenName ? this.givenName : namingStrategy.checkConstraintName(this.entityMetadata.tablePath, this.expression);\n return this;\n };\n return CheckMetadata;\n}());\n\n\n//# sourceMappingURL=CheckMetadata.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata/CheckMetadata.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata/ColumnMetadata.js":
/*!*****************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata/ColumnMetadata.js ***!
\*****************************************************************/
/*! exports provided: ColumnMetadata */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ColumnMetadata\", function() { return ColumnMetadata; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/OrmUtils */ \"./node_modules/typeorm/browser/util/OrmUtils.js\");\n/* harmony import */ var _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../driver/mongodb/MongoDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _find_options_FindOperator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../find-options/FindOperator */ \"./node_modules/typeorm/browser/find-options/FindOperator.js\");\n/* harmony import */ var _util_ApplyValueTransformers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/ApplyValueTransformers */ \"./node_modules/typeorm/browser/util/ApplyValueTransformers.js\");\n\n\n\n\n\n/**\n * This metadata contains all information about entity's column.\n */\nvar ColumnMetadata = /** @class */ (function () {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n function ColumnMetadata(options) {\n /**\n * Type's length in the database.\n */\n this.length = \"\";\n /**\n * Indicates if this column is a primary key.\n */\n this.isPrimary = false;\n /**\n * Indicates if this column is generated (auto increment or generated other way).\n */\n this.isGenerated = false;\n /**\n * Indicates if column can contain nulls or not.\n */\n this.isNullable = false;\n /**\n * Indicates if column is selected by query builder or not.\n */\n this.isSelect = true;\n /**\n * Indicates if column is inserted by default or not.\n */\n this.isInsert = true;\n /**\n * Indicates if column allows updates or not.\n */\n this.isUpdate = true;\n /**\n * Puts ZEROFILL attribute on to numeric column. Works only for MySQL.\n * If you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to the column\n */\n this.zerofill = false;\n /**\n * Puts UNSIGNED attribute on to numeric column. Works only for MySQL.\n */\n this.unsigned = false;\n /**\n * Indicates if this column is an array.\n */\n this.isArray = false;\n /**\n * Indicates if column is virtual. Virtual columns are not mapped to the entity.\n */\n this.isVirtual = false;\n /**\n * Indicates if column is discriminator. Discriminator columns are not mapped to the entity.\n */\n this.isDiscriminator = false;\n /**\n * Indicates if column is tree-level column. Tree-level columns are used in closure entities.\n */\n this.isTreeLevel = false;\n /**\n * Indicates if this column contains an entity creation date.\n */\n this.isCreateDate = false;\n /**\n * Indicates if this column contains an entity update date.\n */\n this.isUpdateDate = false;\n /**\n * Indicates if this column contains an entity delete date.\n */\n this.isDeleteDate = false;\n /**\n * Indicates if this column contains an entity version.\n */\n this.isVersion = false;\n /**\n * Indicates if this column contains an object id.\n */\n this.isObjectId = false;\n /**\n * Indicates if this column is nested set's left column.\n * Used only in tree entities with nested-set type.\n */\n this.isNestedSetLeft = false;\n /**\n * Indicates if this column is nested set's right column.\n * Used only in tree entities with nested-set type.\n */\n this.isNestedSetRight = false;\n /**\n * Indicates if this column is materialized path's path column.\n * Used only in tree entities with materialized path type.\n */\n this.isMaterializedPath = false;\n this.entityMetadata = options.entityMetadata;\n this.embeddedMetadata = options.embeddedMetadata;\n this.referencedColumn = options.referencedColumn;\n if (options.args.target)\n this.target = options.args.target;\n if (options.args.propertyName)\n this.propertyName = options.args.propertyName;\n if (options.args.options.name)\n this.givenDatabaseName = options.args.options.name;\n if (options.args.options.type)\n this.type = options.args.options.type;\n if (options.args.options.length)\n this.length = options.args.options.length ? options.args.options.length.toString() : \"\";\n if (options.args.options.width)\n this.width = options.args.options.width;\n if (options.args.options.charset)\n this.charset = options.args.options.charset;\n if (options.args.options.collation)\n this.collation = options.args.options.collation;\n if (options.args.options.primary)\n this.isPrimary = options.args.options.primary;\n if (options.args.options.default === null) // to make sure default: null is the same as nullable: true\n this.isNullable = true;\n if (options.args.options.nullable !== undefined)\n this.isNullable = options.args.options.nullable;\n if (options.args.options.select !== undefined)\n this.isSelect = options.args.options.select;\n if (options.args.options.insert !== undefined)\n this.isInsert = options.args.options.insert;\n if (options.args.options.update !== undefined)\n this.isUpdate = options.args.options.update;\n if (options.args.options.readonly !== undefined)\n this.isUpdate = !options.args.options.readonly;\n if (options.args.options.comment)\n this.comment = options.args.options.comment;\n if (options.args.options.default !== undefined)\n this.default = options.args.options.default;\n if (options.args.options.onUpdate)\n this.onUpdate = options.args.options.onUpdate;\n if (options.args.options.scale !== null && options.args.options.scale !== undefined)\n this.scale = options.args.options.scale;\n if (options.args.options.zerofill) {\n this.zerofill = options.args.options.zerofill;\n this.unsigned = true; // if you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to the column\n }\n if (options.args.options.unsigned)\n this.unsigned = options.args.options.unsigned;\n if (options.args.options.precision !== undefined)\n this.precision = options.args.options.precision;\n if (options.args.options.enum) {\n if (options.args.options.enum instanceof Object && !Array.isArray(options.args.options.enum)) {\n this.enum = Object.keys(options.args.options.enum)\n .filter(function (key) { return isNaN(+key); }) // remove numeric keys - typescript numeric enum types generate them\n .map(function (key) { return options.args.options.enum[key]; });\n }\n else {\n this.enum = options.args.options.enum;\n }\n }\n if (options.args.options.enumName) {\n this.enumName = options.args.options.enumName;\n }\n if (options.args.options.asExpression) {\n this.asExpression = options.args.options.asExpression;\n this.generatedType = options.args.options.generatedType ? options.args.options.generatedType : \"VIRTUAL\";\n }\n if (options.args.options.hstoreType)\n this.hstoreType = options.args.options.hstoreType;\n if (options.args.options.array)\n this.isArray = options.args.options.array;\n if (options.args.mode) {\n this.isVirtual = options.args.mode === \"virtual\";\n this.isTreeLevel = options.args.mode === \"treeLevel\";\n this.isCreateDate = options.args.mode === \"createDate\";\n this.isUpdateDate = options.args.mode === \"updateDate\";\n this.isDeleteDate = options.args.mode === \"deleteDate\";\n this.isVersion = options.args.mode === \"version\";\n this.isObjectId = options.args.mode === \"objectId\";\n }\n if (options.args.options.transformer)\n this.transformer = options.args.options.transformer;\n if (options.args.options.spatialFeatureType)\n this.spatialFeatureType = options.args.options.spatialFeatureType;\n if (options.args.options.srid !== undefined)\n this.srid = options.args.options.srid;\n if (this.isTreeLevel)\n this.type = options.connection.driver.mappedDataTypes.treeLevel;\n if (this.isCreateDate) {\n if (!this.type)\n this.type = options.connection.driver.mappedDataTypes.createDate;\n if (!this.default)\n this.default = function () { return options.connection.driver.mappedDataTypes.createDateDefault; };\n if (this.precision === undefined && options.connection.driver.mappedDataTypes.createDatePrecision)\n this.precision = options.connection.driver.mappedDataTypes.createDatePrecision;\n }\n if (this.isUpdateDate) {\n if (!this.type)\n this.type = options.connection.driver.mappedDataTypes.updateDate;\n if (!this.default)\n this.default = function () { return options.connection.driver.mappedDataTypes.updateDateDefault; };\n if (!this.onUpdate)\n this.onUpdate = options.connection.driver.mappedDataTypes.updateDateDefault;\n if (this.precision === undefined && options.connection.driver.mappedDataTypes.updateDatePrecision)\n this.precision = options.connection.driver.mappedDataTypes.updateDatePrecision;\n }\n if (this.isDeleteDate) {\n if (!this.type)\n this.type = options.connection.driver.mappedDataTypes.deleteDate;\n if (!this.isNullable)\n this.isNullable = options.connection.driver.mappedDataTypes.deleteDateNullable;\n if (this.precision === undefined && options.connection.driver.mappedDataTypes.deleteDatePrecision)\n this.precision = options.connection.driver.mappedDataTypes.deleteDatePrecision;\n }\n if (this.isVersion)\n this.type = options.connection.driver.mappedDataTypes.version;\n if (options.closureType)\n this.closureType = options.closureType;\n if (options.nestedSetLeft)\n this.isNestedSetLeft = options.nestedSetLeft;\n if (options.nestedSetRight)\n this.isNestedSetRight = options.nestedSetRight;\n if (options.materializedPath)\n this.isMaterializedPath = options.materializedPath;\n }\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n /**\n * Creates entity id map from the given entity ids array.\n */\n ColumnMetadata.prototype.createValueMap = function (value, useDatabaseName) {\n var _a;\n var _this = this;\n if (useDatabaseName === void 0) { useDatabaseName = false; }\n // extract column value from embeds of entity if column is in embedded\n if (this.embeddedMetadata) {\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object and return it in a\n // { data: { information: { counters: { id: ... } } } } format\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n var propertyNames = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.embeddedMetadata.parentPropertyNames));\n // now need to access post[data][information][counters] to get column value from the counters\n // and on each step we need to create complex literal object, e.g. first { data },\n // then { data: { information } }, then { data: { information: { counters } } },\n // then { data: { information: { counters: [this.propertyName]: entity[data][information][counters][this.propertyName] } } }\n // this recursive function helps doing that\n var extractEmbeddedColumnValue_1 = function (propertyNames, map) {\n var propertyName = propertyNames.shift();\n if (propertyName) {\n map[propertyName] = {};\n extractEmbeddedColumnValue_1(propertyNames, map[propertyName]);\n return map;\n }\n // this is bugfix for #720 when increment number is bigint we need to make sure its a string\n if ((_this.generationStrategy === \"increment\" || _this.generationStrategy === \"rowid\") && _this.type === \"bigint\" && value !== null)\n value = String(value);\n map[useDatabaseName ? _this.databaseName : _this.propertyName] = value;\n return map;\n };\n return extractEmbeddedColumnValue_1(propertyNames, {});\n }\n else { // no embeds - no problems. Simply return column property name and its value of the entity\n // this is bugfix for #720 when increment number is bigint we need to make sure its a string\n if ((this.generationStrategy === \"increment\" || this.generationStrategy === \"rowid\") && this.type === \"bigint\" && value !== null)\n value = String(value);\n return _a = {}, _a[useDatabaseName ? this.databaseName : this.propertyName] = value, _a;\n }\n };\n /**\n * Extracts column value and returns its column name with this value in a literal object.\n * If column is in embedded (or recursive embedded) it returns complex literal object.\n *\n * Examples what this method can return depend if this column is in embeds.\n * { id: 1 } or { title: \"hello\" }, { counters: { code: 1 } }, { data: { information: { counters: { code: 1 } } } }\n */\n ColumnMetadata.prototype.getEntityValueMap = function (entity, options) {\n var _a, _b;\n var _this = this;\n var returnNulls = false; // options && options.skipNulls === false ? false : true; // todo: remove if current will not bring problems, uncomment if it will.\n // extract column value from embeds of entity if column is in embedded\n if (this.embeddedMetadata) {\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object and return it in a\n // { data: { information: { counters: { id: ... } } } } format\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n var propertyNames = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.embeddedMetadata.parentPropertyNames));\n // now need to access post[data][information][counters] to get column value from the counters\n // and on each step we need to create complex literal object, e.g. first { data },\n // then { data: { information } }, then { data: { information: { counters } } },\n // then { data: { information: { counters: [this.propertyName]: entity[data][information][counters][this.propertyName] } } }\n // this recursive function helps doing that\n var extractEmbeddedColumnValue_2 = function (propertyNames, value, map) {\n var propertyName = propertyNames.shift();\n if (value === undefined)\n return map;\n if (propertyName) {\n var submap = {};\n extractEmbeddedColumnValue_2(propertyNames, value[propertyName], submap);\n if (Object.keys(submap).length > 0) {\n map[propertyName] = submap;\n }\n return map;\n }\n if (value[_this.propertyName] !== undefined && (returnNulls === false || value[_this.propertyName] !== null))\n map[_this.propertyName] = value[_this.propertyName];\n return map;\n };\n var map = {};\n extractEmbeddedColumnValue_2(propertyNames, entity, map);\n return Object.keys(map).length > 0 ? map : undefined;\n }\n else { // no embeds - no problems. Simply return column property name and its value of the entity\n if (this.relationMetadata && entity[this.relationMetadata.propertyName] && entity[this.relationMetadata.propertyName] instanceof Object) {\n var map = this.relationMetadata.joinColumns.reduce(function (map, joinColumn) {\n var value = joinColumn.referencedColumn.getEntityValueMap(entity[_this.relationMetadata.propertyName]);\n if (value === undefined)\n return map;\n return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[\"OrmUtils\"].mergeDeep(map, value);\n }, {});\n if (Object.keys(map).length > 0)\n return _a = {}, _a[this.propertyName] = map, _a;\n return undefined;\n }\n else {\n if (entity[this.propertyName] !== undefined && (returnNulls === false || entity[this.propertyName] !== null))\n return _b = {}, _b[this.propertyName] = entity[this.propertyName], _b;\n return undefined;\n }\n }\n };\n /**\n * Extracts column value from the given entity.\n * If column is in embedded (or recursive embedded) it extracts its value from there.\n */\n ColumnMetadata.prototype.getEntityValue = function (entity, transform) {\n if (transform === void 0) { transform = false; }\n if (entity === undefined || entity === null)\n return undefined;\n // extract column value from embeddeds of entity if column is in embedded\n var value = undefined;\n if (this.embeddedMetadata) {\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n var propertyNames = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.embeddedMetadata.parentPropertyNames));\n // next we need to access post[data][information][counters][this.propertyName] to get column value from the counters\n // this recursive function takes array of generated property names and gets the post[data][information][counters] embed\n var extractEmbeddedColumnValue_3 = function (propertyNames, value) {\n var propertyName = propertyNames.shift();\n return propertyName && value ? extractEmbeddedColumnValue_3(propertyNames, value[propertyName]) : value;\n };\n // once we get nested embed object we get its column, e.g. post[data][information][counters][this.propertyName]\n var embeddedObject = extractEmbeddedColumnValue_3(propertyNames, entity);\n if (embeddedObject) {\n if (this.relationMetadata && this.referencedColumn) {\n var relatedEntity = this.relationMetadata.getEntityValue(embeddedObject);\n if (relatedEntity && relatedEntity instanceof Object && !(relatedEntity instanceof _find_options_FindOperator__WEBPACK_IMPORTED_MODULE_3__[\"FindOperator\"])) {\n value = this.referencedColumn.getEntityValue(relatedEntity);\n }\n else if (embeddedObject[this.propertyName] && embeddedObject[this.propertyName] instanceof Object && !(embeddedObject[this.propertyName] instanceof _find_options_FindOperator__WEBPACK_IMPORTED_MODULE_3__[\"FindOperator\"])) {\n value = this.referencedColumn.getEntityValue(embeddedObject[this.propertyName]);\n }\n else {\n value = embeddedObject[this.propertyName];\n }\n }\n else if (this.referencedColumn) {\n value = this.referencedColumn.getEntityValue(embeddedObject[this.propertyName]);\n }\n else {\n value = embeddedObject[this.propertyName];\n }\n }\n }\n else { // no embeds - no problems. Simply return column name by property name of the entity\n if (this.relationMetadata && this.referencedColumn) {\n var relatedEntity = this.relationMetadata.getEntityValue(entity);\n if (relatedEntity && relatedEntity instanceof Object && !(relatedEntity instanceof _find_options_FindOperator__WEBPACK_IMPORTED_MODULE_3__[\"FindOperator\"]) && !(relatedEntity instanceof Function)) {\n value = this.referencedColumn.getEntityValue(relatedEntity);\n }\n else if (entity[this.propertyName] && entity[this.propertyName] instanceof Object && !(entity[this.propertyName] instanceof _find_options_FindOperator__WEBPACK_IMPORTED_MODULE_3__[\"FindOperator\"]) && !(entity[this.propertyName] instanceof Function)) {\n value = this.referencedColumn.getEntityValue(entity[this.propertyName]);\n }\n else {\n value = entity[this.propertyName];\n }\n }\n else if (this.referencedColumn) {\n value = this.referencedColumn.getEntityValue(entity[this.propertyName]);\n }\n else {\n value = entity[this.propertyName];\n }\n }\n if (transform && this.transformer)\n value = _util_ApplyValueTransformers__WEBPACK_IMPORTED_MODULE_4__[\"ApplyValueTransformers\"].transformTo(this.transformer, value);\n return value;\n };\n /**\n * Sets given entity's column value.\n * Using of this method helps to set entity relation's value of the lazy and non-lazy relations.\n */\n ColumnMetadata.prototype.setEntityValue = function (entity, value) {\n var _this = this;\n if (this.embeddedMetadata) {\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n var extractEmbeddedColumnValue_4 = function (embeddedMetadatas, map) {\n // if (!object[embeddedMetadata.propertyName])\n // object[embeddedMetadata.propertyName] = embeddedMetadata.create();\n var embeddedMetadata = embeddedMetadatas.shift();\n if (embeddedMetadata) {\n if (!map[embeddedMetadata.propertyName])\n map[embeddedMetadata.propertyName] = embeddedMetadata.create();\n extractEmbeddedColumnValue_4(embeddedMetadatas, map[embeddedMetadata.propertyName]);\n return map;\n }\n map[_this.propertyName] = value;\n return map;\n };\n return extractEmbeddedColumnValue_4(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.embeddedMetadata.embeddedMetadataTree)), entity);\n }\n else {\n // we write a deep object in this entity only if the column is virtual\n // because if its not virtual it means the user defined a real column for this relation\n // also we don't do it if column is inside a junction table\n if (!this.entityMetadata.isJunction && this.isVirtual && this.referencedColumn && this.referencedColumn.propertyName !== this.propertyName) {\n if (!(this.propertyName in entity)) {\n entity[this.propertyName] = {};\n }\n entity[this.propertyName][this.referencedColumn.propertyName] = value;\n }\n else {\n entity[this.propertyName] = value;\n }\n }\n };\n // ---------------------------------------------------------------------\n // Builder Methods\n // ---------------------------------------------------------------------\n ColumnMetadata.prototype.build = function (connection) {\n this.propertyPath = this.buildPropertyPath();\n this.propertyAliasName = this.propertyPath.replace(\".\", \"_\");\n this.databaseName = this.buildDatabaseName(connection);\n this.databasePath = this.buildDatabasePath();\n this.databaseNameWithoutPrefixes = connection.namingStrategy.columnName(this.propertyName, this.givenDatabaseName, []);\n return this;\n };\n ColumnMetadata.prototype.buildPropertyPath = function () {\n var path = \"\";\n if (this.embeddedMetadata && this.embeddedMetadata.parentPropertyNames.length)\n path = this.embeddedMetadata.parentPropertyNames.join(\".\") + \".\";\n path += this.propertyName;\n // we add reference column to property path only if this column is virtual\n // because if its not virtual it means user defined a real column for this relation\n // also we don't do it if column is inside a junction table\n if (!this.entityMetadata.isJunction && this.isVirtual && this.referencedColumn && this.referencedColumn.propertyName !== this.propertyName)\n path += \".\" + this.referencedColumn.propertyName;\n return path;\n };\n ColumnMetadata.prototype.buildDatabasePath = function () {\n var path = \"\";\n if (this.embeddedMetadata && this.embeddedMetadata.parentPropertyNames.length)\n path = this.embeddedMetadata.parentPropertyNames.join(\".\") + \".\";\n path += this.databaseName;\n // we add reference column to property path only if this column is virtual\n // because if its not virtual it means user defined a real column for this relation\n // also we don't do it if column is inside a junction table\n if (!this.entityMetadata.isJunction && this.isVirtual && this.referencedColumn && this.referencedColumn.databaseName !== this.databaseName)\n path += \".\" + this.referencedColumn.databaseName;\n return path;\n };\n ColumnMetadata.prototype.buildDatabaseName = function (connection) {\n var propertyNames = this.embeddedMetadata ? this.embeddedMetadata.parentPrefixes : [];\n if (connection.driver instanceof _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_2__[\"MongoDriver\"]) // we don't need to include embedded name for the mongodb column names\n propertyNames = [];\n return connection.namingStrategy.columnName(this.propertyName, this.givenDatabaseName, propertyNames);\n };\n return ColumnMetadata;\n}());\n\n\n//# sourceMappingURL=ColumnMetadata.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata/ColumnMetadata.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata/EmbeddedMetadata.js":
/*!*******************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata/EmbeddedMetadata.js ***!
\*******************************************************************/
/*! exports provided: EmbeddedMetadata */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EmbeddedMetadata\", function() { return EmbeddedMetadata; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../driver/mongodb/MongoDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n\n\n/**\n * Contains all information about entity's embedded property.\n */\nvar EmbeddedMetadata = /** @class */ (function () {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n function EmbeddedMetadata(options) {\n /**\n * Columns inside this embed.\n */\n this.columns = [];\n /**\n * Relations inside this embed.\n */\n this.relations = [];\n /**\n * Entity listeners inside this embed.\n */\n this.listeners = [];\n /**\n * Indices applied to the embed columns.\n */\n this.indices = [];\n /**\n * Uniques applied to the embed columns.\n */\n this.uniques = [];\n /**\n * Relation ids inside this embed.\n */\n this.relationIds = [];\n /**\n * Relation counts inside this embed.\n */\n this.relationCounts = [];\n /**\n * Nested embeddable in this embeddable (which has current embedded as parent embedded).\n */\n this.embeddeds = [];\n /**\n * Indicates if this embedded is in array mode.\n *\n * This option works only in mongodb.\n */\n this.isArray = false;\n /**\n * Returns array of property names of current embed and all its parent embeds.\n *\n * example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeds\n * we need to get value of \"id\" column from the post real entity object.\n * this method will return [\"data\", \"information\", \"counters\"]\n */\n this.parentPropertyNames = [];\n /**\n * Returns array of prefixes of current embed and all its parent embeds.\n */\n this.parentPrefixes = [];\n /**\n * Returns embed metadatas from all levels of the parent tree.\n *\n * example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeds\n * this method will return [embed metadata of data, embed metadata of information, embed metadata of counters]\n */\n this.embeddedMetadataTree = [];\n /**\n * Embed metadatas from all levels of the parent tree.\n *\n * example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeds\n * this method will return [embed metadata of data, embed metadata of information, embed metadata of counters]\n */\n this.columnsFromTree = [];\n /**\n * Relations of this embed and all relations from its child embeds.\n */\n this.relationsFromTree = [];\n /**\n * Relations of this embed and all relations from its child embeds.\n */\n this.listenersFromTree = [];\n /**\n * Indices of this embed and all indices from its child embeds.\n */\n this.indicesFromTree = [];\n /**\n * Uniques of this embed and all uniques from its child embeds.\n */\n this.uniquesFromTree = [];\n /**\n * Relation ids of this embed and all relation ids from its child embeds.\n */\n this.relationIdsFromTree = [];\n /**\n * Relation counts of this embed and all relation counts from its child embeds.\n */\n this.relationCountsFromTree = [];\n this.entityMetadata = options.entityMetadata;\n this.type = options.args.type();\n this.propertyName = options.args.propertyName;\n this.customPrefix = options.args.prefix;\n this.isArray = options.args.isArray;\n }\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n /**\n * Creates a new embedded object.\n */\n EmbeddedMetadata.prototype.create = function () {\n return new this.type;\n };\n // ---------------------------------------------------------------------\n // Builder Methods\n // ---------------------------------------------------------------------\n EmbeddedMetadata.prototype.build = function (connection) {\n this.embeddeds.forEach(function (embedded) { return embedded.build(connection); });\n this.prefix = this.buildPrefix(connection);\n this.parentPropertyNames = this.buildParentPropertyNames();\n this.parentPrefixes = this.buildParentPrefixes();\n this.propertyPath = this.parentPropertyNames.join(\".\");\n this.embeddedMetadataTree = this.buildEmbeddedMetadataTree();\n this.columnsFromTree = this.buildColumnsFromTree();\n this.relationsFromTree = this.buildRelationsFromTree();\n this.listenersFromTree = this.buildListenersFromTree();\n this.indicesFromTree = this.buildIndicesFromTree();\n this.uniquesFromTree = this.buildUniquesFromTree();\n this.relationIdsFromTree = this.buildRelationIdsFromTree();\n this.relationCountsFromTree = this.buildRelationCountsFromTree();\n return this;\n };\n // ---------------------------------------------------------------------\n // Protected Methods\n // ---------------------------------------------------------------------\n EmbeddedMetadata.prototype.buildPartialPrefix = function () {\n // if prefix option was not set or explicitly set to true - default prefix\n if (this.customPrefix === undefined || this.customPrefix === true) {\n return [this.propertyName];\n }\n // if prefix option was set to empty string or explicity set to false - disable prefix\n if (this.customPrefix === \"\" || this.customPrefix === false) {\n return [];\n }\n // use custom prefix\n if (typeof this.customPrefix === \"string\") {\n return [this.customPrefix];\n }\n throw new Error(\"Invalid prefix option given for \" + this.entityMetadata.targetName + \"#\" + this.propertyName);\n };\n EmbeddedMetadata.prototype.buildPrefix = function (connection) {\n if (connection.driver instanceof _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_1__[\"MongoDriver\"])\n return this.propertyName;\n var prefixes = [];\n if (this.parentEmbeddedMetadata)\n prefixes.push(this.parentEmbeddedMetadata.buildPrefix(connection));\n prefixes.push.apply(prefixes, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.buildPartialPrefix())));\n return prefixes.join(\"_\"); // todo: use naming strategy instead of \"_\" !!!\n };\n EmbeddedMetadata.prototype.buildParentPropertyNames = function () {\n return this.parentEmbeddedMetadata ? this.parentEmbeddedMetadata.buildParentPropertyNames().concat(this.propertyName) : [this.propertyName];\n };\n EmbeddedMetadata.prototype.buildParentPrefixes = function () {\n return this.parentEmbeddedMetadata ? this.parentEmbeddedMetadata.buildParentPrefixes().concat(this.buildPartialPrefix()) : this.buildPartialPrefix();\n };\n EmbeddedMetadata.prototype.buildEmbeddedMetadataTree = function () {\n return this.parentEmbeddedMetadata ? this.parentEmbeddedMetadata.buildEmbeddedMetadataTree().concat(this) : [this];\n };\n EmbeddedMetadata.prototype.buildColumnsFromTree = function () {\n return this.embeddeds.reduce(function (columns, embedded) { return columns.concat(embedded.buildColumnsFromTree()); }, this.columns);\n };\n EmbeddedMetadata.prototype.buildRelationsFromTree = function () {\n return this.embeddeds.reduce(function (relations, embedded) { return relations.concat(embedded.buildRelationsFromTree()); }, this.relations);\n };\n EmbeddedMetadata.prototype.buildListenersFromTree = function () {\n return this.embeddeds.reduce(function (relations, embedded) { return relations.concat(embedded.buildListenersFromTree()); }, this.listeners);\n };\n EmbeddedMetadata.prototype.buildIndicesFromTree = function () {\n return this.embeddeds.reduce(function (relations, embedded) { return relations.concat(embedded.buildIndicesFromTree()); }, this.indices);\n };\n EmbeddedMetadata.prototype.buildUniquesFromTree = function () {\n return this.embeddeds.reduce(function (relations, embedded) { return relations.concat(embedded.buildUniquesFromTree()); }, this.uniques);\n };\n EmbeddedMetadata.prototype.buildRelationIdsFromTree = function () {\n return this.embeddeds.reduce(function (relations, embedded) { return relations.concat(embedded.buildRelationIdsFromTree()); }, this.relationIds);\n };\n EmbeddedMetadata.prototype.buildRelationCountsFromTree = function () {\n return this.embeddeds.reduce(function (relations, embedded) { return relations.concat(embedded.buildRelationCountsFromTree()); }, this.relationCounts);\n };\n return EmbeddedMetadata;\n}());\n\n\n//# sourceMappingURL=EmbeddedMetadata.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata/EmbeddedMetadata.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata/EntityListenerMetadata.js":
/*!*************************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata/EntityListenerMetadata.js ***!
\*************************************************************************/
/*! exports provided: EntityListenerMetadata */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EntityListenerMetadata\", function() { return EntityListenerMetadata; });\n/**\n * This metadata contains all information about entity's listeners.\n */\nvar EntityListenerMetadata = /** @class */ (function () {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n function EntityListenerMetadata(options) {\n this.entityMetadata = options.entityMetadata;\n this.embeddedMetadata = options.embeddedMetadata;\n this.target = options.args.target;\n this.propertyName = options.args.propertyName;\n this.type = options.args.type;\n }\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n /**\n * Checks if entity listener is allowed to be executed on the given entity.\n */\n EntityListenerMetadata.prototype.isAllowed = function (entity) {\n 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?\n (this.entityMetadata.target instanceof Function && entity.constructor.prototype instanceof this.entityMetadata.target); // todo: also need to implement entity schema inheritance\n };\n /**\n * Executes listener method of the given entity.\n */\n EntityListenerMetadata.prototype.execute = function (entity) {\n if (!this.embeddedMetadata)\n return entity[this.propertyName]();\n this.callEntityEmbeddedMethod(entity, this.embeddedMetadata.propertyPath.split(\".\"));\n };\n // ---------------------------------------------------------------------\n // Protected Methods\n // ---------------------------------------------------------------------\n /**\n * Calls embedded entity listener method no matter how nested it is.\n */\n EntityListenerMetadata.prototype.callEntityEmbeddedMethod = function (entity, propertyPaths) {\n var propertyPath = propertyPaths.shift();\n if (!propertyPath || !entity[propertyPath])\n return;\n if (propertyPaths.length === 0) {\n entity[propertyPath][this.propertyName]();\n }\n else {\n if (entity[propertyPath])\n this.callEntityEmbeddedMethod(entity[propertyPath], propertyPaths);\n }\n };\n return EntityListenerMetadata;\n}());\n\n\n//# sourceMappingURL=EntityListenerMetadata.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata/EntityListenerMetadata.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata/EntityMetadata.js":
/*!*****************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata/EntityMetadata.js ***!
\*****************************************************************/
/*! exports provided: EntityMetadata */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EntityMetadata\", function() { return EntityMetadata; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../driver/postgres/PostgresDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _error_CannotCreateEntityIdMapError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../error/CannotCreateEntityIdMapError */ \"./node_modules/typeorm/browser/error/CannotCreateEntityIdMapError.js\");\n/* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/OrmUtils */ \"./node_modules/typeorm/browser/util/OrmUtils.js\");\n/* harmony import */ var _util_StringUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/StringUtils */ \"./node_modules/typeorm/browser/util/StringUtils.js\");\n\n\n\n\n\n\n\n\n/**\n * Contains all entity metadata.\n */\nvar EntityMetadata = /** @class */ (function () {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n function EntityMetadata(options) {\n /**\n * Children entity metadatas. Used in inheritance patterns.\n */\n this.childEntityMetadatas = [];\n /**\n * All \"inheritance tree\" from a target entity.\n * For example for target Post < ContentModel < Unit it will be an array of [Post, ContentModel, Unit].\n * It also contains child entities for single table inheritance.\n */\n this.inheritanceTree = [];\n /**\n * Table type. Tables can be abstract, closure, junction, embedded, etc.\n */\n this.tableType = \"regular\";\n /**\n * Enables Sqlite \"WITHOUT ROWID\" modifier for the \"CREATE TABLE\" statement\n */\n this.withoutRowid = false;\n /**\n * Indicates if schema will be synchronized for this entity or not.\n */\n this.synchronize = true;\n /**\n * Checks if there any non-nullable column exist in this entity.\n */\n this.hasNonNullableRelations = false;\n /**\n * Indicates if this entity metadata of a junction table, or not.\n * Junction table is a table created by many-to-many relationship.\n *\n * Its also possible to understand if entity is junction via tableType.\n */\n this.isJunction = false;\n /**\n * Checks if this table is a junction table of the closure table.\n * This type is for tables that contain junction metadata of the closure tables.\n */\n this.isClosureJunction = false;\n /**\n * Checks if entity's table has multiple primary columns.\n */\n this.hasMultiplePrimaryKeys = false;\n /**\n * Indicates if this entity metadata has uuid generated columns.\n */\n this.hasUUIDGeneratedColumns = false;\n /**\n * Entity's column metadatas defined by user.\n */\n this.ownColumns = [];\n /**\n * Columns of the entity, including columns that are coming from the embeddeds of this entity.\n */\n this.columns = [];\n /**\n * Ancestor columns used only in closure junction tables.\n */\n this.ancestorColumns = [];\n /**\n * Descendant columns used only in closure junction tables.\n */\n this.descendantColumns = [];\n /**\n * All columns except for virtual columns.\n */\n this.nonVirtualColumns = [];\n /**\n * In the case if this entity metadata is junction table's entity metadata,\n * this will contain all referenced columns of owner entity.\n */\n this.ownerColumns = [];\n /**\n * In the case if this entity metadata is junction table's entity metadata,\n * this will contain all referenced columns of inverse entity.\n */\n this.inverseColumns = [];\n /**\n * Gets the column with generated flag.\n */\n this.generatedColumns = [];\n /**\n * Gets the primary columns.\n */\n this.primaryColumns = [];\n /**\n * Entity's relation metadatas.\n */\n this.ownRelations = [];\n /**\n * Relations of the entity, including relations that are coming from the embeddeds of this entity.\n */\n this.relations = [];\n /**\n * List of eager relations this metadata has.\n */\n this.eagerRelations = [];\n /**\n * List of eager relations this metadata has.\n */\n this.lazyRelations = [];\n /**\n * Gets only one-to-one relations of the entity.\n */\n this.oneToOneRelations = [];\n /**\n * Gets only owner one-to-one relations of the entity.\n */\n this.ownerOneToOneRelations = [];\n /**\n * Gets only one-to-many relations of the entity.\n */\n this.oneToManyRelations = [];\n /**\n * Gets only many-to-one relations of the entity.\n */\n this.manyToOneRelations = [];\n /**\n * Gets only many-to-many relations of the entity.\n */\n this.manyToManyRelations = [];\n /**\n * Gets only owner many-to-many relations of the entity.\n */\n this.ownerManyToManyRelations = [];\n /**\n * Gets only owner one-to-one and many-to-one relations.\n */\n this.relationsWithJoinColumns = [];\n /**\n * Entity's relation id metadatas.\n */\n this.relationIds = [];\n /**\n * Entity's relation id metadatas.\n */\n this.relationCounts = [];\n /**\n * Entity's foreign key metadatas.\n */\n this.foreignKeys = [];\n /**\n * Entity's embedded metadatas.\n */\n this.embeddeds = [];\n /**\n * All embeddeds - embeddeds from this entity metadata and from all child embeddeds, etc.\n */\n this.allEmbeddeds = [];\n /**\n * Entity's own indices.\n */\n this.ownIndices = [];\n /**\n * Entity's index metadatas.\n */\n this.indices = [];\n /**\n * Entity's unique metadatas.\n */\n this.uniques = [];\n /**\n * Entity's own uniques.\n */\n this.ownUniques = [];\n /**\n * Entity's check metadatas.\n */\n this.checks = [];\n /**\n * Entity's exclusion metadatas.\n */\n this.exclusions = [];\n /**\n * Entity's own listener metadatas.\n */\n this.ownListeners = [];\n /**\n * Entity listener metadatas.\n */\n this.listeners = [];\n /**\n * Listener metadatas with \"AFTER LOAD\" type.\n */\n this.afterLoadListeners = [];\n /**\n * Listener metadatas with \"AFTER INSERT\" type.\n */\n this.beforeInsertListeners = [];\n /**\n * Listener metadatas with \"AFTER INSERT\" type.\n */\n this.afterInsertListeners = [];\n /**\n * Listener metadatas with \"AFTER UPDATE\" type.\n */\n this.beforeUpdateListeners = [];\n /**\n * Listener metadatas with \"AFTER UPDATE\" type.\n */\n this.afterUpdateListeners = [];\n /**\n * Listener metadatas with \"AFTER REMOVE\" type.\n */\n this.beforeRemoveListeners = [];\n /**\n * Listener metadatas with \"AFTER REMOVE\" type.\n */\n this.afterRemoveListeners = [];\n this.connection = options.connection;\n this.inheritanceTree = options.inheritanceTree || [];\n this.inheritancePattern = options.inheritancePattern;\n this.treeType = options.tableTree ? options.tableTree.type : undefined;\n this.treeOptions = options.tableTree ? options.tableTree.options : undefined;\n this.parentClosureEntityMetadata = options.parentClosureEntityMetadata;\n this.tableMetadataArgs = options.args;\n this.target = this.tableMetadataArgs.target;\n this.tableType = this.tableMetadataArgs.type;\n this.expression = this.tableMetadataArgs.expression;\n this.withoutRowid = this.tableMetadataArgs.withoutRowid;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Creates a new entity.\n */\n EntityMetadata.prototype.create = function (queryRunner) {\n var _this = this;\n // if target is set to a function (e.g. class) that can be created then create it\n var ret;\n if (this.target instanceof Function) {\n ret = new this.target();\n this.lazyRelations.forEach(function (relation) { return _this.connection.relationLoader.enableLazyLoad(relation, ret, queryRunner); });\n return ret;\n }\n // otherwise simply return a new empty object\n var newObject = {};\n this.lazyRelations.forEach(function (relation) { return _this.connection.relationLoader.enableLazyLoad(relation, newObject, queryRunner); });\n return newObject;\n };\n /**\n * Checks if given entity has an id.\n */\n EntityMetadata.prototype.hasId = function (entity) {\n if (!entity)\n return false;\n return this.primaryColumns.every(function (primaryColumn) {\n var value = primaryColumn.getEntityValue(entity);\n return value !== null && value !== undefined && value !== \"\";\n });\n };\n /**\n * Checks if given entity / object contains ALL primary keys entity must have.\n * Returns true if it contains all of them, false if at least one of them is not defined.\n */\n EntityMetadata.prototype.hasAllPrimaryKeys = function (entity) {\n return this.primaryColumns.every(function (primaryColumn) {\n var value = primaryColumn.getEntityValue(entity);\n return value !== null && value !== undefined;\n });\n };\n /**\n * Ensures that given object is an entity id map.\n * If given id is an object then it means its already id map.\n * If given id isn't an object then it means its a value of the id column\n * and it creates a new id map with this value and name of the primary column.\n */\n EntityMetadata.prototype.ensureEntityIdMap = function (id) {\n if (id instanceof Object)\n return id;\n if (this.hasMultiplePrimaryKeys)\n throw new _error_CannotCreateEntityIdMapError__WEBPACK_IMPORTED_MODULE_2__[\"CannotCreateEntityIdMapError\"](this, id);\n return this.primaryColumns[0].createValueMap(id);\n };\n /**\n * Gets primary keys of the entity and returns them in a literal object.\n * For example, for Post{ id: 1, title: \"hello\" } where id is primary it will return { id: 1 }\n * For multiple primary keys it returns multiple keys in object.\n * For primary keys inside embeds it returns complex object literal with keys in them.\n */\n EntityMetadata.prototype.getEntityIdMap = function (entity) {\n if (!entity)\n return undefined;\n return EntityMetadata.getValueMap(entity, this.primaryColumns, { skipNulls: true });\n };\n /**\n * Creates a \"mixed id map\".\n * If entity has multiple primary keys (ids) then it will return just regular id map, like what getEntityIdMap returns.\n * But if entity has a single primary key then it will return just value of the id column of the entity, just value.\n * This is called mixed id map.\n */\n EntityMetadata.prototype.getEntityIdMixedMap = function (entity) {\n if (!entity)\n return entity;\n var idMap = this.getEntityIdMap(entity);\n if (this.hasMultiplePrimaryKeys) {\n return idMap;\n }\n else if (idMap) {\n return this.primaryColumns[0].getEntityValue(idMap); // todo: what about parent primary column?\n }\n return idMap;\n };\n /**\n * Compares two different entities by their ids.\n * Returns true if they match, false otherwise.\n */\n EntityMetadata.prototype.compareEntities = function (firstEntity, secondEntity) {\n var firstEntityIdMap = this.getEntityIdMap(firstEntity);\n if (!firstEntityIdMap)\n return false;\n var secondEntityIdMap = this.getEntityIdMap(secondEntity);\n if (!secondEntityIdMap)\n return false;\n return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_3__[\"OrmUtils\"].compareIds(firstEntityIdMap, secondEntityIdMap);\n };\n /**\n * Finds column with a given property name.\n */\n EntityMetadata.prototype.findColumnWithPropertyName = function (propertyName) {\n return this.columns.find(function (column) { return column.propertyName === propertyName; });\n };\n /**\n * Finds column with a given database name.\n */\n EntityMetadata.prototype.findColumnWithDatabaseName = function (databaseName) {\n return this.columns.find(function (column) { return column.databaseName === databaseName; });\n };\n /**\n * Finds column with a given property path.\n */\n EntityMetadata.prototype.findColumnWithPropertyPath = function (propertyPath) {\n var column = this.columns.find(function (column) { return column.propertyPath === propertyPath; });\n if (column)\n return column;\n // in the case if column with property path was not found, try to find a relation with such property path\n // if we find relation and it has a single join column then its the column user was seeking\n var relation = this.relations.find(function (relation) { return relation.propertyPath === propertyPath; });\n if (relation && relation.joinColumns.length === 1)\n return relation.joinColumns[0];\n return undefined;\n };\n /**\n * Finds columns with a given property path.\n * Property path can match a relation, and relations can contain multiple columns.\n */\n EntityMetadata.prototype.findColumnsWithPropertyPath = function (propertyPath) {\n var column = this.columns.find(function (column) { return column.propertyPath === propertyPath; });\n if (column)\n return [column];\n // in the case if column with property path was not found, try to find a relation with such property path\n // if we find relation and it has a single join column then its the column user was seeking\n var relation = this.relations.find(function (relation) { return relation.propertyPath === propertyPath; });\n if (relation && relation.joinColumns)\n return relation.joinColumns;\n return [];\n };\n /**\n * Finds relation with the given property path.\n */\n EntityMetadata.prototype.findRelationWithPropertyPath = function (propertyPath) {\n return this.relations.find(function (relation) { return relation.propertyPath === propertyPath; });\n };\n /**\n * Checks if there is an embedded with a given property path.\n */\n EntityMetadata.prototype.hasEmbeddedWithPropertyPath = function (propertyPath) {\n return this.allEmbeddeds.some(function (embedded) { return embedded.propertyPath === propertyPath; });\n };\n /**\n * Finds embedded with a given property path.\n */\n EntityMetadata.prototype.findEmbeddedWithPropertyPath = function (propertyPath) {\n return this.allEmbeddeds.find(function (embedded) { return embedded.propertyPath === propertyPath; });\n };\n /**\n * Iterates through entity and finds and extracts all values from relations in the entity.\n * If relation value is an array its being flattened.\n */\n EntityMetadata.prototype.extractRelationValuesFromEntity = function (entity, relations) {\n var _this = this;\n var relationsAndValues = [];\n relations.forEach(function (relation) {\n var value = relation.getEntityValue(entity);\n if (Array.isArray(value)) {\n value.forEach(function (subValue) { return relationsAndValues.push([relation, subValue, _this.getInverseEntityMetadata(subValue, relation)]); });\n }\n else if (value) {\n relationsAndValues.push([relation, value, _this.getInverseEntityMetadata(value, relation)]);\n }\n });\n return relationsAndValues;\n };\n EntityMetadata.prototype.getInverseEntityMetadata = function (value, relation) {\n var childEntityMetadata = relation.inverseEntityMetadata.childEntityMetadatas.find(function (metadata) {\n return metadata.target === value.constructor;\n });\n return childEntityMetadata ? childEntityMetadata : relation.inverseEntityMetadata;\n };\n // -------------------------------------------------------------------------\n // Public Static Methods\n // -------------------------------------------------------------------------\n /**\n * Creates a property paths for a given entity.\n */\n EntityMetadata.createPropertyPath = function (metadata, entity, prefix) {\n var _this = this;\n if (prefix === void 0) { prefix = \"\"; }\n var paths = [];\n Object.keys(entity).forEach(function (key) {\n // check for function is needed in the cases when createPropertyPath used on values containg a function as a value\n // example: .update().set({ name: () => `SUBSTR('', 1, 2)` })\n var parentPath = prefix ? prefix + \".\" + key : key;\n if (metadata.hasEmbeddedWithPropertyPath(parentPath)) {\n var subPaths = _this.createPropertyPath(metadata, entity[key], parentPath);\n paths.push.apply(paths, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(subPaths)));\n }\n else {\n var path = prefix ? prefix + \".\" + key : key;\n paths.push(path);\n }\n });\n return paths;\n };\n /**\n * Finds difference between two entity id maps.\n * Returns items that exist in the first array and absent in the second array.\n */\n EntityMetadata.difference = function (firstIdMaps, secondIdMaps) {\n return firstIdMaps.filter(function (firstIdMap) {\n return !secondIdMaps.find(function (secondIdMap) { return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_3__[\"OrmUtils\"].compareIds(firstIdMap, secondIdMap); });\n });\n };\n /**\n * Creates value map from the given values and columns.\n * Examples of usages are primary columns map and join columns map.\n */\n EntityMetadata.getValueMap = function (entity, columns, options) {\n return columns.reduce(function (map, column) {\n var value = column.getEntityValueMap(entity, options);\n // make sure that none of the values of the columns are not missing\n if (map === undefined || value === null || value === undefined)\n return undefined;\n return column.isObjectId ? Object.assign(map, value) : _util_OrmUtils__WEBPACK_IMPORTED_MODULE_3__[\"OrmUtils\"].mergeDeep(map, value);\n }, {});\n };\n // ---------------------------------------------------------------------\n // Public Builder Methods\n // ---------------------------------------------------------------------\n EntityMetadata.prototype.build = function () {\n var namingStrategy = this.connection.namingStrategy;\n var entityPrefix = this.connection.options.entityPrefix;\n this.engine = this.tableMetadataArgs.engine;\n this.database = this.tableMetadataArgs.type === \"entity-child\" && this.parentEntityMetadata ? this.parentEntityMetadata.database : this.tableMetadataArgs.database;\n if (this.tableMetadataArgs.schema) {\n this.schema = this.tableMetadataArgs.schema;\n }\n else if ((this.tableMetadataArgs.type === \"entity-child\") && this.parentEntityMetadata) {\n this.schema = this.parentEntityMetadata.schema;\n }\n else {\n this.schema = this.connection.options.schema;\n }\n this.givenTableName = this.tableMetadataArgs.type === \"entity-child\" && this.parentEntityMetadata ? this.parentEntityMetadata.givenTableName : this.tableMetadataArgs.name;\n this.synchronize = this.tableMetadataArgs.synchronize === false ? false : true;\n this.targetName = this.tableMetadataArgs.target instanceof Function ? this.tableMetadataArgs.target.name : this.tableMetadataArgs.target;\n if (this.tableMetadataArgs.type === \"closure-junction\") {\n this.tableNameWithoutPrefix = namingStrategy.closureJunctionTableName(this.givenTableName);\n }\n else if (this.tableMetadataArgs.type === \"entity-child\" && this.parentEntityMetadata) {\n this.tableNameWithoutPrefix = namingStrategy.tableName(this.parentEntityMetadata.targetName, this.parentEntityMetadata.givenTableName);\n }\n else {\n this.tableNameWithoutPrefix = namingStrategy.tableName(this.targetName, this.givenTableName);\n if (this.connection.driver.maxAliasLength && this.connection.driver.maxAliasLength > 0 && this.tableNameWithoutPrefix.length > this.connection.driver.maxAliasLength) {\n this.tableNameWithoutPrefix = Object(_util_StringUtils__WEBPACK_IMPORTED_MODULE_4__[\"shorten\"])(this.tableNameWithoutPrefix, { separator: \"_\", segmentLength: 3 });\n }\n }\n this.tableName = entityPrefix ? namingStrategy.prefixTableName(entityPrefix, this.tableNameWithoutPrefix) : this.tableNameWithoutPrefix;\n this.target = this.target ? this.target : this.tableName;\n this.name = this.targetName ? this.targetName : this.tableName;\n this.expression = this.tableMetadataArgs.expression;\n this.withoutRowid = this.tableMetadataArgs.withoutRowid === true ? true : false;\n this.tablePath = this.buildTablePath();\n this.schemaPath = this.buildSchemaPath();\n this.orderBy = (this.tableMetadataArgs.orderBy instanceof Function) ? this.tableMetadataArgs.orderBy(this.propertiesMap) : this.tableMetadataArgs.orderBy; // todo: is propertiesMap available here? Looks like its not\n this.isJunction = this.tableMetadataArgs.type === \"closure-junction\" || this.tableMetadataArgs.type === \"junction\";\n this.isClosureJunction = this.tableMetadataArgs.type === \"closure-junction\";\n };\n /**\n * Registers a new column in the entity and recomputes all depend properties.\n */\n EntityMetadata.prototype.registerColumn = function (column) {\n if (this.ownColumns.indexOf(column) !== -1)\n return;\n this.ownColumns.push(column);\n this.columns = this.embeddeds.reduce(function (columns, embedded) { return columns.concat(embedded.columnsFromTree); }, this.ownColumns);\n this.primaryColumns = this.columns.filter(function (column) { return column.isPrimary; });\n this.hasMultiplePrimaryKeys = this.primaryColumns.length > 1;\n this.hasUUIDGeneratedColumns = this.columns.filter(function (column) { return column.isGenerated || column.generationStrategy === \"uuid\"; }).length > 0;\n this.propertiesMap = this.createPropertiesMap();\n if (this.childEntityMetadatas)\n this.childEntityMetadatas.forEach(function (entityMetadata) { return entityMetadata.registerColumn(column); });\n };\n /**\n * Creates a special object - all columns and relations of the object (plus columns and relations from embeds)\n * in a special format - { propertyName: propertyName }.\n *\n * example: Post{ id: number, name: string, counterEmbed: { count: number }, category: Category }.\n * This method will create following object:\n * { id: \"id\", counterEmbed: { count: \"counterEmbed.count\" }, category: \"category\" }\n */\n EntityMetadata.prototype.createPropertiesMap = function () {\n var map = {};\n this.columns.forEach(function (column) { return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_3__[\"OrmUtils\"].mergeDeep(map, column.createValueMap(column.propertyPath)); });\n this.relations.forEach(function (relation) { return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_3__[\"OrmUtils\"].mergeDeep(map, relation.createValueMap(relation.propertyPath)); });\n return map;\n };\n /**\n * Builds table path using database name, schema name and table name.\n */\n EntityMetadata.prototype.buildTablePath = function () {\n var tablePath = this.tableName;\n if (this.schema && ((this.connection.driver instanceof _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"]) || (this.connection.driver instanceof _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"]) || (this.connection.driver instanceof _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"]) || (this.connection.driver instanceof _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_1__[\"SapDriver\"]))) {\n tablePath = this.schema + \".\" + tablePath;\n }\n if (this.database && !(this.connection.driver instanceof _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"])) {\n if (!this.schema && this.connection.driver instanceof _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"]) {\n tablePath = this.database + \"..\" + tablePath;\n }\n else {\n tablePath = this.database + \".\" + tablePath;\n }\n }\n return tablePath;\n };\n /**\n * Builds table path using schema name and database name.\n */\n EntityMetadata.prototype.buildSchemaPath = function () {\n if (!this.schema)\n return undefined;\n return this.database && !(this.connection.driver instanceof _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"]) ? this.database + \".\" + this.schema : this.schema;\n };\n return EntityMetadata;\n}());\n\n\n//# sourceMappingURL=EntityMetadata.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata/EntityMetadata.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata/ExclusionMetadata.js":
/*!********************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata/ExclusionMetadata.js ***!
\********************************************************************/
/*! exports provided: ExclusionMetadata */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ExclusionMetadata\", function() { return ExclusionMetadata; });\n/**\n * Exclusion metadata contains all information about table's exclusion constraints.\n */\nvar ExclusionMetadata = /** @class */ (function () {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n function ExclusionMetadata(options) {\n this.entityMetadata = options.entityMetadata;\n if (options.args) {\n this.target = options.args.target;\n this.expression = options.args.expression;\n this.givenName = options.args.name;\n }\n }\n // ---------------------------------------------------------------------\n // Public Build Methods\n // ---------------------------------------------------------------------\n /**\n * Builds some depend exclusion constraint properties.\n * Must be called after all entity metadata's properties map, columns and relations are built.\n */\n ExclusionMetadata.prototype.build = function (namingStrategy) {\n this.name = this.givenName ? this.givenName : namingStrategy.exclusionConstraintName(this.entityMetadata.tablePath, this.expression);\n return this;\n };\n return ExclusionMetadata;\n}());\n\n\n//# sourceMappingURL=ExclusionMetadata.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata/ExclusionMetadata.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata/ForeignKeyMetadata.js":
/*!*********************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata/ForeignKeyMetadata.js ***!
\*********************************************************************/
/*! exports provided: ForeignKeyMetadata */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ForeignKeyMetadata\", function() { return ForeignKeyMetadata; });\n/**\n * Contains all information about entity's foreign key.\n */\nvar ForeignKeyMetadata = /** @class */ (function () {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n function ForeignKeyMetadata(options) {\n /**\n * Array of columns of this foreign key.\n */\n this.columns = [];\n /**\n * Array of referenced columns.\n */\n this.referencedColumns = [];\n /**\n * Gets array of column names.\n */\n this.columnNames = [];\n /**\n * Gets array of referenced column names.\n */\n this.referencedColumnNames = [];\n this.entityMetadata = options.entityMetadata;\n this.referencedEntityMetadata = options.referencedEntityMetadata;\n this.columns = options.columns;\n this.referencedColumns = options.referencedColumns;\n this.onDelete = options.onDelete || \"NO ACTION\";\n this.onUpdate = options.onUpdate || \"NO ACTION\";\n this.deferrable = options.deferrable;\n if (options.namingStrategy)\n this.build(options.namingStrategy);\n }\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n /**\n * Builds some depend foreign key properties.\n * Must be called after all entity metadatas and their columns are built.\n */\n ForeignKeyMetadata.prototype.build = function (namingStrategy) {\n this.columnNames = this.columns.map(function (column) { return column.databaseName; });\n this.referencedColumnNames = this.referencedColumns.map(function (column) { return column.databaseName; });\n this.referencedTablePath = this.referencedEntityMetadata.tablePath;\n this.name = namingStrategy.foreignKeyName(this.entityMetadata.tablePath, this.columnNames, this.referencedTablePath, this.referencedColumnNames);\n };\n return ForeignKeyMetadata;\n}());\n\n\n//# sourceMappingURL=ForeignKeyMetadata.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata/ForeignKeyMetadata.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata/IndexMetadata.js":
/*!****************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata/IndexMetadata.js ***!
\****************************************************************/
/*! exports provided: IndexMetadata */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IndexMetadata\", function() { return IndexMetadata; });\n/**\n * Index metadata contains all information about table's index.\n */\nvar IndexMetadata = /** @class */ (function () {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n function IndexMetadata(options) {\n /**\n * Indicates if this index must be unique.\n */\n this.isUnique = false;\n /**\n * The SPATIAL modifier indexes the entire column and does not allow indexed columns to contain NULL values.\n * Works only in MySQL.\n */\n this.isSpatial = false;\n /**\n * The FULLTEXT modifier indexes the entire column and does not allow prefixing.\n * Works only in MySQL.\n */\n this.isFulltext = false;\n /**\n * Indicates if this index must synchronize with database index.\n */\n this.synchronize = true;\n /**\n * Indexed columns.\n */\n this.columns = [];\n /**\n * Map of column names with order set.\n * Used only by MongoDB driver.\n */\n this.columnNamesWithOrderingMap = {};\n this.entityMetadata = options.entityMetadata;\n this.embeddedMetadata = options.embeddedMetadata;\n if (options.columns)\n this.columns = options.columns;\n if (options.args) {\n this.target = options.args.target;\n if (options.args.synchronize !== null && options.args.synchronize !== undefined)\n this.synchronize = options.args.synchronize;\n this.isUnique = !!options.args.unique;\n this.isSpatial = !!options.args.spatial;\n this.isFulltext = !!options.args.fulltext;\n this.parser = options.args.parser;\n this.where = options.args.where;\n this.isSparse = options.args.sparse;\n this.isBackground = options.args.background;\n this.expireAfterSeconds = options.args.expireAfterSeconds;\n this.givenName = options.args.name;\n this.givenColumnNames = options.args.columns;\n }\n }\n // ---------------------------------------------------------------------\n // Public Build Methods\n // ---------------------------------------------------------------------\n /**\n * Builds some depend index properties.\n * Must be called after all entity metadata's properties map, columns and relations are built.\n */\n IndexMetadata.prototype.build = function (namingStrategy) {\n var _this = this;\n if (this.synchronize === false) {\n this.name = this.givenName;\n return this;\n }\n var map = {};\n // if columns already an array of string then simply return it\n if (this.givenColumnNames) {\n var columnPropertyPaths = [];\n if (Array.isArray(this.givenColumnNames)) {\n columnPropertyPaths = this.givenColumnNames.map(function (columnName) {\n if (_this.embeddedMetadata)\n return _this.embeddedMetadata.propertyPath + \".\" + columnName;\n return columnName;\n });\n columnPropertyPaths.forEach(function (propertyPath) { return map[propertyPath] = 1; });\n }\n else { // todo: indices in embeds are not implemented in this syntax. deprecate this syntax?\n // if columns is a function that returns array of field names then execute it and get columns names from it\n var columnsFnResult_1 = this.givenColumnNames(this.entityMetadata.propertiesMap);\n if (Array.isArray(columnsFnResult_1)) {\n columnPropertyPaths = columnsFnResult_1.map(function (i) { return String(i); });\n columnPropertyPaths.forEach(function (name) { return map[name] = 1; });\n }\n else {\n columnPropertyPaths = Object.keys(columnsFnResult_1).map(function (i) { return String(i); });\n Object.keys(columnsFnResult_1).forEach(function (columnName) { return map[columnName] = columnsFnResult_1[columnName]; });\n }\n }\n this.columns = columnPropertyPaths.map(function (propertyPath) {\n var columnWithSameName = _this.entityMetadata.columns.find(function (column) { return column.propertyPath === propertyPath; });\n if (columnWithSameName) {\n return [columnWithSameName];\n }\n var relationWithSameName = _this.entityMetadata.relations.find(function (relation) { return relation.isWithJoinColumn && relation.propertyName === propertyPath; });\n if (relationWithSameName) {\n return relationWithSameName.joinColumns;\n }\n var indexName = _this.givenName ? \"\\\"\" + _this.givenName + \"\\\" \" : \"\";\n var entityName = _this.entityMetadata.targetName;\n throw new Error(\"Index \" + indexName + \"contains column that is missing in the entity (\" + entityName + \"): \" + propertyPath);\n })\n .reduce(function (a, b) { return a.concat(b); });\n }\n this.columnNamesWithOrderingMap = Object.keys(map).reduce(function (updatedMap, key) {\n var column = _this.entityMetadata.columns.find(function (column) { return column.propertyPath === key; });\n if (column)\n updatedMap[column.databasePath] = map[key];\n return updatedMap;\n }, {});\n this.name = this.givenName ? this.givenName : namingStrategy.indexName(this.entityMetadata.tablePath, this.columns.map(function (column) { return column.databaseName; }), this.where);\n return this;\n };\n return IndexMetadata;\n}());\n\n\n//# sourceMappingURL=IndexMetadata.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata/IndexMetadata.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata/RelationCountMetadata.js":
/*!************************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata/RelationCountMetadata.js ***!
\************************************************************************/
/*! exports provided: RelationCountMetadata */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RelationCountMetadata\", function() { return RelationCountMetadata; });\n/**\n * Contains all information about entity's relation count.\n */\nvar RelationCountMetadata = /** @class */ (function () {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n function RelationCountMetadata(options) {\n this.entityMetadata = options.entityMetadata;\n this.target = options.args.target;\n this.propertyName = options.args.propertyName;\n this.relationNameOrFactory = options.args.relation;\n this.alias = options.args.alias;\n this.queryBuilderFactory = options.args.queryBuilderFactory;\n }\n // ---------------------------------------------------------------------\n // Public Builder Methods\n // ---------------------------------------------------------------------\n /**\n * Builds some depend relation count metadata properties.\n * This builder method should be used only after entity metadata, its properties map and all relations are build.\n */\n RelationCountMetadata.prototype.build = function () {\n var propertyPath = this.relationNameOrFactory instanceof Function ? this.relationNameOrFactory(this.entityMetadata.propertiesMap) : this.relationNameOrFactory;\n var relation = this.entityMetadata.findRelationWithPropertyPath(propertyPath);\n if (!relation)\n throw new Error(\"Cannot find relation \" + propertyPath + \". Wrong relation specified for @RelationCount decorator.\");\n this.relation = relation;\n };\n return RelationCountMetadata;\n}());\n\n\n//# sourceMappingURL=RelationCountMetadata.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata/RelationCountMetadata.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata/RelationIdMetadata.js":
/*!*********************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata/RelationIdMetadata.js ***!
\*********************************************************************/
/*! exports provided: RelationIdMetadata */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RelationIdMetadata\", function() { return RelationIdMetadata; });\n/**\n * Contains all information about entity's relation count.\n */\nvar RelationIdMetadata = /** @class */ (function () {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n function RelationIdMetadata(options) {\n this.entityMetadata = options.entityMetadata;\n this.target = options.args.target;\n this.propertyName = options.args.propertyName;\n this.relationNameOrFactory = options.args.relation;\n this.alias = options.args.alias;\n this.queryBuilderFactory = options.args.queryBuilderFactory;\n }\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n /**\n * Sets relation id value from the given entity.\n *\n * todo: make it to work in embeds as well.\n */\n RelationIdMetadata.prototype.setValue = function (entity) {\n var _this = this;\n var inverseEntity = this.relation.getEntityValue(entity);\n if (Array.isArray(inverseEntity)) {\n entity[this.propertyName] = inverseEntity.map(function (item) {\n return _this.relation.inverseEntityMetadata.getEntityIdMixedMap(item);\n }).filter(function (item) { return item !== null && item !== undefined; });\n }\n else {\n var value = this.relation.inverseEntityMetadata.getEntityIdMixedMap(inverseEntity);\n if (value !== undefined)\n entity[this.propertyName] = value;\n }\n };\n // ---------------------------------------------------------------------\n // Public Builder Methods\n // ---------------------------------------------------------------------\n /**\n * Builds some depend relation id properties.\n * This builder method should be used only after entity metadata, its properties map and all relations are build.\n */\n RelationIdMetadata.prototype.build = function () {\n var propertyPath = this.relationNameOrFactory instanceof Function ? this.relationNameOrFactory(this.entityMetadata.propertiesMap) : this.relationNameOrFactory;\n var relation = this.entityMetadata.findRelationWithPropertyPath(propertyPath);\n if (!relation)\n throw new Error(\"Cannot find relation \" + propertyPath + \". Wrong relation specified for @RelationId decorator.\");\n this.relation = relation;\n };\n return RelationIdMetadata;\n}());\n\n\n//# sourceMappingURL=RelationIdMetadata.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata/RelationIdMetadata.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata/RelationMetadata.js":
/*!*******************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata/RelationMetadata.js ***!
\*******************************************************************/
/*! exports provided: RelationMetadata */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RelationMetadata\", function() { return RelationMetadata; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _EntityMetadata__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./EntityMetadata */ \"./node_modules/typeorm/browser/metadata/EntityMetadata.js\");\n\n\n/**\n * Contains all information about some entity's relation.\n */\nvar RelationMetadata = /** @class */ (function () {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n function RelationMetadata(options) {\n /**\n * Indicates if this is a parent (can be only many-to-one relation) relation in the tree tables.\n */\n this.isTreeParent = false;\n /**\n * Indicates if this is a children (can be only one-to-many relation) relation in the tree tables.\n */\n this.isTreeChildren = false;\n /**\n * Indicates if this relation's column is a primary key.\n * Can be used only for many-to-one and owner one-to-one relations.\n */\n this.isPrimary = false;\n /**\n * Indicates if this relation is lazily loaded.\n */\n this.isLazy = false;\n /**\n * Indicates if this relation is eagerly loaded.\n */\n this.isEager = false;\n /**\n * Indicates if persistence is enabled for the relation.\n * 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.\n * If its disabled you can only change a relation from inverse side of a relation or using relation query builder functionality.\n * This is useful for performance optimization since its disabling avoid multiple extra queries during entity save.\n */\n this.persistenceEnabled = true;\n /**\n * If set to true then related objects are allowed to be inserted to the database.\n */\n this.isCascadeInsert = false;\n /**\n * If set to true then related objects are allowed to be updated in the database.\n */\n this.isCascadeUpdate = false;\n /**\n * If set to true then related objects are allowed to be remove from the database.\n */\n this.isCascadeRemove = false;\n /**\n * If set to true then related objects are allowed to be soft-removed from the database.\n */\n this.isCascadeSoftRemove = false;\n /**\n * If set to true then related objects are allowed to be recovered from the database.\n */\n this.isCascadeRecover = false;\n /**\n * Indicates if relation column value can be nullable or not.\n */\n this.isNullable = true;\n /**\n * Indicates whether foreign key constraints will be created for join columns.\n * Can be used only for many-to-one and owner one-to-one relations.\n * Defaults to true.\n */\n this.createForeignKeyConstraints = true;\n /**\n * Indicates if this side is an owner of this relation.\n */\n this.isOwning = false;\n /**\n * Checks if this relation's type is \"one-to-one\".\n */\n this.isOneToOne = false;\n /**\n * Checks if this relation is owner side of the \"one-to-one\" relation.\n * Owner side means this side of relation has a join column in the table.\n */\n this.isOneToOneOwner = false;\n /**\n * Checks if this relation has a join column (e.g. is it many-to-one or one-to-one owner side).\n */\n this.isWithJoinColumn = false;\n /**\n * Checks if this relation is NOT owner side of the \"one-to-one\" relation.\n * NOT owner side means this side of relation does not have a join column in the table.\n */\n this.isOneToOneNotOwner = false;\n /**\n * Checks if this relation's type is \"one-to-many\".\n */\n this.isOneToMany = false;\n /**\n * Checks if this relation's type is \"many-to-one\".\n */\n this.isManyToOne = false;\n /**\n * Checks if this relation's type is \"many-to-many\".\n */\n this.isManyToMany = false;\n /**\n * Checks if this relation's type is \"many-to-many\", and is owner side of the relationship.\n * Owner side means this side of relation has a join table.\n */\n this.isManyToManyOwner = false;\n /**\n * Checks if this relation's type is \"many-to-many\", and is NOT owner side of the relationship.\n * Not owner side means this side of relation does not have a join table.\n */\n this.isManyToManyNotOwner = false;\n /**\n * Foreign keys created for this relation.\n */\n this.foreignKeys = [];\n /**\n * Join table columns.\n * Join columns can be obtained only from owner side of the relation.\n * From non-owner side of the relation join columns will be empty.\n * If this relation is a many-to-one/one-to-one then it takes join columns from the current entity.\n * If this relation is many-to-many then it takes all owner join columns from the junction entity.\n */\n this.joinColumns = [];\n /**\n * Inverse join table columns.\n * Inverse join columns are supported only for many-to-many relations\n * and can be obtained only from owner side of the relation.\n * From non-owner side of the relation join columns will be undefined.\n */\n this.inverseJoinColumns = [];\n this.entityMetadata = options.entityMetadata;\n this.embeddedMetadata = options.embeddedMetadata;\n var args = options.args;\n this.target = args.target;\n this.propertyName = args.propertyName;\n this.relationType = args.relationType;\n if (args.inverseSideProperty)\n this.givenInverseSidePropertyFactory = args.inverseSideProperty;\n this.isLazy = args.isLazy || false;\n // this.isCascadeInsert = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf(\"insert\") !== -1);\n // this.isCascadeUpdate = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf(\"update\") !== -1);\n // this.isCascadeRemove = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf(\"remove\") !== -1);\n // this.isCascadeSoftRemove = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf(\"soft-remove\") !== -1);\n // this.isCascadeRecover = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf(\"recover\") !== -1);\n this.isCascadeInsert = args.options.cascade === true || (Array.isArray(args.options.cascade) && args.options.cascade.indexOf(\"insert\") !== -1);\n this.isCascadeUpdate = args.options.cascade === true || (Array.isArray(args.options.cascade) && args.options.cascade.indexOf(\"update\") !== -1);\n this.isCascadeRemove = args.options.cascade === true || (Array.isArray(args.options.cascade) && args.options.cascade.indexOf(\"remove\") !== -1);\n this.isCascadeSoftRemove = args.options.cascade === true || (Array.isArray(args.options.cascade) && args.options.cascade.indexOf(\"soft-remove\") !== -1);\n this.isCascadeRecover = args.options.cascade === true || (Array.isArray(args.options.cascade) && args.options.cascade.indexOf(\"recover\") !== -1);\n this.isPrimary = args.options.primary || false;\n this.isNullable = args.options.nullable === false || this.isPrimary ? false : true;\n this.onDelete = args.options.onDelete;\n this.onUpdate = args.options.onUpdate;\n this.deferrable = args.options.deferrable;\n this.createForeignKeyConstraints = args.options.createForeignKeyConstraints === false ? false : true;\n this.isEager = args.options.eager || false;\n this.persistenceEnabled = args.options.persistence === false ? false : true;\n this.orphanedRowAction = args.options.orphanedRowAction || \"nullify\";\n this.isTreeParent = args.isTreeParent || false;\n this.isTreeChildren = args.isTreeChildren || false;\n this.type = args.type instanceof Function ? args.type() : args.type;\n this.isOneToOne = this.relationType === \"one-to-one\";\n this.isOneToMany = this.relationType === \"one-to-many\";\n this.isManyToOne = this.relationType === \"many-to-one\";\n this.isManyToMany = this.relationType === \"many-to-many\";\n this.isOneToOneNotOwner = this.isOneToOne ? true : false;\n this.isManyToManyNotOwner = this.isManyToMany ? true : false;\n }\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n /**\n * Creates join column ids map from the given related entity ids array.\n */\n RelationMetadata.prototype.getRelationIdMap = function (entity) {\n var joinColumns = this.isOwning ? this.joinColumns : this.inverseRelation.joinColumns;\n var referencedColumns = joinColumns.map(function (joinColumn) { return joinColumn.referencedColumn; });\n // console.log(\"entity\", entity);\n // console.log(\"referencedColumns\", referencedColumns);\n return _EntityMetadata__WEBPACK_IMPORTED_MODULE_1__[\"EntityMetadata\"].getValueMap(entity, referencedColumns);\n };\n /**\n * Ensures that given object is an entity id map.\n * If given id is an object then it means its already id map.\n * If given id isn't an object then it means its a value of the id column\n * and it creates a new id map with this value and name of the primary column.\n */\n RelationMetadata.prototype.ensureRelationIdMap = function (id) {\n if (id instanceof Object)\n return id;\n var joinColumns = this.isOwning ? this.joinColumns : this.inverseRelation.joinColumns;\n var referencedColumns = joinColumns.map(function (joinColumn) { return joinColumn.referencedColumn; });\n if (referencedColumns.length > 1)\n throw new Error(\"Cannot create relation id map for a single value because relation contains multiple referenced columns.\");\n return referencedColumns[0].createValueMap(id);\n };\n /**\n * Extracts column value from the given entity.\n * If column is in embedded (or recursive embedded) it extracts its value from there.\n */\n RelationMetadata.prototype.getEntityValue = function (entity, getLazyRelationsPromiseValue) {\n if (getLazyRelationsPromiseValue === void 0) { getLazyRelationsPromiseValue = false; }\n if (entity === null || entity === undefined)\n return undefined;\n // extract column value from embeddeds of entity if column is in embedded\n if (this.embeddedMetadata) {\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n var propertyNames = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.embeddedMetadata.parentPropertyNames));\n // next we need to access post[data][information][counters][this.propertyName] to get column value from the counters\n // this recursive function takes array of generated property names and gets the post[data][information][counters] embed\n var extractEmbeddedColumnValue_1 = function (propertyNames, value) {\n var propertyName = propertyNames.shift();\n if (propertyName) {\n if (value[propertyName]) {\n return extractEmbeddedColumnValue_1(propertyNames, value[propertyName]);\n }\n return undefined;\n }\n return value;\n };\n // once we get nested embed object we get its column, e.g. post[data][information][counters][this.propertyName]\n var embeddedObject = extractEmbeddedColumnValue_1(propertyNames, entity);\n if (this.isLazy) {\n if (embeddedObject[\"__\" + this.propertyName + \"__\"] !== undefined)\n return embeddedObject[\"__\" + this.propertyName + \"__\"];\n if (getLazyRelationsPromiseValue === true)\n return embeddedObject[this.propertyName];\n return undefined;\n }\n return embeddedObject ? embeddedObject[this.isLazy ? \"__\" + this.propertyName + \"__\" : this.propertyName] : undefined;\n }\n else { // no embeds - no problems. Simply return column name by property name of the entity\n if (this.isLazy) {\n if (entity[\"__\" + this.propertyName + \"__\"] !== undefined)\n return entity[\"__\" + this.propertyName + \"__\"];\n if (getLazyRelationsPromiseValue === true)\n return entity[this.propertyName];\n return undefined;\n }\n return entity[this.propertyName];\n }\n };\n /**\n * Sets given entity's relation's value.\n * Using of this method helps to set entity relation's value of the lazy and non-lazy relations.\n *\n * If merge is set to true, it merges given value into currently\n */\n RelationMetadata.prototype.setEntityValue = function (entity, value) {\n var propertyName = this.isLazy ? \"__\" + this.propertyName + \"__\" : this.propertyName;\n if (this.embeddedMetadata) {\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n var extractEmbeddedColumnValue_2 = function (embeddedMetadatas, map) {\n // if (!object[embeddedMetadata.propertyName])\n // object[embeddedMetadata.propertyName] = embeddedMetadata.create();\n var embeddedMetadata = embeddedMetadatas.shift();\n if (embeddedMetadata) {\n if (!map[embeddedMetadata.propertyName])\n map[embeddedMetadata.propertyName] = embeddedMetadata.create();\n extractEmbeddedColumnValue_2(embeddedMetadatas, map[embeddedMetadata.propertyName]);\n return map;\n }\n map[propertyName] = value;\n return map;\n };\n return extractEmbeddedColumnValue_2(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.embeddedMetadata.embeddedMetadataTree)), entity);\n }\n else {\n entity[propertyName] = value;\n }\n };\n /**\n * Creates entity id map from the given entity ids array.\n */\n RelationMetadata.prototype.createValueMap = function (value) {\n var _a;\n var _this = this;\n // extract column value from embeds of entity if column is in embedded\n if (this.embeddedMetadata) {\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object and return it in a\n // { data: { information: { counters: { id: ... } } } } format\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n var propertyNames = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.embeddedMetadata.parentPropertyNames));\n // now need to access post[data][information][counters] to get column value from the counters\n // and on each step we need to create complex literal object, e.g. first { data },\n // then { data: { information } }, then { data: { information: { counters } } },\n // then { data: { information: { counters: [this.propertyName]: entity[data][information][counters][this.propertyName] } } }\n // this recursive function helps doing that\n var extractEmbeddedColumnValue_3 = function (propertyNames, map) {\n var propertyName = propertyNames.shift();\n if (propertyName) {\n map[propertyName] = {};\n extractEmbeddedColumnValue_3(propertyNames, map[propertyName]);\n return map;\n }\n map[_this.propertyName] = value;\n return map;\n };\n return extractEmbeddedColumnValue_3(propertyNames, {});\n }\n else { // no embeds - no problems. Simply return column property name and its value of the entity\n return _a = {}, _a[this.propertyName] = value, _a;\n }\n };\n // ---------------------------------------------------------------------\n // Builder Methods\n // ---------------------------------------------------------------------\n /**\n * Builds some depend relation metadata properties.\n * This builder method should be used only after embedded metadata tree was build.\n */\n RelationMetadata.prototype.build = function () {\n this.propertyPath = this.buildPropertyPath();\n };\n /**\n * Registers given foreign keys in the relation.\n * This builder method should be used to register foreign key in the relation.\n */\n RelationMetadata.prototype.registerForeignKeys = function () {\n var _a;\n var foreignKeys = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n foreignKeys[_i] = arguments[_i];\n }\n (_a = this.foreignKeys).push.apply(_a, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(foreignKeys)));\n };\n /**\n * Registers given join columns in the relation.\n * This builder method should be used to register join column in the relation.\n */\n RelationMetadata.prototype.registerJoinColumns = function (joinColumns, inverseJoinColumns) {\n if (joinColumns === void 0) { joinColumns = []; }\n if (inverseJoinColumns === void 0) { inverseJoinColumns = []; }\n this.joinColumns = joinColumns;\n this.inverseJoinColumns = inverseJoinColumns;\n this.isOwning = this.isManyToOne || ((this.isManyToMany || this.isOneToOne) && this.joinColumns.length > 0);\n this.isOneToOneOwner = this.isOneToOne && this.isOwning;\n this.isOneToOneNotOwner = this.isOneToOne && !this.isOwning;\n this.isManyToManyOwner = this.isManyToMany && this.isOwning;\n this.isManyToManyNotOwner = this.isManyToMany && !this.isOwning;\n this.isWithJoinColumn = this.isManyToOne || this.isOneToOneOwner;\n };\n /**\n * Registers a given junction entity metadata.\n * This builder method can be called after junction entity metadata for the many-to-many relation was created.\n */\n RelationMetadata.prototype.registerJunctionEntityMetadata = function (junctionEntityMetadata) {\n this.junctionEntityMetadata = junctionEntityMetadata;\n this.joinTableName = junctionEntityMetadata.tableName;\n if (this.inverseRelation) {\n this.inverseRelation.junctionEntityMetadata = junctionEntityMetadata;\n this.joinTableName = junctionEntityMetadata.tableName;\n }\n };\n /**\n * Builds inverse side property path based on given inverse side property factory.\n * This builder method should be used only after properties map of the inverse entity metadata was build.\n */\n RelationMetadata.prototype.buildInverseSidePropertyPath = function () {\n if (this.givenInverseSidePropertyFactory) {\n var ownerEntityPropertiesMap = this.inverseEntityMetadata.propertiesMap;\n if (typeof this.givenInverseSidePropertyFactory === \"function\")\n return this.givenInverseSidePropertyFactory(ownerEntityPropertiesMap);\n if (typeof this.givenInverseSidePropertyFactory === \"string\")\n return this.givenInverseSidePropertyFactory;\n }\n else if (this.isTreeParent && this.entityMetadata.treeChildrenRelation) {\n return this.entityMetadata.treeChildrenRelation.propertyName;\n }\n else if (this.isTreeChildren && this.entityMetadata.treeParentRelation) {\n return this.entityMetadata.treeParentRelation.propertyName;\n }\n return \"\";\n };\n /**\n * Builds relation's property path based on its embedded tree.\n */\n RelationMetadata.prototype.buildPropertyPath = function () {\n if (!this.embeddedMetadata || !this.embeddedMetadata.parentPropertyNames.length)\n return this.propertyName;\n return this.embeddedMetadata.parentPropertyNames.join(\".\") + \".\" + this.propertyName;\n };\n return RelationMetadata;\n}());\n\n\n//# sourceMappingURL=RelationMetadata.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata/RelationMetadata.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata/UniqueMetadata.js":
/*!*****************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata/UniqueMetadata.js ***!
\*****************************************************************/
/*! exports provided: UniqueMetadata */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UniqueMetadata\", function() { return UniqueMetadata; });\n/**\n * Unique metadata contains all information about table's unique constraints.\n */\nvar UniqueMetadata = /** @class */ (function () {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n function UniqueMetadata(options) {\n /**\n * Unique columns.\n */\n this.columns = [];\n /**\n * Map of column names with order set.\n * Used only by MongoDB driver.\n */\n this.columnNamesWithOrderingMap = {};\n this.entityMetadata = options.entityMetadata;\n this.embeddedMetadata = options.embeddedMetadata;\n if (options.columns)\n this.columns = options.columns;\n if (options.args) {\n this.target = options.args.target;\n this.givenName = options.args.name;\n this.givenColumnNames = options.args.columns;\n }\n }\n // ---------------------------------------------------------------------\n // Public Build Methods\n // ---------------------------------------------------------------------\n /**\n * Builds some depend unique constraint properties.\n * Must be called after all entity metadata's properties map, columns and relations are built.\n */\n UniqueMetadata.prototype.build = function (namingStrategy) {\n var _this = this;\n var map = {};\n // if columns already an array of string then simply return it\n if (this.givenColumnNames) {\n var columnPropertyPaths = [];\n if (Array.isArray(this.givenColumnNames)) {\n columnPropertyPaths = this.givenColumnNames.map(function (columnName) {\n if (_this.embeddedMetadata)\n return _this.embeddedMetadata.propertyPath + \".\" + columnName;\n return columnName;\n });\n columnPropertyPaths.forEach(function (propertyPath) { return map[propertyPath] = 1; });\n }\n else {\n // if columns is a function that returns array of field names then execute it and get columns names from it\n var columnsFnResult_1 = this.givenColumnNames(this.entityMetadata.propertiesMap);\n if (Array.isArray(columnsFnResult_1)) {\n columnPropertyPaths = columnsFnResult_1.map(function (i) { return String(i); });\n columnPropertyPaths.forEach(function (name) { return map[name] = 1; });\n }\n else {\n columnPropertyPaths = Object.keys(columnsFnResult_1).map(function (i) { return String(i); });\n Object.keys(columnsFnResult_1).forEach(function (columnName) { return map[columnName] = columnsFnResult_1[columnName]; });\n }\n }\n this.columns = columnPropertyPaths.map(function (propertyName) {\n var columnWithSameName = _this.entityMetadata.columns.find(function (column) { return column.propertyPath === propertyName; });\n if (columnWithSameName) {\n return [columnWithSameName];\n }\n var relationWithSameName = _this.entityMetadata.relations.find(function (relation) { return relation.isWithJoinColumn && relation.propertyName === propertyName; });\n if (relationWithSameName) {\n return relationWithSameName.joinColumns;\n }\n var indexName = _this.givenName ? \"\\\"\" + _this.givenName + \"\\\" \" : \"\";\n var entityName = _this.entityMetadata.targetName;\n throw new Error(\"Unique constraint \" + indexName + \"contains column that is missing in the entity (\" + entityName + \"): \" + propertyName);\n })\n .reduce(function (a, b) { return a.concat(b); });\n }\n this.columnNamesWithOrderingMap = Object.keys(map).reduce(function (updatedMap, key) {\n var column = _this.entityMetadata.columns.find(function (column) { return column.propertyPath === key; });\n if (column)\n updatedMap[column.databasePath] = map[key];\n return updatedMap;\n }, {});\n this.name = this.givenName ? this.givenName : namingStrategy.uniqueConstraintName(this.entityMetadata.tablePath, this.columns.map(function (column) { return column.databaseName; }));\n return this;\n };\n return UniqueMetadata;\n}());\n\n\n//# sourceMappingURL=UniqueMetadata.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata/UniqueMetadata.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/metadata/types/EventListenerTypes.js":
/*!***************************************************************************!*\
!*** ./node_modules/typeorm/browser/metadata/types/EventListenerTypes.js ***!
\***************************************************************************/
/*! exports provided: EventListenerTypes */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EventListenerTypes\", function() { return EventListenerTypes; });\n/**\n * Provides a constants for each entity listener type.\n */\nvar EventListenerTypes = /** @class */ (function () {\n function EventListenerTypes() {\n }\n EventListenerTypes.AFTER_LOAD = \"after-load\";\n EventListenerTypes.BEFORE_INSERT = \"before-insert\";\n EventListenerTypes.AFTER_INSERT = \"after-insert\";\n EventListenerTypes.BEFORE_UPDATE = \"before-update\";\n EventListenerTypes.AFTER_UPDATE = \"after-update\";\n EventListenerTypes.BEFORE_REMOVE = \"before-remove\";\n EventListenerTypes.AFTER_REMOVE = \"after-remove\";\n return EventListenerTypes;\n}());\n\n\n//# sourceMappingURL=EventListenerTypes.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/metadata/types/EventListenerTypes.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/migration/Migration.js":
/*!*************************************************************!*\
!*** ./node_modules/typeorm/browser/migration/Migration.js ***!
\*************************************************************/
/*! exports provided: Migration */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Migration\", function() { return Migration; });\n/**\n * Represents entity of the migration in the database.\n */\nvar Migration = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function Migration(id, timestamp, name, instance) {\n this.id = id;\n this.timestamp = timestamp;\n this.name = name;\n this.instance = instance;\n }\n return Migration;\n}());\n\n\n//# sourceMappingURL=Migration.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/migration/Migration.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/migration/MigrationExecutor.js":
/*!*********************************************************************!*\
!*** ./node_modules/typeorm/browser/migration/MigrationExecutor.js ***!
\*********************************************************************/
/*! exports provided: MigrationExecutor */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MigrationExecutor\", function() { return MigrationExecutor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../schema-builder/table/Table */ \"./node_modules/typeorm/browser/schema-builder/table/Table.js\");\n/* harmony import */ var _Migration__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Migration */ \"./node_modules/typeorm/browser/migration/Migration.js\");\n/* harmony import */ var _driver_sqlserver_SqlServerDriver__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../driver/sqlserver/SqlServerDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _driver_sqlserver_MssqlParameter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../driver/sqlserver/MssqlParameter */ \"./node_modules/typeorm/browser/driver/sqlserver/MssqlParameter.js\");\n\n\n\n\n\n\n/**\n * Executes migrations: runs pending and reverts previously executed migrations.\n */\nvar MigrationExecutor = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function MigrationExecutor(connection, queryRunner) {\n this.connection = connection;\n this.queryRunner = queryRunner;\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n /**\n * Indicates how migrations should be run in transactions.\n * all: all migrations are run in a single transaction\n * none: all migrations are run without a transaction\n * each: each migration is run in a separate transaction\n */\n this.transaction = \"all\";\n var options = this.connection.driver.options;\n this.migrationsTableName = connection.options.migrationsTableName || \"migrations\";\n this.migrationsTable = this.connection.driver.buildTableName(this.migrationsTableName, options.schema, options.database);\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Tries to execute a single migration given.\n */\n MigrationExecutor.prototype.executeMigration = function (migration) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, this.withQueryRunner(function (queryRunner) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.createMigrationsTableIfNotExist(queryRunner)];\n case 1:\n _a.sent();\n return [4 /*yield*/, migration.instance.up(queryRunner)];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.insertExecutedMigration(queryRunner, migration)];\n case 3:\n _a.sent();\n return [2 /*return*/, migration];\n }\n });\n }); })];\n });\n });\n };\n /**\n * Returns an array of all migrations.\n */\n MigrationExecutor.prototype.getAllMigrations = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, Promise.resolve(this.getMigrations())];\n });\n });\n };\n /**\n * Returns an array of all executed migrations.\n */\n MigrationExecutor.prototype.getExecutedMigrations = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, this.withQueryRunner(function (queryRunner) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.createMigrationsTableIfNotExist(queryRunner)];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.loadExecutedMigrations(queryRunner)];\n case 2: return [2 /*return*/, _a.sent()];\n }\n });\n }); })];\n });\n });\n };\n /**\n * Returns an array of all pending migrations.\n */\n MigrationExecutor.prototype.getPendingMigrations = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var allMigrations, executedMigrations;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getAllMigrations()];\n case 1:\n allMigrations = _a.sent();\n return [4 /*yield*/, this.getExecutedMigrations()];\n case 2:\n executedMigrations = _a.sent();\n return [2 /*return*/, allMigrations.filter(function (migration) {\n return !executedMigrations.find(function (executedMigration) {\n return executedMigration.name === migration.name;\n });\n })];\n }\n });\n });\n };\n /**\n * Inserts an executed migration.\n */\n MigrationExecutor.prototype.insertMigration = function (migration) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this.withQueryRunner(function (queryRunner) {\n _this.insertExecutedMigration(queryRunner, migration)\n .then(resolve)\n .catch(reject);\n });\n });\n };\n /**\n * Deletes an executed migration.\n */\n MigrationExecutor.prototype.deleteMigration = function (migration) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this.withQueryRunner(function (queryRunner) {\n _this.deleteExecutedMigration(queryRunner, migration)\n .then(resolve)\n .catch(reject);\n });\n });\n };\n /**\n * Lists all migrations and whether they have been executed or not\n * returns true if there are unapplied migrations\n */\n MigrationExecutor.prototype.showMigrations = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var hasUnappliedMigrations, queryRunner, executedMigrations, allMigrations, _loop_1, this_1, allMigrations_1, allMigrations_1_1, migration;\n var e_1, _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n hasUnappliedMigrations = false;\n queryRunner = this.queryRunner || this.connection.createQueryRunner();\n // create migrations table if its not created yet\n return [4 /*yield*/, this.createMigrationsTableIfNotExist(queryRunner)];\n case 1:\n // create migrations table if its not created yet\n _b.sent();\n return [4 /*yield*/, this.loadExecutedMigrations(queryRunner)];\n case 2:\n executedMigrations = _b.sent();\n allMigrations = this.getMigrations();\n _loop_1 = function (migration) {\n var executedMigration = executedMigrations.find(function (executedMigration) { return executedMigration.name === migration.name; });\n if (executedMigration) {\n this_1.connection.logger.logSchemaBuild(\" [X] \" + migration.name);\n }\n else {\n hasUnappliedMigrations = true;\n this_1.connection.logger.logSchemaBuild(\" [ ] \" + migration.name);\n }\n };\n this_1 = this;\n try {\n for (allMigrations_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(allMigrations), allMigrations_1_1 = allMigrations_1.next(); !allMigrations_1_1.done; allMigrations_1_1 = allMigrations_1.next()) {\n migration = allMigrations_1_1.value;\n _loop_1(migration);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (allMigrations_1_1 && !allMigrations_1_1.done && (_a = allMigrations_1.return)) _a.call(allMigrations_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (!!this.queryRunner) return [3 /*break*/, 4];\n return [4 /*yield*/, queryRunner.release()];\n case 3:\n _b.sent();\n _b.label = 4;\n case 4: return [2 /*return*/, hasUnappliedMigrations];\n }\n });\n });\n };\n /**\n * Executes all pending migrations. Pending migrations are migrations that are not yet executed,\n * thus not saved in the database.\n */\n MigrationExecutor.prototype.executePendingMigrations = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n 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;\n var e_2, _a;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n queryRunner = this.queryRunner || this.connection.createQueryRunner();\n // create migrations table if its not created yet\n return [4 /*yield*/, this.createMigrationsTableIfNotExist(queryRunner)];\n case 1:\n // create migrations table if its not created yet\n _b.sent();\n return [4 /*yield*/, this.loadExecutedMigrations(queryRunner)];\n case 2:\n executedMigrations = _b.sent();\n lastTimeExecutedMigration = this.getLatestTimestampMigration(executedMigrations);\n allMigrations = this.getMigrations();\n successMigrations = [];\n pendingMigrations = allMigrations.filter(function (migration) {\n // check if we already have executed migration\n var executedMigration = executedMigrations.find(function (executedMigration) { return executedMigration.name === migration.name; });\n if (executedMigration)\n return false;\n // migration is new and not executed. now check if its timestamp is correct\n // if (lastTimeExecutedMigration && migration.timestamp < lastTimeExecutedMigration.timestamp)\n // 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.`);\n // every check is passed means that migration was not run yet and we need to run it\n return true;\n });\n if (!!pendingMigrations.length) return [3 /*break*/, 5];\n this.connection.logger.logSchemaBuild(\"No migrations are pending\");\n if (!!this.queryRunner) return [3 /*break*/, 4];\n return [4 /*yield*/, queryRunner.release()];\n case 3:\n _b.sent();\n _b.label = 4;\n case 4: return [2 /*return*/, []];\n case 5:\n // log information about migration execution\n this.connection.logger.logSchemaBuild(executedMigrations.length + \" migrations are already loaded in the database.\");\n this.connection.logger.logSchemaBuild(allMigrations.length + \" migrations were found in the source code.\");\n if (lastTimeExecutedMigration)\n this.connection.logger.logSchemaBuild(lastTimeExecutedMigration.name + \" is the last executed migration. It was executed on \" + new Date(lastTimeExecutedMigration.timestamp).toString() + \".\");\n this.connection.logger.logSchemaBuild(pendingMigrations.length + \" migrations are new migrations that needs to be executed.\");\n transactionStartedByUs = false;\n if (!(this.transaction === \"all\" && !queryRunner.isTransactionActive)) return [3 /*break*/, 7];\n return [4 /*yield*/, queryRunner.startTransaction()];\n case 6:\n _b.sent();\n transactionStartedByUs = true;\n _b.label = 7;\n case 7:\n _b.trys.push([7, 18, 23, 26]);\n _loop_2 = function (migration) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (!(this_2.transaction === \"each\" && !queryRunner.isTransactionActive)) return [3 /*break*/, 2];\n return [4 /*yield*/, queryRunner.startTransaction()];\n case 1:\n _c.sent();\n transactionStartedByUs = true;\n _c.label = 2;\n case 2: return [4 /*yield*/, migration.instance.up(queryRunner)\n .then(function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: // now when migration is executed we need to insert record about it into the database\n return [4 /*yield*/, this.insertExecutedMigration(queryRunner, migration)];\n case 1:\n _a.sent();\n if (!(this.transaction === \"each\" && transactionStartedByUs)) return [3 /*break*/, 3];\n return [4 /*yield*/, queryRunner.commitTransaction()];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n }); })\n .then(function () {\n successMigrations.push(migration);\n _this.connection.logger.logSchemaBuild(\"Migration \" + migration.name + \" has been executed successfully.\");\n })];\n case 3:\n _c.sent();\n return [2 /*return*/];\n }\n });\n };\n this_2 = this;\n _b.label = 8;\n case 8:\n _b.trys.push([8, 13, 14, 15]);\n pendingMigrations_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(pendingMigrations), pendingMigrations_1_1 = pendingMigrations_1.next();\n _b.label = 9;\n case 9:\n if (!!pendingMigrations_1_1.done) return [3 /*break*/, 12];\n migration = pendingMigrations_1_1.value;\n return [5 /*yield**/, _loop_2(migration)];\n case 10:\n _b.sent();\n _b.label = 11;\n case 11:\n pendingMigrations_1_1 = pendingMigrations_1.next();\n return [3 /*break*/, 9];\n case 12: return [3 /*break*/, 15];\n case 13:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3 /*break*/, 15];\n case 14:\n try {\n if (pendingMigrations_1_1 && !pendingMigrations_1_1.done && (_a = pendingMigrations_1.return)) _a.call(pendingMigrations_1);\n }\n finally { if (e_2) throw e_2.error; }\n return [7 /*endfinally*/];\n case 15:\n if (!(this.transaction === \"all\" && transactionStartedByUs)) return [3 /*break*/, 17];\n return [4 /*yield*/, queryRunner.commitTransaction()];\n case 16:\n _b.sent();\n _b.label = 17;\n case 17: return [3 /*break*/, 26];\n case 18:\n err_1 = _b.sent();\n if (!transactionStartedByUs) return [3 /*break*/, 22];\n _b.label = 19;\n case 19:\n _b.trys.push([19, 21, , 22]);\n return [4 /*yield*/, queryRunner.rollbackTransaction()];\n case 20:\n _b.sent();\n return [3 /*break*/, 22];\n case 21:\n rollbackError_1 = _b.sent();\n return [3 /*break*/, 22];\n case 22: throw err_1;\n case 23:\n if (!!this.queryRunner) return [3 /*break*/, 25];\n return [4 /*yield*/, queryRunner.release()];\n case 24:\n _b.sent();\n _b.label = 25;\n case 25: return [7 /*endfinally*/];\n case 26: return [2 /*return*/, successMigrations];\n }\n });\n });\n };\n /**\n * Reverts last migration that were run.\n */\n MigrationExecutor.prototype.undoLastMigration = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var queryRunner, executedMigrations, lastTimeExecutedMigration, allMigrations, migrationToRevert, transactionStartedByUs, err_2, rollbackError_2;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n queryRunner = this.queryRunner || this.connection.createQueryRunner();\n // create migrations table if its not created yet\n return [4 /*yield*/, this.createMigrationsTableIfNotExist(queryRunner)];\n case 1:\n // create migrations table if its not created yet\n _a.sent();\n return [4 /*yield*/, this.loadExecutedMigrations(queryRunner)];\n case 2:\n executedMigrations = _a.sent();\n lastTimeExecutedMigration = this.getLatestExecutedMigration(executedMigrations);\n // if no migrations found in the database then nothing to revert\n if (!lastTimeExecutedMigration) {\n this.connection.logger.logSchemaBuild(\"No migrations was found in the database. Nothing to revert!\");\n return [2 /*return*/];\n }\n allMigrations = this.getMigrations();\n migrationToRevert = allMigrations.find(function (migration) { return migration.name === lastTimeExecutedMigration.name; });\n // if no migrations found in the database then nothing to revert\n if (!migrationToRevert)\n 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.\");\n // log information about migration execution\n this.connection.logger.logSchemaBuild(executedMigrations.length + \" migrations are already loaded in the database.\");\n this.connection.logger.logSchemaBuild(lastTimeExecutedMigration.name + \" is the last executed migration. It was executed on \" + new Date(lastTimeExecutedMigration.timestamp).toString() + \".\");\n this.connection.logger.logSchemaBuild(\"Now reverting it...\");\n transactionStartedByUs = false;\n if (!((this.transaction !== \"none\") && !queryRunner.isTransactionActive)) return [3 /*break*/, 4];\n return [4 /*yield*/, queryRunner.startTransaction()];\n case 3:\n _a.sent();\n transactionStartedByUs = true;\n _a.label = 4;\n case 4:\n _a.trys.push([4, 9, 14, 17]);\n return [4 /*yield*/, migrationToRevert.instance.down(queryRunner)];\n case 5:\n _a.sent();\n return [4 /*yield*/, this.deleteExecutedMigration(queryRunner, migrationToRevert)];\n case 6:\n _a.sent();\n this.connection.logger.logSchemaBuild(\"Migration \" + migrationToRevert.name + \" has been reverted successfully.\");\n if (!transactionStartedByUs) return [3 /*break*/, 8];\n return [4 /*yield*/, queryRunner.commitTransaction()];\n case 7:\n _a.sent();\n _a.label = 8;\n case 8: return [3 /*break*/, 17];\n case 9:\n err_2 = _a.sent();\n if (!transactionStartedByUs) return [3 /*break*/, 13];\n _a.label = 10;\n case 10:\n _a.trys.push([10, 12, , 13]);\n return [4 /*yield*/, queryRunner.rollbackTransaction()];\n case 11:\n _a.sent();\n return [3 /*break*/, 13];\n case 12:\n rollbackError_2 = _a.sent();\n return [3 /*break*/, 13];\n case 13: throw err_2;\n case 14:\n if (!!this.queryRunner) return [3 /*break*/, 16];\n return [4 /*yield*/, queryRunner.release()];\n case 15:\n _a.sent();\n _a.label = 16;\n case 16: return [7 /*endfinally*/];\n case 17: return [2 /*return*/];\n }\n });\n });\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Creates table \"migrations\" that will store information about executed migrations.\n */\n MigrationExecutor.prototype.createMigrationsTableIfNotExist = function (queryRunner) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var tableExist;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n // If driver is mongo no need to create\n if (this.connection.driver instanceof _driver_sqlserver_SqlServerDriver__WEBPACK_IMPORTED_MODULE_3__[\"MongoDriver\"]) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, queryRunner.hasTable(this.migrationsTable)];\n case 1:\n tableExist = _a.sent();\n if (!!tableExist) return [3 /*break*/, 3];\n return [4 /*yield*/, queryRunner.createTable(new _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_1__[\"Table\"]({\n name: this.migrationsTable,\n columns: [\n {\n name: \"id\",\n type: this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationId }),\n isGenerated: true,\n generationStrategy: \"increment\",\n isPrimary: true,\n isNullable: false\n },\n {\n name: \"timestamp\",\n type: this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationTimestamp }),\n isPrimary: false,\n isNullable: false\n },\n {\n name: \"name\",\n type: this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationName }),\n isNullable: false\n },\n ]\n }))];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Loads all migrations that were executed and saved into the database (sorts by id).\n */\n MigrationExecutor.prototype.loadExecutedMigrations = function (queryRunner) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var mongoRunner, migrationsRaw;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(this.connection.driver instanceof _driver_sqlserver_SqlServerDriver__WEBPACK_IMPORTED_MODULE_3__[\"MongoDriver\"])) return [3 /*break*/, 2];\n mongoRunner = queryRunner;\n return [4 /*yield*/, mongoRunner.databaseConnection\n .db(this.connection.driver.database)\n .collection(this.migrationsTableName)\n .find()\n .sort({ \"_id\": -1 })\n .toArray()];\n case 1: return [2 /*return*/, _a.sent()];\n case 2: return [4 /*yield*/, this.connection.manager\n .createQueryBuilder(queryRunner)\n .select()\n .orderBy(this.connection.driver.escape(\"id\"), \"DESC\")\n .from(this.migrationsTable, this.migrationsTableName)\n .getRawMany()];\n case 3:\n migrationsRaw = _a.sent();\n return [2 /*return*/, migrationsRaw.map(function (migrationRaw) {\n return new _Migration__WEBPACK_IMPORTED_MODULE_2__[\"Migration\"](parseInt(migrationRaw[\"id\"]), parseInt(migrationRaw[\"timestamp\"]), migrationRaw[\"name\"]);\n })];\n }\n });\n });\n };\n /**\n * Gets all migrations that setup for this connection.\n */\n MigrationExecutor.prototype.getMigrations = function () {\n var migrations = this.connection.migrations.map(function (migration) {\n var migrationClassName = migration.name || migration.constructor.name;\n var migrationTimestamp = parseInt(migrationClassName.substr(-13), 10);\n if (!migrationTimestamp || isNaN(migrationTimestamp)) {\n throw new Error(migrationClassName + \" migration name is wrong. Migration class name should have a JavaScript timestamp appended.\");\n }\n return new _Migration__WEBPACK_IMPORTED_MODULE_2__[\"Migration\"](undefined, migrationTimestamp, migrationClassName, migration);\n });\n this.checkForDuplicateMigrations(migrations);\n // sort them by timestamp\n return migrations.sort(function (a, b) { return a.timestamp - b.timestamp; });\n };\n MigrationExecutor.prototype.checkForDuplicateMigrations = function (migrations) {\n var migrationNames = migrations.map(function (migration) { return migration.name; });\n var duplicates = Array.from(new Set(migrationNames.filter(function (migrationName, index) { return migrationNames.indexOf(migrationName) < index; })));\n if (duplicates.length > 0) {\n throw Error(\"Duplicate migrations: \" + duplicates.join(\", \"));\n }\n };\n /**\n * Finds the latest migration (sorts by timestamp) in the given array of migrations.\n */\n MigrationExecutor.prototype.getLatestTimestampMigration = function (migrations) {\n var sortedMigrations = migrations.map(function (migration) { return migration; }).sort(function (a, b) { return (a.timestamp - b.timestamp) * -1; });\n return sortedMigrations.length > 0 ? sortedMigrations[0] : undefined;\n };\n /**\n * Finds the latest migration in the given array of migrations.\n * PRE: Migration array must be sorted by descending id.\n */\n MigrationExecutor.prototype.getLatestExecutedMigration = function (sortedMigrations) {\n return sortedMigrations.length > 0 ? sortedMigrations[0] : undefined;\n };\n /**\n * Inserts new executed migration's data into migrations table.\n */\n MigrationExecutor.prototype.insertExecutedMigration = function (queryRunner, migration) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var values, mongoRunner, qb;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n values = {};\n if (this.connection.driver instanceof _driver_sqlserver_SqlServerDriver__WEBPACK_IMPORTED_MODULE_3__[\"SqlServerDriver\"]) {\n values[\"timestamp\"] = new _driver_sqlserver_MssqlParameter__WEBPACK_IMPORTED_MODULE_4__[\"MssqlParameter\"](migration.timestamp, this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationTimestamp }));\n values[\"name\"] = new _driver_sqlserver_MssqlParameter__WEBPACK_IMPORTED_MODULE_4__[\"MssqlParameter\"](migration.name, this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationName }));\n }\n else {\n values[\"timestamp\"] = migration.timestamp;\n values[\"name\"] = migration.name;\n }\n if (!(this.connection.driver instanceof _driver_sqlserver_SqlServerDriver__WEBPACK_IMPORTED_MODULE_3__[\"MongoDriver\"])) return [3 /*break*/, 2];\n mongoRunner = queryRunner;\n return [4 /*yield*/, mongoRunner.databaseConnection.db(this.connection.driver.database).collection(this.migrationsTableName).insert(values)];\n case 1:\n _a.sent();\n return [3 /*break*/, 4];\n case 2:\n qb = queryRunner.manager.createQueryBuilder();\n return [4 /*yield*/, qb.insert()\n .into(this.migrationsTable)\n .values(values)\n .execute()];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Delete previously executed migration's data from the migrations table.\n */\n MigrationExecutor.prototype.deleteExecutedMigration = function (queryRunner, migration) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var conditions, mongoRunner, qb;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n conditions = {};\n if (this.connection.driver instanceof _driver_sqlserver_SqlServerDriver__WEBPACK_IMPORTED_MODULE_3__[\"SqlServerDriver\"]) {\n conditions[\"timestamp\"] = new _driver_sqlserver_MssqlParameter__WEBPACK_IMPORTED_MODULE_4__[\"MssqlParameter\"](migration.timestamp, this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationTimestamp }));\n conditions[\"name\"] = new _driver_sqlserver_MssqlParameter__WEBPACK_IMPORTED_MODULE_4__[\"MssqlParameter\"](migration.name, this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationName }));\n }\n else {\n conditions[\"timestamp\"] = migration.timestamp;\n conditions[\"name\"] = migration.name;\n }\n if (!(this.connection.driver instanceof _driver_sqlserver_SqlServerDriver__WEBPACK_IMPORTED_MODULE_3__[\"MongoDriver\"])) return [3 /*break*/, 2];\n mongoRunner = queryRunner;\n return [4 /*yield*/, mongoRunner.databaseConnection.db(this.connection.driver.database).collection(this.migrationsTableName).deleteOne(conditions)];\n case 1:\n _a.sent();\n return [3 /*break*/, 4];\n case 2:\n qb = queryRunner.manager.createQueryBuilder();\n return [4 /*yield*/, qb.delete()\n .from(this.migrationsTable)\n .where(qb.escape(\"timestamp\") + \" = :timestamp\")\n .andWhere(qb.escape(\"name\") + \" = :name\")\n .setParameters(conditions)\n .execute()];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n MigrationExecutor.prototype.withQueryRunner = function (callback) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var queryRunner;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n queryRunner = this.queryRunner || this.connection.createQueryRunner();\n _a.label = 1;\n case 1:\n _a.trys.push([1, , 2, 5]);\n return [2 /*return*/, callback(queryRunner)];\n case 2:\n if (!!this.queryRunner) return [3 /*break*/, 4];\n return [4 /*yield*/, queryRunner.release()];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4: return [7 /*endfinally*/];\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n return MigrationExecutor;\n}());\n\n\n//# sourceMappingURL=MigrationExecutor.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/migration/MigrationExecutor.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/naming-strategy/DefaultNamingStrategy.js":
/*!*******************************************************************************!*\
!*** ./node_modules/typeorm/browser/naming-strategy/DefaultNamingStrategy.js ***!
\*******************************************************************************/
/*! exports provided: DefaultNamingStrategy */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DefaultNamingStrategy\", function() { return DefaultNamingStrategy; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_RandomGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/RandomGenerator */ \"./node_modules/typeorm/browser/util/RandomGenerator.js\");\n/* harmony import */ var _util_StringUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/StringUtils */ \"./node_modules/typeorm/browser/util/StringUtils.js\");\n/* harmony import */ var _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../schema-builder/table/Table */ \"./node_modules/typeorm/browser/schema-builder/table/Table.js\");\n\n\n\n\n/**\n * Naming strategy that is used by default.\n */\nvar DefaultNamingStrategy = /** @class */ (function () {\n function DefaultNamingStrategy() {\n this.nestedSetColumnNames = { left: \"nsleft\", right: \"nsright\" };\n this.materializedPathColumnName = \"mpath\";\n }\n /**\n * Normalizes table name.\n *\n * @param targetName Name of the target entity that can be used to generate a table name.\n * @param userSpecifiedName For example if user specified a table name in a decorator, e.g. @Entity(\"name\")\n */\n DefaultNamingStrategy.prototype.tableName = function (targetName, userSpecifiedName) {\n return userSpecifiedName ? userSpecifiedName : Object(_util_StringUtils__WEBPACK_IMPORTED_MODULE_2__[\"snakeCase\"])(targetName);\n };\n /**\n * Creates a table name for a junction table of a closure table.\n *\n * @param originalClosureTableName Name of the closure table which owns this junction table.\n */\n DefaultNamingStrategy.prototype.closureJunctionTableName = function (originalClosureTableName) {\n return originalClosureTableName + \"_closure\";\n };\n DefaultNamingStrategy.prototype.columnName = function (propertyName, customName, embeddedPrefixes) {\n var name = customName || propertyName;\n if (embeddedPrefixes.length)\n return Object(_util_StringUtils__WEBPACK_IMPORTED_MODULE_2__[\"camelCase\"])(embeddedPrefixes.join(\"_\")) + Object(_util_StringUtils__WEBPACK_IMPORTED_MODULE_2__[\"titleCase\"])(name);\n return name;\n };\n DefaultNamingStrategy.prototype.relationName = function (propertyName) {\n return propertyName;\n };\n DefaultNamingStrategy.prototype.primaryKeyName = function (tableOrName, columnNames) {\n // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n var clonedColumnNames = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(columnNames));\n clonedColumnNames.sort();\n var tableName = tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_3__[\"Table\"] ? tableOrName.name : tableOrName;\n var replacedTableName = tableName.replace(\".\", \"_\");\n var key = replacedTableName + \"_\" + clonedColumnNames.join(\"_\");\n return \"PK_\" + _util_RandomGenerator__WEBPACK_IMPORTED_MODULE_1__[\"RandomGenerator\"].sha1(key).substr(0, 27);\n };\n DefaultNamingStrategy.prototype.uniqueConstraintName = function (tableOrName, columnNames) {\n // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n var clonedColumnNames = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(columnNames));\n clonedColumnNames.sort();\n var tableName = tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_3__[\"Table\"] ? tableOrName.name : tableOrName;\n var replacedTableName = tableName.replace(\".\", \"_\");\n var key = replacedTableName + \"_\" + clonedColumnNames.join(\"_\");\n return \"UQ_\" + _util_RandomGenerator__WEBPACK_IMPORTED_MODULE_1__[\"RandomGenerator\"].sha1(key).substr(0, 27);\n };\n DefaultNamingStrategy.prototype.relationConstraintName = function (tableOrName, columnNames, where) {\n // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n var clonedColumnNames = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(columnNames));\n clonedColumnNames.sort();\n var tableName = tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_3__[\"Table\"] ? tableOrName.name : tableOrName;\n var replacedTableName = tableName.replace(\".\", \"_\");\n var key = replacedTableName + \"_\" + clonedColumnNames.join(\"_\");\n if (where)\n key += \"_\" + where;\n return \"REL_\" + _util_RandomGenerator__WEBPACK_IMPORTED_MODULE_1__[\"RandomGenerator\"].sha1(key).substr(0, 26);\n };\n DefaultNamingStrategy.prototype.defaultConstraintName = function (tableOrName, columnName) {\n var tableName = tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_3__[\"Table\"] ? tableOrName.name : tableOrName;\n var replacedTableName = tableName.replace(\".\", \"_\");\n var key = replacedTableName + \"_\" + columnName;\n return \"DF_\" + _util_RandomGenerator__WEBPACK_IMPORTED_MODULE_1__[\"RandomGenerator\"].sha1(key).substr(0, 27);\n };\n DefaultNamingStrategy.prototype.foreignKeyName = function (tableOrName, columnNames, _referencedTablePath, _referencedColumnNames) {\n // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n var clonedColumnNames = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(columnNames));\n clonedColumnNames.sort();\n var tableName = tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_3__[\"Table\"] ? tableOrName.name : tableOrName;\n var replacedTableName = tableName.replace(\".\", \"_\");\n var key = replacedTableName + \"_\" + clonedColumnNames.join(\"_\");\n return \"FK_\" + _util_RandomGenerator__WEBPACK_IMPORTED_MODULE_1__[\"RandomGenerator\"].sha1(key).substr(0, 27);\n };\n DefaultNamingStrategy.prototype.indexName = function (tableOrName, columnNames, where) {\n // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n var clonedColumnNames = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(columnNames));\n clonedColumnNames.sort();\n var tableName = tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_3__[\"Table\"] ? tableOrName.name : tableOrName;\n var replacedTableName = tableName.replace(\".\", \"_\");\n var key = replacedTableName + \"_\" + clonedColumnNames.join(\"_\");\n if (where)\n key += \"_\" + where;\n return \"IDX_\" + _util_RandomGenerator__WEBPACK_IMPORTED_MODULE_1__[\"RandomGenerator\"].sha1(key).substr(0, 26);\n };\n DefaultNamingStrategy.prototype.checkConstraintName = function (tableOrName, expression, isEnum) {\n var tableName = tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_3__[\"Table\"] ? tableOrName.name : tableOrName;\n var replacedTableName = tableName.replace(\".\", \"_\");\n var key = replacedTableName + \"_\" + expression;\n var name = \"CHK_\" + _util_RandomGenerator__WEBPACK_IMPORTED_MODULE_1__[\"RandomGenerator\"].sha1(key).substr(0, 26);\n return isEnum ? name + \"_ENUM\" : name;\n };\n DefaultNamingStrategy.prototype.exclusionConstraintName = function (tableOrName, expression) {\n var tableName = tableOrName instanceof _schema_builder_table_Table__WEBPACK_IMPORTED_MODULE_3__[\"Table\"] ? tableOrName.name : tableOrName;\n var replacedTableName = tableName.replace(\".\", \"_\");\n var key = replacedTableName + \"_\" + expression;\n return \"XCL_\" + _util_RandomGenerator__WEBPACK_IMPORTED_MODULE_1__[\"RandomGenerator\"].sha1(key).substr(0, 26);\n };\n DefaultNamingStrategy.prototype.joinColumnName = function (relationName, referencedColumnName) {\n return Object(_util_StringUtils__WEBPACK_IMPORTED_MODULE_2__[\"camelCase\"])(relationName + \"_\" + referencedColumnName);\n };\n DefaultNamingStrategy.prototype.joinTableName = function (firstTableName, secondTableName, firstPropertyName, secondPropertyName) {\n return Object(_util_StringUtils__WEBPACK_IMPORTED_MODULE_2__[\"snakeCase\"])(firstTableName + \"_\" + firstPropertyName.replace(/\\./gi, \"_\") + \"_\" + secondTableName);\n };\n DefaultNamingStrategy.prototype.joinTableColumnDuplicationPrefix = function (columnName, index) {\n return columnName + \"_\" + index;\n };\n DefaultNamingStrategy.prototype.joinTableColumnName = function (tableName, propertyName, columnName) {\n return Object(_util_StringUtils__WEBPACK_IMPORTED_MODULE_2__[\"camelCase\"])(tableName + \"_\" + (columnName ? columnName : propertyName));\n };\n DefaultNamingStrategy.prototype.joinTableInverseColumnName = function (tableName, propertyName, columnName) {\n return this.joinTableColumnName(tableName, propertyName, columnName);\n };\n /**\n * Adds globally set prefix to the table name.\n * This method is executed no matter if prefix was set or not.\n * Table name is either user's given table name, either name generated from entity target.\n * Note that table name comes here already normalized by #tableName method.\n */\n DefaultNamingStrategy.prototype.prefixTableName = function (prefix, tableName) {\n return prefix + tableName;\n };\n DefaultNamingStrategy.prototype.eagerJoinRelationAlias = function (alias, propertyPath) {\n return alias + \"_\" + propertyPath.replace(\".\", \"_\");\n };\n return DefaultNamingStrategy;\n}());\n\n\n//# sourceMappingURL=DefaultNamingStrategy.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/naming-strategy/DefaultNamingStrategy.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/persistence/EntityPersistExecutor.js":
/*!***************************************************************************!*\
!*** ./node_modules/typeorm/browser/persistence/EntityPersistExecutor.js ***!
\***************************************************************************/
/*! exports provided: EntityPersistExecutor */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EntityPersistExecutor\", function() { return EntityPersistExecutor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _error_MustBeEntityError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../error/MustBeEntityError */ \"./node_modules/typeorm/browser/error/MustBeEntityError.js\");\n/* harmony import */ var _SubjectExecutor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SubjectExecutor */ \"./node_modules/typeorm/browser/persistence/SubjectExecutor.js\");\n/* harmony import */ var _error_CannotDetermineEntityError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../error/CannotDetermineEntityError */ \"./node_modules/typeorm/browser/error/CannotDetermineEntityError.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Subject */ \"./node_modules/typeorm/browser/persistence/Subject.js\");\n/* harmony import */ var _subject_builder_OneToManySubjectBuilder__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./subject-builder/OneToManySubjectBuilder */ \"./node_modules/typeorm/browser/persistence/subject-builder/OneToManySubjectBuilder.js\");\n/* harmony import */ var _subject_builder_OneToOneInverseSideSubjectBuilder__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./subject-builder/OneToOneInverseSideSubjectBuilder */ \"./node_modules/typeorm/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js\");\n/* harmony import */ var _subject_builder_ManyToManySubjectBuilder__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./subject-builder/ManyToManySubjectBuilder */ \"./node_modules/typeorm/browser/persistence/subject-builder/ManyToManySubjectBuilder.js\");\n/* harmony import */ var _SubjectDatabaseEntityLoader__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./SubjectDatabaseEntityLoader */ \"./node_modules/typeorm/browser/persistence/SubjectDatabaseEntityLoader.js\");\n/* harmony import */ var _subject_builder_CascadesSubjectBuilder__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./subject-builder/CascadesSubjectBuilder */ \"./node_modules/typeorm/browser/persistence/subject-builder/CascadesSubjectBuilder.js\");\n/* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../util/OrmUtils */ \"./node_modules/typeorm/browser/util/OrmUtils.js\");\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Persists a single entity or multiple entities - saves or removes them.\n */\nvar EntityPersistExecutor = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function EntityPersistExecutor(connection, queryRunner, mode, target, entity, options) {\n this.connection = connection;\n this.queryRunner = queryRunner;\n this.mode = mode;\n this.target = target;\n this.entity = entity;\n this.options = options;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Executes persistence operation ob given entity or entities.\n */\n EntityPersistExecutor.prototype.execute = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var queryRunner, entities, entitiesInChunks, executors, executorsWithExecutableOperations, isTransactionStartedByUs, executorsWithExecutableOperations_1, executorsWithExecutableOperations_1_1, executor, e_1_1, error_1, rollbackError_1;\n var e_1, _a;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n // check if entity we are going to save is valid and is an object\n if (!this.entity || typeof this.entity !== \"object\")\n return [2 /*return*/, Promise.reject(new _error_MustBeEntityError__WEBPACK_IMPORTED_MODULE_1__[\"MustBeEntityError\"](this.mode, this.entity))];\n // we MUST call \"fake\" resolve here to make sure all properties of lazily loaded relations are resolved\n return [4 /*yield*/, Promise.resolve()];\n case 1:\n // we MUST call \"fake\" resolve here to make sure all properties of lazily loaded relations are resolved\n _b.sent();\n queryRunner = this.queryRunner || this.connection.createQueryRunner();\n // save data in the query runner - this is useful functionality to share data from outside of the world\n // with third classes - like subscribers and listener methods\n if (this.options && this.options.data)\n queryRunner.data = this.options.data;\n _b.label = 2;\n case 2:\n _b.trys.push([2, , 22, 25]);\n entities = Array.isArray(this.entity) ? this.entity : [this.entity];\n entitiesInChunks = this.options && this.options.chunk && this.options.chunk > 0 ? _util_OrmUtils__WEBPACK_IMPORTED_MODULE_10__[\"OrmUtils\"].chunk(entities, this.options.chunk) : [entities];\n return [4 /*yield*/, Promise.all(entitiesInChunks.map(function (entities) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n var subjects, cascadesSubjectBuilder;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n subjects = [];\n // create subjects for all entities we received for the persistence\n entities.forEach(function (entity) {\n var entityTarget = _this.target ? _this.target : entity.constructor;\n if (entityTarget === Object)\n throw new _error_CannotDetermineEntityError__WEBPACK_IMPORTED_MODULE_3__[\"CannotDetermineEntityError\"](_this.mode);\n subjects.push(new _Subject__WEBPACK_IMPORTED_MODULE_4__[\"Subject\"]({\n metadata: _this.connection.getMetadata(entityTarget),\n entity: entity,\n canBeInserted: _this.mode === \"save\",\n canBeUpdated: _this.mode === \"save\",\n mustBeRemoved: _this.mode === \"remove\",\n canBeSoftRemoved: _this.mode === \"soft-remove\",\n canBeRecovered: _this.mode === \"recover\"\n }));\n });\n cascadesSubjectBuilder = new _subject_builder_CascadesSubjectBuilder__WEBPACK_IMPORTED_MODULE_9__[\"CascadesSubjectBuilder\"](subjects);\n subjects.forEach(function (subject) {\n // next step we build list of subjects we will operate with\n // these subjects are subjects that we need to insert or update alongside with main persisted entity\n cascadesSubjectBuilder.build(subject, _this.mode);\n });\n // console.timeEnd(\"building cascades...\");\n // load database entities for all subjects we have\n // next step is to load database entities for all operate subjects\n // console.time(\"loading...\");\n return [4 /*yield*/, new _SubjectDatabaseEntityLoader__WEBPACK_IMPORTED_MODULE_8__[\"SubjectDatabaseEntityLoader\"](queryRunner, subjects).load(this.mode)];\n case 1:\n // console.timeEnd(\"building cascades...\");\n // load database entities for all subjects we have\n // next step is to load database entities for all operate subjects\n // console.time(\"loading...\");\n _a.sent();\n // console.timeEnd(\"loading...\");\n // console.time(\"other subjects...\");\n // build all related subjects and change maps\n if (this.mode === \"save\" || this.mode === \"soft-remove\" || this.mode === \"recover\") {\n new _subject_builder_OneToManySubjectBuilder__WEBPACK_IMPORTED_MODULE_5__[\"OneToManySubjectBuilder\"](subjects).build();\n new _subject_builder_OneToOneInverseSideSubjectBuilder__WEBPACK_IMPORTED_MODULE_6__[\"OneToOneInverseSideSubjectBuilder\"](subjects).build();\n new _subject_builder_ManyToManySubjectBuilder__WEBPACK_IMPORTED_MODULE_7__[\"ManyToManySubjectBuilder\"](subjects).build();\n }\n else {\n subjects.forEach(function (subject) {\n if (subject.mustBeRemoved) {\n new _subject_builder_ManyToManySubjectBuilder__WEBPACK_IMPORTED_MODULE_7__[\"ManyToManySubjectBuilder\"](subjects).buildForAllRemoval(subject);\n }\n });\n }\n // console.timeEnd(\"other subjects...\");\n // console.timeEnd(\"building subjects...\");\n // console.log(\"subjects\", subjects);\n // create a subject executor\n return [2 /*return*/, new _SubjectExecutor__WEBPACK_IMPORTED_MODULE_2__[\"SubjectExecutor\"](queryRunner, subjects, this.options)];\n }\n });\n }); }))];\n case 3:\n executors = _b.sent();\n executorsWithExecutableOperations = executors.filter(function (executor) { return executor.hasExecutableOperations; });\n if (executorsWithExecutableOperations.length === 0)\n return [2 /*return*/];\n isTransactionStartedByUs = false;\n _b.label = 4;\n case 4:\n _b.trys.push([4, 16, , 21]);\n if (!!queryRunner.isTransactionActive) return [3 /*break*/, 6];\n if (!(!this.options || this.options.transaction !== false)) return [3 /*break*/, 6];\n isTransactionStartedByUs = true;\n return [4 /*yield*/, queryRunner.startTransaction()];\n case 5:\n _b.sent();\n _b.label = 6;\n case 6:\n _b.trys.push([6, 11, 12, 13]);\n executorsWithExecutableOperations_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(executorsWithExecutableOperations), executorsWithExecutableOperations_1_1 = executorsWithExecutableOperations_1.next();\n _b.label = 7;\n case 7:\n if (!!executorsWithExecutableOperations_1_1.done) return [3 /*break*/, 10];\n executor = executorsWithExecutableOperations_1_1.value;\n return [4 /*yield*/, executor.execute()];\n case 8:\n _b.sent();\n _b.label = 9;\n case 9:\n executorsWithExecutableOperations_1_1 = executorsWithExecutableOperations_1.next();\n return [3 /*break*/, 7];\n case 10: return [3 /*break*/, 13];\n case 11:\n e_1_1 = _b.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 13];\n case 12:\n try {\n if (executorsWithExecutableOperations_1_1 && !executorsWithExecutableOperations_1_1.done && (_a = executorsWithExecutableOperations_1.return)) _a.call(executorsWithExecutableOperations_1);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 13:\n if (!(isTransactionStartedByUs === true)) return [3 /*break*/, 15];\n return [4 /*yield*/, queryRunner.commitTransaction()];\n case 14:\n _b.sent();\n _b.label = 15;\n case 15: return [3 /*break*/, 21];\n case 16:\n error_1 = _b.sent();\n if (!isTransactionStartedByUs) return [3 /*break*/, 20];\n _b.label = 17;\n case 17:\n _b.trys.push([17, 19, , 20]);\n return [4 /*yield*/, queryRunner.rollbackTransaction()];\n case 18:\n _b.sent();\n return [3 /*break*/, 20];\n case 19:\n rollbackError_1 = _b.sent();\n return [3 /*break*/, 20];\n case 20: throw error_1;\n case 21: return [3 /*break*/, 25];\n case 22:\n if (!!this.queryRunner) return [3 /*break*/, 24];\n return [4 /*yield*/, queryRunner.release()];\n case 23:\n _b.sent();\n _b.label = 24;\n case 24: return [7 /*endfinally*/];\n case 25: return [2 /*return*/];\n }\n });\n });\n };\n return EntityPersistExecutor;\n}());\n\n\n//# sourceMappingURL=EntityPersistExecutor.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/persistence/EntityPersistExecutor.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/persistence/Subject.js":
/*!*************************************************************!*\
!*** ./node_modules/typeorm/browser/persistence/Subject.js ***!
\*************************************************************/
/*! exports provided: Subject */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Subject\", function() { return Subject; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/OrmUtils */ \"./node_modules/typeorm/browser/util/OrmUtils.js\");\n\n\n/**\n * Subject is a subject of persistence.\n * It holds information about each entity that needs to be persisted:\n * - what entity should be persisted\n * - what is database representation of the persisted entity\n * - what entity metadata of the persisted entity\n * - what is allowed to with persisted entity (insert/update/remove)\n *\n * Having this collection of subjects we can perform database queries.\n */\nvar Subject = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function Subject(options) {\n var _a;\n /**\n * Subject identifier.\n * This identifier is not limited to table entity primary columns.\n * This can be entity id or ids as well as some unique entity properties, like name or title.\n * Insert / Update / Remove operation will be executed by a given identifier.\n */\n this.identifier = undefined;\n /**\n * Copy of entity but with relational ids fulfilled.\n */\n this.entityWithFulfilledIds = undefined;\n /**\n * Indicates if database entity was loaded.\n * No matter if it was found or not, it indicates the fact of loading.\n */\n this.databaseEntityLoaded = false;\n /**\n * Changes needs to be applied in the database for the given subject.\n */\n this.changeMaps = [];\n /**\n * Indicates if this subject can be inserted into the database.\n * This means that this subject either is newly persisted, either can be inserted by cascades.\n */\n this.canBeInserted = false;\n /**\n * Indicates if this subject can be updated in the database.\n * This means that this subject either was persisted, either can be updated by cascades.\n */\n this.canBeUpdated = false;\n /**\n * Indicates if this subject MUST be removed from the database.\n * This means that this subject either was removed, either was removed by cascades.\n */\n this.mustBeRemoved = false;\n /**\n * Indicates if this subject can be soft-removed from the database.\n * This means that this subject either was soft-removed, either was soft-removed by cascades.\n */\n this.canBeSoftRemoved = false;\n /**\n * Indicates if this subject can be recovered from the database.\n * This means that this subject either was recovered, either was recovered by cascades.\n */\n this.canBeRecovered = false;\n /**\n * Relations updated by the change maps.\n */\n this.updatedRelationMaps = [];\n /**\n * List of updated columns\n */\n this.diffColumns = [];\n /**\n * List of updated relations\n */\n this.diffRelations = [];\n this.metadata = options.metadata;\n this.entity = options.entity;\n this.parentSubject = options.parentSubject;\n if (options.canBeInserted !== undefined)\n this.canBeInserted = options.canBeInserted;\n if (options.canBeUpdated !== undefined)\n this.canBeUpdated = options.canBeUpdated;\n if (options.mustBeRemoved !== undefined)\n this.mustBeRemoved = options.mustBeRemoved;\n if (options.canBeSoftRemoved !== undefined)\n this.canBeSoftRemoved = options.canBeSoftRemoved;\n if (options.canBeRecovered !== undefined)\n this.canBeRecovered = options.canBeRecovered;\n if (options.identifier !== undefined)\n this.identifier = options.identifier;\n if (options.changeMaps !== undefined)\n (_a = this.changeMaps).push.apply(_a, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(options.changeMaps)));\n this.recompute();\n }\n Object.defineProperty(Subject.prototype, \"mustBeInserted\", {\n // -------------------------------------------------------------------------\n // Accessors\n // -------------------------------------------------------------------------\n /**\n * Checks if this subject must be inserted into the database.\n * Subject can be inserted into the database if it is allowed to be inserted (explicitly persisted or by cascades)\n * and if it does not have database entity set.\n */\n get: function () {\n return this.canBeInserted && !this.databaseEntity;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Subject.prototype, \"mustBeUpdated\", {\n /**\n * Checks if this subject must be updated into the database.\n * Subject can be updated in the database if it is allowed to be updated (explicitly persisted or by cascades)\n * and if it does have differentiated columns or relations.\n */\n get: function () {\n return this.canBeUpdated &&\n this.identifier &&\n (this.databaseEntityLoaded === false || (this.databaseEntityLoaded && this.databaseEntity)) &&\n // ((this.entity && this.databaseEntity) || (!this.entity && !this.databaseEntity)) &&\n this.changeMaps.length > 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Subject.prototype, \"mustBeSoftRemoved\", {\n /**\n * Checks if this subject must be soft-removed into the database.\n * Subject can be updated in the database if it is allowed to be soft-removed (explicitly persisted or by cascades)\n * and if it does have differentiated columns or relations.\n */\n get: function () {\n return this.canBeSoftRemoved &&\n this.identifier &&\n (this.databaseEntityLoaded === false || (this.databaseEntityLoaded && this.databaseEntity));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Subject.prototype, \"mustBeRecovered\", {\n /**\n * Checks if this subject must be recovered into the database.\n * Subject can be updated in the database if it is allowed to be recovered (explicitly persisted or by cascades)\n * and if it does have differentiated columns or relations.\n */\n get: function () {\n return this.canBeRecovered &&\n this.identifier &&\n (this.databaseEntityLoaded === false || (this.databaseEntityLoaded && this.databaseEntity));\n },\n enumerable: false,\n configurable: true\n });\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Creates a value set needs to be inserted / updated in the database.\n * Value set is based on the entity and change maps of the subject.\n * Important note: this method pops data from this subject's change maps.\n */\n Subject.prototype.createValueSetAndPopChangeMap = function () {\n var _this = this;\n var changeMapsWithoutValues = [];\n var changeSet = this.changeMaps.reduce(function (updateMap, changeMap) {\n var value = changeMap.value;\n if (value instanceof Subject) {\n // referenced columns can refer on values both which were just inserted and which were present in the model\n // if entity was just inserted valueSets must contain all values from the entity and values just inserted in the database\n // so, here we check if we have a value set then we simply use it as value to get our reference column values\n // otherwise simply use an entity which cannot be just inserted at the moment and have all necessary data\n value = value.insertedValueSet ? value.insertedValueSet : value.entity;\n }\n // value = changeMap.valueFactory ? changeMap.valueFactory(value) : changeMap.column.createValueMap(value);\n var valueMap;\n if (_this.metadata.isJunction && changeMap.column) {\n valueMap = changeMap.column.createValueMap(changeMap.column.referencedColumn.getEntityValue(value));\n }\n else if (changeMap.column) {\n valueMap = changeMap.column.createValueMap(value);\n }\n else if (changeMap.relation) {\n // value can be a related object, for example: post.question = { id: 1 }\n // or value can be a null or direct relation id, e.g. post.question = 1\n // if its a direction relation id then we just set it to the valueMap,\n // however if its an object then we need to extract its relation id map and set it to the valueMap\n if (value instanceof Object) {\n // get relation id, e.g. referenced column name and its value,\n // for example: { id: 1 } which then will be set to relation, e.g. post.category = { id: 1 }\n var relationId = changeMap.relation.getRelationIdMap(value);\n // but relation id can be empty, for example in the case when you insert a new post with category\n // and both post and category are newly inserted objects (by cascades) and in this case category will not have id\n // this means we need to insert post without question id and update post's questionId once question be inserted\n // that's why we create a new changeMap operation for future updation of the post entity\n if (relationId === undefined) {\n changeMapsWithoutValues.push(changeMap);\n _this.canBeUpdated = true;\n return updateMap;\n }\n valueMap = changeMap.relation.createValueMap(relationId);\n _this.updatedRelationMaps.push({ relation: changeMap.relation, value: relationId });\n }\n else { // value can be \"null\" or direct relation id here\n valueMap = changeMap.relation.createValueMap(value);\n _this.updatedRelationMaps.push({ relation: changeMap.relation, value: value });\n }\n }\n _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[\"OrmUtils\"].mergeDeep(updateMap, valueMap);\n return updateMap;\n }, {});\n this.changeMaps = changeMapsWithoutValues;\n return changeSet;\n };\n /**\n * Recomputes entityWithFulfilledIds and identifier when entity changes.\n */\n Subject.prototype.recompute = function () {\n var _this = this;\n if (this.entity) {\n this.entityWithFulfilledIds = Object.assign({}, this.entity);\n if (this.parentSubject) {\n this.metadata.primaryColumns.forEach(function (primaryColumn) {\n if (primaryColumn.relationMetadata && primaryColumn.relationMetadata.inverseEntityMetadata === _this.parentSubject.metadata) {\n var value = primaryColumn.referencedColumn.getEntityValue(_this.parentSubject.entity);\n primaryColumn.setEntityValue(_this.entityWithFulfilledIds, value);\n }\n });\n }\n this.identifier = this.metadata.getEntityIdMap(this.entityWithFulfilledIds);\n }\n else if (this.databaseEntity) {\n this.identifier = this.metadata.getEntityIdMap(this.databaseEntity);\n }\n };\n return Subject;\n}());\n\n\n//# sourceMappingURL=Subject.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/persistence/Subject.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/persistence/SubjectChangedColumnsComputer.js":
/*!***********************************************************************************!*\
!*** ./node_modules/typeorm/browser/persistence/SubjectChangedColumnsComputer.js ***!
\***********************************************************************************/
/*! exports provided: SubjectChangedColumnsComputer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SubjectChangedColumnsComputer\", function() { return SubjectChangedColumnsComputer; });\n/* harmony import */ var _util_DateUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/DateUtils */ \"./node_modules/typeorm/browser/util/DateUtils.js\");\n/* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/OrmUtils */ \"./node_modules/typeorm/browser/util/OrmUtils.js\");\n/* harmony import */ var _util_ApplyValueTransformers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/ApplyValueTransformers */ \"./node_modules/typeorm/browser/util/ApplyValueTransformers.js\");\n\n\n\n/**\n * Finds what columns are changed in the subject entities.\n */\nvar SubjectChangedColumnsComputer = /** @class */ (function () {\n function SubjectChangedColumnsComputer() {\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Finds what columns are changed in the subject entities.\n */\n SubjectChangedColumnsComputer.prototype.compute = function (subjects) {\n var _this = this;\n subjects.forEach(function (subject) {\n _this.computeDiffColumns(subject);\n _this.computeDiffRelationalColumns(subjects, subject);\n });\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Differentiate columns from the updated entity and entity stored in the database.\n */\n SubjectChangedColumnsComputer.prototype.computeDiffColumns = function (subject) {\n // if there is no persisted entity then nothing to compute changed in it\n if (!subject.entity)\n return;\n subject.metadata.columns.forEach(function (column) {\n // ignore special columns\n if (column.isVirtual ||\n column.isDiscriminator // ||\n // column.isUpdateDate ||\n // column.isVersion ||\n // column.isCreateDate\n )\n return;\n var changeMap = subject.changeMaps.find(function (changeMap) { return changeMap.column === column; });\n if (changeMap) {\n subject.changeMaps.splice(subject.changeMaps.indexOf(changeMap), 1);\n }\n // get user provided value - column value from the user provided persisted entity\n var entityValue = column.getEntityValue(subject.entity);\n // we don't perform operation over undefined properties (but we DO need null properties!)\n if (entityValue === undefined)\n return;\n // if there is no database entity then all columns are treated as new, e.g. changed\n if (subject.databaseEntity) {\n // skip transform database value for json / jsonb for comparison later on\n var shouldTransformDatabaseEntity = column.type !== \"json\" && column.type !== \"jsonb\";\n // get database value of the column\n var databaseValue = column.getEntityValue(subject.databaseEntity, shouldTransformDatabaseEntity);\n // filter out \"relational columns\" only in the case if there is a relation object in entity\n if (column.relationMetadata) {\n var value = column.relationMetadata.getEntityValue(subject.entity);\n if (value !== null && value !== undefined)\n return;\n }\n var normalizedValue = entityValue;\n // normalize special values to make proper comparision\n if (entityValue !== null) {\n switch (column.type) {\n case \"date\":\n normalizedValue = _util_DateUtils__WEBPACK_IMPORTED_MODULE_0__[\"DateUtils\"].mixedDateToDateString(entityValue);\n break;\n case \"time\":\n case \"time with time zone\":\n case \"time without time zone\":\n case \"timetz\":\n normalizedValue = _util_DateUtils__WEBPACK_IMPORTED_MODULE_0__[\"DateUtils\"].mixedDateToTimeString(entityValue);\n break;\n case \"datetime\":\n case \"datetime2\":\n case Date:\n case \"timestamp\":\n case \"timestamp without time zone\":\n case \"timestamp with time zone\":\n case \"timestamp with local time zone\":\n case \"timestamptz\":\n normalizedValue = _util_DateUtils__WEBPACK_IMPORTED_MODULE_0__[\"DateUtils\"].mixedDateToUtcDatetimeString(entityValue);\n databaseValue = _util_DateUtils__WEBPACK_IMPORTED_MODULE_0__[\"DateUtils\"].mixedDateToUtcDatetimeString(databaseValue);\n break;\n case \"json\":\n case \"jsonb\":\n // JSON.stringify doesn't work because postgresql sorts jsonb before save.\n // If you try to save json '[{\"messages\": \"\", \"attribute Key\": \"\", \"level\":\"\"}] ' as jsonb,\n // then postgresql will save it as '[{\"level\": \"\", \"message\":\"\", \"attributeKey\": \"\"}]'\n if (_util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[\"OrmUtils\"].deepCompare(entityValue, databaseValue))\n return;\n break;\n case \"simple-array\":\n normalizedValue = _util_DateUtils__WEBPACK_IMPORTED_MODULE_0__[\"DateUtils\"].simpleArrayToString(entityValue);\n databaseValue = _util_DateUtils__WEBPACK_IMPORTED_MODULE_0__[\"DateUtils\"].simpleArrayToString(databaseValue);\n break;\n case \"simple-enum\":\n normalizedValue = _util_DateUtils__WEBPACK_IMPORTED_MODULE_0__[\"DateUtils\"].simpleEnumToString(entityValue);\n databaseValue = _util_DateUtils__WEBPACK_IMPORTED_MODULE_0__[\"DateUtils\"].simpleEnumToString(databaseValue);\n break;\n case \"simple-json\":\n normalizedValue = _util_DateUtils__WEBPACK_IMPORTED_MODULE_0__[\"DateUtils\"].simpleJsonToString(entityValue);\n databaseValue = _util_DateUtils__WEBPACK_IMPORTED_MODULE_0__[\"DateUtils\"].simpleJsonToString(databaseValue);\n break;\n }\n if (column.transformer) {\n normalizedValue = _util_ApplyValueTransformers__WEBPACK_IMPORTED_MODULE_2__[\"ApplyValueTransformers\"].transformTo(column.transformer, entityValue);\n }\n }\n // if value is not changed - then do nothing\n if (normalizedValue === databaseValue)\n return;\n }\n subject.diffColumns.push(column);\n subject.changeMaps.push({\n column: column,\n value: entityValue\n });\n });\n };\n /**\n * Difference columns of the owning one-to-one and many-to-one columns.\n */\n SubjectChangedColumnsComputer.prototype.computeDiffRelationalColumns = function (allSubjects, subject) {\n // if there is no persisted entity then nothing to compute changed in it\n if (!subject.entity)\n return;\n subject.metadata.relationsWithJoinColumns.forEach(function (relation) {\n // get the related entity from the persisted entity\n var relatedEntity = relation.getEntityValue(subject.entity);\n // we don't perform operation over undefined properties (but we DO need null properties!)\n if (relatedEntity === undefined)\n return;\n // if there is no database entity then all relational columns are treated as new, e.g. changed\n if (subject.databaseEntity) {\n // here we cover two scenarios:\n // 1. related entity can be another entity which is natural way\n // 2. related entity can be just an entity id\n // if relation entity is just a relation id set (for example post.tag = 1)\n // then we create an id map from it to make a proper comparision\n var relatedEntityRelationIdMap = relatedEntity;\n if (relatedEntityRelationIdMap !== null && relatedEntityRelationIdMap instanceof Object)\n relatedEntityRelationIdMap = relation.getRelationIdMap(relatedEntityRelationIdMap);\n // get database related entity. Since loadRelationIds are used on databaseEntity\n // related entity will contain only its relation ids\n var databaseRelatedEntityRelationIdMap = relation.getEntityValue(subject.databaseEntity);\n // if relation ids are equal then we don't need to update anything\n var areRelatedIdsEqual = _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[\"OrmUtils\"].compareIds(relatedEntityRelationIdMap, databaseRelatedEntityRelationIdMap);\n if (areRelatedIdsEqual) {\n return;\n }\n else {\n subject.diffRelations.push(relation);\n }\n }\n // if there is an inserted subject for the related entity of the persisted entity then use it as related entity\n // this code is used for related entities without ids to be properly inserted (and then updated if needed)\n var valueSubject = allSubjects.find(function (subject) { return subject.mustBeInserted && subject.entity === relatedEntity; });\n if (valueSubject)\n relatedEntity = valueSubject;\n // find if there is already a relation to be changed\n var changeMap = subject.changeMaps.find(function (changeMap) { return changeMap.relation === relation; });\n if (changeMap) { // and update its value if it was found\n changeMap.value = relatedEntity;\n }\n else { // if it wasn't found add a new relation for change\n subject.changeMaps.push({\n relation: relation,\n value: relatedEntity\n });\n }\n });\n };\n return SubjectChangedColumnsComputer;\n}());\n\n\n//# sourceMappingURL=SubjectChangedColumnsComputer.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/persistence/SubjectChangedColumnsComputer.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/persistence/SubjectDatabaseEntityLoader.js":
/*!*********************************************************************************!*\
!*** ./node_modules/typeorm/browser/persistence/SubjectDatabaseEntityLoader.js ***!
\*********************************************************************************/
/*! exports provided: SubjectDatabaseEntityLoader */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SubjectDatabaseEntityLoader\", function() { return SubjectDatabaseEntityLoader; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Loads database entities for all operate subjects which do not have database entity set.\n * All entities that we load database entities for are marked as updated or inserted.\n * To understand which of them really needs to be inserted or updated we need to load\n * their original representations from the database.\n */\nvar SubjectDatabaseEntityLoader = /** @class */ (function () {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n function SubjectDatabaseEntityLoader(queryRunner, subjects) {\n this.queryRunner = queryRunner;\n this.subjects = subjects;\n }\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n /**\n * Loads database entities for all subjects.\n *\n * loadAllRelations flag is used to load all relation ids of the object, no matter if they present in subject entity or not.\n * This option is used for deletion.\n */\n SubjectDatabaseEntityLoader.prototype.load = function (operationType) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var promises;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n promises = this.groupByEntityTargets().map(function (subjectGroup) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n var allIds, allSubjects, loadRelationPropertyPaths, findOptions, entities, allSubjects_1, allSubjects_1_1, subject;\n var e_1, _a;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n allIds = [];\n allSubjects = [];\n subjectGroup.subjects.forEach(function (subject) {\n // we don't load if subject already has a database entity loaded\n if (subject.databaseEntity || !subject.identifier)\n return;\n allIds.push(subject.identifier);\n allSubjects.push(subject);\n });\n // if there no ids found (means all entities are new and have generated ids) - then nothing to load there\n if (!allIds.length)\n return [2 /*return*/];\n loadRelationPropertyPaths = [];\n // for the save, soft-remove and recover operation\n // extract all property paths of the relations we need to load relation ids for\n // this is for optimization purpose - this way we don't load relation ids for entities\n // whose relations are undefined, and since they are undefined its really pointless to\n // load something for them, since undefined properties are skipped by the orm\n if (operationType === \"save\" || operationType === \"soft-remove\" || operationType === \"recover\") {\n subjectGroup.subjects.forEach(function (subject) {\n // gets all relation property paths that exist in the persisted entity.\n subject.metadata.relations.forEach(function (relation) {\n var value = relation.getEntityValue(subject.entityWithFulfilledIds);\n if (value === undefined)\n return;\n if (loadRelationPropertyPaths.indexOf(relation.propertyPath) === -1)\n loadRelationPropertyPaths.push(relation.propertyPath);\n });\n });\n }\n else { // remove\n // for remove operation\n // we only need to load junction relation ids since only they are removed by cascades\n loadRelationPropertyPaths.push.apply(// remove\n loadRelationPropertyPaths, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(subjectGroup.subjects[0].metadata.manyToManyRelations.map(function (relation) { return relation.propertyPath; }))));\n }\n findOptions = {\n loadEagerRelations: false,\n loadRelationIds: {\n relations: loadRelationPropertyPaths,\n disableMixedMap: true\n },\n // the soft-deleted entities should be included in the loaded entities for recover operation\n withDeleted: true\n };\n return [4 /*yield*/, this.queryRunner.manager\n .getRepository(subjectGroup.target)\n .findByIds(allIds, findOptions)];\n case 1:\n entities = _b.sent();\n // now when we have entities we need to find subject of each entity\n // and insert that entity into database entity of the found subjects\n entities.forEach(function (entity) {\n var subjects = _this.findByPersistEntityLike(subjectGroup.target, entity);\n subjects.forEach(function (subject) {\n subject.databaseEntity = entity;\n if (!subject.identifier)\n subject.identifier = subject.metadata.hasAllPrimaryKeys(entity) ? subject.metadata.getEntityIdMap(entity) : undefined;\n });\n });\n try {\n // this way we tell what subjects we tried to load database entities of\n for (allSubjects_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(allSubjects), allSubjects_1_1 = allSubjects_1.next(); !allSubjects_1_1.done; allSubjects_1_1 = allSubjects_1.next()) {\n subject = allSubjects_1_1.value;\n subject.databaseEntityLoaded = true;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (allSubjects_1_1 && !allSubjects_1_1.done && (_a = allSubjects_1.return)) _a.call(allSubjects_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return [2 /*return*/];\n }\n });\n }); });\n return [4 /*yield*/, Promise.all(promises)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n // ---------------------------------------------------------------------\n // Protected Methods\n // ---------------------------------------------------------------------\n /**\n * Finds subjects where entity like given subject's entity.\n * Comparision made by entity id.\n * Multiple subjects may be returned if duplicates are present in the subject array.\n * This will likely result in the same row being updated multiple times during a transaction.\n */\n SubjectDatabaseEntityLoader.prototype.findByPersistEntityLike = function (entityTarget, entity) {\n return this.subjects.filter(function (subject) {\n if (!subject.entity)\n return false;\n if (subject.entity === entity)\n return true;\n return subject.metadata.target === entityTarget && subject.metadata.compareEntities(subject.entityWithFulfilledIds, entity);\n });\n };\n /**\n * Groups given Subject objects into groups separated by entity targets.\n */\n SubjectDatabaseEntityLoader.prototype.groupByEntityTargets = function () {\n return this.subjects.reduce(function (groups, operatedEntity) {\n var group = groups.find(function (group) { return group.target === operatedEntity.metadata.target; });\n if (!group) {\n group = { target: operatedEntity.metadata.target, subjects: [] };\n groups.push(group);\n }\n group.subjects.push(operatedEntity);\n return groups;\n }, []);\n };\n return SubjectDatabaseEntityLoader;\n}());\n\n\n//# sourceMappingURL=SubjectDatabaseEntityLoader.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/persistence/SubjectDatabaseEntityLoader.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/persistence/SubjectExecutor.js":
/*!*********************************************************************!*\
!*** ./node_modules/typeorm/browser/persistence/SubjectExecutor.js ***!
\*********************************************************************/
/*! exports provided: SubjectExecutor */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SubjectExecutor\", function() { return SubjectExecutor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../driver/sap/SapDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _SubjectTopoligicalSorter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SubjectTopoligicalSorter */ \"./node_modules/typeorm/browser/persistence/SubjectTopoligicalSorter.js\");\n/* harmony import */ var _SubjectChangedColumnsComputer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SubjectChangedColumnsComputer */ \"./node_modules/typeorm/browser/persistence/SubjectChangedColumnsComputer.js\");\n/* harmony import */ var _error_SubjectWithoutIdentifierError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../error/SubjectWithoutIdentifierError */ \"./node_modules/typeorm/browser/error/SubjectWithoutIdentifierError.js\");\n/* harmony import */ var _error_SubjectRemovedAndUpdatedError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../error/SubjectRemovedAndUpdatedError */ \"./node_modules/typeorm/browser/error/SubjectRemovedAndUpdatedError.js\");\n/* harmony import */ var _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../subscriber/BroadcasterResult */ \"./node_modules/typeorm/browser/subscriber/BroadcasterResult.js\");\n/* harmony import */ var _tree_NestedSetSubjectExecutor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./tree/NestedSetSubjectExecutor */ \"./node_modules/typeorm/browser/persistence/tree/NestedSetSubjectExecutor.js\");\n/* harmony import */ var _tree_ClosureSubjectExecutor__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./tree/ClosureSubjectExecutor */ \"./node_modules/typeorm/browser/persistence/tree/ClosureSubjectExecutor.js\");\n/* harmony import */ var _tree_MaterializedPathSubjectExecutor__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./tree/MaterializedPathSubjectExecutor */ \"./node_modules/typeorm/browser/persistence/tree/MaterializedPathSubjectExecutor.js\");\n/* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../util/OrmUtils */ \"./node_modules/typeorm/browser/util/OrmUtils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Executes all database operations (inserts, updated, deletes) that must be executed\n * with given persistence subjects.\n */\nvar SubjectExecutor = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function SubjectExecutor(queryRunner, subjects, options) {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n /**\n * Indicates if executor has any operations to execute (e.g. has insert / update / delete operations to be executed).\n */\n this.hasExecutableOperations = false;\n /**\n * Subjects that must be inserted.\n */\n this.insertSubjects = [];\n /**\n * Subjects that must be updated.\n */\n this.updateSubjects = [];\n /**\n * Subjects that must be removed.\n */\n this.removeSubjects = [];\n /**\n * Subjects that must be soft-removed.\n */\n this.softRemoveSubjects = [];\n /**\n * Subjects that must be recovered.\n */\n this.recoverSubjects = [];\n this.queryRunner = queryRunner;\n this.allSubjects = subjects;\n this.options = options;\n this.validate();\n this.recompute();\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Executes all operations over given array of subjects.\n * Executes queries using given query runner.\n */\n SubjectExecutor.prototype.execute = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var broadcasterResult;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n broadcasterResult = undefined;\n if (!(!this.options || this.options.listeners !== false)) return [3 /*break*/, 2];\n // console.time(\".broadcastBeforeEventsForAll\");\n broadcasterResult = this.broadcastBeforeEventsForAll();\n if (!(broadcasterResult.promises.length > 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.all(broadcasterResult.promises)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n // since event listeners and subscribers can call save methods and/or trigger entity changes we need to recompute operational subjects\n // recompute only in the case if any listener or subscriber was really executed\n if (broadcasterResult && broadcasterResult.count > 0) {\n // console.time(\".recompute\");\n this.insertSubjects.forEach(function (subject) { return subject.recompute(); });\n this.updateSubjects.forEach(function (subject) { return subject.recompute(); });\n this.removeSubjects.forEach(function (subject) { return subject.recompute(); });\n this.softRemoveSubjects.forEach(function (subject) { return subject.recompute(); });\n this.recoverSubjects.forEach(function (subject) { return subject.recompute(); });\n this.recompute();\n // console.timeEnd(\".recompute\");\n }\n // make sure our insert subjects are sorted (using topological sorting) to make cascade inserts work properly\n // console.timeEnd(\"prepare\");\n // execute all insert operations\n // console.time(\".insertion\");\n this.insertSubjects = new _SubjectTopoligicalSorter__WEBPACK_IMPORTED_MODULE_2__[\"SubjectTopoligicalSorter\"](this.insertSubjects).sort(\"insert\");\n return [4 /*yield*/, this.executeInsertOperations()];\n case 3:\n _a.sent();\n // console.timeEnd(\".insertion\");\n // recompute update operations since insertion can create updation operations for the\n // properties it wasn't able to handle on its own (referenced columns)\n this.updateSubjects = this.allSubjects.filter(function (subject) { return subject.mustBeUpdated; });\n // execute update operations\n // console.time(\".updation\");\n return [4 /*yield*/, this.executeUpdateOperations()];\n case 4:\n // execute update operations\n // console.time(\".updation\");\n _a.sent();\n // console.timeEnd(\".updation\");\n // make sure our remove subjects are sorted (using topological sorting) when multiple entities are passed for the removal\n // console.time(\".removal\");\n this.removeSubjects = new _SubjectTopoligicalSorter__WEBPACK_IMPORTED_MODULE_2__[\"SubjectTopoligicalSorter\"](this.removeSubjects).sort(\"delete\");\n return [4 /*yield*/, this.executeRemoveOperations()];\n case 5:\n _a.sent();\n // console.timeEnd(\".removal\");\n // recompute soft-remove operations\n this.softRemoveSubjects = this.allSubjects.filter(function (subject) { return subject.mustBeSoftRemoved; });\n // execute soft-remove operations\n return [4 /*yield*/, this.executeSoftRemoveOperations()];\n case 6:\n // execute soft-remove operations\n _a.sent();\n // recompute recover operations\n this.recoverSubjects = this.allSubjects.filter(function (subject) { return subject.mustBeRecovered; });\n // execute recover operations\n return [4 /*yield*/, this.executeRecoverOperations()];\n case 7:\n // execute recover operations\n _a.sent();\n // update all special columns in persisted entities, like inserted id or remove ids from the removed entities\n // console.time(\".updateSpecialColumnsInPersistedEntities\");\n return [4 /*yield*/, this.updateSpecialColumnsInPersistedEntities()];\n case 8:\n // update all special columns in persisted entities, like inserted id or remove ids from the removed entities\n // console.time(\".updateSpecialColumnsInPersistedEntities\");\n _a.sent();\n if (!(!this.options || this.options.listeners !== false)) return [3 /*break*/, 10];\n // console.time(\".broadcastAfterEventsForAll\");\n broadcasterResult = this.broadcastAfterEventsForAll();\n if (!(broadcasterResult.promises.length > 0)) return [3 /*break*/, 10];\n return [4 /*yield*/, Promise.all(broadcasterResult.promises)];\n case 9:\n _a.sent();\n _a.label = 10;\n case 10: return [2 /*return*/];\n }\n });\n });\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Validates all given subjects.\n */\n SubjectExecutor.prototype.validate = function () {\n this.allSubjects.forEach(function (subject) {\n if (subject.mustBeUpdated && subject.mustBeRemoved)\n throw new _error_SubjectRemovedAndUpdatedError__WEBPACK_IMPORTED_MODULE_5__[\"SubjectRemovedAndUpdatedError\"](subject);\n });\n };\n /**\n * Performs entity re-computations - finds changed columns, re-builds insert/update/remove subjects.\n */\n SubjectExecutor.prototype.recompute = function () {\n new _SubjectChangedColumnsComputer__WEBPACK_IMPORTED_MODULE_3__[\"SubjectChangedColumnsComputer\"]().compute(this.allSubjects);\n this.insertSubjects = this.allSubjects.filter(function (subject) { return subject.mustBeInserted; });\n this.updateSubjects = this.allSubjects.filter(function (subject) { return subject.mustBeUpdated; });\n this.removeSubjects = this.allSubjects.filter(function (subject) { return subject.mustBeRemoved; });\n this.softRemoveSubjects = this.allSubjects.filter(function (subject) { return subject.mustBeSoftRemoved; });\n this.recoverSubjects = this.allSubjects.filter(function (subject) { return subject.mustBeRecovered; });\n this.hasExecutableOperations = this.insertSubjects.length > 0 || this.updateSubjects.length > 0 || this.removeSubjects.length > 0 || this.softRemoveSubjects.length > 0 || this.recoverSubjects.length > 0;\n };\n /**\n * Broadcasts \"BEFORE_INSERT\", \"BEFORE_UPDATE\", \"BEFORE_REMOVE\" events for all given subjects.\n */\n SubjectExecutor.prototype.broadcastBeforeEventsForAll = function () {\n var _this = this;\n var result = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_6__[\"BroadcasterResult\"]();\n if (this.insertSubjects.length)\n this.insertSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastBeforeInsertEvent(result, subject.metadata, subject.entity); });\n if (this.updateSubjects.length)\n this.updateSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastBeforeUpdateEvent(result, subject.metadata, subject.entity, subject.databaseEntity, subject.diffColumns, subject.diffRelations); });\n if (this.removeSubjects.length)\n this.removeSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastBeforeRemoveEvent(result, subject.metadata, subject.entity, subject.databaseEntity); });\n if (this.softRemoveSubjects.length)\n this.softRemoveSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastBeforeUpdateEvent(result, subject.metadata, subject.entity, subject.databaseEntity, subject.diffColumns, subject.diffRelations); });\n if (this.recoverSubjects.length)\n this.recoverSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastBeforeUpdateEvent(result, subject.metadata, subject.entity, subject.databaseEntity, subject.diffColumns, subject.diffRelations); });\n return result;\n };\n /**\n * Broadcasts \"AFTER_INSERT\", \"AFTER_UPDATE\", \"AFTER_REMOVE\" events for all given subjects.\n * Returns void if there wasn't any listener or subscriber executed.\n * Note: this method has a performance-optimized code organization.\n */\n SubjectExecutor.prototype.broadcastAfterEventsForAll = function () {\n var _this = this;\n var result = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_6__[\"BroadcasterResult\"]();\n if (this.insertSubjects.length)\n this.insertSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastAfterInsertEvent(result, subject.metadata, subject.entity); });\n if (this.updateSubjects.length)\n this.updateSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastAfterUpdateEvent(result, subject.metadata, subject.entity, subject.databaseEntity, subject.diffColumns, subject.diffRelations); });\n if (this.removeSubjects.length)\n this.removeSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastAfterRemoveEvent(result, subject.metadata, subject.entity, subject.databaseEntity); });\n if (this.softRemoveSubjects.length)\n this.softRemoveSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastAfterUpdateEvent(result, subject.metadata, subject.entity, subject.databaseEntity, subject.diffColumns, subject.diffRelations); });\n if (this.recoverSubjects.length)\n this.recoverSubjects.forEach(function (subject) { return _this.queryRunner.broadcaster.broadcastAfterUpdateEvent(result, subject.metadata, subject.entity, subject.databaseEntity, subject.diffColumns, subject.diffRelations); });\n return result;\n };\n /**\n * Executes insert operations.\n */\n SubjectExecutor.prototype.executeInsertOperations = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _a, groupedInsertSubjects, groupedInsertSubjectKeys, _loop_1, this_1, groupedInsertSubjectKeys_1, groupedInsertSubjectKeys_1_1, groupName, e_1_1;\n var e_1, _b;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.groupBulkSubjects(this.insertSubjects, \"insert\"), 2), groupedInsertSubjects = _a[0], groupedInsertSubjectKeys = _a[1];\n _loop_1 = function (groupName) {\n var subjects, bulkInsertMaps, bulkInsertSubjects, singleInsertSubjects, manager, insertResult_1, insertResult_2, _loop_2, singleInsertSubjects_1, singleInsertSubjects_1_1, subject, e_2_1;\n var e_2, _d;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n subjects = groupedInsertSubjects[groupName];\n bulkInsertMaps = [];\n bulkInsertSubjects = [];\n singleInsertSubjects = [];\n if (this_1.queryRunner.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"MongoDriver\"]) {\n subjects.forEach(function (subject) {\n if (subject.metadata.createDateColumn && subject.entity) {\n subject.entity[subject.metadata.createDateColumn.databaseName] = new Date();\n }\n if (subject.metadata.updateDateColumn && subject.entity) {\n subject.entity[subject.metadata.updateDateColumn.databaseName] = new Date();\n }\n subject.createValueSetAndPopChangeMap();\n bulkInsertSubjects.push(subject);\n bulkInsertMaps.push(subject.entity);\n });\n }\n else if (this_1.queryRunner.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"]) {\n subjects.forEach(function (subject) {\n singleInsertSubjects.push(subject);\n });\n }\n else {\n subjects.forEach(function (subject) {\n // we do not insert in bulk in following cases:\n // - when there is no values in insert (only defaults are inserted), since we cannot use DEFAULT VALUES expression for multiple inserted rows\n // - when entity is a tree table, since tree tables require extra operation per each inserted row\n // - when oracle is used, since oracle's bulk insertion is very bad\n if (subject.changeMaps.length === 0 ||\n subject.metadata.treeType ||\n _this.queryRunner.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"] ||\n _this.queryRunner.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"SapDriver\"]) {\n singleInsertSubjects.push(subject);\n }\n else {\n bulkInsertSubjects.push(subject);\n bulkInsertMaps.push(subject.createValueSetAndPopChangeMap());\n }\n });\n }\n if (!(this_1.queryRunner instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"MongoQueryRunner\"])) return [3 /*break*/, 2];\n manager = this_1.queryRunner.manager;\n return [4 /*yield*/, manager.insert(subjects[0].metadata.target, bulkInsertMaps)];\n case 1:\n insertResult_1 = _e.sent();\n subjects.forEach(function (subject, index) {\n subject.identifier = insertResult_1.identifiers[index];\n subject.generatedMap = insertResult_1.generatedMaps[index];\n subject.insertedValueSet = bulkInsertMaps[index];\n });\n return [3 /*break*/, 12];\n case 2:\n if (!(bulkInsertMaps.length > 0)) return [3 /*break*/, 4];\n return [4 /*yield*/, this_1.queryRunner\n .manager\n .createQueryBuilder()\n .insert()\n .into(subjects[0].metadata.target)\n .values(bulkInsertMaps)\n .updateEntity(this_1.options && this_1.options.reload === false ? false : true)\n .callListeners(false)\n .execute()];\n case 3:\n insertResult_2 = _e.sent();\n bulkInsertSubjects.forEach(function (subject, index) {\n subject.identifier = insertResult_2.identifiers[index];\n subject.generatedMap = insertResult_2.generatedMaps[index];\n subject.insertedValueSet = bulkInsertMaps[index];\n });\n _e.label = 4;\n case 4:\n if (!(singleInsertSubjects.length > 0)) return [3 /*break*/, 12];\n _loop_2 = function (subject) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_f) {\n switch (_f.label) {\n case 0:\n subject.insertedValueSet = subject.createValueSetAndPopChangeMap(); // important to have because query builder sets inserted values into it\n if (!(subject.metadata.treeType === \"nested-set\")) return [3 /*break*/, 2];\n return [4 /*yield*/, new _tree_NestedSetSubjectExecutor__WEBPACK_IMPORTED_MODULE_7__[\"NestedSetSubjectExecutor\"](this_1.queryRunner).insert(subject)];\n case 1:\n _f.sent();\n _f.label = 2;\n case 2: return [4 /*yield*/, this_1.queryRunner\n .manager\n .createQueryBuilder()\n .insert()\n .into(subject.metadata.target)\n .values(subject.insertedValueSet)\n .updateEntity(this_1.options && this_1.options.reload === false ? false : true)\n .callListeners(false)\n .execute()\n .then(function (insertResult) {\n subject.identifier = insertResult.identifiers[0];\n subject.generatedMap = insertResult.generatedMaps[0];\n })];\n case 3:\n _f.sent();\n if (!(subject.metadata.treeType === \"closure-table\")) return [3 /*break*/, 5];\n return [4 /*yield*/, new _tree_ClosureSubjectExecutor__WEBPACK_IMPORTED_MODULE_8__[\"ClosureSubjectExecutor\"](this_1.queryRunner).insert(subject)];\n case 4:\n _f.sent();\n return [3 /*break*/, 7];\n case 5:\n if (!(subject.metadata.treeType === \"materialized-path\")) return [3 /*break*/, 7];\n return [4 /*yield*/, new _tree_MaterializedPathSubjectExecutor__WEBPACK_IMPORTED_MODULE_9__[\"MaterializedPathSubjectExecutor\"](this_1.queryRunner).insert(subject)];\n case 6:\n _f.sent();\n _f.label = 7;\n case 7: return [2 /*return*/];\n }\n });\n };\n _e.label = 5;\n case 5:\n _e.trys.push([5, 10, 11, 12]);\n singleInsertSubjects_1 = (e_2 = void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(singleInsertSubjects)), singleInsertSubjects_1_1 = singleInsertSubjects_1.next();\n _e.label = 6;\n case 6:\n if (!!singleInsertSubjects_1_1.done) return [3 /*break*/, 9];\n subject = singleInsertSubjects_1_1.value;\n return [5 /*yield**/, _loop_2(subject)];\n case 7:\n _e.sent();\n _e.label = 8;\n case 8:\n singleInsertSubjects_1_1 = singleInsertSubjects_1.next();\n return [3 /*break*/, 6];\n case 9: return [3 /*break*/, 12];\n case 10:\n e_2_1 = _e.sent();\n e_2 = { error: e_2_1 };\n return [3 /*break*/, 12];\n case 11:\n try {\n if (singleInsertSubjects_1_1 && !singleInsertSubjects_1_1.done && (_d = singleInsertSubjects_1.return)) _d.call(singleInsertSubjects_1);\n }\n finally { if (e_2) throw e_2.error; }\n return [7 /*endfinally*/];\n case 12:\n subjects.forEach(function (subject) {\n if (subject.generatedMap) {\n subject.metadata.columns.forEach(function (column) {\n var value = column.getEntityValue(subject.generatedMap);\n if (value !== undefined && value !== null) {\n var preparedValue = _this.queryRunner.connection.driver.prepareHydratedValue(value, column);\n column.setEntityValue(subject.generatedMap, preparedValue);\n }\n });\n }\n });\n return [2 /*return*/];\n }\n });\n };\n this_1 = this;\n _c.label = 1;\n case 1:\n _c.trys.push([1, 6, 7, 8]);\n groupedInsertSubjectKeys_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(groupedInsertSubjectKeys), groupedInsertSubjectKeys_1_1 = groupedInsertSubjectKeys_1.next();\n _c.label = 2;\n case 2:\n if (!!groupedInsertSubjectKeys_1_1.done) return [3 /*break*/, 5];\n groupName = groupedInsertSubjectKeys_1_1.value;\n return [5 /*yield**/, _loop_1(groupName)];\n case 3:\n _c.sent();\n _c.label = 4;\n case 4:\n groupedInsertSubjectKeys_1_1 = groupedInsertSubjectKeys_1.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_1_1 = _c.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (groupedInsertSubjectKeys_1_1 && !groupedInsertSubjectKeys_1_1.done && (_b = groupedInsertSubjectKeys_1.return)) _b.call(groupedInsertSubjectKeys_1);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Updates all given subjects in the database.\n */\n SubjectExecutor.prototype.executeUpdateOperations = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Promise.all(this.updateSubjects.map(function (subject) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n var partialEntity, manager, updateMap, updateQueryBuilder, updateResult, updateGeneratedMap_1;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!subject.identifier)\n throw new _error_SubjectWithoutIdentifierError__WEBPACK_IMPORTED_MODULE_4__[\"SubjectWithoutIdentifierError\"](subject);\n if (!(this.queryRunner instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"MongoQueryRunner\"])) return [3 /*break*/, 2];\n partialEntity = _util_OrmUtils__WEBPACK_IMPORTED_MODULE_10__[\"OrmUtils\"].mergeDeep({}, subject.entity);\n if (subject.metadata.objectIdColumn && subject.metadata.objectIdColumn.propertyName) {\n delete partialEntity[subject.metadata.objectIdColumn.propertyName];\n }\n if (subject.metadata.createDateColumn && subject.metadata.createDateColumn.propertyName) {\n delete partialEntity[subject.metadata.createDateColumn.propertyName];\n }\n if (subject.metadata.updateDateColumn && subject.metadata.updateDateColumn.propertyName) {\n partialEntity[subject.metadata.updateDateColumn.propertyName] = new Date();\n }\n manager = this.queryRunner.manager;\n return [4 /*yield*/, manager.update(subject.metadata.target, subject.identifier, partialEntity)];\n case 1:\n _a.sent();\n return [3 /*break*/, 4];\n case 2:\n updateMap = subject.createValueSetAndPopChangeMap();\n updateQueryBuilder = this.queryRunner\n .manager\n .createQueryBuilder()\n .update(subject.metadata.target)\n .set(updateMap)\n .updateEntity(this.options && this.options.reload === false ? false : true)\n .callListeners(false);\n if (subject.entity) {\n updateQueryBuilder.whereEntity(subject.identifier);\n }\n else { // in this case identifier is just conditions object to update by\n updateQueryBuilder.where(subject.identifier);\n }\n return [4 /*yield*/, updateQueryBuilder.execute()];\n case 3:\n updateResult = _a.sent();\n updateGeneratedMap_1 = updateResult.generatedMaps[0];\n if (updateGeneratedMap_1) {\n subject.metadata.columns.forEach(function (column) {\n var value = column.getEntityValue(updateGeneratedMap_1);\n if (value !== undefined && value !== null) {\n var preparedValue = _this.queryRunner.connection.driver.prepareHydratedValue(value, column);\n column.setEntityValue(updateGeneratedMap_1, preparedValue);\n }\n });\n if (!subject.generatedMap) {\n subject.generatedMap = {};\n }\n Object.assign(subject.generatedMap, updateGeneratedMap_1);\n }\n _a.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n }); }))];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Removes all given subjects from the database.\n *\n * todo: we need to apply topological sort here as well\n */\n SubjectExecutor.prototype.executeRemoveOperations = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _a, groupedRemoveSubjects, groupedRemoveSubjectKeys, groupedRemoveSubjectKeys_1, groupedRemoveSubjectKeys_1_1, groupName, subjects, deleteMaps, manager, e_3_1;\n var e_3, _b;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.groupBulkSubjects(this.removeSubjects, \"delete\"), 2), groupedRemoveSubjects = _a[0], groupedRemoveSubjectKeys = _a[1];\n _c.label = 1;\n case 1:\n _c.trys.push([1, 8, 9, 10]);\n groupedRemoveSubjectKeys_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(groupedRemoveSubjectKeys), groupedRemoveSubjectKeys_1_1 = groupedRemoveSubjectKeys_1.next();\n _c.label = 2;\n case 2:\n if (!!groupedRemoveSubjectKeys_1_1.done) return [3 /*break*/, 7];\n groupName = groupedRemoveSubjectKeys_1_1.value;\n subjects = groupedRemoveSubjects[groupName];\n deleteMaps = subjects.map(function (subject) {\n if (!subject.identifier)\n throw new _error_SubjectWithoutIdentifierError__WEBPACK_IMPORTED_MODULE_4__[\"SubjectWithoutIdentifierError\"](subject);\n return subject.identifier;\n });\n if (!(this.queryRunner instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"MongoQueryRunner\"])) return [3 /*break*/, 4];\n manager = this.queryRunner.manager;\n return [4 /*yield*/, manager.delete(subjects[0].metadata.target, deleteMaps)];\n case 3:\n _c.sent();\n return [3 /*break*/, 6];\n case 4: \n // here we execute our deletion query\n // we don't need to specify entities and set update entity to true since the only thing query builder\n // will do for use is a primary keys deletion which is handled by us later once persistence is finished\n // also, we disable listeners because we call them on our own in persistence layer\n return [4 /*yield*/, this.queryRunner\n .manager\n .createQueryBuilder()\n .delete()\n .from(subjects[0].metadata.target)\n .where(deleteMaps)\n .callListeners(false)\n .execute()];\n case 5:\n // here we execute our deletion query\n // we don't need to specify entities and set update entity to true since the only thing query builder\n // will do for use is a primary keys deletion which is handled by us later once persistence is finished\n // also, we disable listeners because we call them on our own in persistence layer\n _c.sent();\n _c.label = 6;\n case 6:\n groupedRemoveSubjectKeys_1_1 = groupedRemoveSubjectKeys_1.next();\n return [3 /*break*/, 2];\n case 7: return [3 /*break*/, 10];\n case 8:\n e_3_1 = _c.sent();\n e_3 = { error: e_3_1 };\n return [3 /*break*/, 10];\n case 9:\n try {\n if (groupedRemoveSubjectKeys_1_1 && !groupedRemoveSubjectKeys_1_1.done && (_b = groupedRemoveSubjectKeys_1.return)) _b.call(groupedRemoveSubjectKeys_1);\n }\n finally { if (e_3) throw e_3.error; }\n return [7 /*endfinally*/];\n case 10: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Soft-removes all given subjects in the database.\n */\n SubjectExecutor.prototype.executeSoftRemoveOperations = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Promise.all(this.softRemoveSubjects.map(function (subject) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n var partialEntity, manager, softDeleteQueryBuilder, updateResult;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!subject.identifier)\n throw new _error_SubjectWithoutIdentifierError__WEBPACK_IMPORTED_MODULE_4__[\"SubjectWithoutIdentifierError\"](subject);\n if (!(this.queryRunner instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"MongoQueryRunner\"])) return [3 /*break*/, 2];\n partialEntity = _util_OrmUtils__WEBPACK_IMPORTED_MODULE_10__[\"OrmUtils\"].mergeDeep({}, subject.entity);\n if (subject.metadata.objectIdColumn && subject.metadata.objectIdColumn.propertyName) {\n delete partialEntity[subject.metadata.objectIdColumn.propertyName];\n }\n if (subject.metadata.createDateColumn && subject.metadata.createDateColumn.propertyName) {\n delete partialEntity[subject.metadata.createDateColumn.propertyName];\n }\n if (subject.metadata.updateDateColumn && subject.metadata.updateDateColumn.propertyName) {\n partialEntity[subject.metadata.updateDateColumn.propertyName] = new Date();\n }\n if (subject.metadata.deleteDateColumn && subject.metadata.deleteDateColumn.propertyName) {\n partialEntity[subject.metadata.deleteDateColumn.propertyName] = new Date();\n }\n manager = this.queryRunner.manager;\n return [4 /*yield*/, manager.update(subject.metadata.target, subject.identifier, partialEntity)];\n case 1:\n _a.sent();\n return [3 /*break*/, 4];\n case 2:\n softDeleteQueryBuilder = this.queryRunner\n .manager\n .createQueryBuilder()\n .softDelete()\n .from(subject.metadata.target)\n .updateEntity(this.options && this.options.reload === false ? false : true)\n .callListeners(false);\n if (subject.entity) {\n softDeleteQueryBuilder.whereEntity(subject.identifier);\n }\n else { // in this case identifier is just conditions object to update by\n softDeleteQueryBuilder.where(subject.identifier);\n }\n return [4 /*yield*/, softDeleteQueryBuilder.execute()];\n case 3:\n updateResult = _a.sent();\n subject.generatedMap = updateResult.generatedMaps[0];\n if (subject.generatedMap) {\n subject.metadata.columns.forEach(function (column) {\n var value = column.getEntityValue(subject.generatedMap);\n if (value !== undefined && value !== null) {\n var preparedValue = _this.queryRunner.connection.driver.prepareHydratedValue(value, column);\n column.setEntityValue(subject.generatedMap, preparedValue);\n }\n });\n }\n _a.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n }); }))];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Recovers all given subjects in the database.\n */\n SubjectExecutor.prototype.executeRecoverOperations = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Promise.all(this.recoverSubjects.map(function (subject) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n var partialEntity, manager, softDeleteQueryBuilder, updateResult;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!subject.identifier)\n throw new _error_SubjectWithoutIdentifierError__WEBPACK_IMPORTED_MODULE_4__[\"SubjectWithoutIdentifierError\"](subject);\n if (!(this.queryRunner instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"MongoQueryRunner\"])) return [3 /*break*/, 2];\n partialEntity = _util_OrmUtils__WEBPACK_IMPORTED_MODULE_10__[\"OrmUtils\"].mergeDeep({}, subject.entity);\n if (subject.metadata.objectIdColumn && subject.metadata.objectIdColumn.propertyName) {\n delete partialEntity[subject.metadata.objectIdColumn.propertyName];\n }\n if (subject.metadata.createDateColumn && subject.metadata.createDateColumn.propertyName) {\n delete partialEntity[subject.metadata.createDateColumn.propertyName];\n }\n if (subject.metadata.updateDateColumn && subject.metadata.updateDateColumn.propertyName) {\n partialEntity[subject.metadata.updateDateColumn.propertyName] = new Date();\n }\n if (subject.metadata.deleteDateColumn && subject.metadata.deleteDateColumn.propertyName) {\n partialEntity[subject.metadata.deleteDateColumn.propertyName] = null;\n }\n manager = this.queryRunner.manager;\n return [4 /*yield*/, manager.update(subject.metadata.target, subject.identifier, partialEntity)];\n case 1:\n _a.sent();\n return [3 /*break*/, 4];\n case 2:\n softDeleteQueryBuilder = this.queryRunner\n .manager\n .createQueryBuilder()\n .restore()\n .from(subject.metadata.target)\n .updateEntity(this.options && this.options.reload === false ? false : true)\n .callListeners(false);\n if (subject.entity) {\n softDeleteQueryBuilder.whereEntity(subject.identifier);\n }\n else { // in this case identifier is just conditions object to update by\n softDeleteQueryBuilder.where(subject.identifier);\n }\n return [4 /*yield*/, softDeleteQueryBuilder.execute()];\n case 3:\n updateResult = _a.sent();\n subject.generatedMap = updateResult.generatedMaps[0];\n if (subject.generatedMap) {\n subject.metadata.columns.forEach(function (column) {\n var value = column.getEntityValue(subject.generatedMap);\n if (value !== undefined && value !== null) {\n var preparedValue = _this.queryRunner.connection.driver.prepareHydratedValue(value, column);\n column.setEntityValue(subject.generatedMap, preparedValue);\n }\n });\n }\n _a.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n }); }))];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Updates all special columns of the saving entities (create date, update date, version, etc.).\n * Also updates nullable columns and columns with default values.\n */\n SubjectExecutor.prototype.updateSpecialColumnsInPersistedEntities = function () {\n var _this = this;\n // update inserted entity properties\n if (this.insertSubjects.length)\n this.updateSpecialColumnsInInsertedAndUpdatedEntities(this.insertSubjects);\n // update updated entity properties\n if (this.updateSubjects.length)\n this.updateSpecialColumnsInInsertedAndUpdatedEntities(this.updateSubjects);\n // update soft-removed entity properties\n if (this.updateSubjects.length)\n this.updateSpecialColumnsInInsertedAndUpdatedEntities(this.softRemoveSubjects);\n // update recovered entity properties\n if (this.updateSubjects.length)\n this.updateSpecialColumnsInInsertedAndUpdatedEntities(this.recoverSubjects);\n // remove ids from the entities that were removed\n if (this.removeSubjects.length) {\n this.removeSubjects.forEach(function (subject) {\n if (!subject.entity)\n return;\n subject.metadata.primaryColumns.forEach(function (primaryColumn) {\n primaryColumn.setEntityValue(subject.entity, undefined);\n });\n });\n }\n // other post-persist updations\n this.allSubjects.forEach(function (subject) {\n if (!subject.entity)\n return;\n subject.metadata.relationIds.forEach(function (relationId) {\n relationId.setValue(subject.entity);\n });\n // mongo _id remove\n if (_this.queryRunner instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"MongoQueryRunner\"]) {\n if (subject.metadata.objectIdColumn\n && subject.metadata.objectIdColumn.databaseName\n && subject.metadata.objectIdColumn.databaseName !== subject.metadata.objectIdColumn.propertyName) {\n delete subject.entity[subject.metadata.objectIdColumn.databaseName];\n }\n }\n });\n };\n /**\n * Updates all special columns of the saving entities (create date, update date, version, etc.).\n * Also updates nullable columns and columns with default values.\n */\n SubjectExecutor.prototype.updateSpecialColumnsInInsertedAndUpdatedEntities = function (subjects) {\n var _this = this;\n subjects.forEach(function (subject) {\n if (!subject.entity)\n return;\n // set values to \"null\" for nullable columns that did not have values\n subject.metadata.columns.forEach(function (column) {\n // if table inheritance is used make sure this column is not child's column\n if (subject.metadata.childEntityMetadatas.length > 0 && subject.metadata.childEntityMetadatas.map(function (metadata) { return metadata.target; }).indexOf(column.target) !== -1)\n return;\n // entities does not have virtual columns\n if (column.isVirtual)\n return;\n // update nullable columns\n if (column.isNullable) {\n var columnValue = column.getEntityValue(subject.entity);\n if (columnValue === undefined)\n column.setEntityValue(subject.entity, null);\n }\n // update relational columns\n if (subject.updatedRelationMaps.length > 0) {\n subject.updatedRelationMaps.forEach(function (updatedRelationMap) {\n updatedRelationMap.relation.joinColumns.forEach(function (column) {\n if (column.isVirtual === true)\n return;\n column.setEntityValue(subject.entity, updatedRelationMap.value instanceof Object ? column.referencedColumn.getEntityValue(updatedRelationMap.value) : updatedRelationMap.value);\n });\n });\n }\n });\n // merge into entity all generated values returned by a database\n if (subject.generatedMap)\n _this.queryRunner.manager.merge(subject.metadata.target, subject.entity, subject.generatedMap);\n });\n };\n /**\n * Groups subjects by metadata names (by tables) to make bulk insertions and deletions possible.\n * However there are some limitations with bulk insertions of data into tables with generated (increment) columns\n * in some drivers. Some drivers like mysql and sqlite does not support returning multiple generated columns\n * after insertion and can only return a single generated column value, that's why its not possible to do bulk insertion,\n * because it breaks insertion result's generatedMap and leads to problems when this subject is used in other subjects saves.\n * That's why we only support bulking in junction tables for those drivers.\n *\n * Other drivers like postgres and sql server support RETURNING / OUTPUT statement which allows to return generated\n * id for each inserted row, that's why bulk insertion is not limited to junction tables in there.\n */\n SubjectExecutor.prototype.groupBulkSubjects = function (subjects, type) {\n var group = {};\n var keys = [];\n var groupingAllowed = type === \"delete\" || this.queryRunner.connection.driver.isReturningSqlSupported();\n subjects.forEach(function (subject, index) {\n var key = groupingAllowed || subject.metadata.isJunction ? subject.metadata.name : subject.metadata.name + \"_\" + index;\n if (!group[key]) {\n group[key] = [subject];\n keys.push(key);\n }\n else {\n group[key].push(subject);\n }\n });\n return [group, keys];\n };\n return SubjectExecutor;\n}());\n\n\n//# sourceMappingURL=SubjectExecutor.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/persistence/SubjectExecutor.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/persistence/SubjectTopoligicalSorter.js":
/*!******************************************************************************!*\
!*** ./node_modules/typeorm/browser/persistence/SubjectTopoligicalSorter.js ***!
\******************************************************************************/
/*! exports provided: SubjectTopoligicalSorter */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SubjectTopoligicalSorter\", function() { return SubjectTopoligicalSorter; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Orders insert or remove subjects in proper order (using topological sorting)\n * to make sure insert or remove operations are executed in a proper order.\n */\nvar SubjectTopoligicalSorter = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function SubjectTopoligicalSorter(subjects) {\n this.subjects = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(subjects)); // copy subjects to prevent changing of sent array\n this.metadatas = this.getUniqueMetadatas(this.subjects);\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Sorts (orders) subjects in their topological order.\n */\n SubjectTopoligicalSorter.prototype.sort = function (direction) {\n var _this = this;\n // if there are no metadatas it probably mean there is no subjects... we don't have to do anything here\n if (!this.metadatas.length)\n return this.subjects;\n var sortedSubjects = [];\n // first if we sort for deletion all junction subjects\n // junction subjects are subjects without entity and database entity set\n if (direction === \"delete\") {\n var junctionSubjects = this.subjects.filter(function (subject) { return !subject.entity && !subject.databaseEntity; });\n sortedSubjects.push.apply(sortedSubjects, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(junctionSubjects)));\n this.removeAlreadySorted(junctionSubjects);\n }\n // next we always insert entities with non-nullable relations, sort them first\n var nonNullableDependencies = this.getNonNullableDependencies();\n var sortedNonNullableEntityTargets = this.toposort(nonNullableDependencies);\n if (direction === \"insert\")\n sortedNonNullableEntityTargets = sortedNonNullableEntityTargets.reverse();\n // so we have a sorted entity targets\n // go thought each of them and find all subjects with sorted entity target\n // add those sorted targets and remove them from original array of targets\n sortedNonNullableEntityTargets.forEach(function (sortedEntityTarget) {\n var entityTargetSubjects = _this.subjects.filter(function (subject) { return subject.metadata.targetName === sortedEntityTarget; });\n sortedSubjects.push.apply(sortedSubjects, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(entityTargetSubjects)));\n _this.removeAlreadySorted(entityTargetSubjects);\n });\n // next sort all other entities\n // same process as in above but with other entities\n var otherDependencies = this.getDependencies();\n var sortedOtherEntityTargets = this.toposort(otherDependencies);\n if (direction === \"insert\")\n sortedOtherEntityTargets = sortedOtherEntityTargets.reverse();\n sortedOtherEntityTargets.forEach(function (sortedEntityTarget) {\n var entityTargetSubjects = _this.subjects.filter(function (subject) { return subject.metadata.targetName === sortedEntityTarget; });\n sortedSubjects.push.apply(sortedSubjects, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(entityTargetSubjects)));\n _this.removeAlreadySorted(entityTargetSubjects);\n });\n // if we have something left in the subjects add them as well\n sortedSubjects.push.apply(sortedSubjects, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.subjects)));\n return sortedSubjects;\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Removes already sorted subjects from this.subjects list of subjects.\n */\n SubjectTopoligicalSorter.prototype.removeAlreadySorted = function (subjects) {\n var _this = this;\n subjects.forEach(function (subject) {\n _this.subjects.splice(_this.subjects.indexOf(subject), 1);\n });\n };\n /**\n * Extracts all unique metadatas from the given subjects.\n */\n SubjectTopoligicalSorter.prototype.getUniqueMetadatas = function (subjects) {\n var metadatas = [];\n subjects.forEach(function (subject) {\n if (metadatas.indexOf(subject.metadata) === -1)\n metadatas.push(subject.metadata);\n });\n return metadatas;\n };\n /**\n * Gets dependency tree for all entity metadatas with non-nullable relations.\n * We need to execute insertions first for entities which non-nullable relations.\n */\n SubjectTopoligicalSorter.prototype.getNonNullableDependencies = function () {\n return this.metadatas.reduce(function (dependencies, metadata) {\n metadata.relationsWithJoinColumns.forEach(function (relation) {\n if (relation.isNullable)\n return;\n dependencies.push([metadata.targetName, relation.inverseEntityMetadata.targetName]);\n });\n return dependencies;\n }, []);\n };\n /**\n * Gets dependency tree for all entity metadatas with non-nullable relations.\n * We need to execute insertions first for entities which non-nullable relations.\n */\n SubjectTopoligicalSorter.prototype.getDependencies = function () {\n return this.metadatas.reduce(function (dependencies, metadata) {\n metadata.relationsWithJoinColumns.forEach(function (relation) {\n // if relation is self-referenced we skip it\n if (relation.inverseEntityMetadata === metadata)\n return;\n dependencies.push([metadata.targetName, relation.inverseEntityMetadata.targetName]);\n });\n return dependencies;\n }, []);\n };\n /**\n * Sorts given graph using topological sorting algorithm.\n *\n * Algorithm is kindly taken from https://github.com/marcelklehr/toposort repository.\n */\n SubjectTopoligicalSorter.prototype.toposort = function (edges) {\n function uniqueNodes(arr) {\n var res = [];\n for (var i_1 = 0, len = arr.length; i_1 < len; i_1++) {\n var edge = arr[i_1];\n if (res.indexOf(edge[0]) < 0)\n res.push(edge[0]);\n if (res.indexOf(edge[1]) < 0)\n res.push(edge[1]);\n }\n return res;\n }\n var nodes = uniqueNodes(edges);\n var cursor = nodes.length, sorted = new Array(cursor), visited = {}, i = cursor;\n while (i--) {\n if (!visited[i])\n visit(nodes[i], i, []);\n }\n function visit(node, i, predecessors) {\n if (predecessors.indexOf(node) >= 0) {\n throw new Error(\"Cyclic dependency: \" + JSON.stringify(node)); // todo: better error\n }\n if (!~nodes.indexOf(node)) {\n throw new Error(\"Found unknown node. Make sure to provided all involved nodes. Unknown node: \" + JSON.stringify(node));\n }\n if (visited[i])\n return;\n visited[i] = true;\n // outgoing edges\n var outgoing = edges.filter(function (edge) {\n return edge[0] === node;\n });\n if (i = outgoing.length) {\n var preds = predecessors.concat(node);\n do {\n var child = outgoing[--i][1];\n visit(child, nodes.indexOf(child), preds);\n } while (i);\n }\n sorted[--cursor] = node;\n }\n return sorted;\n };\n return SubjectTopoligicalSorter;\n}());\n\n\n//# sourceMappingURL=SubjectTopoligicalSorter.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/persistence/SubjectTopoligicalSorter.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/persistence/subject-builder/CascadesSubjectBuilder.js":
/*!********************************************************************************************!*\
!*** ./node_modules/typeorm/browser/persistence/subject-builder/CascadesSubjectBuilder.js ***!
\********************************************************************************************/
/*! exports provided: CascadesSubjectBuilder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CascadesSubjectBuilder\", function() { return CascadesSubjectBuilder; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/typeorm/browser/persistence/Subject.js\");\n\n\n/**\n * Finds all cascade operations of the given subject and cascade operations of the found cascaded subjects,\n * e.g. builds a cascade tree and creates a subjects for them.\n */\nvar CascadesSubjectBuilder = /** @class */ (function () {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n function CascadesSubjectBuilder(allSubjects) {\n this.allSubjects = allSubjects;\n }\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n /**\n * Builds a cascade subjects tree and pushes them in into the given array of subjects.\n */\n CascadesSubjectBuilder.prototype.build = function (subject, operationType) {\n var _this = this;\n subject.metadata\n .extractRelationValuesFromEntity(subject.entity, subject.metadata.relations) // todo: we can create EntityMetadata.cascadeRelations\n .forEach(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 3), relation = _b[0], relationEntity = _b[1], relationEntityMetadata = _b[2];\n // we need only defined values and insert, update, soft-remove or recover cascades of the relation should be set\n if (relationEntity === undefined ||\n relationEntity === null ||\n (!relation.isCascadeInsert && !relation.isCascadeUpdate && !relation.isCascadeSoftRemove && !relation.isCascadeRecover))\n return;\n // if relation entity is just a relation id set (for example post.tag = 1)\n // then we don't really need to check cascades since there is no object to insert or update\n if (!(relationEntity instanceof Object))\n return;\n // if we already has this entity in list of operated subjects then skip it to avoid recursion\n var alreadyExistRelationEntitySubject = _this.findByPersistEntityLike(relationEntityMetadata.target, relationEntity);\n if (alreadyExistRelationEntitySubject) {\n if (alreadyExistRelationEntitySubject.canBeInserted === false) // if its not marked for insertion yet\n alreadyExistRelationEntitySubject.canBeInserted = relation.isCascadeInsert === true && operationType === \"save\";\n if (alreadyExistRelationEntitySubject.canBeUpdated === false) // if its not marked for update yet\n alreadyExistRelationEntitySubject.canBeUpdated = relation.isCascadeUpdate === true && operationType === \"save\";\n if (alreadyExistRelationEntitySubject.canBeSoftRemoved === false) // if its not marked for removal yet\n alreadyExistRelationEntitySubject.canBeSoftRemoved = relation.isCascadeSoftRemove === true && operationType === \"soft-remove\";\n if (alreadyExistRelationEntitySubject.canBeRecovered === false) // if its not marked for recovery yet\n alreadyExistRelationEntitySubject.canBeRecovered = relation.isCascadeRecover === true && operationType === \"recover\";\n return;\n }\n // mark subject with what we can do with it\n // and add to the array of subjects to load only if there is no same entity there already\n var relationEntitySubject = new _Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]({\n metadata: relationEntityMetadata,\n parentSubject: subject,\n entity: relationEntity,\n canBeInserted: relation.isCascadeInsert === true && operationType === \"save\",\n canBeUpdated: relation.isCascadeUpdate === true && operationType === \"save\",\n canBeSoftRemoved: relation.isCascadeSoftRemove === true && operationType === \"soft-remove\",\n canBeRecovered: relation.isCascadeRecover === true && operationType === \"recover\"\n });\n _this.allSubjects.push(relationEntitySubject);\n // go recursively and find other entities we need to insert/update\n _this.build(relationEntitySubject, operationType);\n });\n };\n // ---------------------------------------------------------------------\n // Protected Methods\n // ---------------------------------------------------------------------\n /**\n * Finds subject where entity like given subject's entity.\n * Comparision made by entity id.\n */\n CascadesSubjectBuilder.prototype.findByPersistEntityLike = function (entityTarget, entity) {\n return this.allSubjects.find(function (subject) {\n if (!subject.entity)\n return false;\n if (subject.entity === entity)\n return true;\n return subject.metadata.target === entityTarget && subject.metadata.compareEntities(subject.entityWithFulfilledIds, entity);\n });\n };\n return CascadesSubjectBuilder;\n}());\n\n\n//# sourceMappingURL=CascadesSubjectBuilder.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/persistence/subject-builder/CascadesSubjectBuilder.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/persistence/subject-builder/ManyToManySubjectBuilder.js":
/*!**********************************************************************************************!*\
!*** ./node_modules/typeorm/browser/persistence/subject-builder/ManyToManySubjectBuilder.js ***!
\**********************************************************************************************/
/*! exports provided: ManyToManySubjectBuilder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ManyToManySubjectBuilder\", function() { return ManyToManySubjectBuilder; });\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subject */ \"./node_modules/typeorm/browser/persistence/Subject.js\");\n/* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/OrmUtils */ \"./node_modules/typeorm/browser/util/OrmUtils.js\");\n\n\n/**\n * Builds operations needs to be executed for many-to-many relations of the given subjects.\n *\n * by example: post contains owner many-to-many relation with categories in the property called \"categories\", e.g.\n * @ManyToMany(type => Category, category => category.posts) categories: Category[]\n * If user adds categories into the post and saves post we need to bind them.\n * This operation requires updation of junction table.\n */\nvar ManyToManySubjectBuilder = /** @class */ (function () {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n function ManyToManySubjectBuilder(subjects) {\n this.subjects = subjects;\n }\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n /**\n * Builds operations for any changes in the many-to-many relations of the subjects.\n */\n ManyToManySubjectBuilder.prototype.build = function () {\n var _this = this;\n this.subjects.forEach(function (subject) {\n // if subject doesn't have entity then no need to find something that should be inserted or removed\n if (!subject.entity)\n return;\n // go through all persistence enabled many-to-many relations and build subject operations for them\n subject.metadata.manyToManyRelations.forEach(function (relation) {\n // skip relations for which persistence is disabled\n if (relation.persistenceEnabled === false)\n return;\n _this.buildForSubjectRelation(subject, relation);\n });\n });\n };\n /**\n * Builds operations for removal of all many-to-many records of all many-to-many relations of the given subject.\n */\n ManyToManySubjectBuilder.prototype.buildForAllRemoval = function (subject) {\n var _this = this;\n // if subject does not have a database entity then it means it does not exist in the database\n // if it does not exist in the database then we don't have anything for deletion\n if (!subject.databaseEntity)\n return;\n // go through all persistence enabled many-to-many relations and build subject operations for them\n subject.metadata.manyToManyRelations.forEach(function (relation) {\n // skip relations for which persistence is disabled\n if (relation.persistenceEnabled === false)\n return;\n // get all related entities (actually related entity relation ids) bind to this subject entity\n // by example: returns category ids of the post we are currently working with (subject.entity is post)\n var relatedEntityRelationIdsInDatabase = relation.getEntityValue(subject.databaseEntity);\n // go through all related entities and create a new junction subject for each row in junction table\n relatedEntityRelationIdsInDatabase.forEach(function (relationId) {\n var junctionSubject = new _Subject__WEBPACK_IMPORTED_MODULE_0__[\"Subject\"]({\n metadata: relation.junctionEntityMetadata,\n parentSubject: subject,\n mustBeRemoved: true,\n identifier: _this.buildJunctionIdentifier(subject, relation, relationId)\n });\n // we use unshift because we need to perform those operations before post deletion is performed\n // but post deletion was already added as an subject\n // this is temporary solution, later we need to implement proper sorting of subjects before their removal\n _this.subjects.push(junctionSubject);\n });\n });\n };\n // ---------------------------------------------------------------------\n // Protected Methods\n // ---------------------------------------------------------------------\n /**\n * Builds operations for a given subject and relation.\n *\n * by example: subject is \"post\" entity we are saving here and relation is \"categories\" inside it here.\n */\n ManyToManySubjectBuilder.prototype.buildForSubjectRelation = function (subject, relation) {\n var _this = this;\n // load from db all relation ids of inverse entities that are \"bind\" to the subject's entity\n // this way we gonna check which relation ids are missing and which are new (e.g. inserted or removed)\n var databaseRelatedEntityIds = [];\n // if subject don't have database entity it means all related entities in persisted subject are new and must be bind\n // and we don't need to remove something that is not exist\n if (subject.databaseEntity)\n databaseRelatedEntityIds = relation.getEntityValue(subject.databaseEntity);\n // extract entity's relation value\n // by example: categories inside our post (subject.entity is post)\n var relatedEntities = relation.getEntityValue(subject.entity);\n 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\n relatedEntities = [];\n if (!(Array.isArray(relatedEntities)))\n return;\n // from all related entities find only those which aren't found in the db - for them we will create operation subjects\n relatedEntities.forEach(function (relatedEntity) {\n // todo: check how it will work for entities which are saved by cascades, but aren't saved in the database yet\n // extract only relation id from the related entities, since we only need it for comparision\n // by example: extract from category only relation id (category id, or let's say category title, depend on join column options)\n var relatedEntityRelationIdMap = relation.inverseEntityMetadata.getEntityIdMap(relatedEntity);\n // try to find a subject of this related entity, maybe it was loaded or was marked for persistence\n var relatedEntitySubject = _this.subjects.find(function (subject) {\n return subject.entity === relatedEntity;\n });\n // if subject with entity was found take subject identifier as relation id map since it may contain extra properties resolved\n if (relatedEntitySubject)\n relatedEntityRelationIdMap = relatedEntitySubject.identifier;\n // if related entity relation id map is empty it means related entity is newly persisted\n if (!relatedEntityRelationIdMap) {\n // we decided to remove this error because it brings complications when saving object with non-saved entities\n // if related entity does not have a subject then it means user tries to bind entity which wasn't saved\n // in this persistence because he didn't pass this entity for save or he did not set cascades\n // but without entity being inserted we cannot bind it in the relation operation, so we throw an exception here\n // we decided to remove this error because it brings complications when saving object with non-saved entities\n // if (!relatedEntitySubject)\n // throw new Error(`Many-to-many relation \"${relation.entityMetadata.name}.${relation.propertyPath}\" contains ` +\n // `entities which do not exist in the database yet, thus they cannot be bind in the database. ` +\n // `Please setup cascade insertion or save entities before binding it.`);\n if (!relatedEntitySubject)\n return;\n }\n // try to find related entity in the database\n // by example: find post's category in the database post's categories\n var relatedEntityExistInDatabase = databaseRelatedEntityIds.find(function (databaseRelatedEntityRelationId) {\n return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[\"OrmUtils\"].compareIds(databaseRelatedEntityRelationId, relatedEntityRelationIdMap);\n });\n // if entity is found then don't do anything - it means binding in junction table already exist, we don't need to add anything\n if (relatedEntityExistInDatabase)\n return;\n var ownerValue = relation.isOwning ? subject : (relatedEntitySubject || relatedEntity); // by example: ownerEntityMap is post from subject here\n var inverseValue = relation.isOwning ? (relatedEntitySubject || relatedEntity) : subject; // by example: inverseEntityMap is category from categories array here\n // create a new subject for insert operation of junction rows\n var junctionSubject = new _Subject__WEBPACK_IMPORTED_MODULE_0__[\"Subject\"]({\n metadata: relation.junctionEntityMetadata,\n parentSubject: subject,\n canBeInserted: true,\n });\n _this.subjects.push(junctionSubject);\n relation.junctionEntityMetadata.ownerColumns.forEach(function (column) {\n junctionSubject.changeMaps.push({\n column: column,\n value: ownerValue,\n // valueFactory: (value) => column.referencedColumn!.getEntityValue(value) // column.referencedColumn!.getEntityValue(ownerEntityMap),\n });\n });\n relation.junctionEntityMetadata.inverseColumns.forEach(function (column) {\n junctionSubject.changeMaps.push({\n column: column,\n value: inverseValue,\n // valueFactory: (value) => column.referencedColumn!.getEntityValue(value) // column.referencedColumn!.getEntityValue(inverseEntityMap),\n });\n });\n });\n // get all inverse entities relation ids that are \"bind\" to the currently persisted entity\n var changedInverseEntityRelationIds = [];\n relatedEntities.forEach(function (relatedEntity) {\n // relation.inverseEntityMetadata!.getEntityIdMap(relatedEntity)\n var relatedEntityRelationIdMap = relation.inverseEntityMetadata.getEntityIdMap(relatedEntity);\n // try to find a subject of this related entity, maybe it was loaded or was marked for persistence\n var relatedEntitySubject = _this.subjects.find(function (subject) {\n return subject.entity === relatedEntity;\n });\n // if subject with entity was found take subject identifier as relation id map since it may contain extra properties resolved\n if (relatedEntitySubject)\n relatedEntityRelationIdMap = relatedEntitySubject.identifier;\n if (relatedEntityRelationIdMap !== undefined && relatedEntityRelationIdMap !== null)\n changedInverseEntityRelationIds.push(relatedEntityRelationIdMap);\n });\n // now from all entities in the persisted entity find only those which aren't found in the db\n var removedJunctionEntityIds = databaseRelatedEntityIds.filter(function (existRelationId) {\n return !changedInverseEntityRelationIds.find(function (changedRelationId) {\n return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[\"OrmUtils\"].compareIds(changedRelationId, existRelationId);\n });\n });\n // finally create a new junction remove operations for missing related entities\n removedJunctionEntityIds.forEach(function (removedEntityRelationId) {\n var junctionSubject = new _Subject__WEBPACK_IMPORTED_MODULE_0__[\"Subject\"]({\n metadata: relation.junctionEntityMetadata,\n parentSubject: subject,\n mustBeRemoved: true,\n identifier: _this.buildJunctionIdentifier(subject, relation, removedEntityRelationId)\n });\n _this.subjects.push(junctionSubject);\n });\n };\n /**\n * Creates identifiers for junction table.\n * Example: { postId: 1, categoryId: 2 }\n */\n ManyToManySubjectBuilder.prototype.buildJunctionIdentifier = function (subject, relation, relationId) {\n var ownerEntityMap = relation.isOwning ? subject.entity : relationId;\n var inverseEntityMap = relation.isOwning ? relationId : subject.entity;\n var identifier = {};\n relation.junctionEntityMetadata.ownerColumns.forEach(function (column) {\n _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[\"OrmUtils\"].mergeDeep(identifier, column.createValueMap(column.referencedColumn.getEntityValue(ownerEntityMap)));\n });\n relation.junctionEntityMetadata.inverseColumns.forEach(function (column) {\n _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[\"OrmUtils\"].mergeDeep(identifier, column.createValueMap(column.referencedColumn.getEntityValue(inverseEntityMap)));\n });\n return identifier;\n };\n return ManyToManySubjectBuilder;\n}());\n\n\n//# sourceMappingURL=ManyToManySubjectBuilder.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/persistence/subject-builder/ManyToManySubjectBuilder.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/persistence/subject-builder/OneToManySubjectBuilder.js":
/*!*********************************************************************************************!*\
!*** ./node_modules/typeorm/browser/persistence/subject-builder/OneToManySubjectBuilder.js ***!
\*********************************************************************************************/
/*! exports provided: OneToManySubjectBuilder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OneToManySubjectBuilder\", function() { return OneToManySubjectBuilder; });\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subject */ \"./node_modules/typeorm/browser/persistence/Subject.js\");\n/* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/OrmUtils */ \"./node_modules/typeorm/browser/util/OrmUtils.js\");\n/* harmony import */ var _metadata_EntityMetadata__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../metadata/EntityMetadata */ \"./node_modules/typeorm/browser/metadata/EntityMetadata.js\");\n\n\n\n/**\n * Builds operations needs to be executed for one-to-many relations of the given subjects.\n *\n * by example: post contains one-to-many relation with category in the property called \"categories\", e.g.\n * @OneToMany(type => Category, category => category.post) categories: Category[]\n * If user adds categories into the post and saves post we need to bind them.\n * This operation requires updation of category table since its owner of the relation and contains a join column.\n *\n * note: this class shares lot of things with OneToOneInverseSideOperationBuilder, so when you change this class\n * make sure to reflect changes there as well.\n */\nvar OneToManySubjectBuilder = /** @class */ (function () {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n function OneToManySubjectBuilder(subjects) {\n this.subjects = subjects;\n }\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n /**\n * Builds all required operations.\n */\n OneToManySubjectBuilder.prototype.build = function () {\n var _this = this;\n this.subjects.forEach(function (subject) {\n subject.metadata.oneToManyRelations.forEach(function (relation) {\n // skip relations for which persistence is disabled\n if (relation.persistenceEnabled === false)\n return;\n _this.buildForSubjectRelation(subject, relation);\n });\n });\n };\n // ---------------------------------------------------------------------\n // Protected Methods\n // ---------------------------------------------------------------------\n /**\n * Builds operations for a given subject and relation.\n *\n * by example: subject is \"post\" entity we are saving here and relation is \"categories\" inside it here.\n */\n OneToManySubjectBuilder.prototype.buildForSubjectRelation = function (subject, relation) {\n var _this = this;\n // prepare objects (relation id maps) for the database entity\n // note: subject.databaseEntity contains relations with loaded relation ids only\n // by example: since subject is a post, we are expecting to get all post's categories saved in the database here,\n // particularly their relation ids, e.g. category ids stored in the database\n var relatedEntityDatabaseRelationIds = [];\n if (subject.databaseEntity) { // related entities in the database can exist only if this entity (post) is saved\n relatedEntityDatabaseRelationIds = relation.getEntityValue(subject.databaseEntity);\n }\n // get related entities of persisted entity\n // by example: get categories from the passed to persist post entity\n var relatedEntities = relation.getEntityValue(subject.entity);\n if (relatedEntities === null) // we treat relations set to null as removed, so we don't skip it\n relatedEntities = [];\n if (relatedEntities === undefined) // if relation is undefined then nothing to update\n return;\n // extract only relation ids from the related entities, since we only need them for comparision\n // by example: extract from categories only relation ids (category id, or let's say category title, depend on join column options)\n var relatedPersistedEntityRelationIds = [];\n relatedEntities.forEach(function (relatedEntity) {\n var relationIdMap = relation.inverseEntityMetadata.getEntityIdMap(relatedEntity); // by example: relationIdMap is category.id map here, e.g. { id: ... }\n // try to find a subject of this related entity, maybe it was loaded or was marked for persistence\n var relatedEntitySubject = _this.subjects.find(function (subject) {\n return subject.entity === relatedEntity;\n });\n // if subject with entity was found take subject identifier as relation id map since it may contain extra properties resolved\n if (relatedEntitySubject)\n relationIdMap = relatedEntitySubject.identifier;\n // if relationIdMap is undefined then it means user binds object which is not saved in the database yet\n // by example: if post contains categories which does not have ids yet (because they are new)\n // it means they are always newly inserted and relation update operation always must be created for them\n // it does not make sense to perform difference operation for them for both add and remove actions\n if (!relationIdMap) {\n // we decided to remove this error because it brings complications when saving object with non-saved entities\n // if (!relatedEntitySubject)\n // throw new Error(`One-to-many relation \"${relation.entityMetadata.name}.${relation.propertyPath}\" contains ` +\n // `entities which do not exist in the database yet, thus they cannot be bind in the database. ` +\n // `Please setup cascade insertion or save entities before binding it.`);\n if (!relatedEntitySubject)\n return;\n // okay, so related subject exist and its marked for insertion, then add a new change map\n // by example: this will tell category to insert into its post relation our post we are working with\n // relatedEntitySubject is newly inserted CategorySubject\n // relation.inverseRelation is ManyToOne relation inside Category\n // subject is Post needs to be inserted into Category\n relatedEntitySubject.changeMaps.push({\n relation: relation.inverseRelation,\n value: subject\n });\n return;\n }\n // check if this binding really exist in the database\n // by example: find our category if its already bind in the database\n var relationIdInDatabaseSubjectRelation = relatedEntityDatabaseRelationIds.find(function (relatedDatabaseEntityRelationId) {\n return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[\"OrmUtils\"].compareIds(relationIdMap, relatedDatabaseEntityRelationId);\n });\n // 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\n // by example: this will tell category to insert into its post relation our post we are working with\n // relatedEntitySubject is newly inserted CategorySubject\n // relation.inverseRelation is ManyToOne relation inside Category\n // subject is Post needs to be inserted into Category\n if (!relationIdInDatabaseSubjectRelation) {\n // if there is no relatedEntitySubject then it means \"category\" wasn't persisted,\n // but since we are going to update \"category\" table (since its an owning side of relation with join column)\n // we create a new subject here:\n if (!relatedEntitySubject) {\n relatedEntitySubject = new _Subject__WEBPACK_IMPORTED_MODULE_0__[\"Subject\"]({\n metadata: relation.inverseEntityMetadata,\n parentSubject: subject,\n canBeUpdated: true,\n identifier: relationIdMap\n });\n _this.subjects.push(relatedEntitySubject);\n }\n relatedEntitySubject.changeMaps.push({\n relation: relation.inverseRelation,\n value: subject\n });\n }\n // if related entity has relation id then we add it to the list of relation ids\n // this list will be used later to compare with database relation ids to find a difference\n // what exist in this array and does not exist in the database are newly inserted relations\n // what does not exist in this array, but exist in the database are removed relations\n // removed relations are set to null from inverse side of relation\n relatedPersistedEntityRelationIds.push(relationIdMap);\n });\n // find what related entities were added and what were removed based on difference between what we save and what database has\n _metadata_EntityMetadata__WEBPACK_IMPORTED_MODULE_2__[\"EntityMetadata\"]\n .difference(relatedEntityDatabaseRelationIds, relatedPersistedEntityRelationIds)\n .forEach(function (removedRelatedEntityRelationId) {\n // todo: probably we can improve this in the future by finding entity with column those values,\n // todo: maybe it was already in persistence process. This is possible due to unique requirements of join columns\n // we create a new subject which operations will be executed in subject operation executor\n var removedRelatedEntitySubject = new _Subject__WEBPACK_IMPORTED_MODULE_0__[\"Subject\"]({\n metadata: relation.inverseEntityMetadata,\n parentSubject: subject,\n identifier: removedRelatedEntityRelationId,\n });\n if (!relation.inverseRelation || relation.inverseRelation.orphanedRowAction === \"nullify\") {\n removedRelatedEntitySubject.canBeUpdated = true;\n removedRelatedEntitySubject.changeMaps = [{\n relation: relation.inverseRelation,\n value: null\n }];\n }\n else if (relation.inverseRelation.orphanedRowAction === \"delete\") {\n removedRelatedEntitySubject.mustBeRemoved = true;\n }\n _this.subjects.push(removedRelatedEntitySubject);\n });\n };\n return OneToManySubjectBuilder;\n}());\n\n\n//# sourceMappingURL=OneToManySubjectBuilder.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/persistence/subject-builder/OneToManySubjectBuilder.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js":
/*!*******************************************************************************************************!*\
!*** ./node_modules/typeorm/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js ***!
\*******************************************************************************************************/
/*! exports provided: OneToOneInverseSideSubjectBuilder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OneToOneInverseSideSubjectBuilder\", function() { return OneToOneInverseSideSubjectBuilder; });\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subject */ \"./node_modules/typeorm/browser/persistence/Subject.js\");\n/* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/OrmUtils */ \"./node_modules/typeorm/browser/util/OrmUtils.js\");\n\n\n/**\n * Builds operations needs to be executed for one-to-one non-owner relations of the given subjects.\n *\n * by example: post contains one-to-one non-owner relation with category in the property called \"category\", e.g.\n * @OneToOne(type => Category, category => category.post) category: Category\n * If user sets a category into the post and saves post we need to bind them.\n * This operation requires updation of category table since its owner of the relation and contains a join column.\n *\n * note: this class shares lot of things with OneToManyUpdateBuilder, so when you change this class\n * make sure to reflect changes there as well.\n */\nvar OneToOneInverseSideSubjectBuilder = /** @class */ (function () {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n function OneToOneInverseSideSubjectBuilder(subjects) {\n this.subjects = subjects;\n }\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n /**\n * Builds all required operations.\n */\n OneToOneInverseSideSubjectBuilder.prototype.build = function () {\n var _this = this;\n this.subjects.forEach(function (subject) {\n subject.metadata.oneToOneRelations.forEach(function (relation) {\n // we don't need owning relations, this operation is only for inverse side of one-to-one relations\n // skip relations for which persistence is disabled\n if (relation.isOwning || relation.persistenceEnabled === false)\n return;\n _this.buildForSubjectRelation(subject, relation);\n });\n });\n };\n // ---------------------------------------------------------------------\n // Protected Methods\n // ---------------------------------------------------------------------\n /**\n * Builds operations for a given subject and relation.\n *\n * by example: subject is \"post\" entity we are saving here and relation is \"category\" inside it here.\n */\n OneToOneInverseSideSubjectBuilder.prototype.buildForSubjectRelation = function (subject, relation) {\n // prepare objects (relation id map) for the database entity\n // note: subject.databaseEntity contains relation with loaded relation id only (id map)\n // by example: since subject is a post, we are expecting to get post's category saved in the database here,\n // particularly its relation id, e.g. category id stored in the database\n var relatedEntityDatabaseRelationId = undefined;\n if (subject.databaseEntity) // related entity in the database can exist only if this entity (post) is saved\n relatedEntityDatabaseRelationId = relation.getEntityValue(subject.databaseEntity);\n // get related entities of persisted entity\n // by example: get category from the passed to persist post entity\n var relatedEntity = relation.getEntityValue(subject.entity); // by example: relatedEntity is a category here\n if (relatedEntity === undefined) // if relation is undefined then nothing to update\n return;\n // if related entity is null then we need to check if there a bind in the database and unset it\n // if there is no bind in the entity then we don't need to do anything\n // by example: if post.category = null and category has this post in the database then we unset it\n if (relatedEntity === null) {\n // it makes sense to update database only there is a previously set value in the database\n if (relatedEntityDatabaseRelationId) {\n // todo: probably we can improve this in the future by finding entity with column those values,\n // todo: maybe it was already in persistence process. This is possible due to unique requirements of join columns\n // we create a new subject which operations will be executed in subject operation executor\n var removedRelatedEntitySubject = new _Subject__WEBPACK_IMPORTED_MODULE_0__[\"Subject\"]({\n metadata: relation.inverseEntityMetadata,\n parentSubject: subject,\n canBeUpdated: true,\n identifier: relatedEntityDatabaseRelationId,\n changeMaps: [{\n relation: relation.inverseRelation,\n value: null\n }]\n });\n this.subjects.push(removedRelatedEntitySubject);\n }\n return;\n } // else means entity is bind in the database\n // extract only relation id from the related entities, since we only need it for comparision\n // by example: extract from category only relation id (category id, or let's say category title, depend on join column options)\n var relationIdMap = relation.inverseEntityMetadata.getEntityIdMap(relatedEntity); // by example: relationIdMap is category.id map here, e.g. { id: ... }\n // try to find a subject of this related entity, maybe it was loaded or was marked for persistence\n var relatedEntitySubject = this.subjects.find(function (operateSubject) {\n return !!operateSubject.entity && operateSubject.entity === relatedEntity;\n });\n // if subject with entity was found take subject identifier as relation id map since it may contain extra properties resolved\n if (relatedEntitySubject)\n relationIdMap = relatedEntitySubject.identifier;\n // if relationIdMap is undefined then it means user binds object which is not saved in the database yet\n // by example: if post contains category which does not have id(s) yet (because its a new category)\n // it means its always newly inserted and relation update operation always must be created for it\n // it does not make sense to perform difference operation for it for both add and remove actions\n if (!relationIdMap) {\n // we decided to remove this error because it brings complications when saving object with non-saved entities\n // if related entity does not have a subject then it means user tries to bind entity which wasn't saved\n // in this persistence because he didn't pass this entity for save or he did not set cascades\n // but without entity being inserted we cannot bind it in the relation operation, so we throw an exception here\n // if (!relatedEntitySubject)\n // throw new Error(`One-to-one inverse relation \"${relation.entityMetadata.name}.${relation.propertyPath}\" contains ` +\n // `entity which does not exist in the database yet, thus cannot be bind in the database. ` +\n // `Please setup cascade insertion or save entity before binding it.`);\n if (!relatedEntitySubject)\n return;\n // okay, so related subject exist and its marked for insertion, then add a new change map\n // by example: this will tell category to insert into its post relation our post we are working with\n // relatedEntitySubject is newly inserted CategorySubject\n // relation.inverseRelation is OneToOne owner relation inside Category\n // subject is Post needs to be inserted into Category\n relatedEntitySubject.changeMaps.push({\n relation: relation.inverseRelation,\n value: subject\n });\n }\n // check if this binding really exist in the database\n // by example: find our post if its already bind to category in the database and its not equal to what user tries to set\n var areRelatedIdEqualWithDatabase = relatedEntityDatabaseRelationId && _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[\"OrmUtils\"].compareIds(relationIdMap, relatedEntityDatabaseRelationId);\n // if they aren't equal it means its a new relation and we need to \"bind\" them\n // by example: this will tell category to insert into its post relation our post we are working with\n // relatedEntitySubject is newly inserted CategorySubject\n // relation.inverseRelation is ManyToOne relation inside Category\n // subject is Post needs to be inserted into Category\n if (!areRelatedIdEqualWithDatabase) {\n // if there is no relatedEntitySubject then it means \"category\" wasn't persisted,\n // but since we are going to update \"category\" table (since its an owning side of relation with join column)\n // we create a new subject here:\n if (!relatedEntitySubject) {\n relatedEntitySubject = new _Subject__WEBPACK_IMPORTED_MODULE_0__[\"Subject\"]({\n metadata: relation.inverseEntityMetadata,\n canBeUpdated: true,\n identifier: relationIdMap\n });\n this.subjects.push(relatedEntitySubject);\n }\n relatedEntitySubject.changeMaps.push({\n relation: relation.inverseRelation,\n value: subject\n });\n }\n };\n return OneToOneInverseSideSubjectBuilder;\n}());\n\n\n//# sourceMappingURL=OneToOneInverseSideSubjectBuilder.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/persistence/tree/ClosureSubjectExecutor.js":
/*!*********************************************************************************!*\
!*** ./node_modules/typeorm/browser/persistence/tree/ClosureSubjectExecutor.js ***!
\*********************************************************************************/
/*! exports provided: ClosureSubjectExecutor */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ClosureSubjectExecutor\", function() { return ClosureSubjectExecutor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _error_CannotAttachTreeChildrenEntityError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../error/CannotAttachTreeChildrenEntityError */ \"./node_modules/typeorm/browser/error/CannotAttachTreeChildrenEntityError.js\");\n\n\n/**\n * Executes subject operations for closure entities.\n */\nvar ClosureSubjectExecutor = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function ClosureSubjectExecutor(queryRunner) {\n this.queryRunner = queryRunner;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Removes all children of the given subject's entity.\n\n async deleteChildrenOf(subject: Subject) {\n // const relationValue = subject.metadata.treeParentRelation.getEntityValue(subject.databaseEntity);\n // console.log(\"relationValue: \", relationValue);\n // this.queryRunner.manager\n // .createQueryBuilder()\n // .from(subject.metadata.closureJunctionTable.target, \"tree\")\n // .where(\"tree.\");\n }*/\n /**\n * Executes operations when subject is being inserted.\n */\n ClosureSubjectExecutor.prototype.insert = function (subject) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var closureJunctionInsertMap, parent, escape_1, tableName, ancestorColumnNames, descendantColumnNames, firstQueryParameters_1, childEntityIdValues_1, childEntityIds1, whereCondition;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n closureJunctionInsertMap = {};\n subject.metadata.closureJunctionTable.ancestorColumns.forEach(function (column) {\n closureJunctionInsertMap[column.databaseName] = subject.identifier;\n });\n subject.metadata.closureJunctionTable.descendantColumns.forEach(function (column) {\n closureJunctionInsertMap[column.databaseName] = subject.identifier;\n });\n // insert values into the closure junction table\n return [4 /*yield*/, this.queryRunner\n .manager\n .createQueryBuilder()\n .insert()\n .into(subject.metadata.closureJunctionTable.tablePath)\n .values(closureJunctionInsertMap)\n .updateEntity(false)\n .callListeners(false)\n .execute()];\n case 1:\n // insert values into the closure junction table\n _a.sent();\n parent = subject.metadata.treeParentRelation.getEntityValue(subject.entity);\n if (!parent && subject.parentSubject && subject.parentSubject.entity) // if entity was attached via children\n parent = subject.parentSubject.insertedValueSet ? subject.parentSubject.insertedValueSet : subject.parentSubject.entity;\n if (!parent) return [3 /*break*/, 3];\n escape_1 = function (alias) { return _this.queryRunner.connection.driver.escape(alias); };\n tableName = this.getTableName(subject.metadata.closureJunctionTable.tablePath);\n ancestorColumnNames = subject.metadata.closureJunctionTable.ancestorColumns.map(function (column) {\n return escape_1(column.databaseName);\n });\n descendantColumnNames = subject.metadata.closureJunctionTable.descendantColumns.map(function (column) {\n return escape_1(column.databaseName);\n });\n firstQueryParameters_1 = [];\n childEntityIdValues_1 = subject.metadata.primaryColumns.map(function (column) { return column.getEntityValue(subject.insertedValueSet); });\n childEntityIds1 = subject.metadata.primaryColumns.map(function (column, index) {\n firstQueryParameters_1.push(childEntityIdValues_1[index]);\n return _this.queryRunner.connection.driver.createParameter(\"child_entity_\" + column.databaseName, firstQueryParameters_1.length - 1);\n });\n whereCondition = subject.metadata.closureJunctionTable.descendantColumns.map(function (column) {\n var columnName = escape_1(column.databaseName);\n var parentId = column.referencedColumn.getEntityValue(parent);\n if (!parentId)\n throw new _error_CannotAttachTreeChildrenEntityError__WEBPACK_IMPORTED_MODULE_1__[\"CannotAttachTreeChildrenEntityError\"](subject.metadata.name);\n firstQueryParameters_1.push(parentId);\n var parameterName = _this.queryRunner.connection.driver.createParameter(\"parent_entity_\" + column.referencedColumn.databaseName, firstQueryParameters_1.length - 1);\n return columnName + \" = \" + parameterName;\n }).join(\", \");\n return [4 /*yield*/, this.queryRunner.query(\"INSERT INTO \" + tableName + \" (\" + Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(ancestorColumnNames)), Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(descendantColumnNames)).join(\", \") + \") \" +\n (\"SELECT \" + ancestorColumnNames.join(\", \") + \", \" + childEntityIds1.join(\", \") + \" FROM \" + tableName + \" WHERE \" + whereCondition), firstQueryParameters_1)];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Gets escaped table name with schema name if SqlServer or Postgres driver used with custom\n * schema name, otherwise returns escaped table name.\n */\n ClosureSubjectExecutor.prototype.getTableName = function (tablePath) {\n var _this = this;\n return tablePath.split(\".\")\n .map(function (i) {\n // 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\n if (i === \"\")\n return i;\n return _this.queryRunner.connection.driver.escape(i);\n }).join(\".\");\n };\n return ClosureSubjectExecutor;\n}());\n\n\n//# sourceMappingURL=ClosureSubjectExecutor.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/persistence/tree/ClosureSubjectExecutor.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/persistence/tree/MaterializedPathSubjectExecutor.js":
/*!******************************************************************************************!*\
!*** ./node_modules/typeorm/browser/persistence/tree/MaterializedPathSubjectExecutor.js ***!
\******************************************************************************************/
/*! exports provided: MaterializedPathSubjectExecutor */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MaterializedPathSubjectExecutor\", function() { return MaterializedPathSubjectExecutor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Executes subject operations for materialized-path tree entities.\n */\nvar MaterializedPathSubjectExecutor = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function MaterializedPathSubjectExecutor(queryRunner) {\n this.queryRunner = queryRunner;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Executes operations when subject is being inserted.\n */\n MaterializedPathSubjectExecutor.prototype.insert = function (subject) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var parent, parentId, parentPath, insertedEntityId;\n var _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n parent = subject.metadata.treeParentRelation.getEntityValue(subject.entity);\n if (!parent && subject.parentSubject && subject.parentSubject.entity) // if entity was attached via children\n parent = subject.parentSubject.insertedValueSet ? subject.parentSubject.insertedValueSet : subject.parentSubject.entity;\n parentId = subject.metadata.getEntityIdMap(parent);\n parentPath = \"\";\n if (!parentId) return [3 /*break*/, 2];\n return [4 /*yield*/, this.queryRunner.manager\n .createQueryBuilder()\n .select(subject.metadata.targetName + \".\" + subject.metadata.materializedPathColumn.propertyPath, \"path\")\n .from(subject.metadata.target, subject.metadata.targetName)\n .whereInIds(parentId)\n .getRawOne()\n .then(function (result) { return result ? result[\"path\"] : undefined; })];\n case 1:\n parentPath = _b.sent();\n _b.label = 2;\n case 2:\n insertedEntityId = subject.metadata.treeParentRelation.joinColumns.map(function (joinColumn) {\n return joinColumn.referencedColumn.getEntityValue(subject.insertedValueSet);\n }).join(\"_\");\n return [4 /*yield*/, this.queryRunner.manager\n .createQueryBuilder()\n .update(subject.metadata.target)\n .set((_a = {},\n _a[subject.metadata.materializedPathColumn.propertyPath] = parentPath + insertedEntityId + \".\",\n _a))\n .where(subject.identifier)\n .execute()];\n case 3:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n return MaterializedPathSubjectExecutor;\n}());\n\n\n//# sourceMappingURL=MaterializedPathSubjectExecutor.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/persistence/tree/MaterializedPathSubjectExecutor.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/persistence/tree/NestedSetSubjectExecutor.js":
/*!***********************************************************************************!*\
!*** ./node_modules/typeorm/browser/persistence/tree/NestedSetSubjectExecutor.js ***!
\***********************************************************************************/
/*! exports provided: NestedSetSubjectExecutor */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NestedSetSubjectExecutor\", function() { return NestedSetSubjectExecutor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/OrmUtils */ \"./node_modules/typeorm/browser/util/OrmUtils.js\");\n\n\n/**\n * Executes subject operations for nested set tree entities.\n */\nvar NestedSetSubjectExecutor = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function NestedSetSubjectExecutor(queryRunner) {\n this.queryRunner = queryRunner;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Executes operations when subject is being inserted.\n */\n NestedSetSubjectExecutor.prototype.insert = function (subject) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var escape, tableName, leftColumnName, rightColumnName, parent, parentId, parentNsRight;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n escape = function (alias) { return _this.queryRunner.connection.driver.escape(alias); };\n tableName = this.getTableName(subject.metadata.tablePath);\n leftColumnName = escape(subject.metadata.nestedSetLeftColumn.databaseName);\n rightColumnName = escape(subject.metadata.nestedSetRightColumn.databaseName);\n parent = subject.metadata.treeParentRelation.getEntityValue(subject.entity);\n if (!parent && subject.parentSubject && subject.parentSubject.entity) // if entity was attached via children\n parent = subject.parentSubject.insertedValueSet ? subject.parentSubject.insertedValueSet : subject.parentSubject.entity;\n parentId = subject.metadata.getEntityIdMap(parent);\n parentNsRight = undefined;\n if (!parentId) return [3 /*break*/, 2];\n return [4 /*yield*/, this.queryRunner.manager\n .createQueryBuilder()\n .select(subject.metadata.targetName + \".\" + subject.metadata.nestedSetRightColumn.propertyPath, \"right\")\n .from(subject.metadata.target, subject.metadata.targetName)\n .whereInIds(parentId)\n .getRawOne()\n .then(function (result) {\n var value = result ? result[\"right\"] : undefined;\n // CockroachDB returns numeric types as string\n return typeof value === \"string\" ? parseInt(value) : value;\n })];\n case 1:\n parentNsRight = _a.sent();\n _a.label = 2;\n case 2:\n if (!(parentNsRight !== undefined)) return [3 /*break*/, 4];\n return [4 /*yield*/, this.queryRunner.query(\"UPDATE \" + tableName + \" SET \" +\n (leftColumnName + \" = CASE WHEN \" + leftColumnName + \" > \" + parentNsRight + \" THEN \" + leftColumnName + \" + 2 ELSE \" + leftColumnName + \" END,\") +\n (rightColumnName + \" = \" + rightColumnName + \" + 2 \") +\n (\"WHERE \" + rightColumnName + \" >= \" + parentNsRight))];\n case 3:\n _a.sent();\n _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[\"OrmUtils\"].mergeDeep(subject.insertedValueSet, subject.metadata.nestedSetLeftColumn.createValueMap(parentNsRight), subject.metadata.nestedSetRightColumn.createValueMap(parentNsRight + 1));\n return [3 /*break*/, 5];\n case 4:\n _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[\"OrmUtils\"].mergeDeep(subject.insertedValueSet, subject.metadata.nestedSetLeftColumn.createValueMap(1), subject.metadata.nestedSetRightColumn.createValueMap(2));\n _a.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Gets escaped table name with schema name if SqlServer or Postgres driver used with custom\n * schema name, otherwise returns escaped table name.\n */\n NestedSetSubjectExecutor.prototype.getTableName = function (tablePath) {\n var _this = this;\n return tablePath.split(\".\")\n .map(function (i) {\n // 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\n if (i === \"\")\n return i;\n return _this.queryRunner.connection.driver.escape(i);\n }).join(\".\");\n };\n return NestedSetSubjectExecutor;\n}());\n\n\n//# sourceMappingURL=NestedSetSubjectExecutor.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/persistence/tree/NestedSetSubjectExecutor.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/platform/BrowserConnectionOptionsReaderDummy.js":
/*!**************************************************************************************!*\
!*** ./node_modules/typeorm/browser/platform/BrowserConnectionOptionsReaderDummy.js ***!
\**************************************************************************************/
/*! exports provided: ConnectionOptionsEnvReader, ConnectionOptionsXmlReader, ConnectionOptionsYmlReader, ConnectionOptionsReader */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ConnectionOptionsEnvReader\", function() { return ConnectionOptionsEnvReader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ConnectionOptionsXmlReader\", function() { return ConnectionOptionsXmlReader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ConnectionOptionsYmlReader\", function() { return ConnectionOptionsYmlReader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ConnectionOptionsReader\", function() { return ConnectionOptionsReader; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Dummy class for replacement via `package.json` in browser builds.\n *\n * If we don't include these functions typeorm will throw an error on runtime\n * as well as during webpack builds.\n */\nvar ConnectionOptionsEnvReader = /** @class */ (function () {\n function ConnectionOptionsEnvReader() {\n }\n ConnectionOptionsEnvReader.prototype.read = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n throw new Error(\"Cannot read connection options in a browser context.\");\n });\n });\n };\n return ConnectionOptionsEnvReader;\n}());\n\n/**\n * Dummy class for replacement via `package.json` in browser builds.\n *\n * If we don't include these functions typeorm will throw an error on runtime\n * as well as during webpack builds.\n */\nvar ConnectionOptionsXmlReader = /** @class */ (function () {\n function ConnectionOptionsXmlReader() {\n }\n ConnectionOptionsXmlReader.prototype.read = function (path) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n throw new Error(\"Cannot read connection options in a browser context.\");\n });\n });\n };\n return ConnectionOptionsXmlReader;\n}());\n\n/**\n * Dummy class for replacement via `package.json` in browser builds.\n *\n * If we don't include these functions typeorm will throw an error on runtime\n * as well as during webpack builds.\n */\nvar ConnectionOptionsYmlReader = /** @class */ (function () {\n function ConnectionOptionsYmlReader() {\n }\n ConnectionOptionsYmlReader.prototype.read = function (path) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n throw new Error(\"Cannot read connection options in a browser context.\");\n });\n });\n };\n return ConnectionOptionsYmlReader;\n}());\n\n/**\n * Dummy class for replacement via `package.json` in browser builds.\n *\n * If we don't include these functions typeorm will throw an error on runtime\n * as well as during webpack builds.\n */\nvar ConnectionOptionsReader = /** @class */ (function () {\n function ConnectionOptionsReader() {\n }\n ConnectionOptionsReader.prototype.all = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n throw new Error(\"Cannot read connection options in a browser context.\");\n });\n });\n };\n ConnectionOptionsReader.prototype.get = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n throw new Error(\"Cannot read connection options in a browser context.\");\n });\n });\n };\n ConnectionOptionsReader.prototype.has = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n throw new Error(\"Cannot read connection options in a browser context.\");\n });\n });\n };\n return ConnectionOptionsReader;\n}());\n\n\n//# sourceMappingURL=BrowserConnectionOptionsReaderDummy.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/platform/BrowserConnectionOptionsReaderDummy.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/platform/BrowserDirectoryExportedClassesLoader.js":
/*!****************************************************************************************!*\
!*** ./node_modules/typeorm/browser/platform/BrowserDirectoryExportedClassesLoader.js ***!
\****************************************************************************************/
/*! exports provided: importClassesFromDirectories, importJsonsFromDirectories */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"importClassesFromDirectories\", function() { return importClassesFromDirectories; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"importJsonsFromDirectories\", function() { return importJsonsFromDirectories; });\n/**\n * Dummy functions for replacement via `package.json` in browser builds.\n *\n * If we don't include these functions typeorm will throw an error on runtime\n * as well as during webpack builds.\n */\n/**\n * Loads all exported classes from the given directory.\n */\nfunction importClassesFromDirectories(logger, directories, formats) {\n if (formats === void 0) { formats = [\".js\", \".cjs\", \".ts\"]; }\n return [];\n}\n/**\n * Loads all json files from the given directory.\n */\nfunction importJsonsFromDirectories(directories, format) {\n if (format === void 0) { format = \".json\"; }\n return [];\n}\n\n//# sourceMappingURL=BrowserDirectoryExportedClassesLoader.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/platform/BrowserDirectoryExportedClassesLoader.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js":
/*!******************************************************************************!*\
!*** ./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js ***!
\******************************************************************************/
/*! exports provided: MongoDriver, MongoQueryRunner, MongoEntityManager, MongoRepository, PostgresDriver, AuroraDataApiDriver, CockroachDriver, AuroraDataApiPostgresDriver, SqlServerDriver, SapDriver, MysqlDriver, OracleDriver, SqliteDriver, BetterSqlite3Driver */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MongoDriver\", function() { return MongoDriver; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MongoQueryRunner\", function() { return MongoQueryRunner; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MongoEntityManager\", function() { return MongoEntityManager; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MongoRepository\", function() { return MongoRepository; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PostgresDriver\", function() { return PostgresDriver; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AuroraDataApiDriver\", function() { return AuroraDataApiDriver; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CockroachDriver\", function() { return CockroachDriver; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AuroraDataApiPostgresDriver\", function() { return AuroraDataApiPostgresDriver; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SqlServerDriver\", function() { return SqlServerDriver; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SapDriver\", function() { return SapDriver; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MysqlDriver\", function() { return MysqlDriver; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OracleDriver\", function() { return OracleDriver; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SqliteDriver\", function() { return SqliteDriver; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BetterSqlite3Driver\", function() { return BetterSqlite3Driver; });\n/**\n * Dummy driver classes for replacement via `package.json` in browser builds.\n * Using those classes reduces the build size by one third.\n *\n * If we don't include those dummy classes (and just disable the driver import\n * with `false` in `package.json`) typeorm will throw an error on runtime and\n * during webpack builds even if those driver are not used.\n */\n/**\n * DO NOT IMPORT THIS CLASS -\n * This is a dummy class for replacement via `package.json` in browser builds\n */\nvar MongoDriver = /** @class */ (function () {\n function MongoDriver() {\n }\n return MongoDriver;\n}());\n\n/**\n * DO NOT IMPORT THIS CLASS -\n * This is a dummy class for replacement via `package.json` in browser builds\n */\nvar MongoQueryRunner = /** @class */ (function () {\n function MongoQueryRunner() {\n }\n return MongoQueryRunner;\n}());\n\n/**\n * DO NOT IMPORT THIS CLASS -\n * This is a dummy class for replacement via `package.json` in browser builds\n */\nvar MongoEntityManager = /** @class */ (function () {\n function MongoEntityManager() {\n }\n return MongoEntityManager;\n}());\n\n/**\n * DO NOT IMPORT THIS CLASS -\n * This is a dummy class for replacement via `package.json` in browser builds\n */\nvar MongoRepository = /** @class */ (function () {\n function MongoRepository() {\n }\n return MongoRepository;\n}());\n\n/**\n * DO NOT IMPORT THIS CLASS -\n * This is a dummy class for replacement via `package.json` in browser builds\n */\nvar PostgresDriver = /** @class */ (function () {\n function PostgresDriver() {\n }\n return PostgresDriver;\n}());\n\n/**\n * DO NOT IMPORT THIS CLASS -\n * This is a dummy class for replacement via `package.json` in browser builds\n */\nvar AuroraDataApiDriver = /** @class */ (function () {\n function AuroraDataApiDriver() {\n }\n return AuroraDataApiDriver;\n}());\n\n/**\n * DO NOT IMPORT THIS CLASS -\n * This is a dummy class for replacement via `package.json` in browser builds\n */\nvar CockroachDriver = /** @class */ (function () {\n function CockroachDriver() {\n }\n return CockroachDriver;\n}());\n\n/**\n * DO NOT IMPORT THIS CLASS -\n * This is a dummy class for replacement via `package.json` in browser builds\n */\nvar AuroraDataApiPostgresDriver = /** @class */ (function () {\n function AuroraDataApiPostgresDriver() {\n }\n return AuroraDataApiPostgresDriver;\n}());\n\n/**\n * DO NOT IMPORT THIS CLASS -\n * This is a dummy class for replacement via `package.json` in browser builds\n */\nvar SqlServerDriver = /** @class */ (function () {\n function SqlServerDriver() {\n }\n return SqlServerDriver;\n}());\n\n/**\n * DO NOT IMPORT THIS CLASS -\n * This is a dummy class for replacement via `package.json` in browser builds\n */\nvar SapDriver = /** @class */ (function () {\n function SapDriver() {\n }\n return SapDriver;\n}());\n\n/**\n * DO NOT IMPORT THIS CLASS -\n * This is a dummy class for replacement via `package.json` in browser builds\n */\nvar MysqlDriver = /** @class */ (function () {\n function MysqlDriver() {\n }\n return MysqlDriver;\n}());\n\n/**\n * DO NOT IMPORT THIS CLASS -\n * This is a dummy class for replacement via `package.json` in browser builds\n */\nvar OracleDriver = /** @class */ (function () {\n function OracleDriver() {\n }\n return OracleDriver;\n}());\n\n/**\n * DO NOT IMPORT THIS CLASS -\n * This is a dummy class for replacement via `package.json` in browser builds\n */\nvar SqliteDriver = /** @class */ (function () {\n function SqliteDriver() {\n }\n return SqliteDriver;\n}());\n\n/**\n * DO NOT IMPORT THIS CLASS -\n * This is a dummy class for replacement via `package.json` in browser builds\n */\nvar BetterSqlite3Driver = /** @class */ (function () {\n function BetterSqlite3Driver() {\n }\n return BetterSqlite3Driver;\n}());\n\n\n//# sourceMappingURL=BrowserDisabledDriversDummy.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/platform/BrowserFileLoggerDummy.js":
/*!*************************************************************************!*\
!*** ./node_modules/typeorm/browser/platform/BrowserFileLoggerDummy.js ***!
\*************************************************************************/
/*! exports provided: DummyLogger, FileLogger */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DummyLogger\", function() { return DummyLogger; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FileLogger\", function() { return FileLogger; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Performs logging of the events in TypeORM.\n * This version of logger logs everything into ormlogs.log file.\n */\nvar DummyLogger = /** @class */ (function () {\n function DummyLogger() {\n }\n /**\n * Logs query and parameters used in it.\n */\n DummyLogger.prototype.logQuery = function () {\n throw new Error('This logger is not applicable in a browser context');\n };\n /**\n * Logs query that is failed.\n */\n DummyLogger.prototype.logQueryError = function () {\n throw new Error('This logger is not applicable in a browser context');\n };\n /**\n * Logs query that is slow.\n */\n DummyLogger.prototype.logQuerySlow = function () {\n throw new Error('This logger is not applicable in a browser context');\n };\n /**\n * Logs events from the schema build process.\n */\n DummyLogger.prototype.logSchemaBuild = function () {\n throw new Error('This logger is not applicable in a browser context');\n };\n /**\n * Logs events from the migrations run process.\n */\n DummyLogger.prototype.logMigration = function () {\n throw new Error('This logger is not applicable in a browser context');\n };\n /**\n * Perform logging using given logger, or by default to the console.\n * Log has its own level and message.\n */\n DummyLogger.prototype.log = function () {\n throw new Error('This logger is not applicable in a browser context');\n };\n return DummyLogger;\n}());\n\nvar FileLogger = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(FileLogger, _super);\n function FileLogger() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return FileLogger;\n}(DummyLogger));\n\n\n//# sourceMappingURL=BrowserFileLoggerDummy.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/platform/BrowserFileLoggerDummy.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/platform/BrowserPlatformTools.js":
/*!***********************************************************************!*\
!*** ./node_modules/typeorm/browser/platform/BrowserPlatformTools.js ***!
\***********************************************************************/
/*! exports provided: PlatformTools, EventEmitter, Readable, Writable */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PlatformTools\", function() { return PlatformTools; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EventEmitter\", function() { return EventEmitter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Readable\", function() { return Readable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Writable\", function() { return Writable; });\n/**\n * Browser's implementation of the platform-specific tools.\n *\n * This file gonna replace PlatformTools for browser environment.\n * For node.js environment this class is not getting packaged.\n * Don't use methods of this class in the code, use PlatformTools methods instead.\n */\nvar PlatformTools = /** @class */ (function () {\n function PlatformTools() {\n }\n /**\n * Gets global variable where global stuff can be stored.\n */\n PlatformTools.getGlobalVariable = function () {\n if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n // NativeScript uses global, not window\n return global;\n }\n };\n /**\n * Loads (\"require\"-s) given file or package.\n * This operation only supports on node platform\n */\n PlatformTools.load = function (name) {\n if (this.type === \"browser\")\n throw new Error(\"This option/function is not supported in the browser environment. Failed operation: require(\\\"\" + name + \"\\\").\");\n return \"\";\n };\n /**\n * Normalizes given path. Does \"path.normalize\".\n */\n PlatformTools.pathNormalize = function (pathStr) {\n if (this.type === \"browser\")\n throw new Error(\"This option/function is not supported in the browser environment. Failed operation: path.normalize(\\\"\" + pathStr + \"\\\").\");\n return \"\";\n };\n /**\n * Gets file extension. Does \"path.extname\".\n */\n PlatformTools.pathExtname = function (pathStr) {\n if (this.type === \"browser\")\n throw new Error(\"This option/function is not supported in the browser environment. Failed operation: path.extname(\\\"\" + pathStr + \"\\\").\");\n return \"\";\n };\n /**\n * Resolved given path. Does \"path.resolve\".\n */\n PlatformTools.pathResolve = function (pathStr) {\n if (this.type === \"browser\")\n throw new Error(\"This option/function is not supported in the browser environment. Failed operation: path.resolve(\\\"\" + pathStr + \"\\\").\");\n return \"\";\n };\n /**\n * Synchronously checks if file exist. Does \"fs.existsSync\".\n */\n PlatformTools.fileExist = function (pathStr) {\n if (this.type === \"browser\")\n throw new Error(\"This option/function is not supported in the browser environment. Failed operation: fs.existsSync(\\\"\" + pathStr + \"\\\").\");\n return false;\n };\n PlatformTools.dotenv = function (pathStr) {\n if (this.type === \"browser\")\n throw new Error(\"This option/function is not supported in the browser environment. Failed operation: dotenv.config({ path: \\\"\" + pathStr + \"\\\" }).\");\n };\n /**\n * Gets environment variable.\n */\n PlatformTools.getEnvVariable = function (name) {\n // if (this.type === \"browser\")\n // throw new Error(`This option/function is not supported in the browser environment. Failed operation: process.env[\"${name}\"].`);\n return undefined;\n };\n PlatformTools.readFileSync = function (filename) {\n if (this.type === \"browser\")\n throw new Error(\"This option/function is not supported in the browser environment. Failed operation: fs.readFileSync(\\\"\" + filename + \"\\\").\");\n return null;\n };\n PlatformTools.appendFileSync = function (filename, data) {\n if (this.type === \"browser\")\n throw new Error(\"This option/function is not supported in the browser environment. Failed operation: fs.appendFileSync(\\\"\" + filename + \"\\\").\");\n };\n PlatformTools.writeFile = function (path, data) {\n if (this.type === \"browser\")\n throw new Error(\"This option/function is not supported in the browser environment. Failed operation: fs.writeFile(\\\"\" + path + \"\\\").\");\n return Promise.reject(null);\n };\n /**\n * Highlights sql string to be print in the console.\n */\n PlatformTools.highlightSql = function (sql) {\n return sql;\n };\n /**\n * Highlights json string to be print in the console.\n */\n PlatformTools.highlightJson = function (json) {\n return json;\n };\n /**\n * Logging functions needed by AdvancedConsoleLogger (but here without chalk)\n */\n PlatformTools.logInfo = function (prefix, info) {\n console.info(prefix + \" \", info);\n };\n PlatformTools.logError = function (prefix, error) {\n console.error(prefix + \" \", error);\n };\n PlatformTools.logWarn = function (prefix, warning) {\n console.warn(prefix + \" \", warning);\n };\n PlatformTools.log = function (message) {\n console.log(message);\n };\n PlatformTools.warn = function (message) {\n return message;\n };\n /**\n * Type of the currently running platform.\n */\n PlatformTools.type = \"browser\";\n return PlatformTools;\n}());\n\n/**\n * These classes are needed for stream operations or\n * in the mongodb driver. Both aren't supported in the browser.\n */\nvar EventEmitter = /** @class */ (function () {\n function EventEmitter() {\n }\n return EventEmitter;\n}());\n\nvar Readable = /** @class */ (function () {\n function Readable() {\n }\n return Readable;\n}());\n\nvar Writable = /** @class */ (function () {\n function Writable() {\n }\n return Writable;\n}());\n\nif (typeof window !== \"undefined\") {\n window.Buffer = __webpack_require__(/*! buffer/ */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer;\n}\n// NativeScript uses global, not window\nif (typeof global !== \"undefined\") {\n global.Buffer = __webpack_require__(/*! buffer/ */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer;\n}\n\n//# sourceMappingURL=BrowserPlatformTools.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/platform/BrowserPlatformTools.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/Alias.js":
/*!*************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/Alias.js ***!
\*************************************************************/
/*! exports provided: Alias */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Alias\", function() { return Alias; });\n/* harmony import */ var _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/ObjectUtils */ \"./node_modules/typeorm/browser/util/ObjectUtils.js\");\n\n/**\n */\nvar Alias = /** @class */ (function () {\n function Alias(alias) {\n _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_0__[\"ObjectUtils\"].assign(this, alias || {});\n }\n Object.defineProperty(Alias.prototype, \"target\", {\n get: function () {\n return this.metadata.target;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Alias.prototype, \"hasMetadata\", {\n get: function () {\n return !!this._metadata;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Alias.prototype, \"metadata\", {\n get: function () {\n if (!this._metadata)\n throw new Error(\"Cannot get entity metadata for the given alias \\\"\" + this.name + \"\\\"\");\n return this._metadata;\n },\n set: function (metadata) {\n this._metadata = metadata;\n },\n enumerable: false,\n configurable: true\n });\n return Alias;\n}());\n\n\n//# sourceMappingURL=Alias.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/Alias.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/Brackets.js":
/*!****************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/Brackets.js ***!
\****************************************************************/
/*! exports provided: Brackets */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Brackets\", function() { return Brackets; });\n/**\n * Syntax sugar.\n * Allows to use brackets in WHERE expressions for better syntax.\n */\nvar Brackets = /** @class */ (function () {\n /**\n * Given WHERE query builder that will build a WHERE expression that will be taken into brackets.\n */\n function Brackets(whereFactory) {\n this.whereFactory = whereFactory;\n }\n return Brackets;\n}());\n\n\n//# sourceMappingURL=Brackets.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/Brackets.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/DeleteQueryBuilder.js":
/*!**************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/DeleteQueryBuilder.js ***!
\**************************************************************************/
/*! exports provided: DeleteQueryBuilder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DeleteQueryBuilder\", function() { return DeleteQueryBuilder; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../driver/cockroachdb/CockroachDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _QueryBuilder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./QueryBuilder */ \"./node_modules/typeorm/browser/query-builder/QueryBuilder.js\");\n/* harmony import */ var _result_DeleteResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./result/DeleteResult */ \"./node_modules/typeorm/browser/query-builder/result/DeleteResult.js\");\n/* harmony import */ var _error_ReturningStatementNotSupportedError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../error/ReturningStatementNotSupportedError */ \"./node_modules/typeorm/browser/error/ReturningStatementNotSupportedError.js\");\n/* harmony import */ var _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../driver/sqljs/SqljsDriver */ \"./node_modules/typeorm/browser/driver/sqljs/SqljsDriver.js\");\n/* harmony import */ var _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../subscriber/BroadcasterResult */ \"./node_modules/typeorm/browser/subscriber/BroadcasterResult.js\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../index */ \"./node_modules/typeorm/browser/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Allows to build complex sql queries in a fashion way and execute those queries.\n */\nvar DeleteQueryBuilder = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DeleteQueryBuilder, _super);\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function DeleteQueryBuilder(connectionOrQueryBuilder, queryRunner) {\n var _this = _super.call(this, connectionOrQueryBuilder, queryRunner) || this;\n _this.expressionMap.aliasNamePrefixingEnabled = false;\n return _this;\n }\n // -------------------------------------------------------------------------\n // Public Implemented Methods\n // -------------------------------------------------------------------------\n /**\n * Gets generated sql query without parameters being replaced.\n */\n DeleteQueryBuilder.prototype.getQuery = function () {\n var sql = this.createComment();\n sql += this.createDeleteExpression();\n return sql.trim();\n };\n /**\n * Executes sql generated by query builder and returns raw database results.\n */\n DeleteQueryBuilder.prototype.execute = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _a, sql, parameters, queryRunner, transactionStartedByUs, broadcastResult, deleteResult, result, driver, broadcastResult, error_1, rollbackError_1;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.getQueryAndParameters(), 2), sql = _a[0], parameters = _a[1];\n queryRunner = this.obtainQueryRunner();\n transactionStartedByUs = false;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 11, 16, 21]);\n if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3];\n return [4 /*yield*/, queryRunner.startTransaction()];\n case 2:\n _b.sent();\n transactionStartedByUs = true;\n _b.label = 3;\n case 3:\n if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 5];\n broadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_6__[\"BroadcasterResult\"]();\n queryRunner.broadcaster.broadcastBeforeRemoveEvent(broadcastResult, this.expressionMap.mainAlias.metadata);\n if (!(broadcastResult.promises.length > 0)) return [3 /*break*/, 5];\n return [4 /*yield*/, Promise.all(broadcastResult.promises)];\n case 4:\n _b.sent();\n _b.label = 5;\n case 5:\n deleteResult = new _result_DeleteResult__WEBPACK_IMPORTED_MODULE_3__[\"DeleteResult\"]();\n return [4 /*yield*/, queryRunner.query(sql, parameters)];\n case 6:\n result = _b.sent();\n driver = queryRunner.connection.driver;\n if (driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"]) {\n deleteResult.raw = result;\n deleteResult.affected = result.affectedRows;\n }\n else if (driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"]) {\n deleteResult.raw = result;\n deleteResult.affected = result.numberOfRecordsUpdated;\n }\n else if (driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"] || driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"] || driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"CockroachDriver\"]) {\n deleteResult.raw = result[0] ? result[0] : null;\n // don't return 0 because it could confuse. null means that we did not receive this value\n deleteResult.affected = typeof result[1] === \"number\" ? result[1] : null;\n }\n else if (driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"]) {\n deleteResult.affected = result;\n }\n else if (driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"BetterSqlite3Driver\"]) { // only works for better-sqlite3\n deleteResult.raw = result;\n deleteResult.affected = result.changes;\n }\n else {\n deleteResult.raw = result;\n }\n if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 8];\n broadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_6__[\"BroadcasterResult\"]();\n queryRunner.broadcaster.broadcastAfterRemoveEvent(broadcastResult, this.expressionMap.mainAlias.metadata);\n if (!(broadcastResult.promises.length > 0)) return [3 /*break*/, 8];\n return [4 /*yield*/, Promise.all(broadcastResult.promises)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8:\n if (!transactionStartedByUs) return [3 /*break*/, 10];\n return [4 /*yield*/, queryRunner.commitTransaction()];\n case 9:\n _b.sent();\n _b.label = 10;\n case 10: return [2 /*return*/, deleteResult];\n case 11:\n error_1 = _b.sent();\n if (!transactionStartedByUs) return [3 /*break*/, 15];\n _b.label = 12;\n case 12:\n _b.trys.push([12, 14, , 15]);\n return [4 /*yield*/, queryRunner.rollbackTransaction()];\n case 13:\n _b.sent();\n return [3 /*break*/, 15];\n case 14:\n rollbackError_1 = _b.sent();\n return [3 /*break*/, 15];\n case 15: throw error_1;\n case 16:\n if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 18];\n return [4 /*yield*/, queryRunner.release()];\n case 17:\n _b.sent();\n _b.label = 18;\n case 18:\n if (!(this.connection.driver instanceof _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_5__[\"SqljsDriver\"] && !queryRunner.isTransactionActive)) return [3 /*break*/, 20];\n return [4 /*yield*/, this.connection.driver.autoSave()];\n case 19:\n _b.sent();\n _b.label = 20;\n case 20: return [7 /*endfinally*/];\n case 21: return [2 /*return*/];\n }\n });\n });\n };\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Specifies FROM which entity's table select/update/delete will be executed.\n * Also sets a main string alias of the selection data.\n */\n DeleteQueryBuilder.prototype.from = function (entityTarget, aliasName) {\n entityTarget = entityTarget instanceof _index__WEBPACK_IMPORTED_MODULE_7__[\"EntitySchema\"] ? entityTarget.options.name : entityTarget;\n var mainAlias = this.createFromAlias(entityTarget, aliasName);\n this.expressionMap.setMainAlias(mainAlias);\n return this;\n };\n /**\n * Sets WHERE condition in the query builder.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n * Additionally you can add parameters used in where expression.\n */\n DeleteQueryBuilder.prototype.where = function (where, parameters) {\n this.expressionMap.wheres = []; // don't move this block below since computeWhereParameter can add where expressions\n var condition = this.computeWhereParameter(where);\n if (condition)\n this.expressionMap.wheres = [{ type: \"simple\", condition: condition }];\n if (parameters)\n this.setParameters(parameters);\n return this;\n };\n /**\n * Adds new AND WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n DeleteQueryBuilder.prototype.andWhere = function (where, parameters) {\n this.expressionMap.wheres.push({ type: \"and\", condition: this.computeWhereParameter(where) });\n if (parameters)\n this.setParameters(parameters);\n return this;\n };\n /**\n * Adds new OR WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n DeleteQueryBuilder.prototype.orWhere = function (where, parameters) {\n this.expressionMap.wheres.push({ type: \"or\", condition: this.computeWhereParameter(where) });\n if (parameters)\n this.setParameters(parameters);\n return this;\n };\n /**\n * Adds new AND WHERE with conditions for the given ids.\n */\n DeleteQueryBuilder.prototype.whereInIds = function (ids) {\n return this.where(this.createWhereIdsExpression(ids));\n };\n /**\n * Adds new AND WHERE with conditions for the given ids.\n */\n DeleteQueryBuilder.prototype.andWhereInIds = function (ids) {\n return this.andWhere(this.createWhereIdsExpression(ids));\n };\n /**\n * Adds new OR WHERE with conditions for the given ids.\n */\n DeleteQueryBuilder.prototype.orWhereInIds = function (ids) {\n return this.orWhere(this.createWhereIdsExpression(ids));\n };\n /**\n * Optional returning/output clause.\n */\n DeleteQueryBuilder.prototype.output = function (output) {\n return this.returning(output);\n };\n /**\n * Optional returning/output clause.\n */\n DeleteQueryBuilder.prototype.returning = function (returning) {\n // not all databases support returning/output cause\n if (!this.connection.driver.isReturningSqlSupported())\n throw new _error_ReturningStatementNotSupportedError__WEBPACK_IMPORTED_MODULE_4__[\"ReturningStatementNotSupportedError\"]();\n this.expressionMap.returning = returning;\n return this;\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Creates DELETE express used to perform query.\n */\n DeleteQueryBuilder.prototype.createDeleteExpression = function () {\n var tableName = this.getTableName(this.getMainTableName());\n var whereExpression = this.createWhereExpression();\n var returningExpression = this.createReturningExpression();\n if (returningExpression && (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"CockroachDriver\"])) {\n return \"DELETE FROM \" + tableName + whereExpression + \" RETURNING \" + returningExpression;\n }\n else if (returningExpression !== \"\" && this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"]) {\n return \"DELETE FROM \" + tableName + \" OUTPUT \" + returningExpression + whereExpression;\n }\n else {\n return \"DELETE FROM \" + tableName + whereExpression;\n }\n };\n return DeleteQueryBuilder;\n}(_QueryBuilder__WEBPACK_IMPORTED_MODULE_2__[\"QueryBuilder\"]));\n\n\n//# sourceMappingURL=DeleteQueryBuilder.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/DeleteQueryBuilder.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/InsertQueryBuilder.js":
/*!**************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/InsertQueryBuilder.js ***!
\**************************************************************************/
/*! exports provided: InsertQueryBuilder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InsertQueryBuilder\", function() { return InsertQueryBuilder; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../driver/cockroachdb/CockroachDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _QueryBuilder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./QueryBuilder */ \"./node_modules/typeorm/browser/query-builder/QueryBuilder.js\");\n/* harmony import */ var _util_RandomGenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/RandomGenerator */ \"./node_modules/typeorm/browser/util/RandomGenerator.js\");\n/* harmony import */ var _result_InsertResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./result/InsertResult */ \"./node_modules/typeorm/browser/query-builder/result/InsertResult.js\");\n/* harmony import */ var _error_ReturningStatementNotSupportedError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../error/ReturningStatementNotSupportedError */ \"./node_modules/typeorm/browser/error/ReturningStatementNotSupportedError.js\");\n/* harmony import */ var _error_InsertValuesMissingError__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../error/InsertValuesMissingError */ \"./node_modules/typeorm/browser/error/InsertValuesMissingError.js\");\n/* harmony import */ var _ReturningResultsEntityUpdator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ReturningResultsEntityUpdator */ \"./node_modules/typeorm/browser/query-builder/ReturningResultsEntityUpdator.js\");\n/* harmony import */ var _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../driver/sqlite-abstract/AbstractSqliteDriver */ \"./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteDriver.js\");\n/* harmony import */ var _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../driver/sqljs/SqljsDriver */ \"./node_modules/typeorm/browser/driver/sqljs/SqljsDriver.js\");\n/* harmony import */ var _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../subscriber/BroadcasterResult */ \"./node_modules/typeorm/browser/subscriber/BroadcasterResult.js\");\n/* harmony import */ var _entity_schema_EntitySchema__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../entity-schema/EntitySchema */ \"./node_modules/typeorm/browser/entity-schema/EntitySchema.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Allows to build complex sql queries in a fashion way and execute those queries.\n */\nvar InsertQueryBuilder = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(InsertQueryBuilder, _super);\n function InsertQueryBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // -------------------------------------------------------------------------\n // Public Implemented Methods\n // -------------------------------------------------------------------------\n /**\n * Gets generated sql query without parameters being replaced.\n */\n InsertQueryBuilder.prototype.getQuery = function () {\n var sql = this.createComment();\n sql += this.createInsertExpression();\n return sql.trim();\n };\n /**\n * Executes sql generated by query builder and returns raw database results.\n */\n InsertQueryBuilder.prototype.execute = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var valueSets, queryRunner, transactionStartedByUs, broadcastResult_1, declareSql, selectOutputSql, returningResultsEntityUpdator, _a, insertSql, parameters, insertResult, statements, _b, broadcastResult_2, error_1, rollbackError_1;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_c) {\n switch (_c.label) {\n case 0:\n valueSets = this.getValueSets();\n // console.timeEnd(\".value sets\");\n // If user passed empty array of entities then we don't need to do\n // anything.\n //\n // Fixes GitHub issues #3111 and #5734. If we were to let this through\n // we would run into problems downstream, like subscribers getting\n // invoked with the empty array where they expect an entity, and SQL\n // queries with an empty VALUES clause.\n if (valueSets.length === 0)\n return [2 /*return*/, new _result_InsertResult__WEBPACK_IMPORTED_MODULE_4__[\"InsertResult\"]()];\n queryRunner = this.obtainQueryRunner();\n transactionStartedByUs = false;\n _c.label = 1;\n case 1:\n _c.trys.push([1, 13, 18, 23]);\n if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3];\n return [4 /*yield*/, queryRunner.startTransaction()];\n case 2:\n _c.sent();\n transactionStartedByUs = true;\n _c.label = 3;\n case 3:\n if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 5];\n broadcastResult_1 = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_10__[\"BroadcasterResult\"]();\n valueSets.forEach(function (valueSet) {\n queryRunner.broadcaster.broadcastBeforeInsertEvent(broadcastResult_1, _this.expressionMap.mainAlias.metadata, valueSet);\n });\n if (!(broadcastResult_1.promises.length > 0)) return [3 /*break*/, 5];\n return [4 /*yield*/, Promise.all(broadcastResult_1.promises)];\n case 4:\n _c.sent();\n _c.label = 5;\n case 5:\n declareSql = null;\n selectOutputSql = null;\n returningResultsEntityUpdator = new _ReturningResultsEntityUpdator__WEBPACK_IMPORTED_MODULE_7__[\"ReturningResultsEntityUpdator\"](queryRunner, this.expressionMap);\n if (this.expressionMap.updateEntity === true && this.expressionMap.mainAlias.hasMetadata) {\n if (!(valueSets.length > 1 && this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"])) {\n this.expressionMap.extraReturningColumns = returningResultsEntityUpdator.getInsertionReturningColumns();\n }\n if (this.expressionMap.extraReturningColumns.length > 0 && this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"]) {\n declareSql = this.connection.driver.buildTableVariableDeclaration(\"@OutputTable\", this.expressionMap.extraReturningColumns);\n selectOutputSql = \"SELECT * FROM @OutputTable\";\n }\n }\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.getQueryAndParameters(), 2), insertSql = _a[0], parameters = _a[1];\n insertResult = new _result_InsertResult__WEBPACK_IMPORTED_MODULE_4__[\"InsertResult\"]();\n statements = [declareSql, insertSql, selectOutputSql];\n _b = insertResult;\n return [4 /*yield*/, queryRunner.query(statements.filter(function (sql) { return sql != null; }).join(\";\\n\\n\"), parameters)];\n case 6:\n _b.raw = _c.sent();\n if (!(this.expressionMap.updateEntity === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 8];\n // console.time(\".updating entity\");\n return [4 /*yield*/, returningResultsEntityUpdator.insert(insertResult, valueSets)];\n case 7:\n // console.time(\".updating entity\");\n _c.sent();\n _c.label = 8;\n case 8:\n if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 10];\n broadcastResult_2 = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_10__[\"BroadcasterResult\"]();\n valueSets.forEach(function (valueSet) {\n queryRunner.broadcaster.broadcastAfterInsertEvent(broadcastResult_2, _this.expressionMap.mainAlias.metadata, valueSet);\n });\n if (!(broadcastResult_2.promises.length > 0)) return [3 /*break*/, 10];\n return [4 /*yield*/, Promise.all(broadcastResult_2.promises)];\n case 9:\n _c.sent();\n _c.label = 10;\n case 10:\n if (!transactionStartedByUs) return [3 /*break*/, 12];\n return [4 /*yield*/, queryRunner.commitTransaction()];\n case 11:\n _c.sent();\n _c.label = 12;\n case 12: \n // console.timeEnd(\".commit\");\n return [2 /*return*/, insertResult];\n case 13:\n error_1 = _c.sent();\n if (!transactionStartedByUs) return [3 /*break*/, 17];\n _c.label = 14;\n case 14:\n _c.trys.push([14, 16, , 17]);\n return [4 /*yield*/, queryRunner.rollbackTransaction()];\n case 15:\n _c.sent();\n return [3 /*break*/, 17];\n case 16:\n rollbackError_1 = _c.sent();\n return [3 /*break*/, 17];\n case 17: throw error_1;\n case 18:\n if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 20];\n return [4 /*yield*/, queryRunner.release()];\n case 19:\n _c.sent();\n _c.label = 20;\n case 20:\n if (!(this.connection.driver instanceof _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_9__[\"SqljsDriver\"] && !queryRunner.isTransactionActive)) return [3 /*break*/, 22];\n return [4 /*yield*/, this.connection.driver.autoSave()];\n case 21:\n _c.sent();\n _c.label = 22;\n case 22: return [7 /*endfinally*/];\n case 23: return [2 /*return*/];\n }\n });\n });\n };\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Specifies INTO which entity's table insertion will be executed.\n */\n InsertQueryBuilder.prototype.into = function (entityTarget, columns) {\n entityTarget = entityTarget instanceof _entity_schema_EntitySchema__WEBPACK_IMPORTED_MODULE_11__[\"EntitySchema\"] ? entityTarget.options.name : entityTarget;\n var mainAlias = this.createFromAlias(entityTarget);\n this.expressionMap.setMainAlias(mainAlias);\n this.expressionMap.insertColumns = columns || [];\n return this;\n };\n /**\n * Values needs to be inserted into table.\n */\n InsertQueryBuilder.prototype.values = function (values) {\n this.expressionMap.valuesSet = values;\n return this;\n };\n /**\n * Optional returning/output clause.\n */\n InsertQueryBuilder.prototype.output = function (output) {\n return this.returning(output);\n };\n /**\n * Optional returning/output clause.\n */\n InsertQueryBuilder.prototype.returning = function (returning) {\n // not all databases support returning/output cause\n if (!this.connection.driver.isReturningSqlSupported())\n throw new _error_ReturningStatementNotSupportedError__WEBPACK_IMPORTED_MODULE_5__[\"ReturningStatementNotSupportedError\"]();\n this.expressionMap.returning = returning;\n return this;\n };\n /**\n * Indicates if entity must be updated after insertion operations.\n * This may produce extra query or use RETURNING / OUTPUT statement (depend on database).\n * Enabled by default.\n */\n InsertQueryBuilder.prototype.updateEntity = function (enabled) {\n this.expressionMap.updateEntity = enabled;\n return this;\n };\n /**\n * Adds additional ON CONFLICT statement supported in postgres and cockroach.\n */\n InsertQueryBuilder.prototype.onConflict = function (statement) {\n this.expressionMap.onConflict = statement;\n return this;\n };\n /**\n * Adds additional ignore statement supported in databases.\n */\n InsertQueryBuilder.prototype.orIgnore = function (statement) {\n if (statement === void 0) { statement = true; }\n this.expressionMap.onIgnore = statement;\n return this;\n };\n /**\n * Adds additional update statement supported in databases.\n */\n InsertQueryBuilder.prototype.orUpdate = function (statement) {\n var _this = this;\n this.expressionMap.onUpdate = {};\n if (statement && Array.isArray(statement.conflict_target))\n this.expressionMap.onUpdate.conflict = \" ( \" + statement.conflict_target.map(function (columnName) { return _this.escape(columnName); }).join(\", \") + \" ) \";\n if (statement && typeof statement.conflict_target === \"string\")\n this.expressionMap.onUpdate.conflict = \" ON CONSTRAINT \" + this.escape(statement.conflict_target) + \" \";\n if (statement && Array.isArray(statement.columns))\n this.expressionMap.onUpdate.columns = statement.columns.map(function (column) { return _this.escape(column) + \" = :\" + column; }).join(\", \");\n if (statement && Array.isArray(statement.overwrite)) {\n if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"]) {\n this.expressionMap.onUpdate.overwrite = statement.overwrite.map(function (column) { return column + \" = VALUES(\" + column + \")\"; }).join(\", \");\n }\n else if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"] || this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_8__[\"AbstractSqliteDriver\"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"CockroachDriver\"]) {\n this.expressionMap.onUpdate.overwrite = statement.overwrite.map(function (column) { return _this.escape(column) + \" = EXCLUDED.\" + _this.escape(column); }).join(\", \");\n }\n }\n return this;\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Creates INSERT express used to perform insert query.\n */\n InsertQueryBuilder.prototype.createInsertExpression = function () {\n var _this = this;\n var tableName = this.getTableName(this.getMainTableName());\n var valuesExpression = this.createValuesExpression(); // its important to get values before returning expression because oracle rely on native parameters and ordering of them is important\n var returningExpression = (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"] && this.getValueSets().length > 1) ? null : this.createReturningExpression(); // oracle doesnt support returning with multi-row insert\n var columnsExpression = this.createColumnNamesExpression();\n var query = \"INSERT \";\n if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"]) {\n query += \"\" + (this.expressionMap.onIgnore ? \" IGNORE \" : \"\");\n }\n query += \"INTO \" + tableName;\n // add columns expression\n if (columnsExpression) {\n query += \"(\" + columnsExpression + \")\";\n }\n else {\n if (!valuesExpression && (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"])) // special syntax for mysql DEFAULT VALUES insertion\n query += \"()\";\n }\n // add OUTPUT expression\n if (returningExpression && this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"]) {\n query += \" OUTPUT \" + returningExpression;\n }\n // add VALUES expression\n if (valuesExpression) {\n if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"] && this.getValueSets().length > 1) {\n query += \" \" + valuesExpression;\n }\n else {\n query += \" VALUES \" + valuesExpression;\n }\n }\n else {\n if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"]) { // special syntax for mysql DEFAULT VALUES insertion\n query += \" VALUES ()\";\n }\n else {\n query += \" DEFAULT VALUES\";\n }\n }\n if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"] || this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_8__[\"AbstractSqliteDriver\"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"CockroachDriver\"]) {\n query += \"\" + (this.expressionMap.onIgnore ? \" ON CONFLICT DO NOTHING \" : \"\");\n query += \"\" + (this.expressionMap.onConflict ? \" ON CONFLICT \" + this.expressionMap.onConflict : \"\");\n if (this.expressionMap.onUpdate) {\n var _a = this.expressionMap.onUpdate, overwrite = _a.overwrite, columns = _a.columns, conflict = _a.conflict;\n query += \"\" + (columns ? \" ON CONFLICT \" + conflict + \" DO UPDATE SET \" + columns : \"\");\n query += \"\" + (overwrite ? \" ON CONFLICT \" + conflict + \" DO UPDATE SET \" + overwrite : \"\");\n }\n }\n else if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"]) {\n if (this.expressionMap.onUpdate) {\n var _b = this.expressionMap.onUpdate, overwrite = _b.overwrite, columns = _b.columns;\n query += \"\" + (columns ? \" ON DUPLICATE KEY UPDATE \" + columns : \"\");\n query += \"\" + (overwrite ? \" ON DUPLICATE KEY UPDATE \" + overwrite : \"\");\n }\n }\n // add RETURNING expression\n if (returningExpression && (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"CockroachDriver\"])) {\n query += \" RETURNING \" + returningExpression;\n }\n // Inserting a specific value for an auto-increment primary key in mssql requires enabling IDENTITY_INSERT\n // 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)\n if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"]\n && this.expressionMap.mainAlias.hasMetadata\n && this.expressionMap.mainAlias.metadata.columns\n .filter(function (column) { return _this.expressionMap.insertColumns.length > 0 ? _this.expressionMap.insertColumns.indexOf(column.propertyPath) !== -1 : column.isInsert; })\n .some(function (column) { return _this.isOverridingAutoIncrementBehavior(column); })) {\n query = \"SET IDENTITY_INSERT \" + tableName + \" ON; \" + query + \"; SET IDENTITY_INSERT \" + tableName + \" OFF\";\n }\n return query;\n };\n /**\n * Gets list of columns where values must be inserted to.\n */\n InsertQueryBuilder.prototype.getInsertedColumns = function () {\n var _this = this;\n if (!this.expressionMap.mainAlias.hasMetadata)\n return [];\n return this.expressionMap.mainAlias.metadata.columns.filter(function (column) {\n // if user specified list of columns he wants to insert to, then we filter only them\n if (_this.expressionMap.insertColumns.length)\n return _this.expressionMap.insertColumns.indexOf(column.propertyPath) !== -1;\n // skip columns the user doesn't want included by default\n if (!column.isInsert) {\n return false;\n }\n // if user did not specified such list then return all columns except auto-increment one\n // for Oracle we return auto-increment column as well because Oracle does not support DEFAULT VALUES expression\n if (column.isGenerated && column.generationStrategy === \"increment\"\n && !(_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"])\n && !(_this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_8__[\"AbstractSqliteDriver\"])\n && !(_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"])\n && !(_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"])\n && !(_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"] && _this.isOverridingAutoIncrementBehavior(column)))\n return false;\n return true;\n });\n };\n /**\n * Creates a columns string where values must be inserted to for INSERT INTO expression.\n */\n InsertQueryBuilder.prototype.createColumnNamesExpression = function () {\n var _this = this;\n var columns = this.getInsertedColumns();\n if (columns.length > 0)\n return columns.map(function (column) { return _this.escape(column.databaseName); }).join(\", \");\n // in the case if there are no insert columns specified and table without metadata used\n // we get columns from the inserted value map, in the case if only one inserted map is specified\n if (!this.expressionMap.mainAlias.hasMetadata && !this.expressionMap.insertColumns.length) {\n var valueSets = this.getValueSets();\n if (valueSets.length === 1)\n return Object.keys(valueSets[0]).map(function (columnName) { return _this.escape(columnName); }).join(\", \");\n }\n // get a table name and all column database names\n return this.expressionMap.insertColumns.map(function (columnName) { return _this.escape(columnName); }).join(\", \");\n };\n /**\n * Creates list of values needs to be inserted in the VALUES expression.\n */\n InsertQueryBuilder.prototype.createValuesExpression = function () {\n var _this = this;\n var valueSets = this.getValueSets();\n var columns = this.getInsertedColumns();\n // if column metadatas are given then apply all necessary operations with values\n if (columns.length > 0) {\n var expression_1 = \"\";\n var parametersCount_1 = Object.keys(this.expressionMap.nativeParameters).length;\n valueSets.forEach(function (valueSet, valueSetIndex) {\n columns.forEach(function (column, columnIndex) {\n if (columnIndex === 0) {\n if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"] && valueSets.length > 1) {\n expression_1 += \" SELECT \";\n }\n else {\n expression_1 += \"(\";\n }\n }\n var paramName = \"i\" + valueSetIndex + \"_\" + column.databaseName;\n // extract real value from the entity\n var value = column.getEntityValue(valueSet);\n // if column is relational and value is an object then get real referenced column value from this object\n // for example column value is { question: { id: 1 } }, value will be equal to { id: 1 }\n // and we extract \"1\" from this object\n /*if (column.referencedColumn && value instanceof Object && !(value instanceof Function)) { // todo: check if we still need it since getEntityValue already has similar code\n value = column.referencedColumn.getEntityValue(value);\n }*/\n if (!(value instanceof Function)) {\n // make sure our value is normalized by a driver\n value = _this.connection.driver.preparePersistentValue(value, column);\n }\n // newly inserted entities always have a version equal to 1 (first version)\n // also, user-specified version must be empty\n if (column.isVersion && value === undefined) {\n expression_1 += \"1\";\n // } else if (column.isNestedSetLeft) {\n // const tableName = this.connection.driver.escape(column.entityMetadata.tablePath);\n // const rightColumnName = this.connection.driver.escape(column.entityMetadata.nestedSetRightColumn!.databaseName);\n // const subQuery = `(SELECT c.max + 1 FROM (SELECT MAX(${rightColumnName}) as max from ${tableName}) c)`;\n // expression += subQuery;\n //\n // } else if (column.isNestedSetRight) {\n // const tableName = this.connection.driver.escape(column.entityMetadata.tablePath);\n // const rightColumnName = this.connection.driver.escape(column.entityMetadata.nestedSetRightColumn!.databaseName);\n // const subQuery = `(SELECT c.max + 2 FROM (SELECT MAX(${rightColumnName}) as max from ${tableName}) c)`;\n // expression += subQuery;\n }\n else if (column.isDiscriminator) {\n _this.expressionMap.nativeParameters[\"discriminator_value_\" + parametersCount_1] = _this.expressionMap.mainAlias.metadata.discriminatorValue;\n expression_1 += _this.connection.driver.createParameter(\"discriminator_value_\" + parametersCount_1, parametersCount_1);\n parametersCount_1++;\n // return \"1\";\n // for create and update dates we insert current date\n // no, we don't do it because this constant is already in \"default\" value of the column\n // with extended timestamp functionality, like CURRENT_TIMESTAMP(6) for example\n // } else if (column.isCreateDate || column.isUpdateDate) {\n // return \"CURRENT_TIMESTAMP\";\n // 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\n }\n else if (column.isGenerated && column.generationStrategy === \"uuid\" && !_this.connection.driver.isUUIDGenerationSupported() && value === undefined) {\n var paramName_1 = \"uuid_\" + column.databaseName + valueSetIndex;\n value = _util_RandomGenerator__WEBPACK_IMPORTED_MODULE_3__[\"RandomGenerator\"].uuid4();\n _this.expressionMap.nativeParameters[paramName_1] = value;\n expression_1 += _this.connection.driver.createParameter(paramName_1, parametersCount_1);\n parametersCount_1++;\n // if value for this column was not provided then insert default value\n }\n else if (value === undefined) {\n if ((_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"] && valueSets.length > 1) || _this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_8__[\"AbstractSqliteDriver\"] || _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SapDriver\"]) { // unfortunately sqlite does not support DEFAULT expression in INSERT queries\n if (column.default !== undefined && column.default !== null) { // try to use default defined in the column\n expression_1 += _this.connection.driver.normalizeDefault(column);\n }\n else {\n expression_1 += \"NULL\"; // otherwise simply use NULL and pray if column is nullable\n }\n }\n else {\n expression_1 += \"DEFAULT\";\n }\n // support for SQL expressions in queries\n }\n else if (value instanceof Function) {\n expression_1 += value();\n // just any other regular value\n }\n else {\n if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"])\n value = _this.connection.driver.parametrizeValue(column, value);\n // we need to store array values in a special class to make sure parameter replacement will work correctly\n // if (value instanceof Array)\n // value = new ArrayParameter(value);\n _this.expressionMap.nativeParameters[paramName] = value;\n if ((_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] || _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"]) && _this.connection.driver.spatialTypes.indexOf(column.type) !== -1) {\n var useLegacy = _this.connection.driver.options.legacySpatialSupport;\n var geomFromText = useLegacy ? \"GeomFromText\" : \"ST_GeomFromText\";\n if (column.srid != null) {\n expression_1 += geomFromText + \"(\" + _this.connection.driver.createParameter(paramName, parametersCount_1) + \", \" + column.srid + \")\";\n }\n else {\n expression_1 += geomFromText + \"(\" + _this.connection.driver.createParameter(paramName, parametersCount_1) + \")\";\n }\n }\n else if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"] && _this.connection.driver.spatialTypes.indexOf(column.type) !== -1) {\n if (column.srid != null) {\n expression_1 += \"ST_SetSRID(ST_GeomFromGeoJSON(\" + _this.connection.driver.createParameter(paramName, parametersCount_1) + \"), \" + column.srid + \")::\" + column.type;\n }\n else {\n expression_1 += \"ST_GeomFromGeoJSON(\" + _this.connection.driver.createParameter(paramName, parametersCount_1) + \")::\" + column.type;\n }\n }\n else if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"] && _this.connection.driver.spatialTypes.indexOf(column.type) !== -1) {\n expression_1 += column.type + \"::STGeomFromText(\" + _this.connection.driver.createParameter(paramName, parametersCount_1) + \", \" + (column.srid || \"0\") + \")\";\n }\n else {\n expression_1 += _this.connection.driver.createParameter(paramName, parametersCount_1);\n }\n parametersCount_1++;\n }\n if (columnIndex === columns.length - 1) {\n if (valueSetIndex === valueSets.length - 1) {\n if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"] && valueSets.length > 1) {\n expression_1 += \" FROM DUAL \";\n }\n else {\n expression_1 += \")\";\n }\n }\n else {\n if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"] && valueSets.length > 1) {\n expression_1 += \" FROM DUAL UNION ALL \";\n }\n else {\n expression_1 += \"), \";\n }\n }\n }\n else {\n expression_1 += \", \";\n }\n });\n });\n if (expression_1 === \"()\")\n return \"\";\n return expression_1;\n }\n else { // for tables without metadata\n // get values needs to be inserted\n var expression_2 = \"\";\n var parametersCount_2 = Object.keys(this.expressionMap.nativeParameters).length;\n valueSets.forEach(function (valueSet, insertionIndex) {\n var columns = Object.keys(valueSet);\n columns.forEach(function (columnName, columnIndex) {\n if (columnIndex === 0) {\n expression_2 += \"(\";\n }\n var paramName = \"i\" + insertionIndex + \"_\" + columnName;\n var value = valueSet[columnName];\n // support for SQL expressions in queries\n if (value instanceof Function) {\n expression_2 += value();\n // if value for this column was not provided then insert default value\n }\n else if (value === undefined) {\n if (_this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_8__[\"AbstractSqliteDriver\"] || _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SapDriver\"]) {\n expression_2 += \"NULL\";\n }\n else {\n expression_2 += \"DEFAULT\";\n }\n // just any other regular value\n }\n else {\n _this.expressionMap.nativeParameters[paramName] = value;\n expression_2 += _this.connection.driver.createParameter(paramName, parametersCount_2);\n parametersCount_2++;\n }\n if (columnIndex === Object.keys(valueSet).length - 1) {\n if (insertionIndex === valueSets.length - 1) {\n expression_2 += \")\";\n }\n else {\n expression_2 += \"), \";\n }\n }\n else {\n expression_2 += \", \";\n }\n });\n });\n if (expression_2 === \"()\")\n return \"\";\n return expression_2;\n }\n };\n /**\n * Gets array of values need to be inserted into the target table.\n */\n InsertQueryBuilder.prototype.getValueSets = function () {\n if (Array.isArray(this.expressionMap.valuesSet))\n return this.expressionMap.valuesSet;\n if (this.expressionMap.valuesSet instanceof Object)\n return [this.expressionMap.valuesSet];\n throw new _error_InsertValuesMissingError__WEBPACK_IMPORTED_MODULE_6__[\"InsertValuesMissingError\"]();\n };\n /**\n * Checks if column is an auto-generated primary key, but the current insertion specifies a value for it.\n *\n * @param column\n */\n InsertQueryBuilder.prototype.isOverridingAutoIncrementBehavior = function (column) {\n return column.isPrimary\n && column.isGenerated\n && column.generationStrategy === \"increment\"\n && this.getValueSets().some(function (valueSet) {\n return column.getEntityValue(valueSet) !== undefined\n && column.getEntityValue(valueSet) !== null;\n });\n };\n return InsertQueryBuilder;\n}(_QueryBuilder__WEBPACK_IMPORTED_MODULE_2__[\"QueryBuilder\"]));\n\n\n//# sourceMappingURL=InsertQueryBuilder.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/InsertQueryBuilder.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/JoinAttribute.js":
/*!*********************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/JoinAttribute.js ***!
\*********************************************************************/
/*! exports provided: JoinAttribute */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"JoinAttribute\", function() { return JoinAttribute; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./QueryBuilderUtils */ \"./node_modules/typeorm/browser/query-builder/QueryBuilderUtils.js\");\n/* harmony import */ var _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/ObjectUtils */ \"./node_modules/typeorm/browser/util/ObjectUtils.js\");\n\n\n\n/**\n * Stores all join attributes which will be used to build a JOIN query.\n */\nvar JoinAttribute = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function JoinAttribute(connection, queryExpressionMap, joinAttribute) {\n this.connection = connection;\n this.queryExpressionMap = queryExpressionMap;\n this.isSelectedEvaluated = false;\n this.relationEvaluated = false;\n _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_2__[\"ObjectUtils\"].assign(this, joinAttribute || {});\n }\n Object.defineProperty(JoinAttribute.prototype, \"isMany\", {\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n get: function () {\n if (this.isMappingMany !== undefined)\n return this.isMappingMany;\n if (this.relation)\n return this.relation.isManyToMany || this.relation.isOneToMany;\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(JoinAttribute.prototype, \"isSelected\", {\n /**\n * Indicates if this join is selected.\n */\n get: function () {\n var _this = this;\n if (!this.isSelectedEvaluated) {\n var getValue = function () {\n var e_1, _a;\n var _loop_1 = function (select) {\n if (select.selection === _this.alias.name)\n return { value: true };\n if (_this.metadata && !!_this.metadata.columns.find(function (column) { return select.selection === _this.alias.name + \".\" + column.propertyPath; }))\n return { value: true };\n };\n try {\n for (var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(_this.queryExpressionMap.selects), _c = _b.next(); !_c.done; _c = _b.next()) {\n var select = _c.value;\n var state_1 = _loop_1(select);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return false;\n };\n this.isSelectedCache = getValue();\n this.isSelectedEvaluated = true;\n }\n return this.isSelectedCache;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(JoinAttribute.prototype, \"tablePath\", {\n /**\n * Name of the table which we should join.\n */\n get: function () {\n return this.metadata ? this.metadata.tablePath : this.entityOrProperty;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(JoinAttribute.prototype, \"parentAlias\", {\n /**\n * Alias of the parent of this join.\n * For example, if we join (\"post.category\", \"categoryAlias\") then \"post\" is a parent alias.\n * This value is extracted from entityOrProperty value.\n * This is available when join was made using \"post.category\" syntax.\n */\n get: function () {\n if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[\"QueryBuilderUtils\"].isAliasProperty(this.entityOrProperty))\n return undefined;\n return this.entityOrProperty.substr(0, this.entityOrProperty.indexOf(\".\"));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(JoinAttribute.prototype, \"relationPropertyPath\", {\n /**\n * Relation property name of the parent.\n * This is used to understand what is joined.\n * For example, if we join (\"post.category\", \"categoryAlias\") then \"category\" is a relation property.\n * This value is extracted from entityOrProperty value.\n * This is available when join was made using \"post.category\" syntax.\n */\n get: function () {\n if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[\"QueryBuilderUtils\"].isAliasProperty(this.entityOrProperty))\n return undefined;\n return this.entityOrProperty.substr(this.entityOrProperty.indexOf(\".\") + 1);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(JoinAttribute.prototype, \"relation\", {\n /**\n * Relation of the parent.\n * This is used to understand what is joined.\n * This is available when join was made using \"post.category\" syntax.\n * Relation can be undefined if entityOrProperty is regular entity or custom table.\n */\n get: function () {\n var _this = this;\n if (!this.relationEvaluated) {\n var getValue = function () {\n if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[\"QueryBuilderUtils\"].isAliasProperty(_this.entityOrProperty))\n return undefined;\n var relationOwnerSelection = _this.queryExpressionMap.findAliasByName(_this.parentAlias);\n var relation = relationOwnerSelection.metadata.findRelationWithPropertyPath(_this.relationPropertyPath);\n if (relation) {\n return relation;\n }\n if (relationOwnerSelection.metadata.parentEntityMetadata) {\n relation = relationOwnerSelection.metadata.parentEntityMetadata.findRelationWithPropertyPath(_this.relationPropertyPath);\n if (relation) {\n return relation;\n }\n }\n throw new Error(\"Relation with property path \" + _this.relationPropertyPath + \" in entity was not found.\");\n };\n this.relationCache = getValue.bind(this)();\n this.relationEvaluated = true;\n }\n return this.relationCache;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(JoinAttribute.prototype, \"metadata\", {\n /**\n * Metadata of the joined entity.\n * If table without entity was joined, then it will return undefined.\n */\n get: function () {\n // entityOrProperty is relation, e.g. \"post.category\"\n if (this.relation)\n return this.relation.inverseEntityMetadata;\n // entityOrProperty is Entity class\n if (this.connection.hasMetadata(this.entityOrProperty))\n return this.connection.getMetadata(this.entityOrProperty);\n return undefined;\n /*if (typeof this.entityOrProperty === \"string\") { // entityOrProperty is a custom table\n \n // first try to find entity with such name, this is needed when entity does not have a target class,\n // and its target is a string name (scenario when plain old javascript is used or entity schema is loaded from files)\n const metadata = this.connection.entityMetadatas.find(metadata => metadata.name === this.entityOrProperty);\n if (metadata)\n return metadata;\n \n // check if we have entity with such table name, and use its metadata if found\n return this.connection.entityMetadatas.find(metadata => metadata.tableName === this.entityOrProperty);\n }*/\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(JoinAttribute.prototype, \"junctionAlias\", {\n /**\n * Generates alias of junction table, whose ids we get.\n */\n get: function () {\n if (!this.relation)\n throw new Error(\"Cannot get junction table for join without relation.\");\n return this.relation.isOwning ? this.parentAlias + \"_\" + this.alias.name : this.alias.name + \"_\" + this.parentAlias;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(JoinAttribute.prototype, \"mapToPropertyParentAlias\", {\n get: function () {\n if (!this.mapToProperty)\n return undefined;\n return this.mapToProperty.split(\".\")[0];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(JoinAttribute.prototype, \"mapToPropertyPropertyName\", {\n get: function () {\n if (!this.mapToProperty)\n return undefined;\n return this.mapToProperty.split(\".\")[1];\n },\n enumerable: false,\n configurable: true\n });\n return JoinAttribute;\n}());\n\n\n//# sourceMappingURL=JoinAttribute.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/JoinAttribute.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/QueryBuilder.js":
/*!********************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/QueryBuilder.js ***!
\********************************************************************/
/*! exports provided: QueryBuilder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QueryBuilder\", function() { return QueryBuilder; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _QueryExpressionMap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./QueryExpressionMap */ \"./node_modules/typeorm/browser/query-builder/QueryExpressionMap.js\");\n/* harmony import */ var _Brackets__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Brackets */ \"./node_modules/typeorm/browser/query-builder/Brackets.js\");\n/* harmony import */ var _metadata_EntityMetadata__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../metadata/EntityMetadata */ \"./node_modules/typeorm/browser/metadata/EntityMetadata.js\");\n/* harmony import */ var _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../driver/sqljs/SqljsDriver */ \"./node_modules/typeorm/browser/driver/sqljs/SqljsDriver.js\");\n/* harmony import */ var _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../driver/postgres/PostgresDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../ */ \"./node_modules/typeorm/browser/index.js\");\n/* harmony import */ var _find_options_FindOperator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../find-options/FindOperator */ \"./node_modules/typeorm/browser/find-options/FindOperator.js\");\n/* harmony import */ var _find_options_operator_In__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../find-options/operator/In */ \"./node_modules/typeorm/browser/find-options/operator/In.js\");\n/* harmony import */ var _error_EntityColumnNotFound__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../error/EntityColumnNotFound */ \"./node_modules/typeorm/browser/error/EntityColumnNotFound.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n// todo: completely cover query builder with tests\n// todo: entityOrProperty can be target name. implement proper behaviour if it is.\n// todo: check in persistment if id exist on object and throw exception (can be in partial selection?)\n// todo: fix problem with long aliases eg getMaxIdentifierLength\n// todo: fix replacing in .select(\"COUNT(post.id) AS cnt\") statement\n// todo: implement joinAlways in relations and relationId\n// todo: finish partial selection\n// todo: sugar methods like: .addCount and .selectCount, selectCountAndMap, selectSum, selectSumAndMap, ...\n// todo: implement @Select decorator\n// todo: add select and map functions\n// todo: implement relation/entity loading and setting them into properties within a separate query\n// .loadAndMap(\"post.categories\", \"post.categories\", qb => ...)\n// .loadAndMap(\"post.categories\", Category, qb => ...)\n/**\n * Allows to build complex sql queries in a fashion way and execute those queries.\n */\nvar QueryBuilder = /** @class */ (function () {\n /**\n * QueryBuilder can be initialized from given Connection and QueryRunner objects or from given other QueryBuilder.\n */\n function QueryBuilder(connectionOrQueryBuilder, queryRunner) {\n if (connectionOrQueryBuilder instanceof QueryBuilder) {\n this.connection = connectionOrQueryBuilder.connection;\n this.queryRunner = connectionOrQueryBuilder.queryRunner;\n this.expressionMap = connectionOrQueryBuilder.expressionMap.clone();\n }\n else {\n this.connection = connectionOrQueryBuilder;\n this.queryRunner = queryRunner;\n this.expressionMap = new _QueryExpressionMap__WEBPACK_IMPORTED_MODULE_1__[\"QueryExpressionMap\"](this.connection);\n }\n }\n Object.defineProperty(QueryBuilder.prototype, \"alias\", {\n // -------------------------------------------------------------------------\n // Accessors\n // -------------------------------------------------------------------------\n /**\n * Gets the main alias string used in this query builder.\n */\n get: function () {\n if (!this.expressionMap.mainAlias)\n throw new Error(\"Main alias is not set\"); // todo: better exception\n return this.expressionMap.mainAlias.name;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Creates SELECT query and selects given data.\n * Replaces all previous selections if they exist.\n */\n QueryBuilder.prototype.select = function (selection, selectionAliasName) {\n this.expressionMap.queryType = \"select\";\n if (Array.isArray(selection)) {\n this.expressionMap.selects = selection.map(function (selection) { return ({ selection: selection }); });\n }\n else if (selection) {\n this.expressionMap.selects = [{ selection: selection, aliasName: selectionAliasName }];\n }\n // loading it dynamically because of circular issue\n var SelectQueryBuilderCls = __webpack_require__(/*! ./SelectQueryBuilder */ \"./node_modules/typeorm/browser/query-builder/SelectQueryBuilder.js\").SelectQueryBuilder;\n if (this instanceof SelectQueryBuilderCls)\n return this;\n return new SelectQueryBuilderCls(this);\n };\n /**\n * Creates INSERT query.\n */\n QueryBuilder.prototype.insert = function () {\n this.expressionMap.queryType = \"insert\";\n // loading it dynamically because of circular issue\n var InsertQueryBuilderCls = __webpack_require__(/*! ./InsertQueryBuilder */ \"./node_modules/typeorm/browser/query-builder/InsertQueryBuilder.js\").InsertQueryBuilder;\n if (this instanceof InsertQueryBuilderCls)\n return this;\n return new InsertQueryBuilderCls(this);\n };\n /**\n * Creates UPDATE query and applies given update values.\n */\n QueryBuilder.prototype.update = function (entityOrTableNameUpdateSet, maybeUpdateSet) {\n var updateSet = maybeUpdateSet ? maybeUpdateSet : entityOrTableNameUpdateSet;\n entityOrTableNameUpdateSet = entityOrTableNameUpdateSet instanceof ___WEBPACK_IMPORTED_MODULE_6__[\"EntitySchema\"] ? entityOrTableNameUpdateSet.options.name : entityOrTableNameUpdateSet;\n if (entityOrTableNameUpdateSet instanceof Function || typeof entityOrTableNameUpdateSet === \"string\") {\n var mainAlias = this.createFromAlias(entityOrTableNameUpdateSet);\n this.expressionMap.setMainAlias(mainAlias);\n }\n this.expressionMap.queryType = \"update\";\n this.expressionMap.valuesSet = updateSet;\n // loading it dynamically because of circular issue\n var UpdateQueryBuilderCls = __webpack_require__(/*! ./UpdateQueryBuilder */ \"./node_modules/typeorm/browser/query-builder/UpdateQueryBuilder.js\").UpdateQueryBuilder;\n if (this instanceof UpdateQueryBuilderCls)\n return this;\n return new UpdateQueryBuilderCls(this);\n };\n /**\n * Creates DELETE query.\n */\n QueryBuilder.prototype.delete = function () {\n this.expressionMap.queryType = \"delete\";\n // loading it dynamically because of circular issue\n var DeleteQueryBuilderCls = __webpack_require__(/*! ./DeleteQueryBuilder */ \"./node_modules/typeorm/browser/query-builder/DeleteQueryBuilder.js\").DeleteQueryBuilder;\n if (this instanceof DeleteQueryBuilderCls)\n return this;\n return new DeleteQueryBuilderCls(this);\n };\n QueryBuilder.prototype.softDelete = function () {\n this.expressionMap.queryType = \"soft-delete\";\n // loading it dynamically because of circular issue\n var SoftDeleteQueryBuilderCls = __webpack_require__(/*! ./SoftDeleteQueryBuilder */ \"./node_modules/typeorm/browser/query-builder/SoftDeleteQueryBuilder.js\").SoftDeleteQueryBuilder;\n if (this instanceof SoftDeleteQueryBuilderCls)\n return this;\n return new SoftDeleteQueryBuilderCls(this);\n };\n QueryBuilder.prototype.restore = function () {\n this.expressionMap.queryType = \"restore\";\n // loading it dynamically because of circular issue\n var SoftDeleteQueryBuilderCls = __webpack_require__(/*! ./SoftDeleteQueryBuilder */ \"./node_modules/typeorm/browser/query-builder/SoftDeleteQueryBuilder.js\").SoftDeleteQueryBuilder;\n if (this instanceof SoftDeleteQueryBuilderCls)\n return this;\n return new SoftDeleteQueryBuilderCls(this);\n };\n /**\n * Sets entity's relation with which this query builder gonna work.\n */\n QueryBuilder.prototype.relation = function (entityTargetOrPropertyPath, maybePropertyPath) {\n var entityTarget = arguments.length === 2 ? entityTargetOrPropertyPath : undefined;\n var propertyPath = arguments.length === 2 ? maybePropertyPath : entityTargetOrPropertyPath;\n this.expressionMap.queryType = \"relation\";\n this.expressionMap.relationPropertyPath = propertyPath;\n if (entityTarget) {\n var mainAlias = this.createFromAlias(entityTarget);\n this.expressionMap.setMainAlias(mainAlias);\n }\n // loading it dynamically because of circular issue\n var RelationQueryBuilderCls = __webpack_require__(/*! ./RelationQueryBuilder */ \"./node_modules/typeorm/browser/query-builder/RelationQueryBuilder.js\").RelationQueryBuilder;\n if (this instanceof RelationQueryBuilderCls)\n return this;\n return new RelationQueryBuilderCls(this);\n };\n /**\n * Checks if given relation or relations exist in the entity.\n * Returns true if relation exists, false otherwise.\n *\n * todo: move this method to manager? or create a shortcut?\n */\n QueryBuilder.prototype.hasRelation = function (target, relation) {\n var entityMetadata = this.connection.getMetadata(target);\n var relations = Array.isArray(relation) ? relation : [relation];\n return relations.every(function (relation) {\n return !!entityMetadata.findRelationWithPropertyPath(relation);\n });\n };\n /**\n * Sets parameter name and its value.\n */\n QueryBuilder.prototype.setParameter = function (key, value) {\n this.expressionMap.parameters[key] = value;\n return this;\n };\n /**\n * Adds all parameters from the given object.\n */\n QueryBuilder.prototype.setParameters = function (parameters) {\n var _this = this;\n // remove function parameters\n Object.keys(parameters).forEach(function (key) {\n if (parameters[key] instanceof Function) {\n throw new Error(\"Function parameter isn't supported in the parameters. Please check \\\"\" + key + \"\\\" parameter.\");\n }\n });\n // set parent query builder parameters as well in sub-query mode\n if (this.expressionMap.parentQueryBuilder)\n this.expressionMap.parentQueryBuilder.setParameters(parameters);\n Object.keys(parameters).forEach(function (key) { return _this.setParameter(key, parameters[key]); });\n return this;\n };\n /**\n * Adds native parameters from the given object.\n */\n QueryBuilder.prototype.setNativeParameters = function (parameters) {\n var _this = this;\n // set parent query builder parameters as well in sub-query mode\n if (this.expressionMap.parentQueryBuilder)\n this.expressionMap.parentQueryBuilder.setNativeParameters(parameters);\n Object.keys(parameters).forEach(function (key) {\n _this.expressionMap.nativeParameters[key] = parameters[key];\n });\n return this;\n };\n /**\n * Gets all parameters.\n */\n QueryBuilder.prototype.getParameters = function () {\n var parameters = Object.assign({}, this.expressionMap.parameters);\n // add discriminator column parameter if it exist\n if (this.expressionMap.mainAlias && this.expressionMap.mainAlias.hasMetadata) {\n var metadata = this.expressionMap.mainAlias.metadata;\n if (metadata.discriminatorColumn && metadata.parentEntityMetadata) {\n var values = metadata.childEntityMetadatas\n .filter(function (childMetadata) { return childMetadata.discriminatorColumn; })\n .map(function (childMetadata) { return childMetadata.discriminatorValue; });\n values.push(metadata.discriminatorValue);\n parameters[\"discriminatorColumnValues\"] = values;\n }\n }\n return parameters;\n };\n /**\n * Prints sql to stdout using console.log.\n */\n QueryBuilder.prototype.printSql = function () {\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.getQueryAndParameters(), 2), query = _a[0], parameters = _a[1];\n this.connection.logger.logQuery(query, parameters);\n return this;\n };\n /**\n * Gets generated sql that will be executed.\n * Parameters in the query are escaped for the currently used driver.\n */\n QueryBuilder.prototype.getSql = function () {\n return this.getQueryAndParameters()[0];\n };\n /**\n * Gets query to be executed with all parameters used in it.\n */\n QueryBuilder.prototype.getQueryAndParameters = function () {\n // this execution order is important because getQuery method generates this.expressionMap.nativeParameters values\n var query = this.getQuery();\n var parameters = this.getParameters();\n return this.connection.driver.escapeQueryWithParameters(query, parameters, this.expressionMap.nativeParameters);\n };\n /**\n * Executes sql generated by query builder and returns raw database results.\n */\n QueryBuilder.prototype.execute = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _a, sql, parameters, queryRunner;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.getQueryAndParameters(), 2), sql = _a[0], parameters = _a[1];\n queryRunner = this.obtainQueryRunner();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 3, 8]);\n return [4 /*yield*/, queryRunner.query(sql, parameters)];\n case 2: return [2 /*return*/, _b.sent()]; // await is needed here because we are using finally\n case 3:\n if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 5];\n return [4 /*yield*/, queryRunner.release()];\n case 4:\n _b.sent();\n _b.label = 5;\n case 5:\n if (!(this.connection.driver instanceof _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_4__[\"SqljsDriver\"])) return [3 /*break*/, 7];\n return [4 /*yield*/, this.connection.driver.autoSave()];\n case 6:\n _b.sent();\n _b.label = 7;\n case 7: return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates a completely new query builder.\n * Uses same query runner as current QueryBuilder.\n */\n QueryBuilder.prototype.createQueryBuilder = function () {\n return new this.constructor(this.connection, this.queryRunner);\n };\n /**\n * Clones query builder as it is.\n * Note: it uses new query runner, if you want query builder that uses exactly same query runner,\n * you can create query builder using its constructor, for example new SelectQueryBuilder(queryBuilder)\n * where queryBuilder is cloned QueryBuilder.\n */\n QueryBuilder.prototype.clone = function () {\n return new this.constructor(this);\n };\n /**\n * Includes a Query comment in the query builder. This is helpful for debugging purposes,\n * such as finding a specific query in the database server's logs, or for categorization using\n * an APM product.\n */\n QueryBuilder.prototype.comment = function (comment) {\n this.expressionMap.comment = comment;\n return this;\n };\n /**\n * Disables escaping.\n */\n QueryBuilder.prototype.disableEscaping = function () {\n this.expressionMap.disableEscaping = false;\n return this;\n };\n /**\n * Escapes table name, column name or alias name using current database's escaping character.\n */\n QueryBuilder.prototype.escape = function (name) {\n if (!this.expressionMap.disableEscaping)\n return name;\n return this.connection.driver.escape(name);\n };\n /**\n * Sets or overrides query builder's QueryRunner.\n */\n QueryBuilder.prototype.setQueryRunner = function (queryRunner) {\n this.queryRunner = queryRunner;\n return this;\n };\n /**\n * Indicates if listeners and subscribers must be called before and after query execution.\n * Enabled by default.\n */\n QueryBuilder.prototype.callListeners = function (enabled) {\n this.expressionMap.callListeners = enabled;\n return this;\n };\n /**\n * If set to true the query will be wrapped into a transaction.\n */\n QueryBuilder.prototype.useTransaction = function (enabled) {\n this.expressionMap.useTransaction = enabled;\n return this;\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Gets escaped table name with schema name if SqlServer driver used with custom\n * schema name, otherwise returns escaped table name.\n */\n QueryBuilder.prototype.getTableName = function (tablePath) {\n var _this = this;\n return tablePath.split(\".\")\n .map(function (i) {\n // 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\n if (i === \"\")\n return i;\n return _this.escape(i);\n }).join(\".\");\n };\n /**\n * Gets name of the table where insert should be performed.\n */\n QueryBuilder.prototype.getMainTableName = function () {\n if (!this.expressionMap.mainAlias)\n throw new Error(\"Entity where values should be inserted is not specified. Call \\\"qb.into(entity)\\\" method to specify it.\");\n if (this.expressionMap.mainAlias.hasMetadata)\n return this.expressionMap.mainAlias.metadata.tablePath;\n return this.expressionMap.mainAlias.tablePath;\n };\n /**\n * Specifies FROM which entity's table select/update/delete will be executed.\n * Also sets a main string alias of the selection data.\n */\n QueryBuilder.prototype.createFromAlias = function (entityTarget, aliasName) {\n // if table has a metadata then find it to properly escape its properties\n // const metadata = this.connection.entityMetadatas.find(metadata => metadata.tableName === tableName);\n if (this.connection.hasMetadata(entityTarget)) {\n var metadata = this.connection.getMetadata(entityTarget);\n return this.expressionMap.createAlias({\n type: \"from\",\n name: aliasName,\n metadata: this.connection.getMetadata(entityTarget),\n tablePath: metadata.tablePath\n });\n }\n else {\n if (typeof entityTarget === \"string\") {\n var isSubquery = entityTarget.substr(0, 1) === \"(\" && entityTarget.substr(-1) === \")\";\n return this.expressionMap.createAlias({\n type: \"from\",\n name: aliasName,\n tablePath: !isSubquery ? entityTarget : undefined,\n subQuery: isSubquery ? entityTarget : undefined,\n });\n }\n var subQueryBuilder = entityTarget(this.subQuery());\n this.setParameters(subQueryBuilder.getParameters());\n var subquery = subQueryBuilder.getQuery();\n return this.expressionMap.createAlias({\n type: \"from\",\n name: aliasName,\n subQuery: subquery\n });\n }\n };\n /**\n * Replaces all entity's propertyName to name in the given statement.\n */\n QueryBuilder.prototype.replacePropertyNames = function (statement) {\n var e_1, _a;\n var _this = this;\n // Escape special characters in regular expressions\n // Per https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\n var escapeRegExp = function (s) { return s.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, \"\\\\$&\"); };\n var _loop_1 = function (alias) {\n var e_2, _d, e_3, _e, e_4, _f, e_5, _g, e_6, _h, e_7, _j;\n if (!alias.hasMetadata)\n return \"continue\";\n var replaceAliasNamePrefix = this_1.expressionMap.aliasNamePrefixingEnabled ? alias.name + \".\" : \"\";\n var replacementAliasNamePrefix = this_1.expressionMap.aliasNamePrefixingEnabled ? this_1.escape(alias.name) + \".\" : \"\";\n var replacements = {};\n try {\n // Insert & overwrite the replacements from least to most relevant in our replacements object.\n // To do this we iterate and overwrite in the order of relevance.\n // Least to Most Relevant:\n // * Relation Property Path to first join column key\n // * Relation Property Path + Column Path\n // * Column Database Name\n // * Column Propety Name\n // * Column Property Path\n for (var _k = (e_2 = void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(alias.metadata.relations)), _l = _k.next(); !_l.done; _l = _k.next()) {\n var relation = _l.value;\n if (relation.joinColumns.length > 0)\n replacements[relation.propertyPath] = relation.joinColumns[0].databaseName;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_l && !_l.done && (_d = _k.return)) _d.call(_k);\n }\n finally { if (e_2) throw e_2.error; }\n }\n try {\n for (var _m = (e_3 = void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(alias.metadata.relations)), _o = _m.next(); !_o.done; _o = _m.next()) {\n var relation = _o.value;\n try {\n for (var _p = (e_4 = void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(relation.joinColumns)), Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(relation.inverseJoinColumns)))), _q = _p.next(); !_q.done; _q = _p.next()) {\n var joinColumn = _q.value;\n var propertyKey = relation.propertyPath + \".\" + joinColumn.referencedColumn.propertyPath;\n replacements[propertyKey] = joinColumn.databaseName;\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_q && !_q.done && (_f = _p.return)) _f.call(_p);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_o && !_o.done && (_e = _m.return)) _e.call(_m);\n }\n finally { if (e_3) throw e_3.error; }\n }\n try {\n for (var _r = (e_5 = void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(alias.metadata.columns)), _s = _r.next(); !_s.done; _s = _r.next()) {\n var column = _s.value;\n replacements[column.databaseName] = column.databaseName;\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_s && !_s.done && (_g = _r.return)) _g.call(_r);\n }\n finally { if (e_5) throw e_5.error; }\n }\n try {\n for (var _t = (e_6 = void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(alias.metadata.columns)), _u = _t.next(); !_u.done; _u = _t.next()) {\n var column = _u.value;\n replacements[column.propertyName] = column.databaseName;\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_u && !_u.done && (_h = _t.return)) _h.call(_t);\n }\n finally { if (e_6) throw e_6.error; }\n }\n try {\n for (var _v = (e_7 = void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(alias.metadata.columns)), _w = _v.next(); !_w.done; _w = _v.next()) {\n var column = _w.value;\n replacements[column.propertyPath] = column.databaseName;\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (_w && !_w.done && (_j = _v.return)) _j.call(_v);\n }\n finally { if (e_7) throw e_7.error; }\n }\n var replacementKeys = Object.keys(replacements);\n if (replacementKeys.length) {\n statement = statement.replace(new RegExp(\n // Avoid a lookbehind here since it's not well supported\n \"([ =(]|^.{0})\" +\n (escapeRegExp(replaceAliasNamePrefix) + \"(\" + replacementKeys.map(escapeRegExp).join(\"|\") + \")\") +\n \"(?=[ =),]|.{0}$)\", \"gm\"), function (_, pre, p) {\n return \"\" + pre + replacementAliasNamePrefix + _this.escape(replacements[p]);\n });\n }\n };\n var this_1 = this;\n try {\n for (var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.expressionMap.aliases), _c = _b.next(); !_c.done; _c = _b.next()) {\n var alias = _c.value;\n _loop_1(alias);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return statement;\n };\n QueryBuilder.prototype.createComment = function () {\n if (!this.expressionMap.comment) {\n return \"\";\n }\n // ANSI SQL 2003 support C style comments - comments that start with `/*` and end with `*/`\n // In some dialects query nesting is available - but not all. Because of this, we'll need\n // to scrub \"ending\" characters from the SQL but otherwise we can leave everything else\n // as-is and it should be valid.\n return \"/* \" + this.expressionMap.comment.replace(\"*/\", \"\") + \" */ \";\n };\n /**\n * Creates \"WHERE\" expression.\n */\n QueryBuilder.prototype.createWhereExpression = function () {\n var conditionsArray = [];\n var whereExpression = this.createWhereExpressionString();\n whereExpression.trim() && conditionsArray.push(this.createWhereExpressionString());\n if (this.expressionMap.mainAlias.hasMetadata) {\n var metadata = this.expressionMap.mainAlias.metadata;\n // Adds the global condition of \"non-deleted\" for the entity with delete date columns in select query.\n if (this.expressionMap.queryType === \"select\" && !this.expressionMap.withDeleted && metadata.deleteDateColumn) {\n var column = this.expressionMap.aliasNamePrefixingEnabled\n ? this.expressionMap.mainAlias.name + \".\" + metadata.deleteDateColumn.propertyName\n : metadata.deleteDateColumn.propertyName;\n var condition = this.replacePropertyNames(column) + \" IS NULL\";\n conditionsArray.push(condition);\n }\n if (metadata.discriminatorColumn && metadata.parentEntityMetadata) {\n var column = this.expressionMap.aliasNamePrefixingEnabled\n ? this.expressionMap.mainAlias.name + \".\" + metadata.discriminatorColumn.databaseName\n : metadata.discriminatorColumn.databaseName;\n var condition = this.replacePropertyNames(column) + \" IN (:...discriminatorColumnValues)\";\n conditionsArray.push(condition);\n }\n }\n if (this.expressionMap.extraAppendedAndWhereCondition) {\n var condition = this.replacePropertyNames(this.expressionMap.extraAppendedAndWhereCondition);\n conditionsArray.push(condition);\n }\n if (!conditionsArray.length) {\n return \"\";\n }\n else if (conditionsArray.length === 1) {\n return \" WHERE \" + conditionsArray[0];\n }\n else {\n return \" WHERE ( \" + conditionsArray.join(\" ) AND ( \") + \" )\";\n }\n };\n /**\n * Creates \"RETURNING\" / \"OUTPUT\" expression.\n */\n QueryBuilder.prototype.createReturningExpression = function () {\n var _this = this;\n var columns = this.getReturningColumns();\n var driver = this.connection.driver;\n // also add columns we must auto-return to perform entity updation\n // if user gave his own returning\n if (typeof this.expressionMap.returning !== \"string\" &&\n this.expressionMap.extraReturningColumns.length > 0 &&\n driver.isReturningSqlSupported()) {\n columns.push.apply(columns, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.expressionMap.extraReturningColumns.filter(function (column) {\n return columns.indexOf(column) === -1;\n }))));\n }\n if (columns.length) {\n var columnsExpression = columns.map(function (column) {\n var name = _this.escape(column.databaseName);\n if (driver instanceof _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_5__[\"SqlServerDriver\"]) {\n if (_this.expressionMap.queryType === \"insert\" || _this.expressionMap.queryType === \"update\" || _this.expressionMap.queryType === \"soft-delete\" || _this.expressionMap.queryType === \"restore\") {\n return \"INSERTED.\" + name;\n }\n else {\n return _this.escape(_this.getMainTableName()) + \".\" + name;\n }\n }\n else {\n return name;\n }\n }).join(\", \");\n if (driver instanceof _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_5__[\"OracleDriver\"]) {\n columnsExpression += \" INTO \" + columns.map(function (column) {\n var parameterName = \"output_\" + column.databaseName;\n _this.expressionMap.nativeParameters[parameterName] = { type: driver.columnTypeToNativeParameter(column.type), dir: driver.oracle.BIND_OUT };\n return _this.connection.driver.createParameter(parameterName, Object.keys(_this.expressionMap.nativeParameters).length);\n }).join(\", \");\n }\n if (driver instanceof _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_5__[\"SqlServerDriver\"]) {\n if (this.expressionMap.queryType === \"insert\" || this.expressionMap.queryType === \"update\") {\n columnsExpression += \" INTO @OutputTable\";\n }\n }\n return columnsExpression;\n }\n else if (typeof this.expressionMap.returning === \"string\") {\n return this.expressionMap.returning;\n }\n return \"\";\n };\n /**\n * If returning / output cause is set to array of column names,\n * then this method will return all column metadatas of those column names.\n */\n QueryBuilder.prototype.getReturningColumns = function () {\n var _this = this;\n var columns = [];\n if (Array.isArray(this.expressionMap.returning)) {\n this.expressionMap.returning.forEach(function (columnName) {\n if (_this.expressionMap.mainAlias.hasMetadata) {\n columns.push.apply(columns, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_this.expressionMap.mainAlias.metadata.findColumnsWithPropertyPath(columnName))));\n }\n });\n }\n return columns;\n };\n /**\n * Concatenates all added where expressions into one string.\n */\n QueryBuilder.prototype.createWhereExpressionString = function () {\n var _this = this;\n return this.expressionMap.wheres.map(function (where, index) {\n switch (where.type) {\n case \"and\":\n return (index > 0 ? \"AND \" : \"\") + _this.replacePropertyNames(where.condition);\n case \"or\":\n return (index > 0 ? \"OR \" : \"\") + _this.replacePropertyNames(where.condition);\n default:\n return _this.replacePropertyNames(where.condition);\n }\n }).join(\" \");\n };\n /**\n * Creates \"WHERE\" expression and variables for the given \"ids\".\n */\n QueryBuilder.prototype.createWhereIdsExpression = function (ids) {\n var _a;\n var _this = this;\n var metadata = this.expressionMap.mainAlias.metadata;\n var normalized = (Array.isArray(ids) ? ids : [ids]).map(function (id) { return metadata.ensureEntityIdMap(id); });\n // using in(...ids) for single primary key entities\n if (!metadata.hasMultiplePrimaryKeys\n && metadata.embeddeds.length === 0) {\n var primaryColumn_1 = metadata.primaryColumns[0];\n // getEntityValue will try to transform `In`, it is a bug\n // todo: remove this transformer check after #2390 is fixed\n if (!primaryColumn_1.transformer) {\n return this.computeWhereParameter((_a = {},\n _a[primaryColumn_1.propertyName] = Object(_find_options_operator_In__WEBPACK_IMPORTED_MODULE_8__[\"In\"])(normalized.map(function (id) { return primaryColumn_1.getEntityValue(id, false); })),\n _a));\n }\n }\n // create shortcuts for better readability\n var alias = this.expressionMap.aliasNamePrefixingEnabled ? this.escape(this.expressionMap.mainAlias.name) + \".\" : \"\";\n var parameterIndex = Object.keys(this.expressionMap.nativeParameters).length;\n var whereStrings = normalized.map(function (id, index) {\n var whereSubStrings = [];\n metadata.primaryColumns.forEach(function (primaryColumn, secondIndex) {\n var parameterName = \"id_\" + index + \"_\" + secondIndex;\n // whereSubStrings.push(alias + this.escape(primaryColumn.databaseName) + \"=:id_\" + index + \"_\" + secondIndex);\n whereSubStrings.push(alias + _this.escape(primaryColumn.databaseName) + \" = \" + _this.connection.driver.createParameter(parameterName, parameterIndex));\n _this.expressionMap.nativeParameters[parameterName] = primaryColumn.getEntityValue(id, true);\n parameterIndex++;\n });\n return whereSubStrings.join(\" AND \");\n });\n return whereStrings.length > 1\n ? \"(\" + whereStrings.map(function (whereString) { return \"(\" + whereString + \")\"; }).join(\" OR \") + \")\"\n : whereStrings[0];\n };\n /**\n * Computes given where argument - transforms to a where string all forms it can take.\n */\n QueryBuilder.prototype.computeWhereParameter = function (where) {\n var _this = this;\n if (typeof where === \"string\")\n return where;\n if (where instanceof _Brackets__WEBPACK_IMPORTED_MODULE_2__[\"Brackets\"]) {\n var whereQueryBuilder = this.createQueryBuilder();\n whereQueryBuilder.expressionMap.mainAlias = this.expressionMap.mainAlias;\n whereQueryBuilder.expressionMap.aliasNamePrefixingEnabled = this.expressionMap.aliasNamePrefixingEnabled;\n whereQueryBuilder.expressionMap.nativeParameters = this.expressionMap.nativeParameters;\n where.whereFactory(whereQueryBuilder);\n var whereString = whereQueryBuilder.createWhereExpressionString();\n this.setParameters(whereQueryBuilder.getParameters());\n return whereString ? \"(\" + whereString + \")\" : \"\";\n }\n else if (where instanceof Function) {\n return where(this);\n }\n else if (where instanceof Object) {\n var wheres = Array.isArray(where) ? where : [where];\n var andConditions = void 0;\n var parameterIndex_1 = Object.keys(this.expressionMap.nativeParameters).length;\n if (this.expressionMap.mainAlias.hasMetadata) {\n andConditions = wheres.map(function (where, whereIndex) {\n var propertyPaths = _metadata_EntityMetadata__WEBPACK_IMPORTED_MODULE_3__[\"EntityMetadata\"].createPropertyPath(_this.expressionMap.mainAlias.metadata, where);\n return propertyPaths.map(function (propertyPath, propertyIndex) {\n var columns = _this.expressionMap.mainAlias.metadata.findColumnsWithPropertyPath(propertyPath);\n if (!columns.length) {\n throw new _error_EntityColumnNotFound__WEBPACK_IMPORTED_MODULE_9__[\"EntityColumnNotFound\"](propertyPath);\n }\n return columns.map(function (column, columnIndex) {\n var aliasPath = _this.expressionMap.aliasNamePrefixingEnabled ? _this.alias + \".\" + propertyPath : column.propertyPath;\n var parameterValue = column.getEntityValue(where, true);\n var parameterName = \"where_\" + whereIndex + \"_\" + propertyIndex + \"_\" + columnIndex;\n var parameterBaseCount = Object.keys(_this.expressionMap.nativeParameters).filter(function (x) { return x.startsWith(parameterName); }).length;\n if (parameterValue === null) {\n return aliasPath + \" IS NULL\";\n }\n else if (parameterValue instanceof _find_options_FindOperator__WEBPACK_IMPORTED_MODULE_7__[\"FindOperator\"]) {\n var parameters_1 = [];\n if (parameterValue.useParameter) {\n if (parameterValue.objectLiteralParameters) {\n _this.setParameters(parameterValue.objectLiteralParameters);\n }\n else {\n var realParameterValues = parameterValue.multipleParameters ? parameterValue.value : [parameterValue.value];\n realParameterValues.forEach(function (realParameterValue, realParameterValueIndex) {\n _this.expressionMap.nativeParameters[parameterName + (parameterBaseCount + realParameterValueIndex)] = realParameterValue;\n parameterIndex_1++;\n parameters_1.push(_this.connection.driver.createParameter(parameterName + (parameterBaseCount + realParameterValueIndex), parameterIndex_1 - 1));\n });\n }\n }\n return _this.computeFindOperatorExpression(parameterValue, aliasPath, parameters_1);\n }\n else {\n _this.expressionMap.nativeParameters[parameterName] = parameterValue;\n parameterIndex_1++;\n var parameter = _this.connection.driver.createParameter(parameterName, parameterIndex_1 - 1);\n return aliasPath + \" = \" + parameter;\n }\n }).filter(function (expression) { return !!expression; }).join(\" AND \");\n }).filter(function (expression) { return !!expression; }).join(\" AND \");\n });\n }\n else {\n andConditions = wheres.map(function (where, whereIndex) {\n return Object.keys(where).map(function (key, parameterIndex) {\n var parameterValue = where[key];\n var aliasPath = _this.expressionMap.aliasNamePrefixingEnabled ? _this.alias + \".\" + key : key;\n if (parameterValue === null) {\n return aliasPath + \" IS NULL\";\n }\n else {\n var parameterName = \"where_\" + whereIndex + \"_\" + parameterIndex;\n _this.expressionMap.nativeParameters[parameterName] = parameterValue;\n parameterIndex++;\n return aliasPath + \" = \" + _this.connection.driver.createParameter(parameterName, parameterIndex - 1);\n }\n }).join(\" AND \");\n });\n }\n if (andConditions.length > 1)\n return andConditions.map(function (where) { return \"(\" + where + \")\"; }).join(\" OR \");\n return andConditions.join(\"\");\n }\n return \"\";\n };\n /**\n * Gets SQL needs to be inserted into final query.\n */\n QueryBuilder.prototype.computeFindOperatorExpression = function (operator, aliasPath, parameters) {\n var driver = this.connection.driver;\n switch (operator.type) {\n case \"not\":\n if (operator.child) {\n return \"NOT(\" + this.computeFindOperatorExpression(operator.child, aliasPath, parameters) + \")\";\n }\n else {\n return aliasPath + \" != \" + parameters[0];\n }\n case \"lessThan\":\n return aliasPath + \" < \" + parameters[0];\n case \"lessThanOrEqual\":\n return aliasPath + \" <= \" + parameters[0];\n case \"moreThan\":\n return aliasPath + \" > \" + parameters[0];\n case \"moreThanOrEqual\":\n return aliasPath + \" >= \" + parameters[0];\n case \"equal\":\n return aliasPath + \" = \" + parameters[0];\n case \"ilike\":\n if (driver instanceof _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_5__[\"PostgresDriver\"] || driver instanceof _driver_postgres_PostgresDriver__WEBPACK_IMPORTED_MODULE_5__[\"CockroachDriver\"]) {\n return aliasPath + \" ILIKE \" + parameters[0];\n }\n return \"UPPER(\" + aliasPath + \") LIKE UPPER(\" + parameters[0] + \")\";\n case \"like\":\n return aliasPath + \" LIKE \" + parameters[0];\n case \"between\":\n return aliasPath + \" BETWEEN \" + parameters[0] + \" AND \" + parameters[1];\n case \"in\":\n if (parameters.length === 0) {\n return \"0=1\";\n }\n return aliasPath + \" IN (\" + parameters.join(\", \") + \")\";\n case \"any\":\n return aliasPath + \" = ANY(\" + parameters[0] + \")\";\n case \"isNull\":\n return aliasPath + \" IS NULL\";\n case \"raw\":\n if (operator.getSql) {\n return operator.getSql(aliasPath);\n }\n else {\n return aliasPath + \" = \" + operator.value;\n }\n }\n throw new TypeError(\"Unsupported FindOperator \" + _find_options_FindOperator__WEBPACK_IMPORTED_MODULE_7__[\"FindOperator\"].constructor.name);\n };\n /**\n * Creates a query builder used to execute sql queries inside this query builder.\n */\n QueryBuilder.prototype.obtainQueryRunner = function () {\n return this.queryRunner || this.connection.createQueryRunner();\n };\n return QueryBuilder;\n}());\n\n\n//# sourceMappingURL=QueryBuilder.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/QueryBuilder.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/QueryBuilderUtils.js":
/*!*************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/QueryBuilderUtils.js ***!
\*************************************************************************/
/*! exports provided: QueryBuilderUtils */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QueryBuilderUtils\", function() { return QueryBuilderUtils; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Helper utility functions for QueryBuilder.\n */\nvar QueryBuilderUtils = /** @class */ (function () {\n function QueryBuilderUtils() {\n }\n /**\n * Checks if given value is a string representation of alias property,\n * e.g. \"post.category\" or \"post.id\".\n */\n QueryBuilderUtils.isAliasProperty = function (str) {\n // alias property must be a string and must have a dot separator\n if (typeof str !== \"string\" || str.indexOf(\".\") === -1)\n return false;\n // extra alias and its property relation\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(str.split(\".\"), 2), aliasName = _a[0], propertyName = _a[1]; // todo: what about relations in embedded?\n if (!aliasName || !propertyName)\n return false;\n // alias and property must be represented in a special format\n // const aliasNameRegexp = /^[a-zA-Z0-9_-]+$/;\n // if (!aliasNameRegexp.test(aliasName) || !aliasNameRegexp.test(propertyName))\n // return false;\n // make sure string is not a subquery\n if (str.indexOf(\"(\") !== -1 || str.indexOf(\")\") !== -1)\n return false;\n return true;\n };\n return QueryBuilderUtils;\n}());\n\n\n//# sourceMappingURL=QueryBuilderUtils.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/QueryBuilderUtils.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/QueryExpressionMap.js":
/*!**************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/QueryExpressionMap.js ***!
\**************************************************************************/
/*! exports provided: QueryExpressionMap */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QueryExpressionMap\", function() { return QueryExpressionMap; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Alias__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Alias */ \"./node_modules/typeorm/browser/query-builder/Alias.js\");\n/* harmony import */ var _JoinAttribute__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./JoinAttribute */ \"./node_modules/typeorm/browser/query-builder/JoinAttribute.js\");\n/* harmony import */ var _relation_id_RelationIdAttribute__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./relation-id/RelationIdAttribute */ \"./node_modules/typeorm/browser/query-builder/relation-id/RelationIdAttribute.js\");\n/* harmony import */ var _relation_count_RelationCountAttribute__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./relation-count/RelationCountAttribute */ \"./node_modules/typeorm/browser/query-builder/relation-count/RelationCountAttribute.js\");\n\n\n\n\n\n/**\n * Contains all properties of the QueryBuilder that needs to be build a final query.\n */\nvar QueryExpressionMap = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function QueryExpressionMap(connection) {\n this.connection = connection;\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n /**\n * Indicates if QueryBuilder used to select entities and not a raw results.\n */\n this.queryEntity = false;\n /**\n * All aliases (including main alias) used in the query.\n */\n this.aliases = [];\n /**\n * Represents query type. QueryBuilder is able to build SELECT, UPDATE and DELETE queries.\n */\n this.queryType = \"select\";\n /**\n * Data needs to be SELECT-ed.\n */\n this.selects = [];\n /**\n * Whether SELECT is DISTINCT.\n */\n this.selectDistinct = false;\n /**\n * SELECT DISTINCT ON query (postgres).\n */\n this.selectDistinctOn = [];\n /**\n * Extra returning columns to be added to the returning statement if driver supports it.\n */\n this.extraReturningColumns = [];\n /**\n * Optional on conflict statement used in insertion query in postgres.\n */\n this.onConflict = \"\";\n /**\n * Optional on ignore statement used in insertion query in databases.\n */\n this.onIgnore = false;\n /**\n * JOIN queries.\n */\n this.joinAttributes = [];\n /**\n * RelationId queries.\n */\n this.relationIdAttributes = [];\n /**\n * Relation count queries.\n */\n this.relationCountAttributes = [];\n /**\n * WHERE queries.\n */\n this.wheres = [];\n /**\n * HAVING queries.\n */\n this.havings = [];\n /**\n * ORDER BY queries.\n */\n this.orderBys = {};\n /**\n * GROUP BY queries.\n */\n this.groupBys = [];\n /**\n * Indicates if soft-deleted rows should be included in entity result.\n * By default the soft-deleted rows are not included.\n */\n this.withDeleted = false;\n /**\n * Parameters used to be escaped in final query.\n */\n this.parameters = {};\n /**\n * Indicates if alias, table names and column names will be ecaped by driver, or not.\n *\n * todo: rename to isQuotingDisabled, also think if it should be named \"escaping\"\n */\n this.disableEscaping = true;\n /**\n * Indicates if virtual columns should be included in entity result.\n *\n * todo: what to do with it? is it properly used? what about persistence?\n */\n this.enableRelationIdValues = false;\n /**\n * Extra where condition appended to the end of original where conditions with AND keyword.\n * Original condition will be wrapped into brackets.\n */\n this.extraAppendedAndWhereCondition = \"\";\n /**\n * Indicates if query builder creates a subquery.\n */\n this.subQuery = false;\n /**\n * Indicates if property names are prefixed with alias names during property replacement.\n * By default this is enabled, however we need this because aliases are not supported in UPDATE and DELETE queries,\n * but user can use them in WHERE expressions.\n */\n this.aliasNamePrefixingEnabled = true;\n /**\n * Indicates if query result cache is enabled or not.\n */\n this.cache = false;\n /**\n * Options that define QueryBuilder behaviour.\n */\n this.options = [];\n /**\n * List of columns where data should be inserted.\n * Used in INSERT query.\n */\n this.insertColumns = [];\n /**\n * Used if user wants to update or delete a specific entities.\n */\n this.whereEntities = [];\n /**\n * Indicates if entity must be updated after insertion / updation.\n * This may produce extra query or use RETURNING / OUTPUT statement (depend on database).\n */\n this.updateEntity = true;\n /**\n * Indicates if listeners and subscribers must be called before and after query execution.\n */\n this.callListeners = true;\n /**\n * Indicates if query must be wrapped into transaction.\n */\n this.useTransaction = false;\n /**\n * Extra parameters.\n * Used in InsertQueryBuilder to avoid default parameters mechanizm and execute high performance insertions.\n */\n this.nativeParameters = {};\n }\n Object.defineProperty(QueryExpressionMap.prototype, \"allOrderBys\", {\n // -------------------------------------------------------------------------\n // Accessors\n // -------------------------------------------------------------------------\n /**\n * Get all ORDER BY queries - if order by is specified by user then it uses them,\n * otherwise it uses default entity order by if it was set.\n */\n get: function () {\n var _this = this;\n if (!Object.keys(this.orderBys).length && this.mainAlias.hasMetadata && this.options.indexOf(\"disable-global-order\") === -1) {\n var entityOrderBy_1 = this.mainAlias.metadata.orderBy || {};\n return Object.keys(entityOrderBy_1).reduce(function (orderBy, key) {\n orderBy[_this.mainAlias.name + \".\" + key] = entityOrderBy_1[key];\n return orderBy;\n }, {});\n }\n return this.orderBys;\n },\n enumerable: false,\n configurable: true\n });\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Creates a main alias and adds it to the current expression map.\n */\n QueryExpressionMap.prototype.setMainAlias = function (alias) {\n // if main alias is already set then remove it from the array\n // if (this.mainAlias)\n // this.aliases.splice(this.aliases.indexOf(this.mainAlias));\n // set new main alias\n this.mainAlias = alias;\n return alias;\n };\n /**\n * Creates a new alias and adds it to the current expression map.\n */\n QueryExpressionMap.prototype.createAlias = function (options) {\n var aliasName = options.name;\n if (!aliasName && options.tablePath)\n aliasName = options.tablePath;\n if (!aliasName && options.target instanceof Function)\n aliasName = options.target.name;\n if (!aliasName && typeof options.target === \"string\")\n aliasName = options.target;\n var alias = new _Alias__WEBPACK_IMPORTED_MODULE_1__[\"Alias\"]();\n alias.type = options.type;\n if (aliasName)\n alias.name = aliasName;\n if (options.metadata)\n alias.metadata = options.metadata;\n if (options.target && !alias.hasMetadata)\n alias.metadata = this.connection.getMetadata(options.target);\n if (options.tablePath)\n alias.tablePath = options.tablePath;\n if (options.subQuery)\n alias.subQuery = options.subQuery;\n this.aliases.push(alias);\n return alias;\n };\n /**\n * Finds alias with the given name.\n * If alias was not found it throw an exception.\n */\n QueryExpressionMap.prototype.findAliasByName = function (aliasName) {\n var alias = this.aliases.find(function (alias) { return alias.name === aliasName; });\n if (!alias)\n throw new Error(\"\\\"\" + aliasName + \"\\\" alias was not found. Maybe you forgot to join it?\");\n return alias;\n };\n QueryExpressionMap.prototype.findColumnByAliasExpression = function (aliasExpression) {\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(aliasExpression.split(\".\"), 2), aliasName = _a[0], propertyPath = _a[1];\n var alias = this.findAliasByName(aliasName);\n return alias.metadata.findColumnWithPropertyName(propertyPath);\n };\n Object.defineProperty(QueryExpressionMap.prototype, \"relationMetadata\", {\n /**\n * Gets relation metadata of the relation this query builder works with.\n *\n * todo: add proper exceptions\n */\n get: function () {\n if (!this.mainAlias)\n throw new Error(\"Entity to work with is not specified!\"); // todo: better message\n var relationMetadata = this.mainAlias.metadata.findRelationWithPropertyPath(this.relationPropertyPath);\n if (!relationMetadata)\n throw new Error(\"Relation \" + this.relationPropertyPath + \" was not found in entity \" + this.mainAlias.name); // todo: better message\n return relationMetadata;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Copies all properties of the current QueryExpressionMap into a new one.\n * Useful when QueryBuilder needs to create a copy of itself.\n */\n QueryExpressionMap.prototype.clone = function () {\n var _this = this;\n var map = new QueryExpressionMap(this.connection);\n map.queryType = this.queryType;\n map.selects = this.selects.map(function (select) { return select; });\n map.selectDistinct = this.selectDistinct;\n map.selectDistinctOn = this.selectDistinctOn;\n this.aliases.forEach(function (alias) { return map.aliases.push(new _Alias__WEBPACK_IMPORTED_MODULE_1__[\"Alias\"](alias)); });\n map.mainAlias = this.mainAlias;\n map.valuesSet = this.valuesSet;\n map.returning = this.returning;\n map.onConflict = this.onConflict;\n map.onIgnore = this.onIgnore;\n map.onUpdate = this.onUpdate;\n map.joinAttributes = this.joinAttributes.map(function (join) { return new _JoinAttribute__WEBPACK_IMPORTED_MODULE_2__[\"JoinAttribute\"](_this.connection, _this, join); });\n map.relationIdAttributes = this.relationIdAttributes.map(function (relationId) { return new _relation_id_RelationIdAttribute__WEBPACK_IMPORTED_MODULE_3__[\"RelationIdAttribute\"](_this, relationId); });\n map.relationCountAttributes = this.relationCountAttributes.map(function (relationCount) { return new _relation_count_RelationCountAttribute__WEBPACK_IMPORTED_MODULE_4__[\"RelationCountAttribute\"](_this, relationCount); });\n map.wheres = this.wheres.map(function (where) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({}, where)); });\n map.havings = this.havings.map(function (having) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({}, having)); });\n map.orderBys = Object.assign({}, this.orderBys);\n map.groupBys = this.groupBys.map(function (groupBy) { return groupBy; });\n map.limit = this.limit;\n map.offset = this.offset;\n map.skip = this.skip;\n map.take = this.take;\n map.lockMode = this.lockMode;\n map.lockVersion = this.lockVersion;\n map.lockTables = this.lockTables;\n map.withDeleted = this.withDeleted;\n map.parameters = Object.assign({}, this.parameters);\n map.disableEscaping = this.disableEscaping;\n map.enableRelationIdValues = this.enableRelationIdValues;\n map.extraAppendedAndWhereCondition = this.extraAppendedAndWhereCondition;\n map.subQuery = this.subQuery;\n map.aliasNamePrefixingEnabled = this.aliasNamePrefixingEnabled;\n map.cache = this.cache;\n map.cacheId = this.cacheId;\n map.cacheDuration = this.cacheDuration;\n map.relationPropertyPath = this.relationPropertyPath;\n map.of = this.of;\n map.insertColumns = this.insertColumns;\n map.whereEntities = this.whereEntities;\n map.updateEntity = this.updateEntity;\n map.callListeners = this.callListeners;\n map.useTransaction = this.useTransaction;\n map.nativeParameters = Object.assign({}, this.nativeParameters);\n map.comment = this.comment;\n return map;\n };\n return QueryExpressionMap;\n}());\n\n\n//# sourceMappingURL=QueryExpressionMap.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/QueryExpressionMap.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/RelationIdLoader.js":
/*!************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/RelationIdLoader.js ***!
\************************************************************************/
/*! exports provided: RelationIdLoader */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RelationIdLoader\", function() { return RelationIdLoader; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _metadata_RelationMetadata__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../metadata/RelationMetadata */ \"./node_modules/typeorm/browser/metadata/RelationMetadata.js\");\n\n\n/**\n * Loads relation ids for the given entities.\n */\nvar RelationIdLoader = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function RelationIdLoader(connection) {\n this.connection = connection;\n }\n /**\n * Loads relation ids of the given entity or entities.\n */\n RelationIdLoader.prototype.load = function (relationOrTarget, relationNameOrEntities, entitiesOrRelatedEntities, maybeRelatedEntities) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var relation, entities, relatedEntities, entityMetadata;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n if (relationOrTarget instanceof _metadata_RelationMetadata__WEBPACK_IMPORTED_MODULE_1__[\"RelationMetadata\"]) {\n relation = relationOrTarget;\n entities = Array.isArray(relationNameOrEntities) ? relationNameOrEntities : [relationNameOrEntities];\n relatedEntities = Array.isArray(entitiesOrRelatedEntities) ? entitiesOrRelatedEntities : (entitiesOrRelatedEntities ? [entitiesOrRelatedEntities] : undefined);\n }\n else {\n entityMetadata = this.connection.getMetadata(relationOrTarget);\n relation = entityMetadata.findRelationWithPropertyPath(relationNameOrEntities);\n if (!relation)\n throw new Error(\"Relation \\\"\" + relation + \"\\\" was not found in \\\"\" + entityMetadata.name + \"\\\".\");\n entities = Array.isArray(entitiesOrRelatedEntities) ? entitiesOrRelatedEntities : [entitiesOrRelatedEntities];\n relatedEntities = Array.isArray(maybeRelatedEntities) ? maybeRelatedEntities : (maybeRelatedEntities ? [maybeRelatedEntities] : undefined);\n }\n // load relation ids depend of relation type\n if (relation.isManyToMany) {\n return [2 /*return*/, this.loadForManyToMany(relation, entities, relatedEntities)];\n }\n else if (relation.isManyToOne || relation.isOneToOneOwner) {\n return [2 /*return*/, this.loadForManyToOneAndOneToOneOwner(relation, entities, relatedEntities)];\n }\n else { // if (relation.isOneToMany || relation.isOneToOneNotOwner) {\n return [2 /*return*/, this.loadForOneToManyAndOneToOneNotOwner(relation, entities, relatedEntities)];\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * Loads relation ids of the given entities and groups them into the object with parent and children.\n *\n * todo: extract this method?\n */\n RelationIdLoader.prototype.loadManyToManyRelationIdsAndGroup = function (relation, entitiesOrEntities, relatedEntityOrEntities) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var isMany, entities, relationIds, relatedEntities, columns, inverseColumns;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n isMany = relation.isManyToMany || relation.isOneToMany;\n entities = Array.isArray(entitiesOrEntities) ? entitiesOrEntities : [entitiesOrEntities];\n if (!!relatedEntityOrEntities) return [3 /*break*/, 2];\n return [4 /*yield*/, this.connection.relationLoader.load(relation, entitiesOrEntities)];\n case 1:\n relatedEntityOrEntities = _a.sent();\n if (!relatedEntityOrEntities.length)\n return [2 /*return*/, entities.map(function (entity) { return ({ entity: entity, related: isMany ? [] : undefined }); })];\n _a.label = 2;\n case 2: return [4 /*yield*/, this.load(relation, entitiesOrEntities, relatedEntityOrEntities)];\n case 3:\n relationIds = _a.sent();\n relatedEntities = Array.isArray(relatedEntityOrEntities) ? relatedEntityOrEntities : [relatedEntityOrEntities];\n if (relation.isManyToManyOwner) {\n columns = relation.junctionEntityMetadata.inverseColumns.map(function (column) { return column.referencedColumn; });\n inverseColumns = relation.junctionEntityMetadata.ownerColumns.map(function (column) { return column.referencedColumn; });\n }\n else if (relation.isManyToManyNotOwner) {\n columns = relation.junctionEntityMetadata.ownerColumns.map(function (column) { return column.referencedColumn; });\n inverseColumns = relation.junctionEntityMetadata.inverseColumns.map(function (column) { return column.referencedColumn; });\n }\n else if (relation.isManyToOne || relation.isOneToOneOwner) {\n columns = relation.joinColumns.map(function (column) { return column.referencedColumn; });\n inverseColumns = relation.entityMetadata.primaryColumns;\n }\n else if (relation.isOneToMany || relation.isOneToOneNotOwner) {\n columns = relation.inverseRelation.entityMetadata.primaryColumns;\n inverseColumns = relation.inverseRelation.joinColumns.map(function (column) { return column.referencedColumn; });\n }\n else {\n }\n return [2 /*return*/, entities.map(function (entity) {\n var group = { entity: entity, related: isMany ? [] : undefined };\n relationIds.forEach(function (relationId) {\n var entityMatched = inverseColumns.every(function (column) {\n return column.getEntityValue(entity) === relationId[column.entityMetadata.name + \"_\" + column.propertyPath.replace(\".\", \"_\")];\n });\n if (entityMatched) {\n relatedEntities.forEach(function (relatedEntity) {\n var relatedEntityMatched = columns.every(function (column) {\n return column.getEntityValue(relatedEntity) === relationId[column.entityMetadata.name + \"_\" + relation.propertyPath.replace(\".\", \"_\") + \"_\" + column.propertyPath.replace(\".\", \"_\")];\n });\n if (relatedEntityMatched) {\n if (isMany) {\n group.related.push(relatedEntity);\n }\n else {\n group.related = relatedEntity;\n }\n }\n });\n }\n });\n return group;\n })];\n }\n });\n });\n };\n /**\n * Loads relation ids of the given entities and maps them into the given entity property.\n\n async loadManyToManyRelationIdsAndMap(\n relation: RelationMetadata,\n entityOrEntities: ObjectLiteral|ObjectLiteral[],\n mapToEntityOrEntities: ObjectLiteral|ObjectLiteral[],\n propertyName: string\n ): Promise<void> {\n\n const relationIds = await this.loadManyToManyRelationIds(relation, entityOrEntities, mapToEntityOrEntities);\n const mapToEntities = mapToEntityOrEntities instanceof Array ? mapToEntityOrEntities : [mapToEntityOrEntities];\n const junctionMetadata = relation.junctionEntityMetadata!;\n const mainAlias = junctionMetadata.name;\n const columns = relation.isOwning ? junctionMetadata.inverseColumns : junctionMetadata.ownerColumns;\n const inverseColumns = relation.isOwning ? junctionMetadata.ownerColumns : junctionMetadata.inverseColumns;\n\n mapToEntities.forEach(mapToEntity => {\n mapToEntity[propertyName] = [];\n relationIds.forEach(relationId => {\n const match = inverseColumns.every(column => {\n return column.referencedColumn!.getEntityValue(mapToEntity) === relationId[mainAlias + \"_\" + column.propertyName];\n });\n if (match) {\n if (columns.length === 1) {\n mapToEntity[propertyName].push(relationId[mainAlias + \"_\" + columns[0].propertyName]);\n\n } else {\n const value = {};\n columns.forEach(column => {\n column.referencedColumn!.setEntityValue(value, relationId[mainAlias + \"_\" + column.propertyName]);\n });\n mapToEntity[propertyName].push(value);\n }\n }\n });\n });\n }*/\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Loads relation ids for the many-to-many relation.\n */\n RelationIdLoader.prototype.loadForManyToMany = function (relation, entities, relatedEntities) {\n var junctionMetadata = relation.junctionEntityMetadata;\n var mainAlias = junctionMetadata.name;\n var columns = relation.isOwning ? junctionMetadata.ownerColumns : junctionMetadata.inverseColumns;\n var inverseColumns = relation.isOwning ? junctionMetadata.inverseColumns : junctionMetadata.ownerColumns;\n var qb = this.connection.createQueryBuilder();\n // select all columns from junction table\n junctionMetadata.ownerColumns.forEach(function (column) {\n var columnName = column.referencedColumn.entityMetadata.name + \"_\" + column.referencedColumn.propertyPath.replace(\".\", \"_\");\n qb.addSelect(mainAlias + \".\" + column.propertyPath, columnName);\n });\n junctionMetadata.inverseColumns.forEach(function (column) {\n var columnName = column.referencedColumn.entityMetadata.name + \"_\" + relation.propertyPath.replace(\".\", \"_\") + \"_\" + column.referencedColumn.propertyPath.replace(\".\", \"_\");\n qb.addSelect(mainAlias + \".\" + column.propertyPath, columnName);\n });\n // add conditions for the given entities\n var condition1 = \"\";\n if (columns.length === 1) {\n qb.setParameter(\"values1\", entities.map(function (entity) { return columns[0].referencedColumn.getEntityValue(entity); }));\n condition1 = mainAlias + \".\" + columns[0].propertyPath + \" IN (:...values1)\"; // todo: use ANY for postgres\n }\n else {\n condition1 = \"(\" + entities.map(function (entity, entityIndex) {\n return columns.map(function (column) {\n var paramName = \"entity1_\" + entityIndex + \"_\" + column.propertyName;\n qb.setParameter(paramName, column.referencedColumn.getEntityValue(entity));\n return mainAlias + \".\" + column.propertyPath + \" = :\" + paramName;\n }).join(\" AND \");\n }).map(function (condition) { return \"(\" + condition + \")\"; }).join(\" OR \") + \")\";\n }\n // add conditions for the given inverse entities\n var condition2 = \"\";\n if (relatedEntities) {\n if (inverseColumns.length === 1) {\n qb.setParameter(\"values2\", relatedEntities.map(function (entity) { return inverseColumns[0].referencedColumn.getEntityValue(entity); }));\n condition2 = mainAlias + \".\" + inverseColumns[0].propertyPath + \" IN (:...values2)\"; // todo: use ANY for postgres\n }\n else {\n condition2 = \"(\" + relatedEntities.map(function (entity, entityIndex) {\n return inverseColumns.map(function (column) {\n var paramName = \"entity2_\" + entityIndex + \"_\" + column.propertyName;\n qb.setParameter(paramName, column.referencedColumn.getEntityValue(entity));\n return mainAlias + \".\" + column.propertyPath + \" = :\" + paramName;\n }).join(\" AND \");\n }).map(function (condition) { return \"(\" + condition + \")\"; }).join(\" OR \") + \")\";\n }\n }\n // execute query\n return qb\n .from(junctionMetadata.target, mainAlias)\n .where(condition1 + (condition2 ? \" AND \" + condition2 : \"\"))\n .getRawMany();\n };\n /**\n * Loads relation ids for the many-to-one and one-to-one owner relations.\n */\n RelationIdLoader.prototype.loadForManyToOneAndOneToOneOwner = function (relation, entities, relatedEntities) {\n var mainAlias = relation.entityMetadata.targetName;\n // select all columns we need\n var qb = this.connection.createQueryBuilder();\n relation.entityMetadata.primaryColumns.forEach(function (primaryColumn) {\n var columnName = primaryColumn.entityMetadata.name + \"_\" + primaryColumn.propertyPath.replace(\".\", \"_\");\n qb.addSelect(mainAlias + \".\" + primaryColumn.propertyPath, columnName);\n });\n relation.joinColumns.forEach(function (column) {\n var columnName = column.referencedColumn.entityMetadata.name + \"_\" + relation.propertyPath.replace(\".\", \"_\") + \"_\" + column.referencedColumn.propertyPath.replace(\".\", \"_\");\n qb.addSelect(mainAlias + \".\" + column.propertyPath, columnName);\n });\n // add condition for entities\n var condition = \"\";\n if (relation.entityMetadata.primaryColumns.length === 1) {\n qb.setParameter(\"values\", entities.map(function (entity) { return relation.entityMetadata.primaryColumns[0].getEntityValue(entity); }));\n condition = mainAlias + \".\" + relation.entityMetadata.primaryColumns[0].propertyPath + \" IN (:...values)\";\n }\n else {\n condition = entities.map(function (entity, entityIndex) {\n return relation.entityMetadata.primaryColumns.map(function (column, columnIndex) {\n var paramName = \"entity\" + entityIndex + \"_\" + columnIndex;\n qb.setParameter(paramName, column.getEntityValue(entity));\n return mainAlias + \".\" + column.propertyPath + \" = :\" + paramName;\n }).join(\" AND \");\n }).map(function (condition) { return \"(\" + condition + \")\"; }).join(\" OR \");\n }\n // execute query\n return qb.from(relation.entityMetadata.target, mainAlias)\n .where(condition)\n .getRawMany();\n };\n /**\n * Loads relation ids for the one-to-many and one-to-one not owner relations.\n */\n RelationIdLoader.prototype.loadForOneToManyAndOneToOneNotOwner = function (relation, entities, relatedEntities) {\n relation = relation.inverseRelation;\n var mainAlias = relation.entityMetadata.targetName;\n // select all columns we need\n var qb = this.connection.createQueryBuilder();\n relation.entityMetadata.primaryColumns.forEach(function (primaryColumn) {\n var columnName = primaryColumn.entityMetadata.name + \"_\" + relation.inverseRelation.propertyPath.replace(\".\", \"_\") + \"_\" + primaryColumn.propertyPath.replace(\".\", \"_\");\n qb.addSelect(mainAlias + \".\" + primaryColumn.propertyPath, columnName);\n });\n relation.joinColumns.forEach(function (column) {\n var columnName = column.referencedColumn.entityMetadata.name + \"_\" + column.referencedColumn.propertyPath.replace(\".\", \"_\");\n qb.addSelect(mainAlias + \".\" + column.propertyPath, columnName);\n });\n // add condition for entities\n var condition = \"\";\n if (relation.joinColumns.length === 1) {\n qb.setParameter(\"values\", entities.map(function (entity) { return relation.joinColumns[0].referencedColumn.getEntityValue(entity); }));\n condition = mainAlias + \".\" + relation.joinColumns[0].propertyPath + \" IN (:...values)\";\n }\n else {\n condition = entities.map(function (entity, entityIndex) {\n return relation.joinColumns.map(function (joinColumn, joinColumnIndex) {\n var paramName = \"entity\" + entityIndex + \"_\" + joinColumnIndex;\n qb.setParameter(paramName, joinColumn.referencedColumn.getEntityValue(entity));\n return mainAlias + \".\" + joinColumn.propertyPath + \" = :\" + paramName;\n }).join(\" AND \");\n }).map(function (condition) { return \"(\" + condition + \")\"; }).join(\" OR \");\n }\n // execute query\n return qb.from(relation.entityMetadata.target, mainAlias)\n .where(condition)\n .getRawMany();\n };\n return RelationIdLoader;\n}());\n\n\n//# sourceMappingURL=RelationIdLoader.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/RelationIdLoader.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/RelationLoader.js":
/*!**********************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/RelationLoader.js ***!
\**********************************************************************/
/*! exports provided: RelationLoader */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RelationLoader\", function() { return RelationLoader; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Wraps entities and creates getters/setters for their relations\n * to be able to lazily load relations when accessing these relations.\n */\nvar RelationLoader = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function RelationLoader(connection) {\n this.connection = connection;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Loads relation data for the given entity and its relation.\n */\n RelationLoader.prototype.load = function (relation, entityOrEntities, queryRunner) {\n if (queryRunner && queryRunner.isReleased)\n queryRunner = undefined; // get new one if already closed\n if (relation.isManyToOne || relation.isOneToOneOwner) {\n return this.loadManyToOneOrOneToOneOwner(relation, entityOrEntities, queryRunner);\n }\n else if (relation.isOneToMany || relation.isOneToOneNotOwner) {\n return this.loadOneToManyOrOneToOneNotOwner(relation, entityOrEntities, queryRunner);\n }\n else if (relation.isManyToManyOwner) {\n return this.loadManyToManyOwner(relation, entityOrEntities, queryRunner);\n }\n else { // many-to-many non owner\n return this.loadManyToManyNotOwner(relation, entityOrEntities, queryRunner);\n }\n };\n /**\n * Loads data for many-to-one and one-to-one owner relations.\n *\n * (ow) post.category<=>category.post\n * loaded: category from post\n * example: SELECT category.id AS category_id, category.name AS category_name FROM category category\n * INNER JOIN post Post ON Post.category=category.id WHERE Post.id=1\n */\n RelationLoader.prototype.loadManyToOneOrOneToOneOwner = function (relation, entityOrEntities, queryRunner) {\n var entities = Array.isArray(entityOrEntities) ? entityOrEntities : [entityOrEntities];\n var columns = relation.entityMetadata.primaryColumns;\n var joinColumns = relation.isOwning ? relation.joinColumns : relation.inverseRelation.joinColumns;\n var conditions = joinColumns.map(function (joinColumn) {\n return relation.entityMetadata.name + \".\" + joinColumn.propertyName + \" = \" + relation.propertyName + \".\" + joinColumn.referencedColumn.propertyName;\n }).join(\" AND \");\n var joinAliasName = relation.entityMetadata.name;\n var qb = this.connection\n .createQueryBuilder(queryRunner)\n .select(relation.propertyName) // category\n .from(relation.type, relation.propertyName) // Category, category\n .innerJoin(relation.entityMetadata.target, joinAliasName, conditions);\n if (columns.length === 1) {\n qb.where(joinAliasName + \".\" + columns[0].propertyPath + \" IN (:...\" + (joinAliasName + \"_\" + columns[0].propertyName) + \")\");\n qb.setParameter(joinAliasName + \"_\" + columns[0].propertyName, entities.map(function (entity) { return columns[0].getEntityValue(entity); }));\n }\n else {\n var condition = entities.map(function (entity, entityIndex) {\n return columns.map(function (column, columnIndex) {\n var paramName = joinAliasName + \"_entity_\" + entityIndex + \"_\" + columnIndex;\n qb.setParameter(paramName, column.getEntityValue(entity));\n return joinAliasName + \".\" + column.propertyPath + \" = :\" + paramName;\n }).join(\" AND \");\n }).map(function (condition) { return \"(\" + condition + \")\"; }).join(\" OR \");\n qb.where(condition);\n }\n return qb.getMany();\n // return qb.getOne(); todo: fix all usages\n };\n /**\n * Loads data for one-to-many and one-to-one not owner relations.\n *\n * SELECT post\n * FROM post post\n * WHERE post.[joinColumn.name] = entity[joinColumn.referencedColumn]\n */\n RelationLoader.prototype.loadOneToManyOrOneToOneNotOwner = function (relation, entityOrEntities, queryRunner) {\n var entities = Array.isArray(entityOrEntities) ? entityOrEntities : [entityOrEntities];\n var aliasName = relation.propertyName;\n var columns = relation.inverseRelation.joinColumns;\n var qb = this.connection\n .createQueryBuilder(queryRunner)\n .select(aliasName)\n .from(relation.inverseRelation.entityMetadata.target, aliasName);\n if (columns.length === 1) {\n qb.where(aliasName + \".\" + columns[0].propertyPath + \" IN (:...\" + (aliasName + \"_\" + columns[0].propertyName) + \")\");\n qb.setParameter(aliasName + \"_\" + columns[0].propertyName, entities.map(function (entity) { return columns[0].referencedColumn.getEntityValue(entity); }));\n }\n else {\n var condition = entities.map(function (entity, entityIndex) {\n return columns.map(function (column, columnIndex) {\n var paramName = aliasName + \"_entity_\" + entityIndex + \"_\" + columnIndex;\n qb.setParameter(paramName, column.referencedColumn.getEntityValue(entity));\n return aliasName + \".\" + column.propertyPath + \" = :\" + paramName;\n }).join(\" AND \");\n }).map(function (condition) { return \"(\" + condition + \")\"; }).join(\" OR \");\n qb.where(condition);\n }\n return qb.getMany();\n // return relation.isOneToMany ? qb.getMany() : qb.getOne(); todo: fix all usages\n };\n /**\n * Loads data for many-to-many owner relations.\n *\n * SELECT category\n * FROM category category\n * INNER JOIN post_categories post_categories\n * ON post_categories.postId = :postId\n * AND post_categories.categoryId = category.id\n */\n RelationLoader.prototype.loadManyToManyOwner = function (relation, entityOrEntities, queryRunner) {\n var entities = Array.isArray(entityOrEntities) ? entityOrEntities : [entityOrEntities];\n var mainAlias = relation.propertyName;\n var joinAlias = relation.junctionEntityMetadata.tableName;\n var joinColumnConditions = relation.joinColumns.map(function (joinColumn) {\n return joinAlias + \".\" + joinColumn.propertyName + \" IN (:...\" + joinColumn.propertyName + \")\";\n });\n var inverseJoinColumnConditions = relation.inverseJoinColumns.map(function (inverseJoinColumn) {\n return joinAlias + \".\" + inverseJoinColumn.propertyName + \"=\" + mainAlias + \".\" + inverseJoinColumn.referencedColumn.propertyName;\n });\n var parameters = relation.joinColumns.reduce(function (parameters, joinColumn) {\n parameters[joinColumn.propertyName] = entities.map(function (entity) { return joinColumn.referencedColumn.getEntityValue(entity); });\n return parameters;\n }, {});\n return this.connection\n .createQueryBuilder(queryRunner)\n .select(mainAlias)\n .from(relation.type, mainAlias)\n .innerJoin(joinAlias, joinAlias, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(joinColumnConditions)), Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(inverseJoinColumnConditions)).join(\" AND \"))\n .setParameters(parameters)\n .getMany();\n };\n /**\n * Loads data for many-to-many not owner relations.\n *\n * SELECT post\n * FROM post post\n * INNER JOIN post_categories post_categories\n * ON post_categories.postId = post.id\n * AND post_categories.categoryId = post_categories.categoryId\n */\n RelationLoader.prototype.loadManyToManyNotOwner = function (relation, entityOrEntities, queryRunner) {\n var entities = Array.isArray(entityOrEntities) ? entityOrEntities : [entityOrEntities];\n var mainAlias = relation.propertyName;\n var joinAlias = relation.junctionEntityMetadata.tableName;\n var joinColumnConditions = relation.inverseRelation.joinColumns.map(function (joinColumn) {\n return joinAlias + \".\" + joinColumn.propertyName + \" = \" + mainAlias + \".\" + joinColumn.referencedColumn.propertyName;\n });\n var inverseJoinColumnConditions = relation.inverseRelation.inverseJoinColumns.map(function (inverseJoinColumn) {\n return joinAlias + \".\" + inverseJoinColumn.propertyName + \" IN (:...\" + inverseJoinColumn.propertyName + \")\";\n });\n var parameters = relation.inverseRelation.inverseJoinColumns.reduce(function (parameters, joinColumn) {\n parameters[joinColumn.propertyName] = entities.map(function (entity) { return joinColumn.referencedColumn.getEntityValue(entity); });\n return parameters;\n }, {});\n return this.connection\n .createQueryBuilder(queryRunner)\n .select(mainAlias)\n .from(relation.type, mainAlias)\n .innerJoin(joinAlias, joinAlias, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(joinColumnConditions)), Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(inverseJoinColumnConditions)).join(\" AND \"))\n .setParameters(parameters)\n .getMany();\n };\n /**\n * Wraps given entity and creates getters/setters for its given relation\n * to be able to lazily load data when accessing this relation.\n */\n RelationLoader.prototype.enableLazyLoad = function (relation, entity, queryRunner) {\n var relationLoader = this;\n var dataIndex = \"__\" + relation.propertyName + \"__\"; // in what property of the entity loaded data will be stored\n var promiseIndex = \"__promise_\" + relation.propertyName + \"__\"; // in what property of the entity loading promise will be stored\n var resolveIndex = \"__has_\" + relation.propertyName + \"__\"; // indicates if relation data already was loaded or not, we need this flag if loaded data is empty\n var setData = function (entity, value) {\n entity[dataIndex] = value;\n entity[resolveIndex] = true;\n delete entity[promiseIndex];\n return value;\n };\n var setPromise = function (entity, value) {\n delete entity[resolveIndex];\n delete entity[dataIndex];\n entity[promiseIndex] = value;\n value.then(\n // ensure different value is not assigned yet\n function (result) { return entity[promiseIndex] === value ? setData(entity, result) : result; });\n return value;\n };\n Object.defineProperty(entity, relation.propertyName, {\n get: function () {\n if (this[resolveIndex] === true || this[dataIndex] !== undefined) // if related data already was loaded then simply return it\n return Promise.resolve(this[dataIndex]);\n if (this[promiseIndex]) // if related data is loading then return a promise relationLoader loads it\n return this[promiseIndex];\n // nothing is loaded yet, load relation data and save it in the model once they are loaded\n var loader = relationLoader.load(relation, this, queryRunner).then(function (result) { return relation.isOneToOne || relation.isManyToOne ? (result.length === 0 ? null : result[0]) : result; });\n return setPromise(this, loader);\n },\n set: function (value) {\n if (value instanceof Promise) { // if set data is a promise then wait for its resolve and save in the object\n setPromise(this, value);\n }\n else { // if its direct data set (non promise, probably not safe-typed)\n setData(this, value);\n }\n },\n configurable: true\n });\n };\n return RelationLoader;\n}());\n\n\n//# sourceMappingURL=RelationLoader.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/RelationLoader.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/RelationQueryBuilder.js":
/*!****************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/RelationQueryBuilder.js ***!
\****************************************************************************/
/*! exports provided: RelationQueryBuilder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RelationQueryBuilder\", function() { return RelationQueryBuilder; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _QueryBuilder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./QueryBuilder */ \"./node_modules/typeorm/browser/query-builder/QueryBuilder.js\");\n/* harmony import */ var _RelationUpdater__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./RelationUpdater */ \"./node_modules/typeorm/browser/query-builder/RelationUpdater.js\");\n/* harmony import */ var _RelationRemover__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./RelationRemover */ \"./node_modules/typeorm/browser/query-builder/RelationRemover.js\");\n\n\n\n\n/**\n * Allows to work with entity relations and perform specific operations with those relations.\n *\n * todo: add transactions everywhere\n */\nvar RelationQueryBuilder = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RelationQueryBuilder, _super);\n function RelationQueryBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // -------------------------------------------------------------------------\n // Public Implemented Methods\n // -------------------------------------------------------------------------\n /**\n * Gets generated sql query without parameters being replaced.\n */\n RelationQueryBuilder.prototype.getQuery = function () {\n return \"\";\n };\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Sets entity (target) which relations will be updated.\n */\n RelationQueryBuilder.prototype.of = function (entity) {\n this.expressionMap.of = entity;\n return this;\n };\n /**\n * Sets entity relation's value.\n * Value can be entity, entity id or entity id map (if entity has composite ids).\n * Works only for many-to-one and one-to-one relations.\n * For many-to-many and one-to-many relations use #add and #remove methods instead.\n */\n RelationQueryBuilder.prototype.set = function (value) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var relation, updater;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n relation = this.expressionMap.relationMetadata;\n if (!this.expressionMap.of) // todo: move this check before relation query builder creation?\n throw new Error(\"Entity whose relation needs to be set is not set. Use .of method to define whose relation you want to set.\");\n if (relation.isManyToMany || relation.isOneToMany)\n throw new Error(\"Set operation is only supported for many-to-one and one-to-one relations. \" +\n (\"However given \\\"\" + relation.propertyPath + \"\\\" has \" + relation.relationType + \" relation. \") +\n \"Use .add() method instead.\");\n // if there are multiple join columns then user must send id map as \"value\" argument. check if he really did it\n if (relation.joinColumns &&\n relation.joinColumns.length > 1 &&\n (!(value instanceof Object) || Object.keys(value).length < relation.joinColumns.length))\n throw new Error(\"Value to be set into the relation must be a map of relation ids, for example: .set({ firstName: \\\"...\\\", lastName: \\\"...\\\" })\");\n updater = new _RelationUpdater__WEBPACK_IMPORTED_MODULE_2__[\"RelationUpdater\"](this, this.expressionMap);\n return [2 /*return*/, updater.update(value)];\n });\n });\n };\n /**\n * Adds (binds) given value to entity relation.\n * Value can be entity, entity id or entity id map (if entity has composite ids).\n * Value also can be array of entities, array of entity ids or array of entity id maps (if entity has composite ids).\n * Works only for many-to-many and one-to-many relations.\n * For many-to-one and one-to-one use #set method instead.\n */\n RelationQueryBuilder.prototype.add = function (value) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var relation, updater;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n if (Array.isArray(value) && value.length === 0)\n return [2 /*return*/];\n relation = this.expressionMap.relationMetadata;\n if (!this.expressionMap.of) // todo: move this check before relation query builder creation?\n throw new Error(\"Entity whose relation needs to be set is not set. Use .of method to define whose relation you want to set.\");\n if (relation.isManyToOne || relation.isOneToOne)\n throw new Error(\"Add operation is only supported for many-to-many and one-to-many relations. \" +\n (\"However given \\\"\" + relation.propertyPath + \"\\\" has \" + relation.relationType + \" relation. \") +\n \"Use .set() method instead.\");\n // if there are multiple join columns then user must send id map as \"value\" argument. check if he really did it\n if (relation.joinColumns &&\n relation.joinColumns.length > 1 &&\n (!(value instanceof Object) || Object.keys(value).length < relation.joinColumns.length))\n throw new Error(\"Value to be set into the relation must be a map of relation ids, for example: .set({ firstName: \\\"...\\\", lastName: \\\"...\\\" })\");\n updater = new _RelationUpdater__WEBPACK_IMPORTED_MODULE_2__[\"RelationUpdater\"](this, this.expressionMap);\n return [2 /*return*/, updater.update(value)];\n });\n });\n };\n /**\n * Removes (unbinds) given value from entity relation.\n * Value can be entity, entity id or entity id map (if entity has composite ids).\n * Value also can be array of entities, array of entity ids or array of entity id maps (if entity has composite ids).\n * Works only for many-to-many and one-to-many relations.\n * For many-to-one and one-to-one use #set method instead.\n */\n RelationQueryBuilder.prototype.remove = function (value) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var relation, remover;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n if (Array.isArray(value) && value.length === 0)\n return [2 /*return*/];\n relation = this.expressionMap.relationMetadata;\n if (!this.expressionMap.of) // todo: move this check before relation query builder creation?\n throw new Error(\"Entity whose relation needs to be set is not set. Use .of method to define whose relation you want to set.\");\n if (relation.isManyToOne || relation.isOneToOne)\n throw new Error(\"Add operation is only supported for many-to-many and one-to-many relations. \" +\n (\"However given \\\"\" + relation.propertyPath + \"\\\" has \" + relation.relationType + \" relation. \") +\n \"Use .set(null) method instead.\");\n remover = new _RelationRemover__WEBPACK_IMPORTED_MODULE_3__[\"RelationRemover\"](this, this.expressionMap);\n return [2 /*return*/, remover.remove(value)];\n });\n });\n };\n /**\n * Adds (binds) and removes (unbinds) given values to/from entity relation.\n * Value can be entity, entity id or entity id map (if entity has composite ids).\n * Value also can be array of entities, array of entity ids or array of entity id maps (if entity has composite ids).\n * Works only for many-to-many and one-to-many relations.\n * For many-to-one and one-to-one use #set method instead.\n */\n RelationQueryBuilder.prototype.addAndRemove = function (added, removed) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.remove(removed)];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.add(added)];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Gets entity's relation id.\n async getId(): Promise<any> {\n\n }*/\n /**\n * Gets entity's relation ids.\n async getIds(): Promise<any[]> {\n return [];\n }*/\n /**\n * Loads a single entity (relational) from the relation.\n * You can also provide id of relational entity to filter by.\n */\n RelationQueryBuilder.prototype.loadOne = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, this.loadMany().then(function (results) { return results[0]; })];\n });\n });\n };\n /**\n * Loads many entities (relational) from the relation.\n * You can also provide ids of relational entities to filter by.\n */\n RelationQueryBuilder.prototype.loadMany = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var of, metadata;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n of = this.expressionMap.of;\n if (!(of instanceof Object)) {\n metadata = this.expressionMap.mainAlias.metadata;\n if (metadata.hasMultiplePrimaryKeys)\n throw new Error(\"Cannot load entity because only one primary key was specified, however entity contains multiple primary keys\");\n of = metadata.primaryColumns[0].createValueMap(of);\n }\n return [2 /*return*/, this.connection.relationLoader.load(this.expressionMap.relationMetadata, of, this.queryRunner)];\n });\n });\n };\n return RelationQueryBuilder;\n}(_QueryBuilder__WEBPACK_IMPORTED_MODULE_1__[\"QueryBuilder\"]));\n\n\n//# sourceMappingURL=RelationQueryBuilder.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/RelationQueryBuilder.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/RelationRemover.js":
/*!***********************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/RelationRemover.js ***!
\***********************************************************************/
/*! exports provided: RelationRemover */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RelationRemover\", function() { return RelationRemover; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Allows to work with entity relations and perform specific operations with those relations.\n *\n * todo: add transactions everywhere\n */\nvar RelationRemover = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function RelationRemover(queryBuilder, expressionMap) {\n this.queryBuilder = queryBuilder;\n this.expressionMap = expressionMap;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Performs remove operation on a relation.\n */\n RelationRemover.prototype.remove = function (value) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var relation, ofs, values_1, updateSet_1, parameters_1, conditions_1, condition, junctionMetadata_1, ofs, values, firstColumnValues, secondColumnValues_1, parameters_2, conditions_2, condition;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n relation = this.expressionMap.relationMetadata;\n if (!relation.isOneToMany) return [3 /*break*/, 2];\n ofs = Array.isArray(this.expressionMap.of) ? this.expressionMap.of : [this.expressionMap.of];\n values_1 = Array.isArray(value) ? value : [value];\n updateSet_1 = {};\n relation.inverseRelation.joinColumns.forEach(function (column) {\n updateSet_1[column.propertyName] = null;\n });\n parameters_1 = {};\n conditions_1 = [];\n ofs.forEach(function (of, ofIndex) {\n conditions_1.push.apply(conditions_1, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(values_1.map(function (value, valueIndex) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(relation.inverseRelation.joinColumns.map(function (column, columnIndex) {\n var parameterName = \"joinColumn_\" + ofIndex + \"_\" + valueIndex + \"_\" + columnIndex;\n parameters_1[parameterName] = of instanceof Object ? column.referencedColumn.getEntityValue(of) : of;\n return column.propertyPath + \" = :\" + parameterName;\n }))), Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(relation.inverseRelation.entityMetadata.primaryColumns.map(function (column, columnIndex) {\n var parameterName = \"primaryColumn_\" + valueIndex + \"_\" + valueIndex + \"_\" + columnIndex;\n parameters_1[parameterName] = value instanceof Object ? column.getEntityValue(value) : value;\n return column.propertyPath + \" = :\" + parameterName;\n }))).join(\" AND \");\n }))));\n });\n condition = conditions_1.map(function (str) { return \"(\" + str + \")\"; }).join(\" OR \");\n if (!condition)\n return [2 /*return*/];\n return [4 /*yield*/, this.queryBuilder\n .createQueryBuilder()\n .update(relation.inverseEntityMetadata.target)\n .set(updateSet_1)\n .where(condition)\n .setParameters(parameters_1)\n .execute()];\n case 1:\n _a.sent();\n return [3 /*break*/, 4];\n case 2:\n junctionMetadata_1 = relation.junctionEntityMetadata;\n ofs = Array.isArray(this.expressionMap.of) ? this.expressionMap.of : [this.expressionMap.of];\n values = Array.isArray(value) ? value : [value];\n firstColumnValues = relation.isManyToManyOwner ? ofs : values;\n secondColumnValues_1 = relation.isManyToManyOwner ? values : ofs;\n parameters_2 = {};\n conditions_2 = [];\n firstColumnValues.forEach(function (firstColumnVal, firstColumnValIndex) {\n conditions_2.push.apply(conditions_2, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(secondColumnValues_1.map(function (secondColumnVal, secondColumnValIndex) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(junctionMetadata_1.ownerColumns.map(function (column, columnIndex) {\n var parameterName = \"firstValue_\" + firstColumnValIndex + \"_\" + secondColumnValIndex + \"_\" + columnIndex;\n parameters_2[parameterName] = firstColumnVal instanceof Object ? column.referencedColumn.getEntityValue(firstColumnVal) : firstColumnVal;\n return column.databaseName + \" = :\" + parameterName;\n }))), Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(junctionMetadata_1.inverseColumns.map(function (column, columnIndex) {\n var parameterName = \"secondValue_\" + firstColumnValIndex + \"_\" + secondColumnValIndex + \"_\" + columnIndex;\n parameters_2[parameterName] = secondColumnVal instanceof Object ? column.referencedColumn.getEntityValue(secondColumnVal) : secondColumnVal;\n return column.databaseName + \" = :\" + parameterName;\n }))).join(\" AND \");\n }))));\n });\n condition = conditions_2.map(function (str) { return \"(\" + str + \")\"; }).join(\" OR \");\n return [4 /*yield*/, this.queryBuilder\n .createQueryBuilder()\n .delete()\n .from(junctionMetadata_1.tableName)\n .where(condition)\n .setParameters(parameters_2)\n .execute()];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n return RelationRemover;\n}());\n\n\n//# sourceMappingURL=RelationRemover.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/RelationRemover.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/RelationUpdater.js":
/*!***********************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/RelationUpdater.js ***!
\***********************************************************************/
/*! exports provided: RelationUpdater */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RelationUpdater\", function() { return RelationUpdater; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../driver/sap/SapDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n\n\n\n/**\n * Allows to work with entity relations and perform specific operations with those relations.\n *\n * todo: add transactions everywhere\n */\nvar RelationUpdater = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function RelationUpdater(queryBuilder, expressionMap) {\n this.queryBuilder = queryBuilder;\n this.expressionMap = expressionMap;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Performs set or add operation on a relation.\n */\n RelationUpdater.prototype.update = function (value) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var relation, updateSet, updateSet_1, ofs, parameters_1, conditions_1, condition, of_1, updateSet, junctionMetadata_1, ofs, values, firstColumnValues, secondColumnValues_1, bulkInserted_1;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n relation = this.expressionMap.relationMetadata;\n if (!(relation.isManyToOne || relation.isOneToOneOwner)) return [3 /*break*/, 2];\n updateSet = relation.joinColumns.reduce(function (updateSet, joinColumn) {\n var relationValue = value instanceof Object ? joinColumn.referencedColumn.getEntityValue(value) : value;\n joinColumn.setEntityValue(updateSet, relationValue);\n return updateSet;\n }, {});\n if (!this.expressionMap.of || (Array.isArray(this.expressionMap.of) && !this.expressionMap.of.length))\n return [2 /*return*/];\n return [4 /*yield*/, this.queryBuilder\n .createQueryBuilder()\n .update(relation.entityMetadata.target)\n .set(updateSet)\n .whereInIds(this.expressionMap.of)\n .execute()];\n case 1:\n _a.sent();\n return [3 /*break*/, 10];\n case 2:\n if (!((relation.isOneToOneNotOwner || relation.isOneToMany) && value === null)) return [3 /*break*/, 4];\n updateSet_1 = {};\n relation.inverseRelation.joinColumns.forEach(function (column) {\n updateSet_1[column.propertyName] = null;\n });\n ofs = Array.isArray(this.expressionMap.of) ? this.expressionMap.of : [this.expressionMap.of];\n parameters_1 = {};\n conditions_1 = [];\n ofs.forEach(function (of, ofIndex) {\n relation.inverseRelation.joinColumns.map(function (column, columnIndex) {\n var parameterName = \"joinColumn_\" + ofIndex + \"_\" + columnIndex;\n parameters_1[parameterName] = of instanceof Object ? column.referencedColumn.getEntityValue(of) : of;\n conditions_1.push(column.propertyPath + \" = :\" + parameterName);\n });\n });\n condition = conditions_1.map(function (str) { return \"(\" + str + \")\"; }).join(\" OR \");\n if (!condition)\n return [2 /*return*/];\n return [4 /*yield*/, this.queryBuilder\n .createQueryBuilder()\n .update(relation.inverseEntityMetadata.target)\n .set(updateSet_1)\n .where(condition)\n .setParameters(parameters_1)\n .execute()];\n case 3:\n _a.sent();\n return [3 /*break*/, 10];\n case 4:\n if (!(relation.isOneToOneNotOwner || relation.isOneToMany)) return [3 /*break*/, 6];\n if (Array.isArray(this.expressionMap.of))\n throw new Error(\"You cannot update relations of multiple entities with the same related object. Provide a single entity into .of method.\");\n of_1 = this.expressionMap.of;\n updateSet = relation.inverseRelation.joinColumns.reduce(function (updateSet, joinColumn) {\n var relationValue = of_1 instanceof Object ? joinColumn.referencedColumn.getEntityValue(of_1) : of_1;\n joinColumn.setEntityValue(updateSet, relationValue);\n return updateSet;\n }, {});\n if (!value || (Array.isArray(value) && !value.length))\n return [2 /*return*/];\n return [4 /*yield*/, this.queryBuilder\n .createQueryBuilder()\n .update(relation.inverseEntityMetadata.target)\n .set(updateSet)\n .whereInIds(value)\n .execute()];\n case 5:\n _a.sent();\n return [3 /*break*/, 10];\n case 6:\n junctionMetadata_1 = relation.junctionEntityMetadata;\n ofs = Array.isArray(this.expressionMap.of) ? this.expressionMap.of : [this.expressionMap.of];\n values = Array.isArray(value) ? value : [value];\n firstColumnValues = relation.isManyToManyOwner ? ofs : values;\n secondColumnValues_1 = relation.isManyToManyOwner ? values : ofs;\n bulkInserted_1 = [];\n firstColumnValues.forEach(function (firstColumnVal) {\n secondColumnValues_1.forEach(function (secondColumnVal) {\n var inserted = {};\n junctionMetadata_1.ownerColumns.forEach(function (column) {\n inserted[column.databaseName] = firstColumnVal instanceof Object ? column.referencedColumn.getEntityValue(firstColumnVal) : firstColumnVal;\n });\n junctionMetadata_1.inverseColumns.forEach(function (column) {\n inserted[column.databaseName] = secondColumnVal instanceof Object ? column.referencedColumn.getEntityValue(secondColumnVal) : secondColumnVal;\n });\n bulkInserted_1.push(inserted);\n });\n });\n if (!bulkInserted_1.length)\n return [2 /*return*/];\n if (!(this.queryBuilder.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"] || this.queryBuilder.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"SapDriver\"])) return [3 /*break*/, 8];\n return [4 /*yield*/, Promise.all(bulkInserted_1.map(function (value) {\n return _this.queryBuilder\n .createQueryBuilder()\n .insert()\n .into(junctionMetadata_1.tableName)\n .values(value)\n .execute();\n }))];\n case 7:\n _a.sent();\n return [3 /*break*/, 10];\n case 8: return [4 /*yield*/, this.queryBuilder\n .createQueryBuilder()\n .insert()\n .into(junctionMetadata_1.tableName)\n .values(bulkInserted_1)\n .execute()];\n case 9:\n _a.sent();\n _a.label = 10;\n case 10: return [2 /*return*/];\n }\n });\n });\n };\n return RelationUpdater;\n}());\n\n\n//# sourceMappingURL=RelationUpdater.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/RelationUpdater.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/ReturningResultsEntityUpdator.js":
/*!*************************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/ReturningResultsEntityUpdator.js ***!
\*************************************************************************************/
/*! exports provided: ReturningResultsEntityUpdator */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ReturningResultsEntityUpdator\", function() { return ReturningResultsEntityUpdator; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/OrmUtils */ \"./node_modules/typeorm/browser/util/OrmUtils.js\");\n/* harmony import */ var _driver_oracle_OracleDriver__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../driver/oracle/OracleDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n\n\n\n/**\n * Updates entity with returning results in the entity insert and update operations.\n */\nvar ReturningResultsEntityUpdator = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function ReturningResultsEntityUpdator(queryRunner, expressionMap) {\n this.queryRunner = queryRunner;\n this.expressionMap = expressionMap;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Updates entities with a special columns after updation query execution.\n */\n ReturningResultsEntityUpdator.prototype.update = function (updateResult, entities) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var metadata;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n metadata = this.expressionMap.mainAlias.metadata;\n return [4 /*yield*/, Promise.all(entities.map(function (entity, entityIndex) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n var result, returningColumns, updationColumns, entityId, loadedReturningColumns;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.queryRunner.connection.driver.isReturningSqlSupported()) return [3 /*break*/, 1];\n if (this.queryRunner.connection.driver instanceof _driver_oracle_OracleDriver__WEBPACK_IMPORTED_MODULE_2__[\"OracleDriver\"] && Array.isArray(updateResult.raw) && this.expressionMap.extraReturningColumns.length > 0) {\n updateResult.raw = updateResult.raw.reduce(function (newRaw, rawItem, rawItemIndex) {\n newRaw[_this.expressionMap.extraReturningColumns[rawItemIndex].databaseName] = rawItem[0];\n return newRaw;\n }, {});\n }\n result = Array.isArray(updateResult.raw) ? updateResult.raw[entityIndex] : updateResult.raw;\n returningColumns = this.queryRunner.connection.driver.createGeneratedMap(metadata, result);\n if (returningColumns) {\n this.queryRunner.manager.merge(metadata.target, entity, returningColumns);\n updateResult.generatedMaps.push(returningColumns);\n }\n return [3 /*break*/, 3];\n case 1:\n updationColumns = this.getUpdationReturningColumns();\n if (!(updationColumns.length > 0)) return [3 /*break*/, 3];\n entityId = this.expressionMap.mainAlias.metadata.getEntityIdMap(entity);\n if (!entityId)\n throw new Error(\"Cannot update entity because entity id is not set in the entity.\");\n return [4 /*yield*/, this.queryRunner.manager\n .createQueryBuilder()\n .select(metadata.primaryColumns.map(function (column) { return metadata.targetName + \".\" + column.propertyPath; }))\n .addSelect(this.getUpdationReturningColumns().map(function (column) { return metadata.targetName + \".\" + column.propertyPath; }))\n .from(metadata.target, metadata.targetName)\n .where(entityId)\n .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\n .getOne()];\n case 2:\n loadedReturningColumns = _a.sent();\n if (loadedReturningColumns) {\n this.queryRunner.manager.merge(metadata.target, entity, loadedReturningColumns);\n updateResult.generatedMaps.push(loadedReturningColumns);\n }\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n }); }))];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Updates entities with a special columns after insertion query execution.\n */\n ReturningResultsEntityUpdator.prototype.insert = function (insertResult, entities) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var metadata, insertionColumns, generatedMaps, entityIds, returningResult_1;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n metadata = this.expressionMap.mainAlias.metadata;\n insertionColumns = this.getInsertionReturningColumns();\n generatedMaps = entities.map(function (entity, entityIndex) {\n if (_this.queryRunner.connection.driver instanceof _driver_oracle_OracleDriver__WEBPACK_IMPORTED_MODULE_2__[\"OracleDriver\"] && Array.isArray(insertResult.raw) && _this.expressionMap.extraReturningColumns.length > 0) {\n insertResult.raw = insertResult.raw.reduce(function (newRaw, rawItem, rawItemIndex) {\n newRaw[_this.expressionMap.extraReturningColumns[rawItemIndex].databaseName] = rawItem[0];\n return newRaw;\n }, {});\n }\n // get all values generated by a database for us\n var result = Array.isArray(insertResult.raw) ? insertResult.raw[entityIndex] : insertResult.raw;\n var generatedMap = _this.queryRunner.connection.driver.createGeneratedMap(metadata, result, entityIndex, entities.length) || {};\n // if database does not support uuid generation we need to get uuid values\n // generated by orm and set them to the generatedMap\n if (_this.queryRunner.connection.driver.isUUIDGenerationSupported() === false) {\n metadata.generatedColumns.forEach(function (generatedColumn) {\n if (generatedColumn.generationStrategy === \"uuid\") {\n // uuid can be defined by user in a model, that's why first we get it\n var uuid = generatedColumn.getEntityValue(entity);\n if (!uuid) // if it was not defined by a user then InsertQueryBuilder generates it by its own, get this generated uuid value\n uuid = _this.expressionMap.nativeParameters[\"uuid_\" + generatedColumn.databaseName + entityIndex];\n _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[\"OrmUtils\"].mergeDeep(generatedMap, generatedColumn.createValueMap(uuid));\n }\n });\n }\n _this.queryRunner.manager.merge(metadata.target, entity, generatedMap); // todo: this should not be here, but problem with below line\n return generatedMap;\n });\n if (!(this.queryRunner.connection.driver.isReturningSqlSupported() === false && insertionColumns.length > 0)) return [3 /*break*/, 2];\n entityIds = entities.map(function (entity) {\n var entityId = metadata.getEntityIdMap(entity);\n // We have to check for an empty `entityId` - if we don't, the query against the database\n // effectively drops the `where` clause entirely and the first record will be returned -\n // not what we want at all.\n if (!entityId)\n throw new Error(\"Cannot update entity because entity id is not set in the entity.\");\n return entityId;\n });\n return [4 /*yield*/, this.queryRunner.manager\n .createQueryBuilder()\n .select(metadata.primaryColumns.map(function (column) { return metadata.targetName + \".\" + column.propertyPath; }))\n .addSelect(insertionColumns.map(function (column) { return metadata.targetName + \".\" + column.propertyPath; }))\n .from(metadata.target, metadata.targetName)\n .where(entityIds)\n .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\n .getMany()];\n case 1:\n returningResult_1 = _a.sent();\n entities.forEach(function (entity, entityIndex) {\n _this.queryRunner.manager.merge(metadata.target, generatedMaps[entityIndex], returningResult_1[entityIndex]);\n });\n _a.label = 2;\n case 2:\n entities.forEach(function (entity, entityIndex) {\n var entityId = metadata.getEntityIdMap(entity);\n insertResult.identifiers.push(entityId);\n insertResult.generatedMaps.push(generatedMaps[entityIndex]);\n _this.queryRunner.manager.merge(_this.expressionMap.mainAlias.metadata.target, entity, generatedMaps[entityIndex], generatedMaps[entityIndex]); // todo: why twice?!\n });\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Columns we need to be returned from the database when we insert entity.\n */\n ReturningResultsEntityUpdator.prototype.getInsertionReturningColumns = function () {\n // for databases which support returning statement we need to return extra columns like id\n // for other databases we don't need to return id column since its returned by a driver already\n var needToCheckGenerated = this.queryRunner.connection.driver.isReturningSqlSupported();\n // filter out the columns of which we need database inserted values to update our entity\n return this.expressionMap.mainAlias.metadata.columns.filter(function (column) {\n return column.default !== undefined ||\n (needToCheckGenerated && column.isGenerated) ||\n column.isCreateDate ||\n column.isUpdateDate ||\n column.isDeleteDate ||\n column.isVersion;\n });\n };\n /**\n * Columns we need to be returned from the database when we update entity.\n */\n ReturningResultsEntityUpdator.prototype.getUpdationReturningColumns = function () {\n return this.expressionMap.mainAlias.metadata.columns.filter(function (column) {\n return column.isUpdateDate || column.isVersion;\n });\n };\n return ReturningResultsEntityUpdator;\n}());\n\n\n//# sourceMappingURL=ReturningResultsEntityUpdator.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/ReturningResultsEntityUpdator.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/SelectQueryBuilder.js":
/*!**************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/SelectQueryBuilder.js ***!
\**************************************************************************/
/*! exports provided: SelectQueryBuilder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SelectQueryBuilder\", function() { return SelectQueryBuilder; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../driver/sap/SapDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _transformer_RawSqlResultsToEntityTransformer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transformer/RawSqlResultsToEntityTransformer */ \"./node_modules/typeorm/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js\");\n/* harmony import */ var _error_PessimisticLockTransactionRequiredError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../error/PessimisticLockTransactionRequiredError */ \"./node_modules/typeorm/browser/error/PessimisticLockTransactionRequiredError.js\");\n/* harmony import */ var _error_NoVersionOrUpdateDateColumnError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../error/NoVersionOrUpdateDateColumnError */ \"./node_modules/typeorm/browser/error/NoVersionOrUpdateDateColumnError.js\");\n/* harmony import */ var _error_OptimisticLockVersionMismatchError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../error/OptimisticLockVersionMismatchError */ \"./node_modules/typeorm/browser/error/OptimisticLockVersionMismatchError.js\");\n/* harmony import */ var _error_OptimisticLockCanNotBeUsedError__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../error/OptimisticLockCanNotBeUsedError */ \"./node_modules/typeorm/browser/error/OptimisticLockCanNotBeUsedError.js\");\n/* harmony import */ var _JoinAttribute__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./JoinAttribute */ \"./node_modules/typeorm/browser/query-builder/JoinAttribute.js\");\n/* harmony import */ var _relation_id_RelationIdAttribute__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./relation-id/RelationIdAttribute */ \"./node_modules/typeorm/browser/query-builder/relation-id/RelationIdAttribute.js\");\n/* harmony import */ var _relation_count_RelationCountAttribute__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./relation-count/RelationCountAttribute */ \"./node_modules/typeorm/browser/query-builder/relation-count/RelationCountAttribute.js\");\n/* harmony import */ var _relation_id_RelationIdLoader__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./relation-id/RelationIdLoader */ \"./node_modules/typeorm/browser/query-builder/relation-id/RelationIdLoader.js\");\n/* harmony import */ var _relation_id_RelationIdMetadataToAttributeTransformer__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./relation-id/RelationIdMetadataToAttributeTransformer */ \"./node_modules/typeorm/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js\");\n/* harmony import */ var _relation_count_RelationCountLoader__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./relation-count/RelationCountLoader */ \"./node_modules/typeorm/browser/query-builder/relation-count/RelationCountLoader.js\");\n/* harmony import */ var _relation_count_RelationCountMetadataToAttributeTransformer__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./relation-count/RelationCountMetadataToAttributeTransformer */ \"./node_modules/typeorm/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js\");\n/* harmony import */ var _QueryBuilder__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./QueryBuilder */ \"./node_modules/typeorm/browser/query-builder/QueryBuilder.js\");\n/* harmony import */ var _error_LockNotSupportedOnGivenDriverError__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../error/LockNotSupportedOnGivenDriverError */ \"./node_modules/typeorm/browser/error/LockNotSupportedOnGivenDriverError.js\");\n/* harmony import */ var _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../driver/sqlite-abstract/AbstractSqliteDriver */ \"./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteDriver.js\");\n/* harmony import */ var _error_OffsetWithoutLimitNotSupportedError__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../error/OffsetWithoutLimitNotSupportedError */ \"./node_modules/typeorm/browser/error/OffsetWithoutLimitNotSupportedError.js\");\n/* harmony import */ var _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../subscriber/BroadcasterResult */ \"./node_modules/typeorm/browser/subscriber/BroadcasterResult.js\");\n/* harmony import */ var _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../util/ObjectUtils */ \"./node_modules/typeorm/browser/util/ObjectUtils.js\");\n/* harmony import */ var _driver_DriverUtils__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../driver/DriverUtils */ \"./node_modules/typeorm/browser/driver/DriverUtils.js\");\n/* harmony import */ var _error_EntityNotFoundError__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../error/EntityNotFoundError */ \"./node_modules/typeorm/browser/error/EntityNotFoundError.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Allows to build complex sql queries in a fashion way and execute those queries.\n */\nvar SelectQueryBuilder = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SelectQueryBuilder, _super);\n function SelectQueryBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // -------------------------------------------------------------------------\n // Public Implemented Methods\n // -------------------------------------------------------------------------\n /**\n * Gets generated sql query without parameters being replaced.\n */\n SelectQueryBuilder.prototype.getQuery = function () {\n var sql = this.createComment();\n sql += this.createSelectExpression();\n sql += this.createJoinExpression();\n sql += this.createWhereExpression();\n sql += this.createGroupByExpression();\n sql += this.createHavingExpression();\n sql += this.createOrderByExpression();\n sql += this.createLimitOffsetExpression();\n sql += this.createLockExpression();\n sql = sql.trim();\n if (this.expressionMap.subQuery)\n sql = \"(\" + sql + \")\";\n return sql;\n };\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Creates a subquery - query that can be used inside other queries.\n */\n SelectQueryBuilder.prototype.subQuery = function () {\n var qb = this.createQueryBuilder();\n qb.expressionMap.subQuery = true;\n qb.expressionMap.parentQueryBuilder = this;\n return qb;\n };\n /**\n * Creates SELECT query and selects given data.\n * Replaces all previous selections if they exist.\n */\n SelectQueryBuilder.prototype.select = function (selection, selectionAliasName) {\n this.expressionMap.queryType = \"select\";\n if (Array.isArray(selection)) {\n this.expressionMap.selects = selection.map(function (selection) { return ({ selection: selection }); });\n }\n else if (selection instanceof Function) {\n var subQueryBuilder = selection(this.subQuery());\n this.setParameters(subQueryBuilder.getParameters());\n this.expressionMap.selects.push({ selection: subQueryBuilder.getQuery(), aliasName: selectionAliasName });\n }\n else if (selection) {\n this.expressionMap.selects = [{ selection: selection, aliasName: selectionAliasName }];\n }\n return this;\n };\n /**\n * Adds new selection to the SELECT query.\n */\n SelectQueryBuilder.prototype.addSelect = function (selection, selectionAliasName) {\n if (!selection)\n return this;\n if (Array.isArray(selection)) {\n this.expressionMap.selects = this.expressionMap.selects.concat(selection.map(function (selection) { return ({ selection: selection }); }));\n }\n else if (selection instanceof Function) {\n var subQueryBuilder = selection(this.subQuery());\n this.setParameters(subQueryBuilder.getParameters());\n this.expressionMap.selects.push({ selection: subQueryBuilder.getQuery(), aliasName: selectionAliasName });\n }\n else if (selection) {\n this.expressionMap.selects.push({ selection: selection, aliasName: selectionAliasName });\n }\n return this;\n };\n /**\n * Sets whether the selection is DISTINCT.\n */\n SelectQueryBuilder.prototype.distinct = function (distinct) {\n if (distinct === void 0) { distinct = true; }\n this.expressionMap.selectDistinct = distinct;\n return this;\n };\n /**\n * Sets the distinct on clause for Postgres.\n */\n SelectQueryBuilder.prototype.distinctOn = function (distinctOn) {\n this.expressionMap.selectDistinctOn = distinctOn;\n return this;\n };\n /**\n * Specifies FROM which entity's table select/update/delete will be executed.\n * Also sets a main string alias of the selection data.\n * Removes all previously set from-s.\n */\n SelectQueryBuilder.prototype.from = function (entityTarget, aliasName) {\n var mainAlias = this.createFromAlias(entityTarget, aliasName);\n this.expressionMap.setMainAlias(mainAlias);\n return this;\n };\n /**\n * Specifies FROM which entity's table select/update/delete will be executed.\n * Also sets a main string alias of the selection data.\n */\n SelectQueryBuilder.prototype.addFrom = function (entityTarget, aliasName) {\n var alias = this.createFromAlias(entityTarget, aliasName);\n if (!this.expressionMap.mainAlias)\n this.expressionMap.setMainAlias(alias);\n return this;\n };\n /**\n * INNER JOINs (without selection).\n * You also need to specify an alias of the joined data.\n * Optionally, you can add condition and parameters used in condition.\n */\n SelectQueryBuilder.prototype.innerJoin = function (entityOrProperty, alias, condition, parameters) {\n if (condition === void 0) { condition = \"\"; }\n this.join(\"INNER\", entityOrProperty, alias, condition, parameters);\n return this;\n };\n /**\n * LEFT JOINs (without selection).\n * You also need to specify an alias of the joined data.\n * Optionally, you can add condition and parameters used in condition.\n */\n SelectQueryBuilder.prototype.leftJoin = function (entityOrProperty, alias, condition, parameters) {\n if (condition === void 0) { condition = \"\"; }\n this.join(\"LEFT\", entityOrProperty, alias, condition, parameters);\n return this;\n };\n /**\n * INNER JOINs and adds all selection properties to SELECT.\n * You also need to specify an alias of the joined data.\n * Optionally, you can add condition and parameters used in condition.\n */\n SelectQueryBuilder.prototype.innerJoinAndSelect = function (entityOrProperty, alias, condition, parameters) {\n if (condition === void 0) { condition = \"\"; }\n this.addSelect(alias);\n this.innerJoin(entityOrProperty, alias, condition, parameters);\n return this;\n };\n /**\n * LEFT JOINs and adds all selection properties to SELECT.\n * You also need to specify an alias of the joined data.\n * Optionally, you can add condition and parameters used in condition.\n */\n SelectQueryBuilder.prototype.leftJoinAndSelect = function (entityOrProperty, alias, condition, parameters) {\n if (condition === void 0) { condition = \"\"; }\n this.addSelect(alias);\n this.leftJoin(entityOrProperty, alias, condition, parameters);\n return this;\n };\n /**\n * INNER JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property.\n * This is extremely useful when you want to select some data and map it to some virtual property.\n * It will assume that there are multiple rows of selecting data, and mapped result will be an array.\n * You also need to specify an alias of the joined data.\n * Optionally, you can add condition and parameters used in condition.\n */\n SelectQueryBuilder.prototype.innerJoinAndMapMany = function (mapToProperty, entityOrProperty, alias, condition, parameters) {\n if (condition === void 0) { condition = \"\"; }\n this.addSelect(alias);\n this.join(\"INNER\", entityOrProperty, alias, condition, parameters, mapToProperty, true);\n return this;\n };\n /**\n * INNER JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property.\n * This is extremely useful when you want to select some data and map it to some virtual property.\n * It will assume that there is a single row of selecting data, and mapped result will be a single selected value.\n * You also need to specify an alias of the joined data.\n * Optionally, you can add condition and parameters used in condition.\n */\n SelectQueryBuilder.prototype.innerJoinAndMapOne = function (mapToProperty, entityOrProperty, alias, condition, parameters) {\n if (condition === void 0) { condition = \"\"; }\n this.addSelect(alias);\n this.join(\"INNER\", entityOrProperty, alias, condition, parameters, mapToProperty, false);\n return this;\n };\n /**\n * LEFT JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property.\n * This is extremely useful when you want to select some data and map it to some virtual property.\n * It will assume that there are multiple rows of selecting data, and mapped result will be an array.\n * You also need to specify an alias of the joined data.\n * Optionally, you can add condition and parameters used in condition.\n */\n SelectQueryBuilder.prototype.leftJoinAndMapMany = function (mapToProperty, entityOrProperty, alias, condition, parameters) {\n if (condition === void 0) { condition = \"\"; }\n this.addSelect(alias);\n this.join(\"LEFT\", entityOrProperty, alias, condition, parameters, mapToProperty, true);\n return this;\n };\n /**\n * LEFT JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property.\n * This is extremely useful when you want to select some data and map it to some virtual property.\n * It will assume that there is a single row of selecting data, and mapped result will be a single selected value.\n * You also need to specify an alias of the joined data.\n * Optionally, you can add condition and parameters used in condition.\n */\n SelectQueryBuilder.prototype.leftJoinAndMapOne = function (mapToProperty, entityOrProperty, alias, condition, parameters) {\n if (condition === void 0) { condition = \"\"; }\n this.addSelect(alias);\n this.join(\"LEFT\", entityOrProperty, alias, condition, parameters, mapToProperty, false);\n return this;\n };\n /**\n * LEFT JOINs relation id and maps it into some entity's property.\n * Optionally, you can add condition and parameters used in condition.\n */\n SelectQueryBuilder.prototype.loadRelationIdAndMap = function (mapToProperty, relationName, aliasNameOrOptions, queryBuilderFactory) {\n var relationIdAttribute = new _relation_id_RelationIdAttribute__WEBPACK_IMPORTED_MODULE_8__[\"RelationIdAttribute\"](this.expressionMap);\n relationIdAttribute.mapToProperty = mapToProperty;\n relationIdAttribute.relationName = relationName;\n if (typeof aliasNameOrOptions === \"string\")\n relationIdAttribute.alias = aliasNameOrOptions;\n if (aliasNameOrOptions instanceof Object && aliasNameOrOptions.disableMixedMap)\n relationIdAttribute.disableMixedMap = true;\n relationIdAttribute.queryBuilderFactory = queryBuilderFactory;\n this.expressionMap.relationIdAttributes.push(relationIdAttribute);\n if (relationIdAttribute.relation.junctionEntityMetadata) {\n this.expressionMap.createAlias({\n type: \"other\",\n name: relationIdAttribute.junctionAlias,\n metadata: relationIdAttribute.relation.junctionEntityMetadata\n });\n }\n return this;\n };\n /**\n * Counts number of entities of entity's relation and maps the value into some entity's property.\n * Optionally, you can add condition and parameters used in condition.\n */\n SelectQueryBuilder.prototype.loadRelationCountAndMap = function (mapToProperty, relationName, aliasName, queryBuilderFactory) {\n var relationCountAttribute = new _relation_count_RelationCountAttribute__WEBPACK_IMPORTED_MODULE_9__[\"RelationCountAttribute\"](this.expressionMap);\n relationCountAttribute.mapToProperty = mapToProperty;\n relationCountAttribute.relationName = relationName;\n relationCountAttribute.alias = aliasName;\n relationCountAttribute.queryBuilderFactory = queryBuilderFactory;\n this.expressionMap.relationCountAttributes.push(relationCountAttribute);\n this.expressionMap.createAlias({\n type: \"other\",\n name: relationCountAttribute.junctionAlias\n });\n if (relationCountAttribute.relation.junctionEntityMetadata) {\n this.expressionMap.createAlias({\n type: \"other\",\n name: relationCountAttribute.junctionAlias,\n metadata: relationCountAttribute.relation.junctionEntityMetadata\n });\n }\n return this;\n };\n /**\n * Loads all relation ids for all relations of the selected entity.\n * All relation ids will be mapped to relation property themself.\n * If array of strings is given then loads only relation ids of the given properties.\n */\n SelectQueryBuilder.prototype.loadAllRelationIds = function (options) {\n var _this = this;\n this.expressionMap.mainAlias.metadata.relations.forEach(function (relation) {\n if (options !== undefined && options.relations !== undefined && options.relations.indexOf(relation.propertyPath) === -1)\n return;\n _this.loadRelationIdAndMap(_this.expressionMap.mainAlias.name + \".\" + relation.propertyPath, _this.expressionMap.mainAlias.name + \".\" + relation.propertyPath, options);\n });\n return this;\n };\n /**\n * Sets WHERE condition in the query builder.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n * Additionally you can add parameters used in where expression.\n */\n SelectQueryBuilder.prototype.where = function (where, parameters) {\n this.expressionMap.wheres = []; // don't move this block below since computeWhereParameter can add where expressions\n var condition = this.computeWhereParameter(where);\n if (condition)\n this.expressionMap.wheres = [{ type: \"simple\", condition: condition }];\n if (parameters)\n this.setParameters(parameters);\n return this;\n };\n /**\n * Adds new AND WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n SelectQueryBuilder.prototype.andWhere = function (where, parameters) {\n this.expressionMap.wheres.push({ type: \"and\", condition: this.computeWhereParameter(where) });\n if (parameters)\n this.setParameters(parameters);\n return this;\n };\n /**\n * Adds new OR WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n SelectQueryBuilder.prototype.orWhere = function (where, parameters) {\n this.expressionMap.wheres.push({ type: \"or\", condition: this.computeWhereParameter(where) });\n if (parameters)\n this.setParameters(parameters);\n return this;\n };\n /**\n * Adds new AND WHERE with conditions for the given ids.\n *\n * Ids are mixed.\n * It means if you have single primary key you can pass a simple id values, for example [1, 2, 3].\n * If you have multiple primary keys you need to pass object with property names and values specified,\n * for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...]\n */\n SelectQueryBuilder.prototype.whereInIds = function (ids) {\n return this.where(this.createWhereIdsExpression(ids));\n };\n /**\n * Adds new AND WHERE with conditions for the given ids.\n *\n * Ids are mixed.\n * It means if you have single primary key you can pass a simple id values, for example [1, 2, 3].\n * If you have multiple primary keys you need to pass object with property names and values specified,\n * for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...]\n */\n SelectQueryBuilder.prototype.andWhereInIds = function (ids) {\n return this.andWhere(this.createWhereIdsExpression(ids));\n };\n /**\n * Adds new OR WHERE with conditions for the given ids.\n *\n * Ids are mixed.\n * It means if you have single primary key you can pass a simple id values, for example [1, 2, 3].\n * If you have multiple primary keys you need to pass object with property names and values specified,\n * for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...]\n */\n SelectQueryBuilder.prototype.orWhereInIds = function (ids) {\n return this.orWhere(this.createWhereIdsExpression(ids));\n };\n /**\n * Sets HAVING condition in the query builder.\n * If you had previously HAVING expression defined,\n * calling this function will override previously set HAVING conditions.\n * Additionally you can add parameters used in where expression.\n */\n SelectQueryBuilder.prototype.having = function (having, parameters) {\n this.expressionMap.havings.push({ type: \"simple\", condition: having });\n if (parameters)\n this.setParameters(parameters);\n return this;\n };\n /**\n * Adds new AND HAVING condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n SelectQueryBuilder.prototype.andHaving = function (having, parameters) {\n this.expressionMap.havings.push({ type: \"and\", condition: having });\n if (parameters)\n this.setParameters(parameters);\n return this;\n };\n /**\n * Adds new OR HAVING condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n SelectQueryBuilder.prototype.orHaving = function (having, parameters) {\n this.expressionMap.havings.push({ type: \"or\", condition: having });\n if (parameters)\n this.setParameters(parameters);\n return this;\n };\n /**\n * Sets GROUP BY condition in the query builder.\n * If you had previously GROUP BY expression defined,\n * calling this function will override previously set GROUP BY conditions.\n */\n SelectQueryBuilder.prototype.groupBy = function (groupBy) {\n if (groupBy) {\n this.expressionMap.groupBys = [groupBy];\n }\n else {\n this.expressionMap.groupBys = [];\n }\n return this;\n };\n /**\n * Adds GROUP BY condition in the query builder.\n */\n SelectQueryBuilder.prototype.addGroupBy = function (groupBy) {\n this.expressionMap.groupBys.push(groupBy);\n return this;\n };\n /**\n * Sets ORDER BY condition in the query builder.\n * If you had previously ORDER BY expression defined,\n * calling this function will override previously set ORDER BY conditions.\n */\n SelectQueryBuilder.prototype.orderBy = function (sort, order, nulls) {\n var _a, _b;\n if (order === void 0) { order = \"ASC\"; }\n if (order !== undefined && order !== \"ASC\" && order !== \"DESC\")\n throw new Error(\"SelectQueryBuilder.addOrderBy \\\"order\\\" can accept only \\\"ASC\\\" and \\\"DESC\\\" values.\");\n if (nulls !== undefined && nulls !== \"NULLS FIRST\" && nulls !== \"NULLS LAST\")\n throw new Error(\"SelectQueryBuilder.addOrderBy \\\"nulls\\\" can accept only \\\"NULLS FIRST\\\" and \\\"NULLS LAST\\\" values.\");\n if (sort) {\n if (sort instanceof Object) {\n this.expressionMap.orderBys = sort;\n }\n else {\n if (nulls) {\n this.expressionMap.orderBys = (_a = {}, _a[sort] = { order: order, nulls: nulls }, _a);\n }\n else {\n this.expressionMap.orderBys = (_b = {}, _b[sort] = order, _b);\n }\n }\n }\n else {\n this.expressionMap.orderBys = {};\n }\n return this;\n };\n /**\n * Adds ORDER BY condition in the query builder.\n */\n SelectQueryBuilder.prototype.addOrderBy = function (sort, order, nulls) {\n if (order === void 0) { order = \"ASC\"; }\n if (order !== undefined && order !== \"ASC\" && order !== \"DESC\")\n throw new Error(\"SelectQueryBuilder.addOrderBy \\\"order\\\" can accept only \\\"ASC\\\" and \\\"DESC\\\" values.\");\n if (nulls !== undefined && nulls !== \"NULLS FIRST\" && nulls !== \"NULLS LAST\")\n throw new Error(\"SelectQueryBuilder.addOrderBy \\\"nulls\\\" can accept only \\\"NULLS FIRST\\\" and \\\"NULLS LAST\\\" values.\");\n if (nulls) {\n this.expressionMap.orderBys[sort] = { order: order, nulls: nulls };\n }\n else {\n this.expressionMap.orderBys[sort] = order;\n }\n return this;\n };\n /**\n * Set's LIMIT - maximum number of rows to be selected.\n * NOTE that it may not work as you expect if you are using joins.\n * If you want to implement pagination, and you are having join in your query,\n * then use instead take method instead.\n */\n SelectQueryBuilder.prototype.limit = function (limit) {\n this.expressionMap.limit = this.normalizeNumber(limit);\n if (this.expressionMap.limit !== undefined && isNaN(this.expressionMap.limit))\n throw new Error(\"Provided \\\"limit\\\" value is not a number. Please provide a numeric value.\");\n return this;\n };\n /**\n * Set's OFFSET - selection offset.\n * NOTE that it may not work as you expect if you are using joins.\n * If you want to implement pagination, and you are having join in your query,\n * then use instead skip method instead.\n */\n SelectQueryBuilder.prototype.offset = function (offset) {\n this.expressionMap.offset = this.normalizeNumber(offset);\n if (this.expressionMap.offset !== undefined && isNaN(this.expressionMap.offset))\n throw new Error(\"Provided \\\"offset\\\" value is not a number. Please provide a numeric value.\");\n return this;\n };\n /**\n * Sets maximal number of entities to take.\n */\n SelectQueryBuilder.prototype.take = function (take) {\n this.expressionMap.take = this.normalizeNumber(take);\n if (this.expressionMap.take !== undefined && isNaN(this.expressionMap.take))\n throw new Error(\"Provided \\\"take\\\" value is not a number. Please provide a numeric value.\");\n return this;\n };\n /**\n * Sets number of entities to skip.\n */\n SelectQueryBuilder.prototype.skip = function (skip) {\n this.expressionMap.skip = this.normalizeNumber(skip);\n if (this.expressionMap.skip !== undefined && isNaN(this.expressionMap.skip))\n throw new Error(\"Provided \\\"skip\\\" value is not a number. Please provide a numeric value.\");\n return this;\n };\n /**\n * Sets locking mode.\n */\n SelectQueryBuilder.prototype.setLock = function (lockMode, lockVersion, lockTables) {\n this.expressionMap.lockMode = lockMode;\n this.expressionMap.lockVersion = lockVersion;\n this.expressionMap.lockTables = lockTables;\n return this;\n };\n /**\n * Disables the global condition of \"non-deleted\" for the entity with delete date columns.\n */\n SelectQueryBuilder.prototype.withDeleted = function () {\n this.expressionMap.withDeleted = true;\n return this;\n };\n /**\n * Gets first raw result returned by execution of generated query builder sql.\n */\n SelectQueryBuilder.prototype.getRawOne = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getRawMany()];\n case 1: return [2 /*return*/, (_a.sent())[0]];\n }\n });\n });\n };\n /**\n * Gets all raw results returned by execution of generated query builder sql.\n */\n SelectQueryBuilder.prototype.getRawMany = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var queryRunner, transactionStartedByUs, results, error_1, rollbackError_1;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.expressionMap.lockMode === \"optimistic\")\n throw new _error_OptimisticLockCanNotBeUsedError__WEBPACK_IMPORTED_MODULE_6__[\"OptimisticLockCanNotBeUsedError\"]();\n this.expressionMap.queryEntity = false;\n queryRunner = this.obtainQueryRunner();\n transactionStartedByUs = false;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 7, 12, 15]);\n if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3];\n return [4 /*yield*/, queryRunner.startTransaction()];\n case 2:\n _a.sent();\n transactionStartedByUs = true;\n _a.label = 3;\n case 3: return [4 /*yield*/, this.loadRawResults(queryRunner)];\n case 4:\n results = _a.sent();\n if (!transactionStartedByUs) return [3 /*break*/, 6];\n return [4 /*yield*/, queryRunner.commitTransaction()];\n case 5:\n _a.sent();\n _a.label = 6;\n case 6: return [2 /*return*/, results];\n case 7:\n error_1 = _a.sent();\n if (!transactionStartedByUs) return [3 /*break*/, 11];\n _a.label = 8;\n case 8:\n _a.trys.push([8, 10, , 11]);\n return [4 /*yield*/, queryRunner.rollbackTransaction()];\n case 9:\n _a.sent();\n return [3 /*break*/, 11];\n case 10:\n rollbackError_1 = _a.sent();\n return [3 /*break*/, 11];\n case 11: throw error_1;\n case 12:\n if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 14];\n return [4 /*yield*/, queryRunner.release()];\n case 13:\n _a.sent();\n _a.label = 14;\n case 14: return [7 /*endfinally*/];\n case 15: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Executes sql generated by query builder and returns object with raw results and entities created from them.\n */\n SelectQueryBuilder.prototype.getRawAndEntities = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var queryRunner, transactionStartedByUs, results, error_2, rollbackError_2;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n queryRunner = this.obtainQueryRunner();\n transactionStartedByUs = false;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 7, 12, 15]);\n if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3];\n return [4 /*yield*/, queryRunner.startTransaction()];\n case 2:\n _a.sent();\n transactionStartedByUs = true;\n _a.label = 3;\n case 3:\n this.expressionMap.queryEntity = true;\n return [4 /*yield*/, this.executeEntitiesAndRawResults(queryRunner)];\n case 4:\n results = _a.sent();\n if (!transactionStartedByUs) return [3 /*break*/, 6];\n return [4 /*yield*/, queryRunner.commitTransaction()];\n case 5:\n _a.sent();\n _a.label = 6;\n case 6: return [2 /*return*/, results];\n case 7:\n error_2 = _a.sent();\n if (!transactionStartedByUs) return [3 /*break*/, 11];\n _a.label = 8;\n case 8:\n _a.trys.push([8, 10, , 11]);\n return [4 /*yield*/, queryRunner.rollbackTransaction()];\n case 9:\n _a.sent();\n return [3 /*break*/, 11];\n case 10:\n rollbackError_2 = _a.sent();\n return [3 /*break*/, 11];\n case 11: throw error_2;\n case 12:\n if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 14];\n return [4 /*yield*/, queryRunner.release()];\n case 13:\n _a.sent();\n _a.label = 14;\n case 14: return [7 /*endfinally*/];\n case 15: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Gets single entity returned by execution of generated query builder sql.\n */\n SelectQueryBuilder.prototype.getOne = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var results, result, metadata, actualVersion, actualVersion;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getRawAndEntities()];\n case 1:\n results = _a.sent();\n result = results.entities[0];\n if (result && this.expressionMap.lockMode === \"optimistic\" && this.expressionMap.lockVersion) {\n metadata = this.expressionMap.mainAlias.metadata;\n if (this.expressionMap.lockVersion instanceof Date) {\n actualVersion = metadata.updateDateColumn.getEntityValue(result);\n if (actualVersion.getTime() !== this.expressionMap.lockVersion.getTime())\n throw new _error_OptimisticLockVersionMismatchError__WEBPACK_IMPORTED_MODULE_5__[\"OptimisticLockVersionMismatchError\"](metadata.name, this.expressionMap.lockVersion, actualVersion);\n }\n else {\n actualVersion = metadata.versionColumn.getEntityValue(result);\n if (actualVersion !== this.expressionMap.lockVersion)\n throw new _error_OptimisticLockVersionMismatchError__WEBPACK_IMPORTED_MODULE_5__[\"OptimisticLockVersionMismatchError\"](metadata.name, this.expressionMap.lockVersion, actualVersion);\n }\n }\n return [2 /*return*/, result];\n }\n });\n });\n };\n /**\n * Gets the first entity returned by execution of generated query builder sql or rejects the returned promise on error.\n */\n SelectQueryBuilder.prototype.getOneOrFail = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var entity;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getOne()];\n case 1:\n entity = _a.sent();\n if (!entity) {\n throw new _error_EntityNotFoundError__WEBPACK_IMPORTED_MODULE_21__[\"EntityNotFoundError\"](this.expressionMap.mainAlias.target, this);\n }\n return [2 /*return*/, entity];\n }\n });\n });\n };\n /**\n * Gets entities returned by execution of generated query builder sql.\n */\n SelectQueryBuilder.prototype.getMany = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var results;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.expressionMap.lockMode === \"optimistic\")\n throw new _error_OptimisticLockCanNotBeUsedError__WEBPACK_IMPORTED_MODULE_6__[\"OptimisticLockCanNotBeUsedError\"]();\n return [4 /*yield*/, this.getRawAndEntities()];\n case 1:\n results = _a.sent();\n return [2 /*return*/, results.entities];\n }\n });\n });\n };\n /**\n * Gets count - number of entities selected by sql generated by this query builder.\n * Count excludes all limitations set by setFirstResult and setMaxResults methods call.\n */\n SelectQueryBuilder.prototype.getCount = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var queryRunner, transactionStartedByUs, results, error_3, rollbackError_3;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.expressionMap.lockMode === \"optimistic\")\n throw new _error_OptimisticLockCanNotBeUsedError__WEBPACK_IMPORTED_MODULE_6__[\"OptimisticLockCanNotBeUsedError\"]();\n queryRunner = this.obtainQueryRunner();\n transactionStartedByUs = false;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 7, 12, 15]);\n if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3];\n return [4 /*yield*/, queryRunner.startTransaction()];\n case 2:\n _a.sent();\n transactionStartedByUs = true;\n _a.label = 3;\n case 3:\n this.expressionMap.queryEntity = false;\n return [4 /*yield*/, this.executeCountQuery(queryRunner)];\n case 4:\n results = _a.sent();\n if (!transactionStartedByUs) return [3 /*break*/, 6];\n return [4 /*yield*/, queryRunner.commitTransaction()];\n case 5:\n _a.sent();\n _a.label = 6;\n case 6: return [2 /*return*/, results];\n case 7:\n error_3 = _a.sent();\n if (!transactionStartedByUs) return [3 /*break*/, 11];\n _a.label = 8;\n case 8:\n _a.trys.push([8, 10, , 11]);\n return [4 /*yield*/, queryRunner.rollbackTransaction()];\n case 9:\n _a.sent();\n return [3 /*break*/, 11];\n case 10:\n rollbackError_3 = _a.sent();\n return [3 /*break*/, 11];\n case 11: throw error_3;\n case 12:\n if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 14];\n return [4 /*yield*/, queryRunner.release()];\n case 13:\n _a.sent();\n _a.label = 14;\n case 14: return [7 /*endfinally*/];\n case 15: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Executes built SQL query and returns entities and overall entities count (without limitation).\n * This method is useful to build pagination.\n */\n SelectQueryBuilder.prototype.getManyAndCount = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var queryRunner, transactionStartedByUs, entitiesAndRaw, count, results, error_4, rollbackError_4;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.expressionMap.lockMode === \"optimistic\")\n throw new _error_OptimisticLockCanNotBeUsedError__WEBPACK_IMPORTED_MODULE_6__[\"OptimisticLockCanNotBeUsedError\"]();\n queryRunner = this.obtainQueryRunner();\n transactionStartedByUs = false;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 8, 13, 16]);\n if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3];\n return [4 /*yield*/, queryRunner.startTransaction()];\n case 2:\n _a.sent();\n transactionStartedByUs = true;\n _a.label = 3;\n case 3:\n this.expressionMap.queryEntity = true;\n return [4 /*yield*/, this.executeEntitiesAndRawResults(queryRunner)];\n case 4:\n entitiesAndRaw = _a.sent();\n this.expressionMap.queryEntity = false;\n return [4 /*yield*/, this.executeCountQuery(queryRunner)];\n case 5:\n count = _a.sent();\n results = [entitiesAndRaw.entities, count];\n if (!transactionStartedByUs) return [3 /*break*/, 7];\n return [4 /*yield*/, queryRunner.commitTransaction()];\n case 6:\n _a.sent();\n _a.label = 7;\n case 7: return [2 /*return*/, results];\n case 8:\n error_4 = _a.sent();\n if (!transactionStartedByUs) return [3 /*break*/, 12];\n _a.label = 9;\n case 9:\n _a.trys.push([9, 11, , 12]);\n return [4 /*yield*/, queryRunner.rollbackTransaction()];\n case 10:\n _a.sent();\n return [3 /*break*/, 12];\n case 11:\n rollbackError_4 = _a.sent();\n return [3 /*break*/, 12];\n case 12: throw error_4;\n case 13:\n if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 15];\n return [4 /*yield*/, queryRunner.release()];\n case 14:\n _a.sent();\n _a.label = 15;\n case 15: return [7 /*endfinally*/];\n case 16: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Executes built SQL query and returns raw data stream.\n */\n SelectQueryBuilder.prototype.stream = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _a, sql, parameters, queryRunner, transactionStartedByUs, releaseFn, results, error_5, rollbackError_5;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.expressionMap.queryEntity = false;\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.getQueryAndParameters(), 2), sql = _a[0], parameters = _a[1];\n queryRunner = this.obtainQueryRunner();\n transactionStartedByUs = false;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 6, , 11]);\n if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3];\n return [4 /*yield*/, queryRunner.startTransaction()];\n case 2:\n _b.sent();\n transactionStartedByUs = true;\n _b.label = 3;\n case 3:\n releaseFn = function () {\n if (queryRunner !== _this.queryRunner) // means we created our own query runner\n return queryRunner.release();\n return;\n };\n results = queryRunner.stream(sql, parameters, releaseFn, releaseFn);\n if (!transactionStartedByUs) return [3 /*break*/, 5];\n return [4 /*yield*/, queryRunner.commitTransaction()];\n case 4:\n _b.sent();\n _b.label = 5;\n case 5: return [2 /*return*/, results];\n case 6:\n error_5 = _b.sent();\n if (!transactionStartedByUs) return [3 /*break*/, 10];\n _b.label = 7;\n case 7:\n _b.trys.push([7, 9, , 10]);\n return [4 /*yield*/, queryRunner.rollbackTransaction()];\n case 8:\n _b.sent();\n return [3 /*break*/, 10];\n case 9:\n rollbackError_5 = _b.sent();\n return [3 /*break*/, 10];\n case 10: throw error_5;\n case 11: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Enables or disables query result caching.\n */\n SelectQueryBuilder.prototype.cache = function (enabledOrMillisecondsOrId, maybeMilliseconds) {\n if (typeof enabledOrMillisecondsOrId === \"boolean\") {\n this.expressionMap.cache = enabledOrMillisecondsOrId;\n }\n else if (typeof enabledOrMillisecondsOrId === \"number\") {\n this.expressionMap.cache = true;\n this.expressionMap.cacheDuration = enabledOrMillisecondsOrId;\n }\n else if (typeof enabledOrMillisecondsOrId === \"string\" || typeof enabledOrMillisecondsOrId === \"number\") {\n this.expressionMap.cache = true;\n this.expressionMap.cacheId = enabledOrMillisecondsOrId;\n }\n if (maybeMilliseconds) {\n this.expressionMap.cacheDuration = maybeMilliseconds;\n }\n return this;\n };\n /**\n * Sets extra options that can be used to configure how query builder works.\n */\n SelectQueryBuilder.prototype.setOption = function (option) {\n this.expressionMap.options.push(option);\n return this;\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n SelectQueryBuilder.prototype.join = function (direction, entityOrProperty, aliasName, condition, parameters, mapToProperty, isMappingMany) {\n this.setParameters(parameters || {});\n var joinAttribute = new _JoinAttribute__WEBPACK_IMPORTED_MODULE_7__[\"JoinAttribute\"](this.connection, this.expressionMap);\n joinAttribute.direction = direction;\n joinAttribute.mapToProperty = mapToProperty;\n joinAttribute.isMappingMany = isMappingMany;\n joinAttribute.entityOrProperty = entityOrProperty; // relationName\n joinAttribute.condition = condition; // joinInverseSideCondition\n // joinAttribute.junctionAlias = joinAttribute.relation.isOwning ? parentAlias + \"_\" + destinationTableAlias : destinationTableAlias + \"_\" + parentAlias;\n this.expressionMap.joinAttributes.push(joinAttribute);\n if (joinAttribute.metadata) {\n if (joinAttribute.metadata.deleteDateColumn && !this.expressionMap.withDeleted) {\n var conditionDeleteColumn = aliasName + \".\" + joinAttribute.metadata.deleteDateColumn.propertyName + \" IS NULL\";\n joinAttribute.condition += joinAttribute.condition ? \" AND \" + conditionDeleteColumn : \"\" + conditionDeleteColumn;\n }\n // todo: find and set metadata right there?\n joinAttribute.alias = this.expressionMap.createAlias({\n type: \"join\",\n name: aliasName,\n metadata: joinAttribute.metadata\n });\n if (joinAttribute.relation && joinAttribute.relation.junctionEntityMetadata) {\n this.expressionMap.createAlias({\n type: \"join\",\n name: joinAttribute.junctionAlias,\n metadata: joinAttribute.relation.junctionEntityMetadata\n });\n }\n }\n else {\n var subQuery = \"\";\n if (entityOrProperty instanceof Function) {\n var subQueryBuilder = entityOrProperty(this.subQuery());\n this.setParameters(subQueryBuilder.getParameters());\n subQuery = subQueryBuilder.getQuery();\n }\n else {\n subQuery = entityOrProperty;\n }\n var isSubQuery = entityOrProperty instanceof Function || entityOrProperty.substr(0, 1) === \"(\" && entityOrProperty.substr(-1) === \")\";\n joinAttribute.alias = this.expressionMap.createAlias({\n type: \"join\",\n name: aliasName,\n tablePath: isSubQuery === false ? entityOrProperty : undefined,\n subQuery: isSubQuery === true ? subQuery : undefined,\n });\n }\n };\n /**\n * Creates \"SELECT FROM\" part of SQL query.\n */\n SelectQueryBuilder.prototype.createSelectExpression = function () {\n var _this = this;\n if (!this.expressionMap.mainAlias)\n throw new Error(\"Cannot build query because main alias is not set (call qb#from method)\");\n // todo throw exception if selects or from is missing\n var allSelects = [];\n var excludedSelects = [];\n if (this.expressionMap.mainAlias.hasMetadata) {\n var metadata = this.expressionMap.mainAlias.metadata;\n allSelects.push.apply(allSelects, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.buildEscapedEntityColumnSelects(this.expressionMap.mainAlias.name, metadata))));\n excludedSelects.push.apply(excludedSelects, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.findEntityColumnSelects(this.expressionMap.mainAlias.name, metadata))));\n }\n // add selects from joins\n this.expressionMap.joinAttributes\n .forEach(function (join) {\n if (join.metadata) {\n allSelects.push.apply(allSelects, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_this.buildEscapedEntityColumnSelects(join.alias.name, join.metadata))));\n excludedSelects.push.apply(excludedSelects, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_this.findEntityColumnSelects(join.alias.name, join.metadata))));\n }\n else {\n var hasMainAlias = _this.expressionMap.selects.some(function (select) { return select.selection === join.alias.name; });\n if (hasMainAlias) {\n allSelects.push({ selection: _this.escape(join.alias.name) + \".*\" });\n var excludedSelect = _this.expressionMap.selects.find(function (select) { return select.selection === join.alias.name; });\n excludedSelects.push(excludedSelect);\n }\n }\n });\n // add all other selects\n this.expressionMap.selects\n .filter(function (select) { return excludedSelects.indexOf(select) === -1; })\n .forEach(function (select) { return allSelects.push({ selection: _this.replacePropertyNames(select.selection), aliasName: select.aliasName }); });\n // if still selection is empty, then simply set it to all (*)\n if (allSelects.length === 0)\n allSelects.push({ selection: \"*\" });\n var lock = \"\";\n if (this.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"]) {\n switch (this.expressionMap.lockMode) {\n case \"pessimistic_read\":\n lock = \" WITH (HOLDLOCK, ROWLOCK)\";\n break;\n case \"pessimistic_write\":\n lock = \" WITH (UPDLOCK, ROWLOCK)\";\n break;\n case \"dirty_read\":\n lock = \" WITH (NOLOCK)\";\n break;\n }\n }\n // create a selection query\n var froms = this.expressionMap.aliases\n .filter(function (alias) { return alias.type === \"from\" && (alias.tablePath || alias.subQuery); })\n .map(function (alias) {\n if (alias.subQuery)\n return alias.subQuery + \" \" + _this.escape(alias.name);\n return _this.getTableName(alias.tablePath) + \" \" + _this.escape(alias.name);\n });\n var select = this.createSelectDistinctExpression();\n var selection = allSelects.map(function (select) { return select.selection + (select.aliasName ? \" AS \" + _this.escape(select.aliasName) : \"\"); }).join(\", \");\n return select + selection + \" FROM \" + froms.join(\", \") + lock;\n };\n /**\n * Creates select | select distinct part of SQL query.\n */\n SelectQueryBuilder.prototype.createSelectDistinctExpression = function () {\n var _this = this;\n var _a = this.expressionMap, selectDistinct = _a.selectDistinct, selectDistinctOn = _a.selectDistinctOn;\n var driver = this.connection.driver;\n var select = \"SELECT \";\n if (driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"] && selectDistinctOn.length > 0) {\n var selectDistinctOnMap = selectDistinctOn.map(function (on) { return _this.replacePropertyNames(on); }).join(\", \");\n select = \"SELECT DISTINCT ON (\" + selectDistinctOnMap + \") \";\n }\n else if (selectDistinct) {\n select = \"SELECT DISTINCT \";\n }\n return select;\n };\n /**\n * Creates \"JOIN\" part of SQL query.\n */\n SelectQueryBuilder.prototype.createJoinExpression = function () {\n // examples:\n // select from owning side\n // qb.select(\"post\")\n // .leftJoinAndSelect(\"post.category\", \"category\");\n // select from non-owning side\n // qb.select(\"category\")\n // .leftJoinAndSelect(\"category.post\", \"post\");\n var _this = this;\n var joins = this.expressionMap.joinAttributes.map(function (joinAttr) {\n var relation = joinAttr.relation;\n var destinationTableName = joinAttr.tablePath;\n var destinationTableAlias = joinAttr.alias.name;\n var appendedCondition = joinAttr.condition ? \" AND (\" + joinAttr.condition + \")\" : \"\";\n var parentAlias = joinAttr.parentAlias;\n // if join was build without relation (e.g. without \"post.category\") then it means that we have direct\n // table to join, without junction table involved. This means we simply join direct table.\n if (!parentAlias || !relation) {\n var destinationJoin = joinAttr.alias.subQuery ? joinAttr.alias.subQuery : _this.getTableName(destinationTableName);\n return \" \" + joinAttr.direction + \" JOIN \" + destinationJoin + \" \" + _this.escape(destinationTableAlias) +\n (joinAttr.condition ? \" ON \" + _this.replacePropertyNames(joinAttr.condition) : \"\");\n }\n // if real entity relation is involved\n if (relation.isManyToOne || relation.isOneToOneOwner) {\n // JOIN `category` `category` ON `category`.`id` = `post`.`categoryId`\n var condition = relation.joinColumns.map(function (joinColumn) {\n return destinationTableAlias + \".\" + joinColumn.referencedColumn.propertyPath + \"=\" +\n parentAlias + \".\" + relation.propertyPath + \".\" + joinColumn.referencedColumn.propertyPath;\n }).join(\" AND \");\n return \" \" + joinAttr.direction + \" JOIN \" + _this.getTableName(destinationTableName) + \" \" + _this.escape(destinationTableAlias) + \" ON \" + _this.replacePropertyNames(condition + appendedCondition);\n }\n else if (relation.isOneToMany || relation.isOneToOneNotOwner) {\n // JOIN `post` `post` ON `post`.`categoryId` = `category`.`id`\n var condition = relation.inverseRelation.joinColumns.map(function (joinColumn) {\n if (relation.inverseEntityMetadata.tableType === \"entity-child\" && relation.inverseEntityMetadata.discriminatorColumn) {\n appendedCondition += \" AND \" + destinationTableAlias + \".\" + relation.inverseEntityMetadata.discriminatorColumn.databaseName + \"='\" + relation.inverseEntityMetadata.discriminatorValue + \"'\";\n }\n return destinationTableAlias + \".\" + relation.inverseRelation.propertyPath + \".\" + joinColumn.referencedColumn.propertyPath + \"=\" +\n parentAlias + \".\" + joinColumn.referencedColumn.propertyPath;\n }).join(\" AND \");\n return \" \" + joinAttr.direction + \" JOIN \" + _this.getTableName(destinationTableName) + \" \" + _this.escape(destinationTableAlias) + \" ON \" + _this.replacePropertyNames(condition + appendedCondition);\n }\n else { // means many-to-many\n var junctionTableName = relation.junctionEntityMetadata.tablePath;\n var junctionAlias_1 = joinAttr.junctionAlias;\n var junctionCondition = \"\", destinationCondition = \"\";\n if (relation.isOwning) {\n junctionCondition = relation.joinColumns.map(function (joinColumn) {\n // `post_category`.`postId` = `post`.`id`\n return junctionAlias_1 + \".\" + joinColumn.propertyPath + \"=\" + parentAlias + \".\" + joinColumn.referencedColumn.propertyPath;\n }).join(\" AND \");\n destinationCondition = relation.inverseJoinColumns.map(function (joinColumn) {\n // `category`.`id` = `post_category`.`categoryId`\n return destinationTableAlias + \".\" + joinColumn.referencedColumn.propertyPath + \"=\" + junctionAlias_1 + \".\" + joinColumn.propertyPath;\n }).join(\" AND \");\n }\n else {\n junctionCondition = relation.inverseRelation.inverseJoinColumns.map(function (joinColumn) {\n // `post_category`.`categoryId` = `category`.`id`\n return junctionAlias_1 + \".\" + joinColumn.propertyPath + \"=\" + parentAlias + \".\" + joinColumn.referencedColumn.propertyPath;\n }).join(\" AND \");\n destinationCondition = relation.inverseRelation.joinColumns.map(function (joinColumn) {\n // `post`.`id` = `post_category`.`postId`\n return destinationTableAlias + \".\" + joinColumn.referencedColumn.propertyPath + \"=\" + junctionAlias_1 + \".\" + joinColumn.propertyPath;\n }).join(\" AND \");\n }\n return \" \" + joinAttr.direction + \" JOIN \" + _this.getTableName(junctionTableName) + \" \" + _this.escape(junctionAlias_1) + \" ON \" + _this.replacePropertyNames(junctionCondition) +\n \" \" + joinAttr.direction + \" JOIN \" + _this.getTableName(destinationTableName) + \" \" + _this.escape(destinationTableAlias) + \" ON \" + _this.replacePropertyNames(destinationCondition + appendedCondition);\n }\n });\n return joins.join(\" \");\n };\n /**\n * Creates \"GROUP BY\" part of SQL query.\n */\n SelectQueryBuilder.prototype.createGroupByExpression = function () {\n if (!this.expressionMap.groupBys || !this.expressionMap.groupBys.length)\n return \"\";\n return \" GROUP BY \" + this.replacePropertyNames(this.expressionMap.groupBys.join(\", \"));\n };\n /**\n * Creates \"ORDER BY\" part of SQL query.\n */\n SelectQueryBuilder.prototype.createOrderByExpression = function () {\n var _this = this;\n var orderBys = this.expressionMap.allOrderBys;\n if (Object.keys(orderBys).length > 0)\n return \" ORDER BY \" + Object.keys(orderBys)\n .map(function (columnName) {\n if (typeof orderBys[columnName] === \"string\") {\n return _this.replacePropertyNames(columnName) + \" \" + orderBys[columnName];\n }\n else {\n return _this.replacePropertyNames(columnName) + \" \" + orderBys[columnName].order + \" \" + orderBys[columnName].nulls;\n }\n })\n .join(\", \");\n return \"\";\n };\n /**\n * Creates \"LIMIT\" and \"OFFSET\" parts of SQL query.\n */\n SelectQueryBuilder.prototype.createLimitOffsetExpression = function () {\n // in the case if nothing is joined in the query builder we don't need to make two requests to get paginated results\n // we can use regular limit / offset, that's why we add offset and limit construction here based on skip and take values\n var offset = this.expressionMap.offset, limit = this.expressionMap.limit;\n if (!offset && !limit && this.expressionMap.joinAttributes.length === 0) {\n offset = this.expressionMap.skip;\n limit = this.expressionMap.take;\n }\n if (this.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"]) {\n // Due to a limitation in SQL Server's parser implementation it does not support using\n // OFFSET or FETCH NEXT without an ORDER BY clause being provided. In cases where the\n // user does not request one we insert a dummy ORDER BY that does nothing and should\n // have no effect on the query planner or on the order of the results returned.\n // https://dba.stackexchange.com/a/193799\n var prefix = \"\";\n if ((limit || offset) && Object.keys(this.expressionMap.allOrderBys).length <= 0) {\n prefix = \" ORDER BY (SELECT NULL)\";\n }\n if (limit && offset)\n return prefix + \" OFFSET \" + offset + \" ROWS FETCH NEXT \" + limit + \" ROWS ONLY\";\n if (limit)\n return prefix + \" OFFSET 0 ROWS FETCH NEXT \" + limit + \" ROWS ONLY\";\n if (offset)\n return prefix + \" OFFSET \" + offset + \" ROWS\";\n }\n else if (this.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] || this.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"] || this.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"SapDriver\"]) {\n if (limit && offset)\n return \" LIMIT \" + limit + \" OFFSET \" + offset;\n if (limit)\n return \" LIMIT \" + limit;\n if (offset)\n throw new _error_OffsetWithoutLimitNotSupportedError__WEBPACK_IMPORTED_MODULE_17__[\"OffsetWithoutLimitNotSupportedError\"]();\n }\n else if (this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_16__[\"AbstractSqliteDriver\"]) {\n if (limit && offset)\n return \" LIMIT \" + limit + \" OFFSET \" + offset;\n if (limit)\n return \" LIMIT \" + limit;\n if (offset)\n return \" LIMIT -1 OFFSET \" + offset;\n }\n else if (this.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"]) {\n if (limit && offset)\n return \" OFFSET \" + offset + \" ROWS FETCH NEXT \" + limit + \" ROWS ONLY\";\n if (limit)\n return \" FETCH NEXT \" + limit + \" ROWS ONLY\";\n if (offset)\n return \" OFFSET \" + offset + \" ROWS\";\n }\n else {\n if (limit && offset)\n return \" LIMIT \" + limit + \" OFFSET \" + offset;\n if (limit)\n return \" LIMIT \" + limit;\n if (offset)\n return \" OFFSET \" + offset;\n }\n return \"\";\n };\n /**\n * Creates \"LOCK\" part of SQL query.\n */\n SelectQueryBuilder.prototype.createLockExpression = function () {\n var driver = this.connection.driver;\n var lockTablesClause = \"\";\n if (this.expressionMap.lockTables) {\n if (!(driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"])) {\n throw new Error(\"Lock tables not supported in selected driver\");\n }\n if (this.expressionMap.lockTables.length < 1) {\n throw new Error(\"lockTables cannot be an empty array\");\n }\n lockTablesClause = \" OF \" + this.expressionMap.lockTables.join(\", \");\n }\n switch (this.expressionMap.lockMode) {\n case \"pessimistic_read\":\n if (driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] || driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"]) {\n return \" LOCK IN SHARE MODE\";\n }\n else if (driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"]) {\n return \" FOR SHARE\" + lockTablesClause;\n }\n else if (driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"]) {\n return \" FOR UPDATE\";\n }\n else if (driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"]) {\n return \"\";\n }\n else {\n throw new _error_LockNotSupportedOnGivenDriverError__WEBPACK_IMPORTED_MODULE_15__[\"LockNotSupportedOnGivenDriverError\"]();\n }\n case \"pessimistic_write\":\n if (driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] || driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"] || driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"]) {\n return \" FOR UPDATE\";\n }\n else if (driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"]) {\n return \" FOR UPDATE\" + lockTablesClause;\n }\n else if (driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"]) {\n return \"\";\n }\n else {\n throw new _error_LockNotSupportedOnGivenDriverError__WEBPACK_IMPORTED_MODULE_15__[\"LockNotSupportedOnGivenDriverError\"]();\n }\n case \"pessimistic_partial_write\":\n if (driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"]) {\n return \" FOR UPDATE\" + lockTablesClause + \" SKIP LOCKED\";\n }\n else if (driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"]) {\n return \" FOR UPDATE SKIP LOCKED\";\n }\n else {\n throw new _error_LockNotSupportedOnGivenDriverError__WEBPACK_IMPORTED_MODULE_15__[\"LockNotSupportedOnGivenDriverError\"]();\n }\n case \"pessimistic_write_or_fail\":\n if (driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"]) {\n return \" FOR UPDATE\" + lockTablesClause + \" NOWAIT\";\n }\n else if (driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"]) {\n return \" FOR UPDATE NOWAIT\";\n }\n else {\n throw new _error_LockNotSupportedOnGivenDriverError__WEBPACK_IMPORTED_MODULE_15__[\"LockNotSupportedOnGivenDriverError\"]();\n }\n case \"for_no_key_update\":\n if (driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"]) {\n return \" FOR NO KEY UPDATE\" + lockTablesClause;\n }\n else {\n throw new _error_LockNotSupportedOnGivenDriverError__WEBPACK_IMPORTED_MODULE_15__[\"LockNotSupportedOnGivenDriverError\"]();\n }\n default:\n return \"\";\n }\n };\n /**\n * Creates \"HAVING\" part of SQL query.\n */\n SelectQueryBuilder.prototype.createHavingExpression = function () {\n var _this = this;\n if (!this.expressionMap.havings || !this.expressionMap.havings.length)\n return \"\";\n var conditions = this.expressionMap.havings.map(function (having, index) {\n switch (having.type) {\n case \"and\":\n return (index > 0 ? \"AND \" : \"\") + _this.replacePropertyNames(having.condition);\n case \"or\":\n return (index > 0 ? \"OR \" : \"\") + _this.replacePropertyNames(having.condition);\n default:\n return _this.replacePropertyNames(having.condition);\n }\n }).join(\" \");\n if (!conditions.length)\n return \"\";\n return \" HAVING \" + conditions;\n };\n SelectQueryBuilder.prototype.buildEscapedEntityColumnSelects = function (aliasName, metadata) {\n var _this = this;\n var hasMainAlias = this.expressionMap.selects.some(function (select) { return select.selection === aliasName; });\n var columns = [];\n if (hasMainAlias) {\n columns.push.apply(columns, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(metadata.columns.filter(function (column) { return column.isSelect === true; }))));\n }\n columns.push.apply(columns, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(metadata.columns.filter(function (column) {\n return _this.expressionMap.selects.some(function (select) { return select.selection === aliasName + \".\" + column.propertyPath; });\n }))));\n // if user used partial selection and did not select some primary columns which are required to be selected\n // we select those primary columns and mark them as \"virtual\". Later virtual column values will be removed from final entity\n // to make entity contain exactly what user selected\n if (columns.length === 0) // however not in the case when nothing (even partial) was selected from this target (for example joins without selection)\n return [];\n var nonSelectedPrimaryColumns = this.expressionMap.queryEntity ? metadata.primaryColumns.filter(function (primaryColumn) { return columns.indexOf(primaryColumn) === -1; }) : [];\n var allColumns = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(columns)), Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(nonSelectedPrimaryColumns));\n return allColumns.map(function (column) {\n var selection = _this.expressionMap.selects.find(function (select) { return select.selection === aliasName + \".\" + column.propertyPath; });\n var selectionPath = _this.escape(aliasName) + \".\" + _this.escape(column.databaseName);\n if (_this.connection.driver.spatialTypes.indexOf(column.type) !== -1) {\n if (_this.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] || _this.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"]) {\n var useLegacy = _this.connection.driver.options.legacySpatialSupport;\n var asText = useLegacy ? \"AsText\" : \"ST_AsText\";\n selectionPath = asText + \"(\" + selectionPath + \")\";\n }\n if (_this.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"])\n // cast to JSON to trigger parsing in the driver\n if (column.precision) {\n selectionPath = \"ST_AsGeoJSON(\" + selectionPath + \", \" + column.precision + \")::json\";\n }\n else {\n selectionPath = \"ST_AsGeoJSON(\" + selectionPath + \")::json\";\n }\n if (_this.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"])\n selectionPath = selectionPath + \".ToString()\";\n }\n return {\n selection: selectionPath,\n aliasName: selection && selection.aliasName ? selection.aliasName : _driver_DriverUtils__WEBPACK_IMPORTED_MODULE_20__[\"DriverUtils\"].buildColumnAlias(_this.connection.driver, aliasName, column.databaseName),\n // todo: need to keep in mind that custom selection.aliasName breaks hydrator. fix it later!\n virtual: selection ? selection.virtual === true : (hasMainAlias ? false : true),\n };\n });\n };\n SelectQueryBuilder.prototype.findEntityColumnSelects = function (aliasName, metadata) {\n var mainSelect = this.expressionMap.selects.find(function (select) { return select.selection === aliasName; });\n if (mainSelect)\n return [mainSelect];\n return this.expressionMap.selects.filter(function (select) {\n return metadata.columns.some(function (column) { return select.selection === aliasName + \".\" + column.propertyPath; });\n });\n };\n SelectQueryBuilder.prototype.computeCountExpression = function () {\n var _this = this;\n var mainAlias = this.expressionMap.mainAlias.name; // todo: will this work with \"fromTableName\"?\n var metadata = this.expressionMap.mainAlias.metadata;\n var primaryColumns = metadata.primaryColumns;\n var distinctAlias = this.escape(mainAlias);\n // If we aren't doing anything that will create a join, we can use a simpler `COUNT` instead\n // so we prevent poor query patterns in the most likely cases\n if (this.expressionMap.joinAttributes.length === 0 &&\n this.expressionMap.relationIdAttributes.length === 0 &&\n this.expressionMap.relationCountAttributes.length === 0) {\n return \"COUNT(1)\";\n }\n // For everything else, we'll need to do some hackery to get the correct count values.\n if (this.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"CockroachDriver\"] || this.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"]) {\n // Postgres and CockroachDB can pass multiple parameters to the `DISTINCT` function\n // https://www.postgresql.org/docs/9.5/sql-select.html#SQL-DISTINCT\n return \"COUNT(DISTINCT(\" +\n primaryColumns.map(function (c) { return distinctAlias + \".\" + _this.escape(c.databaseName); }).join(\", \") +\n \"))\";\n }\n if (this.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"]) {\n // MySQL & MariaDB can pass multiple parameters to the `DISTINCT` language construct\n // https://mariadb.com/kb/en/count-distinct/\n return \"COUNT(DISTINCT \" +\n primaryColumns.map(function (c) { return distinctAlias + \".\" + _this.escape(c.databaseName); }).join(\", \") +\n \")\";\n }\n if (this.connection.driver instanceof _driver_sap_SapDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"]) {\n // SQL Server has gotta be different from everyone else. They don't support\n // distinct counting multiple columns & they don't have the same operator\n // characteristic for concatenating, so we gotta use the `CONCAT` function.\n // However, If it's exactly 1 column we can omit the `CONCAT` for better performance.\n var columnsExpression = primaryColumns.map(function (primaryColumn) { return distinctAlias + \".\" + _this.escape(primaryColumn.databaseName); }).join(\", '|;|', \");\n if (primaryColumns.length === 1) {\n return \"COUNT(DISTINCT(\" + columnsExpression + \"))\";\n }\n return \"COUNT(DISTINCT(CONCAT(\" + columnsExpression + \")))\";\n }\n // If all else fails, fall back to a `COUNT` and `DISTINCT` across all the primary columns concatenated.\n // Per the SQL spec, this is the canonical string concatenation mechanism which is most\n // likely to work across servers implementing the SQL standard.\n // Please note, if there is only one primary column that the concatenation does not occur in this\n // query and the query is a standard `COUNT DISTINCT` in that case.\n return \"COUNT(DISTINCT(\" +\n primaryColumns.map(function (c) { return distinctAlias + \".\" + _this.escape(c.databaseName); }).join(\" || '|;|' || \") +\n \"))\";\n };\n SelectQueryBuilder.prototype.executeCountQuery = function (queryRunner) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var countSql, results;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n countSql = this.computeCountExpression();\n return [4 /*yield*/, this.clone()\n .orderBy()\n .groupBy()\n .offset(undefined)\n .limit(undefined)\n .skip(undefined)\n .take(undefined)\n .select(countSql, \"cnt\")\n .setOption(\"disable-global-order\")\n .loadRawResults(queryRunner)];\n case 1:\n results = _a.sent();\n if (!results || !results[0] || !results[0][\"cnt\"])\n return [2 /*return*/, 0];\n return [2 /*return*/, parseInt(results[0][\"cnt\"])];\n }\n });\n });\n };\n /**\n * Executes sql generated by query builder and returns object with raw results and entities created from them.\n */\n SelectQueryBuilder.prototype.executeEntitiesAndRawResults = function (queryRunner) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n 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;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!this.expressionMap.mainAlias)\n throw new Error(\"Alias is not set. Use \\\"from\\\" method to set an alias.\");\n 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)\n throw new _error_PessimisticLockTransactionRequiredError__WEBPACK_IMPORTED_MODULE_3__[\"PessimisticLockTransactionRequiredError\"]();\n if (this.expressionMap.lockMode === \"optimistic\") {\n metadata = this.expressionMap.mainAlias.metadata;\n if (!metadata.versionColumn && !metadata.updateDateColumn)\n throw new _error_NoVersionOrUpdateDateColumnError__WEBPACK_IMPORTED_MODULE_4__[\"NoVersionOrUpdateDateColumnError\"](metadata.name);\n }\n relationIdLoader = new _relation_id_RelationIdLoader__WEBPACK_IMPORTED_MODULE_10__[\"RelationIdLoader\"](this.connection, queryRunner, this.expressionMap.relationIdAttributes);\n relationCountLoader = new _relation_count_RelationCountLoader__WEBPACK_IMPORTED_MODULE_12__[\"RelationCountLoader\"](this.connection, queryRunner, this.expressionMap.relationCountAttributes);\n relationIdMetadataTransformer = new _relation_id_RelationIdMetadataToAttributeTransformer__WEBPACK_IMPORTED_MODULE_11__[\"RelationIdMetadataToAttributeTransformer\"](this.expressionMap);\n relationIdMetadataTransformer.transform();\n relationCountMetadataTransformer = new _relation_count_RelationCountMetadataToAttributeTransformer__WEBPACK_IMPORTED_MODULE_13__[\"RelationCountMetadataToAttributeTransformer\"](this.expressionMap);\n relationCountMetadataTransformer.transform();\n rawResults = [], entities = [];\n if (!((this.expressionMap.skip || this.expressionMap.take) && this.expressionMap.joinAttributes.length > 0)) return [3 /*break*/, 4];\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.createOrderByCombinedWithSelectExpression(\"distinctAlias\"), 2), selects = _a[0], orderBys_1 = _a[1];\n metadata_1 = this.expressionMap.mainAlias.metadata;\n mainAliasName_1 = this.expressionMap.mainAlias.name;\n querySelects = metadata_1.primaryColumns.map(function (primaryColumn) {\n var distinctAlias = _this.escape(\"distinctAlias\");\n var columnAlias = _this.escape(_driver_DriverUtils__WEBPACK_IMPORTED_MODULE_20__[\"DriverUtils\"].buildColumnAlias(_this.connection.driver, mainAliasName_1, primaryColumn.databaseName));\n if (!orderBys_1[columnAlias]) // make sure we aren't overriding user-defined order in inverse direction\n orderBys_1[columnAlias] = \"ASC\";\n var alias = _driver_DriverUtils__WEBPACK_IMPORTED_MODULE_20__[\"DriverUtils\"].buildColumnAlias(_this.connection.driver, \"ids_\" + mainAliasName_1, primaryColumn.databaseName);\n return distinctAlias + \".\" + columnAlias + \" as \\\"\" + alias + \"\\\"\";\n });\n return [4 /*yield*/, new SelectQueryBuilder(this.connection, queryRunner)\n .select(\"DISTINCT \" + querySelects.join(\", \"))\n .addSelect(selects)\n .from(\"(\" + this.clone().orderBy().getQuery() + \")\", \"distinctAlias\")\n .offset(this.expressionMap.skip)\n .limit(this.expressionMap.take)\n .orderBy(orderBys_1)\n .cache(this.expressionMap.cache ? this.expressionMap.cache : this.expressionMap.cacheId, this.expressionMap.cacheDuration)\n .setParameters(this.getParameters())\n .setNativeParameters(this.expressionMap.nativeParameters)\n .getRawMany()];\n case 1:\n rawResults = _b.sent();\n if (!(rawResults.length > 0)) return [3 /*break*/, 3];\n condition = \"\";\n parameters_1 = {};\n if (metadata_1.hasMultiplePrimaryKeys) {\n condition = rawResults.map(function (result, index) {\n return metadata_1.primaryColumns.map(function (primaryColumn) {\n var paramKey = \"orm_distinct_ids_\" + index + \"_\" + primaryColumn.databaseName;\n parameters_1[paramKey] = result[\"ids_\" + mainAliasName_1 + \"_\" + primaryColumn.databaseName];\n return mainAliasName_1 + \".\" + primaryColumn.propertyPath + \"=:\" + paramKey;\n }).join(\" AND \");\n }).join(\" OR \");\n }\n else {\n alias_1 = _driver_DriverUtils__WEBPACK_IMPORTED_MODULE_20__[\"DriverUtils\"].buildColumnAlias(this.connection.driver, \"ids_\" + mainAliasName_1, metadata_1.primaryColumns[0].databaseName);\n ids = rawResults.map(function (result) { return result[alias_1]; });\n areAllNumbers = ids.every(function (id) { return typeof id === \"number\"; });\n if (areAllNumbers) {\n // fixes #190. if all numbers then its safe to perform query without parameter\n condition = mainAliasName_1 + \".\" + metadata_1.primaryColumns[0].propertyPath + \" IN (\" + ids.join(\", \") + \")\";\n }\n else {\n parameters_1[\"orm_distinct_ids\"] = ids;\n condition = mainAliasName_1 + \".\" + metadata_1.primaryColumns[0].propertyPath + \" IN (:...orm_distinct_ids)\";\n }\n }\n return [4 /*yield*/, this.clone()\n .mergeExpressionMap({ extraAppendedAndWhereCondition: condition })\n .setParameters(parameters_1)\n .loadRawResults(queryRunner)];\n case 2:\n rawResults = _b.sent();\n _b.label = 3;\n case 3: return [3 /*break*/, 6];\n case 4: return [4 /*yield*/, this.loadRawResults(queryRunner)];\n case 5:\n rawResults = _b.sent();\n _b.label = 6;\n case 6:\n if (!(rawResults.length > 0)) return [3 /*break*/, 10];\n return [4 /*yield*/, relationIdLoader.load(rawResults)];\n case 7:\n rawRelationIdResults = _b.sent();\n return [4 /*yield*/, relationCountLoader.load(rawResults)];\n case 8:\n rawRelationCountResults = _b.sent();\n transformer = new _transformer_RawSqlResultsToEntityTransformer__WEBPACK_IMPORTED_MODULE_2__[\"RawSqlResultsToEntityTransformer\"](this.expressionMap, this.connection.driver, rawRelationIdResults, rawRelationCountResults, this.queryRunner);\n entities = transformer.transform(rawResults, this.expressionMap.mainAlias);\n if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 10];\n broadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_18__[\"BroadcasterResult\"]();\n queryRunner.broadcaster.broadcastLoadEventsForAll(broadcastResult, this.expressionMap.mainAlias.metadata, entities);\n if (!(broadcastResult.promises.length > 0)) return [3 /*break*/, 10];\n return [4 /*yield*/, Promise.all(broadcastResult.promises)];\n case 9:\n _b.sent();\n _b.label = 10;\n case 10: return [2 /*return*/, {\n raw: rawResults,\n entities: entities,\n }];\n }\n });\n });\n };\n SelectQueryBuilder.prototype.createOrderByCombinedWithSelectExpression = function (parentAlias) {\n var _this = this;\n // if table has a default order then apply it\n var orderBys = this.expressionMap.allOrderBys;\n var selectString = Object.keys(orderBys)\n .map(function (orderCriteria) {\n if (orderCriteria.indexOf(\".\") !== -1) {\n var criteriaParts = orderCriteria.split(\".\");\n var aliasName = criteriaParts[0];\n var propertyPath = criteriaParts.slice(1).join(\".\");\n var alias = _this.expressionMap.findAliasByName(aliasName);\n var column = alias.metadata.findColumnWithPropertyPath(propertyPath);\n return _this.escape(parentAlias) + \".\" + _this.escape(_driver_DriverUtils__WEBPACK_IMPORTED_MODULE_20__[\"DriverUtils\"].buildColumnAlias(_this.connection.driver, aliasName, column.databaseName));\n }\n else {\n if (_this.expressionMap.selects.find(function (select) { return select.selection === orderCriteria || select.aliasName === orderCriteria; }))\n return _this.escape(parentAlias) + \".\" + orderCriteria;\n return \"\";\n }\n })\n .join(\", \");\n var orderByObject = {};\n Object.keys(orderBys).forEach(function (orderCriteria) {\n if (orderCriteria.indexOf(\".\") !== -1) {\n var criteriaParts = orderCriteria.split(\".\");\n var aliasName = criteriaParts[0];\n var propertyPath = criteriaParts.slice(1).join(\".\");\n var alias = _this.expressionMap.findAliasByName(aliasName);\n var column = alias.metadata.findColumnWithPropertyPath(propertyPath);\n orderByObject[_this.escape(parentAlias) + \".\" + _this.escape(_driver_DriverUtils__WEBPACK_IMPORTED_MODULE_20__[\"DriverUtils\"].buildColumnAlias(_this.connection.driver, aliasName, column.databaseName))] = orderBys[orderCriteria];\n }\n else {\n if (_this.expressionMap.selects.find(function (select) { return select.selection === orderCriteria || select.aliasName === orderCriteria; })) {\n orderByObject[_this.escape(parentAlias) + \".\" + orderCriteria] = orderBys[orderCriteria];\n }\n else {\n orderByObject[orderCriteria] = orderBys[orderCriteria];\n }\n }\n });\n return [selectString, orderByObject];\n };\n /**\n * Loads raw results from the database.\n */\n SelectQueryBuilder.prototype.loadRawResults = function (queryRunner) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _a, sql, parameters, queryId, cacheOptions, savedQueryResultCacheOptions, results;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.getQueryAndParameters(), 2), sql = _a[0], parameters = _a[1];\n queryId = sql + \" -- PARAMETERS: \" + JSON.stringify(parameters);\n cacheOptions = typeof this.connection.options.cache === \"object\" ? this.connection.options.cache : {};\n savedQueryResultCacheOptions = undefined;\n if (!(this.connection.queryResultCache && (this.expressionMap.cache || cacheOptions.alwaysEnabled))) return [3 /*break*/, 2];\n return [4 /*yield*/, this.connection.queryResultCache.getFromCache({\n identifier: this.expressionMap.cacheId,\n query: queryId,\n duration: this.expressionMap.cacheDuration || cacheOptions.duration || 1000\n }, queryRunner)];\n case 1:\n savedQueryResultCacheOptions = _b.sent();\n if (savedQueryResultCacheOptions && !this.connection.queryResultCache.isExpired(savedQueryResultCacheOptions))\n return [2 /*return*/, JSON.parse(savedQueryResultCacheOptions.result)];\n _b.label = 2;\n case 2: return [4 /*yield*/, queryRunner.query(sql, parameters)];\n case 3:\n results = _b.sent();\n if (!(this.connection.queryResultCache && (this.expressionMap.cache || cacheOptions.alwaysEnabled))) return [3 /*break*/, 5];\n return [4 /*yield*/, this.connection.queryResultCache.storeInCache({\n identifier: this.expressionMap.cacheId,\n query: queryId,\n time: new Date().getTime(),\n duration: this.expressionMap.cacheDuration || cacheOptions.duration || 1000,\n result: JSON.stringify(results)\n }, savedQueryResultCacheOptions, queryRunner)];\n case 4:\n _b.sent();\n _b.label = 5;\n case 5: return [2 /*return*/, results];\n }\n });\n });\n };\n /**\n * Merges into expression map given expression map properties.\n */\n SelectQueryBuilder.prototype.mergeExpressionMap = function (expressionMap) {\n _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_19__[\"ObjectUtils\"].assign(this.expressionMap, expressionMap);\n return this;\n };\n /**\n * Normalizes a give number - converts to int if possible.\n */\n SelectQueryBuilder.prototype.normalizeNumber = function (num) {\n if (typeof num === \"number\" || num === undefined || num === null)\n return num;\n return Number(num);\n };\n /**\n * Creates a query builder used to execute sql queries inside this query builder.\n */\n SelectQueryBuilder.prototype.obtainQueryRunner = function () {\n return this.queryRunner || this.connection.createQueryRunner(\"slave\");\n };\n return SelectQueryBuilder;\n}(_QueryBuilder__WEBPACK_IMPORTED_MODULE_14__[\"QueryBuilder\"]));\n\n\n//# sourceMappingURL=SelectQueryBuilder.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/SelectQueryBuilder.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/SoftDeleteQueryBuilder.js":
/*!******************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/SoftDeleteQueryBuilder.js ***!
\******************************************************************************/
/*! exports provided: SoftDeleteQueryBuilder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SoftDeleteQueryBuilder\", function() { return SoftDeleteQueryBuilder; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../driver/cockroachdb/CockroachDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _QueryBuilder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./QueryBuilder */ \"./node_modules/typeorm/browser/query-builder/QueryBuilder.js\");\n/* harmony import */ var _result_UpdateResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./result/UpdateResult */ \"./node_modules/typeorm/browser/query-builder/result/UpdateResult.js\");\n/* harmony import */ var _error_ReturningStatementNotSupportedError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../error/ReturningStatementNotSupportedError */ \"./node_modules/typeorm/browser/error/ReturningStatementNotSupportedError.js\");\n/* harmony import */ var _ReturningResultsEntityUpdator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ReturningResultsEntityUpdator */ \"./node_modules/typeorm/browser/query-builder/ReturningResultsEntityUpdator.js\");\n/* harmony import */ var _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../driver/sqljs/SqljsDriver */ \"./node_modules/typeorm/browser/driver/sqljs/SqljsDriver.js\");\n/* harmony import */ var _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../subscriber/BroadcasterResult */ \"./node_modules/typeorm/browser/subscriber/BroadcasterResult.js\");\n/* harmony import */ var _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../driver/sqlite-abstract/AbstractSqliteDriver */ \"./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteDriver.js\");\n/* harmony import */ var _error_LimitOnUpdateNotSupportedError__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../error/LimitOnUpdateNotSupportedError */ \"./node_modules/typeorm/browser/error/LimitOnUpdateNotSupportedError.js\");\n/* harmony import */ var _error_MissingDeleteDateColumnError__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../error/MissingDeleteDateColumnError */ \"./node_modules/typeorm/browser/error/MissingDeleteDateColumnError.js\");\n/* harmony import */ var _error_UpdateValuesMissingError__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../error/UpdateValuesMissingError */ \"./node_modules/typeorm/browser/error/UpdateValuesMissingError.js\");\n/* harmony import */ var _entity_schema_EntitySchema__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../entity-schema/EntitySchema */ \"./node_modules/typeorm/browser/entity-schema/EntitySchema.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Allows to build complex sql queries in a fashion way and execute those queries.\n */\nvar SoftDeleteQueryBuilder = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SoftDeleteQueryBuilder, _super);\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function SoftDeleteQueryBuilder(connectionOrQueryBuilder, queryRunner) {\n var _this = _super.call(this, connectionOrQueryBuilder, queryRunner) || this;\n _this.expressionMap.aliasNamePrefixingEnabled = false;\n return _this;\n }\n // -------------------------------------------------------------------------\n // Public Implemented Methods\n // -------------------------------------------------------------------------\n /**\n * Gets generated sql query without parameters being replaced.\n */\n SoftDeleteQueryBuilder.prototype.getQuery = function () {\n var sql = this.createUpdateExpression();\n sql += this.createOrderByExpression();\n sql += this.createLimitExpression();\n return sql.trim();\n };\n /**\n * Executes sql generated by query builder and returns raw database results.\n */\n SoftDeleteQueryBuilder.prototype.execute = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var queryRunner, transactionStartedByUs, broadcastResult, returningResultsEntityUpdator, _a, sql, parameters, updateResult, result, driver, broadcastResult, error_1, rollbackError_1;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n queryRunner = this.obtainQueryRunner();\n transactionStartedByUs = false;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 13, 18, 23]);\n if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3];\n return [4 /*yield*/, queryRunner.startTransaction()];\n case 2:\n _b.sent();\n transactionStartedByUs = true;\n _b.label = 3;\n case 3:\n if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 5];\n broadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_7__[\"BroadcasterResult\"]();\n queryRunner.broadcaster.broadcastBeforeUpdateEvent(broadcastResult, this.expressionMap.mainAlias.metadata);\n if (!(broadcastResult.promises.length > 0)) return [3 /*break*/, 5];\n return [4 /*yield*/, Promise.all(broadcastResult.promises)];\n case 4:\n _b.sent();\n _b.label = 5;\n case 5:\n returningResultsEntityUpdator = new _ReturningResultsEntityUpdator__WEBPACK_IMPORTED_MODULE_5__[\"ReturningResultsEntityUpdator\"](queryRunner, this.expressionMap);\n if (this.expressionMap.updateEntity === true &&\n this.expressionMap.mainAlias.hasMetadata &&\n this.expressionMap.whereEntities.length > 0) {\n this.expressionMap.extraReturningColumns = returningResultsEntityUpdator.getUpdationReturningColumns();\n }\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.getQueryAndParameters(), 2), sql = _a[0], parameters = _a[1];\n updateResult = new _result_UpdateResult__WEBPACK_IMPORTED_MODULE_3__[\"UpdateResult\"]();\n return [4 /*yield*/, queryRunner.query(sql, parameters)];\n case 6:\n result = _b.sent();\n driver = queryRunner.connection.driver;\n if (driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"]) {\n updateResult.raw = result[0];\n updateResult.affected = result[1];\n }\n else {\n updateResult.raw = result;\n }\n if (!(this.expressionMap.updateEntity === true &&\n this.expressionMap.mainAlias.hasMetadata &&\n this.expressionMap.whereEntities.length > 0)) return [3 /*break*/, 8];\n return [4 /*yield*/, returningResultsEntityUpdator.update(updateResult, this.expressionMap.whereEntities)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8:\n if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 10];\n broadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_7__[\"BroadcasterResult\"]();\n queryRunner.broadcaster.broadcastAfterUpdateEvent(broadcastResult, this.expressionMap.mainAlias.metadata);\n if (!(broadcastResult.promises.length > 0)) return [3 /*break*/, 10];\n return [4 /*yield*/, Promise.all(broadcastResult.promises)];\n case 9:\n _b.sent();\n _b.label = 10;\n case 10:\n if (!transactionStartedByUs) return [3 /*break*/, 12];\n return [4 /*yield*/, queryRunner.commitTransaction()];\n case 11:\n _b.sent();\n _b.label = 12;\n case 12: return [2 /*return*/, updateResult];\n case 13:\n error_1 = _b.sent();\n if (!transactionStartedByUs) return [3 /*break*/, 17];\n _b.label = 14;\n case 14:\n _b.trys.push([14, 16, , 17]);\n return [4 /*yield*/, queryRunner.rollbackTransaction()];\n case 15:\n _b.sent();\n return [3 /*break*/, 17];\n case 16:\n rollbackError_1 = _b.sent();\n return [3 /*break*/, 17];\n case 17: throw error_1;\n case 18:\n if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 20];\n return [4 /*yield*/, queryRunner.release()];\n case 19:\n _b.sent();\n _b.label = 20;\n case 20:\n if (!(this.connection.driver instanceof _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_6__[\"SqljsDriver\"] && !queryRunner.isTransactionActive)) return [3 /*break*/, 22];\n return [4 /*yield*/, this.connection.driver.autoSave()];\n case 21:\n _b.sent();\n _b.label = 22;\n case 22: return [7 /*endfinally*/];\n case 23: return [2 /*return*/];\n }\n });\n });\n };\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Specifies FROM which entity's table select/update/delete/soft-delete will be executed.\n * Also sets a main string alias of the selection data.\n */\n SoftDeleteQueryBuilder.prototype.from = function (entityTarget, aliasName) {\n entityTarget = entityTarget instanceof _entity_schema_EntitySchema__WEBPACK_IMPORTED_MODULE_12__[\"EntitySchema\"] ? entityTarget.options.name : entityTarget;\n var mainAlias = this.createFromAlias(entityTarget, aliasName);\n this.expressionMap.setMainAlias(mainAlias);\n return this;\n };\n /**\n * Sets WHERE condition in the query builder.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n * Additionally you can add parameters used in where expression.\n */\n SoftDeleteQueryBuilder.prototype.where = function (where, parameters) {\n this.expressionMap.wheres = []; // don't move this block below since computeWhereParameter can add where expressions\n var condition = this.computeWhereParameter(where);\n if (condition)\n this.expressionMap.wheres = [{ type: \"simple\", condition: condition }];\n if (parameters)\n this.setParameters(parameters);\n return this;\n };\n /**\n * Adds new AND WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n SoftDeleteQueryBuilder.prototype.andWhere = function (where, parameters) {\n this.expressionMap.wheres.push({ type: \"and\", condition: this.computeWhereParameter(where) });\n if (parameters)\n this.setParameters(parameters);\n return this;\n };\n /**\n * Adds new OR WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n SoftDeleteQueryBuilder.prototype.orWhere = function (where, parameters) {\n this.expressionMap.wheres.push({ type: \"or\", condition: this.computeWhereParameter(where) });\n if (parameters)\n this.setParameters(parameters);\n return this;\n };\n /**\n * Adds new AND WHERE with conditions for the given ids.\n */\n SoftDeleteQueryBuilder.prototype.whereInIds = function (ids) {\n return this.where(this.createWhereIdsExpression(ids));\n };\n /**\n * Adds new AND WHERE with conditions for the given ids.\n */\n SoftDeleteQueryBuilder.prototype.andWhereInIds = function (ids) {\n return this.andWhere(this.createWhereIdsExpression(ids));\n };\n /**\n * Adds new OR WHERE with conditions for the given ids.\n */\n SoftDeleteQueryBuilder.prototype.orWhereInIds = function (ids) {\n return this.orWhere(this.createWhereIdsExpression(ids));\n };\n /**\n * Optional returning/output clause.\n */\n SoftDeleteQueryBuilder.prototype.output = function (output) {\n return this.returning(output);\n };\n /**\n * Optional returning/output clause.\n */\n SoftDeleteQueryBuilder.prototype.returning = function (returning) {\n // not all databases support returning/output cause\n if (!this.connection.driver.isReturningSqlSupported())\n throw new _error_ReturningStatementNotSupportedError__WEBPACK_IMPORTED_MODULE_4__[\"ReturningStatementNotSupportedError\"]();\n this.expressionMap.returning = returning;\n return this;\n };\n /**\n * Sets ORDER BY condition in the query builder.\n * If you had previously ORDER BY expression defined,\n * calling this function will override previously set ORDER BY conditions.\n */\n SoftDeleteQueryBuilder.prototype.orderBy = function (sort, order, nulls) {\n var _a, _b;\n if (order === void 0) { order = \"ASC\"; }\n if (sort) {\n if (sort instanceof Object) {\n this.expressionMap.orderBys = sort;\n }\n else {\n if (nulls) {\n this.expressionMap.orderBys = (_a = {}, _a[sort] = { order: order, nulls: nulls }, _a);\n }\n else {\n this.expressionMap.orderBys = (_b = {}, _b[sort] = order, _b);\n }\n }\n }\n else {\n this.expressionMap.orderBys = {};\n }\n return this;\n };\n /**\n * Adds ORDER BY condition in the query builder.\n */\n SoftDeleteQueryBuilder.prototype.addOrderBy = function (sort, order, nulls) {\n if (order === void 0) { order = \"ASC\"; }\n if (nulls) {\n this.expressionMap.orderBys[sort] = { order: order, nulls: nulls };\n }\n else {\n this.expressionMap.orderBys[sort] = order;\n }\n return this;\n };\n /**\n * Sets LIMIT - maximum number of rows to be selected.\n */\n SoftDeleteQueryBuilder.prototype.limit = function (limit) {\n this.expressionMap.limit = limit;\n return this;\n };\n /**\n * Indicates if entity must be updated after update operation.\n * This may produce extra query or use RETURNING / OUTPUT statement (depend on database).\n * Enabled by default.\n */\n SoftDeleteQueryBuilder.prototype.whereEntity = function (entity) {\n var _this = this;\n if (!this.expressionMap.mainAlias.hasMetadata)\n throw new Error(\".whereEntity method can only be used on queries which update real entity table.\");\n this.expressionMap.wheres = [];\n var entities = Array.isArray(entity) ? entity : [entity];\n entities.forEach(function (entity) {\n var entityIdMap = _this.expressionMap.mainAlias.metadata.getEntityIdMap(entity);\n if (!entityIdMap)\n throw new Error(\"Provided entity does not have ids set, cannot perform operation.\");\n _this.orWhereInIds(entityIdMap);\n });\n this.expressionMap.whereEntities = entities;\n return this;\n };\n /**\n * Indicates if entity must be updated after update operation.\n * This may produce extra query or use RETURNING / OUTPUT statement (depend on database).\n * Enabled by default.\n */\n SoftDeleteQueryBuilder.prototype.updateEntity = function (enabled) {\n this.expressionMap.updateEntity = enabled;\n return this;\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Creates UPDATE express used to perform insert query.\n */\n SoftDeleteQueryBuilder.prototype.createUpdateExpression = function () {\n var metadata = this.expressionMap.mainAlias.hasMetadata ? this.expressionMap.mainAlias.metadata : undefined;\n if (!metadata)\n throw new Error(\"Cannot get entity metadata for the given alias \\\"\" + this.expressionMap.mainAlias + \"\\\"\");\n if (!metadata.deleteDateColumn) {\n throw new _error_MissingDeleteDateColumnError__WEBPACK_IMPORTED_MODULE_10__[\"MissingDeleteDateColumnError\"](metadata);\n }\n // prepare columns and values to be updated\n var updateColumnAndValues = [];\n var newParameters = {};\n switch (this.expressionMap.queryType) {\n case \"soft-delete\":\n updateColumnAndValues.push(this.escape(metadata.deleteDateColumn.databaseName) + \" = CURRENT_TIMESTAMP\");\n break;\n case \"restore\":\n updateColumnAndValues.push(this.escape(metadata.deleteDateColumn.databaseName) + \" = NULL\");\n break;\n default:\n throw new Error(\"The queryType must be \\\"soft-delete\\\" or \\\"restore\\\"\");\n }\n if (metadata.versionColumn)\n updateColumnAndValues.push(this.escape(metadata.versionColumn.databaseName) + \" = \" + this.escape(metadata.versionColumn.databaseName) + \" + 1\");\n if (metadata.updateDateColumn)\n updateColumnAndValues.push(this.escape(metadata.updateDateColumn.databaseName) + \" = CURRENT_TIMESTAMP\"); // todo: fix issue with CURRENT_TIMESTAMP(6) being used, can \"DEFAULT\" be used?!\n if (updateColumnAndValues.length <= 0) {\n throw new _error_UpdateValuesMissingError__WEBPACK_IMPORTED_MODULE_11__[\"UpdateValuesMissingError\"]();\n }\n // we re-write parameters this way because we want our \"UPDATE ... SET\" parameters to be first in the list of \"nativeParameters\"\n // because some drivers like mysql depend on order of parameters\n if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] ||\n this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"] ||\n this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_8__[\"AbstractSqliteDriver\"]) {\n this.expressionMap.nativeParameters = Object.assign(newParameters, this.expressionMap.nativeParameters);\n }\n // get a table name and all column database names\n var whereExpression = this.createWhereExpression();\n var returningExpression = this.createReturningExpression();\n // generate and return sql update query\n if (returningExpression && (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"CockroachDriver\"])) {\n return \"UPDATE \" + this.getTableName(this.getMainTableName()) + \" SET \" + updateColumnAndValues.join(\", \") + whereExpression + \" RETURNING \" + returningExpression;\n }\n else if (returningExpression && this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"]) {\n return \"UPDATE \" + this.getTableName(this.getMainTableName()) + \" SET \" + updateColumnAndValues.join(\", \") + \" OUTPUT \" + returningExpression + whereExpression;\n }\n else {\n return \"UPDATE \" + this.getTableName(this.getMainTableName()) + \" SET \" + updateColumnAndValues.join(\", \") + whereExpression; // todo: how do we replace aliases in where to nothing?\n }\n };\n /**\n * Creates \"ORDER BY\" part of SQL query.\n */\n SoftDeleteQueryBuilder.prototype.createOrderByExpression = function () {\n var _this = this;\n var orderBys = this.expressionMap.orderBys;\n if (Object.keys(orderBys).length > 0)\n return \" ORDER BY \" + Object.keys(orderBys)\n .map(function (columnName) {\n if (typeof orderBys[columnName] === \"string\") {\n return _this.replacePropertyNames(columnName) + \" \" + orderBys[columnName];\n }\n else {\n return _this.replacePropertyNames(columnName) + \" \" + orderBys[columnName].order + \" \" + orderBys[columnName].nulls;\n }\n })\n .join(\", \");\n return \"\";\n };\n /**\n * Creates \"LIMIT\" parts of SQL query.\n */\n SoftDeleteQueryBuilder.prototype.createLimitExpression = function () {\n var limit = this.expressionMap.limit;\n if (limit) {\n if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"]) {\n return \" LIMIT \" + limit;\n }\n else {\n throw new _error_LimitOnUpdateNotSupportedError__WEBPACK_IMPORTED_MODULE_9__[\"LimitOnUpdateNotSupportedError\"]();\n }\n }\n return \"\";\n };\n return SoftDeleteQueryBuilder;\n}(_QueryBuilder__WEBPACK_IMPORTED_MODULE_2__[\"QueryBuilder\"]));\n\n\n//# sourceMappingURL=SoftDeleteQueryBuilder.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/SoftDeleteQueryBuilder.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/UpdateQueryBuilder.js":
/*!**************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/UpdateQueryBuilder.js ***!
\**************************************************************************/
/*! exports provided: UpdateQueryBuilder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UpdateQueryBuilder\", function() { return UpdateQueryBuilder; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../driver/cockroachdb/CockroachDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _QueryBuilder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./QueryBuilder */ \"./node_modules/typeorm/browser/query-builder/QueryBuilder.js\");\n/* harmony import */ var _metadata_EntityMetadata__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../metadata/EntityMetadata */ \"./node_modules/typeorm/browser/metadata/EntityMetadata.js\");\n/* harmony import */ var _result_UpdateResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./result/UpdateResult */ \"./node_modules/typeorm/browser/query-builder/result/UpdateResult.js\");\n/* harmony import */ var _error_ReturningStatementNotSupportedError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../error/ReturningStatementNotSupportedError */ \"./node_modules/typeorm/browser/error/ReturningStatementNotSupportedError.js\");\n/* harmony import */ var _ReturningResultsEntityUpdator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ReturningResultsEntityUpdator */ \"./node_modules/typeorm/browser/query-builder/ReturningResultsEntityUpdator.js\");\n/* harmony import */ var _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../driver/sqljs/SqljsDriver */ \"./node_modules/typeorm/browser/driver/sqljs/SqljsDriver.js\");\n/* harmony import */ var _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../subscriber/BroadcasterResult */ \"./node_modules/typeorm/browser/subscriber/BroadcasterResult.js\");\n/* harmony import */ var _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../driver/sqlite-abstract/AbstractSqliteDriver */ \"./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteDriver.js\");\n/* harmony import */ var _error_LimitOnUpdateNotSupportedError__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../error/LimitOnUpdateNotSupportedError */ \"./node_modules/typeorm/browser/error/LimitOnUpdateNotSupportedError.js\");\n/* harmony import */ var _error_UpdateValuesMissingError__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../error/UpdateValuesMissingError */ \"./node_modules/typeorm/browser/error/UpdateValuesMissingError.js\");\n/* harmony import */ var _error_EntityColumnNotFound__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../error/EntityColumnNotFound */ \"./node_modules/typeorm/browser/error/EntityColumnNotFound.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Allows to build complex sql queries in a fashion way and execute those queries.\n */\nvar UpdateQueryBuilder = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(UpdateQueryBuilder, _super);\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function UpdateQueryBuilder(connectionOrQueryBuilder, queryRunner) {\n var _this = _super.call(this, connectionOrQueryBuilder, queryRunner) || this;\n _this.expressionMap.aliasNamePrefixingEnabled = false;\n return _this;\n }\n // -------------------------------------------------------------------------\n // Public Implemented Methods\n // -------------------------------------------------------------------------\n /**\n * Gets generated sql query without parameters being replaced.\n */\n UpdateQueryBuilder.prototype.getQuery = function () {\n var sql = this.createComment();\n sql += this.createUpdateExpression();\n sql += this.createOrderByExpression();\n sql += this.createLimitExpression();\n return sql.trim();\n };\n /**\n * Executes sql generated by query builder and returns raw database results.\n */\n UpdateQueryBuilder.prototype.execute = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var queryRunner, transactionStartedByUs, broadcastResult, declareSql, selectOutputSql, returningResultsEntityUpdator, _a, updateSql, parameters, updateResult, statements, result, broadcastResult, error_1, rollbackError_1;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n queryRunner = this.obtainQueryRunner();\n transactionStartedByUs = false;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 13, 18, 23]);\n if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3];\n return [4 /*yield*/, queryRunner.startTransaction()];\n case 2:\n _b.sent();\n transactionStartedByUs = true;\n _b.label = 3;\n case 3:\n if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 5];\n broadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_8__[\"BroadcasterResult\"]();\n queryRunner.broadcaster.broadcastBeforeUpdateEvent(broadcastResult, this.expressionMap.mainAlias.metadata, this.expressionMap.valuesSet);\n if (!(broadcastResult.promises.length > 0)) return [3 /*break*/, 5];\n return [4 /*yield*/, Promise.all(broadcastResult.promises)];\n case 4:\n _b.sent();\n _b.label = 5;\n case 5:\n declareSql = null;\n selectOutputSql = null;\n returningResultsEntityUpdator = new _ReturningResultsEntityUpdator__WEBPACK_IMPORTED_MODULE_6__[\"ReturningResultsEntityUpdator\"](queryRunner, this.expressionMap);\n if (this.expressionMap.updateEntity === true &&\n this.expressionMap.mainAlias.hasMetadata &&\n this.expressionMap.whereEntities.length > 0) {\n this.expressionMap.extraReturningColumns = returningResultsEntityUpdator.getUpdationReturningColumns();\n if (this.expressionMap.extraReturningColumns.length > 0 && this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"]) {\n declareSql = this.connection.driver.buildTableVariableDeclaration(\"@OutputTable\", this.expressionMap.extraReturningColumns);\n selectOutputSql = \"SELECT * FROM @OutputTable\";\n }\n }\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.getQueryAndParameters(), 2), updateSql = _a[0], parameters = _a[1];\n updateResult = new _result_UpdateResult__WEBPACK_IMPORTED_MODULE_4__[\"UpdateResult\"]();\n statements = [declareSql, updateSql, selectOutputSql];\n return [4 /*yield*/, queryRunner.query(statements.filter(function (sql) { return sql != null; }).join(\";\\n\\n\"), parameters)];\n case 6:\n result = _b.sent();\n if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"]) {\n updateResult.raw = result[0];\n updateResult.affected = result[1];\n }\n else if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"]) {\n updateResult.raw = result;\n updateResult.affected = result.affectedRows;\n }\n else if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"]) {\n updateResult.raw = result;\n updateResult.affected = result.numberOfRecordsUpdated;\n }\n else if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"BetterSqlite3Driver\"]) { // only works for better-sqlite3\n updateResult.raw = result;\n updateResult.affected = result.changes;\n }\n else {\n updateResult.raw = result;\n }\n if (!(this.expressionMap.updateEntity === true &&\n this.expressionMap.mainAlias.hasMetadata &&\n this.expressionMap.whereEntities.length > 0)) return [3 /*break*/, 8];\n return [4 /*yield*/, returningResultsEntityUpdator.update(updateResult, this.expressionMap.whereEntities)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8:\n if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 10];\n broadcastResult = new _subscriber_BroadcasterResult__WEBPACK_IMPORTED_MODULE_8__[\"BroadcasterResult\"]();\n queryRunner.broadcaster.broadcastAfterUpdateEvent(broadcastResult, this.expressionMap.mainAlias.metadata);\n if (!(broadcastResult.promises.length > 0)) return [3 /*break*/, 10];\n return [4 /*yield*/, Promise.all(broadcastResult.promises)];\n case 9:\n _b.sent();\n _b.label = 10;\n case 10:\n if (!transactionStartedByUs) return [3 /*break*/, 12];\n return [4 /*yield*/, queryRunner.commitTransaction()];\n case 11:\n _b.sent();\n _b.label = 12;\n case 12: return [2 /*return*/, updateResult];\n case 13:\n error_1 = _b.sent();\n if (!transactionStartedByUs) return [3 /*break*/, 17];\n _b.label = 14;\n case 14:\n _b.trys.push([14, 16, , 17]);\n return [4 /*yield*/, queryRunner.rollbackTransaction()];\n case 15:\n _b.sent();\n return [3 /*break*/, 17];\n case 16:\n rollbackError_1 = _b.sent();\n return [3 /*break*/, 17];\n case 17: throw error_1;\n case 18:\n if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 20];\n return [4 /*yield*/, queryRunner.release()];\n case 19:\n _b.sent();\n _b.label = 20;\n case 20:\n if (!(this.connection.driver instanceof _driver_sqljs_SqljsDriver__WEBPACK_IMPORTED_MODULE_7__[\"SqljsDriver\"] && !queryRunner.isTransactionActive)) return [3 /*break*/, 22];\n return [4 /*yield*/, this.connection.driver.autoSave()];\n case 21:\n _b.sent();\n _b.label = 22;\n case 22: return [7 /*endfinally*/];\n case 23: return [2 /*return*/];\n }\n });\n });\n };\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Values needs to be updated.\n */\n UpdateQueryBuilder.prototype.set = function (values) {\n this.expressionMap.valuesSet = values;\n return this;\n };\n /**\n * Sets WHERE condition in the query builder.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n * Additionally you can add parameters used in where expression.\n */\n UpdateQueryBuilder.prototype.where = function (where, parameters) {\n this.expressionMap.wheres = []; // don't move this block below since computeWhereParameter can add where expressions\n var condition = this.computeWhereParameter(where);\n if (condition)\n this.expressionMap.wheres = [{ type: \"simple\", condition: condition }];\n if (parameters)\n this.setParameters(parameters);\n return this;\n };\n /**\n * Adds new AND WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n UpdateQueryBuilder.prototype.andWhere = function (where, parameters) {\n this.expressionMap.wheres.push({ type: \"and\", condition: this.computeWhereParameter(where) });\n if (parameters)\n this.setParameters(parameters);\n return this;\n };\n /**\n * Adds new OR WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n UpdateQueryBuilder.prototype.orWhere = function (where, parameters) {\n this.expressionMap.wheres.push({ type: \"or\", condition: this.computeWhereParameter(where) });\n if (parameters)\n this.setParameters(parameters);\n return this;\n };\n /**\n * Adds new AND WHERE with conditions for the given ids.\n */\n UpdateQueryBuilder.prototype.whereInIds = function (ids) {\n return this.where(this.createWhereIdsExpression(ids));\n };\n /**\n * Adds new AND WHERE with conditions for the given ids.\n */\n UpdateQueryBuilder.prototype.andWhereInIds = function (ids) {\n return this.andWhere(this.createWhereIdsExpression(ids));\n };\n /**\n * Adds new OR WHERE with conditions for the given ids.\n */\n UpdateQueryBuilder.prototype.orWhereInIds = function (ids) {\n return this.orWhere(this.createWhereIdsExpression(ids));\n };\n /**\n * Optional returning/output clause.\n */\n UpdateQueryBuilder.prototype.output = function (output) {\n return this.returning(output);\n };\n /**\n * Optional returning/output clause.\n */\n UpdateQueryBuilder.prototype.returning = function (returning) {\n // not all databases support returning/output cause\n if (!this.connection.driver.isReturningSqlSupported())\n throw new _error_ReturningStatementNotSupportedError__WEBPACK_IMPORTED_MODULE_5__[\"ReturningStatementNotSupportedError\"]();\n this.expressionMap.returning = returning;\n return this;\n };\n /**\n * Sets ORDER BY condition in the query builder.\n * If you had previously ORDER BY expression defined,\n * calling this function will override previously set ORDER BY conditions.\n */\n UpdateQueryBuilder.prototype.orderBy = function (sort, order, nulls) {\n var _a, _b;\n if (order === void 0) { order = \"ASC\"; }\n if (sort) {\n if (sort instanceof Object) {\n this.expressionMap.orderBys = sort;\n }\n else {\n if (nulls) {\n this.expressionMap.orderBys = (_a = {}, _a[sort] = { order: order, nulls: nulls }, _a);\n }\n else {\n this.expressionMap.orderBys = (_b = {}, _b[sort] = order, _b);\n }\n }\n }\n else {\n this.expressionMap.orderBys = {};\n }\n return this;\n };\n /**\n * Adds ORDER BY condition in the query builder.\n */\n UpdateQueryBuilder.prototype.addOrderBy = function (sort, order, nulls) {\n if (order === void 0) { order = \"ASC\"; }\n if (nulls) {\n this.expressionMap.orderBys[sort] = { order: order, nulls: nulls };\n }\n else {\n this.expressionMap.orderBys[sort] = order;\n }\n return this;\n };\n /**\n * Sets LIMIT - maximum number of rows to be selected.\n */\n UpdateQueryBuilder.prototype.limit = function (limit) {\n this.expressionMap.limit = limit;\n return this;\n };\n /**\n * Indicates if entity must be updated after update operation.\n * This may produce extra query or use RETURNING / OUTPUT statement (depend on database).\n * Enabled by default.\n */\n UpdateQueryBuilder.prototype.whereEntity = function (entity) {\n var _this = this;\n if (!this.expressionMap.mainAlias.hasMetadata)\n throw new Error(\".whereEntity method can only be used on queries which update real entity table.\");\n this.expressionMap.wheres = [];\n var entities = Array.isArray(entity) ? entity : [entity];\n entities.forEach(function (entity) {\n var entityIdMap = _this.expressionMap.mainAlias.metadata.getEntityIdMap(entity);\n if (!entityIdMap)\n throw new Error(\"Provided entity does not have ids set, cannot perform operation.\");\n _this.orWhereInIds(entityIdMap);\n });\n this.expressionMap.whereEntities = entities;\n return this;\n };\n /**\n * Indicates if entity must be updated after update operation.\n * This may produce extra query or use RETURNING / OUTPUT statement (depend on database).\n * Enabled by default.\n */\n UpdateQueryBuilder.prototype.updateEntity = function (enabled) {\n this.expressionMap.updateEntity = enabled;\n return this;\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Creates UPDATE express used to perform insert query.\n */\n UpdateQueryBuilder.prototype.createUpdateExpression = function () {\n var _this = this;\n var valuesSet = this.getValueSet();\n var metadata = this.expressionMap.mainAlias.hasMetadata ? this.expressionMap.mainAlias.metadata : undefined;\n // prepare columns and values to be updated\n var updateColumnAndValues = [];\n var updatedColumns = [];\n var newParameters = {};\n var parametersCount = this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] ||\n this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"] ||\n this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"] ||\n this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_9__[\"AbstractSqliteDriver\"] ||\n this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SapDriver\"]\n ? 0 : Object.keys(this.expressionMap.nativeParameters).length;\n if (metadata) {\n _metadata_EntityMetadata__WEBPACK_IMPORTED_MODULE_3__[\"EntityMetadata\"].createPropertyPath(metadata, valuesSet).forEach(function (propertyPath) {\n // todo: make this and other query builder to work with properly with tables without metadata\n var columns = metadata.findColumnsWithPropertyPath(propertyPath);\n if (columns.length <= 0) {\n throw new _error_EntityColumnNotFound__WEBPACK_IMPORTED_MODULE_12__[\"EntityColumnNotFound\"](propertyPath);\n }\n columns.forEach(function (column) {\n if (!column.isUpdate) {\n return;\n }\n updatedColumns.push(column);\n var paramName = \"upd_\" + column.databaseName;\n //\n var value = column.getEntityValue(valuesSet);\n if (column.referencedColumn && value instanceof Object) {\n value = column.referencedColumn.getEntityValue(value);\n }\n else if (!(value instanceof Function)) {\n value = _this.connection.driver.preparePersistentValue(value, column);\n }\n // todo: duplication zone\n if (value instanceof Function) { // support for SQL expressions in update query\n updateColumnAndValues.push(_this.escape(column.databaseName) + \" = \" + value());\n }\n else if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SapDriver\"] && value === null) {\n updateColumnAndValues.push(_this.escape(column.databaseName) + \" = NULL\");\n }\n else {\n if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"]) {\n value = _this.connection.driver.parametrizeValue(column, value);\n // } else if (value instanceof Array) {\n // value = new ArrayParameter(value);\n }\n if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] ||\n _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"] ||\n _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"] ||\n _this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_9__[\"AbstractSqliteDriver\"] ||\n _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SapDriver\"]) {\n newParameters[paramName] = value;\n }\n else {\n _this.expressionMap.nativeParameters[paramName] = value;\n }\n var expression = null;\n if ((_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] || _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"]) && _this.connection.driver.spatialTypes.indexOf(column.type) !== -1) {\n var useLegacy = _this.connection.driver.options.legacySpatialSupport;\n var geomFromText = useLegacy ? \"GeomFromText\" : \"ST_GeomFromText\";\n if (column.srid != null) {\n expression = geomFromText + \"(\" + _this.connection.driver.createParameter(paramName, parametersCount) + \", \" + column.srid + \")\";\n }\n else {\n expression = geomFromText + \"(\" + _this.connection.driver.createParameter(paramName, parametersCount) + \")\";\n }\n }\n else if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"] && _this.connection.driver.spatialTypes.indexOf(column.type) !== -1) {\n if (column.srid != null) {\n expression = \"ST_SetSRID(ST_GeomFromGeoJSON(\" + _this.connection.driver.createParameter(paramName, parametersCount) + \"), \" + column.srid + \")::\" + column.type;\n }\n else {\n expression = \"ST_GeomFromGeoJSON(\" + _this.connection.driver.createParameter(paramName, parametersCount) + \")::\" + column.type;\n }\n }\n else if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"] && _this.connection.driver.spatialTypes.indexOf(column.type) !== -1) {\n expression = column.type + \"::STGeomFromText(\" + _this.connection.driver.createParameter(paramName, parametersCount) + \", \" + (column.srid || \"0\") + \")\";\n }\n else {\n expression = _this.connection.driver.createParameter(paramName, parametersCount);\n }\n updateColumnAndValues.push(_this.escape(column.databaseName) + \" = \" + expression);\n parametersCount++;\n }\n });\n });\n if (metadata.versionColumn && updatedColumns.indexOf(metadata.versionColumn) === -1)\n updateColumnAndValues.push(this.escape(metadata.versionColumn.databaseName) + \" = \" + this.escape(metadata.versionColumn.databaseName) + \" + 1\");\n if (metadata.updateDateColumn && updatedColumns.indexOf(metadata.updateDateColumn) === -1)\n updateColumnAndValues.push(this.escape(metadata.updateDateColumn.databaseName) + \" = CURRENT_TIMESTAMP\"); // todo: fix issue with CURRENT_TIMESTAMP(6) being used, can \"DEFAULT\" be used?!\n }\n else {\n Object.keys(valuesSet).map(function (key) {\n var value = valuesSet[key];\n // todo: duplication zone\n if (value instanceof Function) { // support for SQL expressions in update query\n updateColumnAndValues.push(_this.escape(key) + \" = \" + value());\n }\n else if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SapDriver\"] && value === null) {\n updateColumnAndValues.push(_this.escape(key) + \" = NULL\");\n }\n else {\n // we need to store array values in a special class to make sure parameter replacement will work correctly\n // if (value instanceof Array)\n // value = new ArrayParameter(value);\n if (_this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] ||\n _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"] ||\n _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"] ||\n _this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_9__[\"AbstractSqliteDriver\"] ||\n _this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SapDriver\"]) {\n newParameters[key] = value;\n }\n else {\n _this.expressionMap.nativeParameters[key] = value;\n }\n updateColumnAndValues.push(_this.escape(key) + \" = \" + _this.connection.driver.createParameter(key, parametersCount));\n parametersCount++;\n }\n });\n }\n if (updateColumnAndValues.length <= 0) {\n throw new _error_UpdateValuesMissingError__WEBPACK_IMPORTED_MODULE_11__[\"UpdateValuesMissingError\"]();\n }\n // we re-write parameters this way because we want our \"UPDATE ... SET\" parameters to be first in the list of \"nativeParameters\"\n // because some drivers like mysql depend on order of parameters\n if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] ||\n this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"] ||\n this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"] ||\n this.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_9__[\"AbstractSqliteDriver\"] ||\n this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SapDriver\"]) {\n this.expressionMap.nativeParameters = Object.assign(newParameters, this.expressionMap.nativeParameters);\n }\n // get a table name and all column database names\n var whereExpression = this.createWhereExpression();\n var returningExpression = this.createReturningExpression();\n // generate and return sql update query\n if (returningExpression && (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"OracleDriver\"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"CockroachDriver\"])) {\n return \"UPDATE \" + this.getTableName(this.getMainTableName()) + \" SET \" + updateColumnAndValues.join(\", \") + whereExpression + \" RETURNING \" + returningExpression;\n }\n else if (returningExpression && this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"SqlServerDriver\"]) {\n return \"UPDATE \" + this.getTableName(this.getMainTableName()) + \" SET \" + updateColumnAndValues.join(\", \") + \" OUTPUT \" + returningExpression + whereExpression;\n }\n else {\n return \"UPDATE \" + this.getTableName(this.getMainTableName()) + \" SET \" + updateColumnAndValues.join(\", \") + whereExpression; // todo: how do we replace aliases in where to nothing?\n }\n };\n /**\n * Creates \"ORDER BY\" part of SQL query.\n */\n UpdateQueryBuilder.prototype.createOrderByExpression = function () {\n var _this = this;\n var orderBys = this.expressionMap.orderBys;\n if (Object.keys(orderBys).length > 0)\n return \" ORDER BY \" + Object.keys(orderBys)\n .map(function (columnName) {\n if (typeof orderBys[columnName] === \"string\") {\n return _this.replacePropertyNames(columnName) + \" \" + orderBys[columnName];\n }\n else {\n return _this.replacePropertyNames(columnName) + \" \" + orderBys[columnName].order + \" \" + orderBys[columnName].nulls;\n }\n })\n .join(\", \");\n return \"\";\n };\n /**\n * Creates \"LIMIT\" parts of SQL query.\n */\n UpdateQueryBuilder.prototype.createLimitExpression = function () {\n var limit = this.expressionMap.limit;\n if (limit) {\n if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"]) {\n return \" LIMIT \" + limit;\n }\n else {\n throw new _error_LimitOnUpdateNotSupportedError__WEBPACK_IMPORTED_MODULE_10__[\"LimitOnUpdateNotSupportedError\"]();\n }\n }\n return \"\";\n };\n /**\n * Gets array of values need to be inserted into the target table.\n */\n UpdateQueryBuilder.prototype.getValueSet = function () {\n if (this.expressionMap.valuesSet instanceof Object)\n return this.expressionMap.valuesSet;\n throw new _error_UpdateValuesMissingError__WEBPACK_IMPORTED_MODULE_11__[\"UpdateValuesMissingError\"]();\n };\n return UpdateQueryBuilder;\n}(_QueryBuilder__WEBPACK_IMPORTED_MODULE_2__[\"QueryBuilder\"]));\n\n\n//# sourceMappingURL=UpdateQueryBuilder.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/UpdateQueryBuilder.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/relation-count/RelationCountAttribute.js":
/*!*********************************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/relation-count/RelationCountAttribute.js ***!
\*********************************************************************************************/
/*! exports provided: RelationCountAttribute */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RelationCountAttribute\", function() { return RelationCountAttribute; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../QueryBuilderUtils */ \"./node_modules/typeorm/browser/query-builder/QueryBuilderUtils.js\");\n/* harmony import */ var _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/ObjectUtils */ \"./node_modules/typeorm/browser/util/ObjectUtils.js\");\n\n\n\nvar RelationCountAttribute = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function RelationCountAttribute(expressionMap, relationCountAttribute) {\n this.expressionMap = expressionMap;\n _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_2__[\"ObjectUtils\"].assign(this, relationCountAttribute || {});\n }\n Object.defineProperty(RelationCountAttribute.prototype, \"joinInverseSideMetadata\", {\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n get: function () {\n return this.relation.inverseEntityMetadata;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RelationCountAttribute.prototype, \"parentAlias\", {\n /**\n * Alias of the parent of this join.\n * For example, if we join (\"post.category\", \"categoryAlias\") then \"post\" is a parent alias.\n * This value is extracted from entityOrProperty value.\n * This is available when join was made using \"post.category\" syntax.\n */\n get: function () {\n if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[\"QueryBuilderUtils\"].isAliasProperty(this.relationName))\n throw new Error(\"Given value must be a string representation of alias property\");\n return this.relationName.split(\".\")[0];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RelationCountAttribute.prototype, \"relationProperty\", {\n /**\n * Relation property name of the parent.\n * This is used to understand what is joined.\n * For example, if we join (\"post.category\", \"categoryAlias\") then \"category\" is a relation property.\n * This value is extracted from entityOrProperty value.\n * This is available when join was made using \"post.category\" syntax.\n */\n get: function () {\n if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[\"QueryBuilderUtils\"].isAliasProperty(this.relationName))\n throw new Error(\"Given value is a string representation of alias property\");\n return this.relationName.split(\".\")[1];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RelationCountAttribute.prototype, \"junctionAlias\", {\n get: function () {\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.relationName.split(\".\"), 2), parentAlias = _a[0], relationProperty = _a[1];\n return parentAlias + \"_\" + relationProperty + \"_rc\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RelationCountAttribute.prototype, \"relation\", {\n /**\n * Relation of the parent.\n * This is used to understand what is joined.\n * This is available when join was made using \"post.category\" syntax.\n */\n get: function () {\n if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[\"QueryBuilderUtils\"].isAliasProperty(this.relationName))\n throw new Error(\"Given value is a string representation of alias property\");\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.relationName.split(\".\"), 2), parentAlias = _a[0], propertyPath = _a[1];\n var relationOwnerSelection = this.expressionMap.findAliasByName(parentAlias);\n var relation = relationOwnerSelection.metadata.findRelationWithPropertyPath(propertyPath);\n if (!relation)\n throw new Error(\"Relation with property path \" + propertyPath + \" in entity was not found.\");\n return relation;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RelationCountAttribute.prototype, \"metadata\", {\n /**\n * Metadata of the joined entity.\n * If table without entity was joined, then it will return undefined.\n */\n get: function () {\n if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[\"QueryBuilderUtils\"].isAliasProperty(this.relationName))\n throw new Error(\"Given value is a string representation of alias property\");\n var parentAlias = this.relationName.split(\".\")[0];\n var selection = this.expressionMap.findAliasByName(parentAlias);\n return selection.metadata;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RelationCountAttribute.prototype, \"mapToPropertyPropertyName\", {\n get: function () {\n return this.mapToProperty.split(\".\")[1];\n },\n enumerable: false,\n configurable: true\n });\n return RelationCountAttribute;\n}());\n\n\n//# sourceMappingURL=RelationCountAttribute.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/relation-count/RelationCountAttribute.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/relation-count/RelationCountLoader.js":
/*!******************************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/relation-count/RelationCountLoader.js ***!
\******************************************************************************************/
/*! exports provided: RelationCountLoader */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RelationCountLoader\", function() { return RelationCountLoader; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\nvar RelationCountLoader = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function RelationCountLoader(connection, queryRunner, relationCountAttributes) {\n this.connection = connection;\n this.queryRunner = queryRunner;\n this.relationCountAttributes = relationCountAttributes;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n RelationCountLoader.prototype.load = function (rawEntities) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var onlyUnique, promises;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n onlyUnique = function (value, index, self) {\n return self.indexOf(value) === index;\n };\n promises = this.relationCountAttributes.map(function (relationCountAttr) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n var relation, inverseRelation, referenceColumnName_1, inverseSideTable, inverseSideTableName, inverseSideTableAlias, inverseSidePropertyName, referenceColumnValues, qb, joinTableColumnName_1, inverseJoinColumnName, firstJunctionColumn, secondJunctionColumn, referenceColumnValues, junctionAlias, inverseSideTableName, inverseSideTableAlias, junctionTableName, condition, qb;\n var _a, _b;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (!relationCountAttr.relation.isOneToMany) return [3 /*break*/, 2];\n relation = relationCountAttr.relation;\n inverseRelation = relation.inverseRelation;\n referenceColumnName_1 = inverseRelation.joinColumns[0].referencedColumn.propertyName;\n inverseSideTable = relation.inverseEntityMetadata.target;\n inverseSideTableName = relation.inverseEntityMetadata.tableName;\n inverseSideTableAlias = relationCountAttr.alias || inverseSideTableName;\n inverseSidePropertyName = inverseRelation.propertyName;\n referenceColumnValues = rawEntities\n .map(function (rawEntity) { return rawEntity[relationCountAttr.parentAlias + \"_\" + referenceColumnName_1]; })\n .filter(function (value) { return !!value; });\n referenceColumnValues = referenceColumnValues.filter(onlyUnique);\n // ensure we won't perform redundant queries for joined data which was not found in selection\n // example: if post.category was not found in db then no need to execute query for category.imageIds\n if (referenceColumnValues.length === 0)\n return [2 /*return*/, { relationCountAttribute: relationCountAttr, results: [] }];\n qb = this.connection.createQueryBuilder(this.queryRunner);\n qb.select(inverseSideTableAlias + \".\" + inverseSidePropertyName, \"parentId\")\n .addSelect(\"COUNT(*)\", \"cnt\")\n .from(inverseSideTable, inverseSideTableAlias)\n .where(inverseSideTableAlias + \".\" + inverseSidePropertyName + \" IN (:...ids)\")\n .addGroupBy(inverseSideTableAlias + \".\" + inverseSidePropertyName)\n .setParameter(\"ids\", referenceColumnValues);\n // apply condition (custom query builder factory)\n if (relationCountAttr.queryBuilderFactory)\n relationCountAttr.queryBuilderFactory(qb);\n _a = {\n relationCountAttribute: relationCountAttr\n };\n return [4 /*yield*/, qb.getRawMany()];\n case 1: return [2 /*return*/, (_a.results = _c.sent(),\n _a)];\n case 2:\n inverseJoinColumnName = void 0;\n firstJunctionColumn = void 0;\n secondJunctionColumn = void 0;\n if (relationCountAttr.relation.isOwning) { // todo fix joinColumns[0] and inverseJoinColumns[0].\n joinTableColumnName_1 = relationCountAttr.relation.joinColumns[0].referencedColumn.databaseName;\n inverseJoinColumnName = relationCountAttr.relation.inverseJoinColumns[0].referencedColumn.databaseName;\n firstJunctionColumn = relationCountAttr.relation.junctionEntityMetadata.columns[0];\n secondJunctionColumn = relationCountAttr.relation.junctionEntityMetadata.columns[1];\n }\n else {\n joinTableColumnName_1 = relationCountAttr.relation.inverseRelation.inverseJoinColumns[0].referencedColumn.databaseName;\n inverseJoinColumnName = relationCountAttr.relation.inverseRelation.joinColumns[0].referencedColumn.databaseName;\n firstJunctionColumn = relationCountAttr.relation.junctionEntityMetadata.columns[1];\n secondJunctionColumn = relationCountAttr.relation.junctionEntityMetadata.columns[0];\n }\n referenceColumnValues = rawEntities\n .map(function (rawEntity) { return rawEntity[relationCountAttr.parentAlias + \"_\" + joinTableColumnName_1]; })\n .filter(function (value) { return !!value; });\n referenceColumnValues = referenceColumnValues.filter(onlyUnique);\n // ensure we won't perform redundant queries for joined data which was not found in selection\n // example: if post.category was not found in db then no need to execute query for category.imageIds\n if (referenceColumnValues.length === 0)\n return [2 /*return*/, { relationCountAttribute: relationCountAttr, results: [] }];\n junctionAlias = relationCountAttr.junctionAlias;\n inverseSideTableName = relationCountAttr.joinInverseSideMetadata.tableName;\n inverseSideTableAlias = relationCountAttr.alias || inverseSideTableName;\n junctionTableName = relationCountAttr.relation.junctionEntityMetadata.tableName;\n condition = junctionAlias + \".\" + firstJunctionColumn.propertyName + \" IN (\" + referenceColumnValues.map(function (vals) { return isNaN(vals) ? \"'\" + vals + \"'\" : vals; }) + \")\" +\n \" AND \" + junctionAlias + \".\" + secondJunctionColumn.propertyName + \" = \" + inverseSideTableAlias + \".\" + inverseJoinColumnName;\n qb = this.connection.createQueryBuilder(this.queryRunner);\n qb.select(junctionAlias + \".\" + firstJunctionColumn.propertyName, \"parentId\")\n .addSelect(\"COUNT(\" + qb.escape(inverseSideTableAlias) + \".\" + qb.escape(inverseJoinColumnName) + \")\", \"cnt\")\n .from(inverseSideTableName, inverseSideTableAlias)\n .innerJoin(junctionTableName, junctionAlias, condition)\n .addGroupBy(junctionAlias + \".\" + firstJunctionColumn.propertyName);\n // apply condition (custom query builder factory)\n if (relationCountAttr.queryBuilderFactory)\n relationCountAttr.queryBuilderFactory(qb);\n _b = {\n relationCountAttribute: relationCountAttr\n };\n return [4 /*yield*/, qb.getRawMany()];\n case 3: return [2 /*return*/, (_b.results = _c.sent(),\n _b)];\n }\n });\n }); });\n return [2 /*return*/, Promise.all(promises)];\n });\n });\n };\n return RelationCountLoader;\n}());\n\n\n//# sourceMappingURL=RelationCountLoader.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/relation-count/RelationCountLoader.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js":
/*!******************************************************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js ***!
\******************************************************************************************************************/
/*! exports provided: RelationCountMetadataToAttributeTransformer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RelationCountMetadataToAttributeTransformer\", function() { return RelationCountMetadataToAttributeTransformer; });\n/* harmony import */ var _RelationCountAttribute__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RelationCountAttribute */ \"./node_modules/typeorm/browser/query-builder/relation-count/RelationCountAttribute.js\");\n\nvar RelationCountMetadataToAttributeTransformer = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function RelationCountMetadataToAttributeTransformer(expressionMap) {\n this.expressionMap = expressionMap;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n RelationCountMetadataToAttributeTransformer.prototype.transform = function () {\n // by example:\n // post has relation count:\n // @RelationCount(post => post.categories) categoryCount\n // category has relation count\n // @RelationCount(category => category.images) imageCount\n // we load post and join category\n // we expect post.categoryCount and post.category.imageCount to have relation counts\n var _this = this;\n // first create relation count attributes for all relation count metadatas of the main selected object (post from example)\n if (this.expressionMap.mainAlias) {\n this.expressionMap.mainAlias.metadata.relationCounts.forEach(function (relationCount) {\n var attribute = _this.metadataToAttribute(_this.expressionMap.mainAlias.name, relationCount);\n _this.expressionMap.relationCountAttributes.push(attribute);\n });\n }\n // second create relation count attributes for all relation count metadatas of all joined objects (category from example)\n this.expressionMap.joinAttributes.forEach(function (join) {\n // ensure this join has a metadata, because relation count can only work for real orm entities\n if (!join.metadata || join.metadata.isJunction)\n return;\n join.metadata.relationCounts.forEach(function (relationCount) {\n var attribute = _this.metadataToAttribute(join.alias.name, relationCount);\n _this.expressionMap.relationCountAttributes.push(attribute);\n });\n });\n };\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n RelationCountMetadataToAttributeTransformer.prototype.metadataToAttribute = function (parentAliasName, relationCount) {\n return new _RelationCountAttribute__WEBPACK_IMPORTED_MODULE_0__[\"RelationCountAttribute\"](this.expressionMap, {\n relationName: parentAliasName + \".\" + relationCount.relation.propertyName,\n mapToProperty: parentAliasName + \".\" + relationCount.propertyName,\n alias: relationCount.alias,\n queryBuilderFactory: relationCount.queryBuilderFactory\n });\n };\n return RelationCountMetadataToAttributeTransformer;\n}());\n\n\n//# sourceMappingURL=RelationCountMetadataToAttributeTransformer.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/relation-id/RelationIdAttribute.js":
/*!***************************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/relation-id/RelationIdAttribute.js ***!
\***************************************************************************************/
/*! exports provided: RelationIdAttribute */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RelationIdAttribute\", function() { return RelationIdAttribute; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../QueryBuilderUtils */ \"./node_modules/typeorm/browser/query-builder/QueryBuilderUtils.js\");\n/* harmony import */ var _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/ObjectUtils */ \"./node_modules/typeorm/browser/util/ObjectUtils.js\");\n\n\n\n/**\n * Stores all join relation id attributes which will be used to build a JOIN query.\n */\nvar RelationIdAttribute = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function RelationIdAttribute(queryExpressionMap, relationIdAttribute) {\n this.queryExpressionMap = queryExpressionMap;\n /**\n * Indicates if relation id should NOT be loaded as id map.\n */\n this.disableMixedMap = false;\n _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_2__[\"ObjectUtils\"].assign(this, relationIdAttribute || {});\n }\n Object.defineProperty(RelationIdAttribute.prototype, \"joinInverseSideMetadata\", {\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n get: function () {\n return this.relation.inverseEntityMetadata;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RelationIdAttribute.prototype, \"parentAlias\", {\n /**\n * Alias of the parent of this join.\n * For example, if we join (\"post.category\", \"categoryAlias\") then \"post\" is a parent alias.\n * This value is extracted from entityOrProperty value.\n * This is available when join was made using \"post.category\" syntax.\n */\n get: function () {\n if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[\"QueryBuilderUtils\"].isAliasProperty(this.relationName))\n throw new Error(\"Given value must be a string representation of alias property\");\n return this.relationName.substr(0, this.relationName.indexOf(\".\"));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RelationIdAttribute.prototype, \"relationPropertyPath\", {\n /**\n * Relation property name of the parent.\n * This is used to understand what is joined.\n * For example, if we join (\"post.category\", \"categoryAlias\") then \"category\" is a relation property.\n * This value is extracted from entityOrProperty value.\n * This is available when join was made using \"post.category\" syntax.\n */\n get: function () {\n if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[\"QueryBuilderUtils\"].isAliasProperty(this.relationName))\n throw new Error(\"Given value must be a string representation of alias property\");\n return this.relationName.substr(this.relationName.indexOf(\".\") + 1);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RelationIdAttribute.prototype, \"relation\", {\n /**\n * Relation of the parent.\n * This is used to understand what is joined.\n * This is available when join was made using \"post.category\" syntax.\n */\n get: function () {\n if (!_QueryBuilderUtils__WEBPACK_IMPORTED_MODULE_1__[\"QueryBuilderUtils\"].isAliasProperty(this.relationName))\n throw new Error(\"Given value must be a string representation of alias property\");\n var relationOwnerSelection = this.queryExpressionMap.findAliasByName(this.parentAlias);\n var relation = relationOwnerSelection.metadata.findRelationWithPropertyPath(this.relationPropertyPath);\n if (!relation)\n throw new Error(\"Relation with property path \" + this.relationPropertyPath + \" in entity was not found.\");\n return relation;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RelationIdAttribute.prototype, \"junctionAlias\", {\n /**\n * Generates alias of junction table, whose ids we get.\n */\n get: function () {\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.relationName.split(\".\"), 2), parentAlias = _a[0], relationProperty = _a[1];\n return parentAlias + \"_\" + relationProperty + \"_rid\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RelationIdAttribute.prototype, \"junctionMetadata\", {\n /**\n * Metadata of the joined entity.\n * If extra condition without entity was joined, then it will return undefined.\n */\n get: function () {\n return this.relation.junctionEntityMetadata;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RelationIdAttribute.prototype, \"mapToPropertyParentAlias\", {\n get: function () {\n return this.mapToProperty.substr(0, this.mapToProperty.indexOf(\".\"));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RelationIdAttribute.prototype, \"mapToPropertyPropertyPath\", {\n get: function () {\n return this.mapToProperty.substr(this.mapToProperty.indexOf(\".\") + 1);\n },\n enumerable: false,\n configurable: true\n });\n return RelationIdAttribute;\n}());\n\n\n//# sourceMappingURL=RelationIdAttribute.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/relation-id/RelationIdAttribute.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/relation-id/RelationIdLoader.js":
/*!************************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/relation-id/RelationIdLoader.js ***!
\************************************************************************************/
/*! exports provided: RelationIdLoader */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RelationIdLoader\", function() { return RelationIdLoader; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _driver_DriverUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../driver/DriverUtils */ \"./node_modules/typeorm/browser/driver/DriverUtils.js\");\n\n\nvar RelationIdLoader = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function RelationIdLoader(connection, queryRunner, relationIdAttributes) {\n this.connection = connection;\n this.queryRunner = queryRunner;\n this.relationIdAttributes = relationIdAttributes;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n RelationIdLoader.prototype.load = function (rawEntities) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var promises;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n promises = this.relationIdAttributes.map(function (relationIdAttr) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n 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;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(relationIdAttr.relation.isManyToOne || relationIdAttr.relation.isOneToOneOwner)) return [3 /*break*/, 1];\n // example: Post and Tag\n // loadRelationIdAndMap(\"post.tagId\", \"post.tag\")\n // we expect it to load id of tag\n if (relationIdAttr.queryBuilderFactory)\n throw new Error(\"Additional condition can not be used with ManyToOne or OneToOne owner relations.\");\n duplicates_1 = [];\n results = rawEntities.map(function (rawEntity) {\n var result = {};\n var duplicateParts = [];\n relationIdAttr.relation.joinColumns.forEach(function (joinColumn) {\n result[joinColumn.databaseName] = _this.connection.driver.prepareHydratedValue(rawEntity[_driver_DriverUtils__WEBPACK_IMPORTED_MODULE_1__[\"DriverUtils\"].buildColumnAlias(_this.connection.driver, relationIdAttr.parentAlias, joinColumn.databaseName)], joinColumn.referencedColumn);\n var duplicatePart = joinColumn.databaseName + \":\" + result[joinColumn.databaseName];\n if (duplicateParts.indexOf(duplicatePart) === -1) {\n duplicateParts.push(duplicatePart);\n }\n });\n relationIdAttr.relation.entityMetadata.primaryColumns.forEach(function (primaryColumn) {\n result[primaryColumn.databaseName] = _this.connection.driver.prepareHydratedValue(rawEntity[_driver_DriverUtils__WEBPACK_IMPORTED_MODULE_1__[\"DriverUtils\"].buildColumnAlias(_this.connection.driver, relationIdAttr.parentAlias, primaryColumn.databaseName)], primaryColumn);\n var duplicatePart = primaryColumn.databaseName + \":\" + result[primaryColumn.databaseName];\n if (duplicateParts.indexOf(duplicatePart) === -1) {\n duplicateParts.push(duplicatePart);\n }\n });\n duplicateParts.sort();\n var duplicate = duplicateParts.join(\"::\");\n if (duplicates_1.indexOf(duplicate) !== -1) {\n return null;\n }\n duplicates_1.push(duplicate);\n return result;\n }).filter(function (v) { return v; });\n return [2 /*return*/, {\n relationIdAttribute: relationIdAttr,\n results: results\n }];\n case 1:\n if (!(relationIdAttr.relation.isOneToMany || relationIdAttr.relation.isOneToOneNotOwner)) return [3 /*break*/, 3];\n relation_1 = relationIdAttr.relation;\n joinColumns_1 = relation_1.isOwning ? relation_1.joinColumns : relation_1.inverseRelation.joinColumns;\n table = relation_1.inverseEntityMetadata.target;\n tableName = relation_1.inverseEntityMetadata.tableName;\n tableAlias_1 = relationIdAttr.alias || tableName;\n duplicates_2 = [];\n parameters_1 = {};\n condition = rawEntities.map(function (rawEntity, index) {\n var duplicateParts = [];\n var parameterParts = {};\n var queryPart = joinColumns_1.map(function (joinColumn) {\n var parameterName = joinColumn.databaseName + index;\n var parameterValue = rawEntity[_driver_DriverUtils__WEBPACK_IMPORTED_MODULE_1__[\"DriverUtils\"].buildColumnAlias(_this.connection.driver, relationIdAttr.parentAlias, joinColumn.referencedColumn.databaseName)];\n var duplicatePart = tableAlias_1 + \":\" + joinColumn.propertyPath + \":\" + parameterValue;\n if (duplicateParts.indexOf(duplicatePart) !== -1) {\n return \"\";\n }\n duplicateParts.push(duplicatePart);\n parameterParts[parameterName] = parameterValue;\n return tableAlias_1 + \".\" + joinColumn.propertyPath + \" = :\" + parameterName;\n }).filter(function (v) { return v; }).join(\" AND \");\n duplicateParts.sort();\n var duplicate = duplicateParts.join(\"::\");\n if (duplicates_2.indexOf(duplicate) !== -1) {\n return \"\";\n }\n duplicates_2.push(duplicate);\n Object.assign(parameters_1, parameterParts);\n return queryPart;\n }).filter(function (v) { return v; }).map(function (condition) { return \"(\" + condition + \")\"; })\n .join(\" OR \");\n // ensure we won't perform redundant queries for joined data which was not found in selection\n // example: if post.category was not found in db then no need to execute query for category.imageIds\n if (!condition)\n return [2 /*return*/, { relationIdAttribute: relationIdAttr, results: [] }];\n qb_1 = this.connection.createQueryBuilder(this.queryRunner);\n joinColumns_1.forEach(function (joinColumn) {\n qb_1.addSelect(tableAlias_1 + \".\" + joinColumn.propertyPath, joinColumn.databaseName);\n });\n relation_1.inverseRelation.entityMetadata.primaryColumns.forEach(function (primaryColumn) {\n qb_1.addSelect(tableAlias_1 + \".\" + primaryColumn.propertyPath, primaryColumn.databaseName);\n });\n qb_1.from(table, tableAlias_1)\n .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\n .setParameters(parameters_1);\n // apply condition (custom query builder factory)\n if (relationIdAttr.queryBuilderFactory)\n relationIdAttr.queryBuilderFactory(qb_1);\n return [4 /*yield*/, qb_1.getRawMany()];\n case 2:\n results = _a.sent();\n results.forEach(function (result) {\n joinColumns_1.forEach(function (column) {\n result[column.databaseName] = _this.connection.driver.prepareHydratedValue(result[column.databaseName], column.referencedColumn);\n });\n relation_1.inverseRelation.entityMetadata.primaryColumns.forEach(function (column) {\n result[column.databaseName] = _this.connection.driver.prepareHydratedValue(result[column.databaseName], column);\n });\n });\n return [2 /*return*/, {\n relationIdAttribute: relationIdAttr,\n results: results\n }];\n case 3:\n relation = relationIdAttr.relation;\n joinColumns_2 = relation.isOwning ? relation.joinColumns : relation.inverseRelation.inverseJoinColumns;\n inverseJoinColumns_1 = relation.isOwning ? relation.inverseJoinColumns : relation.inverseRelation.joinColumns;\n junctionAlias_1 = relationIdAttr.junctionAlias;\n inverseSideTableName = relationIdAttr.joinInverseSideMetadata.tableName;\n inverseSideTableAlias_1 = relationIdAttr.alias || inverseSideTableName;\n junctionTableName = relation.isOwning ? relation.junctionEntityMetadata.tableName : relation.inverseRelation.junctionEntityMetadata.tableName;\n mappedColumns = rawEntities.map(function (rawEntity) {\n return joinColumns_2.reduce(function (map, joinColumn) {\n map[joinColumn.propertyPath] = rawEntity[_driver_DriverUtils__WEBPACK_IMPORTED_MODULE_1__[\"DriverUtils\"].buildColumnAlias(_this.connection.driver, relationIdAttr.parentAlias, joinColumn.referencedColumn.databaseName)];\n return map;\n }, {});\n });\n // ensure we won't perform redundant queries for joined data which was not found in selection\n // example: if post.category was not found in db then no need to execute query for category.imageIds\n if (mappedColumns.length === 0)\n return [2 /*return*/, { relationIdAttribute: relationIdAttr, results: [] }];\n parameters_2 = {};\n duplicates_3 = [];\n joinColumnConditions = mappedColumns.map(function (mappedColumn, index) {\n var duplicateParts = [];\n var parameterParts = {};\n var queryPart = Object.keys(mappedColumn).map(function (key) {\n var parameterName = key + index;\n var parameterValue = mappedColumn[key];\n var duplicatePart = junctionAlias_1 + \":\" + key + \":\" + parameterValue;\n if (duplicateParts.indexOf(duplicatePart) !== -1) {\n return \"\";\n }\n duplicateParts.push(duplicatePart);\n parameterParts[parameterName] = parameterValue;\n return junctionAlias_1 + \".\" + key + \" = :\" + parameterName;\n }).filter(function (s) { return s; }).join(\" AND \");\n duplicateParts.sort();\n var duplicate = duplicateParts.join(\"::\");\n if (duplicates_3.indexOf(duplicate) !== -1) {\n return \"\";\n }\n duplicates_3.push(duplicate);\n Object.assign(parameters_2, parameterParts);\n return queryPart;\n }).filter(function (s) { return s; });\n inverseJoinColumnCondition_1 = inverseJoinColumns_1.map(function (joinColumn) {\n return junctionAlias_1 + \".\" + joinColumn.propertyPath + \" = \" + inverseSideTableAlias_1 + \".\" + joinColumn.referencedColumn.propertyPath;\n }).join(\" AND \");\n condition = joinColumnConditions.map(function (condition) {\n return \"(\" + condition + \" AND \" + inverseJoinColumnCondition_1 + \")\";\n }).join(\" OR \");\n qb_2 = this.connection.createQueryBuilder(this.queryRunner);\n inverseJoinColumns_1.forEach(function (joinColumn) {\n qb_2.addSelect(junctionAlias_1 + \".\" + joinColumn.propertyPath, joinColumn.databaseName)\n .addOrderBy(junctionAlias_1 + \".\" + joinColumn.propertyPath);\n });\n joinColumns_2.forEach(function (joinColumn) {\n qb_2.addSelect(junctionAlias_1 + \".\" + joinColumn.propertyPath, joinColumn.databaseName)\n .addOrderBy(junctionAlias_1 + \".\" + joinColumn.propertyPath);\n });\n qb_2.from(inverseSideTableName, inverseSideTableAlias_1)\n .innerJoin(junctionTableName, junctionAlias_1, condition)\n .setParameters(parameters_2);\n // apply condition (custom query builder factory)\n if (relationIdAttr.queryBuilderFactory)\n relationIdAttr.queryBuilderFactory(qb_2);\n return [4 /*yield*/, qb_2.getRawMany()];\n case 4:\n results = _a.sent();\n results.forEach(function (result) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(joinColumns_2)), Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(inverseJoinColumns_1)).forEach(function (column) {\n result[column.databaseName] = _this.connection.driver.prepareHydratedValue(result[column.databaseName], column.referencedColumn);\n });\n });\n return [2 /*return*/, {\n relationIdAttribute: relationIdAttr,\n results: results\n }];\n }\n });\n }); });\n return [2 /*return*/, Promise.all(promises)];\n });\n });\n };\n return RelationIdLoader;\n}());\n\n\n//# sourceMappingURL=RelationIdLoader.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/relation-id/RelationIdLoader.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js":
/*!************************************************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js ***!
\************************************************************************************************************/
/*! exports provided: RelationIdMetadataToAttributeTransformer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RelationIdMetadataToAttributeTransformer\", function() { return RelationIdMetadataToAttributeTransformer; });\n/* harmony import */ var _RelationIdAttribute__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RelationIdAttribute */ \"./node_modules/typeorm/browser/query-builder/relation-id/RelationIdAttribute.js\");\n\nvar RelationIdMetadataToAttributeTransformer = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function RelationIdMetadataToAttributeTransformer(expressionMap) {\n this.expressionMap = expressionMap;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n RelationIdMetadataToAttributeTransformer.prototype.transform = function () {\n // by example:\n // post has relation id:\n // @RelationId(post => post.categories) categoryIds\n // category has relation id\n // @RelationId(category => category.images) imageIds\n // we load post and join category\n // we expect post.categoryIds and post.category.imageIds to have relation ids\n var _this = this;\n // first create relation id attributes for all relation id metadatas of the main selected object (post from example)\n if (this.expressionMap.mainAlias) {\n this.expressionMap.mainAlias.metadata.relationIds.forEach(function (relationId) {\n var attribute = _this.metadataToAttribute(_this.expressionMap.mainAlias.name, relationId);\n _this.expressionMap.relationIdAttributes.push(attribute);\n });\n }\n // second create relation id attributes for all relation id metadatas of all joined objects (category from example)\n this.expressionMap.joinAttributes.forEach(function (join) {\n // ensure this join has a metadata, because relation id can only work for real orm entities\n if (!join.metadata || join.metadata.isJunction)\n return;\n join.metadata.relationIds.forEach(function (relationId) {\n var attribute = _this.metadataToAttribute(join.alias.name, relationId);\n _this.expressionMap.relationIdAttributes.push(attribute);\n });\n });\n };\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n RelationIdMetadataToAttributeTransformer.prototype.metadataToAttribute = function (parentAliasName, relationId) {\n return new _RelationIdAttribute__WEBPACK_IMPORTED_MODULE_0__[\"RelationIdAttribute\"](this.expressionMap, {\n relationName: parentAliasName + \".\" + relationId.relation.propertyName,\n mapToProperty: parentAliasName + \".\" + relationId.propertyName,\n alias: relationId.alias,\n queryBuilderFactory: relationId.queryBuilderFactory\n });\n };\n return RelationIdMetadataToAttributeTransformer;\n}());\n\n\n//# sourceMappingURL=RelationIdMetadataToAttributeTransformer.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/result/DeleteResult.js":
/*!***************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/result/DeleteResult.js ***!
\***************************************************************************/
/*! exports provided: DeleteResult */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DeleteResult\", function() { return DeleteResult; });\n/**\n * Result object returned by DeleteQueryBuilder execution.\n */\nvar DeleteResult = /** @class */ (function () {\n function DeleteResult() {\n }\n return DeleteResult;\n}());\n\n\n//# sourceMappingURL=DeleteResult.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/result/DeleteResult.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/result/InsertResult.js":
/*!***************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/result/InsertResult.js ***!
\***************************************************************************/
/*! exports provided: InsertResult */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InsertResult\", function() { return InsertResult; });\n/**\n * Result object returned by InsertQueryBuilder execution.\n */\nvar InsertResult = /** @class */ (function () {\n function InsertResult() {\n /**\n * Contains inserted entity id.\n * Has entity-like structure (not just column database name and values).\n */\n this.identifiers = [];\n /**\n * Generated values returned by a database.\n * Has entity-like structure (not just column database name and values).\n */\n this.generatedMaps = [];\n }\n return InsertResult;\n}());\n\n\n//# sourceMappingURL=InsertResult.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/result/InsertResult.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/result/UpdateResult.js":
/*!***************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/result/UpdateResult.js ***!
\***************************************************************************/
/*! exports provided: UpdateResult */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UpdateResult\", function() { return UpdateResult; });\n/**\n * Result object returned by UpdateQueryBuilder execution.\n */\nvar UpdateResult = /** @class */ (function () {\n function UpdateResult() {\n /**\n * Contains inserted entity id.\n * Has entity-like structure (not just column database name and values).\n */\n // identifier: ObjectLiteral[] = [];\n /**\n * Generated values returned by a database.\n * Has entity-like structure (not just column database name and values).\n */\n this.generatedMaps = [];\n }\n return UpdateResult;\n}());\n\n\n//# sourceMappingURL=UpdateResult.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/result/UpdateResult.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js":
/*!**********************************************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js ***!
\**********************************************************************************************************/
/*! exports provided: PlainObjectToDatabaseEntityTransformer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PlainObjectToDatabaseEntityTransformer\", function() { return PlainObjectToDatabaseEntityTransformer; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n */\nvar LoadMapItem = /** @class */ (function () {\n function LoadMapItem(plainEntity, metadata, parentLoadMapItem, relation) {\n this.plainEntity = plainEntity;\n this.metadata = metadata;\n this.parentLoadMapItem = parentLoadMapItem;\n this.relation = relation;\n }\n Object.defineProperty(LoadMapItem.prototype, \"target\", {\n get: function () {\n return this.metadata.target;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoadMapItem.prototype, \"id\", {\n get: function () {\n return this.metadata.getEntityIdMixedMap(this.plainEntity);\n },\n enumerable: false,\n configurable: true\n });\n return LoadMapItem;\n}());\nvar LoadMap = /** @class */ (function () {\n function LoadMap() {\n this.loadMapItems = [];\n }\n Object.defineProperty(LoadMap.prototype, \"mainLoadMapItem\", {\n get: function () {\n return this.loadMapItems.find(function (item) { return !item.relation && !item.parentLoadMapItem; });\n },\n enumerable: false,\n configurable: true\n });\n LoadMap.prototype.addLoadMap = function (newLoadMap) {\n var item = this.loadMapItems.find(function (item) { return item.target === newLoadMap.target && item.id === newLoadMap.id; });\n if (!item)\n this.loadMapItems.push(newLoadMap);\n };\n LoadMap.prototype.fillEntities = function (target, entities) {\n var _this = this;\n entities.forEach(function (entity) {\n var item = _this.loadMapItems.find(function (loadMapItem) {\n return loadMapItem.target === target && loadMapItem.metadata.compareEntities(entity, loadMapItem.plainEntity);\n });\n if (item)\n item.entity = entity;\n });\n };\n LoadMap.prototype.groupByTargetIds = function () {\n var groups = [];\n this.loadMapItems.forEach(function (loadMapItem) {\n var group = groups.find(function (group) { return group.target === loadMapItem.target; });\n if (!group) {\n group = { target: loadMapItem.target, ids: [] };\n groups.push(group);\n }\n group.ids.push(loadMapItem.id);\n });\n return groups;\n };\n return LoadMap;\n}());\n/**\n * Transforms plain old javascript object\n * Entity is constructed based on its entity metadata.\n */\nvar PlainObjectToDatabaseEntityTransformer = /** @class */ (function () {\n function PlainObjectToDatabaseEntityTransformer(manager) {\n this.manager = manager;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n PlainObjectToDatabaseEntityTransformer.prototype.transform = function (plainObject, metadata) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var loadMap, fillLoadMap;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n // if plain object does not have id then nothing to load really\n if (!metadata.hasAllPrimaryKeys(plainObject))\n return [2 /*return*/, Promise.reject(\"Given object does not have a primary column, cannot transform it to database entity.\")];\n loadMap = new LoadMap();\n fillLoadMap = function (entity, entityMetadata, parentLoadMapItem, relation) {\n var item = new LoadMapItem(entity, entityMetadata, parentLoadMapItem, relation);\n loadMap.addLoadMap(item);\n entityMetadata\n .extractRelationValuesFromEntity(entity, metadata.relations)\n .filter(function (value) { return value !== null && value !== undefined; })\n .forEach(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 3), relation = _b[0], value = _b[1], inverseEntityMetadata = _b[2];\n return fillLoadMap(value, inverseEntityMetadata, item, relation);\n });\n };\n fillLoadMap(plainObject, metadata);\n // load all entities and store them in the load map\n return [4 /*yield*/, Promise.all(loadMap.groupByTargetIds().map(function (targetWithIds) {\n return _this.manager\n .findByIds(targetWithIds.target, targetWithIds.ids)\n .then(function (entities) { return loadMap.fillEntities(targetWithIds.target, entities); });\n }))];\n case 1:\n // load all entities and store them in the load map\n _a.sent();\n // go through each item in the load map and set their entity relationship using metadata stored in load map\n loadMap.loadMapItems.forEach(function (loadMapItem) {\n if (!loadMapItem.relation ||\n !loadMapItem.entity ||\n !loadMapItem.parentLoadMapItem ||\n !loadMapItem.parentLoadMapItem.entity)\n return;\n if (loadMapItem.relation.isManyToMany || loadMapItem.relation.isOneToMany) {\n if (!loadMapItem.parentLoadMapItem.entity[loadMapItem.relation.propertyName])\n loadMapItem.parentLoadMapItem.entity[loadMapItem.relation.propertyName] = [];\n loadMapItem.parentLoadMapItem.entity[loadMapItem.relation.propertyName].push(loadMapItem.entity);\n }\n else {\n loadMapItem.parentLoadMapItem.entity[loadMapItem.relation.propertyName] = loadMapItem.entity;\n }\n });\n return [2 /*return*/, loadMap.mainLoadMapItem ? loadMap.mainLoadMapItem.entity : undefined];\n }\n });\n });\n };\n return PlainObjectToDatabaseEntityTransformer;\n}());\n\n\n//# sourceMappingURL=PlainObjectToDatabaseEntityTransformer.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js":
/*!*****************************************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js ***!
\*****************************************************************************************************/
/*! exports provided: PlainObjectToNewEntityTransformer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PlainObjectToNewEntityTransformer\", function() { return PlainObjectToNewEntityTransformer; });\n/**\n * Transforms plain old javascript object\n * Entity is constructed based on its entity metadata.\n */\nvar PlainObjectToNewEntityTransformer = /** @class */ (function () {\n function PlainObjectToNewEntityTransformer() {\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n PlainObjectToNewEntityTransformer.prototype.transform = function (newEntity, object, metadata, getLazyRelationsPromiseValue) {\n if (getLazyRelationsPromiseValue === void 0) { getLazyRelationsPromiseValue = false; }\n // console.log(\"groupAndTransform entity:\", newEntity);\n // console.log(\"groupAndTransform object:\", object);\n this.groupAndTransform(newEntity, object, metadata, getLazyRelationsPromiseValue);\n // console.log(\"result:\", newEntity);\n return newEntity;\n };\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n /**\n * Since db returns a duplicated rows of the data where accuracies of the same object can be duplicated\n * we need to group our result and we must have some unique id (primary key in our case)\n */\n PlainObjectToNewEntityTransformer.prototype.groupAndTransform = function (entity, object, metadata, getLazyRelationsPromiseValue) {\n // console.log(\"groupAndTransform entity:\", entity);\n // console.log(\"groupAndTransform object:\", object);\n var _this = this;\n if (getLazyRelationsPromiseValue === void 0) { getLazyRelationsPromiseValue = false; }\n // copy regular column properties from the given object\n metadata.nonVirtualColumns.forEach(function (column) {\n var objectColumnValue = column.getEntityValue(object);\n if (objectColumnValue !== undefined)\n column.setEntityValue(entity, objectColumnValue);\n });\n // // copy relation properties from the given object\n if (metadata.relations.length) {\n metadata.relations.forEach(function (relation) {\n var entityRelatedValue = relation.getEntityValue(entity);\n var objectRelatedValue = relation.getEntityValue(object, getLazyRelationsPromiseValue);\n if (objectRelatedValue === undefined)\n return;\n if (relation.isOneToMany || relation.isManyToMany) {\n if (!Array.isArray(objectRelatedValue))\n return;\n if (!entityRelatedValue) {\n entityRelatedValue = [];\n relation.setEntityValue(entity, entityRelatedValue);\n }\n objectRelatedValue.forEach(function (objectRelatedValueItem) {\n // check if we have this item from the merging object in the original entity we merge into\n var objectRelatedValueEntity = entityRelatedValue.find(function (entityRelatedValueItem) {\n return relation.inverseEntityMetadata.compareEntities(objectRelatedValueItem, entityRelatedValueItem);\n });\n // 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\n if (!objectRelatedValueEntity) {\n objectRelatedValueEntity = relation.inverseEntityMetadata.create();\n entityRelatedValue.push(objectRelatedValueEntity);\n }\n _this.groupAndTransform(objectRelatedValueEntity, objectRelatedValueItem, relation.inverseEntityMetadata, getLazyRelationsPromiseValue);\n });\n }\n else {\n // if related object isn't an object (direct relation id for example)\n // we just set it to the entity relation, we don't need anything more from it\n // however we do it only if original entity does not have this relation set to object\n // to prevent full overriding of objects\n if (!(objectRelatedValue instanceof Object)) {\n if (!(entityRelatedValue instanceof Object))\n relation.setEntityValue(entity, objectRelatedValue);\n return;\n }\n if (!entityRelatedValue) {\n entityRelatedValue = relation.inverseEntityMetadata.create();\n relation.setEntityValue(entity, entityRelatedValue);\n }\n _this.groupAndTransform(entityRelatedValue, objectRelatedValue, relation.inverseEntityMetadata, getLazyRelationsPromiseValue);\n }\n });\n }\n };\n return PlainObjectToNewEntityTransformer;\n}());\n\n\n//# sourceMappingURL=PlainObjectToNewEntityTransformer.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js":
/*!****************************************************************************************************!*\
!*** ./node_modules/typeorm/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js ***!
\****************************************************************************************************/
/*! exports provided: RawSqlResultsToEntityTransformer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(Buffer) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RawSqlResultsToEntityTransformer\", function() { return RawSqlResultsToEntityTransformer; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/OrmUtils */ \"./node_modules/typeorm/browser/util/OrmUtils.js\");\n/* harmony import */ var _driver_DriverUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../driver/DriverUtils */ \"./node_modules/typeorm/browser/driver/DriverUtils.js\");\n\n\n\n/**\n * Transforms raw sql results returned from the database into entity object.\n * Entity is constructed based on its entity metadata.\n */\nvar RawSqlResultsToEntityTransformer = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function RawSqlResultsToEntityTransformer(expressionMap, driver, rawRelationIdResults, rawRelationCountResults, queryRunner) {\n this.expressionMap = expressionMap;\n this.driver = driver;\n this.rawRelationIdResults = rawRelationIdResults;\n this.rawRelationCountResults = rawRelationCountResults;\n this.queryRunner = queryRunner;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Since db returns a duplicated rows of the data where accuracies of the same object can be duplicated\n * we need to group our result and we must have some unique id (primary key in our case)\n */\n RawSqlResultsToEntityTransformer.prototype.transform = function (rawResults, alias) {\n var _this = this;\n var group = this.group(rawResults, alias);\n var entities = [];\n group.forEach(function (results) {\n var entity = _this.transformRawResultsGroup(results, alias);\n if (entity !== undefined && !Object.values(entity).every(function (value) { return value === null; }))\n entities.push(entity);\n });\n return entities;\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Groups given raw results by ids of given alias.\n */\n RawSqlResultsToEntityTransformer.prototype.group = function (rawResults, alias) {\n var _this = this;\n var map = new Map();\n var keys = [];\n if (alias.metadata.tableType === \"view\") {\n keys.push.apply(keys, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(alias.metadata.columns.map(function (column) { return _driver_DriverUtils__WEBPACK_IMPORTED_MODULE_2__[\"DriverUtils\"].buildColumnAlias(_this.driver, alias.name, column.databaseName); }))));\n }\n else {\n keys.push.apply(keys, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(alias.metadata.primaryColumns.map(function (column) { return _driver_DriverUtils__WEBPACK_IMPORTED_MODULE_2__[\"DriverUtils\"].buildColumnAlias(_this.driver, alias.name, column.databaseName); }))));\n }\n rawResults.forEach(function (rawResult) {\n var id = keys.map(function (key) {\n var keyValue = rawResult[key];\n if (Buffer.isBuffer(keyValue)) {\n return keyValue.toString(\"hex\");\n }\n if (typeof keyValue === \"object\") {\n return JSON.stringify(keyValue);\n }\n return keyValue;\n }).join(\"_\"); // todo: check partial\n var items = map.get(id);\n if (!items) {\n map.set(id, [rawResult]);\n }\n else {\n items.push(rawResult);\n }\n });\n return map;\n };\n /**\n * Transforms set of data results into single entity.\n */\n RawSqlResultsToEntityTransformer.prototype.transformRawResultsGroup = function (rawResults, alias) {\n var _this = this;\n // let hasColumns = false; // , hasEmbeddedColumns = false, hasParentColumns = false, hasParentEmbeddedColumns = false;\n var metadata = alias.metadata;\n if (metadata.discriminatorColumn) {\n var discriminatorValues_1 = rawResults.map(function (result) { return result[_driver_DriverUtils__WEBPACK_IMPORTED_MODULE_2__[\"DriverUtils\"].buildColumnAlias(_this.driver, alias.name, alias.metadata.discriminatorColumn.databaseName)]; });\n var discriminatorMetadata = metadata.childEntityMetadatas.find(function (childEntityMetadata) {\n return typeof discriminatorValues_1.find(function (value) { return value === childEntityMetadata.discriminatorValue; }) !== 'undefined';\n });\n if (discriminatorMetadata)\n metadata = discriminatorMetadata;\n }\n var entity = this.expressionMap.options.indexOf(\"create-pojo\") !== -1 ? {} : metadata.create(this.queryRunner);\n // get value from columns selections and put them into newly created entity\n var hasColumns = this.transformColumns(rawResults, alias, entity, metadata);\n var hasRelations = this.transformJoins(rawResults, entity, alias, metadata);\n var hasRelationIds = this.transformRelationIds(rawResults, alias, entity, metadata);\n var hasRelationCounts = this.transformRelationCounts(rawResults, alias, entity);\n // if we have at least one selected column then return this entity\n // since entity must have at least primary columns to be really selected and transformed into entity\n if (hasColumns)\n return entity;\n // if we don't have any selected column we should not return entity,\n // except for the case when entity only contain a primary column as a relation to another entity\n // in this case its absolutely possible our entity to not have any columns except a single relation\n var hasOnlyVirtualPrimaryColumns = metadata.primaryColumns.filter(function (column) { return column.isVirtual === false; }).length === 0; // todo: create metadata.hasOnlyVirtualPrimaryColumns\n if (hasOnlyVirtualPrimaryColumns && (hasRelations || hasRelationIds || hasRelationCounts))\n return entity;\n return undefined;\n };\n // get value from columns selections and put them into object\n RawSqlResultsToEntityTransformer.prototype.transformColumns = function (rawResults, alias, entity, metadata) {\n var _this = this;\n var hasData = false;\n metadata.columns.forEach(function (column) {\n // if table inheritance is used make sure this column is not child's column\n if (metadata.childEntityMetadatas.length > 0 && metadata.childEntityMetadatas.map(function (metadata) { return metadata.target; }).indexOf(column.target) !== -1)\n return;\n var value = rawResults[0][_driver_DriverUtils__WEBPACK_IMPORTED_MODULE_2__[\"DriverUtils\"].buildColumnAlias(_this.driver, alias.name, column.databaseName)];\n if (value === undefined || column.isVirtual)\n return;\n // if user does not selected the whole entity or he used partial selection and does not select this particular column\n // then we don't add this column and its value into the entity\n if (!_this.expressionMap.selects.find(function (select) { return select.selection === alias.name || select.selection === alias.name + \".\" + column.propertyPath; }))\n return;\n column.setEntityValue(entity, _this.driver.prepareHydratedValue(value, column));\n 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\n hasData = true;\n });\n return hasData;\n };\n /**\n * Transforms joined entities in the given raw results by a given alias and stores to the given (parent) entity\n */\n RawSqlResultsToEntityTransformer.prototype.transformJoins = function (rawResults, entity, alias, metadata) {\n var _this = this;\n var hasData = false;\n // let discriminatorValue: string = \"\";\n // if (metadata.discriminatorColumn)\n // discriminatorValue = rawResults[0][DriverUtils.buildColumnAlias(this.connection.driver, alias.name, alias.metadata.discriminatorColumn!.databaseName)];\n this.expressionMap.joinAttributes.forEach(function (join) {\n // skip joins without metadata\n if (!join.metadata)\n return;\n // if simple left or inner join was performed without selection then we don't need to do anything\n if (!join.isSelected)\n return;\n // this check need to avoid setting properties than not belong to entity when single table inheritance used. (todo: check if we still need it)\n // const metadata = metadata.childEntityMetadatas.find(childEntityMetadata => discriminatorValue === childEntityMetadata.discriminatorValue);\n if (join.relation && !metadata.relations.find(function (relation) { return relation === join.relation; }))\n return;\n // some checks to make sure this join is for current alias\n if (join.mapToProperty) {\n if (join.mapToPropertyParentAlias !== alias.name)\n return;\n }\n else {\n if (!join.relation || join.parentAlias !== alias.name || join.relationPropertyPath !== join.relation.propertyPath)\n return;\n }\n // transform joined data into entities\n var result = _this.transform(rawResults, join.alias);\n result = !join.isMany ? result[0] : result;\n 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\n if (result === undefined) // if nothing was joined then simply return\n return;\n // if join was mapped to some property then save result to that property\n if (join.mapToPropertyPropertyName) {\n entity[join.mapToPropertyPropertyName] = result; // todo: fix embeds\n }\n else { // otherwise set to relation\n join.relation.setEntityValue(entity, result);\n }\n hasData = true;\n });\n return hasData;\n };\n RawSqlResultsToEntityTransformer.prototype.transformRelationIds = function (rawSqlResults, alias, entity, metadata) {\n var _this = this;\n var hasData = false;\n this.rawRelationIdResults.forEach(function (rawRelationIdResult) {\n if (rawRelationIdResult.relationIdAttribute.parentAlias !== alias.name)\n return;\n var relation = rawRelationIdResult.relationIdAttribute.relation;\n var valueMap = _this.createValueMapFromJoinColumns(relation, rawRelationIdResult.relationIdAttribute.parentAlias, rawSqlResults);\n if (valueMap === undefined || valueMap === null)\n return;\n var idMaps = rawRelationIdResult.results.map(function (result) {\n var entityPrimaryIds = _this.extractEntityPrimaryIds(relation, result);\n if (_util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[\"OrmUtils\"].compareIds(entityPrimaryIds, valueMap) === false)\n return;\n var columns;\n if (relation.isManyToOne || relation.isOneToOneOwner) {\n columns = relation.joinColumns.map(function (joinColumn) { return joinColumn; });\n }\n else if (relation.isOneToMany || relation.isOneToOneNotOwner) {\n columns = relation.inverseEntityMetadata.primaryColumns.map(function (joinColumn) { return joinColumn; });\n // columns = relation.inverseRelation!.joinColumns.map(joinColumn => joinColumn.referencedColumn!); //.inverseEntityMetadata.primaryColumns.map(joinColumn => joinColumn);\n }\n else { // ManyToMany\n if (relation.isOwning) {\n columns = relation.inverseJoinColumns.map(function (joinColumn) { return joinColumn; });\n }\n else {\n columns = relation.inverseRelation.joinColumns.map(function (joinColumn) { return joinColumn; });\n }\n }\n var idMap = columns.reduce(function (idMap, column) {\n var value = result[column.databaseName];\n if (relation.isOneToMany || relation.isOneToOneNotOwner) {\n if (column.isVirtual && column.referencedColumn && column.referencedColumn.propertyName !== column.propertyName) // if column is a relation\n value = column.referencedColumn.createValueMap(value);\n return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[\"OrmUtils\"].mergeDeep(idMap, column.createValueMap(value));\n }\n else {\n if (column.referencedColumn.referencedColumn) // if column is a relation\n value = column.referencedColumn.referencedColumn.createValueMap(value);\n return _util_OrmUtils__WEBPACK_IMPORTED_MODULE_1__[\"OrmUtils\"].mergeDeep(idMap, column.referencedColumn.createValueMap(value));\n }\n }, {});\n if (columns.length === 1 && rawRelationIdResult.relationIdAttribute.disableMixedMap === false) {\n if (relation.isOneToMany || relation.isOneToOneNotOwner) {\n return columns[0].getEntityValue(idMap);\n }\n else {\n return columns[0].referencedColumn.getEntityValue(idMap);\n }\n }\n return idMap;\n }).filter(function (result) { return result !== undefined; });\n var properties = rawRelationIdResult.relationIdAttribute.mapToPropertyPropertyPath.split(\".\");\n var mapToProperty = function (properties, map, value) {\n var property = properties.shift();\n if (property && properties.length === 0) {\n map[property] = value;\n return map;\n }\n else if (property && properties.length > 0) {\n mapToProperty(properties, map[property], value);\n }\n else {\n return map;\n }\n };\n if (relation.isOneToOne || relation.isManyToOne) {\n if (idMaps[0] !== undefined) {\n mapToProperty(properties, entity, idMaps[0]);\n hasData = true;\n }\n }\n else {\n mapToProperty(properties, entity, idMaps);\n if (idMaps.length > 0) {\n hasData = true;\n }\n }\n });\n return hasData;\n };\n RawSqlResultsToEntityTransformer.prototype.transformRelationCounts = function (rawSqlResults, alias, entity) {\n var _this = this;\n var hasData = false;\n this.rawRelationCountResults\n .filter(function (rawRelationCountResult) { return rawRelationCountResult.relationCountAttribute.parentAlias === alias.name; })\n .forEach(function (rawRelationCountResult) {\n var relation = rawRelationCountResult.relationCountAttribute.relation;\n var referenceColumnName;\n if (relation.isOneToMany) {\n referenceColumnName = relation.inverseRelation.joinColumns[0].referencedColumn.databaseName; // todo: fix joinColumns[0]\n }\n else {\n referenceColumnName = relation.isOwning ? relation.joinColumns[0].referencedColumn.databaseName : relation.inverseRelation.joinColumns[0].referencedColumn.databaseName;\n }\n var referenceColumnValue = rawSqlResults[0][_driver_DriverUtils__WEBPACK_IMPORTED_MODULE_2__[\"DriverUtils\"].buildColumnAlias(_this.driver, alias.name, referenceColumnName)]; // we use zero index since its grouped data // todo: selection with alias for entity columns wont work\n if (referenceColumnValue !== undefined && referenceColumnValue !== null) {\n entity[rawRelationCountResult.relationCountAttribute.mapToPropertyPropertyName] = 0;\n rawRelationCountResult.results\n .filter(function (result) { return result[\"parentId\"] === referenceColumnValue; })\n .forEach(function (result) {\n entity[rawRelationCountResult.relationCountAttribute.mapToPropertyPropertyName] = parseInt(result[\"cnt\"]);\n hasData = true;\n });\n }\n });\n return hasData;\n };\n RawSqlResultsToEntityTransformer.prototype.createValueMapFromJoinColumns = function (relation, parentAlias, rawSqlResults) {\n var _this = this;\n var columns;\n if (relation.isManyToOne || relation.isOneToOneOwner) {\n columns = relation.entityMetadata.primaryColumns.map(function (joinColumn) { return joinColumn; });\n }\n else if (relation.isOneToMany || relation.isOneToOneNotOwner) {\n columns = relation.inverseRelation.joinColumns.map(function (joinColumn) { return joinColumn; });\n }\n else {\n if (relation.isOwning) {\n columns = relation.joinColumns.map(function (joinColumn) { return joinColumn; });\n }\n else {\n columns = relation.inverseRelation.inverseJoinColumns.map(function (joinColumn) { return joinColumn; });\n }\n }\n return columns.reduce(function (valueMap, column) {\n rawSqlResults.forEach(function (rawSqlResult) {\n if (relation.isManyToOne || relation.isOneToOneOwner) {\n valueMap[column.databaseName] = _this.driver.prepareHydratedValue(rawSqlResult[_driver_DriverUtils__WEBPACK_IMPORTED_MODULE_2__[\"DriverUtils\"].buildColumnAlias(_this.driver, parentAlias, column.databaseName)], column);\n }\n else {\n valueMap[column.databaseName] = _this.driver.prepareHydratedValue(rawSqlResult[_driver_DriverUtils__WEBPACK_IMPORTED_MODULE_2__[\"DriverUtils\"].buildColumnAlias(_this.driver, parentAlias, column.referencedColumn.databaseName)], column);\n }\n });\n return valueMap;\n }, {});\n };\n RawSqlResultsToEntityTransformer.prototype.extractEntityPrimaryIds = function (relation, relationIdRawResult) {\n var columns;\n if (relation.isManyToOne || relation.isOneToOneOwner) {\n columns = relation.entityMetadata.primaryColumns.map(function (joinColumn) { return joinColumn; });\n }\n else if (relation.isOneToMany || relation.isOneToOneNotOwner) {\n columns = relation.inverseRelation.joinColumns.map(function (joinColumn) { return joinColumn; });\n }\n else {\n if (relation.isOwning) {\n columns = relation.joinColumns.map(function (joinColumn) { return joinColumn; });\n }\n else {\n columns = relation.inverseRelation.inverseJoinColumns.map(function (joinColumn) { return joinColumn; });\n }\n }\n return columns.reduce(function (data, column) {\n data[column.databaseName] = relationIdRawResult[column.databaseName];\n return data;\n }, {});\n };\n return RawSqlResultsToEntityTransformer;\n}());\n\n\n//# sourceMappingURL=RawSqlResultsToEntityTransformer.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/query-runner/BaseQueryRunner.js":
/*!**********************************************************************!*\
!*** ./node_modules/typeorm/browser/query-runner/BaseQueryRunner.js ***!
\**********************************************************************/
/*! exports provided: BaseQueryRunner */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BaseQueryRunner\", function() { return BaseQueryRunner; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _driver_Query__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../driver/Query */ \"./node_modules/typeorm/browser/driver/Query.js\");\n/* harmony import */ var _driver_SqlInMemory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../driver/SqlInMemory */ \"./node_modules/typeorm/browser/driver/SqlInMemory.js\");\n\n\n\nvar BaseQueryRunner = /** @class */ (function () {\n function BaseQueryRunner() {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n /**\n * Indicates if connection for this query runner is released.\n * Once its released, query runner cannot run queries anymore.\n */\n this.isReleased = false;\n /**\n * Indicates if transaction is in progress.\n */\n this.isTransactionActive = false;\n /**\n * Stores temporarily user data.\n * Useful for sharing data with subscribers.\n */\n this.data = {};\n /**\n * All synchronized tables in the database.\n */\n this.loadedTables = [];\n /**\n * All synchronized views in the database.\n */\n this.loadedViews = [];\n /**\n * Indicates if special query runner mode in which sql queries won't be executed is enabled.\n */\n this.sqlMemoryMode = false;\n /**\n * Sql-s stored if \"sql in memory\" mode is enabled.\n */\n this.sqlInMemory = new _driver_SqlInMemory__WEBPACK_IMPORTED_MODULE_2__[\"SqlInMemory\"]();\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Loads given table's data from the database.\n */\n BaseQueryRunner.prototype.getTable = function (tablePath) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this;\n return [4 /*yield*/, this.loadTables([tablePath])];\n case 1:\n _a.loadedTables = _b.sent();\n return [2 /*return*/, this.loadedTables.length > 0 ? this.loadedTables[0] : undefined];\n }\n });\n });\n };\n /**\n * Loads all tables (with given names) from the database.\n */\n BaseQueryRunner.prototype.getTables = function (tableNames) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this;\n return [4 /*yield*/, this.loadTables(tableNames)];\n case 1:\n _a.loadedTables = _b.sent();\n return [2 /*return*/, this.loadedTables];\n }\n });\n });\n };\n /**\n * Loads given view's data from the database.\n */\n BaseQueryRunner.prototype.getView = function (viewPath) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this;\n return [4 /*yield*/, this.loadViews([viewPath])];\n case 1:\n _a.loadedViews = _b.sent();\n return [2 /*return*/, this.loadedViews.length > 0 ? this.loadedViews[0] : undefined];\n }\n });\n });\n };\n /**\n * Loads given view's data from the database.\n */\n BaseQueryRunner.prototype.getViews = function (viewPaths) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this;\n return [4 /*yield*/, this.loadViews(viewPaths)];\n case 1:\n _a.loadedViews = _b.sent();\n return [2 /*return*/, this.loadedViews];\n }\n });\n });\n };\n /**\n * Enables special query runner mode in which sql queries won't be executed,\n * instead they will be memorized into a special variable inside query runner.\n * You can get memorized sql using getMemorySql() method.\n */\n BaseQueryRunner.prototype.enableSqlMemory = function () {\n this.sqlInMemory = new _driver_SqlInMemory__WEBPACK_IMPORTED_MODULE_2__[\"SqlInMemory\"]();\n this.sqlMemoryMode = true;\n };\n /**\n * Disables special query runner mode in which sql queries won't be executed\n * started by calling enableSqlMemory() method.\n *\n * Previously memorized sql will be flushed.\n */\n BaseQueryRunner.prototype.disableSqlMemory = function () {\n this.sqlInMemory = new _driver_SqlInMemory__WEBPACK_IMPORTED_MODULE_2__[\"SqlInMemory\"]();\n this.sqlMemoryMode = false;\n };\n /**\n * Flushes all memorized sqls.\n */\n BaseQueryRunner.prototype.clearSqlMemory = function () {\n this.sqlInMemory = new _driver_SqlInMemory__WEBPACK_IMPORTED_MODULE_2__[\"SqlInMemory\"]();\n };\n /**\n * Gets sql stored in the memory. Parameters in the sql are already replaced.\n */\n BaseQueryRunner.prototype.getMemorySql = function () {\n return this.sqlInMemory;\n };\n /**\n * Executes up sql queries.\n */\n BaseQueryRunner.prototype.executeMemoryUpSql = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _a, _b, _c, query, parameters, e_1_1;\n var e_1, _d;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n _e.trys.push([0, 5, 6, 7]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.sqlInMemory.upQueries), _b = _a.next();\n _e.label = 1;\n case 1:\n if (!!_b.done) return [3 /*break*/, 4];\n _c = _b.value, query = _c.query, parameters = _c.parameters;\n return [4 /*yield*/, this.query(query, parameters)];\n case 2:\n _e.sent();\n _e.label = 3;\n case 3:\n _b = _a.next();\n return [3 /*break*/, 1];\n case 4: return [3 /*break*/, 7];\n case 5:\n e_1_1 = _e.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 7];\n case 6:\n try {\n if (_b && !_b.done && (_d = _a.return)) _d.call(_a);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Executes down sql queries.\n */\n BaseQueryRunner.prototype.executeMemoryDownSql = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _a, _b, _c, query, parameters, e_2_1;\n var e_2, _d;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n _e.trys.push([0, 5, 6, 7]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.sqlInMemory.downQueries.reverse()), _b = _a.next();\n _e.label = 1;\n case 1:\n if (!!_b.done) return [3 /*break*/, 4];\n _c = _b.value, query = _c.query, parameters = _c.parameters;\n return [4 /*yield*/, this.query(query, parameters)];\n case 2:\n _e.sent();\n _e.label = 3;\n case 3:\n _b = _a.next();\n return [3 /*break*/, 1];\n case 4: return [3 /*break*/, 7];\n case 5:\n e_2_1 = _e.sent();\n e_2 = { error: e_2_1 };\n return [3 /*break*/, 7];\n case 6:\n try {\n if (_b && !_b.done && (_d = _a.return)) _d.call(_a);\n }\n finally { if (e_2) throw e_2.error; }\n return [7 /*endfinally*/];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Gets view from previously loaded views, otherwise loads it from database.\n */\n BaseQueryRunner.prototype.getCachedView = function (viewName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var view, foundViews;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n view = this.loadedViews.find(function (view) { return view.name === viewName; });\n if (view)\n return [2 /*return*/, view];\n return [4 /*yield*/, this.loadViews([viewName])];\n case 1:\n foundViews = _a.sent();\n if (foundViews.length > 0) {\n this.loadedViews.push(foundViews[0]);\n return [2 /*return*/, foundViews[0]];\n }\n else {\n throw new Error(\"View \\\"\" + viewName + \"\\\" does not exist.\");\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Gets table from previously loaded tables, otherwise loads it from database.\n */\n BaseQueryRunner.prototype.getCachedTable = function (tableName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, foundTables;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n table = this.loadedTables.find(function (table) { return table.name === tableName; });\n if (table)\n return [2 /*return*/, table];\n return [4 /*yield*/, this.loadTables([tableName])];\n case 1:\n foundTables = _a.sent();\n if (foundTables.length > 0) {\n this.loadedTables.push(foundTables[0]);\n return [2 /*return*/, foundTables[0]];\n }\n else {\n throw new Error(\"Table \\\"\" + tableName + \"\\\" does not exist.\");\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Replaces loaded table with given changed table.\n */\n BaseQueryRunner.prototype.replaceCachedTable = function (table, changedTable) {\n var foundTable = this.loadedTables.find(function (loadedTable) { return loadedTable.name === table.name; });\n if (foundTable) {\n foundTable.name = changedTable.name;\n foundTable.columns = changedTable.columns;\n foundTable.indices = changedTable.indices;\n foundTable.foreignKeys = changedTable.foreignKeys;\n foundTable.uniques = changedTable.uniques;\n foundTable.checks = changedTable.checks;\n foundTable.justCreated = changedTable.justCreated;\n foundTable.engine = changedTable.engine;\n }\n };\n BaseQueryRunner.prototype.getTypeormMetadataTableName = function () {\n var options = this.connection.driver.options;\n return this.connection.driver.buildTableName(\"typeorm_metadata\", options.schema, options.database);\n };\n /**\n * Checks if at least one of column properties was changed.\n * Does not checks column type, length and autoincrement, because these properties changes separately.\n */\n BaseQueryRunner.prototype.isColumnChanged = function (oldColumn, newColumn, checkDefault, checkComment) {\n // this logs need to debug issues in column change detection. Do not delete it!\n // console.log(\"charset ---------------\");\n // console.log(oldColumn.charset !== newColumn.charset);\n // console.log(oldColumn.charset, newColumn.charset);\n // console.log(\"collation ---------------\");\n // console.log(oldColumn.collation !== newColumn.collation);\n // console.log(oldColumn.collation, newColumn.collation);\n // console.log(\"precision ---------------\");\n // console.log(oldColumn.precision !== newColumn.precision);\n // console.log(oldColumn.precision, newColumn.precision);\n // console.log(\"scale ---------------\");\n // console.log(oldColumn.scale !== newColumn.scale);\n // console.log(oldColumn.scale, newColumn.scale);\n // console.log(\"default ---------------\");\n // console.log((checkDefault && oldColumn.default !== newColumn.default));\n // console.log(oldColumn.default, newColumn.default);\n // console.log(\"isNullable ---------------\");\n // console.log(oldColumn.isNullable !== newColumn.isNullable);\n // console.log(oldColumn.isNullable, newColumn.isNullable);\n // console.log(\"comment ---------------\");\n // console.log((checkComment && oldColumn.comment !== newColumn.comment));\n // console.log(oldColumn.comment, newColumn.comment);\n // console.log(\"enum ---------------\");\n // console.log(oldColumn.enum !== newColumn.enum);\n // console.log(oldColumn.enum, newColumn.enum);\n return oldColumn.charset !== newColumn.charset\n || oldColumn.collation !== newColumn.collation\n || oldColumn.precision !== newColumn.precision\n || oldColumn.scale !== newColumn.scale\n || oldColumn.width !== newColumn.width // MySQL only\n || oldColumn.zerofill !== newColumn.zerofill // MySQL only\n || oldColumn.unsigned !== newColumn.unsigned // MySQL only\n || oldColumn.asExpression !== newColumn.asExpression // MySQL only\n || (checkDefault && oldColumn.default !== newColumn.default)\n || oldColumn.onUpdate !== newColumn.onUpdate // MySQL only\n || oldColumn.isNullable !== newColumn.isNullable\n || (checkComment && oldColumn.comment !== newColumn.comment)\n || oldColumn.enum !== newColumn.enum;\n };\n /**\n * Checks if column length is by default.\n */\n BaseQueryRunner.prototype.isDefaultColumnLength = function (table, column, length) {\n // if table have metadata, we check if length is specified in column metadata\n if (this.connection.hasMetadata(table.name)) {\n var metadata = this.connection.getMetadata(table.name);\n var columnMetadata = metadata.findColumnWithDatabaseName(column.name);\n if (columnMetadata && columnMetadata.length)\n return false;\n }\n if (this.connection.driver.dataTypeDefaults\n && this.connection.driver.dataTypeDefaults[column.type]\n && this.connection.driver.dataTypeDefaults[column.type].length) {\n return this.connection.driver.dataTypeDefaults[column.type].length.toString() === length.toString();\n }\n return false;\n };\n /**\n * Checks if column precision is by default.\n */\n BaseQueryRunner.prototype.isDefaultColumnPrecision = function (table, column, precision) {\n // if table have metadata, we check if length is specified in column metadata\n if (this.connection.hasMetadata(table.name)) {\n var metadata = this.connection.getMetadata(table.name);\n var columnMetadata = metadata.findColumnWithDatabaseName(column.name);\n if (columnMetadata && columnMetadata.precision !== null && columnMetadata.precision !== undefined)\n return false;\n }\n if (this.connection.driver.dataTypeDefaults\n && this.connection.driver.dataTypeDefaults[column.type]\n && this.connection.driver.dataTypeDefaults[column.type].precision !== null\n && this.connection.driver.dataTypeDefaults[column.type].precision !== undefined)\n return this.connection.driver.dataTypeDefaults[column.type].precision === precision;\n return false;\n };\n /**\n * Checks if column scale is by default.\n */\n BaseQueryRunner.prototype.isDefaultColumnScale = function (table, column, scale) {\n // if table have metadata, we check if length is specified in column metadata\n if (this.connection.hasMetadata(table.name)) {\n var metadata = this.connection.getMetadata(table.name);\n var columnMetadata = metadata.findColumnWithDatabaseName(column.name);\n if (columnMetadata && columnMetadata.scale !== null && columnMetadata.scale !== undefined)\n return false;\n }\n if (this.connection.driver.dataTypeDefaults\n && this.connection.driver.dataTypeDefaults[column.type]\n && this.connection.driver.dataTypeDefaults[column.type].scale !== null\n && this.connection.driver.dataTypeDefaults[column.type].scale !== undefined)\n return this.connection.driver.dataTypeDefaults[column.type].scale === scale;\n return false;\n };\n /**\n * Executes sql used special for schema build.\n */\n BaseQueryRunner.prototype.executeQueries = function (upQueries, downQueries) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var upQueries_1, upQueries_1_1, _a, query, parameters, e_3_1;\n var _b, _c, e_3, _d;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n if (upQueries instanceof _driver_Query__WEBPACK_IMPORTED_MODULE_1__[\"Query\"])\n upQueries = [upQueries];\n if (downQueries instanceof _driver_Query__WEBPACK_IMPORTED_MODULE_1__[\"Query\"])\n downQueries = [downQueries];\n (_b = this.sqlInMemory.upQueries).push.apply(_b, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(upQueries)));\n (_c = this.sqlInMemory.downQueries).push.apply(_c, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(downQueries)));\n // if sql-in-memory mode is enabled then simply store sql in memory and return\n if (this.sqlMemoryMode === true)\n return [2 /*return*/, Promise.resolve()];\n _e.label = 1;\n case 1:\n _e.trys.push([1, 6, 7, 8]);\n upQueries_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(upQueries), upQueries_1_1 = upQueries_1.next();\n _e.label = 2;\n case 2:\n if (!!upQueries_1_1.done) return [3 /*break*/, 5];\n _a = upQueries_1_1.value, query = _a.query, parameters = _a.parameters;\n return [4 /*yield*/, this.query(query, parameters)];\n case 3:\n _e.sent();\n _e.label = 4;\n case 4:\n upQueries_1_1 = upQueries_1.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_3_1 = _e.sent();\n e_3 = { error: e_3_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (upQueries_1_1 && !upQueries_1_1.done && (_d = upQueries_1.return)) _d.call(upQueries_1);\n }\n finally { if (e_3) throw e_3.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n return BaseQueryRunner;\n}());\n\n\n//# sourceMappingURL=BaseQueryRunner.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/query-runner/BaseQueryRunner.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/repository/AbstractRepository.js":
/*!***********************************************************************!*\
!*** ./node_modules/typeorm/browser/repository/AbstractRepository.js ***!
\***********************************************************************/
/*! exports provided: AbstractRepository */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AbstractRepository\", function() { return AbstractRepository; });\n/* harmony import */ var _error_CustomRepositoryDoesNotHaveEntityError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../error/CustomRepositoryDoesNotHaveEntityError */ \"./node_modules/typeorm/browser/error/CustomRepositoryDoesNotHaveEntityError.js\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../index */ \"./node_modules/typeorm/browser/index.js\");\n/* harmony import */ var _error_CustomRepositoryNotFoundError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../error/CustomRepositoryNotFoundError */ \"./node_modules/typeorm/browser/error/CustomRepositoryNotFoundError.js\");\n\n\n\n/**\n * Provides abstract class for custom repositories that do not inherit from original orm Repository.\n * Contains all most-necessary methods to simplify code in the custom repository.\n * All methods are protected thus not exposed and it allows to create encapsulated custom repository.\n *\n * @experimental\n */\nvar AbstractRepository = /** @class */ (function () {\n function AbstractRepository() {\n }\n Object.defineProperty(AbstractRepository.prototype, \"repository\", {\n // -------------------------------------------------------------------------\n // Protected Accessors\n // -------------------------------------------------------------------------\n /**\n * Gets the original ORM repository for the entity that is managed by this repository.\n * If current repository does not manage any entity, then exception will be thrown.\n */\n get: function () {\n var target = this.getCustomRepositoryTarget(this);\n if (!target)\n throw new _error_CustomRepositoryDoesNotHaveEntityError__WEBPACK_IMPORTED_MODULE_0__[\"CustomRepositoryDoesNotHaveEntityError\"](this.constructor);\n return this.manager.getRepository(target);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AbstractRepository.prototype, \"treeRepository\", {\n /**\n * Gets the original ORM tree repository for the entity that is managed by this repository.\n * If current repository does not manage any entity, then exception will be thrown.\n */\n get: function () {\n var target = this.getCustomRepositoryTarget(this);\n if (!target)\n throw new _error_CustomRepositoryDoesNotHaveEntityError__WEBPACK_IMPORTED_MODULE_0__[\"CustomRepositoryDoesNotHaveEntityError\"](this.constructor);\n return this.manager.getTreeRepository(target);\n },\n enumerable: false,\n configurable: true\n });\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Creates a new query builder for the repository's entity that can be used to build a sql query.\n * If current repository does not manage any entity, then exception will be thrown.\n */\n AbstractRepository.prototype.createQueryBuilder = function (alias) {\n var target = this.getCustomRepositoryTarget(this.constructor);\n if (!target)\n throw new _error_CustomRepositoryDoesNotHaveEntityError__WEBPACK_IMPORTED_MODULE_0__[\"CustomRepositoryDoesNotHaveEntityError\"](this.constructor);\n return this.manager.getRepository(target).createQueryBuilder(alias);\n };\n /**\n * Creates a new query builder for the given entity that can be used to build a sql query.\n */\n AbstractRepository.prototype.createQueryBuilderFor = function (entity, alias) {\n return this.getRepositoryFor(entity).createQueryBuilder(alias);\n };\n /**\n * Gets the original ORM repository for the given entity class.\n */\n AbstractRepository.prototype.getRepositoryFor = function (entity) {\n return this.manager.getRepository(entity);\n };\n /**\n * Gets the original ORM tree repository for the given entity class.\n */\n AbstractRepository.prototype.getTreeRepositoryFor = function (entity) {\n return this.manager.getTreeRepository(entity);\n };\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n /**\n * Gets custom repository's managed entity.\n * If given custom repository does not manage any entity then undefined will be returned.\n */\n AbstractRepository.prototype.getCustomRepositoryTarget = function (customRepository) {\n var entityRepositoryMetadataArgs = Object(_index__WEBPACK_IMPORTED_MODULE_1__[\"getMetadataArgsStorage\"])().entityRepositories.find(function (repository) {\n return repository.target === (customRepository instanceof Function ? customRepository : customRepository.constructor);\n });\n if (!entityRepositoryMetadataArgs)\n throw new _error_CustomRepositoryNotFoundError__WEBPACK_IMPORTED_MODULE_2__[\"CustomRepositoryNotFoundError\"](customRepository);\n return entityRepositoryMetadataArgs.entity;\n };\n return AbstractRepository;\n}());\n\n\n//# sourceMappingURL=AbstractRepository.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/repository/AbstractRepository.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/repository/BaseEntity.js":
/*!***************************************************************!*\
!*** ./node_modules/typeorm/browser/repository/BaseEntity.js ***!
\***************************************************************/
/*! exports provided: BaseEntity */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BaseEntity\", function() { return BaseEntity; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../index */ \"./node_modules/typeorm/browser/index.js\");\n/* harmony import */ var _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/ObjectUtils */ \"./node_modules/typeorm/browser/util/ObjectUtils.js\");\n\n\n\n/**\n * Base abstract entity for all entities, used in ActiveRecord patterns.\n */\nvar BaseEntity = /** @class */ (function () {\n function BaseEntity() {\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Checks if entity has an id.\n * If entity composite compose ids, it will check them all.\n */\n BaseEntity.prototype.hasId = function () {\n return this.constructor.getRepository().hasId(this);\n };\n /**\n * Saves current entity in the database.\n * If entity does not exist in the database then inserts, otherwise updates.\n */\n BaseEntity.prototype.save = function (options) {\n return this.constructor.getRepository().save(this, options);\n };\n /**\n * Removes current entity from the database.\n */\n BaseEntity.prototype.remove = function (options) {\n return this.constructor.getRepository().remove(this, options);\n };\n /**\n * Records the delete date of current entity.\n */\n BaseEntity.prototype.softRemove = function (options) {\n return this.constructor.getRepository().softRemove(this, options);\n };\n /**\n * Recovers a given entity in the database.\n */\n BaseEntity.prototype.recover = function (options) {\n return this.constructor.getRepository().recover(this, options);\n };\n /**\n * Reloads entity data from the database.\n */\n BaseEntity.prototype.reload = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var base, newestEntity;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n base = this.constructor;\n return [4 /*yield*/, base.getRepository().findOneOrFail(base.getId(this))];\n case 1:\n newestEntity = _a.sent();\n _util_ObjectUtils__WEBPACK_IMPORTED_MODULE_2__[\"ObjectUtils\"].assign(this, newestEntity);\n return [2 /*return*/];\n }\n });\n });\n };\n // -------------------------------------------------------------------------\n // Public Static Methods\n // -------------------------------------------------------------------------\n /**\n * Sets connection to be used by entity.\n */\n BaseEntity.useConnection = function (connection) {\n this.usedConnection = connection;\n };\n /**\n * Gets current entity's Repository.\n */\n BaseEntity.getRepository = function () {\n var connection = this.usedConnection || Object(_index__WEBPACK_IMPORTED_MODULE_1__[\"getConnection\"])();\n return connection.getRepository(this);\n };\n Object.defineProperty(BaseEntity, \"target\", {\n /**\n * Returns object that is managed by this repository.\n * If this repository manages entity from schema,\n * then it returns a name of that schema instead.\n */\n get: function () {\n return this.getRepository().target;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Checks entity has an id.\n * If entity composite compose ids, it will check them all.\n */\n BaseEntity.hasId = function (entity) {\n return this.getRepository().hasId(entity);\n };\n /**\n * Gets entity mixed id.\n */\n BaseEntity.getId = function (entity) {\n return this.getRepository().getId(entity);\n };\n /**\n * Creates a new query builder that can be used to build a sql query.\n */\n BaseEntity.createQueryBuilder = function (alias) {\n return this.getRepository().createQueryBuilder(alias);\n };\n /**\n * Creates a new entity instance and copies all entity properties from this object into a new entity.\n * Note that it copies only properties that present in entity schema.\n */\n BaseEntity.create = function (entityOrEntities) {\n return this.getRepository().create(entityOrEntities);\n };\n /**\n * Merges multiple entities (or entity-like objects) into a given entity.\n */\n BaseEntity.merge = function (mergeIntoEntity) {\n var _a;\n var entityLikes = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n entityLikes[_i - 1] = arguments[_i];\n }\n return (_a = this.getRepository()).merge.apply(_a, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([mergeIntoEntity], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(entityLikes)));\n };\n /**\n * Creates a new entity from the given plain javascript object. If entity already exist in the database, then\n * it loads it (and everything related to it), replaces all values with the new ones from the given object\n * and returns this new entity. This new entity is actually a loaded from the db entity with all properties\n * replaced from the new object.\n *\n * Note that given entity-like object must have an entity id / primary key to find entity by.\n * Returns undefined if entity with given id was not found.\n */\n BaseEntity.preload = function (entityLike) {\n return this.getRepository().preload(entityLike);\n };\n /**\n * Saves one or many given entities.\n */\n BaseEntity.save = function (entityOrEntities, options) {\n return this.getRepository().save(entityOrEntities, options);\n };\n /**\n * Removes one or many given entities.\n */\n BaseEntity.remove = function (entityOrEntities, options) {\n return this.getRepository().remove(entityOrEntities, options);\n };\n /**\n * Records the delete date of one or many given entities.\n */\n BaseEntity.softRemove = function (entityOrEntities, options) {\n return this.getRepository().softRemove(entityOrEntities, options);\n };\n /**\n * Inserts a given entity into the database.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient INSERT query.\n * Does not check if entity exist in the database, so query will fail if duplicate entity is being inserted.\n */\n BaseEntity.insert = function (entity, options) {\n return this.getRepository().insert(entity, options);\n };\n /**\n * Updates entity partially. Entity can be found by a given conditions.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient UPDATE query.\n * Does not check if entity exist in the database.\n */\n BaseEntity.update = function (criteria, partialEntity, options) {\n return this.getRepository().update(criteria, partialEntity, options);\n };\n /**\n * Deletes entities by a given criteria.\n * Unlike remove method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient DELETE query.\n * Does not check if entity exist in the database.\n */\n BaseEntity.delete = function (criteria, options) {\n return this.getRepository().delete(criteria, options);\n };\n /**\n * Counts entities that match given find options or conditions.\n */\n BaseEntity.count = function (optionsOrConditions) {\n return this.getRepository().count(optionsOrConditions);\n };\n /**\n * Finds entities that match given find options or conditions.\n */\n BaseEntity.find = function (optionsOrConditions) {\n return this.getRepository().find(optionsOrConditions);\n };\n /**\n * Finds entities that match given find options or conditions.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n BaseEntity.findAndCount = function (optionsOrConditions) {\n return this.getRepository().findAndCount(optionsOrConditions);\n };\n /**\n * Finds entities by ids.\n * Optionally find options can be applied.\n */\n BaseEntity.findByIds = function (ids, optionsOrConditions) {\n return this.getRepository().findByIds(ids, optionsOrConditions);\n };\n /**\n * Finds first entity that matches given conditions.\n */\n BaseEntity.findOne = function (optionsOrConditions, maybeOptions) {\n return this.getRepository().findOne(optionsOrConditions, maybeOptions);\n };\n /**\n * Finds first entity that matches given conditions.\n */\n BaseEntity.findOneOrFail = function (optionsOrConditions, maybeOptions) {\n return this.getRepository().findOneOrFail(optionsOrConditions, maybeOptions);\n };\n /**\n * Executes a raw SQL query and returns a raw database results.\n * Raw query execution is supported only by relational databases (MongoDB is not supported).\n */\n BaseEntity.query = function (query, parameters) {\n return this.getRepository().query(query, parameters);\n };\n /**\n * Clears all the data from the given table/collection (truncates/drops it).\n */\n BaseEntity.clear = function () {\n return this.getRepository().clear();\n };\n return BaseEntity;\n}());\n\n\n//# sourceMappingURL=BaseEntity.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/repository/BaseEntity.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/repository/RemoveOptions.js":
/*!******************************************************************!*\
!*** ./node_modules/typeorm/browser/repository/RemoveOptions.js ***!
\******************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=RemoveOptions.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/repository/RemoveOptions.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/repository/Repository.js":
/*!***************************************************************!*\
!*** ./node_modules/typeorm/browser/repository/Repository.js ***!
\***************************************************************/
/*! exports provided: Repository */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Repository\", function() { return Repository; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Repository is supposed to work with your entity objects. Find entities, insert, update, delete, etc.\n */\nvar Repository = /** @class */ (function () {\n function Repository() {\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Creates a new query builder that can be used to build a sql query.\n */\n Repository.prototype.createQueryBuilder = function (alias, queryRunner) {\n return this.manager.createQueryBuilder(this.metadata.target, alias || this.metadata.targetName, queryRunner || this.queryRunner);\n };\n Object.defineProperty(Repository.prototype, \"target\", {\n /**\n * Returns object that is managed by this repository.\n * If this repository manages entity from schema,\n * then it returns a name of that schema instead.\n */\n get: function () {\n return this.metadata.target;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Checks if entity has an id.\n * If entity composite compose ids, it will check them all.\n */\n Repository.prototype.hasId = function (entity) {\n return this.manager.hasId(this.metadata.target, entity);\n };\n /**\n * Gets entity mixed id.\n */\n Repository.prototype.getId = function (entity) {\n return this.manager.getId(this.metadata.target, entity);\n };\n /**\n * Creates a new entity instance or instances.\n * Can copy properties from the given object into new entities.\n */\n Repository.prototype.create = function (plainEntityLikeOrPlainEntityLikes) {\n return this.manager.create(this.metadata.target, plainEntityLikeOrPlainEntityLikes);\n };\n /**\n * Merges multiple entities (or entity-like objects) into a given entity.\n */\n Repository.prototype.merge = function (mergeIntoEntity) {\n var _a;\n var entityLikes = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n entityLikes[_i - 1] = arguments[_i];\n }\n return (_a = this.manager).merge.apply(_a, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([this.metadata.target, mergeIntoEntity], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(entityLikes)));\n };\n /**\n * Creates a new entity from the given plain javascript object. If entity already exist in the database, then\n * it loads it (and everything related to it), replaces all values with the new ones from the given object\n * and returns this new entity. This new entity is actually a loaded from the db entity with all properties\n * replaced from the new object.\n *\n * Note that given entity-like object must have an entity id / primary key to find entity by.\n * Returns undefined if entity with given id was not found.\n */\n Repository.prototype.preload = function (entityLike) {\n return this.manager.preload(this.metadata.target, entityLike);\n };\n /**\n * Saves one or many given entities.\n */\n Repository.prototype.save = function (entityOrEntities, options) {\n return this.manager.save(this.metadata.target, entityOrEntities, options);\n };\n /**\n * Removes one or many given entities.\n */\n Repository.prototype.remove = function (entityOrEntities, options) {\n return this.manager.remove(this.metadata.target, entityOrEntities, options);\n };\n /**\n * Records the delete date of one or many given entities.\n */\n Repository.prototype.softRemove = function (entityOrEntities, options) {\n return this.manager.softRemove(this.metadata.target, entityOrEntities, options);\n };\n /**\n * Recovers one or many given entities.\n */\n Repository.prototype.recover = function (entityOrEntities, options) {\n return this.manager.recover(this.metadata.target, entityOrEntities, options);\n };\n /**\n * Inserts a given entity into the database.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient INSERT query.\n * Does not check if entity exist in the database, so query will fail if duplicate entity is being inserted.\n */\n Repository.prototype.insert = function (entity) {\n return this.manager.insert(this.metadata.target, entity);\n };\n /**\n * Updates entity partially. Entity can be found by a given conditions.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient UPDATE query.\n * Does not check if entity exist in the database.\n */\n Repository.prototype.update = function (criteria, partialEntity) {\n return this.manager.update(this.metadata.target, criteria, partialEntity);\n };\n /**\n * Deletes entities by a given criteria.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient DELETE query.\n * Does not check if entity exist in the database.\n */\n Repository.prototype.delete = function (criteria) {\n return this.manager.delete(this.metadata.target, criteria);\n };\n /**\n * Records the delete date of entities by a given criteria.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient SOFT-DELETE query.\n * Does not check if entity exist in the database.\n */\n Repository.prototype.softDelete = function (criteria) {\n return this.manager.softDelete(this.metadata.target, criteria);\n };\n /**\n * Restores entities by a given criteria.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient SOFT-DELETE query.\n * Does not check if entity exist in the database.\n */\n Repository.prototype.restore = function (criteria) {\n return this.manager.restore(this.metadata.target, criteria);\n };\n /**\n * Counts entities that match given find options or conditions.\n */\n Repository.prototype.count = function (optionsOrConditions) {\n return this.manager.count(this.metadata.target, optionsOrConditions);\n };\n /**\n * Finds entities that match given find options or conditions.\n */\n Repository.prototype.find = function (optionsOrConditions) {\n return this.manager.find(this.metadata.target, optionsOrConditions);\n };\n /**\n * Finds entities that match given find options or conditions.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n Repository.prototype.findAndCount = function (optionsOrConditions) {\n return this.manager.findAndCount(this.metadata.target, optionsOrConditions);\n };\n /**\n * Finds entities by ids.\n * Optionally find options can be applied.\n */\n Repository.prototype.findByIds = function (ids, optionsOrConditions) {\n return this.manager.findByIds(this.metadata.target, ids, optionsOrConditions);\n };\n /**\n * Finds first entity that matches given conditions.\n */\n Repository.prototype.findOne = function (optionsOrConditions, maybeOptions) {\n return this.manager.findOne(this.metadata.target, optionsOrConditions, maybeOptions);\n };\n /**\n * Finds first entity that matches given conditions.\n */\n Repository.prototype.findOneOrFail = function (optionsOrConditions, maybeOptions) {\n return this.manager.findOneOrFail(this.metadata.target, optionsOrConditions, maybeOptions);\n };\n /**\n * Executes a raw SQL query and returns a raw database results.\n * Raw query execution is supported only by relational databases (MongoDB is not supported).\n */\n Repository.prototype.query = function (query, parameters) {\n return this.manager.query(query, parameters);\n };\n /**\n * Clears all the data from the given table/collection (truncates/drops it).\n *\n * Note: this method uses TRUNCATE and may not work as you expect in transactions on some platforms.\n * @see https://stackoverflow.com/a/5972738/925151\n */\n Repository.prototype.clear = function () {\n return this.manager.clear(this.metadata.target);\n };\n /**\n * Increments some column by provided value of the entities matched given conditions.\n */\n Repository.prototype.increment = function (conditions, propertyPath, value) {\n return this.manager.increment(this.metadata.target, conditions, propertyPath, value);\n };\n /**\n * Decrements some column by provided value of the entities matched given conditions.\n */\n Repository.prototype.decrement = function (conditions, propertyPath, value) {\n return this.manager.decrement(this.metadata.target, conditions, propertyPath, value);\n };\n return Repository;\n}());\n\n\n//# sourceMappingURL=Repository.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/repository/Repository.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/repository/RepositoryFactory.js":
/*!**********************************************************************!*\
!*** ./node_modules/typeorm/browser/repository/RepositoryFactory.js ***!
\**********************************************************************/
/*! exports provided: RepositoryFactory */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RepositoryFactory\", function() { return RepositoryFactory; });\n/* harmony import */ var _TreeRepository__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TreeRepository */ \"./node_modules/typeorm/browser/repository/TreeRepository.js\");\n/* harmony import */ var _Repository__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Repository */ \"./node_modules/typeorm/browser/repository/Repository.js\");\n/* harmony import */ var _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../driver/mongodb/MongoDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n\n\n\n\n/**\n * Factory used to create different types of repositories.\n */\nvar RepositoryFactory = /** @class */ (function () {\n function RepositoryFactory() {\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Creates a repository.\n */\n RepositoryFactory.prototype.create = function (manager, metadata, queryRunner) {\n if (metadata.treeType) {\n // NOTE: dynamic access to protected properties. We need this to prevent unwanted properties in those classes to be exposed,\n // however we need these properties for internal work of the class\n var repository = new _TreeRepository__WEBPACK_IMPORTED_MODULE_0__[\"TreeRepository\"]();\n Object.assign(repository, {\n manager: manager,\n metadata: metadata,\n queryRunner: queryRunner,\n });\n return repository;\n }\n else {\n // NOTE: dynamic access to protected properties. We need this to prevent unwanted properties in those classes to be exposed,\n // however we need these properties for internal work of the class\n var repository = void 0;\n if (manager.connection.driver instanceof _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_2__[\"MongoDriver\"]) {\n repository = new _driver_mongodb_MongoDriver__WEBPACK_IMPORTED_MODULE_2__[\"MongoRepository\"]();\n }\n else {\n repository = new _Repository__WEBPACK_IMPORTED_MODULE_1__[\"Repository\"]();\n }\n Object.assign(repository, {\n manager: manager,\n metadata: metadata,\n queryRunner: queryRunner,\n });\n return repository;\n }\n };\n return RepositoryFactory;\n}());\n\n\n//# sourceMappingURL=RepositoryFactory.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/repository/RepositoryFactory.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/repository/SaveOptions.js":
/*!****************************************************************!*\
!*** ./node_modules/typeorm/browser/repository/SaveOptions.js ***!
\****************************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceMappingURL=SaveOptions.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/repository/SaveOptions.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/repository/TreeRepository.js":
/*!*******************************************************************!*\
!*** ./node_modules/typeorm/browser/repository/TreeRepository.js ***!
\*******************************************************************/
/*! exports provided: TreeRepository */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TreeRepository\", function() { return TreeRepository; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Repository__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Repository */ \"./node_modules/typeorm/browser/repository/Repository.js\");\n/* harmony import */ var _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../driver/sqlite-abstract/AbstractSqliteDriver */ \"./node_modules/typeorm/browser/driver/sqlite-abstract/AbstractSqliteDriver.js\");\n\n\n\n/**\n * Repository with additional functions to work with trees.\n *\n * @see Repository\n */\nvar TreeRepository = /** @class */ (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TreeRepository, _super);\n function TreeRepository() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // todo: implement moving\n // todo: implement removing\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Gets complete trees for all roots in the table.\n */\n TreeRepository.prototype.findTrees = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var roots;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.findRoots()];\n case 1:\n roots = _a.sent();\n return [4 /*yield*/, Promise.all(roots.map(function (root) { return _this.findDescendantsTree(root); }))];\n case 2:\n _a.sent();\n return [2 /*return*/, roots];\n }\n });\n });\n };\n /**\n * Roots are entities that have no ancestors. Finds them all.\n */\n TreeRepository.prototype.findRoots = function () {\n var _this = this;\n var escapeAlias = function (alias) { return _this.manager.connection.driver.escape(alias); };\n var escapeColumn = function (column) { return _this.manager.connection.driver.escape(column); };\n var parentPropertyName = this.manager.connection.namingStrategy.joinColumnName(this.metadata.treeParentRelation.propertyName, this.metadata.primaryColumns[0].propertyName);\n return this.createQueryBuilder(\"treeEntity\")\n .where(escapeAlias(\"treeEntity\") + \".\" + escapeColumn(parentPropertyName) + \" IS NULL\")\n .getMany();\n };\n /**\n * Gets all children (descendants) of the given entity. Returns them all in a flat array.\n */\n TreeRepository.prototype.findDescendants = function (entity) {\n return this\n .createDescendantsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getMany();\n };\n /**\n * Gets all children (descendants) of the given entity. Returns them in a tree - nested into each other.\n */\n TreeRepository.prototype.findDescendantsTree = function (entity) {\n var _this = this;\n // todo: throw exception if there is no column of this relation?\n return this\n .createDescendantsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getRawAndEntities()\n .then(function (entitiesAndScalars) {\n var relationMaps = _this.createRelationMaps(\"treeEntity\", entitiesAndScalars.raw);\n _this.buildChildrenEntityTree(entity, entitiesAndScalars.entities, relationMaps);\n return entity;\n });\n };\n /**\n * Gets number of descendants of the entity.\n */\n TreeRepository.prototype.countDescendants = function (entity) {\n return this\n .createDescendantsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getCount();\n };\n /**\n * Creates a query builder used to get descendants of the entities in a tree.\n */\n TreeRepository.prototype.createDescendantsQueryBuilder = function (alias, closureTableAlias, entity) {\n var _this = this;\n // create shortcuts for better readability\n var escape = function (alias) { return _this.manager.connection.driver.escape(alias); };\n if (this.metadata.treeType === \"closure-table\") {\n var joinCondition = this.metadata.closureJunctionTable.descendantColumns.map(function (column) {\n return escape(closureTableAlias) + \".\" + escape(column.propertyPath) + \" = \" + escape(alias) + \".\" + escape(column.referencedColumn.propertyPath);\n }).join(\" AND \");\n var parameters_1 = {};\n var whereCondition = this.metadata.closureJunctionTable.ancestorColumns.map(function (column) {\n parameters_1[column.referencedColumn.propertyName] = column.referencedColumn.getEntityValue(entity);\n return escape(closureTableAlias) + \".\" + escape(column.propertyPath) + \" = :\" + column.referencedColumn.propertyName;\n }).join(\" AND \");\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.closureJunctionTable.tableName, closureTableAlias, joinCondition)\n .where(whereCondition)\n .setParameters(parameters_1);\n }\n else if (this.metadata.treeType === \"nested-set\") {\n var whereCondition = alias + \".\" + this.metadata.nestedSetLeftColumn.propertyPath + \" BETWEEN \" +\n \"joined.\" + this.metadata.nestedSetLeftColumn.propertyPath + \" AND joined.\" + this.metadata.nestedSetRightColumn.propertyPath;\n var parameters_2 = {};\n var joinCondition = this.metadata.treeParentRelation.joinColumns.map(function (joinColumn) {\n var parameterName = joinColumn.referencedColumn.propertyPath.replace(\".\", \"_\");\n parameters_2[parameterName] = joinColumn.referencedColumn.getEntityValue(entity);\n return \"joined.\" + joinColumn.referencedColumn.propertyPath + \" = :\" + parameterName;\n }).join(\" AND \");\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.targetName, \"joined\", whereCondition)\n .where(joinCondition, parameters_2);\n }\n else if (this.metadata.treeType === \"materialized-path\") {\n return this\n .createQueryBuilder(alias)\n .where(function (qb) {\n var subQuery = qb.subQuery()\n .select(_this.metadata.targetName + \".\" + _this.metadata.materializedPathColumn.propertyPath, \"path\")\n .from(_this.metadata.target, _this.metadata.targetName)\n .whereInIds(_this.metadata.getEntityIdMap(entity));\n qb.setNativeParameters(subQuery.expressionMap.nativeParameters);\n if (_this.manager.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_2__[\"AbstractSqliteDriver\"]) {\n return alias + \".\" + _this.metadata.materializedPathColumn.propertyPath + \" LIKE \" + subQuery.getQuery() + \" || '%'\";\n }\n else {\n return alias + \".\" + _this.metadata.materializedPathColumn.propertyPath + \" LIKE CONCAT(\" + subQuery.getQuery() + \", '%')\";\n }\n });\n }\n throw new Error(\"Supported only in tree entities\");\n };\n /**\n * Gets all parents (ancestors) of the given entity. Returns them all in a flat array.\n */\n TreeRepository.prototype.findAncestors = function (entity) {\n return this\n .createAncestorsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getMany();\n };\n /**\n * Gets all parents (ancestors) of the given entity. Returns them in a tree - nested into each other.\n */\n TreeRepository.prototype.findAncestorsTree = function (entity) {\n var _this = this;\n // todo: throw exception if there is no column of this relation?\n return this\n .createAncestorsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getRawAndEntities()\n .then(function (entitiesAndScalars) {\n var relationMaps = _this.createRelationMaps(\"treeEntity\", entitiesAndScalars.raw);\n _this.buildParentEntityTree(entity, entitiesAndScalars.entities, relationMaps);\n return entity;\n });\n };\n /**\n * Gets number of ancestors of the entity.\n */\n TreeRepository.prototype.countAncestors = function (entity) {\n return this\n .createAncestorsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getCount();\n };\n /**\n * Creates a query builder used to get ancestors of the entities in the tree.\n */\n TreeRepository.prototype.createAncestorsQueryBuilder = function (alias, closureTableAlias, entity) {\n // create shortcuts for better readability\n // const escape = (alias: string) => this.manager.connection.driver.escape(alias);\n var _this = this;\n if (this.metadata.treeType === \"closure-table\") {\n var joinCondition = this.metadata.closureJunctionTable.ancestorColumns.map(function (column) {\n return closureTableAlias + \".\" + column.propertyPath + \" = \" + alias + \".\" + column.referencedColumn.propertyPath;\n }).join(\" AND \");\n var parameters_3 = {};\n var whereCondition = this.metadata.closureJunctionTable.descendantColumns.map(function (column) {\n parameters_3[column.referencedColumn.propertyName] = column.referencedColumn.getEntityValue(entity);\n return closureTableAlias + \".\" + column.propertyPath + \" = :\" + column.referencedColumn.propertyName;\n }).join(\" AND \");\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.closureJunctionTable.tableName, closureTableAlias, joinCondition)\n .where(whereCondition)\n .setParameters(parameters_3);\n }\n else if (this.metadata.treeType === \"nested-set\") {\n var joinCondition = \"joined.\" + this.metadata.nestedSetLeftColumn.propertyPath + \" BETWEEN \" +\n alias + \".\" + this.metadata.nestedSetLeftColumn.propertyPath + \" AND \" + alias + \".\" + this.metadata.nestedSetRightColumn.propertyPath;\n var parameters_4 = {};\n var whereCondition = this.metadata.treeParentRelation.joinColumns.map(function (joinColumn) {\n var parameterName = joinColumn.referencedColumn.propertyPath.replace(\".\", \"_\");\n parameters_4[parameterName] = joinColumn.referencedColumn.getEntityValue(entity);\n return \"joined.\" + joinColumn.referencedColumn.propertyPath + \" = :\" + parameterName;\n }).join(\" AND \");\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.targetName, \"joined\", joinCondition)\n .where(whereCondition, parameters_4);\n }\n else if (this.metadata.treeType === \"materialized-path\") {\n // example: SELECT * FROM category category WHERE (SELECT mpath FROM `category` WHERE id = 2) LIKE CONCAT(category.mpath, '%');\n return this\n .createQueryBuilder(alias)\n .where(function (qb) {\n var subQuery = qb.subQuery()\n .select(_this.metadata.targetName + \".\" + _this.metadata.materializedPathColumn.propertyPath, \"path\")\n .from(_this.metadata.target, _this.metadata.targetName)\n .whereInIds(_this.metadata.getEntityIdMap(entity));\n qb.setNativeParameters(subQuery.expressionMap.nativeParameters);\n if (_this.manager.connection.driver instanceof _driver_sqlite_abstract_AbstractSqliteDriver__WEBPACK_IMPORTED_MODULE_2__[\"AbstractSqliteDriver\"]) {\n return subQuery.getQuery() + \" LIKE \" + alias + \".\" + _this.metadata.materializedPathColumn.propertyPath + \" || '%'\";\n }\n else {\n return subQuery.getQuery() + \" LIKE CONCAT(\" + alias + \".\" + _this.metadata.materializedPathColumn.propertyPath + \", '%')\";\n }\n });\n }\n throw new Error(\"Supported only in tree entities\");\n };\n /**\n * Moves entity to the children of then given entity.\n *\n move(entity: Entity, to: Entity): Promise<void> {\n return Promise.resolve();\n } */\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n TreeRepository.prototype.createRelationMaps = function (alias, rawResults) {\n var _this = this;\n return rawResults.map(function (rawResult) {\n var joinColumn = _this.metadata.treeParentRelation.joinColumns[0];\n // fixes issue #2518, default to databaseName property when givenDatabaseName is not set\n var joinColumnName = joinColumn.givenDatabaseName || joinColumn.databaseName;\n var id = rawResult[alias + \"_\" + _this.metadata.primaryColumns[0].databaseName];\n var parentId = rawResult[alias + \"_\" + joinColumnName];\n return {\n id: _this.manager.connection.driver.prepareHydratedValue(id, _this.metadata.primaryColumns[0]),\n parentId: _this.manager.connection.driver.prepareHydratedValue(parentId, joinColumn),\n };\n });\n };\n TreeRepository.prototype.buildChildrenEntityTree = function (entity, entities, relationMaps) {\n var _this = this;\n var childProperty = this.metadata.treeChildrenRelation.propertyName;\n var parentEntityId = this.metadata.primaryColumns[0].getEntityValue(entity);\n var childRelationMaps = relationMaps.filter(function (relationMap) { return relationMap.parentId === parentEntityId; });\n var childIds = new Set(childRelationMaps.map(function (relationMap) { return relationMap.id; }));\n entity[childProperty] = entities.filter(function (entity) { return childIds.has(_this.metadata.primaryColumns[0].getEntityValue(entity)); });\n entity[childProperty].forEach(function (childEntity) {\n _this.buildChildrenEntityTree(childEntity, entities, relationMaps);\n });\n };\n TreeRepository.prototype.buildParentEntityTree = function (entity, entities, relationMaps) {\n var _this = this;\n var parentProperty = this.metadata.treeParentRelation.propertyName;\n var entityId = this.metadata.primaryColumns[0].getEntityValue(entity);\n var parentRelationMap = relationMaps.find(function (relationMap) { return relationMap.id === entityId; });\n var parentEntity = entities.find(function (entity) {\n if (!parentRelationMap)\n return false;\n return _this.metadata.primaryColumns[0].getEntityValue(entity) === parentRelationMap.parentId;\n });\n if (parentEntity) {\n entity[parentProperty] = parentEntity;\n this.buildParentEntityTree(entity[parentProperty], entities, relationMaps);\n }\n };\n return TreeRepository;\n}(_Repository__WEBPACK_IMPORTED_MODULE_1__[\"Repository\"]));\n\n\n//# sourceMappingURL=TreeRepository.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/repository/TreeRepository.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/schema-builder/RdbmsSchemaBuilder.js":
/*!***************************************************************************!*\
!*** ./node_modules/typeorm/browser/schema-builder/RdbmsSchemaBuilder.js ***!
\***************************************************************************/
/*! exports provided: RdbmsSchemaBuilder */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RdbmsSchemaBuilder\", function() { return RdbmsSchemaBuilder; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../driver/cockroachdb/CockroachDriver */ \"./node_modules/typeorm/browser/platform/BrowserDisabledDriversDummy.js\");\n/* harmony import */ var _table_Table__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./table/Table */ \"./node_modules/typeorm/browser/schema-builder/table/Table.js\");\n/* harmony import */ var _table_TableColumn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./table/TableColumn */ \"./node_modules/typeorm/browser/schema-builder/table/TableColumn.js\");\n/* harmony import */ var _table_TableForeignKey__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./table/TableForeignKey */ \"./node_modules/typeorm/browser/schema-builder/table/TableForeignKey.js\");\n/* harmony import */ var _table_TableIndex__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./table/TableIndex */ \"./node_modules/typeorm/browser/schema-builder/table/TableIndex.js\");\n/* harmony import */ var _util_TableUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./util/TableUtils */ \"./node_modules/typeorm/browser/schema-builder/util/TableUtils.js\");\n/* harmony import */ var _table_TableUnique__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./table/TableUnique */ \"./node_modules/typeorm/browser/schema-builder/table/TableUnique.js\");\n/* harmony import */ var _table_TableCheck__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./table/TableCheck */ \"./node_modules/typeorm/browser/schema-builder/table/TableCheck.js\");\n/* harmony import */ var _table_TableExclusion__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./table/TableExclusion */ \"./node_modules/typeorm/browser/schema-builder/table/TableExclusion.js\");\n/* harmony import */ var _view_View__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./view/View */ \"./node_modules/typeorm/browser/schema-builder/view/View.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Creates complete tables schemas in the database based on the entity metadatas.\n *\n * Steps how schema is being built:\n * 1. load list of all tables with complete column and keys information from the db\n * 2. drop all (old) foreign keys that exist in the table, but does not exist in the metadata\n * 3. create new tables that does not exist in the db, but exist in the metadata\n * 4. drop all columns exist (left old) in the db table, but does not exist in the metadata\n * 5. add columns from metadata which does not exist in the table\n * 6. update all exist columns which metadata has changed\n * 7. update primary keys - update old and create new primary key from changed columns\n * 8. create foreign keys which does not exist in the table yet\n * 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\n */\nvar RdbmsSchemaBuilder = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function RdbmsSchemaBuilder(connection) {\n this.connection = connection;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Creates complete schemas for the given entity metadatas.\n */\n RdbmsSchemaBuilder.prototype.build = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var tablePaths, error_1, rollbackError_1;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.queryRunner = this.connection.createQueryRunner();\n if (!!(this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"CockroachDriver\"])) return [3 /*break*/, 2];\n return [4 /*yield*/, this.queryRunner.startTransaction()];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n _a.trys.push([2, 12, 18, 20]);\n tablePaths = this.entityToSyncMetadatas.map(function (metadata) { return metadata.tablePath; });\n if (!(this.viewEntityToSyncMetadatas.length > 0)) return [3 /*break*/, 4];\n return [4 /*yield*/, this.createTypeormMetadataTable()];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4: return [4 /*yield*/, this.queryRunner.getTables(tablePaths)];\n case 5:\n _a.sent();\n return [4 /*yield*/, this.queryRunner.getViews([])];\n case 6:\n _a.sent();\n return [4 /*yield*/, this.executeSchemaSyncOperationsInProperOrder()];\n case 7:\n _a.sent();\n if (!this.connection.queryResultCache) return [3 /*break*/, 9];\n return [4 /*yield*/, this.connection.queryResultCache.synchronize(this.queryRunner)];\n case 8:\n _a.sent();\n _a.label = 9;\n case 9:\n if (!!(this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"CockroachDriver\"])) return [3 /*break*/, 11];\n return [4 /*yield*/, this.queryRunner.commitTransaction()];\n case 10:\n _a.sent();\n _a.label = 11;\n case 11: return [3 /*break*/, 20];\n case 12:\n error_1 = _a.sent();\n _a.label = 13;\n case 13:\n _a.trys.push([13, 16, , 17]);\n if (!!(this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"CockroachDriver\"])) return [3 /*break*/, 15];\n return [4 /*yield*/, this.queryRunner.rollbackTransaction()];\n case 14:\n _a.sent();\n _a.label = 15;\n case 15: return [3 /*break*/, 17];\n case 16:\n rollbackError_1 = _a.sent();\n return [3 /*break*/, 17];\n case 17: throw error_1;\n case 18: return [4 /*yield*/, this.queryRunner.release()];\n case 19:\n _a.sent();\n return [7 /*endfinally*/];\n case 20: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Returns sql queries to be executed by schema builder.\n */\n RdbmsSchemaBuilder.prototype.log = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var tablePaths;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.queryRunner = this.connection.createQueryRunner();\n _a.label = 1;\n case 1:\n _a.trys.push([1, , 9, 11]);\n tablePaths = this.entityToSyncMetadatas.map(function (metadata) { return metadata.tablePath; });\n if (!(this.viewEntityToSyncMetadatas.length > 0)) return [3 /*break*/, 3];\n return [4 /*yield*/, this.createTypeormMetadataTable()];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3: return [4 /*yield*/, this.queryRunner.getTables(tablePaths)];\n case 4:\n _a.sent();\n return [4 /*yield*/, this.queryRunner.getViews([])];\n case 5:\n _a.sent();\n this.queryRunner.enableSqlMemory();\n return [4 /*yield*/, this.executeSchemaSyncOperationsInProperOrder()];\n case 6:\n _a.sent();\n if (!this.connection.queryResultCache) return [3 /*break*/, 8];\n return [4 /*yield*/, this.connection.queryResultCache.synchronize(this.queryRunner)];\n case 7:\n _a.sent();\n _a.label = 8;\n case 8: return [2 /*return*/, this.queryRunner.getMemorySql()];\n case 9:\n // its important to disable this mode despite the fact we are release query builder\n // because there exist drivers which reuse same query runner. Also its important to disable\n // sql memory after call of getMemorySql() method because last one flushes sql memory.\n this.queryRunner.disableSqlMemory();\n return [4 /*yield*/, this.queryRunner.release()];\n case 10:\n _a.sent();\n return [7 /*endfinally*/];\n case 11: return [2 /*return*/];\n }\n });\n });\n };\n Object.defineProperty(RdbmsSchemaBuilder.prototype, \"entityToSyncMetadatas\", {\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Returns only entities that should be synced in the database.\n */\n get: function () {\n return this.connection.entityMetadatas.filter(function (metadata) { return metadata.synchronize && metadata.tableType !== \"entity-child\" && metadata.tableType !== \"view\"; });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RdbmsSchemaBuilder.prototype, \"viewEntityToSyncMetadatas\", {\n /**\n * Returns only entities that should be synced in the database.\n */\n get: function () {\n return this.connection.entityMetadatas.filter(function (metadata) { return metadata.tableType === \"view\" && metadata.synchronize; });\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Executes schema sync operations in a proper order.\n * Order of operations matter here.\n */\n RdbmsSchemaBuilder.prototype.executeSchemaSyncOperationsInProperOrder = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.dropOldViews()];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.dropOldForeignKeys()];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.dropOldIndices()];\n case 3:\n _a.sent();\n return [4 /*yield*/, this.dropOldChecks()];\n case 4:\n _a.sent();\n return [4 /*yield*/, this.dropOldExclusions()];\n case 5:\n _a.sent();\n return [4 /*yield*/, this.dropCompositeUniqueConstraints()];\n case 6:\n _a.sent();\n // await this.renameTables();\n return [4 /*yield*/, this.renameColumns()];\n case 7:\n // await this.renameTables();\n _a.sent();\n return [4 /*yield*/, this.createNewTables()];\n case 8:\n _a.sent();\n return [4 /*yield*/, this.dropRemovedColumns()];\n case 9:\n _a.sent();\n return [4 /*yield*/, this.addNewColumns()];\n case 10:\n _a.sent();\n return [4 /*yield*/, this.updatePrimaryKeys()];\n case 11:\n _a.sent();\n return [4 /*yield*/, this.updateExistColumns()];\n case 12:\n _a.sent();\n return [4 /*yield*/, this.createNewIndices()];\n case 13:\n _a.sent();\n return [4 /*yield*/, this.createNewChecks()];\n case 14:\n _a.sent();\n return [4 /*yield*/, this.createNewExclusions()];\n case 15:\n _a.sent();\n return [4 /*yield*/, this.createCompositeUniqueConstraints()];\n case 16:\n _a.sent();\n return [4 /*yield*/, this.createForeignKeys()];\n case 17:\n _a.sent();\n return [4 /*yield*/, this.createViews()];\n case 18:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops all (old) foreign keys that exist in the tables, but do not exist in the entity metadata.\n */\n RdbmsSchemaBuilder.prototype.dropOldForeignKeys = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _loop_1, this_1, _a, _b, metadata, e_1_1;\n var e_1, _c;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_d) {\n switch (_d.label) {\n case 0:\n _loop_1 = function (metadata) {\n var table, tableForeignKeysToDrop;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n table = this_1.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; });\n if (!table)\n return [2 /*return*/, \"continue\"];\n tableForeignKeysToDrop = table.foreignKeys.filter(function (tableForeignKey) {\n var metadataFK = metadata.foreignKeys.find(function (metadataForeignKey) { return foreignKeysMatch(tableForeignKey, metadataForeignKey); });\n return !metadataFK\n || (metadataFK.onDelete && metadataFK.onDelete !== tableForeignKey.onDelete)\n || (metadataFK.onUpdate && metadataFK.onUpdate !== tableForeignKey.onUpdate);\n });\n if (tableForeignKeysToDrop.length === 0)\n return [2 /*return*/, \"continue\"];\n this_1.connection.logger.logSchemaBuild(\"dropping old foreign keys of \" + table.name + \": \" + tableForeignKeysToDrop.map(function (dbForeignKey) { return dbForeignKey.name; }).join(\", \"));\n // drop foreign keys from the database\n return [4 /*yield*/, this_1.queryRunner.dropForeignKeys(table, tableForeignKeysToDrop)];\n case 1:\n // drop foreign keys from the database\n _e.sent();\n return [2 /*return*/];\n }\n });\n };\n this_1 = this;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.entityToSyncMetadatas), _b = _a.next();\n _d.label = 2;\n case 2:\n if (!!_b.done) return [3 /*break*/, 5];\n metadata = _b.value;\n return [5 /*yield**/, _loop_1(metadata)];\n case 3:\n _d.sent();\n _d.label = 4;\n case 4:\n _b = _a.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_1_1 = _d.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Rename tables\n */\n RdbmsSchemaBuilder.prototype.renameTables = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/];\n });\n });\n };\n /**\n * Renames columns.\n * Works if only one column per table was changed.\n * Changes only column name. If something besides name was changed, these changes will be ignored.\n */\n RdbmsSchemaBuilder.prototype.renameColumns = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _loop_2, this_2, _a, _b, metadata, e_2_1;\n var e_2, _c;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_d) {\n switch (_d.label) {\n case 0:\n _loop_2 = function (metadata) {\n var table, renamedMetadataColumns, renamedTableColumns, renamedColumn;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n table = this_2.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; });\n if (!table)\n return [2 /*return*/, \"continue\"];\n if (metadata.columns.length !== table.columns.length)\n return [2 /*return*/, \"continue\"];\n renamedMetadataColumns = metadata.columns.filter(function (column) {\n return !table.columns.find(function (tableColumn) {\n return tableColumn.name === column.databaseName\n && tableColumn.type === _this.connection.driver.normalizeType(column)\n && tableColumn.isNullable === column.isNullable\n && tableColumn.isUnique === _this.connection.driver.normalizeIsUnique(column);\n });\n });\n if (renamedMetadataColumns.length === 0 || renamedMetadataColumns.length > 1)\n return [2 /*return*/, \"continue\"];\n renamedTableColumns = table.columns.filter(function (tableColumn) {\n return !metadata.columns.find(function (column) {\n return column.databaseName === tableColumn.name\n && _this.connection.driver.normalizeType(column) === tableColumn.type\n && column.isNullable === tableColumn.isNullable\n && _this.connection.driver.normalizeIsUnique(column) === tableColumn.isUnique;\n });\n });\n if (renamedTableColumns.length === 0 || renamedTableColumns.length > 1)\n return [2 /*return*/, \"continue\"];\n renamedColumn = renamedTableColumns[0].clone();\n renamedColumn.name = renamedMetadataColumns[0].databaseName;\n this_2.connection.logger.logSchemaBuild(\"renaming column \\\"\" + renamedTableColumns[0].name + \"\\\" in to \\\"\" + renamedColumn.name + \"\\\"\");\n return [4 /*yield*/, this_2.queryRunner.renameColumn(table, renamedTableColumns[0], renamedColumn)];\n case 1:\n _e.sent();\n return [2 /*return*/];\n }\n });\n };\n this_2 = this;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.entityToSyncMetadatas), _b = _a.next();\n _d.label = 2;\n case 2:\n if (!!_b.done) return [3 /*break*/, 5];\n metadata = _b.value;\n return [5 /*yield**/, _loop_2(metadata)];\n case 3:\n _d.sent();\n _d.label = 4;\n case 4:\n _b = _a.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_2_1 = _d.sent();\n e_2 = { error: e_2_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_2) throw e_2.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n RdbmsSchemaBuilder.prototype.dropOldIndices = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _loop_3, this_3, _a, _b, metadata, e_3_1;\n var e_3, _c;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_d) {\n switch (_d.label) {\n case 0:\n _loop_3 = function (metadata) {\n var table, dropQueries;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n table = this_3.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; });\n if (!table)\n return [2 /*return*/, \"continue\"];\n dropQueries = table.indices\n .filter(function (tableIndex) {\n var indexMetadata = metadata.indices.find(function (index) { return index.name === tableIndex.name; });\n if (indexMetadata) {\n if (indexMetadata.synchronize === false)\n return false;\n if (indexMetadata.isUnique !== tableIndex.isUnique)\n return true;\n if (indexMetadata.isSpatial !== tableIndex.isSpatial)\n return true;\n if (_this.connection.driver.isFullTextColumnTypeSupported() && indexMetadata.isFulltext !== tableIndex.isFulltext)\n return true;\n if (indexMetadata.columns.length !== tableIndex.columnNames.length)\n return true;\n return !indexMetadata.columns.every(function (column) { return tableIndex.columnNames.indexOf(column.databaseName) !== -1; });\n }\n return true;\n })\n .map(function (tableIndex) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(_this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.connection.logger.logSchemaBuild(\"dropping an index: \\\"\" + tableIndex.name + \"\\\" from table \" + table.name);\n return [4 /*yield*/, this.queryRunner.dropIndex(table, tableIndex)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); });\n return [4 /*yield*/, Promise.all(dropQueries)];\n case 1:\n _e.sent();\n return [2 /*return*/];\n }\n });\n };\n this_3 = this;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.entityToSyncMetadatas), _b = _a.next();\n _d.label = 2;\n case 2:\n if (!!_b.done) return [3 /*break*/, 5];\n metadata = _b.value;\n return [5 /*yield**/, _loop_3(metadata)];\n case 3:\n _d.sent();\n _d.label = 4;\n case 4:\n _b = _a.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_3_1 = _d.sent();\n e_3 = { error: e_3_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_3) throw e_3.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n RdbmsSchemaBuilder.prototype.dropOldChecks = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _loop_4, this_4, _a, _b, metadata, e_4_1;\n var e_4, _c;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_d) {\n switch (_d.label) {\n case 0:\n // Mysql does not support check constraints\n if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"])\n return [2 /*return*/];\n _loop_4 = function (metadata) {\n var table, oldChecks;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n table = this_4.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; });\n if (!table)\n return [2 /*return*/, \"continue\"];\n oldChecks = table.checks.filter(function (tableCheck) {\n return !metadata.checks.find(function (checkMetadata) { return checkMetadata.name === tableCheck.name; });\n });\n if (oldChecks.length === 0)\n return [2 /*return*/, \"continue\"];\n this_4.connection.logger.logSchemaBuild(\"dropping old check constraint: \" + oldChecks.map(function (check) { return \"\\\"\" + check.name + \"\\\"\"; }).join(\", \") + \" from table \\\"\" + table.name + \"\\\"\");\n return [4 /*yield*/, this_4.queryRunner.dropCheckConstraints(table, oldChecks)];\n case 1:\n _e.sent();\n return [2 /*return*/];\n }\n });\n };\n this_4 = this;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.entityToSyncMetadatas), _b = _a.next();\n _d.label = 2;\n case 2:\n if (!!_b.done) return [3 /*break*/, 5];\n metadata = _b.value;\n return [5 /*yield**/, _loop_4(metadata)];\n case 3:\n _d.sent();\n _d.label = 4;\n case 4:\n _b = _a.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_4_1 = _d.sent();\n e_4 = { error: e_4_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_4) throw e_4.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n RdbmsSchemaBuilder.prototype.dropCompositeUniqueConstraints = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _loop_5, this_5, _a, _b, metadata, e_5_1;\n var e_5, _c;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_d) {\n switch (_d.label) {\n case 0:\n _loop_5 = function (metadata) {\n var table, compositeUniques;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n table = this_5.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; });\n if (!table)\n return [2 /*return*/, \"continue\"];\n compositeUniques = table.uniques.filter(function (tableUnique) {\n return tableUnique.columnNames.length > 1 && !metadata.uniques.find(function (uniqueMetadata) { return uniqueMetadata.name === tableUnique.name; });\n });\n if (compositeUniques.length === 0)\n return [2 /*return*/, \"continue\"];\n this_5.connection.logger.logSchemaBuild(\"dropping old unique constraint: \" + compositeUniques.map(function (unique) { return \"\\\"\" + unique.name + \"\\\"\"; }).join(\", \") + \" from table \\\"\" + table.name + \"\\\"\");\n return [4 /*yield*/, this_5.queryRunner.dropUniqueConstraints(table, compositeUniques)];\n case 1:\n _e.sent();\n return [2 /*return*/];\n }\n });\n };\n this_5 = this;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.entityToSyncMetadatas), _b = _a.next();\n _d.label = 2;\n case 2:\n if (!!_b.done) return [3 /*break*/, 5];\n metadata = _b.value;\n return [5 /*yield**/, _loop_5(metadata)];\n case 3:\n _d.sent();\n _d.label = 4;\n case 4:\n _b = _a.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_5_1 = _d.sent();\n e_5 = { error: e_5_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_5) throw e_5.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n RdbmsSchemaBuilder.prototype.dropOldExclusions = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _loop_6, this_6, _a, _b, metadata, e_6_1;\n var e_6, _c;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_d) {\n switch (_d.label) {\n case 0:\n // Only PostgreSQL supports exclusion constraints\n if (!(this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"]))\n return [2 /*return*/];\n _loop_6 = function (metadata) {\n var table, oldExclusions;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n table = this_6.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; });\n if (!table)\n return [2 /*return*/, \"continue\"];\n oldExclusions = table.exclusions.filter(function (tableExclusion) {\n return !metadata.exclusions.find(function (exclusionMetadata) { return exclusionMetadata.name === tableExclusion.name; });\n });\n if (oldExclusions.length === 0)\n return [2 /*return*/, \"continue\"];\n this_6.connection.logger.logSchemaBuild(\"dropping old exclusion constraint: \" + oldExclusions.map(function (exclusion) { return \"\\\"\" + exclusion.name + \"\\\"\"; }).join(\", \") + \" from table \\\"\" + table.name + \"\\\"\");\n return [4 /*yield*/, this_6.queryRunner.dropExclusionConstraints(table, oldExclusions)];\n case 1:\n _e.sent();\n return [2 /*return*/];\n }\n });\n };\n this_6 = this;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.entityToSyncMetadatas), _b = _a.next();\n _d.label = 2;\n case 2:\n if (!!_b.done) return [3 /*break*/, 5];\n metadata = _b.value;\n return [5 /*yield**/, _loop_6(metadata)];\n case 3:\n _d.sent();\n _d.label = 4;\n case 4:\n _b = _a.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_6_1 = _d.sent();\n e_6 = { error: e_6_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_6) throw e_6.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates tables that do not exist in the database yet.\n * New tables are created without foreign and primary keys.\n * Primary key only can be created in conclusion with auto generated column.\n */\n RdbmsSchemaBuilder.prototype.createNewTables = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _loop_7, this_7, _a, _b, metadata, e_7_1;\n var e_7, _c;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_d) {\n switch (_d.label) {\n case 0:\n _loop_7 = function (metadata) {\n var existTable, table;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n existTable = this_7.queryRunner.loadedTables.find(function (table) {\n var database = metadata.database && metadata.database !== _this.connection.driver.database ? metadata.database : undefined;\n var schema = metadata.schema || _this.connection.driver.options.schema;\n var fullTableName = _this.connection.driver.buildTableName(metadata.tableName, schema, database);\n return table.name === fullTableName;\n });\n if (existTable)\n return [2 /*return*/, \"continue\"];\n this_7.connection.logger.logSchemaBuild(\"creating a new table: \" + metadata.tablePath);\n table = _table_Table__WEBPACK_IMPORTED_MODULE_2__[\"Table\"].create(metadata, this_7.connection.driver);\n return [4 /*yield*/, this_7.queryRunner.createTable(table, false, false)];\n case 1:\n _e.sent();\n this_7.queryRunner.loadedTables.push(table);\n return [2 /*return*/];\n }\n });\n };\n this_7 = this;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.entityToSyncMetadatas), _b = _a.next();\n _d.label = 2;\n case 2:\n if (!!_b.done) return [3 /*break*/, 5];\n metadata = _b.value;\n return [5 /*yield**/, _loop_7(metadata)];\n case 3:\n _d.sent();\n _d.label = 4;\n case 4:\n _b = _a.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_7_1 = _d.sent();\n e_7 = { error: e_7_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_7) throw e_7.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n RdbmsSchemaBuilder.prototype.createViews = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _loop_8, this_8, _a, _b, metadata, e_8_1;\n var e_8, _c;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_d) {\n switch (_d.label) {\n case 0:\n _loop_8 = function (metadata) {\n var existView, view;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n existView = this_8.queryRunner.loadedViews.find(function (view) {\n var database = metadata.database && metadata.database !== _this.connection.driver.database ? metadata.database : undefined;\n var schema = metadata.schema || _this.connection.driver.options.schema;\n var fullViewName = _this.connection.driver.buildTableName(metadata.tableName, schema, database);\n var viewExpression = typeof view.expression === \"string\" ? view.expression.trim() : view.expression(_this.connection).getQuery();\n var metadataExpression = typeof metadata.expression === \"string\" ? metadata.expression.trim() : metadata.expression(_this.connection).getQuery();\n return view.name === fullViewName && viewExpression === metadataExpression;\n });\n if (existView)\n return [2 /*return*/, \"continue\"];\n this_8.connection.logger.logSchemaBuild(\"creating a new view: \" + metadata.tablePath);\n view = _view_View__WEBPACK_IMPORTED_MODULE_10__[\"View\"].create(metadata, this_8.connection.driver);\n return [4 /*yield*/, this_8.queryRunner.createView(view)];\n case 1:\n _e.sent();\n this_8.queryRunner.loadedViews.push(view);\n return [2 /*return*/];\n }\n });\n };\n this_8 = this;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.viewEntityToSyncMetadatas), _b = _a.next();\n _d.label = 2;\n case 2:\n if (!!_b.done) return [3 /*break*/, 5];\n metadata = _b.value;\n return [5 /*yield**/, _loop_8(metadata)];\n case 3:\n _d.sent();\n _d.label = 4;\n case 4:\n _b = _a.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_8_1 = _d.sent();\n e_8 = { error: e_8_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_8) throw e_8.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n RdbmsSchemaBuilder.prototype.dropOldViews = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _loop_9, this_9, _a, _b, view, e_9_1;\n var e_9, _c;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_d) {\n switch (_d.label) {\n case 0:\n _loop_9 = function (view) {\n var existViewMetadata;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n existViewMetadata = this_9.viewEntityToSyncMetadatas.find(function (metadata) {\n var database = metadata.database && metadata.database !== _this.connection.driver.database ? metadata.database : undefined;\n var schema = metadata.schema || _this.connection.driver.options.schema;\n var fullViewName = _this.connection.driver.buildTableName(metadata.tableName, schema, database);\n var viewExpression = typeof view.expression === \"string\" ? view.expression.trim() : view.expression(_this.connection).getQuery();\n var metadataExpression = typeof metadata.expression === \"string\" ? metadata.expression.trim() : metadata.expression(_this.connection).getQuery();\n return view.name === fullViewName && viewExpression === metadataExpression;\n });\n if (existViewMetadata)\n return [2 /*return*/, \"continue\"];\n this_9.connection.logger.logSchemaBuild(\"dropping an old view: \" + view.name);\n // drop an old view\n return [4 /*yield*/, this_9.queryRunner.dropView(view)];\n case 1:\n // drop an old view\n _e.sent();\n this_9.queryRunner.loadedViews.splice(this_9.queryRunner.loadedViews.indexOf(view), 1);\n return [2 /*return*/];\n }\n });\n };\n this_9 = this;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.queryRunner.loadedViews), _b = _a.next();\n _d.label = 2;\n case 2:\n if (!!_b.done) return [3 /*break*/, 5];\n view = _b.value;\n return [5 /*yield**/, _loop_9(view)];\n case 3:\n _d.sent();\n _d.label = 4;\n case 4:\n _b = _a.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_9_1 = _d.sent();\n e_9 = { error: e_9_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_9) throw e_9.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops all columns that exist in the table, but does not exist in the metadata (left old).\n * We drop their keys too, since it should be safe.\n */\n RdbmsSchemaBuilder.prototype.dropRemovedColumns = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _loop_10, this_10, _a, _b, metadata, e_10_1;\n var e_10, _c;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_d) {\n switch (_d.label) {\n case 0:\n _loop_10 = function (metadata) {\n var table, droppedTableColumns;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n table = this_10.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; });\n if (!table)\n return [2 /*return*/, \"continue\"];\n droppedTableColumns = table.columns.filter(function (tableColumn) {\n return !metadata.columns.find(function (columnMetadata) { return columnMetadata.databaseName === tableColumn.name; });\n });\n if (droppedTableColumns.length === 0)\n return [2 /*return*/, \"continue\"];\n this_10.connection.logger.logSchemaBuild(\"columns dropped in \" + table.name + \": \" + droppedTableColumns.map(function (column) { return column.name; }).join(\", \"));\n // drop columns from the database\n return [4 /*yield*/, this_10.queryRunner.dropColumns(table, droppedTableColumns)];\n case 1:\n // drop columns from the database\n _e.sent();\n return [2 /*return*/];\n }\n });\n };\n this_10 = this;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.entityToSyncMetadatas), _b = _a.next();\n _d.label = 2;\n case 2:\n if (!!_b.done) return [3 /*break*/, 5];\n metadata = _b.value;\n return [5 /*yield**/, _loop_10(metadata)];\n case 3:\n _d.sent();\n _d.label = 4;\n case 4:\n _b = _a.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_10_1 = _d.sent();\n e_10 = { error: e_10_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_10) throw e_10.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Adds columns from metadata which does not exist in the table.\n * Columns are created without keys.\n */\n RdbmsSchemaBuilder.prototype.addNewColumns = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _loop_11, this_11, _a, _b, metadata, e_11_1;\n var e_11, _c;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_d) {\n switch (_d.label) {\n case 0:\n _loop_11 = function (metadata) {\n var table, newColumnMetadatas, newTableColumnOptions, newTableColumns;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n table = this_11.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; });\n if (!table)\n return [2 /*return*/, \"continue\"];\n newColumnMetadatas = metadata.columns.filter(function (columnMetadata) {\n return !table.columns.find(function (tableColumn) { return tableColumn.name === columnMetadata.databaseName; });\n });\n if (newColumnMetadatas.length === 0)\n return [2 /*return*/, \"continue\"];\n newTableColumnOptions = this_11.metadataColumnsToTableColumnOptions(newColumnMetadatas);\n newTableColumns = newTableColumnOptions.map(function (option) { return new _table_TableColumn__WEBPACK_IMPORTED_MODULE_3__[\"TableColumn\"](option); });\n if (newTableColumns.length === 0)\n return [2 /*return*/, \"continue\"];\n this_11.connection.logger.logSchemaBuild(\"new columns added: \" + newColumnMetadatas.map(function (column) { return column.databaseName; }).join(\", \"));\n return [4 /*yield*/, this_11.queryRunner.addColumns(table, newTableColumns)];\n case 1:\n _e.sent();\n return [2 /*return*/];\n }\n });\n };\n this_11 = this;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.entityToSyncMetadatas), _b = _a.next();\n _d.label = 2;\n case 2:\n if (!!_b.done) return [3 /*break*/, 5];\n metadata = _b.value;\n return [5 /*yield**/, _loop_11(metadata)];\n case 3:\n _d.sent();\n _d.label = 4;\n case 4:\n _b = _a.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_11_1 = _d.sent();\n e_11 = { error: e_11_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_11) throw e_11.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Updates composite primary keys.\n */\n RdbmsSchemaBuilder.prototype.updatePrimaryKeys = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _loop_12, this_12, _a, _b, metadata, e_12_1;\n var e_12, _c;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_d) {\n switch (_d.label) {\n case 0:\n _loop_12 = function (metadata) {\n var table, primaryMetadataColumns, primaryTableColumns, changedPrimaryColumns;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n table = this_12.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; });\n if (!table)\n return [2 /*return*/, \"continue\"];\n primaryMetadataColumns = metadata.columns.filter(function (column) { return column.isPrimary; });\n primaryTableColumns = table.columns.filter(function (column) { return column.isPrimary; });\n if (!(primaryTableColumns.length !== primaryMetadataColumns.length && primaryMetadataColumns.length > 1)) return [3 /*break*/, 2];\n changedPrimaryColumns = primaryMetadataColumns.map(function (primaryMetadataColumn) {\n return new _table_TableColumn__WEBPACK_IMPORTED_MODULE_3__[\"TableColumn\"](_util_TableUtils__WEBPACK_IMPORTED_MODULE_6__[\"TableUtils\"].createTableColumnOptions(primaryMetadataColumn, _this.connection.driver));\n });\n return [4 /*yield*/, this_12.queryRunner.updatePrimaryKeys(table, changedPrimaryColumns)];\n case 1:\n _e.sent();\n _e.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n };\n this_12 = this;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.entityToSyncMetadatas), _b = _a.next();\n _d.label = 2;\n case 2:\n if (!!_b.done) return [3 /*break*/, 5];\n metadata = _b.value;\n return [5 /*yield**/, _loop_12(metadata)];\n case 3:\n _d.sent();\n _d.label = 4;\n case 4:\n _b = _a.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_12_1 = _d.sent();\n e_12 = { error: e_12_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_12) throw e_12.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Update all exist columns which metadata has changed.\n * Still don't create keys. Also we don't touch foreign keys of the changed columns.\n */\n RdbmsSchemaBuilder.prototype.updateExistColumns = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _loop_13, this_13, _a, _b, metadata, e_13_1;\n var e_13, _c;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_d) {\n switch (_d.label) {\n case 0:\n _loop_13 = function (metadata) {\n 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;\n var e_14, _e, e_15, _f, e_16, _g;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_h) {\n switch (_h.label) {\n case 0:\n table = this_13.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; });\n if (!table)\n return [2 /*return*/, \"continue\"];\n changedColumns = this_13.connection.driver.findChangedColumns(table.columns, metadata.columns);\n if (changedColumns.length === 0)\n return [2 /*return*/, \"continue\"];\n _h.label = 1;\n case 1:\n _h.trys.push([1, 6, 7, 8]);\n changedColumns_1 = (e_14 = void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(changedColumns)), changedColumns_1_1 = changedColumns_1.next();\n _h.label = 2;\n case 2:\n if (!!changedColumns_1_1.done) return [3 /*break*/, 5];\n changedColumn = changedColumns_1_1.value;\n return [4 /*yield*/, this_13.dropColumnReferencedForeignKeys(metadata.tablePath, changedColumn.databaseName)];\n case 3:\n _h.sent();\n _h.label = 4;\n case 4:\n changedColumns_1_1 = changedColumns_1.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_14_1 = _h.sent();\n e_14 = { error: e_14_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (changedColumns_1_1 && !changedColumns_1_1.done && (_e = changedColumns_1.return)) _e.call(changedColumns_1);\n }\n finally { if (e_14) throw e_14.error; }\n return [7 /*endfinally*/];\n case 8:\n _h.trys.push([8, 13, 14, 15]);\n changedColumns_2 = (e_15 = void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(changedColumns)), changedColumns_2_1 = changedColumns_2.next();\n _h.label = 9;\n case 9:\n if (!!changedColumns_2_1.done) return [3 /*break*/, 12];\n changedColumn = changedColumns_2_1.value;\n return [4 /*yield*/, this_13.dropColumnCompositeIndices(metadata.tablePath, changedColumn.databaseName)];\n case 10:\n _h.sent();\n _h.label = 11;\n case 11:\n changedColumns_2_1 = changedColumns_2.next();\n return [3 /*break*/, 9];\n case 12: return [3 /*break*/, 15];\n case 13:\n e_15_1 = _h.sent();\n e_15 = { error: e_15_1 };\n return [3 /*break*/, 15];\n case 14:\n try {\n if (changedColumns_2_1 && !changedColumns_2_1.done && (_f = changedColumns_2.return)) _f.call(changedColumns_2);\n }\n finally { if (e_15) throw e_15.error; }\n return [7 /*endfinally*/];\n case 15:\n if (!!(this_13.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] || this_13.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"])) return [3 /*break*/, 23];\n _h.label = 16;\n case 16:\n _h.trys.push([16, 21, 22, 23]);\n changedColumns_3 = (e_16 = void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(changedColumns)), changedColumns_3_1 = changedColumns_3.next();\n _h.label = 17;\n case 17:\n if (!!changedColumns_3_1.done) return [3 /*break*/, 20];\n changedColumn = changedColumns_3_1.value;\n return [4 /*yield*/, this_13.dropColumnCompositeUniques(metadata.tablePath, changedColumn.databaseName)];\n case 18:\n _h.sent();\n _h.label = 19;\n case 19:\n changedColumns_3_1 = changedColumns_3.next();\n return [3 /*break*/, 17];\n case 20: return [3 /*break*/, 23];\n case 21:\n e_16_1 = _h.sent();\n e_16 = { error: e_16_1 };\n return [3 /*break*/, 23];\n case 22:\n try {\n if (changedColumns_3_1 && !changedColumns_3_1.done && (_g = changedColumns_3.return)) _g.call(changedColumns_3);\n }\n finally { if (e_16) throw e_16.error; }\n return [7 /*endfinally*/];\n case 23:\n newAndOldTableColumns = changedColumns.map(function (changedColumn) {\n var oldTableColumn = table.columns.find(function (column) { return column.name === changedColumn.databaseName; });\n var newTableColumnOptions = _util_TableUtils__WEBPACK_IMPORTED_MODULE_6__[\"TableUtils\"].createTableColumnOptions(changedColumn, _this.connection.driver);\n var newTableColumn = new _table_TableColumn__WEBPACK_IMPORTED_MODULE_3__[\"TableColumn\"](newTableColumnOptions);\n return {\n oldColumn: oldTableColumn,\n newColumn: newTableColumn\n };\n });\n if (newAndOldTableColumns.length === 0)\n return [2 /*return*/, \"continue\"];\n this_13.connection.logger.logSchemaBuild(\"columns changed in \\\"\" + table.name + \"\\\". updating: \" + changedColumns.map(function (column) { return column.databaseName; }).join(\", \"));\n return [4 /*yield*/, this_13.queryRunner.changeColumns(table, newAndOldTableColumns)];\n case 24:\n _h.sent();\n return [2 /*return*/];\n }\n });\n };\n this_13 = this;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.entityToSyncMetadatas), _b = _a.next();\n _d.label = 2;\n case 2:\n if (!!_b.done) return [3 /*break*/, 5];\n metadata = _b.value;\n return [5 /*yield**/, _loop_13(metadata)];\n case 3:\n _d.sent();\n _d.label = 4;\n case 4:\n _b = _a.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_13_1 = _d.sent();\n e_13 = { error: e_13_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_13) throw e_13.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates composite indices which are missing in db yet.\n */\n RdbmsSchemaBuilder.prototype.createNewIndices = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _loop_14, this_14, _a, _b, metadata, e_17_1;\n var e_17, _c;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_d) {\n switch (_d.label) {\n case 0:\n _loop_14 = function (metadata) {\n var table, newIndices;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n table = this_14.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; });\n if (!table)\n return [2 /*return*/, \"continue\"];\n newIndices = metadata.indices\n .filter(function (indexMetadata) { return !table.indices.find(function (tableIndex) { return tableIndex.name === indexMetadata.name; }) && indexMetadata.synchronize === true; })\n .map(function (indexMetadata) { return _table_TableIndex__WEBPACK_IMPORTED_MODULE_5__[\"TableIndex\"].create(indexMetadata); });\n if (newIndices.length === 0)\n return [2 /*return*/, \"continue\"];\n this_14.connection.logger.logSchemaBuild(\"adding new indices \" + newIndices.map(function (index) { return \"\\\"\" + index.name + \"\\\"\"; }).join(\", \") + \" in table \\\"\" + table.name + \"\\\"\");\n return [4 /*yield*/, this_14.queryRunner.createIndices(table, newIndices)];\n case 1:\n _e.sent();\n return [2 /*return*/];\n }\n });\n };\n this_14 = this;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.entityToSyncMetadatas), _b = _a.next();\n _d.label = 2;\n case 2:\n if (!!_b.done) return [3 /*break*/, 5];\n metadata = _b.value;\n return [5 /*yield**/, _loop_14(metadata)];\n case 3:\n _d.sent();\n _d.label = 4;\n case 4:\n _b = _a.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_17_1 = _d.sent();\n e_17 = { error: e_17_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_17) throw e_17.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n RdbmsSchemaBuilder.prototype.createNewChecks = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _loop_15, this_15, _a, _b, metadata, e_18_1;\n var e_18, _c;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_d) {\n switch (_d.label) {\n case 0:\n // Mysql does not support check constraints\n if (this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"MysqlDriver\"] || this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"AuroraDataApiDriver\"])\n return [2 /*return*/];\n _loop_15 = function (metadata) {\n var table, newChecks;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n table = this_15.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; });\n if (!table)\n return [2 /*return*/, \"continue\"];\n newChecks = metadata.checks\n .filter(function (checkMetadata) { return !table.checks.find(function (tableCheck) { return tableCheck.name === checkMetadata.name; }); })\n .map(function (checkMetadata) { return _table_TableCheck__WEBPACK_IMPORTED_MODULE_8__[\"TableCheck\"].create(checkMetadata); });\n if (newChecks.length === 0)\n return [2 /*return*/, \"continue\"];\n this_15.connection.logger.logSchemaBuild(\"adding new check constraints: \" + newChecks.map(function (index) { return \"\\\"\" + index.name + \"\\\"\"; }).join(\", \") + \" in table \\\"\" + table.name + \"\\\"\");\n return [4 /*yield*/, this_15.queryRunner.createCheckConstraints(table, newChecks)];\n case 1:\n _e.sent();\n return [2 /*return*/];\n }\n });\n };\n this_15 = this;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.entityToSyncMetadatas), _b = _a.next();\n _d.label = 2;\n case 2:\n if (!!_b.done) return [3 /*break*/, 5];\n metadata = _b.value;\n return [5 /*yield**/, _loop_15(metadata)];\n case 3:\n _d.sent();\n _d.label = 4;\n case 4:\n _b = _a.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_18_1 = _d.sent();\n e_18 = { error: e_18_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_18) throw e_18.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates composite uniques which are missing in db yet.\n */\n RdbmsSchemaBuilder.prototype.createCompositeUniqueConstraints = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _loop_16, this_16, _a, _b, metadata, e_19_1;\n var e_19, _c;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_d) {\n switch (_d.label) {\n case 0:\n _loop_16 = function (metadata) {\n var table, compositeUniques;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n table = this_16.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; });\n if (!table)\n return [2 /*return*/, \"continue\"];\n compositeUniques = metadata.uniques\n .filter(function (uniqueMetadata) { return uniqueMetadata.columns.length > 1 && !table.uniques.find(function (tableUnique) { return tableUnique.name === uniqueMetadata.name; }); })\n .map(function (uniqueMetadata) { return _table_TableUnique__WEBPACK_IMPORTED_MODULE_7__[\"TableUnique\"].create(uniqueMetadata); });\n if (compositeUniques.length === 0)\n return [2 /*return*/, \"continue\"];\n this_16.connection.logger.logSchemaBuild(\"adding new unique constraints: \" + compositeUniques.map(function (unique) { return \"\\\"\" + unique.name + \"\\\"\"; }).join(\", \") + \" in table \\\"\" + table.name + \"\\\"\");\n return [4 /*yield*/, this_16.queryRunner.createUniqueConstraints(table, compositeUniques)];\n case 1:\n _e.sent();\n return [2 /*return*/];\n }\n });\n };\n this_16 = this;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.entityToSyncMetadatas), _b = _a.next();\n _d.label = 2;\n case 2:\n if (!!_b.done) return [3 /*break*/, 5];\n metadata = _b.value;\n return [5 /*yield**/, _loop_16(metadata)];\n case 3:\n _d.sent();\n _d.label = 4;\n case 4:\n _b = _a.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_19_1 = _d.sent();\n e_19 = { error: e_19_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_19) throw e_19.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates exclusions which are missing in db yet.\n */\n RdbmsSchemaBuilder.prototype.createNewExclusions = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _loop_17, this_17, _a, _b, metadata, e_20_1;\n var e_20, _c;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_d) {\n switch (_d.label) {\n case 0:\n // Only PostgreSQL supports exclusion constraints\n if (!(this.connection.driver instanceof _driver_cockroachdb_CockroachDriver__WEBPACK_IMPORTED_MODULE_1__[\"PostgresDriver\"]))\n return [2 /*return*/];\n _loop_17 = function (metadata) {\n var table, newExclusions;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n table = this_17.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; });\n if (!table)\n return [2 /*return*/, \"continue\"];\n newExclusions = metadata.exclusions\n .filter(function (exclusionMetadata) { return !table.exclusions.find(function (tableExclusion) { return tableExclusion.name === exclusionMetadata.name; }); })\n .map(function (exclusionMetadata) { return _table_TableExclusion__WEBPACK_IMPORTED_MODULE_9__[\"TableExclusion\"].create(exclusionMetadata); });\n if (newExclusions.length === 0)\n return [2 /*return*/, \"continue\"];\n this_17.connection.logger.logSchemaBuild(\"adding new exclusion constraints: \" + newExclusions.map(function (exclusion) { return \"\\\"\" + exclusion.name + \"\\\"\"; }).join(\", \") + \" in table \\\"\" + table.name + \"\\\"\");\n return [4 /*yield*/, this_17.queryRunner.createExclusionConstraints(table, newExclusions)];\n case 1:\n _e.sent();\n return [2 /*return*/];\n }\n });\n };\n this_17 = this;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.entityToSyncMetadatas), _b = _a.next();\n _d.label = 2;\n case 2:\n if (!!_b.done) return [3 /*break*/, 5];\n metadata = _b.value;\n return [5 /*yield**/, _loop_17(metadata)];\n case 3:\n _d.sent();\n _d.label = 4;\n case 4:\n _b = _a.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_20_1 = _d.sent();\n e_20 = { error: e_20_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_20) throw e_20.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates foreign keys which does not exist in the table yet.\n */\n RdbmsSchemaBuilder.prototype.createForeignKeys = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var _loop_18, this_18, _a, _b, metadata, e_21_1;\n var e_21, _c;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_d) {\n switch (_d.label) {\n case 0:\n _loop_18 = function (metadata) {\n var table, newKeys, dbForeignKeys;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\n switch (_e.label) {\n case 0:\n table = this_18.queryRunner.loadedTables.find(function (table) { return table.name === metadata.tablePath; });\n if (!table)\n return [2 /*return*/, \"continue\"];\n newKeys = metadata.foreignKeys\n .filter(function (foreignKey) {\n return !table.foreignKeys.find(function (dbForeignKey) { return foreignKeysMatch(dbForeignKey, foreignKey); });\n });\n if (newKeys.length === 0)\n return [2 /*return*/, \"continue\"];\n dbForeignKeys = newKeys.map(function (foreignKeyMetadata) { return _table_TableForeignKey__WEBPACK_IMPORTED_MODULE_4__[\"TableForeignKey\"].create(foreignKeyMetadata); });\n this_18.connection.logger.logSchemaBuild(\"creating a foreign keys: \" + newKeys.map(function (key) { return key.name; }).join(\", \") + \" on table \\\"\" + table.name + \"\\\"\");\n return [4 /*yield*/, this_18.queryRunner.createForeignKeys(table, dbForeignKeys)];\n case 1:\n _e.sent();\n return [2 /*return*/];\n }\n });\n };\n this_18 = this;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(this.entityToSyncMetadatas), _b = _a.next();\n _d.label = 2;\n case 2:\n if (!!_b.done) return [3 /*break*/, 5];\n metadata = _b.value;\n return [5 /*yield**/, _loop_18(metadata)];\n case 3:\n _d.sent();\n _d.label = 4;\n case 4:\n _b = _a.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_21_1 = _d.sent();\n e_21 = { error: e_21_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_21) throw e_21.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops all foreign keys where given column of the given table is being used.\n */\n RdbmsSchemaBuilder.prototype.dropColumnReferencedForeignKeys = function (tablePath, columnName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, tablesWithFK, columnForeignKey, clonedTable, tablesWithFK_1, tablesWithFK_1_1, tableWithFK, e_22_1;\n var e_22, _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n table = this.queryRunner.loadedTables.find(function (table) { return table.name === tablePath; });\n if (!table)\n return [2 /*return*/];\n tablesWithFK = [];\n columnForeignKey = table.foreignKeys.find(function (foreignKey) { return foreignKey.columnNames.indexOf(columnName) !== -1; });\n if (columnForeignKey) {\n clonedTable = table.clone();\n clonedTable.foreignKeys = [columnForeignKey];\n tablesWithFK.push(clonedTable);\n table.removeForeignKey(columnForeignKey);\n }\n this.queryRunner.loadedTables.forEach(function (loadedTable) {\n var dependForeignKeys = loadedTable.foreignKeys.filter(function (foreignKey) {\n return foreignKey.referencedTableName === tablePath && foreignKey.referencedColumnNames.indexOf(columnName) !== -1;\n });\n if (dependForeignKeys.length > 0) {\n var clonedTable = loadedTable.clone();\n clonedTable.foreignKeys = dependForeignKeys;\n tablesWithFK.push(clonedTable);\n dependForeignKeys.forEach(function (dependForeignKey) { return loadedTable.removeForeignKey(dependForeignKey); });\n }\n });\n if (!(tablesWithFK.length > 0)) return [3 /*break*/, 8];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 6, 7, 8]);\n tablesWithFK_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(tablesWithFK), tablesWithFK_1_1 = tablesWithFK_1.next();\n _b.label = 2;\n case 2:\n if (!!tablesWithFK_1_1.done) return [3 /*break*/, 5];\n tableWithFK = tablesWithFK_1_1.value;\n this.connection.logger.logSchemaBuild(\"dropping related foreign keys of \" + tableWithFK.name + \": \" + tableWithFK.foreignKeys.map(function (foreignKey) { return foreignKey.name; }).join(\", \"));\n return [4 /*yield*/, this.queryRunner.dropForeignKeys(tableWithFK, tableWithFK.foreignKeys)];\n case 3:\n _b.sent();\n _b.label = 4;\n case 4:\n tablesWithFK_1_1 = tablesWithFK_1.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_22_1 = _b.sent();\n e_22 = { error: e_22_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (tablesWithFK_1_1 && !tablesWithFK_1_1.done && (_a = tablesWithFK_1.return)) _a.call(tablesWithFK_1);\n }\n finally { if (e_22) throw e_22.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops all composite indices, related to given column.\n */\n RdbmsSchemaBuilder.prototype.dropColumnCompositeIndices = function (tablePath, columnName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, relatedIndices;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n table = this.queryRunner.loadedTables.find(function (table) { return table.name === tablePath; });\n if (!table)\n return [2 /*return*/];\n relatedIndices = table.indices.filter(function (index) { return index.columnNames.length > 1 && index.columnNames.indexOf(columnName) !== -1; });\n if (relatedIndices.length === 0)\n return [2 /*return*/];\n this.connection.logger.logSchemaBuild(\"dropping related indices of \\\"\" + tablePath + \"\\\".\\\"\" + columnName + \"\\\": \" + relatedIndices.map(function (index) { return index.name; }).join(\", \"));\n return [4 /*yield*/, this.queryRunner.dropIndices(table, relatedIndices)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Drops all composite uniques, related to given column.\n */\n RdbmsSchemaBuilder.prototype.dropColumnCompositeUniques = function (tablePath, columnName) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var table, relatedUniques;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n table = this.queryRunner.loadedTables.find(function (table) { return table.name === tablePath; });\n if (!table)\n return [2 /*return*/];\n relatedUniques = table.uniques.filter(function (unique) { return unique.columnNames.length > 1 && unique.columnNames.indexOf(columnName) !== -1; });\n if (relatedUniques.length === 0)\n return [2 /*return*/];\n this.connection.logger.logSchemaBuild(\"dropping related unique constraints of \\\"\" + tablePath + \"\\\".\\\"\" + columnName + \"\\\": \" + relatedUniques.map(function (unique) { return unique.name; }).join(\", \"));\n return [4 /*yield*/, this.queryRunner.dropUniqueConstraints(table, relatedUniques)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Creates new columns from the given column metadatas.\n */\n RdbmsSchemaBuilder.prototype.metadataColumnsToTableColumnOptions = function (columns) {\n var _this = this;\n return columns.map(function (columnMetadata) { return _util_TableUtils__WEBPACK_IMPORTED_MODULE_6__[\"TableUtils\"].createTableColumnOptions(columnMetadata, _this.connection.driver); });\n };\n /**\n * Creates typeorm service table for storing user defined Views.\n */\n RdbmsSchemaBuilder.prototype.createTypeormMetadataTable = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var options, typeormMetadataTable;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n options = this.connection.driver.options;\n typeormMetadataTable = this.connection.driver.buildTableName(\"typeorm_metadata\", options.schema, options.database);\n return [4 /*yield*/, this.queryRunner.createTable(new _table_Table__WEBPACK_IMPORTED_MODULE_2__[\"Table\"]({\n name: typeormMetadataTable,\n columns: [\n {\n name: \"type\",\n type: this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.metadataType }),\n isNullable: false\n },\n {\n name: \"database\",\n type: this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.metadataDatabase }),\n isNullable: true\n },\n {\n name: \"schema\",\n type: this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.metadataSchema }),\n isNullable: true\n },\n {\n name: \"table\",\n type: this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.metadataTable }),\n isNullable: true\n },\n {\n name: \"name\",\n type: this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.metadataName }),\n isNullable: true\n },\n {\n name: \"value\",\n type: this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.metadataValue }),\n isNullable: true\n },\n ]\n }), true)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n return RdbmsSchemaBuilder;\n}());\n\nfunction foreignKeysMatch(tableForeignKey, metadataForeignKey) {\n return (tableForeignKey.name === metadataForeignKey.name)\n && (tableForeignKey.referencedTableName === metadataForeignKey.referencedTablePath);\n}\n\n//# sourceMappingURL=RdbmsSchemaBuilder.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/schema-builder/RdbmsSchemaBuilder.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/schema-builder/table/Table.js":
/*!********************************************************************!*\
!*** ./node_modules/typeorm/browser/schema-builder/table/Table.js ***!
\********************************************************************/
/*! exports provided: Table */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Table\", function() { return Table; });\n/* harmony import */ var _TableColumn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TableColumn */ \"./node_modules/typeorm/browser/schema-builder/table/TableColumn.js\");\n/* harmony import */ var _TableIndex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TableIndex */ \"./node_modules/typeorm/browser/schema-builder/table/TableIndex.js\");\n/* harmony import */ var _TableForeignKey__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TableForeignKey */ \"./node_modules/typeorm/browser/schema-builder/table/TableForeignKey.js\");\n/* harmony import */ var _util_TableUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/TableUtils */ \"./node_modules/typeorm/browser/schema-builder/util/TableUtils.js\");\n/* harmony import */ var _TableUnique__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./TableUnique */ \"./node_modules/typeorm/browser/schema-builder/table/TableUnique.js\");\n/* harmony import */ var _TableCheck__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TableCheck */ \"./node_modules/typeorm/browser/schema-builder/table/TableCheck.js\");\n/* harmony import */ var _TableExclusion__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./TableExclusion */ \"./node_modules/typeorm/browser/schema-builder/table/TableExclusion.js\");\n\n\n\n\n\n\n\n/**\n * Table in the database represented in this class.\n */\nvar Table = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function Table(options) {\n /**\n * Table columns.\n */\n this.columns = [];\n /**\n * Table indices.\n */\n this.indices = [];\n /**\n * Table foreign keys.\n */\n this.foreignKeys = [];\n /**\n * Table unique constraints.\n */\n this.uniques = [];\n /**\n * Table check constraints.\n */\n this.checks = [];\n /**\n * Table exclusion constraints.\n */\n this.exclusions = [];\n /**\n * Indicates if table was just created.\n * This is needed, for example to check if we need to skip primary keys creation\n * for new tables.\n */\n this.justCreated = false;\n if (options) {\n this.name = options.name;\n if (options.columns)\n this.columns = options.columns.map(function (column) { return new _TableColumn__WEBPACK_IMPORTED_MODULE_0__[\"TableColumn\"](column); });\n if (options.indices)\n this.indices = options.indices.map(function (index) { return new _TableIndex__WEBPACK_IMPORTED_MODULE_1__[\"TableIndex\"](index); });\n if (options.foreignKeys)\n this.foreignKeys = options.foreignKeys.map(function (foreignKey) { return new _TableForeignKey__WEBPACK_IMPORTED_MODULE_2__[\"TableForeignKey\"](foreignKey); });\n if (options.uniques)\n this.uniques = options.uniques.map(function (unique) { return new _TableUnique__WEBPACK_IMPORTED_MODULE_4__[\"TableUnique\"](unique); });\n if (options.checks)\n this.checks = options.checks.map(function (check) { return new _TableCheck__WEBPACK_IMPORTED_MODULE_5__[\"TableCheck\"](check); });\n if (options.exclusions)\n this.exclusions = options.exclusions.map(function (exclusion) { return new _TableExclusion__WEBPACK_IMPORTED_MODULE_6__[\"TableExclusion\"](exclusion); });\n if (options.justCreated !== undefined)\n this.justCreated = options.justCreated;\n this.engine = options.engine;\n }\n }\n Object.defineProperty(Table.prototype, \"primaryColumns\", {\n // -------------------------------------------------------------------------\n // Accessors\n // -------------------------------------------------------------------------\n get: function () {\n return this.columns.filter(function (column) { return column.isPrimary; });\n },\n enumerable: false,\n configurable: true\n });\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Clones this table to a new table with all properties cloned.\n */\n Table.prototype.clone = function () {\n return new Table({\n name: this.name,\n columns: this.columns.map(function (column) { return column.clone(); }),\n indices: this.indices.map(function (constraint) { return constraint.clone(); }),\n foreignKeys: this.foreignKeys.map(function (constraint) { return constraint.clone(); }),\n uniques: this.uniques.map(function (constraint) { return constraint.clone(); }),\n checks: this.checks.map(function (constraint) { return constraint.clone(); }),\n exclusions: this.exclusions.map(function (constraint) { return constraint.clone(); }),\n justCreated: this.justCreated,\n engine: this.engine,\n });\n };\n /**\n * Add column and creates its constraints.\n */\n Table.prototype.addColumn = function (column) {\n this.columns.push(column);\n };\n /**\n * Remove column and its constraints.\n */\n Table.prototype.removeColumn = function (column) {\n var foundColumn = this.columns.find(function (c) { return c.name === column.name; });\n if (foundColumn)\n this.columns.splice(this.columns.indexOf(foundColumn), 1);\n };\n /**\n * Adds unique constraint.\n */\n Table.prototype.addUniqueConstraint = function (uniqueConstraint) {\n this.uniques.push(uniqueConstraint);\n if (uniqueConstraint.columnNames.length === 1) {\n var uniqueColumn = this.columns.find(function (column) { return column.name === uniqueConstraint.columnNames[0]; });\n if (uniqueColumn)\n uniqueColumn.isUnique = true;\n }\n };\n /**\n * Removes unique constraint.\n */\n Table.prototype.removeUniqueConstraint = function (removedUnique) {\n var foundUnique = this.uniques.find(function (unique) { return unique.name === removedUnique.name; });\n if (foundUnique) {\n this.uniques.splice(this.uniques.indexOf(foundUnique), 1);\n if (foundUnique.columnNames.length === 1) {\n var uniqueColumn = this.columns.find(function (column) { return column.name === foundUnique.columnNames[0]; });\n if (uniqueColumn)\n uniqueColumn.isUnique = false;\n }\n }\n };\n /**\n * Adds check constraint.\n */\n Table.prototype.addCheckConstraint = function (checkConstraint) {\n this.checks.push(checkConstraint);\n };\n /**\n * Removes check constraint.\n */\n Table.prototype.removeCheckConstraint = function (removedCheck) {\n var foundCheck = this.checks.find(function (check) { return check.name === removedCheck.name; });\n if (foundCheck) {\n this.checks.splice(this.checks.indexOf(foundCheck), 1);\n }\n };\n /**\n * Adds exclusion constraint.\n */\n Table.prototype.addExclusionConstraint = function (exclusionConstraint) {\n this.exclusions.push(exclusionConstraint);\n };\n /**\n * Removes exclusion constraint.\n */\n Table.prototype.removeExclusionConstraint = function (removedExclusion) {\n var foundExclusion = this.exclusions.find(function (exclusion) { return exclusion.name === removedExclusion.name; });\n if (foundExclusion) {\n this.exclusions.splice(this.exclusions.indexOf(foundExclusion), 1);\n }\n };\n /**\n * Adds foreign keys.\n */\n Table.prototype.addForeignKey = function (foreignKey) {\n this.foreignKeys.push(foreignKey);\n };\n /**\n * Removes foreign key.\n */\n Table.prototype.removeForeignKey = function (removedForeignKey) {\n var fk = this.foreignKeys.find(function (foreignKey) { return foreignKey.name === removedForeignKey.name; });\n if (fk)\n this.foreignKeys.splice(this.foreignKeys.indexOf(fk), 1);\n };\n /**\n * Adds index.\n */\n Table.prototype.addIndex = function (index, isMysql) {\n if (isMysql === void 0) { isMysql = false; }\n this.indices.push(index);\n // in Mysql unique indices and unique constraints are the same thing\n // if index is unique and have only one column, we mark this column as unique\n if (index.columnNames.length === 1 && index.isUnique && isMysql) {\n var column = this.columns.find(function (c) { return c.name === index.columnNames[0]; });\n if (column)\n column.isUnique = true;\n }\n };\n /**\n * Removes index.\n */\n Table.prototype.removeIndex = function (tableIndex, isMysql) {\n if (isMysql === void 0) { isMysql = false; }\n var index = this.indices.find(function (index) { return index.name === tableIndex.name; });\n if (index) {\n this.indices.splice(this.indices.indexOf(index), 1);\n // in Mysql unique indices and unique constraints are the same thing\n // if index is unique and have only one column, we move `unique` attribute from its column\n if (index.columnNames.length === 1 && index.isUnique && isMysql) {\n var column_1 = this.columns.find(function (c) { return c.name === index.columnNames[0]; });\n if (column_1)\n column_1.isUnique = this.indices.some(function (ind) { return ind.columnNames.length === 1 && ind.columnNames[0] === column_1.name && !!index.isUnique; });\n }\n }\n };\n Table.prototype.findColumnByName = function (name) {\n return this.columns.find(function (column) { return column.name === name; });\n };\n /**\n * Returns all column indices.\n */\n Table.prototype.findColumnIndices = function (column) {\n return this.indices.filter(function (index) {\n return !!index.columnNames.find(function (columnName) { return columnName === column.name; });\n });\n };\n /**\n * Returns all column foreign keys.\n */\n Table.prototype.findColumnForeignKeys = function (column) {\n return this.foreignKeys.filter(function (foreignKey) {\n return !!foreignKey.columnNames.find(function (columnName) { return columnName === column.name; });\n });\n };\n /**\n * Returns all column uniques.\n */\n Table.prototype.findColumnUniques = function (column) {\n return this.uniques.filter(function (unique) {\n return !!unique.columnNames.find(function (columnName) { return columnName === column.name; });\n });\n };\n /**\n * Returns all column checks.\n */\n Table.prototype.findColumnChecks = function (column) {\n return this.checks.filter(function (check) {\n return !!check.columnNames.find(function (columnName) { return columnName === column.name; });\n });\n };\n // -------------------------------------------------------------------------\n // Static Methods\n // -------------------------------------------------------------------------\n /**\n * Creates table from a given entity metadata.\n */\n Table.create = function (entityMetadata, driver) {\n var options = {\n name: driver.buildTableName(entityMetadata.tableName, entityMetadata.schema, entityMetadata.database),\n engine: entityMetadata.engine,\n columns: entityMetadata.columns\n .filter(function (column) { return column; })\n .map(function (column) { return _util_TableUtils__WEBPACK_IMPORTED_MODULE_3__[\"TableUtils\"].createTableColumnOptions(column, driver); }),\n indices: entityMetadata.indices\n .filter(function (index) { return index.synchronize === true; })\n .map(function (index) { return _TableIndex__WEBPACK_IMPORTED_MODULE_1__[\"TableIndex\"].create(index); }),\n uniques: entityMetadata.uniques.map(function (unique) { return _TableUnique__WEBPACK_IMPORTED_MODULE_4__[\"TableUnique\"].create(unique); }),\n checks: entityMetadata.checks.map(function (check) { return _TableCheck__WEBPACK_IMPORTED_MODULE_5__[\"TableCheck\"].create(check); }),\n exclusions: entityMetadata.exclusions.map(function (exclusion) { return _TableExclusion__WEBPACK_IMPORTED_MODULE_6__[\"TableExclusion\"].create(exclusion); }),\n };\n return new Table(options);\n };\n return Table;\n}());\n\n\n//# sourceMappingURL=Table.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/schema-builder/table/Table.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/schema-builder/table/TableCheck.js":
/*!*************************************************************************!*\
!*** ./node_modules/typeorm/browser/schema-builder/table/TableCheck.js ***!
\*************************************************************************/
/*! exports provided: TableCheck */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TableCheck\", function() { return TableCheck; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Database's table check constraint stored in this class.\n */\nvar TableCheck = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function TableCheck(options) {\n /**\n * Column that contains this constraint.\n */\n this.columnNames = [];\n this.name = options.name;\n this.columnNames = options.columnNames;\n this.expression = options.expression;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Creates a new copy of this constraint with exactly same properties.\n */\n TableCheck.prototype.clone = function () {\n return new TableCheck({\n name: this.name,\n columnNames: this.columnNames ? Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.columnNames)) : [],\n expression: this.expression,\n });\n };\n // -------------------------------------------------------------------------\n // Static Methods\n // -------------------------------------------------------------------------\n /**\n * Creates checks from the check metadata object.\n */\n TableCheck.create = function (checkMetadata) {\n return new TableCheck({\n name: checkMetadata.name,\n expression: checkMetadata.expression\n });\n };\n return TableCheck;\n}());\n\n\n//# sourceMappingURL=TableCheck.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/schema-builder/table/TableCheck.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/schema-builder/table/TableColumn.js":
/*!**************************************************************************!*\
!*** ./node_modules/typeorm/browser/schema-builder/table/TableColumn.js ***!
\**************************************************************************/
/*! exports provided: TableColumn */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TableColumn\", function() { return TableColumn; });\n/**\n * Table's columns in the database represented in this class.\n */\nvar TableColumn = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function TableColumn(options) {\n /**\n * Indicates if column is NULL, or is NOT NULL in the database.\n */\n this.isNullable = false;\n /**\n * Indicates if column is auto-generated sequence.\n */\n this.isGenerated = false;\n /**\n * Indicates if column is a primary key.\n */\n this.isPrimary = false;\n /**\n * Indicates if column has unique value.\n */\n this.isUnique = false;\n /**\n * Indicates if column stores array.\n */\n this.isArray = false;\n /**\n * Column type's length. Used only on some column types.\n * For example type = \"string\" and length = \"100\" means that ORM will create a column with type varchar(100).\n */\n this.length = \"\";\n /**\n * Puts ZEROFILL attribute on to numeric column. Works only for MySQL.\n * If you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to the column\n */\n this.zerofill = false;\n /**\n * Puts UNSIGNED attribute on to numeric column. Works only for MySQL.\n */\n this.unsigned = false;\n if (options) {\n this.name = options.name;\n this.type = options.type || \"\";\n this.length = options.length || \"\";\n this.width = options.width;\n this.charset = options.charset;\n this.collation = options.collation;\n this.precision = options.precision;\n this.scale = options.scale;\n this.zerofill = options.zerofill || false;\n this.unsigned = this.zerofill ? true : (options.unsigned || false);\n this.default = options.default;\n this.onUpdate = options.onUpdate;\n this.isNullable = options.isNullable || false;\n this.isGenerated = options.isGenerated || false;\n this.generationStrategy = options.generationStrategy;\n this.isPrimary = options.isPrimary || false;\n this.isUnique = options.isUnique || false;\n this.isArray = options.isArray || false;\n this.comment = options.comment;\n this.enum = options.enum;\n this.enumName = options.enumName;\n this.asExpression = options.asExpression;\n this.generatedType = options.generatedType;\n this.spatialFeatureType = options.spatialFeatureType;\n this.srid = options.srid;\n }\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Clones this column to a new column with exact same properties as this column has.\n */\n TableColumn.prototype.clone = function () {\n return new TableColumn({\n name: this.name,\n type: this.type,\n length: this.length,\n width: this.width,\n charset: this.charset,\n collation: this.collation,\n precision: this.precision,\n scale: this.scale,\n zerofill: this.zerofill,\n unsigned: this.unsigned,\n enum: this.enum,\n enumName: this.enumName,\n asExpression: this.asExpression,\n generatedType: this.generatedType,\n default: this.default,\n onUpdate: this.onUpdate,\n isNullable: this.isNullable,\n isGenerated: this.isGenerated,\n generationStrategy: this.generationStrategy,\n isPrimary: this.isPrimary,\n isUnique: this.isUnique,\n isArray: this.isArray,\n comment: this.comment,\n spatialFeatureType: this.spatialFeatureType,\n srid: this.srid\n });\n };\n return TableColumn;\n}());\n\n\n//# sourceMappingURL=TableColumn.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/schema-builder/table/TableColumn.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/schema-builder/table/TableExclusion.js":
/*!*****************************************************************************!*\
!*** ./node_modules/typeorm/browser/schema-builder/table/TableExclusion.js ***!
\*****************************************************************************/
/*! exports provided: TableExclusion */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TableExclusion\", function() { return TableExclusion; });\n/**\n * Database's table exclusion constraint stored in this class.\n */\nvar TableExclusion = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function TableExclusion(options) {\n this.name = options.name;\n this.expression = options.expression;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Creates a new copy of this constraint with exactly same properties.\n */\n TableExclusion.prototype.clone = function () {\n return new TableExclusion({\n name: this.name,\n expression: this.expression,\n });\n };\n // -------------------------------------------------------------------------\n // Static Methods\n // -------------------------------------------------------------------------\n /**\n * Creates exclusions from the exclusion metadata object.\n */\n TableExclusion.create = function (exclusionMetadata) {\n return new TableExclusion({\n name: exclusionMetadata.name,\n expression: exclusionMetadata.expression\n });\n };\n return TableExclusion;\n}());\n\n\n//# sourceMappingURL=TableExclusion.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/schema-builder/table/TableExclusion.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/schema-builder/table/TableForeignKey.js":
/*!******************************************************************************!*\
!*** ./node_modules/typeorm/browser/schema-builder/table/TableForeignKey.js ***!
\******************************************************************************/
/*! exports provided: TableForeignKey */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TableForeignKey\", function() { return TableForeignKey; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Foreign key from the database stored in this class.\n */\nvar TableForeignKey = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function TableForeignKey(options) {\n /**\n * Column names which included by this foreign key.\n */\n this.columnNames = [];\n /**\n * Column names which included by this foreign key.\n */\n this.referencedColumnNames = [];\n this.name = options.name;\n this.columnNames = options.columnNames;\n this.referencedColumnNames = options.referencedColumnNames;\n this.referencedTableName = options.referencedTableName;\n this.onDelete = options.onDelete;\n this.onUpdate = options.onUpdate;\n this.deferrable = options.deferrable;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Creates a new copy of this foreign key with exactly same properties.\n */\n TableForeignKey.prototype.clone = function () {\n return new TableForeignKey({\n name: this.name,\n columnNames: Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.columnNames)),\n referencedColumnNames: Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.referencedColumnNames)),\n referencedTableName: this.referencedTableName,\n onDelete: this.onDelete,\n onUpdate: this.onUpdate,\n deferrable: this.deferrable,\n });\n };\n // -------------------------------------------------------------------------\n // Static Methods\n // -------------------------------------------------------------------------\n /**\n * Creates a new table foreign key from the given foreign key metadata.\n */\n TableForeignKey.create = function (metadata) {\n return new TableForeignKey({\n name: metadata.name,\n columnNames: metadata.columnNames,\n referencedColumnNames: metadata.referencedColumnNames,\n referencedTableName: metadata.referencedTablePath,\n onDelete: metadata.onDelete,\n onUpdate: metadata.onUpdate,\n deferrable: metadata.deferrable,\n });\n };\n return TableForeignKey;\n}());\n\n\n//# sourceMappingURL=TableForeignKey.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/schema-builder/table/TableForeignKey.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/schema-builder/table/TableIndex.js":
/*!*************************************************************************!*\
!*** ./node_modules/typeorm/browser/schema-builder/table/TableIndex.js ***!
\*************************************************************************/
/*! exports provided: TableIndex */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TableIndex\", function() { return TableIndex; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Database's table index stored in this class.\n */\nvar TableIndex = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function TableIndex(options) {\n /**\n * Columns included in this index.\n */\n this.columnNames = [];\n this.name = options.name;\n this.columnNames = options.columnNames;\n this.isUnique = !!options.isUnique;\n this.isSpatial = !!options.isSpatial;\n this.isFulltext = !!options.isFulltext;\n this.parser = options.parser;\n this.where = options.where ? options.where : \"\";\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Creates a new copy of this index with exactly same properties.\n */\n TableIndex.prototype.clone = function () {\n return new TableIndex({\n name: this.name,\n columnNames: Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.columnNames)),\n isUnique: this.isUnique,\n isSpatial: this.isSpatial,\n isFulltext: this.isFulltext,\n parser: this.parser,\n where: this.where\n });\n };\n // -------------------------------------------------------------------------\n // Static Methods\n // -------------------------------------------------------------------------\n /**\n * Creates index from the index metadata object.\n */\n TableIndex.create = function (indexMetadata) {\n return new TableIndex({\n name: indexMetadata.name,\n columnNames: indexMetadata.columns.map(function (column) { return column.databaseName; }),\n isUnique: indexMetadata.isUnique,\n isSpatial: indexMetadata.isSpatial,\n isFulltext: indexMetadata.isFulltext,\n parser: indexMetadata.parser,\n where: indexMetadata.where\n });\n };\n return TableIndex;\n}());\n\n\n//# sourceMappingURL=TableIndex.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/schema-builder/table/TableIndex.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/schema-builder/table/TableUnique.js":
/*!**************************************************************************!*\
!*** ./node_modules/typeorm/browser/schema-builder/table/TableUnique.js ***!
\**************************************************************************/
/*! exports provided: TableUnique */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TableUnique\", function() { return TableUnique; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Database's table unique constraint stored in this class.\n */\nvar TableUnique = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function TableUnique(options) {\n /**\n * Columns that contains this constraint.\n */\n this.columnNames = [];\n this.name = options.name;\n this.columnNames = options.columnNames;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Creates a new copy of this constraint with exactly same properties.\n */\n TableUnique.prototype.clone = function () {\n return new TableUnique({\n name: this.name,\n columnNames: Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(this.columnNames))\n });\n };\n // -------------------------------------------------------------------------\n // Static Methods\n // -------------------------------------------------------------------------\n /**\n * Creates unique from the unique metadata object.\n */\n TableUnique.create = function (uniqueMetadata) {\n return new TableUnique({\n name: uniqueMetadata.name,\n columnNames: uniqueMetadata.columns.map(function (column) { return column.databaseName; })\n });\n };\n return TableUnique;\n}());\n\n\n//# sourceMappingURL=TableUnique.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/schema-builder/table/TableUnique.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/schema-builder/util/TableUtils.js":
/*!************************************************************************!*\
!*** ./node_modules/typeorm/browser/schema-builder/util/TableUtils.js ***!
\************************************************************************/
/*! exports provided: TableUtils */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TableUtils\", function() { return TableUtils; });\nvar TableUtils = /** @class */ (function () {\n function TableUtils() {\n }\n TableUtils.createTableColumnOptions = function (columnMetadata, driver) {\n return {\n name: columnMetadata.databaseName,\n length: columnMetadata.length,\n width: columnMetadata.width,\n charset: columnMetadata.charset,\n collation: columnMetadata.collation,\n precision: columnMetadata.precision,\n scale: columnMetadata.scale,\n zerofill: columnMetadata.zerofill,\n unsigned: columnMetadata.unsigned,\n asExpression: columnMetadata.asExpression,\n generatedType: columnMetadata.generatedType,\n default: driver.normalizeDefault(columnMetadata),\n onUpdate: columnMetadata.onUpdate,\n comment: columnMetadata.comment,\n isGenerated: columnMetadata.isGenerated,\n generationStrategy: columnMetadata.generationStrategy,\n isNullable: columnMetadata.isNullable,\n type: driver.normalizeType(columnMetadata),\n isPrimary: columnMetadata.isPrimary,\n isUnique: driver.normalizeIsUnique(columnMetadata),\n isArray: columnMetadata.isArray || false,\n enum: columnMetadata.enum ? columnMetadata.enum.map(function (val) { return val + \"\"; }) : columnMetadata.enum,\n enumName: columnMetadata.enumName,\n spatialFeatureType: columnMetadata.spatialFeatureType,\n srid: columnMetadata.srid\n };\n };\n return TableUtils;\n}());\n\n\n//# sourceMappingURL=TableUtils.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/schema-builder/util/TableUtils.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/schema-builder/view/View.js":
/*!******************************************************************!*\
!*** ./node_modules/typeorm/browser/schema-builder/view/View.js ***!
\******************************************************************/
/*! exports provided: View */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"View\", function() { return View; });\n/**\n * View in the database represented in this class.\n */\nvar View = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function View(options) {\n if (options) {\n this.name = options.name;\n this.expression = options.expression;\n this.materialized = !!options.materialized;\n }\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Clones this table to a new table with all properties cloned.\n */\n View.prototype.clone = function () {\n return new View({\n name: this.name,\n expression: this.expression,\n materialized: this.materialized,\n });\n };\n // -------------------------------------------------------------------------\n // Static Methods\n // -------------------------------------------------------------------------\n /**\n * Creates view from a given entity metadata.\n */\n View.create = function (entityMetadata, driver) {\n var options = {\n name: driver.buildTableName(entityMetadata.tableName, entityMetadata.schema, entityMetadata.database),\n expression: entityMetadata.expression,\n materialized: entityMetadata.tableMetadataArgs.materialized\n };\n return new View(options);\n };\n return View;\n}());\n\n\n//# sourceMappingURL=View.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/schema-builder/view/View.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/subscriber/Broadcaster.js":
/*!****************************************************************!*\
!*** ./node_modules/typeorm/browser/subscriber/Broadcaster.js ***!
\****************************************************************/
/*! exports provided: Broadcaster */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Broadcaster\", function() { return Broadcaster; });\n/**\n * Broadcaster provides a helper methods to broadcast events to the subscribers.\n */\nvar Broadcaster = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function Broadcaster(queryRunner) {\n this.queryRunner = queryRunner;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Broadcasts \"BEFORE_INSERT\" event.\n * Before insert event is executed before entity is being inserted to the database for the first time.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n Broadcaster.prototype.broadcastBeforeInsertEvent = function (result, metadata, entity) {\n var _this = this;\n if (entity && metadata.beforeInsertListeners.length) {\n metadata.beforeInsertListeners.forEach(function (listener) {\n if (listener.isAllowed(entity)) {\n var executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(function (subscriber) {\n if (_this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.beforeInsert) {\n var executionResult = subscriber.beforeInsert({\n connection: _this.queryRunner.connection,\n queryRunner: _this.queryRunner,\n manager: _this.queryRunner.manager,\n entity: entity,\n metadata: metadata\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n };\n /**\n * Broadcasts \"BEFORE_UPDATE\" event.\n * Before update event is executed before entity is being updated in the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n Broadcaster.prototype.broadcastBeforeUpdateEvent = function (result, metadata, entity, databaseEntity, updatedColumns, updatedRelations) {\n var _this = this;\n if (entity && metadata.beforeUpdateListeners.length) {\n metadata.beforeUpdateListeners.forEach(function (listener) {\n if (listener.isAllowed(entity)) {\n var executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(function (subscriber) {\n if (_this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.beforeUpdate) {\n var executionResult = subscriber.beforeUpdate({\n connection: _this.queryRunner.connection,\n queryRunner: _this.queryRunner,\n manager: _this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n updatedColumns: updatedColumns || [],\n updatedRelations: updatedRelations || []\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n };\n /**\n * Broadcasts \"BEFORE_REMOVE\" event.\n * Before remove event is executed before entity is being removed from the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n Broadcaster.prototype.broadcastBeforeRemoveEvent = function (result, metadata, entity, databaseEntity) {\n var _this = this;\n if (entity && metadata.beforeRemoveListeners.length) {\n metadata.beforeRemoveListeners.forEach(function (listener) {\n if (listener.isAllowed(entity)) {\n var executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(function (subscriber) {\n if (_this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.beforeRemove) {\n var executionResult = subscriber.beforeRemove({\n connection: _this.queryRunner.connection,\n queryRunner: _this.queryRunner,\n manager: _this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n entityId: metadata.getEntityIdMixedMap(databaseEntity)\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n };\n /**\n * Broadcasts \"AFTER_INSERT\" event.\n * After insert event is executed after entity is being persisted to the database for the first time.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n Broadcaster.prototype.broadcastAfterInsertEvent = function (result, metadata, entity) {\n var _this = this;\n if (entity && metadata.afterInsertListeners.length) {\n metadata.afterInsertListeners.forEach(function (listener) {\n if (listener.isAllowed(entity)) {\n var executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(function (subscriber) {\n if (_this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.afterInsert) {\n var executionResult = subscriber.afterInsert({\n connection: _this.queryRunner.connection,\n queryRunner: _this.queryRunner,\n manager: _this.queryRunner.manager,\n entity: entity,\n metadata: metadata\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n };\n /**\n * Broadcasts \"BEFORE_TRANSACTION_START\" event.\n */\n Broadcaster.prototype.broadcastBeforeTransactionStartEvent = function (result) {\n var _this = this;\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(function (subscriber) {\n if (subscriber.beforeTransactionStart) {\n var executionResult = subscriber.beforeTransactionStart({\n connection: _this.queryRunner.connection,\n queryRunner: _this.queryRunner,\n manager: _this.queryRunner.manager,\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n };\n /**\n * Broadcasts \"AFTER_TRANSACTION_START\" event.\n */\n Broadcaster.prototype.broadcastAfterTransactionStartEvent = function (result) {\n var _this = this;\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(function (subscriber) {\n if (subscriber.afterTransactionStart) {\n var executionResult = subscriber.afterTransactionStart({\n connection: _this.queryRunner.connection,\n queryRunner: _this.queryRunner,\n manager: _this.queryRunner.manager,\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n };\n /**\n * Broadcasts \"BEFORE_TRANSACTION_COMMIT\" event.\n */\n Broadcaster.prototype.broadcastBeforeTransactionCommitEvent = function (result) {\n var _this = this;\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(function (subscriber) {\n if (subscriber.beforeTransactionCommit) {\n var executionResult = subscriber.beforeTransactionCommit({\n connection: _this.queryRunner.connection,\n queryRunner: _this.queryRunner,\n manager: _this.queryRunner.manager,\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n };\n /**\n * Broadcasts \"AFTER_TRANSACTION_COMMIT\" event.\n */\n Broadcaster.prototype.broadcastAfterTransactionCommitEvent = function (result) {\n var _this = this;\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(function (subscriber) {\n if (subscriber.afterTransactionCommit) {\n var executionResult = subscriber.afterTransactionCommit({\n connection: _this.queryRunner.connection,\n queryRunner: _this.queryRunner,\n manager: _this.queryRunner.manager,\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n };\n /**\n * Broadcasts \"BEFORE_TRANSACTION_ROLLBACK\" event.\n */\n Broadcaster.prototype.broadcastBeforeTransactionRollbackEvent = function (result) {\n var _this = this;\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(function (subscriber) {\n if (subscriber.beforeTransactionRollback) {\n var executionResult = subscriber.beforeTransactionRollback({\n connection: _this.queryRunner.connection,\n queryRunner: _this.queryRunner,\n manager: _this.queryRunner.manager,\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n };\n /**\n * Broadcasts \"AFTER_TRANSACTION_ROLLBACK\" event.\n */\n Broadcaster.prototype.broadcastAfterTransactionRollbackEvent = function (result) {\n var _this = this;\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(function (subscriber) {\n if (subscriber.afterTransactionRollback) {\n var executionResult = subscriber.afterTransactionRollback({\n connection: _this.queryRunner.connection,\n queryRunner: _this.queryRunner,\n manager: _this.queryRunner.manager,\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n };\n /**\n * Broadcasts \"AFTER_UPDATE\" event.\n * After update event is executed after entity is being updated in the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n Broadcaster.prototype.broadcastAfterUpdateEvent = function (result, metadata, entity, databaseEntity, updatedColumns, updatedRelations) {\n var _this = this;\n if (entity && metadata.afterUpdateListeners.length) {\n metadata.afterUpdateListeners.forEach(function (listener) {\n if (listener.isAllowed(entity)) {\n var executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(function (subscriber) {\n if (_this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.afterUpdate) {\n var executionResult = subscriber.afterUpdate({\n connection: _this.queryRunner.connection,\n queryRunner: _this.queryRunner,\n manager: _this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n updatedColumns: updatedColumns || [],\n updatedRelations: updatedRelations || []\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n };\n /**\n * Broadcasts \"AFTER_REMOVE\" event.\n * After remove event is executed after entity is being removed from the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n Broadcaster.prototype.broadcastAfterRemoveEvent = function (result, metadata, entity, databaseEntity) {\n var _this = this;\n if (entity && metadata.afterRemoveListeners.length) {\n metadata.afterRemoveListeners.forEach(function (listener) {\n if (listener.isAllowed(entity)) {\n var executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach(function (subscriber) {\n if (_this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.afterRemove) {\n var executionResult = subscriber.afterRemove({\n connection: _this.queryRunner.connection,\n queryRunner: _this.queryRunner,\n manager: _this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n entityId: metadata.getEntityIdMixedMap(databaseEntity)\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n };\n /**\n * Broadcasts \"AFTER_LOAD\" event for all given entities, and their sub-entities.\n * After load event is executed after entity has been loaded from the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n Broadcaster.prototype.broadcastLoadEventsForAll = function (result, metadata, entities) {\n var _this = this;\n entities.forEach(function (entity) {\n if (entity instanceof Promise) // todo: check why need this?\n return;\n // collect load events for all children entities that were loaded with the main entity\n if (metadata.relations.length) {\n metadata.relations.forEach(function (relation) {\n // in lazy relations we cannot simply access to entity property because it will cause a getter and a database query\n if (relation.isLazy && !entity.hasOwnProperty(relation.propertyName))\n return;\n var value = relation.getEntityValue(entity);\n if (value instanceof Object)\n _this.broadcastLoadEventsForAll(result, relation.inverseEntityMetadata, Array.isArray(value) ? value : [value]);\n });\n }\n if (metadata.afterLoadListeners.length) {\n metadata.afterLoadListeners.forEach(function (listener) {\n if (listener.isAllowed(entity)) {\n var executionResult = listener.execute(entity);\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n if (_this.queryRunner.connection.subscribers.length) {\n _this.queryRunner.connection.subscribers.forEach(function (subscriber) {\n if (_this.isAllowedSubscriber(subscriber, metadata.target) && subscriber.afterLoad) {\n var executionResult = subscriber.afterLoad(entity, {\n connection: _this.queryRunner.connection,\n queryRunner: _this.queryRunner,\n manager: _this.queryRunner.manager,\n entity: entity,\n metadata: metadata\n });\n if (executionResult instanceof Promise)\n result.promises.push(executionResult);\n result.count++;\n }\n });\n }\n });\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * Checks if subscriber's methods can be executed by checking if its don't listen to the particular entity,\n * or listens our entity.\n */\n Broadcaster.prototype.isAllowedSubscriber = function (subscriber, target) {\n return !subscriber.listenTo ||\n !subscriber.listenTo() ||\n subscriber.listenTo() === Object ||\n subscriber.listenTo() === target ||\n subscriber.listenTo().isPrototypeOf(target);\n };\n return Broadcaster;\n}());\n\n\n//# sourceMappingURL=Broadcaster.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/subscriber/Broadcaster.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/subscriber/BroadcasterResult.js":
/*!**********************************************************************!*\
!*** ./node_modules/typeorm/browser/subscriber/BroadcasterResult.js ***!
\**********************************************************************/
/*! exports provided: BroadcasterResult */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BroadcasterResult\", function() { return BroadcasterResult; });\n/**\n * Broadcaster execution result - promises executed by operations and number of executed listeners and subscribers.\n */\nvar BroadcasterResult = /** @class */ (function () {\n function BroadcasterResult() {\n /**\n * Number of executed listeners and subscribers.\n */\n this.count = 0;\n /**\n * Promises returned by listeners and subscribers which needs to be awaited.\n */\n this.promises = [];\n }\n return BroadcasterResult;\n}());\n\n\n//# sourceMappingURL=BroadcasterResult.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/subscriber/BroadcasterResult.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/util/ApplyValueTransformers.js":
/*!*********************************************************************!*\
!*** ./node_modules/typeorm/browser/util/ApplyValueTransformers.js ***!
\*********************************************************************/
/*! exports provided: ApplyValueTransformers */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ApplyValueTransformers\", function() { return ApplyValueTransformers; });\nvar ApplyValueTransformers = /** @class */ (function () {\n function ApplyValueTransformers() {\n }\n ApplyValueTransformers.transformFrom = function (transformer, databaseValue) {\n if (Array.isArray(transformer)) {\n var reverseTransformers = transformer.slice().reverse();\n return reverseTransformers.reduce(function (transformedValue, _transformer) {\n return _transformer.from(transformedValue);\n }, databaseValue);\n }\n return transformer.from(databaseValue);\n };\n ApplyValueTransformers.transformTo = function (transformer, entityValue) {\n if (Array.isArray(transformer)) {\n return transformer.reduce(function (transformedValue, _transformer) {\n return _transformer.to(transformedValue);\n }, entityValue);\n }\n return transformer.to(entityValue);\n };\n return ApplyValueTransformers;\n}());\n\n\n//# sourceMappingURL=ApplyValueTransformers.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/util/ApplyValueTransformers.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/util/DateUtils.js":
/*!********************************************************!*\
!*** ./node_modules/typeorm/browser/util/DateUtils.js ***!
\********************************************************/
/*! exports provided: DateUtils */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DateUtils\", function() { return DateUtils; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\n * Provides utilities to transform hydrated and persisted data.\n */\nvar DateUtils = /** @class */ (function () {\n function DateUtils() {\n }\n // -------------------------------------------------------------------------\n // Public Static Methods\n // -------------------------------------------------------------------------\n /**\n * Normalizes date object hydrated from the database.\n */\n DateUtils.normalizeHydratedDate = function (mixedDate) {\n if (!mixedDate)\n return mixedDate;\n return typeof mixedDate === \"string\" ? new Date(mixedDate) : mixedDate;\n };\n /**\n * Converts given value into date string in a \"YYYY-MM-DD\" format.\n */\n DateUtils.mixedDateToDateString = function (value) {\n if (value instanceof Date)\n return this.formatZerolessValue(value.getFullYear()) + \"-\" + this.formatZerolessValue(value.getMonth() + 1) + \"-\" + this.formatZerolessValue(value.getDate());\n return value;\n };\n /**\n * Converts given value into date object.\n */\n DateUtils.mixedDateToDate = function (mixedDate, toUtc, useMilliseconds) {\n if (toUtc === void 0) { toUtc = false; }\n if (useMilliseconds === void 0) { useMilliseconds = true; }\n var date = typeof mixedDate === \"string\" ? new Date(mixedDate) : mixedDate;\n if (toUtc)\n date = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n if (!useMilliseconds)\n date.setUTCMilliseconds(0);\n return date;\n };\n /**\n * Converts given value into time string in a \"HH:mm:ss\" format.\n */\n DateUtils.mixedDateToTimeString = function (value, skipSeconds) {\n if (skipSeconds === void 0) { skipSeconds = false; }\n if (value instanceof Date)\n return this.formatZerolessValue(value.getHours()) +\n \":\" + this.formatZerolessValue(value.getMinutes()) +\n (!skipSeconds ? \":\" + this.formatZerolessValue(value.getSeconds()) : \"\");\n return value;\n };\n /**\n * Converts given value into time string in a \"HH:mm:ss\" format.\n */\n DateUtils.mixedTimeToDate = function (value) {\n if (typeof value === \"string\") {\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(value.split(\":\"), 3), hours = _a[0], minutes = _a[1], seconds = _a[2];\n var date = new Date();\n if (hours)\n date.setHours(parseInt(hours));\n if (minutes)\n date.setMinutes(parseInt(minutes));\n if (seconds)\n date.setSeconds(parseInt(seconds));\n return date;\n }\n return value;\n };\n /**\n * Converts given string value with \"-\" separator into a \"HH:mm:ss\" format.\n */\n DateUtils.mixedTimeToString = function (value, skipSeconds) {\n if (skipSeconds === void 0) { skipSeconds = false; }\n value = value instanceof Date ? (value.getHours() + \":\" + value.getMinutes() + (!skipSeconds ? \":\" + value.getSeconds() : \"\")) : value;\n if (typeof value === \"string\") {\n return value.split(\":\")\n .map(function (v) { return v.length === 1 ? \"0\" + v : v; }) // append zero at beginning if we have a first-zero-less number\n .join(\":\");\n }\n return value;\n };\n /**\n * Converts given value into datetime string in a \"YYYY-MM-DD HH-mm-ss\" format.\n */\n DateUtils.mixedDateToDatetimeString = function (value, useMilliseconds) {\n if (typeof value === \"string\") {\n value = new Date(value);\n }\n if (value instanceof Date) {\n var finalValue = this.formatZerolessValue(value.getFullYear()) + \"-\" +\n this.formatZerolessValue(value.getMonth() + 1) + \"-\" +\n this.formatZerolessValue(value.getDate()) + \" \" +\n this.formatZerolessValue(value.getHours()) + \":\" +\n this.formatZerolessValue(value.getMinutes()) + \":\" +\n this.formatZerolessValue(value.getSeconds());\n if (useMilliseconds)\n finalValue += \".\" + this.formatMilliseconds(value.getMilliseconds());\n value = finalValue;\n }\n return value;\n };\n /**\n * Converts given value into utc datetime string in a \"YYYY-MM-DD HH-mm-ss.sss\" format.\n */\n DateUtils.mixedDateToUtcDatetimeString = function (value) {\n if (typeof value === \"string\") {\n value = new Date(value);\n }\n if (value instanceof Date) {\n return this.formatZerolessValue(value.getUTCFullYear()) + \"-\" +\n this.formatZerolessValue(value.getUTCMonth() + 1) + \"-\" +\n this.formatZerolessValue(value.getUTCDate()) + \" \" +\n this.formatZerolessValue(value.getUTCHours()) + \":\" +\n this.formatZerolessValue(value.getUTCMinutes()) + \":\" +\n this.formatZerolessValue(value.getUTCSeconds()) + \".\" +\n this.formatMilliseconds(value.getUTCMilliseconds());\n }\n return value;\n };\n /**\n * Converts each item in the given array to string joined by \",\" separator.\n */\n DateUtils.simpleArrayToString = function (value) {\n if (Array.isArray(value)) {\n return value\n .map(function (i) { return String(i); })\n .join(\",\");\n }\n return value;\n };\n /**\n * Converts given string to simple array split by \",\" separator.\n */\n DateUtils.stringToSimpleArray = function (value) {\n if (value instanceof String || typeof value === \"string\") {\n if (value.length > 0) {\n return value.split(\",\");\n }\n else {\n return [];\n }\n }\n return value;\n };\n DateUtils.simpleJsonToString = function (value) {\n return JSON.stringify(value);\n };\n DateUtils.stringToSimpleJson = function (value) {\n return typeof value === \"string\" ? JSON.parse(value) : value;\n };\n DateUtils.simpleEnumToString = function (value) {\n return \"\" + value;\n };\n DateUtils.stringToSimpleEnum = function (value, columnMetadata) {\n if (columnMetadata.enum\n && !isNaN(value)\n && columnMetadata.enum.indexOf(parseInt(value)) >= 0) {\n // convert to number if that exists in poosible enum options\n value = parseInt(value);\n }\n return value;\n };\n // -------------------------------------------------------------------------\n // Private Static Methods\n // -------------------------------------------------------------------------\n /**\n * Formats given number to \"0x\" format, e.g. if it is 1 then it will return \"01\".\n */\n DateUtils.formatZerolessValue = function (value) {\n if (value < 10)\n return \"0\" + value;\n return String(value);\n };\n /**\n * Formats given number to \"0x\" format, e.g. if it is 1 then it will return \"01\".\n */\n DateUtils.formatMilliseconds = function (value) {\n if (value < 10) {\n return \"00\" + value;\n }\n else if (value < 100) {\n return \"0\" + value;\n }\n else {\n return String(value);\n }\n };\n return DateUtils;\n}());\n\n\n//# sourceMappingURL=DateUtils.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/util/DateUtils.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/util/DepGraph.js":
/*!*******************************************************!*\
!*** ./node_modules/typeorm/browser/util/DepGraph.js ***!
\*******************************************************/
/*! exports provided: DepGraph */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DepGraph\", function() { return DepGraph; });\n/**\n * This source code is from https://github.com/jriecken/dependency-graph\n * Just added \"any\" types here, wrapper everything into exported class.\n * We cant use a package itself because we want to package \"everything-in-it\" for the frontend users of TypeORM.\n */\n/**\n * A simple dependency graph\n */\n/**\n * Helper for creating a Depth-First-Search on\n * a set of edges.\n *\n * Detects cycles and throws an Error if one is detected.\n *\n * @param edges The set of edges to DFS through\n * @param leavesOnly Whether to only return \"leaf\" nodes (ones who have no edges)\n * @param result An array in which the results will be populated\n */\nfunction createDFS(edges, leavesOnly, result) {\n var currentPath = [];\n var visited = {};\n return function DFS(currentNode) {\n visited[currentNode] = true;\n currentPath.push(currentNode);\n edges[currentNode].forEach(function (node) {\n if (!visited[node]) {\n DFS(node);\n }\n else if (currentPath.indexOf(node) >= 0) {\n currentPath.push(node);\n throw new Error(\"Dependency Cycle Found: \" + currentPath.join(\" -> \"));\n }\n });\n currentPath.pop();\n if ((!leavesOnly || edges[currentNode].length === 0) && result.indexOf(currentNode) === -1) {\n result.push(currentNode);\n }\n };\n}\nvar DepGraph = /** @class */ (function () {\n function DepGraph() {\n this.nodes = {};\n this.outgoingEdges = {}; // Node -> [Dependency Node]\n this.incomingEdges = {}; // Node -> [Dependant Node]\n }\n /**\n * Add a node to the dependency graph. If a node already exists, this method will do nothing.\n */\n DepGraph.prototype.addNode = function (node, data) {\n if (!this.hasNode(node)) {\n // Checking the arguments length allows the user to add a node with undefined data\n if (arguments.length === 2) {\n this.nodes[node] = data;\n }\n else {\n this.nodes[node] = node;\n }\n this.outgoingEdges[node] = [];\n this.incomingEdges[node] = [];\n }\n };\n /**\n * Remove a node from the dependency graph. If a node does not exist, this method will do nothing.\n */\n DepGraph.prototype.removeNode = function (node) {\n if (this.hasNode(node)) {\n delete this.nodes[node];\n delete this.outgoingEdges[node];\n delete this.incomingEdges[node];\n [this.incomingEdges, this.outgoingEdges].forEach(function (edgeList) {\n Object.keys(edgeList).forEach(function (key) {\n var idx = edgeList[key].indexOf(node);\n if (idx >= 0) {\n edgeList[key].splice(idx, 1);\n }\n }, this);\n });\n }\n };\n /**\n * Check if a node exists in the graph\n */\n DepGraph.prototype.hasNode = function (node) {\n return this.nodes.hasOwnProperty(node);\n };\n /**\n * Get the data associated with a node name\n */\n DepGraph.prototype.getNodeData = function (node) {\n if (this.hasNode(node)) {\n return this.nodes[node];\n }\n else {\n throw new Error(\"Node does not exist: \" + node);\n }\n };\n /**\n * Set the associated data for a given node name. If the node does not exist, this method will throw an error\n */\n DepGraph.prototype.setNodeData = function (node, data) {\n if (this.hasNode(node)) {\n this.nodes[node] = data;\n }\n else {\n throw new Error(\"Node does not exist: \" + node);\n }\n };\n /**\n * Add a dependency between two nodes. If either of the nodes does not exist,\n * an Error will be thrown.\n */\n DepGraph.prototype.addDependency = function (from, to) {\n if (!this.hasNode(from)) {\n throw new Error(\"Node does not exist: \" + from);\n }\n if (!this.hasNode(to)) {\n throw new Error(\"Node does not exist: \" + to);\n }\n if (this.outgoingEdges[from].indexOf(to) === -1) {\n this.outgoingEdges[from].push(to);\n }\n if (this.incomingEdges[to].indexOf(from) === -1) {\n this.incomingEdges[to].push(from);\n }\n return true;\n };\n /**\n * Remove a dependency between two nodes.\n */\n DepGraph.prototype.removeDependency = function (from, to) {\n var idx;\n if (this.hasNode(from)) {\n idx = this.outgoingEdges[from].indexOf(to);\n if (idx >= 0) {\n this.outgoingEdges[from].splice(idx, 1);\n }\n }\n if (this.hasNode(to)) {\n idx = this.incomingEdges[to].indexOf(from);\n if (idx >= 0) {\n this.incomingEdges[to].splice(idx, 1);\n }\n }\n };\n /**\n * Get an array containing the nodes that the specified node depends on (transitively).\n *\n * Throws an Error if the graph has a cycle, or the specified node does not exist.\n *\n * If `leavesOnly` is true, only nodes that do not depend on any other nodes will be returned\n * in the array.\n */\n DepGraph.prototype.dependenciesOf = function (node, leavesOnly) {\n if (this.hasNode(node)) {\n var result = [];\n var DFS = createDFS(this.outgoingEdges, leavesOnly, result);\n DFS(node);\n var idx = result.indexOf(node);\n if (idx >= 0) {\n result.splice(idx, 1);\n }\n return result;\n }\n else {\n throw new Error(\"Node does not exist: \" + node);\n }\n };\n /**\n * get an array containing the nodes that depend on the specified node (transitively).\n *\n * Throws an Error if the graph has a cycle, or the specified node does not exist.\n *\n * If `leavesOnly` is true, only nodes that do not have any dependants will be returned in the array.\n */\n DepGraph.prototype.dependantsOf = function (node, leavesOnly) {\n if (this.hasNode(node)) {\n var result = [];\n var DFS = createDFS(this.incomingEdges, leavesOnly, result);\n DFS(node);\n var idx = result.indexOf(node);\n if (idx >= 0) {\n result.splice(idx, 1);\n }\n return result;\n }\n else {\n throw new Error(\"Node does not exist: \" + node);\n }\n };\n /**\n * Construct the overall processing order for the dependency graph.\n *\n * Throws an Error if the graph has a cycle.\n *\n * If `leavesOnly` is true, only nodes that do not depend on any other nodes will be returned.\n */\n DepGraph.prototype.overallOrder = function (leavesOnly) {\n var self = this;\n var result = [];\n var keys = Object.keys(this.nodes);\n if (keys.length === 0) {\n return result; // Empty graph\n }\n else {\n // Look for cycles - we run the DFS starting at all the nodes in case there\n // are several disconnected subgraphs inside this dependency graph.\n var CycleDFS_1 = createDFS(this.outgoingEdges, false, []);\n keys.forEach(function (n) {\n CycleDFS_1(n);\n });\n var DFS_1 = createDFS(this.outgoingEdges, leavesOnly, result);\n // Find all potential starting points (nodes with nothing depending on them) an\n // run a DFS starting at these points to get the order\n keys.filter(function (node) {\n return self.incomingEdges[node].length === 0;\n }).forEach(function (n) {\n DFS_1(n);\n });\n return result;\n }\n };\n return DepGraph;\n}());\n\n\n//# sourceMappingURL=DepGraph.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/util/DepGraph.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/util/ObjectUtils.js":
/*!**********************************************************!*\
!*** ./node_modules/typeorm/browser/util/ObjectUtils.js ***!
\**********************************************************/
/*! exports provided: ObjectUtils */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObjectUtils\", function() { return ObjectUtils; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\nvar ObjectUtils = /** @class */ (function () {\n function ObjectUtils() {\n }\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param sources One or more source objects from which to copy properties\n */\n ObjectUtils.assign = function (target) {\n var e_1, _a, e_2, _b;\n var sources = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n sources[_i - 1] = arguments[_i];\n }\n try {\n for (var sources_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(sources), sources_1_1 = sources_1.next(); !sources_1_1.done; sources_1_1 = sources_1.next()) {\n var source = sources_1_1.value;\n try {\n for (var _c = (e_2 = void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(Object.getOwnPropertyNames(source))), _d = _c.next(); !_d.done; _d = _c.next()) {\n var prop = _d.value;\n target[prop] = source[prop];\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (sources_1_1 && !sources_1_1.done && (_a = sources_1.return)) _a.call(sources_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n return ObjectUtils;\n}());\n\n\n//# sourceMappingURL=ObjectUtils.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/util/ObjectUtils.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/util/OrmUtils.js":
/*!*******************************************************!*\
!*** ./node_modules/typeorm/browser/util/OrmUtils.js ***!
\*******************************************************/
/*! exports provided: OrmUtils */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(Buffer) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OrmUtils\", function() { return OrmUtils; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\nvar OrmUtils = /** @class */ (function () {\n function OrmUtils() {\n }\n // -------------------------------------------------------------------------\n // Public methods\n // -------------------------------------------------------------------------\n /**\n * Chunks array into peaces.\n */\n OrmUtils.chunk = function (array, size) {\n return Array.from(Array(Math.ceil(array.length / size)), function (_, i) {\n return array.slice(i * size, i * size + size);\n });\n };\n OrmUtils.splitClassesAndStrings = function (clsesAndStrings) {\n return [\n (clsesAndStrings).filter(function (cls) { return typeof cls !== \"string\"; }),\n (clsesAndStrings).filter(function (str) { return typeof str === \"string\"; }),\n ];\n };\n OrmUtils.groupBy = function (array, propertyCallback) {\n return array.reduce(function (groupedArray, value) {\n var key = propertyCallback(value);\n var grouped = groupedArray.find(function (i) { return i.id === key; });\n if (!grouped) {\n grouped = { id: key, items: [] };\n groupedArray.push(grouped);\n }\n grouped.items.push(value);\n return groupedArray;\n }, []);\n };\n OrmUtils.uniq = function (array, criteriaOrProperty) {\n return array.reduce(function (uniqueArray, item) {\n var found = false;\n if (criteriaOrProperty instanceof Function) {\n var itemValue_1 = criteriaOrProperty(item);\n found = !!uniqueArray.find(function (uniqueItem) { return criteriaOrProperty(uniqueItem) === itemValue_1; });\n }\n else if (typeof criteriaOrProperty === \"string\") {\n found = !!uniqueArray.find(function (uniqueItem) { return uniqueItem[criteriaOrProperty] === item[criteriaOrProperty]; });\n }\n else {\n found = uniqueArray.indexOf(item) !== -1;\n }\n if (!found)\n uniqueArray.push(item);\n return uniqueArray;\n }, []);\n };\n OrmUtils.isObject = function (item) {\n return (item && typeof item === \"object\" && !Array.isArray(item));\n };\n /**\n * Deep Object.assign.\n *\n * @see http://stackoverflow.com/a/34749873\n */\n OrmUtils.mergeDeep = function (target) {\n var _a, _b;\n var sources = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n sources[_i - 1] = arguments[_i];\n }\n if (!sources.length)\n return target;\n var source = sources.shift();\n if (this.isObject(target) && this.isObject(source)) {\n for (var key in source) {\n var value = source[key];\n if (key === \"__proto__\" || value instanceof Promise)\n continue;\n if (this.isObject(value)\n && !(value instanceof Map)\n && !(value instanceof Set)\n && !(value instanceof Date)\n && !(value instanceof Buffer)\n && !(value instanceof RegExp)) {\n if (!target[key])\n Object.assign(target, (_a = {}, _a[key] = Object.create(Object.getPrototypeOf(value)), _a));\n this.mergeDeep(target[key], value);\n }\n else {\n Object.assign(target, (_b = {}, _b[key] = value, _b));\n }\n }\n }\n return this.mergeDeep.apply(this, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([target], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(sources)));\n };\n /**\n * Deep compare objects.\n *\n * @see http://stackoverflow.com/a/1144249\n */\n OrmUtils.deepCompare = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var i, l, leftChain, rightChain;\n if (arguments.length < 1) {\n return true; // Die silently? Don't know how to handle such case, please help...\n // throw \"Need two or more arguments to compare\";\n }\n for (i = 1, l = arguments.length; i < l; i++) {\n leftChain = []; // Todo: this can be cached\n rightChain = [];\n if (!this.compare2Objects(leftChain, rightChain, arguments[0], arguments[i])) {\n return false;\n }\n }\n return true;\n };\n /**\n * Check if two entity-id-maps are the same\n */\n OrmUtils.compareIds = function (firstId, secondId) {\n if (firstId === undefined || firstId === null || secondId === undefined || secondId === null)\n return false;\n // Optimized version for the common case\n if (((typeof firstId.id === \"string\" && typeof secondId.id === \"string\") ||\n (typeof firstId.id === \"number\" && typeof secondId.id === \"number\")) &&\n Object.keys(firstId).length === 1 &&\n Object.keys(secondId).length === 1) {\n return firstId.id === secondId.id;\n }\n return OrmUtils.deepCompare(firstId, secondId);\n };\n /**\n * Transforms given value into boolean value.\n */\n OrmUtils.toBoolean = function (value) {\n if (typeof value === \"boolean\")\n return value;\n if (typeof value === \"string\")\n return value === \"true\" || value === \"1\";\n if (typeof value === \"number\")\n return value > 0;\n return false;\n };\n /**\n * Composes an object from the given array of keys and values.\n */\n OrmUtils.zipObject = function (keys, values) {\n return keys.reduce(function (object, column, index) {\n object[column] = values[index];\n return object;\n }, {});\n };\n /**\n * Compares two arrays.\n */\n OrmUtils.isArraysEqual = function (arr1, arr2) {\n if (arr1.length !== arr2.length)\n return false;\n return arr1.every(function (element) {\n return arr2.indexOf(element) !== -1;\n });\n };\n // -------------------------------------------------------------------------\n // Private methods\n // -------------------------------------------------------------------------\n OrmUtils.compare2Objects = function (leftChain, rightChain, x, y) {\n var p;\n // remember that NaN === NaN returns false\n // and isNaN(undefined) returns true\n if (Number.isNaN(x) && Number.isNaN(y))\n return true;\n // Compare primitives and functions.\n // Check if both arguments link to the same object.\n // Especially useful on the step where we compare prototypes\n if (x === y)\n return true;\n // Unequal, but either is null or undefined (use case: jsonb comparasion)\n // PR #3776, todo: add tests\n if (x === null || y === null || x === undefined || y === undefined)\n return false;\n // Fix the buffer compare bug.\n // See: https://github.com/typeorm/typeorm/issues/3654\n if ((typeof x.equals === \"function\" || x.equals instanceof Function) && x.equals(y))\n return true;\n // Works in case when functions are created in constructor.\n // Comparing dates is a common scenario. Another built-ins?\n // We can even handle functions passed across iframes\n if ((typeof x === \"function\" && typeof y === \"function\") ||\n (x instanceof Date && y instanceof Date) ||\n (x instanceof RegExp && y instanceof RegExp) ||\n (x instanceof String && y instanceof String) ||\n (x instanceof Number && y instanceof Number))\n return x.toString() === y.toString();\n // At last checking prototypes as good as we can\n if (!(x instanceof Object && y instanceof Object))\n return false;\n if (x.isPrototypeOf(y) || y.isPrototypeOf(x))\n return false;\n if (x.constructor !== y.constructor)\n return false;\n if (x.prototype !== y.prototype)\n return false;\n // Check for infinitive linking loops\n if (leftChain.indexOf(x) > -1 || rightChain.indexOf(y) > -1)\n return false;\n // Quick checking of one object being a subset of another.\n // todo: cache the structure of arguments[0] for performance\n for (p in y) {\n if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {\n return false;\n }\n else if (typeof y[p] !== typeof x[p]) {\n return false;\n }\n }\n for (p in x) {\n if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {\n return false;\n }\n else if (typeof y[p] !== typeof x[p]) {\n return false;\n }\n switch (typeof (x[p])) {\n case \"object\":\n case \"function\":\n leftChain.push(x);\n rightChain.push(y);\n if (!this.compare2Objects(leftChain, rightChain, x[p], y[p])) {\n return false;\n }\n leftChain.pop();\n rightChain.pop();\n break;\n default:\n if (x[p] !== y[p]) {\n return false;\n }\n break;\n }\n }\n return true;\n };\n return OrmUtils;\n}());\n\n\n//# sourceMappingURL=OrmUtils.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/util/OrmUtils.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/util/RandomGenerator.js":
/*!**************************************************************!*\
!*** ./node_modules/typeorm/browser/util/RandomGenerator.js ***!
\**************************************************************/
/*! exports provided: RandomGenerator */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RandomGenerator\", function() { return RandomGenerator; });\nvar RandomGenerator = /** @class */ (function () {\n function RandomGenerator() {\n }\n /**\n * discuss at: http://locutus.io/php/sha1/\n * original by: Webtoolkit.info (http://www.webtoolkit.info/)\n * improved by: Michael White (http://getsprink.com)\n * improved by: Kevin van Zonneveld (http://kvz.io)\n * input by: Brett Zamir (http://brett-zamir.me)\n * note 1: Keep in mind that in accordance with PHP, the whole string is buffered and then\n * note 1: hashed. If available, we'd recommend using Node's native crypto modules directly\n * note 1: in a steaming fashion for faster and more efficient hashing\n * example 1: sha1('Kevin van Zonneveld')\n * returns 1: '54916d2e62f65b3afa6e192e6a601cdbe5cb5897'\n */\n RandomGenerator.sha1 = function (str) {\n var _rotLeft = function (n, s) {\n var t4 = (n << s) | (n >>> (32 - s));\n return t4;\n };\n var _cvtHex = function (val) {\n var str = \"\";\n var i;\n var v;\n for (i = 7; i >= 0; i--) {\n v = (val >>> (i * 4)) & 0x0f;\n str += v.toString(16);\n }\n return str;\n };\n var blockstart;\n var i, j;\n var W = new Array(80);\n var H0 = 0x67452301;\n var H1 = 0xEFCDAB89;\n var H2 = 0x98BADCFE;\n var H3 = 0x10325476;\n var H4 = 0xC3D2E1F0;\n var A, B, C, D, E;\n var temp;\n // utf8_encode\n str = /*unescape*/ (encodeURIComponent(str));\n var strLen = str.length;\n var wordArray = [];\n for (i = 0; i < strLen - 3; i += 4) {\n j = str.charCodeAt(i) << 24 |\n str.charCodeAt(i + 1) << 16 |\n str.charCodeAt(i + 2) << 8 |\n str.charCodeAt(i + 3);\n wordArray.push(j);\n }\n switch (strLen % 4) {\n case 0:\n i = 0x080000000;\n break;\n case 1:\n i = str.charCodeAt(strLen - 1) << 24 | 0x0800000;\n break;\n case 2:\n i = str.charCodeAt(strLen - 2) << 24 | str.charCodeAt(strLen - 1) << 16 | 0x08000;\n break;\n case 3:\n i = str.charCodeAt(strLen - 3) << 24 |\n str.charCodeAt(strLen - 2) << 16 |\n str.charCodeAt(strLen - 1) <<\n 8 | 0x80;\n break;\n }\n wordArray.push(i);\n while ((wordArray.length % 16) !== 14) {\n wordArray.push(0);\n }\n wordArray.push(strLen >>> 29);\n wordArray.push((strLen << 3) & 0x0ffffffff);\n for (blockstart = 0; blockstart < wordArray.length; blockstart += 16) {\n for (i = 0; i < 16; i++) {\n W[i] = wordArray[blockstart + i];\n }\n for (i = 16; i <= 79; i++) {\n W[i] = _rotLeft(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n }\n A = H0;\n B = H1;\n C = H2;\n D = H3;\n E = H4;\n for (i = 0; i <= 19; i++) {\n temp = (_rotLeft(A, 5) + ((B & C) | (~B & D)) + E + W[i] + 0x5A827999) & 0x0ffffffff;\n E = D;\n D = C;\n C = _rotLeft(B, 30);\n B = A;\n A = temp;\n }\n for (i = 20; i <= 39; i++) {\n temp = (_rotLeft(A, 5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff;\n E = D;\n D = C;\n C = _rotLeft(B, 30);\n B = A;\n A = temp;\n }\n for (i = 40; i <= 59; i++) {\n temp = (_rotLeft(A, 5) + ((B & C) | (B & D) | (C & D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff;\n E = D;\n D = C;\n C = _rotLeft(B, 30);\n B = A;\n A = temp;\n }\n for (i = 60; i <= 79; i++) {\n temp = (_rotLeft(A, 5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff;\n E = D;\n D = C;\n C = _rotLeft(B, 30);\n B = A;\n A = temp;\n }\n H0 = (H0 + A) & 0x0ffffffff;\n H1 = (H1 + B) & 0x0ffffffff;\n H2 = (H2 + C) & 0x0ffffffff;\n H3 = (H3 + D) & 0x0ffffffff;\n H4 = (H4 + E) & 0x0ffffffff;\n }\n temp = _cvtHex(H0) + _cvtHex(H1) + _cvtHex(H2) + _cvtHex(H3) + _cvtHex(H4);\n return temp.toLowerCase();\n };\n /**\n * RFC4122 compliant UUID v4 generator.\n */\n RandomGenerator.uuid4 = function () {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0, v = c === \"x\" ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n };\n return RandomGenerator;\n}());\n\n\n//# sourceMappingURL=RandomGenerator.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/util/RandomGenerator.js?");
/***/ }),
/***/ "./node_modules/typeorm/browser/util/StringUtils.js":
/*!**********************************************************!*\
!*** ./node_modules/typeorm/browser/util/StringUtils.js ***!
\**********************************************************/
/*! exports provided: camelCase, snakeCase, titleCase, abbreviate, shorten, hash */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"camelCase\", function() { return camelCase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"snakeCase\", function() { return snakeCase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"titleCase\", function() { return titleCase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"abbreviate\", function() { return abbreviate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shorten\", function() { return shorten; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hash\", function() { return hash; });\n/* harmony import */ var sha_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! sha.js */ \"./node_modules/sha.js/index.js\");\n/* harmony import */ var sha_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(sha_js__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\n * Converts string into camelCase.\n *\n * @see http://stackoverflow.com/questions/2970525/converting-any-string-into-camel-case\n */\nfunction camelCase(str, firstCapital) {\n if (firstCapital === void 0) { firstCapital = false; }\n return str.replace(/^([A-Z])|[\\s-_](\\w)/g, function (match, p1, p2, offset) {\n if (firstCapital === true && offset === 0)\n return p1;\n if (p2)\n return p2.toUpperCase();\n return p1.toLowerCase();\n });\n}\n/**\n * Converts string into snake_case.\n *\n * @see https://regex101.com/r/QeSm2I/1\n */\nfunction snakeCase(str) {\n return str.replace(/(?:([a-z])([A-Z]))|(?:((?!^)[A-Z])([a-z]))/g, \"$1_$3$2$4\").toLowerCase();\n}\n/**\n * Converts string into Title Case.\n *\n * @see http://stackoverflow.com/questions/196972/convert-string-to-title-case-with-javascript\n */\nfunction titleCase(str) {\n return str.replace(/\\w\\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); });\n}\n/**\n * Builds abbreviated string from given string;\n */\nfunction abbreviate(str, abbrLettersCount) {\n if (abbrLettersCount === void 0) { abbrLettersCount = 1; }\n var words = str.replace(/([a-z\\xE0-\\xFF])([A-Z\\xC0\\xDF])/g, \"$1 $2\").split(\" \");\n return words.reduce(function (res, word) {\n res += word.substr(0, abbrLettersCount);\n return res;\n }, \"\");\n}\n/**\n * Shorten a given `input`. Useful for RDBMS imposing a limit on the\n * maximum length of aliases and column names in SQL queries.\n *\n * @param input String to be shortened.\n * @param options Default to `4` for segments length, `2` for terms length, `'__'` as a separator.\n *\n * @return Shortened `input`.\n *\n * @example\n * // returns: \"UsShCa__orde__mark__dire\"\n * shorten('UserShoppingCart__order__market__director')\n *\n * // returns: \"cat_wit_ver_lon_nam_pos_wit_ver_lon_nam_pos_wit_ver_lon_nam\"\n * shorten(\n * 'category_with_very_long_name_posts_with_very_long_name_post_with_very_long_name',\n * { separator: '_', segmentLength: 3 }\n * )\n *\n * // equals: UsShCa__orde__mark_market_id\n * `${shorten('UserShoppingCart__order__market')}_market_id`\n */\nfunction shorten(input, options) {\n if (options === void 0) { options = {}; }\n 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;\n var segments = input.split(separator);\n var shortSegments = segments.reduce(function (acc, val) {\n // split the given segment into many terms based on an eventual camel cased name\n var segmentTerms = val.replace(/([a-z\\xE0-\\xFF])([A-Z\\xC0-\\xDF])/g, \"$1 $2\").split(\" \");\n // \"OrderItemList\" becomes \"OrItLi\", while \"company\" becomes \"comp\"\n var length = segmentTerms.length > 1 ? termLength : segmentLength;\n var shortSegment = segmentTerms.map(function (term) { return term.substr(0, length); }).join(\"\");\n acc.push(shortSegment);\n return acc;\n }, []);\n return shortSegments.join(separator);\n}\n/**\n * Returns a hashed input.\n *\n * @param input String to be hashed.\n * @param options.length Optionally, shorten the output to desired length.\n */\nfunction hash(input, options) {\n if (options === void 0) { options = {}; }\n var hashFunction = sha_js__WEBPACK_IMPORTED_MODULE_0___default()(\"sha256\");\n hashFunction.update(input, \"utf8\");\n var hashedInput = hashFunction.digest(\"hex\");\n if (options.length) {\n return hashedInput.slice(0, options.length);\n }\n return hashedInput;\n}\n\n//# sourceMappingURL=StringUtils.js.map\n\n\n//# sourceURL=webpack:///./node_modules/typeorm/browser/util/StringUtils.js?");
/***/ }),
/***/ "./node_modules/webpack/buildin/global.js":
/*!***********************************!*\
!*** (webpack)/buildin/global.js ***!
\***********************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n//# sourceURL=webpack:///(webpack)/buildin/global.js?");
/***/ }),
/***/ "./src/client/html/fragment/settings.html":
/*!************************************************!*\
!*** ./src/client/html/fragment/settings.html ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/settings.html\";\n\n//# sourceURL=webpack:///./src/client/html/fragment/settings.html?");
/***/ }),
/***/ "./src/client/html/sites/contactSite.html":
/*!************************************************!*\
!*** ./src/client/html/sites/contactSite.html ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/contactSite.html\";\n\n//# sourceURL=webpack:///./src/client/html/sites/contactSite.html?");
/***/ }),
/***/ "./src/client/html/sites/credits.html":
/*!********************************************!*\
!*** ./src/client/html/sites/credits.html ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/credits.html\";\n\n//# sourceURL=webpack:///./src/client/html/sites/credits.html?");
/***/ }),
/***/ "./src/client/html/sites/end.html":
/*!****************************************!*\
!*** ./src/client/html/sites/end.html ***!
\****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/end.html\";\n\n//# sourceURL=webpack:///./src/client/html/sites/end.html?");
/***/ }),
/***/ "./src/client/html/sites/impressum.html":
/*!**********************************************!*\
!*** ./src/client/html/sites/impressum.html ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/impressum.html\";\n\n//# sourceURL=webpack:///./src/client/html/sites/impressum.html?");
/***/ }),
/***/ "./src/client/html/sites/level.html":
/*!******************************************!*\
!*** ./src/client/html/sites/level.html ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/level.html\";\n\n//# sourceURL=webpack:///./src/client/html/sites/level.html?");
/***/ }),
/***/ "./src/client/html/sites/menu.html":
/*!*****************************************!*\
!*** ./src/client/html/sites/menu.html ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/menu.html\";\n\n//# sourceURL=webpack:///./src/client/html/sites/menu.html?");
/***/ }),
/***/ "./src/client/html/sites/privacyPolicy.html":
/*!**************************************************!*\
!*** ./src/client/html/sites/privacyPolicy.html ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/privacyPolicy.html\";\n\n//# sourceURL=webpack:///./src/client/html/sites/privacyPolicy.html?");
/***/ }),
/***/ "./src/client/html/sites/settingsSite.html":
/*!*************************************************!*\
!*** ./src/client/html/sites/settingsSite.html ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/settingsSite.html\";\n\n//# sourceURL=webpack:///./src/client/html/sites/settingsSite.html?");
/***/ }),
/***/ "./src/client/html/sites/tutorialSite.html":
/*!*************************************************!*\
!*** ./src/client/html/sites/tutorialSite.html ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"html/tutorialSite.html\";\n\n//# sourceURL=webpack:///./src/client/html/sites/tutorialSite.html?");
/***/ }),
/***/ "./src/client/img/help.png":
/*!*********************************!*\
!*** ./src/client/img/help.png ***!
\*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"img/help.png\");\n\n//# sourceURL=webpack:///./src/client/img/help.png?");
/***/ }),
/***/ "./src/client/img/settings.png":
/*!*************************************!*\
!*** ./src/client/img/settings.png ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"img/settings.png\");\n\n//# sourceURL=webpack:///./src/client/img/settings.png?");
/***/ }),
/***/ "./src/client/js/Fragment/WordRotatorSettingFragment.ts":
/*!**************************************************************!*\
!*** ./src/client/js/Fragment/WordRotatorSettingFragment.ts ***!
\**************************************************************/
/*! exports provided: WordRotatorSettingFragment */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WordRotatorSettingFragment\", function() { return WordRotatorSettingFragment; });\n/* harmony import */ var _Sites_TutorialSite__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Sites/TutorialSite */ \"./src/client/js/Sites/TutorialSite.ts\");\n/* harmony import */ var _Sites_CreditsSite__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Sites/CreditsSite */ \"./src/client/js/Sites/CreditsSite.ts\");\n/* harmony import */ var _Sites_PrivacyPolicySite__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Sites/PrivacyPolicySite */ \"./src/client/js/Sites/PrivacyPolicySite.ts\");\n/* harmony import */ var _Sites_ImpressumSite__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Sites/ImpressumSite */ \"./src/client/js/Sites/ImpressumSite.ts\");\n/* harmony import */ var cordova_sites_dist_client_js_NativeStoragePromise__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! cordova-sites/dist/client/js/NativeStoragePromise */ \"./node_modules/cordova-sites/dist/client/js/NativeStoragePromise.js\");\n/* harmony import */ var cordova_sites_dist_client_js_NativeStoragePromise__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_NativeStoragePromise__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var cordova_sites_dist_client_js_Context_AbstractFragment__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! cordova-sites/dist/client/js/Context/AbstractFragment */ \"./node_modules/cordova-sites/dist/client/js/Context/AbstractFragment.js\");\n/* harmony import */ var cordova_sites_dist_client_js_Context_AbstractFragment__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_Context_AbstractFragment__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _shared_model_LevelData__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../shared/model/LevelData */ \"./src/shared/model/LevelData.ts\");\n/* harmony import */ var cordova_sites_easy_sync_dist_client_LastSyncDates__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! cordova-sites-easy-sync/dist/client/LastSyncDates */ \"./node_modules/cordova-sites-easy-sync/dist/client/LastSyncDates.js\");\n/* harmony import */ var cordova_sites_easy_sync_dist_client_LastSyncDates__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_easy_sync_dist_client_LastSyncDates__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! cordova-sites/dist/client/js/Sound/SoundManager */ \"./node_modules/cordova-sites/dist/client/js/Sound/SoundManager.js\");\n/* harmony import */ var cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var cordova_sites_dist_client_js_Legacy_Matomo__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! cordova-sites/dist/client/js/Legacy/Matomo */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Matomo.js\");\n/* harmony import */ var cordova_sites_dist_client_js_Legacy_Matomo__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_Legacy_Matomo__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _model_LevelPlayed__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../model/LevelPlayed */ \"./src/client/js/model/LevelPlayed.ts\");\n/* harmony import */ var _Sites_ContactSite__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../Sites/ContactSite */ \"./src/client/js/Sites/ContactSite.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nconst view = __webpack_require__(/*! ../../html/fragment/settings.html */ \"./src/client/html/fragment/settings.html\");\n\n\n\n\n\n\n\n\n\n\n\nclass WordRotatorSettingFragment extends cordova_sites_dist_client_js_Context_AbstractFragment__WEBPACK_IMPORTED_MODULE_5__[\"AbstractFragment\"] {\n constructor(site) {\n super(site, view);\n }\n onViewLoaded() {\n const _super = Object.create(null, {\n onViewLoaded: { get: () => super.onViewLoaded }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onViewLoaded.call(this);\n this.findBy(\"#reset-levels\").addEventListener(\"click\", () => __awaiter(this, void 0, void 0, function* () {\n yield cordova_sites_dist_client_js_NativeStoragePromise__WEBPACK_IMPORTED_MODULE_4__[\"NativeStoragePromise\"].remove(\"currentLevel\");\n yield cordova_sites_dist_client_js_NativeStoragePromise__WEBPACK_IMPORTED_MODULE_4__[\"NativeStoragePromise\"].remove(\"levelCounter\");\n yield cordova_sites_dist_client_js_NativeStoragePromise__WEBPACK_IMPORTED_MODULE_4__[\"NativeStoragePromise\"].remove(\"tutorial-step\");\n yield _model_LevelPlayed__WEBPACK_IMPORTED_MODULE_10__[\"LevelPlayed\"].clear();\n yield _shared_model_LevelData__WEBPACK_IMPORTED_MODULE_6__[\"LevelData\"].clear();\n yield cordova_sites_easy_sync_dist_client_LastSyncDates__WEBPACK_IMPORTED_MODULE_7__[\"LastSyncDates\"].clear();\n }));\n if (location.hostname.includes(\"beta\") || location.hostname.includes(\"127.0.0.1\") || location.hostname.includes(\"localhost\")) {\n // this.findBy(\"#reset-levels\").classList.remove(\"hidden\");\n }\n let playMusicButton = this.findBy(\"#play-music\");\n playMusicButton.checked = ((yield cordova_sites_dist_client_js_NativeStoragePromise__WEBPACK_IMPORTED_MODULE_4__[\"NativeStoragePromise\"].getItem(\"play-music\", \"1\")) === \"1\");\n playMusicButton.addEventListener(\"change\", () => __awaiter(this, void 0, void 0, function* () {\n yield cordova_sites_dist_client_js_NativeStoragePromise__WEBPACK_IMPORTED_MODULE_4__[\"NativeStoragePromise\"].setItem(\"play-music\", (playMusicButton.checked) ? \"1\" : \"0\");\n let soundManager = cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_8__[\"SoundManager\"].getInstance();\n soundManager.set({ muted: !playMusicButton.checked }, cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_8__[\"SoundManager\"].CHANNELS.MUSIC);\n if (playMusicButton.checked) {\n yield soundManager.play(cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_8__[\"SoundManager\"].CHANNELS.MUSIC);\n }\n //TODO [MIG] Matomo\n cordova_sites_dist_client_js_Legacy_Matomo__WEBPACK_IMPORTED_MODULE_9__[\"Matomo\"].push([\"trackEvent\", \"MainMenu\", \"PlayMusic\", \"Play Music\", (playMusicButton.checked) ? 1 : 0]);\n }));\n let playSoundButton = this.findBy(\"#play-sound\");\n playSoundButton.checked = ((yield cordova_sites_dist_client_js_NativeStoragePromise__WEBPACK_IMPORTED_MODULE_4__[\"NativeStoragePromise\"].getItem(\"play-sound\", \"1\")) === \"1\");\n playSoundButton.addEventListener(\"change\", () => __awaiter(this, void 0, void 0, function* () {\n yield cordova_sites_dist_client_js_NativeStoragePromise__WEBPACK_IMPORTED_MODULE_4__[\"NativeStoragePromise\"].setItem(\"play-sound\", (playSoundButton.checked) ? \"1\" : \"0\");\n let soundManager = cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_8__[\"SoundManager\"].getInstance();\n soundManager.set({ muted: !playSoundButton.checked }, cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_8__[\"SoundManager\"].CHANNELS.SOUND);\n //TODO [MIG] Matomo\n cordova_sites_dist_client_js_Legacy_Matomo__WEBPACK_IMPORTED_MODULE_9__[\"Matomo\"].push([\"trackEvent\", \"MainMenu\", \"PlaySound\", \"Play Sound\", (playSoundButton.checked) ? 1 : 0]);\n }));\n this.findBy(\"#track-switch\").addEventListener(\"change\", function (e) {\n cordova_sites_dist_client_js_Legacy_Matomo__WEBPACK_IMPORTED_MODULE_9__[\"Matomo\"].setTrack(this.checked === true);\n e.stopPropagation();\n e.preventDefault();\n });\n this.findBy(\"#tutorial-button\").addEventListener(\"click\", () => {\n this.getSite().startSite(_Sites_TutorialSite__WEBPACK_IMPORTED_MODULE_0__[\"TutorialSite\"]);\n });\n this.findBy(\"#credits-button\").addEventListener(\"click\", () => {\n this.getSite().startSite(_Sites_CreditsSite__WEBPACK_IMPORTED_MODULE_1__[\"CreditsSite\"]);\n });\n this.findBy(\"#privacy-policy-button\").addEventListener(\"click\", () => {\n this.getSite().startSite(_Sites_PrivacyPolicySite__WEBPACK_IMPORTED_MODULE_2__[\"PrivacyPolicySite\"]);\n });\n this.findBy(\"#contact-button\").addEventListener(\"click\", () => {\n // new Toast(\"contact site\").show();\n this.getSite().startSite(_Sites_ContactSite__WEBPACK_IMPORTED_MODULE_11__[\"ContactSite\"]);\n });\n this.findBy(\"#impressum-button\").addEventListener(\"click\", () => {\n this.getSite().startSite(_Sites_ImpressumSite__WEBPACK_IMPORTED_MODULE_3__[\"ImpressumSite\"]);\n });\n // @ts-ignore\n this.findBy(\"#version-info\").innerText = '1.3.0';\n return res;\n });\n }\n onStart(args) {\n cordova_sites_dist_client_js_Legacy_Matomo__WEBPACK_IMPORTED_MODULE_9__[\"Matomo\"].update(\"Settings Sites\");\n return super.onStart(args);\n }\n}\n\n\n//# sourceURL=webpack:///./src/client/js/Fragment/WordRotatorSettingFragment.ts?");
/***/ }),
/***/ "./src/client/js/Sites/ContactSite.ts":
/*!********************************************!*\
!*** ./src/client/js/Sites/ContactSite.ts ***!
\********************************************/
/*! exports provided: ContactSite */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ContactSite\", function() { return ContactSite; });\n/* harmony import */ var cordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! cordova-sites/dist/client/js/App */ \"./node_modules/cordova-sites/dist/client/js/App.js\");\n/* harmony import */ var cordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var cordova_sites_dist_client_js_Form__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! cordova-sites/dist/client/js/Form */ \"./node_modules/cordova-sites/dist/client/js/Form.js\");\n/* harmony import */ var cordova_sites_dist_client_js_Form__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_Form__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var cordova_sites_dist_client_js_DataManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! cordova-sites/dist/client/js/DataManager */ \"./node_modules/cordova-sites/dist/client/js/DataManager.js\");\n/* harmony import */ var cordova_sites_dist_client_js_DataManager__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_DataManager__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var cordova_sites_dist_client_js_Toast_Toast__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! cordova-sites/dist/client/js/Toast/Toast */ \"./node_modules/cordova-sites/dist/client/js/Toast/Toast.js\");\n/* harmony import */ var cordova_sites_dist_client_js_Toast_Toast__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_Toast_Toast__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var cordova_sites_dist_client_js_Translator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! cordova-sites/dist/client/js/Translator */ \"./node_modules/cordova-sites/dist/client/js/Translator.js\");\n/* harmony import */ var cordova_sites_dist_client_js_Translator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_Translator__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var cordova_sites_dist_client_js_Context_MenuSite__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! cordova-sites/dist/client/js/Context/MenuSite */ \"./node_modules/cordova-sites/dist/client/js/Context/MenuSite.js\");\n/* harmony import */ var cordova_sites_dist_client_js_Context_MenuSite__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_Context_MenuSite__WEBPACK_IMPORTED_MODULE_5__);\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nconst view = __webpack_require__(/*! ../../html/sites/contactSite.html */ \"./src/client/html/sites/contactSite.html\");\n\n\n\n\n\n\nclass ContactSite extends cordova_sites_dist_client_js_Context_MenuSite__WEBPACK_IMPORTED_MODULE_5__[\"MenuSite\"] {\n constructor(siteManager) {\n super(siteManager, view);\n }\n onViewLoaded() {\n let res = super.onViewLoaded();\n // @ts-ignore\n this.findBy(\"#contactText\").appendChild(cordova_sites_dist_client_js_Translator__WEBPACK_IMPORTED_MODULE_4__[\"Translator\"].makePersistentTranslation(\"contact text\", ['wordRotator@silas.link']));\n new cordova_sites_dist_client_js_Form__WEBPACK_IMPORTED_MODULE_1__[\"Form\"](this.findBy(\"#contact-form\"), (values) => __awaiter(this, void 0, void 0, function* () {\n let result = yield cordova_sites_dist_client_js_DataManager__WEBPACK_IMPORTED_MODULE_2__[\"DataManager\"].send(\"contact\", values);\n if (result.success) {\n new cordova_sites_dist_client_js_Toast_Toast__WEBPACK_IMPORTED_MODULE_3__[\"Toast\"](\"the message was sent\").show();\n this.finish();\n }\n else {\n if (result) {\n new cordova_sites_dist_client_js_Toast_Toast__WEBPACK_IMPORTED_MODULE_3__[\"Toast\"](result.message).show();\n }\n else {\n new cordova_sites_dist_client_js_Toast_Toast__WEBPACK_IMPORTED_MODULE_3__[\"Toast\"](\"Es ist ein Fehler aufgetreten...\").show();\n }\n }\n }));\n return res;\n }\n}\ncordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_0__[\"App\"].addInitialization((app) => {\n app.addDeepLink(\"contact\", ContactSite);\n});\n\n\n//# sourceURL=webpack:///./src/client/js/Sites/ContactSite.ts?");
/***/ }),
/***/ "./src/client/js/Sites/CreditsSite.ts":
/*!********************************************!*\
!*** ./src/client/js/Sites/CreditsSite.ts ***!
\********************************************/
/*! exports provided: CreditsSite */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CreditsSite\", function() { return CreditsSite; });\n/* harmony import */ var cordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! cordova-sites/dist/client/js/App */ \"./node_modules/cordova-sites/dist/client/js/App.js\");\n/* harmony import */ var cordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\n/* harmony import */ var cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_1__);\nconst view = __webpack_require__(/*! ../../html/sites/credits.html */ \"./src/client/html/sites/credits.html\");\n\n\nclass CreditsSite extends cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_1__[\"MenuSite\"] {\n constructor(siteManager) {\n super(siteManager, view);\n }\n}\ncordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_0__[\"App\"].addInitialization(app => {\n app.addDeepLink(\"credits\", CreditsSite);\n});\n\n\n//# sourceURL=webpack:///./src/client/js/Sites/CreditsSite.ts?");
/***/ }),
/***/ "./src/client/js/Sites/EndSite.ts":
/*!****************************************!*\
!*** ./src/client/js/Sites/EndSite.ts ***!
\****************************************/
/*! exports provided: EndSite */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EndSite\", function() { return EndSite; });\n/* harmony import */ var cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\n/* harmony import */ var cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0__);\nconst view = __webpack_require__(/*! ../../html/sites/end.html */ \"./src/client/html/sites/end.html\");\n\nclass EndSite extends cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0__[\"MenuSite\"] {\n constructor(siteManager) {\n super(siteManager, view);\n }\n}\n\n\n//# sourceURL=webpack:///./src/client/js/Sites/EndSite.ts?");
/***/ }),
/***/ "./src/client/js/Sites/ImpressumSite.ts":
/*!**********************************************!*\
!*** ./src/client/js/Sites/ImpressumSite.ts ***!
\**********************************************/
/*! exports provided: ImpressumSite */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ImpressumSite\", function() { return ImpressumSite; });\n/* harmony import */ var cordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! cordova-sites/dist/client/js/App */ \"./node_modules/cordova-sites/dist/client/js/App.js\");\n/* harmony import */ var cordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\n/* harmony import */ var cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_1__);\nconst view = __webpack_require__(/*! ../../html/sites/impressum.html */ \"./src/client/html/sites/impressum.html\");\n\n\nclass ImpressumSite extends cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_1__[\"MenuSite\"] {\n constructor(siteManager) {\n super(siteManager, view);\n }\n}\ncordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_0__[\"App\"].addInitialization(app => {\n app.addDeepLink(\"impressum\", ImpressumSite);\n});\n\n\n//# sourceURL=webpack:///./src/client/js/Sites/ImpressumSite.ts?");
/***/ }),
/***/ "./src/client/js/Sites/LevelSite.ts":
/*!******************************************!*\
!*** ./src/client/js/Sites/LevelSite.ts ***!
\******************************************/
/*! exports provided: LevelSite */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LevelSite\", function() { return LevelSite; });\n/* harmony import */ var _wordrotator_Segment_TemplateContainer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../wordrotator/Segment/TemplateContainer */ \"./src/client/js/wordrotator/Segment/TemplateContainer.js\");\n/* harmony import */ var _wordrotator_Level_LevelHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../wordrotator/Level/LevelHelper */ \"./src/client/js/wordrotator/Level/LevelHelper.ts\");\n/* harmony import */ var _EndSite__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./EndSite */ \"./src/client/js/Sites/EndSite.ts\");\n/* harmony import */ var cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\n/* harmony import */ var cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\n/* harmony import */ var js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _shared_model_LevelData__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../shared/model/LevelData */ \"./src/shared/model/LevelData.ts\");\n/* harmony import */ var _model_LevelPlayed__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../model/LevelPlayed */ \"./src/client/js/model/LevelPlayed.ts\");\n/* harmony import */ var js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! js-helper/dist/client/ViewHelper */ \"./node_modules/js-helper/dist/client/ViewHelper.js\");\n/* harmony import */ var js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! cordova-sites/dist/client/js/Sound/SoundManager */ \"./node_modules/cordova-sites/dist/client/js/Sound/SoundManager.js\");\n/* harmony import */ var cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var cordova_sites_dist_client_js_Context_MenuSite__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! cordova-sites/dist/client/js/Context/MenuSite */ \"./node_modules/cordova-sites/dist/client/js/Context/MenuSite.js\");\n/* harmony import */ var cordova_sites_dist_client_js_Context_MenuSite__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_Context_MenuSite__WEBPACK_IMPORTED_MODULE_9__);\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nconst helpIcon = __webpack_require__(/*! ../../img/help.png */ \"./src/client/img/help.png\").default;\nconst view = __webpack_require__(/*! ../../html/sites/level.html */ \"./src/client/html/sites/level.html\");\nconst coinSound = __webpack_require__(/*! ../../sound/single_coin_fall_on_concrete_.mp3 */ \"./src/client/sound/single_coin_fall_on_concrete_.mp3\").default;\n\n\n\n\n\n\n\n\n\n\nclass LevelSite extends cordova_sites_dist_client_js_Context_MenuSite__WEBPACK_IMPORTED_MODULE_9__[\"MenuSite\"] {\n constructor(siteManager) {\n super(siteManager, view);\n // this.getNavbarFragment().setBackgroundImage(null);\n }\n onCreateMenu(navbar) {\n const _super = Object.create(null, {\n onCreateMenu: { get: () => super.onCreateMenu }\n });\n return __awaiter(this, void 0, void 0, function* () {\n _super.onCreateMenu.call(this, navbar);\n let coinAction = new cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"MenuAction\"](js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_4__[\"Helper\"].nonNull(yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].getItem(\"coins\"), \"0\"), () => {\n }, cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"MenuAction\"].SHOW_ALWAYS, 900);\n coinAction._shouldTranslate = false;\n coinAction.setLiClass(\"coin-counter img\");\n navbar.addAction(coinAction);\n this.coinAction = coinAction;\n let levelCounterAction = new cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"MenuAction\"](js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_4__[\"Helper\"].nonNull(this.levelCounter, \"1\"), () => {\n }, cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"MenuAction\"].SHOW_ALWAYS, 900);\n levelCounterAction._shouldTranslate = false;\n levelCounterAction.setLiClass(\"level-counter\");\n navbar.addAction(levelCounterAction);\n this.levelCounterAction = levelCounterAction;\n let helpAction = new cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"MenuAction\"](\"\", () => {\n this.help();\n }, cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"MenuAction\"].SHOW_ALWAYS, 900);\n helpAction._shouldTranslate = false;\n helpAction._icon = helpIcon;\n helpAction.setLiClass(\"help-action show-while-playing\");\n navbar.addAction(helpAction);\n return navbar;\n });\n }\n onConstruct(args) {\n const _super = Object.create(null, {\n onConstruct: { get: () => super.onConstruct }\n });\n return __awaiter(this, void 0, void 0, function* () {\n this.levelCounter = js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_4__[\"Helper\"].nonNull(yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].getItem(\"levelCounter\"), 1);\n // this.levelCounter = 9999;\n this.levelScaler = () => {\n };\n this.wonParams = {\n aborted: false,\n coinCounterTimer: null,\n };\n this.coinPromise = Promise.resolve();\n let soundManager = cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_8__[\"SoundManager\"].getInstance();\n soundManager.set({\n audio: coinSound,\n muted: ((yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].getItem(\"play-sound\", \"1\")) !== \"1\"),\n volume: 0.7\n }, cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_8__[\"SoundManager\"].CHANNELS.SOUND);\n soundManager.resume(cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_8__[\"SoundManager\"].CHANNELS.MUSIC);\n return _super.onConstruct.call(this, args);\n });\n }\n onViewLoaded() {\n const _super = Object.create(null, {\n onViewLoaded: { get: () => super.onViewLoaded }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let res = _super.onViewLoaded.call(this);\n let leafSegmentTemplate = this.findBy(\"#segment-leaf-template\");\n let parentSegmentTemplate = this.findBy(\"#segment-parent-template\");\n let rowSegmentTemplate = this.findBy(\"#segment-row-template\");\n let triangleTemplate = this.findBy(\"#segment-triangle-template\");\n let columnTemplate = this.findBy(\"#segment-column-template\");\n leafSegmentTemplate.removeAttribute(\"id\");\n parentSegmentTemplate.removeAttribute(\"id\");\n rowSegmentTemplate.removeAttribute(\"id\");\n triangleTemplate.removeAttribute(\"id\");\n columnTemplate.removeAttribute(\"id\");\n leafSegmentTemplate.remove();\n parentSegmentTemplate.remove();\n rowSegmentTemplate.remove();\n triangleTemplate.remove();\n columnTemplate.remove();\n let continueButton = this.findBy(\"#continue-button\");\n continueButton.addEventListener(\"click\", () => {\n this.nextLevel();\n });\n let wonText = this.findBy(\"#won-text\");\n let scaleHelper = new cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"ScaleHelper\"]();\n this.continueButtonScaler = yield scaleHelper.scaleToFull(continueButton, continueButton.parentElement, false, true, 2);\n this.wonTextScaler = yield scaleHelper.scaleToFull(wonText, wonText.parentElement, false, false, 2, null, 5);\n this.wonText = wonText;\n this.wonText.style.fontSize = \"0\";\n this.templateContainer = new _wordrotator_Segment_TemplateContainer__WEBPACK_IMPORTED_MODULE_0__[\"TemplateContainer\"](leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate, triangleTemplate, columnTemplate);\n this.coinTemplate = this.findBy(\"#coin-template\");\n this.coinContainer = this.findBy(\"#coin-container\");\n this.coinTemplate.id = null;\n js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_7__[\"ViewHelper\"].removeAllChildren(this.coinContainer);\n // this.findBy(\"#help-button\").addEventListener(\"click\", () => {\n // this.help();\n // });\n yield this.loadLastLevel();\n return res;\n });\n }\n loadLastLevel() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n let currentLevelInfo = yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].getItem(\"currentLevel\");\n if (js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_4__[\"Helper\"].isNotNull(currentLevelInfo)) {\n currentLevelInfo = JSON.parse(currentLevelInfo);\n let levelData = yield _shared_model_LevelData__WEBPACK_IMPORTED_MODULE_5__[\"LevelData\"].findById(currentLevelInfo[\"id\"]);\n if (js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_4__[\"Helper\"].isNull(levelData)) {\n return this.nextLevel();\n }\n let level = _wordrotator_Level_LevelHelper__WEBPACK_IMPORTED_MODULE_1__[\"LevelHelper\"].inflateLevel(levelData, this.templateContainer);\n level.setStartRotations(currentLevelInfo[\"rotations\"]);\n level.getWonPromise().then(() => {\n this.levelWon(level);\n });\n level.createSegments();\n level.setLocks(currentLevelInfo[\"locks\"]);\n level.getRootSegment()._updateElement();\n level.saveAsCurrentLevel();\n let levelSegment = this.findBy(\"#level\");\n js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_7__[\"ViewHelper\"].removeAllChildren(levelSegment).appendChild(level.getRootSegment().getElement());\n let scaleHelper = new cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"ScaleHelper\"]();\n this.levelScaler = yield scaleHelper.scaleTo(1, levelSegment, levelSegment.parentElement, false, false, 1, level.words[0].length * 1.5, null, 0);\n this.level = level;\n cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"Matomo\"].push([\"trackEvent\", \"LevelSite\", \"LoadLastLevel\"]);\n this.level.checkHasWon();\n return;\n }\n }\n catch (e) {\n console.error(e);\n }\n return this.nextLevel();\n });\n }\n startEndSite() {\n this.startSite(_EndSite__WEBPACK_IMPORTED_MODULE_2__[\"EndSite\"]);\n this.finish();\n }\n updateLevelCounter() {\n this.levelCounterAction.setName(this.levelCounter);\n if (this.levelCounter >= 10 && this.levelCounter <= 99) {\n this.levelCounterAction.setLiClass(\"num-10 level-counter\");\n }\n else if (this.levelCounter >= 100 && this.levelCounter <= 999) {\n this.levelCounterAction.setLiClass(\"num-100 level-counter\");\n }\n else if (this.levelCounter >= 1000) {\n this.levelCounterAction.setLiClass(\"num-1000 level-counter\");\n }\n else {\n this.levelCounterAction.setLiClass(\"level-counter\");\n }\n }\n nextLevel() {\n return __awaiter(this, void 0, void 0, function* () {\n this.showLoadingSymbol();\n try {\n let levelData = yield _model_LevelPlayed__WEBPACK_IMPORTED_MODULE_6__[\"LevelPlayed\"].getNextLevelData(LevelSite.RENDERER_TYPES);\n if (js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_4__[\"Helper\"].isNull(levelData)) {\n this.startEndSite();\n return;\n }\n const level = _wordrotator_Level_LevelHelper__WEBPACK_IMPORTED_MODULE_1__[\"LevelHelper\"].inflateLevel(levelData, this.templateContainer);\n //Waiting for Level to be done\n if (this.level && level.id === this.level.id) {\n console.log(\"Level is the same as before! reload!\");\n yield new Promise((resolve) => setTimeout(resolve, 50));\n // return;\n debugger;\n return this.nextLevel();\n }\n level.getWonPromise().then(() => __awaiter(this, void 0, void 0, function* () {\n yield this.levelWon(level);\n }));\n level.createSegments();\n level.getRootSegment()._updateElement();\n level.saveAsCurrentLevel();\n let levelSegment = this.findBy(\"#level\");\n js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_7__[\"ViewHelper\"].removeAllChildren(levelSegment).appendChild(level.getRootSegment().getElement());\n this._view.classList.remove('won');\n this.wonText.style.fontSize = \"0\";\n this.removeLoadingSymbol();\n let scaleHelper = new cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"ScaleHelper\"]();\n this.levelScaler = yield scaleHelper.scaleToFull(levelSegment, levelSegment.parentElement, false, false, 1, level.words[0].length * 1.5, null, 0);\n this.level = level;\n this.updateLevelCounter();\n this.coinAction.setName(js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_4__[\"Helper\"].nonNull(yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].getItem(\"coins\"), \"0\"));\n // this.coinAction.redraw();\n this.wonParams.aborted = true;\n clearTimeout(this.wonParams.coinCounterTimer);\n cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"Matomo\"].push([\"trackEvent\", \"LevelSite\", \"NextLevel\", \"Level Number Normal\", this.levelCounter]);\n this.level.checkHasWon();\n return this.tutorial();\n }\n catch (e) {\n console.log(\"Fehler!\");\n console.error(e);\n this.startEndSite();\n }\n });\n }\n onStart(args) {\n const _super = Object.create(null, {\n onStart: { get: () => super.onStart }\n });\n return __awaiter(this, void 0, void 0, function* () {\n this.setTitle(\"WR\");\n cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"Matomo\"].update(\"Level Sites\");\n let res = _super.onStart.call(this, args);\n if (this.levelCounterAction) {\n this.updateLevelCounter();\n }\n this.levelScaler();\n //TODO Sound\n let soundManager = cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_8__[\"SoundManager\"].getInstance();\n soundManager.set({\n audio: coinSound,\n muted: ((yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].getItem(\"play-sound\", \"1\")) !== \"1\"),\n volume: 0.7\n }, cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_8__[\"SoundManager\"].CHANNELS.SOUND);\n yield this.tutorial();\n return res;\n });\n }\n levelWon(level) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const savePromise = _model_LevelPlayed__WEBPACK_IMPORTED_MODULE_6__[\"LevelPlayed\"].setPlayed(level.getLevelData());\n savePromise.then((r) => console.log(\"levelSaved!\", r));\n this.levelCounter++;\n yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].setItem(\"levelCounter\", this.levelCounter);\n //Todo richtiges Element aufrufen?\n this._view.classList.add('won');\n yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].remove(\"currentLevel\");\n let continueButton = this.findBy(\"#continue-button\");\n continueButton.style.transition = \"none\";\n continueButton.style.opacity = 0;\n js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_7__[\"ViewHelper\"].removeAllChildren(this.coinContainer);\n let coinsPerLevel = yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].getItem(\"coinsPerLevel\", 5);\n let coinsBefore = 0;\n let soundManager = cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_8__[\"SoundManager\"].getInstance();\n let audioOptions = soundManager.get(cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_8__[\"SoundManager\"].CHANNELS.SOUND);\n this.coinPromise = this.coinPromise.then(() => __awaiter(this, void 0, void 0, function* () {\n coinsBefore = parseInt(js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_4__[\"Helper\"].nonNull(yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].getItem(\"coins\"), \"0\"));\n yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].setItem(\"coins\", coinsBefore + parseInt(coinsPerLevel));\n })).then(() => __awaiter(this, void 0, void 0, function* () {\n return Promise.all([new Promise((r) => {\n setTimeout(() => {\n //TODO animationen einbauen\n continueButton.style.opacity = 1;\n r();\n }, 500);\n }), audioOptions.loadedPromise.catch(e => {\n console.error(e);\n })]);\n }));\n this.wonParams.aborted = false;\n for (let i = 0; i < coinsPerLevel; i++) {\n let coinElem = this.coinTemplate.cloneNode(true);\n this.coinContainer.appendChild(coinElem);\n this.coinPromise = this.coinPromise.then(() => {\n return new Promise(r => {\n let timeout = 350;\n if (!this.wonParams.aborted) {\n //TODO animationen einbauen\n coinElem.style.opacity = \"1\";\n soundManager.play(cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_8__[\"SoundManager\"].CHANNELS.SOUND);\n this.wonParams.coinCounterTimer = setTimeout(() => {\n if (!this.wonParams.aborted) {\n this.coinAction.setName(++coinsBefore);\n }\n }, timeout / 2);\n }\n else {\n r();\n }\n //Always do the next promise for garbage collection\n setTimeout(r, timeout);\n });\n });\n }\n this.coinPromise = this.coinPromise.catch((e) => {\n console.error(e);\n });\n this.wonTextScaler();\n this.continueButtonScaler();\n this.levelScaler();\n cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"Matomo\"].push([\"trackEvent\", \"LevelSite\", \"LevelWon\", \"Coins\", parseInt(js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_4__[\"Helper\"].nonNull(yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].getItem(\"coins\"), \"0\"))]);\n let leafs = level.getLeafSegments();\n leafs.forEach((leaf, i) => {\n let elem = leaf.getElement();\n elem.style.animationDelay = i * 50 + \"ms\";\n elem.classList.add(\"jump-animation\");\n });\n yield savePromise;\n }\n catch (e) {\n console.error(e);\n }\n });\n }\n help() {\n return __awaiter(this, void 0, void 0, function* () {\n let cost = yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].getItem(\"costForHelp\", 25);\n let currentCoins = parseInt(js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_4__[\"Helper\"].nonNull(yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].getItem(\"coins\"), 0));\n if (currentCoins >= cost) {\n currentCoins -= cost;\n yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].setItem(\"coins\", currentCoins);\n this.coinAction.setName(currentCoins);\n let rotatables = this.level.getRotatableSegments();\n rotatables = rotatables.filter((segment) => {\n return (!segment.isSolved(false));\n });\n let index = Math.floor(Math.random() * rotatables.length);\n let segmentToHelp = rotatables[index];\n while (segmentToHelp.rotation !== 0) {\n segmentToHelp.rotate();\n }\n segmentToHelp.setIsRotatable(false);\n this.level.saveAsCurrentLevel();\n // Matomo.push([\"trackEvent\", \"LevelSite\", \"Help\", \"Coins\", parseInt(Helper.nonNull(localStorage.getItem(\"coins\"), \"0\"))]);\n }\n else {\n new cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"Toast\"](\"not-enough-coins\").show();\n // Matomo.push([\"trackEvent\", \"LevelSite\", \"Help\", \"Not enough Coins\", parseInt(Helper.nonNull(localStorage.getItem(\"coins\"), \"0\"))]);\n }\n });\n }\n tutorial() {\n return __awaiter(this, void 0, void 0, function* () {\n const tutorialScale = 0.01;\n if (this.level.id === LevelSite.TUTORIAL.FIRST_LEVEL) {\n let currentStep = js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_4__[\"Helper\"].nonNull(yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].getItem(\"tutorial-step\"), \"1\");\n let scaleHelper = new cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"ScaleHelper\"]();\n this._view.classList.add(\"tutorial\");\n this._view.classList.add(\"step-\" + currentStep);\n switch (currentStep) {\n case \"1\": {\n this.level.setSegmentClickedListener(() => __awaiter(this, void 0, void 0, function* () {\n this._view.classList.remove(\"step-1\");\n yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].setItem(\"tutorial-step\", \"2\");\n this.tutorial();\n }));\n // let textElem = this.findBy(\".tutorial-text .step-1\");\n yield this.levelScaler();\n // scaleHelper.scaleTo(tutorialScale, textElem, textElem.parentElement, null, true, 2, 2);\n break;\n }\n case \"2\": {\n this.level.setSegmentClickedListener(() => {\n });\n this.level.getWonPromise().then(() => __awaiter(this, void 0, void 0, function* () {\n this._view.classList.remove(\"tutorial\");\n this._view.classList.remove(\"step-2\");\n yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].remove(\"tutorial-step\");\n this.coinPromise = this.coinPromise.then(() => __awaiter(this, void 0, void 0, function* () {\n new cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"Toast\"](\"extra-coins-after-first-level\").show();\n yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].setItem(\"coins\", parseInt(js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_4__[\"Helper\"].nonNull(yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].getItem(\"coins\"), \"0\")) + 50);\n this.coinAction.setName(js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_4__[\"Helper\"].nonNull(yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].getItem(\"coins\"), \"0\"));\n // this.coinAction.redraw();\n }));\n }));\n // let textElem = this.findBy(\".tutorial-text .step-2\");\n yield this.levelScaler();\n // scaleHelper.scaleTo(tutorialScale, textElem, textElem.parentElement, null, true, 1, 2);\n break;\n }\n default: {\n this._view.classList.remove(\"tutorial\");\n }\n }\n }\n else if (this.level.id === LevelSite.TUTORIAL.SECOND_LEVEL) {\n let currentStep = js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_4__[\"Helper\"].nonNull(yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].getItem(\"tutorial-step\"), \"3\");\n switch (currentStep) {\n case \"3\": {\n let scaleHelper = new cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"ScaleHelper\"]();\n this._view.classList.add(\"tutorial\");\n this._view.classList.add(\"step-\" + currentStep);\n let eventListener = () => __awaiter(this, void 0, void 0, function* () {\n this._view.classList.remove(\"tutorial\");\n this._view.classList.remove(\"step-3\");\n yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].setItem(\"tutorial-step\", \"4\");\n // this.findBy(\"#help-button\").removeEventListener(\"click\", eventListener);\n this.levelScaler();\n });\n this.findBy(\".help-action\").addEventListener(\"click\", eventListener);\n // let textElem = this.findBy(\".tutorial-text .step-3\");\n yield this.levelScaler();\n // scaleHelper.scaleTo(tutorialScale, textElem, textElem.parentElement, null, true, 1, 2);\n break;\n }\n default: {\n this._view.classList.remove(\"tutorial\");\n }\n }\n }\n else if (this.level.id === LevelSite.TUTORIAL.BIG_SEGMENT_LEVEL) {\n let currentStep = js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_4__[\"Helper\"].nonNull(yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].getItem(\"tutorial-step\"), \"4\");\n switch (currentStep) {\n case \"4\": {\n let scaleHelper = new cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"ScaleHelper\"]();\n this._view.classList.add(\"tutorial\");\n this._view.classList.add(\"step-\" + currentStep);\n let rotatableSegments = this.level.getRotatableSegments();\n let firstSegment = rotatableSegments[2];\n let pointer = this.findBy(\"#tutorial-pointer\");\n pointer.remove();\n firstSegment.element.appendChild(pointer);\n this.level.setSegmentClickedListener((segment) => __awaiter(this, void 0, void 0, function* () {\n if (firstSegment === segment) {\n this._view.classList.remove(\"tutorial\");\n this._view.classList.remove(\"step-4\");\n yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].setItem(\"tutorial-step\", \"5\");\n this.levelScaler();\n }\n }));\n // let textElem = this.findBy(\".tutorial-text .step-4\");\n yield this.levelScaler();\n // debugger;\n // scaleHelper.scaleTo(tutorialScale, textElem, textElem.parentElement, null, true, 1, 2);\n break;\n }\n default: {\n this._view.classList.remove(\"tutorial\");\n }\n }\n }\n });\n }\n}\nLevelSite.RENDERER_TYPES = [20, 40, 60, 80, 81, 82, 83, 100, 110, 111, 112, 120, 140, 160];\nLevelSite.TUTORIAL = {\n FIRST_LEVEL: 67,\n SECOND_LEVEL: 15,\n BIG_SEGMENT_LEVEL: 1921\n};\n\n\n//# sourceURL=webpack:///./src/client/js/Sites/LevelSite.ts?");
/***/ }),
/***/ "./src/client/js/Sites/MainMenuSite.ts":
/*!*********************************************!*\
!*** ./src/client/js/Sites/MainMenuSite.ts ***!
\*********************************************/
/*! exports provided: MainMenuSite */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MainMenuSite\", function() { return MainMenuSite; });\n/* harmony import */ var cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\n/* harmony import */ var cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var js_helper_dist_shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! js-helper/dist/shared */ \"./node_modules/js-helper/dist/shared.js\");\n/* harmony import */ var js_helper_dist_shared__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(js_helper_dist_shared__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _LevelSite__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./LevelSite */ \"./src/client/js/Sites/LevelSite.ts\");\n/* harmony import */ var _wordrotator_Segment_TemplateContainer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../wordrotator/Segment/TemplateContainer */ \"./src/client/js/wordrotator/Segment/TemplateContainer.js\");\n/* harmony import */ var _wordrotator_Level_MainMenuLevel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../wordrotator/Level/MainMenuLevel */ \"./src/client/js/wordrotator/Level/MainMenuLevel.js\");\n/* harmony import */ var js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! js-helper/dist/client/ViewHelper */ \"./node_modules/js-helper/dist/client/ViewHelper.js\");\n/* harmony import */ var js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _model_LevelPlayed__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../model/LevelPlayed */ \"./src/client/js/model/LevelPlayed.ts\");\n/* harmony import */ var cordova_sites_easy_sync_dist_client_SyncJob__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! cordova-sites-easy-sync/dist/client/SyncJob */ \"./node_modules/cordova-sites-easy-sync/dist/client/SyncJob.js\");\n/* harmony import */ var cordova_sites_easy_sync_dist_client_SyncJob__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_easy_sync_dist_client_SyncJob__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _shared_model_LevelData__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../shared/model/LevelData */ \"./src/shared/model/LevelData.ts\");\n/* harmony import */ var cordova_sites_dist_client_js_ShareManager_ShareManager__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! cordova-sites/dist/client/js/ShareManager/ShareManager */ \"./node_modules/cordova-sites/dist/client/js/ShareManager/ShareManager.js\");\n/* harmony import */ var cordova_sites_dist_client_js_ShareManager_ShareManager__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_ShareManager_ShareManager__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var cordova_sites_dist_client_js_Translator__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! cordova-sites/dist/client/js/Translator */ \"./node_modules/cordova-sites/dist/client/js/Translator.js\");\n/* harmony import */ var cordova_sites_dist_client_js_Translator__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_Translator__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! cordova-sites/dist/client/js/Sound/SoundManager */ \"./node_modules/cordova-sites/dist/client/js/Sound/SoundManager.js\");\n/* harmony import */ var cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var cordova_sites_dist_client_js_Legacy_Matomo__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! cordova-sites/dist/client/js/Legacy/Matomo */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Matomo.js\");\n/* harmony import */ var cordova_sites_dist_client_js_Legacy_Matomo__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_Legacy_Matomo__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var cordova_sites_dist_client_js_Context_Menu_MenuAction_MenuAction__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! cordova-sites/dist/client/js/Context/Menu/MenuAction/MenuAction */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/MenuAction/MenuAction.js\");\n/* harmony import */ var cordova_sites_dist_client_js_Context_Menu_MenuAction_MenuAction__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_Context_Menu_MenuAction_MenuAction__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var _SettingsSite__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./SettingsSite */ \"./src/client/js/Sites/SettingsSite.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nconst settingsIcon = __webpack_require__(/*! ../../img/settings.png */ \"./src/client/img/settings.png\").default;\nconst view = __webpack_require__(/*! ../../html/sites/menu.html */ \"./src/client/html/sites/menu.html\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass MainMenuSite extends cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0__[\"MenuSite\"] {\n constructor(siteManager) {\n super(siteManager, view);\n this.loadLevelPromise = new cordova_sites_easy_sync_dist_client_SyncJob__WEBPACK_IMPORTED_MODULE_7__[\"SyncJob\"]().sync([_shared_model_LevelData__WEBPACK_IMPORTED_MODULE_8__[\"LevelData\"]]).catch(e => console.error(e));\n this.listener = null;\n this.getNavbarFragment().setCanGoBack(false);\n }\n onCreateMenu(navbar) {\n super.onCreateMenu(navbar);\n let settingsAction = new cordova_sites_dist_client_js_Context_Menu_MenuAction_MenuAction__WEBPACK_IMPORTED_MODULE_13__[\"MenuAction\"](\"\", () => {\n this.startSite(_SettingsSite__WEBPACK_IMPORTED_MODULE_14__[\"SettingsSite\"]);\n }, cordova_sites_dist_client_js_Context_Menu_MenuAction_MenuAction__WEBPACK_IMPORTED_MODULE_13__[\"MenuAction\"].SHOW_ALWAYS, null, settingsIcon);\n navbar.addAction(settingsAction);\n return navbar;\n }\n onViewLoaded() {\n const _super = Object.create(null, {\n onViewLoaded: { get: () => super.onViewLoaded }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const res = _super.onViewLoaded.call(this);\n let playButton = this.findBy(\"#play-button\");\n playButton.addEventListener(\"click\", () => {\n // Matomo.push([\"trackEvent\", \"MainMenu\", \"startButton\"]);\n this.startLevelSite();\n });\n let leafSegmentTemplate = this.findBy(\"#segment-leaf-template\");\n let parentSegmentTemplate = this.findBy(\"#segment-parent-template\");\n let rowSegmentTemplate = this.findBy(\"#segment-row-template\");\n let triangleTemplate = this.findBy(\"#segment-triangle-template\");\n leafSegmentTemplate.id = null;\n parentSegmentTemplate.id = null;\n rowSegmentTemplate.id = null;\n triangleTemplate.id = null;\n leafSegmentTemplate.remove();\n parentSegmentTemplate.remove();\n rowSegmentTemplate.remove();\n triangleTemplate.remove();\n this.templateContainer = new _wordrotator_Segment_TemplateContainer__WEBPACK_IMPORTED_MODULE_3__[\"TemplateContainer\"](leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate, triangleTemplate);\n //TODO?\n // if (Helper.nonNull(MainMenuSite.app._cookieClosePromise)) {\n // MainMenuSite.app._cookieClosePromise.then(() => {\n // if (this.listener) {\n // this.listener();\n // }\n // });\n // }\n let soundManager = cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_11__[\"SoundManager\"].getInstance();\n let playMusicButton = this.findBy(\"#play-music\");\n playMusicButton.checked = ((yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0__[\"NativeStoragePromise\"].getItem(\"play-music\", \"1\")) === \"1\");\n playMusicButton.addEventListener(\"change\", () => __awaiter(this, void 0, void 0, function* () {\n yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0__[\"NativeStoragePromise\"].setItem(\"play-music\", (playMusicButton.checked) ? \"1\" : \"0\");\n soundManager.set({ muted: !playMusicButton.checked }, cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_11__[\"SoundManager\"].CHANNELS.MUSIC);\n if (playMusicButton.checked) {\n yield soundManager.play(cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_11__[\"SoundManager\"].CHANNELS.MUSIC);\n }\n //TODO [MIG] Matomo\n cordova_sites_dist_client_js_Legacy_Matomo__WEBPACK_IMPORTED_MODULE_12__[\"Matomo\"].push([\"trackEvent\", \"MainMenu\", \"PlayMusic\", \"Play Music\", (playMusicButton.checked) ? 1 : 0]);\n }));\n let playSoundButton = this.findBy(\"#play-sound\");\n playSoundButton.checked = ((yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0__[\"NativeStoragePromise\"].getItem(\"play-sound\", \"1\")) === \"1\");\n playSoundButton.addEventListener(\"change\", () => __awaiter(this, void 0, void 0, function* () {\n yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0__[\"NativeStoragePromise\"].setItem(\"play-sound\", (playSoundButton.checked) ? \"1\" : \"0\");\n soundManager.set({ muted: !playSoundButton.checked }, cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_11__[\"SoundManager\"].CHANNELS.SOUND);\n //TODO [MIG] Matomo\n cordova_sites_dist_client_js_Legacy_Matomo__WEBPACK_IMPORTED_MODULE_12__[\"Matomo\"].push([\"trackEvent\", \"MainMenu\", \"PlaySound\", \"Play Sound\", (playSoundButton.checked) ? 1 : 0]);\n }));\n this.findBy(\"#share-button\").addEventListener(\"click\", () => {\n new cordova_sites_dist_client_js_ShareManager_ShareManager__WEBPACK_IMPORTED_MODULE_9__[\"ShareManager\"]().share(cordova_sites_dist_client_js_Translator__WEBPACK_IMPORTED_MODULE_10__[\"Translator\"].getInstance().translate(\"share-text\", [window.location]));\n });\n return res;\n // this.findBy(\"#share-buttons\").appendChild(ShareManager.generateDefaultShareElement(\"https://wordrotator.silas.link\"));\n });\n }\n onStart(args) {\n const _super = Object.create(null, {\n onStart: { get: () => super.onStart }\n });\n return __awaiter(this, void 0, void 0, function* () {\n // Matomo.update(\"Menu Sites\");\n let res = _super.onStart.call(this, args);\n let level = new _wordrotator_Level_MainMenuLevel__WEBPACK_IMPORTED_MODULE_4__[\"MainMenuLevel\"](this.templateContainer);\n level.setWords([\"WORD\", \"ROTA\", \"TORW\", \"ORDR\"]);\n level.createSegments();\n level.getWonPromise().then(() => {\n // Matomo.push([\"trackEvent\", \"MainMenu\", \"levelSolved\"]);\n this.startLevelSite();\n });\n let segment = level.getRootSegment();\n segment._updateElement();\n let levelSegment = this.findBy(\"#level\");\n js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_5__[\"ViewHelper\"].removeAllChildren(levelSegment).appendChild(segment.getElement());\n let rotationsSegments = level.getRotatableSegments();\n let randomRotationFunction = () => {\n let timeout = Math.random() * 4500 + 1500;\n this.randomRotateTimeout = setTimeout(() => {\n let indexBlocked = -1;\n let indexesNotRight = [];\n for (let i = 0; i < rotationsSegments.length; i++) {\n if (rotationsSegments[i].rotation !== 0) {\n indexesNotRight.push(i);\n if (indexesNotRight.length >= 2) {\n break;\n }\n }\n }\n if (indexesNotRight.length === 1) {\n indexBlocked = indexesNotRight[0];\n }\n let index = Math.floor(Math.random() * rotationsSegments.length);\n if (index === indexBlocked) {\n index = (index + 1) % rotationsSegments.length;\n }\n rotationsSegments[index].rotate();\n randomRotationFunction();\n }, timeout);\n };\n randomRotationFunction();\n this.listener = () => __awaiter(this, void 0, void 0, function* () {\n let playButton = this.findBy(\"#play-button\");\n let levelNumber = this.findBy(\"#level-number\");\n levelNumber.innerText = js_helper_dist_shared__WEBPACK_IMPORTED_MODULE_1__[\"Helper\"].nonNull(yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0__[\"NativeStoragePromise\"].getItem(\"levelCounter\"), 1);\n let levelSegment = this.findBy(\"#level\");\n let scaleHelper = new cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0__[\"ScaleHelper\"]();\n yield scaleHelper.scaleToFull(levelSegment, levelSegment.parentElement, false, false, 2, 8, null, false);\n let levelStyle = getComputedStyle(levelSegment);\n playButton.style.width = levelStyle.getPropertyValue(\"width\");\n scaleHelper.scaleTo(0.65, playButton.children[0], playButton, null, null, null, 4, null, false);\n yield scaleHelper.scaleTo(0.1, levelNumber.parentElement, levelNumber.parentElement.parentElement, null, null, null, 10, null, false);\n scaleHelper.scaleTo(1, levelNumber, levelNumber.parentElement, false, false, 5, null, null, false);\n });\n // this.listener();\n window.addEventListener(\"resize\", this.listener);\n setTimeout(this.listener, 50);\n //Musikbuttons update, falls in den Einstellungen umgestellt\n // let settingsManager = SettingsManager.getInstance();\n let playSoundButton = this.findBy(\"#play-sound\");\n playSoundButton.checked = ((yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0__[\"NativeStoragePromise\"].getItem(\"play-sound\", \"1\")) === \"1\");\n let playMusicButton = this.findBy(\"#play-music\");\n playMusicButton.checked = ((yield cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0__[\"NativeStoragePromise\"].getItem(\"play-music\", \"1\")) === \"1\");\n return res;\n });\n }\n startLevelSite() {\n return __awaiter(this, void 0, void 0, function* () {\n cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_11__[\"SoundManager\"].getInstance().resumeContext();\n this.startSite(_LevelSite__WEBPACK_IMPORTED_MODULE_2__[\"LevelSite\"], Promise.race([this.loadLevelPromise, new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let levelData = yield _model_LevelPlayed__WEBPACK_IMPORTED_MODULE_6__[\"LevelPlayed\"].getNextLevelData(_LevelSite__WEBPACK_IMPORTED_MODULE_2__[\"LevelSite\"].RENDERER_TYPES);\n if (levelData !== null) {\n resolve();\n }\n }))]));\n });\n }\n onPause() {\n clearTimeout(this.randomRotateTimeout);\n window.removeEventListener(\"resize\", this.listener);\n return super.onPause();\n }\n}\ncordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0__[\"App\"].addInitialization(app => {\n MainMenuSite.app = app;\n});\n\n\n//# sourceURL=webpack:///./src/client/js/Sites/MainMenuSite.ts?");
/***/ }),
/***/ "./src/client/js/Sites/PrivacyPolicySite.ts":
/*!**************************************************!*\
!*** ./src/client/js/Sites/PrivacyPolicySite.ts ***!
\**************************************************/
/*! exports provided: PrivacyPolicySite */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PrivacyPolicySite\", function() { return PrivacyPolicySite; });\n/* harmony import */ var cordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! cordova-sites/dist/client/js/App */ \"./node_modules/cordova-sites/dist/client/js/App.js\");\n/* harmony import */ var cordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var cordova_sites_dist_client_js_Legacy_Matomo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! cordova-sites/dist/client/js/Legacy/Matomo */ \"./node_modules/cordova-sites/dist/client/js/Legacy/Matomo.js\");\n/* harmony import */ var cordova_sites_dist_client_js_Legacy_Matomo__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_Legacy_Matomo__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\n/* harmony import */ var cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_2__);\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nconst view = __webpack_require__(/*! ../../html/sites/privacyPolicy.html */ \"./src/client/html/sites/privacyPolicy.html\");\n\n\n\nclass PrivacyPolicySite extends cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_2__[\"MenuSite\"] {\n constructor(siteManager) {\n super(siteManager, view);\n }\n onViewLoaded() {\n const _super = Object.create(null, {\n onViewLoaded: { get: () => super.onViewLoaded }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let trackSwitch = this.findBy(\"#track-switch\");\n trackSwitch.addEventListener(\"change\", function (e) {\n cordova_sites_dist_client_js_Legacy_Matomo__WEBPACK_IMPORTED_MODULE_1__[\"Matomo\"].setTrack(this.checked === true);\n e.stopPropagation();\n e.preventDefault();\n });\n return _super.onViewLoaded.call(this);\n });\n }\n onStart(args) {\n const _super = Object.create(null, {\n onStart: { get: () => super.onStart }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let trackSwitch = this.findBy(\"#track-switch\");\n trackSwitch.checked = ((yield cordova_sites_dist_client_js_Legacy_Matomo__WEBPACK_IMPORTED_MODULE_1__[\"Matomo\"].getTrackingPromise()) === \"1\");\n // Matomo.update(\"Privacy Policy Sites\");\n return _super.onStart.call(this, args);\n });\n }\n}\ncordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_0__[\"App\"].addInitialization(app => {\n app.addDeepLink(\"privacyPolicy\", PrivacyPolicySite);\n});\n\n\n//# sourceURL=webpack:///./src/client/js/Sites/PrivacyPolicySite.ts?");
/***/ }),
/***/ "./src/client/js/Sites/SettingsSite.ts":
/*!*********************************************!*\
!*** ./src/client/js/Sites/SettingsSite.ts ***!
\*********************************************/
/*! exports provided: SettingsSite */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SettingsSite\", function() { return SettingsSite; });\n/* harmony import */ var cordova_sites_dist_client_js_Context_MenuSite__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! cordova-sites/dist/client/js/Context/MenuSite */ \"./node_modules/cordova-sites/dist/client/js/Context/MenuSite.js\");\n/* harmony import */ var cordova_sites_dist_client_js_Context_MenuSite__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_Context_MenuSite__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Fragment_WordRotatorSettingFragment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Fragment/WordRotatorSettingFragment */ \"./src/client/js/Fragment/WordRotatorSettingFragment.ts\");\n/* harmony import */ var cordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! cordova-sites/dist/client/js/App */ \"./node_modules/cordova-sites/dist/client/js/App.js\");\n/* harmony import */ var cordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_2__);\nconst view = __webpack_require__(/*! ../../html/sites/settingsSite.html */ \"./src/client/html/sites/settingsSite.html\");\n\n\n\nclass SettingsSite extends cordova_sites_dist_client_js_Context_MenuSite__WEBPACK_IMPORTED_MODULE_0__[\"MenuSite\"] {\n constructor(siteManager) {\n super(siteManager, view);\n this.addFragment(\"#wordRotatorSettings\", new _Fragment_WordRotatorSettingFragment__WEBPACK_IMPORTED_MODULE_1__[\"WordRotatorSettingFragment\"](this));\n }\n}\ncordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_2__[\"App\"].addInitialization((app) => {\n app.addDeepLink(\"settings\", SettingsSite);\n});\n\n\n//# sourceURL=webpack:///./src/client/js/Sites/SettingsSite.ts?");
/***/ }),
/***/ "./src/client/js/Sites/TutorialSite.ts":
/*!*********************************************!*\
!*** ./src/client/js/Sites/TutorialSite.ts ***!
\*********************************************/
/*! exports provided: TutorialSite */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TutorialSite\", function() { return TutorialSite; });\n/* harmony import */ var cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\n/* harmony import */ var cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var cordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! cordova-sites/dist/client/js/App */ \"./node_modules/cordova-sites/dist/client/js/App.js\");\n/* harmony import */ var cordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _wordrotator_Level_LevelHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../wordrotator/Level/LevelHelper */ \"./src/client/js/wordrotator/Level/LevelHelper.ts\");\n/* harmony import */ var _shared_model_LevelData__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../shared/model/LevelData */ \"./src/shared/model/LevelData.ts\");\n/* harmony import */ var _wordrotator_Segment_TemplateContainer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../wordrotator/Segment/TemplateContainer */ \"./src/client/js/wordrotator/Segment/TemplateContainer.js\");\n/* harmony import */ var _LevelSite__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./LevelSite */ \"./src/client/js/Sites/LevelSite.ts\");\n/* harmony import */ var cordova_sites_easy_sync_dist_client__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! cordova-sites-easy-sync/dist/client */ \"./node_modules/cordova-sites-easy-sync/dist/client.js\");\n/* harmony import */ var cordova_sites_easy_sync_dist_client__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_easy_sync_dist_client__WEBPACK_IMPORTED_MODULE_6__);\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n\nconst view = __webpack_require__(/*! ../../html/sites/tutorialSite.html */ \"./src/client/html/sites/tutorialSite.html\");\nclass TutorialSite extends cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0__[\"MenuSite\"] {\n constructor(siteManager) {\n super(siteManager, view);\n }\n onConstruct(constructParameters) {\n const _super = Object.create(null, {\n onConstruct: { get: () => super.onConstruct }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const res = _super.onConstruct.call(this, constructParameters);\n yield Promise.race([new cordova_sites_easy_sync_dist_client__WEBPACK_IMPORTED_MODULE_6__[\"SyncJob\"]().sync([_shared_model_LevelData__WEBPACK_IMPORTED_MODULE_3__[\"LevelData\"]]).catch(e => console.error(e)), new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let levelData = yield _shared_model_LevelData__WEBPACK_IMPORTED_MODULE_3__[\"LevelData\"].findById(_LevelSite__WEBPACK_IMPORTED_MODULE_5__[\"LevelSite\"].TUTORIAL.FIRST_LEVEL);\n if (levelData !== null) {\n resolve();\n }\n }))]);\n return res;\n });\n }\n onViewLoaded() {\n const _super = Object.create(null, {\n onViewLoaded: { get: () => super.onViewLoaded }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const res = _super.onViewLoaded.call(this);\n let leafSegmentTemplate = this.findBy(\"#segment-leaf-template\");\n let parentSegmentTemplate = this.findBy(\"#segment-parent-template\");\n let rowSegmentTemplate = this.findBy(\"#segment-row-template\");\n let triangleTemplate = this.findBy(\"#segment-triangle-template\");\n let columnTemplate = this.findBy(\"#segment-column-template\");\n leafSegmentTemplate.removeAttribute(\"id\");\n parentSegmentTemplate.removeAttribute(\"id\");\n rowSegmentTemplate.removeAttribute(\"id\");\n triangleTemplate.removeAttribute(\"id\");\n columnTemplate.removeAttribute(\"id\");\n leafSegmentTemplate.remove();\n parentSegmentTemplate.remove();\n rowSegmentTemplate.remove();\n triangleTemplate.remove();\n columnTemplate.remove();\n this.templateContainer = new _wordrotator_Segment_TemplateContainer__WEBPACK_IMPORTED_MODULE_4__[\"TemplateContainer\"](leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate, triangleTemplate, columnTemplate);\n const tutorial1Container = this.findBy(\"#tutorial-1 .level-container\");\n const tutorial2Container = this.findBy(\"#tutorial-2 .level-container\");\n const tutorial3Container = this.findBy(\"#tutorial-3 .level-container\");\n const level1 = yield this.loadLevel(_LevelSite__WEBPACK_IMPORTED_MODULE_5__[\"LevelSite\"].TUTORIAL.FIRST_LEVEL);\n const level2 = yield this.loadLevel(_LevelSite__WEBPACK_IMPORTED_MODULE_5__[\"LevelSite\"].TUTORIAL.SECOND_LEVEL);\n const level3 = yield this.loadLevel(_LevelSite__WEBPACK_IMPORTED_MODULE_5__[\"LevelSite\"].TUTORIAL.BIG_SEGMENT_LEVEL);\n level1.setSaveAsCurrentAfterCheckWon(false);\n level2.setSaveAsCurrentAfterCheckWon(false);\n level3.setSaveAsCurrentAfterCheckWon(false);\n tutorial1Container.appendChild(level1.getRootSegment().getElement());\n tutorial2Container.appendChild(level2.getRootSegment().getElement());\n tutorial3Container.appendChild(level3.getRootSegment().getElement());\n let pointer = this.findBy(\"#tutorial-pointer\");\n pointer.remove();\n let rotatableSegments = level3.getRotatableSegments();\n let pointerSegment = rotatableSegments[2];\n pointerSegment.element.appendChild(pointer);\n this.find(\".help-action\").addEventListener(\"click\", () => {\n TutorialSite.help(level2);\n });\n return res;\n });\n }\n static help(level) {\n return __awaiter(this, void 0, void 0, function* () {\n let rotatables = level.getRotatableSegments();\n rotatables = rotatables.filter((segment) => {\n return (!segment.isSolved(false));\n });\n if (rotatables.length === 0) {\n return;\n }\n let index = Math.floor(Math.random() * rotatables.length);\n let segmentToHelp = rotatables[index];\n while (segmentToHelp.rotation !== 0) {\n segmentToHelp.rotate();\n }\n segmentToHelp.setIsRotatable(false);\n });\n }\n loadLevel(id) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n let levelData = yield _shared_model_LevelData__WEBPACK_IMPORTED_MODULE_3__[\"LevelData\"].findById(id);\n const level = _wordrotator_Level_LevelHelper__WEBPACK_IMPORTED_MODULE_2__[\"LevelHelper\"].inflateLevel(levelData, this.templateContainer);\n level.getWonPromise().then(() => {\n console.log(\"level won!\");\n new cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_0__[\"Toast\"](\"you solved the tutorial level!\").show();\n //TODO\n // this.levelWon(level);\n });\n level.createSegments();\n level.getRootSegment()._updateElement();\n return level;\n }\n catch (e) {\n console.log(\"Fehler!\");\n console.error(e);\n // this.startEndSite();\n return null;\n }\n });\n }\n}\ncordova_sites_dist_client_js_App__WEBPACK_IMPORTED_MODULE_1__[\"App\"].addInitialization(app => {\n app.addDeepLink(\"tutorial\", TutorialSite);\n});\n\n\n//# sourceURL=webpack:///./src/client/js/Sites/TutorialSite.ts?");
/***/ }),
/***/ "./src/client/js/model/LevelPlayed.ts":
/*!********************************************!*\
!*** ./src/client/js/model/LevelPlayed.ts ***!
\********************************************/
/*! exports provided: LevelPlayed */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LevelPlayed\", function() { return LevelPlayed; });\n/* harmony import */ var cordova_sites_database_dist_BaseModel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! cordova-sites-database/dist/BaseModel */ \"./node_modules/cordova-sites-database/dist/BaseModel.js\");\n/* harmony import */ var cordova_sites_database_dist_BaseModel__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_database_dist_BaseModel__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var cordova_sites_database_dist_cordova_sites_database__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! cordova-sites-database/dist/cordova-sites-database */ \"./node_modules/cordova-sites-database/dist/cordova-sites-database.js\");\n/* harmony import */ var cordova_sites_database_dist_cordova_sites_database__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_database_dist_cordova_sites_database__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _shared_model_LevelData__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../shared/model/LevelData */ \"./src/shared/model/LevelData.ts\");\n/* harmony import */ var js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\n/* harmony import */ var js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_3__);\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\nclass LevelPlayed extends cordova_sites_database_dist_BaseModel__WEBPACK_IMPORTED_MODULE_0__[\"BaseModel\"] {\n static getColumnDefinitions() {\n let columns = super.getColumnDefinitions();\n columns[\"played\"] = { type: cordova_sites_database_dist_cordova_sites_database__WEBPACK_IMPORTED_MODULE_1__[\"BaseDatabase\"].TYPES.BOOLEAN, default: true };\n return columns;\n }\n static getRelationDefinitions() {\n let relations = super.getRelationDefinitions();\n relations[\"levelData\"] = {\n target: _shared_model_LevelData__WEBPACK_IMPORTED_MODULE_2__[\"LevelData\"].getSchemaName(),\n type: \"one-to-one\",\n joinColumn: true,\n // cascade: true,\n };\n return relations;\n }\n static setPlayed(levelData, played) {\n return __awaiter(this, void 0, void 0, function* () {\n played = js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_3__[\"Helper\"].nonNull(played, true);\n let levelPlayed = new LevelPlayed();\n levelPlayed.levelData = levelData;\n levelPlayed.played = played;\n return yield levelPlayed.save();\n });\n }\n static getNextLevelData(renderer) {\n return __awaiter(this, void 0, void 0, function* () {\n let qb = yield this._database.createQueryBuilder(_shared_model_LevelData__WEBPACK_IMPORTED_MODULE_2__[\"LevelData\"]);\n qb = qb.select(\"COUNT(*) as count, difficulty\")\n .leftJoin(LevelPlayed, \"levelPlayed\", \"levelPlayed.levelData = LevelData.id\")\n .where(\"(deleted = 0 OR deleted = 'false')\")\n .andWhere(\"renderer IN (\" + renderer.join(\",\") + \")\")\n .andWhere(\"(levelPlayed.id IS NULL OR levelPlayed.played = 0)\")\n .groupBy(\"difficulty\")\n .orderBy(\"difficulty, LevelData.id\");\n let countRes = yield qb.getRawMany();\n let difficulty = null;\n let offset = null;\n if (!countRes.some(res => {\n if (res[\"count\"] > 0) {\n difficulty = res[\"difficulty\"];\n offset = Math.floor(Math.random() * Math.floor(res[\"count\"]));\n return true;\n }\n return false;\n })) {\n return null;\n }\n qb = (yield this._database.createQueryBuilder(_shared_model_LevelData__WEBPACK_IMPORTED_MODULE_2__[\"LevelData\"]));\n qb = qb\n .leftJoin(LevelPlayed, \"levelPlayed\", \"levelPlayed.levelData = LevelData.id\")\n .where(\"(deleted = 0 OR deleted = 'false')\")\n .andWhere(\"difficulty = \" + difficulty)\n .andWhere(\"renderer IN (\" + renderer.join(\",\") + \")\")\n .andWhere(\"(levelPlayed.id IS NULL OR levelPlayed.played = 0)\")\n .orderBy(\"LevelData.id\")\n .limit(1)\n .offset(offset);\n return yield qb.getOne();\n });\n }\n}\ncordova_sites_database_dist_cordova_sites_database__WEBPACK_IMPORTED_MODULE_1__[\"BaseDatabase\"].addModel(LevelPlayed);\n\n\n//# sourceURL=webpack:///./src/client/js/model/LevelPlayed.ts?");
/***/ }),
/***/ "./src/client/js/model/migration/ClientSetup.ts":
/*!******************************************************!*\
!*** ./src/client/js/model/migration/ClientSetup.ts ***!
\******************************************************/
/*! exports provided: ClientSetup1000000002001 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ClientSetup1000000002001\", function() { return ClientSetup1000000002001; });\n/* harmony import */ var js_helper_dist_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! js-helper/dist/shared */ \"./node_modules/js-helper/dist/shared.js\");\n/* harmony import */ var js_helper_dist_shared__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(js_helper_dist_shared__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _LevelPlayed__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../LevelPlayed */ \"./src/client/js/model/LevelPlayed.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\nclass ClientSetup1000000002001 {\n up(queryRunner) {\n return __awaiter(this, void 0, void 0, function* () {\n yield js_helper_dist_shared__WEBPACK_IMPORTED_MODULE_0__[\"MigrationHelper\"].addTableFromModelClass(_LevelPlayed__WEBPACK_IMPORTED_MODULE_1__[\"LevelPlayed\"], queryRunner);\n });\n }\n down(queryRunner) {\n return undefined;\n }\n}\n\n\n//# sourceURL=webpack:///./src/client/js/model/migration/ClientSetup.ts?");
/***/ }),
/***/ "./src/client/js/script.js":
/*!*********************************!*\
!*** ./src/client/js/script.js ***!
\*********************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _translations_de_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../translations/de.json */ \"./src/client/translations/de.json\");\nvar _translations_de_json__WEBPACK_IMPORTED_MODULE_0___namespace = /*#__PURE__*/__webpack_require__.t(/*! ../translations/de.json */ \"./src/client/translations/de.json\", 1);\n/* harmony import */ var _translations_en_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../translations/en.json */ \"./src/client/translations/en.json\");\nvar _translations_en_json__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t(/*! ../translations/en.json */ \"./src/client/translations/en.json\", 1);\n/* harmony import */ var cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\n/* harmony import */ var cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var cordova_sites_user_management_dist_client_js_translationInit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! cordova-sites-user-management/dist/client/js/translationInit */ \"./node_modules/cordova-sites-user-management/dist/client/js/translationInit.js\");\n/* harmony import */ var cordova_sites_user_management_dist_client_js_translationInit__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_user_management_dist_client_js_translationInit__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var cordova_sites_dist_client_js_translationInit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! cordova-sites/dist/client/js/translationInit */ \"./node_modules/cordova-sites/dist/client/js/translationInit.js\");\n/* harmony import */ var cordova_sites_dist_client_js_translationInit__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_translationInit__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var cordova_sites_user_management_dist_client__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! cordova-sites-user-management/dist/client */ \"./node_modules/cordova-sites-user-management/dist/client.js\");\n/* harmony import */ var cordova_sites_user_management_dist_client__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_user_management_dist_client__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var cordova_sites_database_dist_cordova_sites_database__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! cordova-sites-database/dist/cordova-sites-database */ \"./node_modules/cordova-sites-database/dist/cordova-sites-database.js\");\n/* harmony import */ var cordova_sites_database_dist_cordova_sites_database__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_database_dist_cordova_sites_database__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var cordova_sites_user_management_dist_shared_migrations_DeleteUserManagement__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! cordova-sites-user-management/dist/shared//migrations/DeleteUserManagement */ \"./node_modules/cordova-sites-user-management/dist/shared/migrations/DeleteUserManagement.js\");\n/* harmony import */ var cordova_sites_user_management_dist_shared_migrations_DeleteUserManagement__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_user_management_dist_shared_migrations_DeleteUserManagement__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var cordova_sites_user_management_dist_shared_migrations_SetupUserManagement__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! cordova-sites-user-management/dist/shared/migrations/SetupUserManagement */ \"./node_modules/cordova-sites-user-management/dist/shared/migrations/SetupUserManagement.js\");\n/* harmony import */ var cordova_sites_user_management_dist_shared_migrations_SetupUserManagement__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_user_management_dist_shared_migrations_SetupUserManagement__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _shared_model_migration_shared_Setup__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../shared/model/migration/shared/Setup */ \"./src/shared/model/migration/shared/Setup.ts\");\n/* harmony import */ var cordova_sites_easy_sync_dist_client__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! cordova-sites-easy-sync/dist/client */ \"./node_modules/cordova-sites-easy-sync/dist/client.js\");\n/* harmony import */ var cordova_sites_easy_sync_dist_client__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_easy_sync_dist_client__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _Sites_MainMenuSite__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Sites/MainMenuSite */ \"./src/client/js/Sites/MainMenuSite.ts\");\n/* harmony import */ var _model_migration_ClientSetup__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./model/migration/ClientSetup */ \"./src/client/js/model/migration/ClientSetup.ts\");\n/* harmony import */ var cordova_sites_easy_sync_dist_client_EasySyncClientDb__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! cordova-sites-easy-sync/dist/client/EasySyncClientDb */ \"./node_modules/cordova-sites-easy-sync/dist/client/EasySyncClientDb.js\");\n/* harmony import */ var cordova_sites_easy_sync_dist_client_EasySyncClientDb__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_easy_sync_dist_client_EasySyncClientDb__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var cordova_sites_dist_client_js_Context_Menu_NavbarFragment__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! cordova-sites/dist/client/js/Context/Menu/NavbarFragment */ \"./node_modules/cordova-sites/dist/client/js/Context/Menu/NavbarFragment.js\");\n/* harmony import */ var cordova_sites_dist_client_js_Context_Menu_NavbarFragment__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_Context_Menu_NavbarFragment__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var cordova_sites_dist_client_js_NativeStoragePromise__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! cordova-sites/dist/client/js/NativeStoragePromise */ \"./node_modules/cordova-sites/dist/client/js/NativeStoragePromise.js\");\n/* harmony import */ var cordova_sites_dist_client_js_NativeStoragePromise__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_NativeStoragePromise__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var _sound_brightAndBeautifull_mp3__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../sound/brightAndBeautifull__.mp3 */ \"./src/client/sound/brightAndBeautifull__.mp3\");\n/* harmony import */ var cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! cordova-sites/dist/client/js/Sound/SoundManager */ \"./node_modules/cordova-sites/dist/client/js/Sound/SoundManager.js\");\n/* harmony import */ var cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_17__);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nwindow[\"JSObject\"] = Object;\n\n//Disable Google Analytics for VideoJS\nwindow[\"HELP_IMPROVE_VIDEOJS\"] = false;\n\ncordova_sites_user_management_dist_client__WEBPACK_IMPORTED_MODULE_5__[\"LoginSite\"].ADD_LOGIN_ACTION = false;\ncordova_sites_user_management_dist_client__WEBPACK_IMPORTED_MODULE_5__[\"RegistrationSite\"].ADD_REGISTRATION_ACTION = false;\n\ncordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_2__[\"App\"].addInitialization(async () => {\n cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_2__[\"Translator\"].init({\n translations: {\n \"de\": _translations_de_json__WEBPACK_IMPORTED_MODULE_0__,\n \"en\": _translations_en_json__WEBPACK_IMPORTED_MODULE_1__\n },\n fallbackLanguage: \"de\",\n // markTranslations: true,\n markUntranslatedTranslations: true,\n });\n\n //Setting Title\n cordova_sites_dist_client_js_Context_Menu_NavbarFragment__WEBPACK_IMPORTED_MODULE_14__[\"NavbarFragment\"].title = \"WordRotator\";\n\n let soundManager = cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_17__[\"SoundManager\"].getInstance();\n soundManager.play(cordova_sites_dist_client_js_Sound_SoundManager__WEBPACK_IMPORTED_MODULE_17__[\"SoundManager\"].CHANNELS.MUSIC, {\n audio: _sound_brightAndBeautifull_mp3__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n loop: true,\n volume: 0.6,\n muted: (await cordova_sites_dist_client_js_NativeStoragePromise__WEBPACK_IMPORTED_MODULE_15__[\"NativeStoragePromise\"].getItem(\"play-music\", \"1\") !== \"1\")\n }).catch(e => console.error(e));\n\n await cordova_sites_user_management_dist_client__WEBPACK_IMPORTED_MODULE_5__[\"UserManager\"].getInstance().getMe().catch(e => console.error(e));\n\n cordova_sites_user_management_dist_client__WEBPACK_IMPORTED_MODULE_5__[\"UserManager\"].getInstance().addLoginChangeCallback(async (isLoggedIn) => {\n if (isLoggedIn) {\n // await new SyncJob().sync([UserManager.syncParamFor(Definition), UserManager.syncParamFor(ExerciseProgress), UserManager.syncParamFor(WrongAnswer)]).catch(e => console.error(e));\n }\n });\n});\n\ncordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_2__[\"DataManager\"]._basePath = 'http://192.168.0.244:3001/api/v1/';\ncordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_2__[\"DataManager\"].onlineCallback = isOnline => {\n if (!isOnline){\n new cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_2__[\"Toast\"](\"not online!\").show();\n }\n};\n\nObject.assign(cordova_sites_database_dist_cordova_sites_database__WEBPACK_IMPORTED_MODULE_6__[\"BaseDatabase\"].CONNECTION_OPTIONS, {\n logging: [\"error\",],\n synchronize: false,\n migrationsRun: true,\n migrations: [\n cordova_sites_user_management_dist_shared_migrations_DeleteUserManagement__WEBPACK_IMPORTED_MODULE_7__[\"DeleteUserManagement1000000000000\"],\n cordova_sites_easy_sync_dist_client__WEBPACK_IMPORTED_MODULE_10__[\"SetupEasySync1000000000500\"],\n cordova_sites_user_management_dist_shared_migrations_SetupUserManagement__WEBPACK_IMPORTED_MODULE_8__[\"SetupUserManagement1000000001000\"],\n _shared_model_migration_shared_Setup__WEBPACK_IMPORTED_MODULE_9__[\"Setup1000000002000\"],\n _model_migration_ClientSetup__WEBPACK_IMPORTED_MODULE_12__[\"ClientSetup1000000002001\"],\n ]\n});\n\nlet app = new cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_2__[\"App\"]();\napp.start(_Sites_MainMenuSite__WEBPACK_IMPORTED_MODULE_11__[\"MainMenuSite\"]).catch(e => console.error(e)).then(async () => {\n window[\"queryDb\"] = async (sql) => {\n // SELECT name FROM my_db.sqlite_master WHERE type='table';\n\n\n // console.log(\"DB\", EasySyncClientDb.getInstance());\n let res = await cordova_sites_easy_sync_dist_client_EasySyncClientDb__WEBPACK_IMPORTED_MODULE_13__[\"EasySyncClientDb\"].getInstance().rawQuery(sql);\n console.log(res);\n return res;\n }\n});\napp.ready(() => {\n console.log(\"initialisation over\", new Date());\n\n if (device.platform === \"browser\"){\n // Check that service workers are supported\n if ('serviceWorker' in navigator) {\n // Use the window load event to keep the page load performant\n window.addEventListener('load', () => {\n navigator.serviceWorker.register('service-worker.js');\n });\n }\n }\n\n});\n\n\n//# sourceURL=webpack:///./src/client/js/script.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/BigSegmentsLevels.js":
/*!**************************************************************!*\
!*** ./src/client/js/wordrotator/Level/BigSegmentsLevels.js ***!
\**************************************************************/
/*! exports provided: BigSegmentsLevels */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BigSegmentsLevels\", function() { return BigSegmentsLevels; });\n/* harmony import */ var _Level__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Level */ \"./src/client/js/wordrotator/Level/Level.js\");\n/* harmony import */ var _Segment_RowSegment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Segment/RowSegment */ \"./src/client/js/wordrotator/Segment/RowSegment.js\");\n/* harmony import */ var _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Segment/ParentSegment */ \"./src/client/js/wordrotator/Segment/ParentSegment.js\");\n/* harmony import */ var _Segment_ColumnSegment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Segment/ColumnSegment */ \"./src/client/js/wordrotator/Segment/ColumnSegment.js\");\n\n\n\n\n\nclass BigSegmentsLevels extends _Level__WEBPACK_IMPORTED_MODULE_0__[\"Level\"]{\n constructor(templateContainer, wordLength, bigSegmentPositions) {\n super(templateContainer);\n this.wordLength = wordLength;\n this.bigSegmentPositions = bigSegmentPositions;\n }\n\n createSegments() {\n if (this.words.length >= 4 &&\n this.words[0].length >= this.wordLength &&\n this.words[1].length >= this.wordLength &&\n this.words[2].length >= this.wordLength &&\n this.words[3].length >= this.wordLength &&\n this.wordLength >= 4\n ) {\n let leafsWords = [];\n leafsWords[0] = _Level__WEBPACK_IMPORTED_MODULE_0__[\"Level\"]._createLeafsForWord(this.words[0], this.templateContainer.copyLeafTemplate());\n leafsWords[1] = _Level__WEBPACK_IMPORTED_MODULE_0__[\"Level\"]._createLeafsForWord(this.words[1], this.templateContainer.copyLeafTemplate());\n leafsWords[2] = _Level__WEBPACK_IMPORTED_MODULE_0__[\"Level\"]._createLeafsForWord(this.words[2], this.templateContainer.copyLeafTemplate());\n leafsWords[3] = _Level__WEBPACK_IMPORTED_MODULE_0__[\"Level\"]._createLeafsForWord(this.words[3], this.templateContainer.copyLeafTemplate());\n\n let rootSegment = new _Segment_RowSegment__WEBPACK_IMPORTED_MODULE_1__[\"RowSegment\"](this.templateContainer.copyRowTemplate());\n for (let i = 0; i < this.wordLength / 2; i++) {\n let parents = [];\n parents[0] = new _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__[\"ParentSegment\"](this.templateContainer.copyParentTemplate());\n parents[1] = new _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__[\"ParentSegment\"](this.templateContainer.copyParentTemplate());\n\n parents[0].addChild(leafsWords[0][2 * i]);\n parents[0].addChild(leafsWords[0][2 * i + 1]);\n parents[0].addChild(leafsWords[1][2 * i]);\n parents[0].addChild(leafsWords[1][2 * i + 1]);\n\n parents[1].addChild(leafsWords[2][2 * i]);\n parents[1].addChild(leafsWords[2][2 * i + 1]);\n parents[1].addChild(leafsWords[3][2 * i]);\n parents[1].addChild(leafsWords[3][2 * i + 1]);\n\n let parentSegment =null;\n if (this.bigSegmentPositions.indexOf(i) !== -1){\n parents[2] = new _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__[\"ParentSegment\"](this.templateContainer.copyParentTemplate());\n parents[3] = new _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__[\"ParentSegment\"](this.templateContainer.copyParentTemplate());\n\n parents[2].addChild(leafsWords[0][2 * i + 2]);\n parents[2].addChild(leafsWords[0][2 * i + 3]);\n parents[2].addChild(leafsWords[1][2 * i + 2]);\n parents[2].addChild(leafsWords[1][2 * i + 3]);\n\n parents[3].addChild(leafsWords[2][2 * i + 2]);\n parents[3].addChild(leafsWords[2][2 * i + 3]);\n parents[3].addChild(leafsWords[3][2 * i + 2]);\n parents[3].addChild(leafsWords[3][2 * i + 3]);\n\n parentSegment = new _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__[\"ParentSegment\"](this.templateContainer.copyParentTemplate());\n parentSegment.addChild(parents[0]);\n parentSegment.addChild(parents[2]);\n parentSegment.addChild(parents[1]);\n parentSegment.addChild(parents[3]);\n i++;\n }\n else{\n parentSegment = new _Segment_ColumnSegment__WEBPACK_IMPORTED_MODULE_3__[\"ColumnSegment\"](this.templateContainer.copyColumnTemplate());\n parentSegment.addChild(parents[0]);\n parentSegment.addChild(parents[1]);\n }\n\n rootSegment.addChild(parentSegment);\n }\n this.setRootSegment(rootSegment)\n }\n }\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/BigSegmentsLevels.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/FourWordsLevel.js":
/*!***********************************************************!*\
!*** ./src/client/js/wordrotator/Level/FourWordsLevel.js ***!
\***********************************************************/
/*! exports provided: FourWordsLevel */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FourWordsLevel\", function() { return FourWordsLevel; });\n/* harmony import */ var _Level__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Level */ \"./src/client/js/wordrotator/Level/Level.js\");\n/* harmony import */ var _Segment_RowSegment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Segment/RowSegment */ \"./src/client/js/wordrotator/Segment/RowSegment.js\");\n/* harmony import */ var _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Segment/ParentSegment */ \"./src/client/js/wordrotator/Segment/ParentSegment.js\");\n\n\n\n\nclass FourWordsLevel extends _Level__WEBPACK_IMPORTED_MODULE_0__[\"Level\"] {\n\n constructor(templateContainer, wordLength) {\n super(templateContainer);\n this.wordLength = wordLength;\n }\n\n createSegments() {\n if (this.words.length >= 4 &&\n this.words[0].length >= this.wordLength &&\n this.words[1].length >= this.wordLength &&\n this.words[2].length >= this.wordLength &&\n this.words[3].length >= this.wordLength\n ) {\n let leafsWords = [];\n leafsWords[0] = _Level__WEBPACK_IMPORTED_MODULE_0__[\"Level\"]._createLeafsForWord(this.words[0], this.templateContainer.copyLeafTemplate());\n leafsWords[1] = _Level__WEBPACK_IMPORTED_MODULE_0__[\"Level\"]._createLeafsForWord(this.words[1], this.templateContainer.copyLeafTemplate());\n leafsWords[2] = _Level__WEBPACK_IMPORTED_MODULE_0__[\"Level\"]._createLeafsForWord(this.words[2], this.templateContainer.copyLeafTemplate());\n leafsWords[3] = _Level__WEBPACK_IMPORTED_MODULE_0__[\"Level\"]._createLeafsForWord(this.words[3], this.templateContainer.copyLeafTemplate());\n\n let rootSegment = new _Segment_RowSegment__WEBPACK_IMPORTED_MODULE_1__[\"RowSegment\"](this.templateContainer.copyRowTemplate());\n for (let i = 0; i < this.wordLength / 4; i++) {\n\n let parents = [];\n parents[0] = new _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__[\"ParentSegment\"](this.templateContainer.copyParentTemplate());\n parents[1] = new _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__[\"ParentSegment\"](this.templateContainer.copyParentTemplate());\n parents[2] = new _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__[\"ParentSegment\"](this.templateContainer.copyParentTemplate());\n parents[3] = new _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__[\"ParentSegment\"](this.templateContainer.copyParentTemplate());\n\n parents[0].addChild(leafsWords[0][4 * i]);\n parents[0].addChild(leafsWords[0][4 * i + 1]);\n parents[0].addChild(leafsWords[1][4 * i]);\n parents[0].addChild(leafsWords[1][4 * i + 1]);\n\n parents[1].addChild(leafsWords[0][4 * i + 2]);\n parents[1].addChild(leafsWords[0][4 * i + 3]);\n parents[1].addChild(leafsWords[1][4 * i + 2]);\n parents[1].addChild(leafsWords[1][4 * i + 3]);\n\n parents[2].addChild(leafsWords[2][4 * i]);\n parents[2].addChild(leafsWords[2][4 * i + 1]);\n parents[2].addChild(leafsWords[3][4 * i]);\n parents[2].addChild(leafsWords[3][4 * i + 1]);\n\n parents[3].addChild(leafsWords[2][4 * i + 2]);\n parents[3].addChild(leafsWords[2][4 * i + 3]);\n parents[3].addChild(leafsWords[3][4 * i + 2]);\n parents[3].addChild(leafsWords[3][4 * i + 3]);\n\n let parent = new _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__[\"ParentSegment\"](this.templateContainer.copyParentTemplate());\n parent.addChild(parents[0]);\n parent.addChild(parents[1]);\n parent.addChild(parents[2]);\n parent.addChild(parents[3]);\n\n rootSegment.addChild(parent);\n }\n this.setRootSegment(rootSegment)\n }\n }\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/FourWordsLevel.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/FourWordsLevel12.js":
/*!*************************************************************!*\
!*** ./src/client/js/wordrotator/Level/FourWordsLevel12.js ***!
\*************************************************************/
/*! exports provided: FourWordsLevel12 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FourWordsLevel12\", function() { return FourWordsLevel12; });\n/* harmony import */ var _FourWordsLevel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FourWordsLevel */ \"./src/client/js/wordrotator/Level/FourWordsLevel.js\");\n\n\nclass FourWordsLevel12 extends _FourWordsLevel__WEBPACK_IMPORTED_MODULE_0__[\"FourWordsLevel\"]{\n constructor(templateContainer) {\n super(templateContainer, 12);\n }\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/FourWordsLevel12.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/FourWordsLevel8.js":
/*!************************************************************!*\
!*** ./src/client/js/wordrotator/Level/FourWordsLevel8.js ***!
\************************************************************/
/*! exports provided: FourWordsLevel8 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FourWordsLevel8\", function() { return FourWordsLevel8; });\n/* harmony import */ var _FourWordsLevel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FourWordsLevel */ \"./src/client/js/wordrotator/Level/FourWordsLevel.js\");\n\n\nclass FourWordsLevel8 extends _FourWordsLevel__WEBPACK_IMPORTED_MODULE_0__[\"FourWordsLevel\"]{\n constructor(templateContainer) {\n super(templateContainer, 8);\n }\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/FourWordsLevel8.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/Level.js":
/*!**************************************************!*\
!*** ./src/client/js/wordrotator/Level/Level.js ***!
\**************************************************/
/*! exports provided: Level */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Level\", function() { return Level; });\n/* harmony import */ var _Segment_LeafSegment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Segment/LeafSegment */ \"./src/client/js/wordrotator/Segment/LeafSegment.js\");\n/* harmony import */ var _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Segment/ParentSegment */ \"./src/client/js/wordrotator/Segment/ParentSegment.js\");\n/* harmony import */ var js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\n/* harmony import */ var js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! cordova-sites/dist/client */ \"./node_modules/cordova-sites/dist/client.js\");\n/* harmony import */ var cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var js_helper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! js-helper */ \"./node_modules/js-helper/dist/shared.js\");\n/* harmony import */ var js_helper__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(js_helper__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n\n\nclass Level {\n constructor(templateContainer) {\n this.rootSegment = null;\n this.words = [];\n this.startRotations = [];\n this.templateContainer = templateContainer;\n\n this.levelData = null;\n\n this.hasWon = false;\n this.id = null;\n\n this.saveAsCurrentAfterCheckWon = true;\n\n this.wonResolver = null;\n this.giveUpResolver = null;\n\n this._shakeLeafs = true;\n this._shakeLeafsTimeout = null;\n this._lastRotation = 0;\n\n this.wonPromise = new Promise((resolve, reject) => {\n this.wonResolver = resolve;\n this.giveUpResolver = reject;\n });\n\n this.segmentClickedListener = () => {\n console.log(\"clicked\")\n };\n }\n\n getLevelData() {\n return this.levelData;\n }\n\n setLevelData(levelData) {\n this.levelData = levelData;\n }\n\n async saveAsCurrentLevel() {\n let rotations = this.getCurrentRotations();\n let locked = this.getCurrentLocked();\n await cordova_sites_dist_client__WEBPACK_IMPORTED_MODULE_3__[\"NativeStoragePromise\"].setItem(\"currentLevel\", JSON.stringify({\n \"id\": this.id,\n \"rotations\": rotations,\n \"locks\": locked\n }));\n }\n\n getCurrentLocked() {\n if (this.rootSegment !== null) {\n return this.rootSegment.getCurrentLocked([]);\n }\n return [];\n }\n\n getCurrentRotations() {\n if (this.rootSegment !== null) {\n return this.rootSegment.getCurrentRotations([]);\n }\n return [];\n }\n\n setLocks(locks) {\n if (this.rootSegment !== null) {\n this.rootSegment.applyLocks(locks);\n }\n }\n\n setId(id) {\n this.id = id;\n }\n\n getId() {\n return this.id;\n }\n\n getLevel() {\n return this;\n }\n\n setRootSegment(rootSegment) {\n this.rootSegment = rootSegment;\n this.rootSegment.setParent(this);\n if (this.startRotations) {\n this.applyRotations();\n }\n }\n\n setWords(words) {\n this.words = [];\n for (let i = 0, n = words.length; i < n; i++) {\n this.words.push(words[i].replace(/ß/g, \"ẞ\").toUpperCase());\n }\n }\n\n setStartRotations(rotations) {\n this.startRotations = rotations;\n }\n\n applyRotations(rotations) {\n if (this.rootSegment) {\n rotations = js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_2__[\"Helper\"].nonNull(rotations, this.startRotations);\n this.rootSegment.applyRotations(rotations);\n }\n }\n\n getHasWon() {\n return this.hasWon;\n }\n\n checkHasWon(delayPromise) {\n if (this.rootSegment.isSolved()) {\n this.hasWon = true;\n const self = this;\n Promise.resolve(delayPromise).then(() => {\n self.wonResolver(true);\n });\n return true;\n }\n if (this.saveAsCurrentAfterCheckWon) {\n this.saveAsCurrentLevel();\n }\n return false;\n }\n\n setSaveAsCurrentAfterCheckWon(shouldSave){\n this.saveAsCurrentAfterCheckWon = (shouldSave === true);\n }\n\n getWonPromise() {\n return this.wonPromise;\n }\n\n getRootSegment() {\n return this.rootSegment;\n }\n\n createSegments() {\n };\n\n getRotatableSegments() {\n return Level._getRotatableSegmentsFrom(this.rootSegment);\n }\n\n segmentClicked(segment) {\n if (this.segmentClickedListener) {\n this.segmentClickedListener(segment);\n }\n\n this._lastRotation = new Date().getTime();\n clearTimeout(this._shakeLeafsTimeout);\n if (this._shakeLeafs) {\n this._shakeLeafsTimeout = setTimeout(() => {\n this.shakeLeafs();\n }, js_helper__WEBPACK_IMPORTED_MODULE_4__[\"Random\"].getIntRandom(5000) + 25000);\n }\n }\n\n setSegmentClickedListener(listener) {\n this.segmentClickedListener = listener;\n }\n\n getLeafSegments() {\n return Level._getLeafSegmentsFrom(this.rootSegment);\n }\n\n static _getRotatableSegmentsFrom(segment) {\n let rotatable = [];\n if (segment.canRotate()) {\n rotatable.push(segment);\n }\n if (segment instanceof _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_1__[\"ParentSegment\"]) {\n for (let i = 0; i < segment.children.length; i++) {\n rotatable.push.apply(rotatable, Level._getRotatableSegmentsFrom(segment.children[i]));\n }\n }\n return rotatable;\n }\n\n shakeLeafs() {\n clearTimeout(this._shakeLeafsTimeout);\n if (this._shakeLeafs && !this.hasWon) {\n\n const leafs = this.getLeafSegments();\n if (leafs.length > 0) {\n const index = js_helper__WEBPACK_IMPORTED_MODULE_4__[\"Random\"].getIntRandom(leafs.length - 1);\n const leaf = leafs[index];\n\n leaf.getElement().classList.add(\"shake\");\n setTimeout(() => {\n leaf.getElement().classList.remove(\"shake\");\n }, js_helper__WEBPACK_IMPORTED_MODULE_4__[\"Random\"].getIntRandom(350) + 650);\n }\n this._shakeLeafsTimeout = setTimeout(() => {\n this.shakeLeafs();\n }, js_helper__WEBPACK_IMPORTED_MODULE_4__[\"Random\"].getIntRandom(2000) + 5000);\n }\n }\n\n static _createLeafsForWord(word, leafSegmentTemplate) {\n let leafSegments = [];\n for (let i = 0, n = word.length; i < n; i++) {\n leafSegments.push(new _Segment_LeafSegment__WEBPACK_IMPORTED_MODULE_0__[\"LeafSegment\"](leafSegmentTemplate.cloneNode(true), word.charAt(i)));\n }\n return leafSegments;\n }\n\n static _getLeafSegmentsFrom(segment) {\n let leafs = [];\n if (segment instanceof _Segment_LeafSegment__WEBPACK_IMPORTED_MODULE_0__[\"LeafSegment\"]) {\n leafs.push(segment);\n } else if (segment instanceof _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_1__[\"ParentSegment\"]) {\n for (let i = 0; i < segment.children.length; i++) {\n leafs.push(...Level._getLeafSegmentsFrom(segment.children[i]));\n }\n }\n return leafs;\n }\n}\n\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/Level.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/LevelHelper.ts":
/*!********************************************************!*\
!*** ./src/client/js/wordrotator/Level/LevelHelper.ts ***!
\********************************************************/
/*! exports provided: LevelHelper */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LevelHelper\", function() { return LevelHelper; });\n/* harmony import */ var _SimpleLevel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SimpleLevel */ \"./src/client/js/wordrotator/Level/SimpleLevel.js\");\n/* harmony import */ var _RowLevel8__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RowLevel8 */ \"./src/client/js/wordrotator/Level/RowLevel8.js\");\n/* harmony import */ var _RowLevel10__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./RowLevel10 */ \"./src/client/js/wordrotator/Level/RowLevel10.js\");\n/* harmony import */ var _SixWordsRowLevel8__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SixWordsRowLevel8 */ \"./src/client/js/wordrotator/Level/SixWordsRowLevel8.js\");\n/* harmony import */ var _SixWordsRowLevel12__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SixWordsRowLevel12 */ \"./src/client/js/wordrotator/Level/SixWordsRowLevel12.js\");\n/* harmony import */ var _FourWordsLevel8__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FourWordsLevel8 */ \"./src/client/js/wordrotator/Level/FourWordsLevel8.js\");\n/* harmony import */ var _FourWordsLevel12__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./FourWordsLevel12 */ \"./src/client/js/wordrotator/Level/FourWordsLevel12.js\");\n/* harmony import */ var _SimpleFourWordsLevel10_0__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./SimpleFourWordsLevel10_0 */ \"./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_0.js\");\n/* harmony import */ var _SimpleFourWordsLevel10_1__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./SimpleFourWordsLevel10_1 */ \"./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_1.js\");\n/* harmony import */ var _SimpleFourWordsLevel10_2__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./SimpleFourWordsLevel10_2 */ \"./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_2.js\");\n/* harmony import */ var _SimpleFourWordsLevel10_3__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./SimpleFourWordsLevel10_3 */ \"./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_3.js\");\n/* harmony import */ var _TwoSegmentFourWordsLevel10_0_3__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./TwoSegmentFourWordsLevel10_0_3 */ \"./src/client/js/wordrotator/Level/TwoSegmentFourWordsLevel10_0_3.js\");\n/* harmony import */ var _TwoSegmentFourWordsLevel10_1_3__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./TwoSegmentFourWordsLevel10_1_3 */ \"./src/client/js/wordrotator/Level/TwoSegmentFourWordsLevel10_1_3.js\");\n/* harmony import */ var _TwoSegmentFourWordsLevel10_0_2__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./TwoSegmentFourWordsLevel10_0_2 */ \"./src/client/js/wordrotator/Level/TwoSegmentFourWordsLevel10_0_2.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass LevelHelper {\n static setLevelType(typeId, level) {\n LevelHelper.types[typeId] = level;\n }\n static getLevelClass(type) {\n return LevelHelper.types[type];\n }\n static inflateLevel(levelData, templateContainer) {\n let level = new (LevelHelper.types[levelData[\"renderer\"]])(templateContainer);\n level.setWords(JSON.parse(levelData[\"words\"].replace(/&quot;/g, '\"')));\n level.setId(levelData[\"id\"]);\n level.setLevelData(levelData);\n levelData[\"positions\"] = JSON.parse(levelData[\"positions\"]);\n for (let i = 0, n = levelData[\"positions\"].length; i < n; i++) {\n if (levelData[\"positions\"][i] <= 4) {\n levelData[\"positions\"][i] = 90 * levelData[\"positions\"][i];\n }\n }\n level.setStartRotations(levelData[\"positions\"]);\n return level;\n }\n}\nLevelHelper.types = {\n 20: _SimpleLevel__WEBPACK_IMPORTED_MODULE_0__[\"SimpleLevel\"],\n 40: _RowLevel8__WEBPACK_IMPORTED_MODULE_1__[\"RowLevel8\"],\n 60: _RowLevel10__WEBPACK_IMPORTED_MODULE_2__[\"RowLevel10\"],\n 80: _SimpleFourWordsLevel10_0__WEBPACK_IMPORTED_MODULE_7__[\"SimpleFourWordsLevel10_0\"],\n 81: _SimpleFourWordsLevel10_1__WEBPACK_IMPORTED_MODULE_8__[\"SimpleFourWordsLevel10_1\"],\n 82: _SimpleFourWordsLevel10_2__WEBPACK_IMPORTED_MODULE_9__[\"SimpleFourWordsLevel10_2\"],\n 83: _SimpleFourWordsLevel10_3__WEBPACK_IMPORTED_MODULE_10__[\"SimpleFourWordsLevel10_3\"],\n 100: _SixWordsRowLevel8__WEBPACK_IMPORTED_MODULE_3__[\"SixWordsRowLevel8\"],\n 110: _TwoSegmentFourWordsLevel10_0_3__WEBPACK_IMPORTED_MODULE_11__[\"TwoSegmentFourWordsLevel10_0_3\"],\n 111: _TwoSegmentFourWordsLevel10_1_3__WEBPACK_IMPORTED_MODULE_12__[\"TwoSegmentFourWordsLevel10_1_3\"],\n 112: _TwoSegmentFourWordsLevel10_0_2__WEBPACK_IMPORTED_MODULE_13__[\"TwoSegmentFourWordsLevel10_0_2\"],\n 120: _FourWordsLevel8__WEBPACK_IMPORTED_MODULE_5__[\"FourWordsLevel8\"],\n 140: _SixWordsRowLevel12__WEBPACK_IMPORTED_MODULE_4__[\"SixWordsRowLevel12\"],\n 160: _FourWordsLevel12__WEBPACK_IMPORTED_MODULE_6__[\"FourWordsLevel12\"],\n};\n\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/LevelHelper.ts?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/MainMenuLevel.js":
/*!**********************************************************!*\
!*** ./src/client/js/wordrotator/Level/MainMenuLevel.js ***!
\**********************************************************/
/*! exports provided: MainMenuLevel */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MainMenuLevel\", function() { return MainMenuLevel; });\n/* harmony import */ var _FourWordsLevel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FourWordsLevel */ \"./src/client/js/wordrotator/Level/FourWordsLevel.js\");\n\n\nclass MainMenuLevel extends _FourWordsLevel__WEBPACK_IMPORTED_MODULE_0__[\"FourWordsLevel\"]{\n\n constructor(templateContainer) {\n super(templateContainer, 4);\n }\n\n saveAsCurrentLevel() {\n }\n\n // checkHasWon(delayPromise) {\n // }\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/MainMenuLevel.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/RowLevel.js":
/*!*****************************************************!*\
!*** ./src/client/js/wordrotator/Level/RowLevel.js ***!
\*****************************************************/
/*! exports provided: RowLevel */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RowLevel\", function() { return RowLevel; });\n/* harmony import */ var _Level__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Level */ \"./src/client/js/wordrotator/Level/Level.js\");\n/* harmony import */ var _Segment_RowSegment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Segment/RowSegment */ \"./src/client/js/wordrotator/Segment/RowSegment.js\");\n/* harmony import */ var _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Segment/ParentSegment */ \"./src/client/js/wordrotator/Segment/ParentSegment.js\");\n\n\n\n\nclass RowLevel extends _Level__WEBPACK_IMPORTED_MODULE_0__[\"Level\"] {\n constructor(container, wordLength) {\n super(container);\n this.wordLength = wordLength;\n }\n\n createSegments() {\n if (this.words.length >= 2 && this.words[0].length >= this.wordLength && this.words[1].length >= this.wordLength) {\n let leafsWordOne = _Level__WEBPACK_IMPORTED_MODULE_0__[\"Level\"]._createLeafsForWord(this.words[0], this.templateContainer.copyLeafTemplate());\n let leafsWordTwo = _Level__WEBPACK_IMPORTED_MODULE_0__[\"Level\"]._createLeafsForWord(this.words[1], this.templateContainer.copyLeafTemplate());\n\n let rootSegment = new _Segment_RowSegment__WEBPACK_IMPORTED_MODULE_1__[\"RowSegment\"](this.templateContainer.copyRowTemplate());\n for (let i = 0, n = this.wordLength / 2; i < n; i++) {\n let parent = new _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__[\"ParentSegment\"](this.templateContainer.copyParentTemplate());\n parent.addChild(leafsWordOne[2 * i]);\n parent.addChild(leafsWordOne[2 * i + 1]);\n parent.addChild(leafsWordTwo[2 * i]);\n parent.addChild(leafsWordTwo[2 * i + 1]);\n rootSegment.addChild(parent);\n }\n // rootSegment.applyRotations(this.startRotations);\n this.setRootSegment(rootSegment)\n }\n }\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/RowLevel.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/RowLevel10.js":
/*!*******************************************************!*\
!*** ./src/client/js/wordrotator/Level/RowLevel10.js ***!
\*******************************************************/
/*! exports provided: RowLevel10 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RowLevel10\", function() { return RowLevel10; });\n/* harmony import */ var _RowLevel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RowLevel */ \"./src/client/js/wordrotator/Level/RowLevel.js\");\n\n\nclass RowLevel10 extends _RowLevel__WEBPACK_IMPORTED_MODULE_0__[\"RowLevel\"]{\n constructor(container) {\n super(container, 10);\n }\n}\n\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/RowLevel10.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/RowLevel8.js":
/*!******************************************************!*\
!*** ./src/client/js/wordrotator/Level/RowLevel8.js ***!
\******************************************************/
/*! exports provided: RowLevel8 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RowLevel8\", function() { return RowLevel8; });\n/* harmony import */ var _RowLevel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RowLevel */ \"./src/client/js/wordrotator/Level/RowLevel.js\");\n\n\nclass RowLevel8 extends _RowLevel__WEBPACK_IMPORTED_MODULE_0__[\"RowLevel\"]{\n constructor(container) {\n super(container, 8);\n }\n}\n\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/RowLevel8.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/SimpleFourWordsLevel.js":
/*!*****************************************************************!*\
!*** ./src/client/js/wordrotator/Level/SimpleFourWordsLevel.js ***!
\*****************************************************************/
/*! exports provided: SimpleFourWordsLevel */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SimpleFourWordsLevel\", function() { return SimpleFourWordsLevel; });\n/* harmony import */ var _BigSegmentsLevels__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BigSegmentsLevels */ \"./src/client/js/wordrotator/Level/BigSegmentsLevels.js\");\n\n\nclass SimpleFourWordsLevel extends _BigSegmentsLevels__WEBPACK_IMPORTED_MODULE_0__[\"BigSegmentsLevels\"]{\n constructor(templateContainer, wordLength, bigSegmentPosition) {\n super(templateContainer, wordLength, [bigSegmentPosition]);\n }\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/SimpleFourWordsLevel.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_0.js":
/*!*********************************************************************!*\
!*** ./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_0.js ***!
\*********************************************************************/
/*! exports provided: SimpleFourWordsLevel10_0 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SimpleFourWordsLevel10_0\", function() { return SimpleFourWordsLevel10_0; });\n/* harmony import */ var _SimpleFourWordsLevel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SimpleFourWordsLevel */ \"./src/client/js/wordrotator/Level/SimpleFourWordsLevel.js\");\n\n\nclass SimpleFourWordsLevel10_0 extends _SimpleFourWordsLevel__WEBPACK_IMPORTED_MODULE_0__[\"SimpleFourWordsLevel\"]{\n constructor(templateContainer) {\n super(templateContainer, 10, 0);\n }\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_0.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_1.js":
/*!*********************************************************************!*\
!*** ./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_1.js ***!
\*********************************************************************/
/*! exports provided: SimpleFourWordsLevel10_1 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SimpleFourWordsLevel10_1\", function() { return SimpleFourWordsLevel10_1; });\n/* harmony import */ var _SimpleFourWordsLevel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SimpleFourWordsLevel */ \"./src/client/js/wordrotator/Level/SimpleFourWordsLevel.js\");\n\n\nclass SimpleFourWordsLevel10_1 extends _SimpleFourWordsLevel__WEBPACK_IMPORTED_MODULE_0__[\"SimpleFourWordsLevel\"]{\n constructor(templateContainer) {\n super(templateContainer, 10, 1);\n }\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_1.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_2.js":
/*!*********************************************************************!*\
!*** ./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_2.js ***!
\*********************************************************************/
/*! exports provided: SimpleFourWordsLevel10_2 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SimpleFourWordsLevel10_2\", function() { return SimpleFourWordsLevel10_2; });\n/* harmony import */ var _SimpleFourWordsLevel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SimpleFourWordsLevel */ \"./src/client/js/wordrotator/Level/SimpleFourWordsLevel.js\");\n\n\nclass SimpleFourWordsLevel10_2 extends _SimpleFourWordsLevel__WEBPACK_IMPORTED_MODULE_0__[\"SimpleFourWordsLevel\"]{\n constructor(templateContainer) {\n super(templateContainer, 10, 2);\n }\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_2.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_3.js":
/*!*********************************************************************!*\
!*** ./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_3.js ***!
\*********************************************************************/
/*! exports provided: SimpleFourWordsLevel10_3 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SimpleFourWordsLevel10_3\", function() { return SimpleFourWordsLevel10_3; });\n/* harmony import */ var _SimpleFourWordsLevel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SimpleFourWordsLevel */ \"./src/client/js/wordrotator/Level/SimpleFourWordsLevel.js\");\n\n\nclass SimpleFourWordsLevel10_3 extends _SimpleFourWordsLevel__WEBPACK_IMPORTED_MODULE_0__[\"SimpleFourWordsLevel\"]{\n constructor(templateContainer) {\n super(templateContainer, 10, 3);\n }\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/SimpleFourWordsLevel10_3.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/SimpleLevel.js":
/*!********************************************************!*\
!*** ./src/client/js/wordrotator/Level/SimpleLevel.js ***!
\********************************************************/
/*! exports provided: SimpleLevel */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SimpleLevel\", function() { return SimpleLevel; });\n/* harmony import */ var _RowLevel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RowLevel */ \"./src/client/js/wordrotator/Level/RowLevel.js\");\n\n\nclass SimpleLevel extends _RowLevel__WEBPACK_IMPORTED_MODULE_0__[\"RowLevel\"]{\n constructor(container) {\n super(container, 6);\n }\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/SimpleLevel.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/SixWordsRowLevel.js":
/*!*************************************************************!*\
!*** ./src/client/js/wordrotator/Level/SixWordsRowLevel.js ***!
\*************************************************************/
/*! exports provided: SixWordsRowLevel */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SixWordsRowLevel\", function() { return SixWordsRowLevel; });\n/* harmony import */ var _Segment_RowSegment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Segment/RowSegment */ \"./src/client/js/wordrotator/Segment/RowSegment.js\");\n/* harmony import */ var _Level__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Level */ \"./src/client/js/wordrotator/Level/Level.js\");\n/* harmony import */ var _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Segment/ParentSegment */ \"./src/client/js/wordrotator/Segment/ParentSegment.js\");\n/* harmony import */ var _Segment_TriangleSegment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Segment/TriangleSegment */ \"./src/client/js/wordrotator/Segment/TriangleSegment.js\");\n\n\n\n\n\nclass SixWordsRowLevel extends _Level__WEBPACK_IMPORTED_MODULE_1__[\"Level\"] {\n\n constructor(templateContainer, wordLength) {\n super(templateContainer);\n this.wordLength = wordLength;\n }\n\n createSegments() {\n if (this.words.length >= 6 &&\n this.words[0].length >= this.wordLength &&\n this.words[1].length >= this.wordLength &&\n this.words[2].length >= this.wordLength &&\n this.words[3].length >= this.wordLength &&\n this.words[4].length >= this.wordLength &&\n this.words[5].length >= this.wordLength\n ) {\n let leafsWords = [];\n leafsWords[0] = _Level__WEBPACK_IMPORTED_MODULE_1__[\"Level\"]._createLeafsForWord(this.words[0], this.templateContainer.copyLeafTemplate());\n leafsWords[1] = _Level__WEBPACK_IMPORTED_MODULE_1__[\"Level\"]._createLeafsForWord(this.words[1], this.templateContainer.copyLeafTemplate());\n leafsWords[2] = _Level__WEBPACK_IMPORTED_MODULE_1__[\"Level\"]._createLeafsForWord(this.words[2], this.templateContainer.copyLeafTemplate());\n leafsWords[3] = _Level__WEBPACK_IMPORTED_MODULE_1__[\"Level\"]._createLeafsForWord(this.words[3], this.templateContainer.copyLeafTemplate());\n leafsWords[4] = _Level__WEBPACK_IMPORTED_MODULE_1__[\"Level\"]._createLeafsForWord(this.words[4], this.templateContainer.copyLeafTemplate());\n leafsWords[5] = _Level__WEBPACK_IMPORTED_MODULE_1__[\"Level\"]._createLeafsForWord(this.words[5], this.templateContainer.copyLeafTemplate());\n\n let rootSegment = new _Segment_RowSegment__WEBPACK_IMPORTED_MODULE_0__[\"RowSegment\"](this.templateContainer.copyRowTemplate());\n for (let i = 0; i < this.wordLength / 4; i++) {\n\n let parents = [];\n parents[0] = new _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__[\"ParentSegment\"](this.templateContainer.copyParentTemplate());\n parents[1] = new _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__[\"ParentSegment\"](this.templateContainer.copyParentTemplate());\n parents[2] = new _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__[\"ParentSegment\"](this.templateContainer.copyParentTemplate());\n parents[3] = new _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__[\"ParentSegment\"](this.templateContainer.copyParentTemplate());\n parents[4] = new _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__[\"ParentSegment\"](this.templateContainer.copyParentTemplate());\n parents[5] = new _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__[\"ParentSegment\"](this.templateContainer.copyParentTemplate());\n\n parents[0].addChild(leafsWords[0][4*i]);\n parents[0].addChild(leafsWords[0][4*i+1]);\n parents[0].addChild(leafsWords[1][4*i]);\n parents[0].addChild(leafsWords[1][4*i+1]);\n\n parents[1].addChild(leafsWords[0][4*i+2]);\n parents[1].addChild(leafsWords[0][4*i+3]);\n parents[1].addChild(leafsWords[1][4*i+2]);\n parents[1].addChild(leafsWords[1][4*i+3]);\n\n parents[2].addChild(leafsWords[2][4*i]);\n parents[2].addChild(leafsWords[2][4*i+1]);\n parents[2].addChild(leafsWords[3][4*i]);\n parents[2].addChild(leafsWords[3][4*i+1]);\n\n parents[3].addChild(leafsWords[2][4*i+2]);\n parents[3].addChild(leafsWords[2][4*i+3]);\n parents[3].addChild(leafsWords[3][4*i+2]);\n parents[3].addChild(leafsWords[3][4*i+3]);\n\n parents[4].addChild(leafsWords[4][4*i]);\n parents[4].addChild(leafsWords[4][4*i+1]);\n parents[4].addChild(leafsWords[5][4*i]);\n parents[4].addChild(leafsWords[5][4*i+1]);\n\n parents[5].addChild(leafsWords[4][4*i+2]);\n parents[5].addChild(leafsWords[4][4*i+3]);\n parents[5].addChild(leafsWords[5][4*i+2]);\n parents[5].addChild(leafsWords[5][4*i+3]);\n\n let parent = new _Segment_ParentSegment__WEBPACK_IMPORTED_MODULE_2__[\"ParentSegment\"](this.templateContainer.copyParentTemplate());\n let triangle = new _Segment_TriangleSegment__WEBPACK_IMPORTED_MODULE_3__[\"TriangleSegment\"](this.templateContainer.copyTriangleTemplate());\n if (i % 2 === 0) {\n parent.addChild(parents[0]);\n parent.addChild(parents[1]);\n parent.addChild(parents[2]);\n parent.addChild(parents[3]);\n\n let rowSegment = new _Segment_RowSegment__WEBPACK_IMPORTED_MODULE_0__[\"RowSegment\"](this.templateContainer.copyRowTemplate());\n\n rowSegment.addChild(parents[4]);\n rowSegment.addChild(parents[5]);\n\n triangle.addChild(parent);\n triangle.addChild(rowSegment);\n\n triangle.getElement().classList.add(\"type-1\");\n }\n else {\n\n let rowSegment = new _Segment_RowSegment__WEBPACK_IMPORTED_MODULE_0__[\"RowSegment\"](this.templateContainer.copyRowTemplate());\n\n rowSegment.addChild(parents[0]);\n rowSegment.addChild(parents[1]);\n\n triangle.addChild(rowSegment);\n triangle.addChild(parent);\n\n parent.addChild(parents[2]);\n parent.addChild(parents[3]);\n parent.addChild(parents[4]);\n parent.addChild(parents[5]);\n\n triangle.getElement().classList.add(\"type-2\");\n }\n rootSegment.addChild(triangle);\n }\n this.setRootSegment(rootSegment)\n }\n }\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/SixWordsRowLevel.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/SixWordsRowLevel12.js":
/*!***************************************************************!*\
!*** ./src/client/js/wordrotator/Level/SixWordsRowLevel12.js ***!
\***************************************************************/
/*! exports provided: SixWordsRowLevel12 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SixWordsRowLevel12\", function() { return SixWordsRowLevel12; });\n/* harmony import */ var _SixWordsRowLevel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SixWordsRowLevel */ \"./src/client/js/wordrotator/Level/SixWordsRowLevel.js\");\n\n\nclass SixWordsRowLevel12 extends _SixWordsRowLevel__WEBPACK_IMPORTED_MODULE_0__[\"SixWordsRowLevel\"] {\n constructor(templateContainer) {\n super(templateContainer, 12);\n }\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/SixWordsRowLevel12.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/SixWordsRowLevel8.js":
/*!**************************************************************!*\
!*** ./src/client/js/wordrotator/Level/SixWordsRowLevel8.js ***!
\**************************************************************/
/*! exports provided: SixWordsRowLevel8 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SixWordsRowLevel8\", function() { return SixWordsRowLevel8; });\n/* harmony import */ var _SixWordsRowLevel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SixWordsRowLevel */ \"./src/client/js/wordrotator/Level/SixWordsRowLevel.js\");\n\n\nclass SixWordsRowLevel8 extends _SixWordsRowLevel__WEBPACK_IMPORTED_MODULE_0__[\"SixWordsRowLevel\"] {\n constructor(templateContainer) {\n super(templateContainer, 8);\n }\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/SixWordsRowLevel8.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/TwoSegmentFourWordsLevel10_0_2.js":
/*!***************************************************************************!*\
!*** ./src/client/js/wordrotator/Level/TwoSegmentFourWordsLevel10_0_2.js ***!
\***************************************************************************/
/*! exports provided: TwoSegmentFourWordsLevel10_0_2 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TwoSegmentFourWordsLevel10_0_2\", function() { return TwoSegmentFourWordsLevel10_0_2; });\n/* harmony import */ var _BigSegmentsLevels__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BigSegmentsLevels */ \"./src/client/js/wordrotator/Level/BigSegmentsLevels.js\");\n\n\nclass TwoSegmentFourWordsLevel10_0_2 extends _BigSegmentsLevels__WEBPACK_IMPORTED_MODULE_0__[\"BigSegmentsLevels\"]{\n constructor(templateContainer) {\n super(templateContainer, 10, [0,2]);\n }\n}\n\n\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/TwoSegmentFourWordsLevel10_0_2.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/TwoSegmentFourWordsLevel10_0_3.js":
/*!***************************************************************************!*\
!*** ./src/client/js/wordrotator/Level/TwoSegmentFourWordsLevel10_0_3.js ***!
\***************************************************************************/
/*! exports provided: TwoSegmentFourWordsLevel10_0_3 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TwoSegmentFourWordsLevel10_0_3\", function() { return TwoSegmentFourWordsLevel10_0_3; });\n/* harmony import */ var _BigSegmentsLevels__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BigSegmentsLevels */ \"./src/client/js/wordrotator/Level/BigSegmentsLevels.js\");\n\n\nclass TwoSegmentFourWordsLevel10_0_3 extends _BigSegmentsLevels__WEBPACK_IMPORTED_MODULE_0__[\"BigSegmentsLevels\"]{\n constructor(templateContainer) {\n super(templateContainer, 10, [0,3]);\n }\n}\n\n\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/TwoSegmentFourWordsLevel10_0_3.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Level/TwoSegmentFourWordsLevel10_1_3.js":
/*!***************************************************************************!*\
!*** ./src/client/js/wordrotator/Level/TwoSegmentFourWordsLevel10_1_3.js ***!
\***************************************************************************/
/*! exports provided: TwoSegmentFourWordsLevel10_1_3 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TwoSegmentFourWordsLevel10_1_3\", function() { return TwoSegmentFourWordsLevel10_1_3; });\n/* harmony import */ var _BigSegmentsLevels__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BigSegmentsLevels */ \"./src/client/js/wordrotator/Level/BigSegmentsLevels.js\");\n\n\nclass TwoSegmentFourWordsLevel10_1_3 extends _BigSegmentsLevels__WEBPACK_IMPORTED_MODULE_0__[\"BigSegmentsLevels\"]{\n constructor(templateContainer) {\n super(templateContainer, 10, [1,3]);\n }\n}\n\n\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Level/TwoSegmentFourWordsLevel10_1_3.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Segment/ColumnSegment.js":
/*!************************************************************!*\
!*** ./src/client/js/wordrotator/Segment/ColumnSegment.js ***!
\************************************************************/
/*! exports provided: ColumnSegment */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ColumnSegment\", function() { return ColumnSegment; });\n/* harmony import */ var _RowSegment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RowSegment */ \"./src/client/js/wordrotator/Segment/RowSegment.js\");\n/* harmony import */ var js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! js-helper/dist/client/ViewHelper */ \"./node_modules/js-helper/dist/client/ViewHelper.js\");\n/* harmony import */ var js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\nclass ColumnSegment extends _RowSegment__WEBPACK_IMPORTED_MODULE_0__[\"RowSegment\"]{\n\n _updateElement() {\n const childContainer = this.element.querySelector(\".child-container\");\n js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_1__[\"ViewHelper\"].removeAllChildren(childContainer);\n\n this._updateRotationClass();\n\n const self = this;\n this.element.onclick = function (e) {\n self.rotate();\n e.stopPropagation();\n };\n\n for (let i = 0, n = this.children.length; i < n; i++) {\n this.children[i]._updateElement();\n childContainer.appendChild(this.children[i].getElement());\n }\n }\n\n // constructor(element) {\n // super(element);\n // this.rotatable = false;\n // }\n //\n // applyRotations(rotations)\n // {\n // for (let i = 0, n = this.children.length; i < n; i++) {\n // rotations = this.children[i].applyRotations(rotations);\n // }\n // return rotations;\n // }\n //\n // getCurrentRotations(rotations){\n // for (let i = 0, n = this.children.length; i < n; i++) {\n // rotations = this.children[i].getCurrentRotations(rotations);\n // }\n // return rotations;\n // }\n //\n // getCurrentLocked(locked) {\n // for (let i = 0, n = this.children.length; i < n; i++) {\n // locked = this.children[i].getCurrentLocked(locked);\n // }\n // return locked;\n // }\n //\n // applyLocks(locks) {\n // for (let i = 0, n = this.children.length; i < n; i++) {\n // locks = this.children[i].applyLocks(locks);\n // }\n // return locks;\n // }\n //\n // _updateElement() {\n // const childContainer = this.element.querySelector(\".child-container\");\n // ViewHelper.removeAllChildren(childContainer);\n //\n // this._updateRotationClass();\n //\n // const self = this;\n // this.element.onclick = function (e) {\n // self.rotate();\n // e.stopPropagation();\n // };\n //\n // for (let i = 0, n = this.children.length; i < n; i++) {\n // this.children[i]._updateElement();\n // childContainer.appendChild(this.children[i].getElement());\n // }\n // }\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Segment/ColumnSegment.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Segment/LeafSegment.js":
/*!**********************************************************!*\
!*** ./src/client/js/wordrotator/Segment/LeafSegment.js ***!
\**********************************************************/
/*! exports provided: LeafSegment */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LeafSegment\", function() { return LeafSegment; });\n/* harmony import */ var _Segment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Segment */ \"./src/client/js/wordrotator/Segment/Segment.js\");\n/* harmony import */ var js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\n/* harmony import */ var js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! js-helper/dist/client/ViewHelper */ \"./node_modules/js-helper/dist/client/ViewHelper.js\");\n/* harmony import */ var js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\n\nclass LeafSegment extends _Segment__WEBPACK_IMPORTED_MODULE_0__[\"Segment\"] {\n\n constructor(element, leaf) {\n super(element);\n this.leaf = 'A';\n if (js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_1__[\"Helper\"].isNotNull(leaf)) {\n this.setLeaf(leaf);\n }\n }\n\n sameAs(otherSegment) {\n // debugger;\n return (otherSegment instanceof LeafSegment && otherSegment.leaf === this.leaf);\n }\n\n setLeaf(leaf) {\n this.leaf = leaf;\n }\n\n _updateElement() {\n js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_2__[\"ViewHelper\"].removeAllChildren(this.element.querySelector(\".leaf-element\")).appendChild(document.createTextNode(this.leaf));\n }\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Segment/LeafSegment.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Segment/ParentSegment.js":
/*!************************************************************!*\
!*** ./src/client/js/wordrotator/Segment/ParentSegment.js ***!
\************************************************************/
/*! exports provided: ParentSegment */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ParentSegment\", function() { return ParentSegment; });\n/* harmony import */ var _Segment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Segment */ \"./src/client/js/wordrotator/Segment/Segment.js\");\n/* harmony import */ var js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\n/* harmony import */ var js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! js-helper/dist/client/ViewHelper */ \"./node_modules/js-helper/dist/client/ViewHelper.js\");\n/* harmony import */ var js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\n\nclass ParentSegment extends _Segment__WEBPACK_IMPORTED_MODULE_0__[\"Segment\"] {\n static initListener() {\n window.addEventListener(\"mousedown\", (e) => {\n console.log(\"mousedown\");\n ParentSegment.mouseDownTarget = e.target;\n ParentSegment.clickPosition = {x: e.pageX, y: e.pageY};\n });\n window.addEventListener(\"mouseup\", (e) => {\n ParentSegment.mouseDownTarget = null;\n ParentSegment.clickPosition = {};\n });\n\n window.addEventListener(\"touchstart\", (e) => {\n if (e.targetTouches.length === 1) {\n ParentSegment.mouseDownTarget = e.targetTouches[0].target;\n ParentSegment.clickPosition = {x: e.targetTouches[0].pageX, y: e.targetTouches[0].pageY};\n }\n });\n window.addEventListener(\"touchend\", (e) => {\n ParentSegment.mouseDownTarget = null;\n ParentSegment.clickPosition = {};\n });\n }\n\n setIsRotatable(rotatable) {\n this.rotatable = rotatable;\n this._updateElement();\n }\n\n constructor(element) {\n super(element);\n this.children = [];\n this.class = \"rotate-0\";\n this.rotatable = true;\n\n this.userRotationDelta = 100;\n this.lastUserRotation = 0;\n\n this.touchendListener = (e) => {\n let now = new Date().getTime();\n\n let target = null;\n let position = null;\n\n if (e.changedTouches.length >= 1) {\n target = document.elementFromPoint(e.changedTouches[0].pageX, e.changedTouches[0].pageY);\n position = {x: e.changedTouches[0].pageX, y: e.changedTouches[0].pageY};\n }\n if (target != null && e.targetTouches.length === 0 && this.element.contains(ParentSegment.mouseDownTarget) && this.element.contains(target)) {\n e.stopPropagation();\n e.preventDefault();\n if (this.lastUserRotation + this.userRotationDelta > now) {\n return;\n }\n this.getLevel().segmentClicked(this);\n this.rotate(ParentSegment.mouseDownTarget, target, ParentSegment.clickPosition, position);\n // console.log(\"touchendListener stopped event\", e);\n\n this.lastUserRotation = new Date().getTime();\n }\n };\n this.mouseupListener = (e) => {\n let now = new Date().getTime();\n\n console.log(\"mouseup\", ParentSegment.mouseDownTarget);\n if (ParentSegment.mouseDownTarget !== null && this.element.contains(ParentSegment.mouseDownTarget) && this.element.contains(e.target)) {\n let position = {x: e.pageX, y: e.pageY};\n e.stopPropagation();\n e.preventDefault();\n if (this.lastUserRotation + this.userRotationDelta > now) {\n return;\n }\n this.getLevel().segmentClicked(this);\n this.rotate(ParentSegment.mouseDownTarget, e.target, ParentSegment.clickPosition, position);\n // console.log(\"mouseupListener stopped event\", e);\n this.lastUserRotation = new Date().getTime();\n }\n };\n }\n\n canRotate() {\n return (this.rotatable && !this.getLevel().getHasWon());\n }\n\n async rotate(firstElem, secondElem, firstPosition, secondPosition) {\n const timeout = 250;\n const clickTolerance = 5;\n\n let rotationDirection = 1;\n if (js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_1__[\"Helper\"].isNotNull(secondElem) && js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_1__[\"Helper\"].isNotNull(firstElem) &&\n (js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_1__[\"Helper\"].isNull(firstPosition) || js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_1__[\"Helper\"].isNull(secondPosition) ||\n Math.abs(firstPosition.x - secondPosition.x) > clickTolerance ||\n Math.abs(firstPosition.y - secondPosition.y) > clickTolerance)) {\n\n let firstIndex = -1;\n let secondIndex = -1;\n let rotationIndexes = [0, 1, 3, 2];\n for (let i = 0; i < this.children.length; i++) {\n if (this.children[rotationIndexes[i]].element === firstElem || this.children[rotationIndexes[i]].element.contains(firstElem)) {\n firstIndex = (i + this.rotation / 90) % 4;\n }\n if (this.children[rotationIndexes[i]].element === secondElem || this.children[rotationIndexes[i]].element.contains(secondElem)) {\n secondIndex = (i + this.rotation / 90) % 4;\n }\n }\n\n if (firstIndex >= 0 && secondIndex >= 0) {\n if (firstIndex === 2 && (secondIndex === 0 || secondIndex === 1)\n || firstIndex === 1 && (secondIndex === 0 || secondIndex === 3)\n || (firstIndex === 0 && secondIndex === 3)\n || (firstIndex === 3 && secondIndex === 2)) {\n rotationDirection = -1;\n }\n }\n }\n\n if (this.canRotate()) {\n this.rotation += 360 + 90 * rotationDirection;\n this.rotation %= 360;\n\n let currentRotation = this.rotation;\n\n this._updateRotationClass();\n this.element.classList.add(\"rotating\");\n if (rotationDirection === -1) {\n this.element.classList.add(\"reverse\");\n }\n\n let delayPromise = new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n }).then(() => {\n if (this.rotation === currentRotation) {\n this.element.classList.remove(\"rotating\");\n this.element.classList.remove(\"reverse\");\n }\n });\n this.getLevel().checkHasWon(delayPromise);\n return delayPromise;\n }\n }\n\n sameAs(otherSegment) {\n if (!(otherSegment instanceof ParentSegment) || otherSegment.children.length !== this.children.length) {\n return false;\n }\n for (let i = 0; i < this.children.length; i++) {\n if (!this.children[i].sameAs(otherSegment.children[i])) {\n return false;\n }\n }\n return true;\n }\n\n applyRotations(rotations) {\n this.rotation = rotations[0];\n\n if (isNaN(this.rotation)) {\n this.rotation = 0;\n }\n\n rotations.splice(0, 1);\n for (let i = 0, n = this.children.length; i < n; i++) {\n rotations = this.children[i].applyRotations(rotations);\n }\n return rotations;\n }\n\n applyLocks(locks) {\n this.rotatable = (locks[0] !== false);\n locks.splice(0, 1);\n for (let i = 0, n = this.children.length; i < n; i++) {\n locks = this.children[i].applyLocks(locks);\n }\n return locks;\n }\n\n getCurrentRotations(rotations) {\n rotations.push(this.rotation);\n for (let i = 0, n = this.children.length; i < n; i++) {\n rotations = this.children[i].getCurrentRotations(rotations);\n }\n return rotations;\n }\n\n getCurrentLocked(locked) {\n locked.push(this.rotatable);\n for (let i = 0, n = this.children.length; i < n; i++) {\n locked = this.children[i].getCurrentLocked(locked);\n }\n return locked;\n }\n\n isSolved(checkChildren) {\n checkChildren = js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_1__[\"Helper\"].nonNull(checkChildren, true);\n if (checkChildren) {\n for (let i = 0, n = this.children.length; i < n; i++) {\n if (!this.children[i].isSolved()) {\n return false;\n }\n }\n }\n return (this.rotation === 0 || (\n this.children[0].sameAs(this.children[3]) && this.children[1].sameAs(this.children[2]) && (\n this.rotation === 180 || this.children[0].sameAs(this.children[1]))))\n }\n\n setChildren(children) {\n this.children = [];\n for (let i = 0, n = children.length; i < n; i++) {\n this.addChild(children[i]);\n }\n }\n\n addChild(child) {\n this.children.push(child);\n child.setParent(this);\n this._updateElement();\n }\n\n _updateRotationClass() {\n // this.style.transform = \"rotate(\"+this.rotation+\"deg)\";\n this.element.classList.remove(this.class);\n this.class = \"rotate-\" + this.rotation;\n if (this.class === \"rotate-0\") {\n this.class = \"rotate-360\";\n }\n this.element.classList.add(this.class);\n }\n\n _updateElement() {\n let layer = this._getLayer();\n if (layer >= 2) {\n this.element.classList.add(\"layer-\" + layer);\n }\n\n if (!this.rotatable) {\n this.element.classList.add(\"locked\");\n }\n\n const childContainer = this.element.querySelector(\".child-container\");\n js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_2__[\"ViewHelper\"].removeAllChildren(childContainer);\n\n this._updateRotationClass();\n\n this.element.removeEventListener(\"mouseup\", this.mouseupListener);\n this.element.removeEventListener(\"touchend\", this.touchendListener);\n\n this.element.addEventListener(\"mouseup\", this.mouseupListener);\n this.element.addEventListener(\"touchend\", this.touchendListener);\n\n for (let i = 0, n = this.children.length; i < n; i++) {\n this.children[i]._updateElement();\n childContainer.appendChild(this.children[i].getElement());\n if (i % 2 === 1 && this.children.length - 1 !== i) {\n childContainer.appendChild(document.createElement(\"br\"));\n }\n }\n }\n\n _getLayer() {\n if (this.children.length >= 1 && this.children[0] && this.children[0] instanceof ParentSegment) {\n return this.children[0]._getLayer() + 1;\n }\n return 1;\n }\n}\n\nParentSegment.initListener();\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Segment/ParentSegment.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Segment/RowSegment.js":
/*!*********************************************************!*\
!*** ./src/client/js/wordrotator/Segment/RowSegment.js ***!
\*********************************************************/
/*! exports provided: RowSegment */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RowSegment\", function() { return RowSegment; });\n/* harmony import */ var _ParentSegment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ParentSegment */ \"./src/client/js/wordrotator/Segment/ParentSegment.js\");\n/* harmony import */ var js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! js-helper/dist/client/ViewHelper */ \"./node_modules/js-helper/dist/client/ViewHelper.js\");\n/* harmony import */ var js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\nclass RowSegment extends _ParentSegment__WEBPACK_IMPORTED_MODULE_0__[\"ParentSegment\"]{\n constructor(element) {\n super(element);\n this.rotatable = false;\n }\n\n applyRotations(rotations)\n {\n for (let i = 0, n = this.children.length; i < n; i++) {\n rotations = this.children[i].applyRotations(rotations);\n }\n return rotations;\n }\n\n getCurrentRotations(rotations){\n for (let i = 0, n = this.children.length; i < n; i++) {\n rotations = this.children[i].getCurrentRotations(rotations);\n }\n return rotations;\n }\n\n getCurrentLocked(locked) {\n for (let i = 0, n = this.children.length; i < n; i++) {\n locked = this.children[i].getCurrentLocked(locked);\n }\n return locked;\n }\n\n applyLocks(locks) {\n for (let i = 0, n = this.children.length; i < n; i++) {\n locks = this.children[i].applyLocks(locks);\n }\n return locks;\n }\n\n _updateElement() {\n const childContainer = this.element.querySelector(\".child-container\");\n js_helper_dist_client_ViewHelper__WEBPACK_IMPORTED_MODULE_1__[\"ViewHelper\"].removeAllChildren(childContainer);\n\n this._updateRotationClass();\n\n const self = this;\n this.element.onclick = function (e) {\n self.rotate();\n e.stopPropagation();\n };\n\n for (let i = 0, n = this.children.length; i < n; i++) {\n this.children[i]._updateElement();\n childContainer.appendChild(this.children[i].getElement());\n }\n }\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Segment/RowSegment.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Segment/Segment.js":
/*!******************************************************!*\
!*** ./src/client/js/wordrotator/Segment/Segment.js ***!
\******************************************************/
/*! exports provided: Segment */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Segment\", function() { return Segment; });\n\nclass Segment{\n constructor(element){\n this.rotation = 0;\n this.element = element;\n this.parent = null;\n }\n\n getCurrentRotations(rotations){\n return rotations;\n }\n\n sameAs(otherSegment){\n return false;\n }\n\n setParent(parent)\n {\n this.parent = parent;\n }\n \n getLevel()\n {\n if (this.parent!==null)\n {\n return this.parent.getLevel();\n }\n }\n\n canRotate(){\n return false;\n }\n\n isSolved(){\n return (this.rotation === 0);\n }\n \n async rotate(){\n return Promise.resolve();\n };\n\n _updateElement(){};\n\n applyRotations(rotations){\n return rotations;\n }\n\n applyLocks(locks)\n {\n return locks;\n }\n\n getCurrentLocked(lockedArray){\n return lockedArray;\n }\n\n getElement()\n {\n return this.element;\n }\n}\n\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Segment/Segment.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Segment/TemplateContainer.js":
/*!****************************************************************!*\
!*** ./src/client/js/wordrotator/Segment/TemplateContainer.js ***!
\****************************************************************/
/*! exports provided: TemplateContainer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TemplateContainer\", function() { return TemplateContainer; });\n/* harmony import */ var js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! js-helper/dist/shared/Helper */ \"./node_modules/js-helper/dist/shared/Helper.js\");\n/* harmony import */ var js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(js_helper_dist_shared_Helper__WEBPACK_IMPORTED_MODULE_0__);\n\n\nclass TemplateContainer{\n constructor(leafTemplate, parentTemplate, rowTemplate, triangleTemplate, columnTemplate){\n this.leafTemplate = leafTemplate;\n this.parentTemplate = parentTemplate;\n this.rowTemplate = rowTemplate;\n this.triangleTemplate = triangleTemplate;\n this.columnTemplate = columnTemplate;\n }\n\n copyLeafTemplate()\n {\n return this.leafTemplate.cloneNode(true);\n }\n\n copyParentTemplate()\n {\n return this.parentTemplate.cloneNode(true);\n }\n\n copyRowTemplate()\n {\n return this.rowTemplate.cloneNode(true);\n }\n\n copyTriangleTemplate()\n {\n return this.triangleTemplate.cloneNode(true);\n }\n\n copyColumnTemplate(){\n return this.columnTemplate.cloneNode(true);\n }\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Segment/TemplateContainer.js?");
/***/ }),
/***/ "./src/client/js/wordrotator/Segment/TriangleSegment.js":
/*!**************************************************************!*\
!*** ./src/client/js/wordrotator/Segment/TriangleSegment.js ***!
\**************************************************************/
/*! exports provided: TriangleSegment */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TriangleSegment\", function() { return TriangleSegment; });\n/* harmony import */ var _RowSegment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RowSegment */ \"./src/client/js/wordrotator/Segment/RowSegment.js\");\n\n\nclass TriangleSegment extends _RowSegment__WEBPACK_IMPORTED_MODULE_0__[\"RowSegment\"]{\n\n}\n\n//# sourceURL=webpack:///./src/client/js/wordrotator/Segment/TriangleSegment.js?");
/***/ }),
/***/ "./src/client/sass/index.scss":
/*!************************************!*\
!*** ./src/client/sass/index.scss ***!
\************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (__webpack_require__.p + \"index.css\");\n\n//# sourceURL=webpack:///./src/client/sass/index.scss?");
/***/ }),
/***/ "./src/client/sound/brightAndBeautifull__.mp3":
/*!****************************************************!*\
!*** ./src/client/sound/brightAndBeautifull__.mp3 ***!
\****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"img/brightAndBeautifull__.mp3\");\n\n//# sourceURL=webpack:///./src/client/sound/brightAndBeautifull__.mp3?");
/***/ }),
/***/ "./src/client/sound/single_coin_fall_on_concrete_.mp3":
/*!************************************************************!*\
!*** ./src/client/sound/single_coin_fall_on_concrete_.mp3 ***!
\************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"img/single_coin_fall_on_concrete_.mp3\");\n\n//# sourceURL=webpack:///./src/client/sound/single_coin_fall_on_concrete_.mp3?");
/***/ }),
/***/ "./src/client/translations/de.json":
/*!*****************************************!*\
!*** ./src/client/translations/de.json ***!
\*****************************************/
/*! exports provided: won, continue, help, not-enough-coins, sync-error, game-ended, play, tutorial-step-1, tutorial-step-2, tutorial-step-3, tutorial-step-4, extra-coins-after-first-level, dark, theme, sound, music, credits, privacy-policy, impressum, track, >, choose-theme-dialog-title, install, share-dialog, credits-text, credits-coin-text, credits-music-text, storage-info, storage-permission-not-get, storage-permission-get, persist-storage-dialog-title, persist-storage-dialog-message, notification-permission-denied, already-persisted-dialog-message, already-persisted-dialog-title, persist-storage-dialog-message-firefox, warning-data-not-persistent, version-label, share-text, share, document-title, document-title-empty, contact, contact text, e-mail, privacy policy accepted, message, send, the message was sent, wr, tutorial, tutorial-1, tutorial-2, tutorial-3, you solved the tutorial level!, default */
/***/ (function(module) {
eval("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\\\":\\\"<b>Oh nein!</b> <br/>Es sieht so aus, als ob du schon alle Level gespielt hast... <br/>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ä und Ratschläge für das Design!\\\",\\\"credits-coin-text\\\":\\\"Sound:<br/>Der Münz-Sound ist von der Webseite <a href = '{0}' target='_blank' rel='noopener' class = 'link'>{0}</a>. Alle Rechte für diesen Münz-Sound gehören <a target='_blank' rel='noopener' href = '{0}' class = 'link'>{0}</a>.\\\",\\\"credits-music-text\\\":\\\"Musik:<br/>Bright And Beautiful - GEMAfreie Musik von <a href = '{0}' target='_blank' rel='noopener' class = 'link'>{0}</a><br/>Licensed under Creative Commons: By Attribution 4.0 International (CC BY 4.0)<br/><a href = '{1}' target='_blank' rel='noopener' class = 'link'>{1}</a><br/>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:<br/><br/>1) Die Seite muss als Lesezeichen gespeichert werden (und maximal 5 Lesezeichen ingsesamt).<br/>2) Die Seite muss mit die meistbenutzte Seite sein. <br/>3) Benachrichtigungen müssen erlaubt werden.<br/><br/>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:<br/>1) Die Seite muss als Lesezeichen gespeichert werden (und maximal 5 Lesezeichen ingsesamt).<br/>2) Die Seite muss mit die meistbenutzte Seite sein. <br/>3) Benachrichtigungen müssen erlaubt werden.<br/> 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 <a class='link' href='mailto:{0}'>{0}</a>.\\\\n Egal, ob du uns eine E-Mail sendest oder das Kontaktformular benutzt, akzeptierst du unsere <a class='link' href=\\\\\\\"/?s=privacyPolicy\\\\\\\">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!\\\"}\");\n\n//# sourceURL=webpack:///./src/client/translations/de.json?");
/***/ }),
/***/ "./src/client/translations/en.json":
/*!*****************************************!*\
!*** ./src/client/translations/en.json ***!
\*****************************************/
/*! exports provided: won, continue, help, not-enough-coins, sync-error, game-ended, play, tutorial-step-1, tutorial-step-2, tutorial-step-3, tutorial-step-4, extra-coins-after-first-level, dark, theme, sound, music, credits, privacy-policy, impressum, track, >, choose-theme-dialog-title, install, share-dialog, credits-sister-text, credits-coin-text, credits-music-text, storage-info, storage-permission-not-get, storage-permission-get, persist-storage-dialog-title, persist-storage-dialog-message, notification-permission-denied, already-persisted-dialog-message, already-persisted-dialog-title, persist-storage-dialog-message-firefox, warning-data-not-persistent, version-label, share-text, share, document-title, document-title-empty, contact, contact text, e-mail, privacy policy accepted, message, send, the message was sent, default */
/***/ (function(module) {
eval("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\\\":\\\"<b>Oh nein!</b> <br/>Es sieht so aus, als ob du schon alle Level gespielt hast... <br/>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:<br/>Der Münz-Sound ist von der Webseite <a href = '{0}' target='_blank' rel='noopener' class = 'link'>{0}</a>. Alle Rechte für diesen Münz-Sound gehören <a target='_blank' rel='noopener' href = '{0}' class = 'link'>{0}</a>.\\\",\\\"credits-music-text\\\":\\\"Musik:<br/>Bright And Beautiful - GEMAfreie Musik von <a href = '{0}' target='_blank' rel='noopener' class = 'link'>{0}</a><br/>Licensed under Creative Commons: By Attribution 4.0 International (CC BY 4.0)<br/><a href = '{1}' target='_blank' rel='noopener' class = 'link'>{1}</a><br/>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:<br/><br/>1) Die Seite muss als Lesezeichen gespeichert werden (und maximal 5 Lesezeichen ingsesamt).<br/>2) Die Seite muss mit die meistbenutzte Seite sein. <br/>3) Benachrichtigungen müssen erlaubt werden.<br/><br/>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:<br/>1) Die Seite muss als Lesezeichen gespeichert werden (und maximal 5 Lesezeichen ingsesamt).<br/>2) Die Seite muss mit die meistbenutzte Seite sein. <br/>3) Benachrichtigungen müssen erlaubt werden.<br/> 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 <a href='mailto:{0}'>{0}</a>.\\\\n Egal, ob du uns eine E-Mail sendest oder das Kontaktformular benutzt, akzeptierst du unsere <a href=\\\\\\\"/?s=privacyPolicy\\\\\\\">Datenschutzbestimmung\\\",\\\"e-mail\\\":\\\"E-Mailadresse\\\",\\\"privacy policy accepted\\\":\\\" akzeptiert\\\",\\\"message\\\":\\\"Nachricht\\\",\\\"send\\\":\\\"Senden\\\",\\\"the message was sent\\\":\\\"Die Nachricht wurde gesendet.\\\"}\");\n\n//# sourceURL=webpack:///./src/client/translations/en.json?");
/***/ }),
/***/ "./src/shared/model/LevelData.ts":
/*!***************************************!*\
!*** ./src/shared/model/LevelData.ts ***!
\***************************************/
/*! exports provided: LevelData */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LevelData\", function() { return LevelData; });\n/* harmony import */ var cordova_sites_user_management_dist_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! cordova-sites-user-management/dist/shared */ \"./node_modules/cordova-sites-user-management/dist/shared.js\");\n/* harmony import */ var cordova_sites_user_management_dist_shared__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_user_management_dist_shared__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var cordova_sites_database_dist_cordova_sites_database__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! cordova-sites-database/dist/cordova-sites-database */ \"./node_modules/cordova-sites-database/dist/cordova-sites-database.js\");\n/* harmony import */ var cordova_sites_database_dist_cordova_sites_database__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cordova_sites_database_dist_cordova_sites_database__WEBPACK_IMPORTED_MODULE_1__);\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\nclass LevelData extends cordova_sites_user_management_dist_shared__WEBPACK_IMPORTED_MODULE_0__[\"AccessEasySyncModel\"] {\n static getColumnDefinitions() {\n let columns = super.getColumnDefinitions();\n columns[\"words\"] = cordova_sites_database_dist_cordova_sites_database__WEBPACK_IMPORTED_MODULE_1__[\"BaseDatabase\"].TYPES.STRING;\n columns[\"positions\"] = cordova_sites_database_dist_cordova_sites_database__WEBPACK_IMPORTED_MODULE_1__[\"BaseDatabase\"].TYPES.STRING;\n columns[\"renderer\"] = cordova_sites_database_dist_cordova_sites_database__WEBPACK_IMPORTED_MODULE_1__[\"BaseDatabase\"].TYPES.INTEGER;\n columns[\"lang\"] = cordova_sites_database_dist_cordova_sites_database__WEBPACK_IMPORTED_MODULE_1__[\"BaseDatabase\"].TYPES.INTEGER;\n columns[\"difficulty\"] = cordova_sites_database_dist_cordova_sites_database__WEBPACK_IMPORTED_MODULE_1__[\"BaseDatabase\"].TYPES.INTEGER;\n return columns;\n }\n static getNextLevelData(renderer) {\n return __awaiter(this, void 0, void 0, function* () {\n debugger;\n });\n }\n}\ncordova_sites_database_dist_cordova_sites_database__WEBPACK_IMPORTED_MODULE_1__[\"BaseDatabase\"].addModel(LevelData);\n\n\n//# sourceURL=webpack:///./src/shared/model/LevelData.ts?");
/***/ }),
/***/ "./src/shared/model/migration/shared/Setup.ts":
/*!****************************************************!*\
!*** ./src/shared/model/migration/shared/Setup.ts ***!
\****************************************************/
/*! exports provided: Setup1000000002000 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Setup1000000002000\", function() { return Setup1000000002000; });\n/* harmony import */ var js_helper_dist_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! js-helper/dist/shared */ \"./node_modules/js-helper/dist/shared.js\");\n/* harmony import */ var js_helper_dist_shared__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(js_helper_dist_shared__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _LevelData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../LevelData */ \"./src/shared/model/LevelData.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\nclass Setup1000000002000 {\n up(queryRunner) {\n return __awaiter(this, void 0, void 0, function* () {\n yield js_helper_dist_shared__WEBPACK_IMPORTED_MODULE_0__[\"MigrationHelper\"].addTableFromModelClass(_LevelData__WEBPACK_IMPORTED_MODULE_1__[\"LevelData\"], queryRunner);\n });\n }\n down(queryRunner) {\n return undefined;\n }\n}\n\n\n//# sourceURL=webpack:///./src/shared/model/migration/shared/Setup.ts?");
/***/ }),
/***/ 0:
/*!********************************************************************!*\
!*** multi ./src/client/js/script.js ./src/client/sass/index.scss ***!
\********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("__webpack_require__(/*! /home/silas/Projekte/web/wordRotator/src/client/js/script.js */\"./src/client/js/script.js\");\nmodule.exports = __webpack_require__(/*! /home/silas/Projekte/web/wordRotator/src/client/sass/index.scss */\"./src/client/sass/index.scss\");\n\n\n//# sourceURL=webpack:///multi_./src/client/js/script.js_./src/client/sass/index.scss?");
/***/ })
/******/ });